Requirements specification - The University of Texas at Dallas

advertisement
Global 14
KWIC WRS v1.4
CS/SE 6362 Advanced Software Architectural Design (Spring 2011)
K.W.I.C.
(Key Words In Context)
WRS
Submitted to:
Dr. Lawrence Chung
Associate Professor,
Department of Computer Science,
The University of Texas at Dallas,
Richardson, TX -75080
Team Name: Global 14
Date
1/30/2011
2/8/2011
2/14/2011
2/20/2011
2/22/2011
Version
1.0
1.1
1.2
1.3
1.4
Description
Initial draft
Added Functional Requirements
Added NFRS
Systematic Decision Making
Added requirements Traceability Matrix to
Implementation
Author
Global 14
Global 14
Global 14
Global 14
Global 14
Developer’s Website: http://utdallas.edu/~sas071100/SAD/
1
Global 14
KWIC WRS v1.4
Table of Contents
Introduction ................................................................................................................................ 3
Project Overview .................................................................................................................... 3
Purpose .................................................................................................................................. 3
Version Changes .................................................................................................................... 3
Issues ........................................................................................................................................ 3
Functional Issues ................................................................................................................... 3
F1: ...................................................................................................................................... 3
F2: ...................................................................................................................................... 4
F3: ...................................................................................................................................... 4
F4: ...................................................................................................................................... 4
F5: ...................................................................................................................................... 5
F6: ...................................................................................................................................... 5
F7: ...................................................................................................................................... 5
Non-functional Issues ............................................................................................................. 5
NF1: .................................................................................................................................... 6
NF2: .................................................................................................................................... 6
NF3: .................................................................................................................................... 6
NF4: .................................................................................................................................... 7
NF5: .................................................................................................................................... 7
NF6: .................................................................................................................................... 7
NF7: .................................................................................................................................... 8
WRS Improved Understanding ................................................................................................... 9
Summary ................................................................................................................................ 9
The KWIC System .................................................................................................................. 9
Functional Requirements .................................................................................................... 9
Non-functional Requirements .............................................................................................. 9
The Deliverable .....................................................................................................................10
Requirements Specification ...................................................................................................10
Architectural Specification .....................................................................................................10
Prototype Implementation ......................................................................................................10
User Manual ..........................................................................................................................10
Requirements Traceability Matrix to Implementation .................................................................11
2
Global 14
KWIC WRS v1.4
Introduction
Project Overview
“Your team is to architect a simple KWIC software system and implement it, which later
will be used for a web search engine. For this project, you will use an Object-Oriented
architectural style, and build a Java applet (or an equivalent), which should be
accessible through your team’s web page.” – Project Summary Document.
Purpose
The product described within this document is Version 1.0 of the Key Word in Context
(KWIC) system. This system is used primarily as a backend tool for search engines, and
will be used as such in phase two of this project.
Version Changes
This will detail changes from the first to second phases.
Issues
“The KWIC (Key Word in Context) index system shall accept an ordered set of lines,
where each line is an ordered set of words, and each word is an ordered set of
characters”
Functional Issues
F1: The word accept implies verification; what type of error checking or input validation will be
required prior to running the circular shift?
O1: No error checking, leave the responsibility to the user and the user guide.
O2: Run spell checking to find minor typing errors.
O3: Filter noise words. (A, an, the, of, for, and, etc…)
O4: Check for any invalid characters as the implementation team defines.
Solution: O3 & O4
Rationale: Filtering noise words reduces the number of circularly shifted lines, which reduces
memory consumption and improves performance. In conjunction checking and removing invalid
characters simplifies searching for specific line(s) improving usability. These two options
3
Global 14
KWIC WRS v1.4
increase the performance of the system with minimum cost. Running spell check is beyond the
scope of the system.
F2: What set of characters are we expected to be able to input into the system, (i.e. %, $, &) ?
O1: All valid ASCII characters.
O2: All valid Unicode characters.
O3: Various other language characters.
Solution: O1
Rationale: Only allowing ASCII characters narrows the scope of both the
implementation and the user demographic of the system. Expanding the input to
include Unicode and other language characters would only expand the scope, resulting
in complications that are detrimental to the performance and reusability of the system.
“Any line shall be ``circularly shifted" by repeatedly removing the first word and
appending it at the end of the line.”
F3: “Any line” implies not all lines; should this be changed to say each line?
O1: This should be changed to reflect each line.
O2: Leave the requirement originally stated.
Solution: O1
Rationale: Each line needs to be circularly shifted. Otherwise the system will output an
incomplete set of shifted lines, which would hinder the available search results and
decrease performance.
F4: Appending at the end of the line could cut off punctuation; are we to even consider
punctuation in the circular shift?
O1: Associate punctuation with prior word.
O2: Ignore punctuation.
O3: Separate words on space.
O4: Remove punctuation for output except for compound words (as in the case
of hyphenated words).
Solution: O4
Rationale: Including punctuation in the circular shifts is unnecessary because the
search query would be void of punctuations due to filtering. Also comparing the query
with the shifted lines that contains punctuations would complicate implementation
(hindering reusability) and increase computation (decrease performance).
4
Global 14
KWIC WRS v1.4
“The KWIC index system shall output a listing of all circular shifts of all lines in
ascending alphabetical order.”
F5: This says we are to output just the output of circular shift; are we to include the
original statement or is that part of the output for circular shift?
O1: Include original statement in the output.
O2: Do not include original statement in the output.
Solution: O2
Rationale: The original statement may begin with a noise word and since the output
consists of circularly shifted lines that do not start with noise words, the original
statement should not be included.
F6: What types of input method shall we be expected to accept.
O1: Only be keyboard entry into the applet/program.
O2: Accept file reading.
O3: Input that is copy/pasted
Solution: O1, O3
Rationale: While reading an ordered set of lines from a text file is viable. In order to limit
the scope and maintain ease of use for the user, input is limited to only through
keyboard entry or copy/pasting from another source.
F7: Does the interim circular shifts need to be output or does only the alphabetized form
need to be printed.
O1: Both.
O2: Only the alphabetized circular shifts.
Solution: O2
Rationale: Outputting the interim circular shifts would result in redundant data, since the
alphabetized form already exists. In addition, including the interim shifts would hinder
performance when searching through the shifted lines.
Non-functional Issues
“The KWIC system shall be easily understandable, portable, enhanceable and reusable
with good performance.”
5
Global 14
KWIC WRS v1.4
NF1: What is “understandable”? Is this in relation to the GUI output or the code
implementation (for reusability in the second phase).
O1: Each GUI element will be clearly labeled with its intended functionality. e.g.
“Output”, “Input”.
O2: Comments and design practices of the code implementation will be able to
be extended in future development.
O3: A new user to the system should be able to enter lines and get them
alphabetized within 2 minutes of their first use of the system
O4: The user manual shall state clearly what each element on the screen does.
This shall be implemented using tooltips that are shown when the mouse pointer hovers
on objects.
O5: A help button shall be available at the top of the screen to provide directions
to users if they are confused about anything while using the system.
Solution: O1, O2
Rationale: The program should need no training. This means if someone sits down in
front of the computer they should be able to understand. The program also needs to be
easy for programmers to understand. This is so future programmers should not have to
spend a long time looking at the code before being able to adjust or tweak aspects.
NF2: What is “portable”? If it is an applet or equivalent hosted on a webpage would it be
considered portable?
O1: Accessible via internet.
O2: Accessible via Mac systems, Linux systems, and Windows systems.
Solution: O1, O2
Rationale: Anybody should be able to use the program with an internet connection. This
expands the user base. The program being non-platform specific also increases the
user base and allows for a wider of variety of users.
NF3: What is “enhanceable”? Does this refer to the ability of the overall KWIC system
to be enhanced into a search engine?
O1: The program needs to be able to accept updates according to a schedule
defined by the user; limited by the availability of updates.
O2: The program has plug-in support. (i.e., separate language plug-ins).
Solution: O1
Rationale: The program should be able to accept updates without problem. This
increases the lifespan of the project because you are able to add new things on. Plug in
6
Global 14
KWIC WRS v1.4
support is beyond the scope of this project, and there is too large of a time cost
associated.
NF4: What is “reusable”? Should the output be formatted in ways that phase 2 can
more easily use it or should the code implementation be documented enough so that it
can be easily extended?
O1: The implementation shall be conducted in a way that is adherent to the
design so that future implementation can easily use our work.
O2: Parts of the system should be used in the same style the system was
developed.
O3: The whole system should be used in various styles.
Solution: O1, O2
Rationale: Parts of the system should be able to be used in different contexts with the
same architecture style. This allows future development teams to adjust certain parts of
the code and would benefit future developers. The whole system should not be used in
different contexts because this would duplicate the whole system and is not feasible.
The cost of developing systems for different styles would hurt the design.
NF5: What is “good performance”? Does this mean that the program has few to no
errors when circular shifting? Or does it refer to the time that the KWIC system should
take to perform the task?
O1: The response of the system in terms of GUI should be quick and immediate.
(no longer than a two second response time for input consisting of less than 10 lines on
a system with, at least 1GB of RAM).
O2: Every circular shift should be sorted correctly, with none left out of the list.
Solution: O1 & O2
Rationale: Good performance encompasses both the speed and correctness of the
program. Having the user wait an excessive amount of time and providing incorrect
output constitutes as poor performance.
“The KWIC system shall also be user-friendly, responsive, and adaptable.”
NF6: What is “user-friendly”? Does this only refer to GUI?
7
Global 14
KWIC WRS v1.4
O1: Progress bar or timer: For large inputs the system can be expected to take
longer, however indications to the user like a timer or progress bar should be made to
assist the user.
O2: The GUI elements shall have labels and tooltips which say what they do.
O3: Provide a help function to assist users
O4: Provide a pop-up menu to assist users
Solution: O1, O2, O3
Rationale: The progress bar allows the user to realize that the program is no frozen and
because of this decreases user frustration. The GUI should be simple because an
average user should be able to immediately use the program. This allows users to be
more satisfied. There should be a help function if the user does not know what they are
doing. This is because there will be no hands on training with the program, so if users
have questions they should be able to get help. A pop-up menu may confuse the user
and because of this would decrease how user friendly the program is.
NF7: What is “responsive”? Does this refer to the KWIC system’s performance time?
And if so, then does “good performance” refer to something else?
O1: Two second wait time maximum as per “good performance.”
O2: The system will provide feedback, depending on what button is pushed. It
will “respond” to the user through a pop up dialog box.
Solution: O1
Rationale: The terms responsive and good performance refer to the same aspect of the
system and both are covered by the idea of a two second maximum wait time. A dialog
box to the user would impact how many clicks the user needs, so this is actually hurting
the
system.
NF8: What is “adaptable”? Is this covered by enhanceable and reusable or is there
more that this implies/entails?
O1: Multiple input formats as per Functional requirement 6.
O2: This is a reference to the enhanceability of the system is as defined in NonFunctional requirement 3.
Solution: O2
Rationale: The system should be modular, so that if one module is changed other
modules will work as intended. This would lead to a better design and decrease the cost
8
Global 14
KWIC WRS v1.4
of maintenance in the long run. Multiple input formats do not have to do with how
adaptable a product is, so this will not be included in this requirement.
WRS Improved Understanding
Summary
As system/software architects of a renowned company, your team is to architect a
simple KWIC software system and implement it, which later will be used for a web
search engine. For this project, you will use an Object-Oriented architectural style, and
build a Java applet (or an equivalent), which should be accessible through your team’s
web page.
The KWIC System
Functional Requirements
The KWIC (Key Word in Context) index system shall accept an ordered set of lines,
filtering out noise words and invalid characters, where each line is an ordered set of
words, and each word is an ordered set of ASCII (American Standard Code for
Information Interchange) characters. Input will be allowed via the keyboard and
operating system clipboard (copy and paste). Each line shall be ``circularly shifted" by
repeatedly removing the first word and appending it at the end of the line. The
punctuation will be removed for the purposes of output except in the case of in-word
punctuation (compound words, apostrophes). The KWIC index system shall output a
final listing of all circular shifts, excluding the original input, of all lines in ascending
alphabetical order.
Non-functional Requirements
The KWIC system shall be easily understandable in that both the average internet user
should be able to understand and use the final system and the comments and design
practices of the source code implementation will be able to be easily extended in future
development. The system shall be portable by enabling access via the internet and
allowing for cross-platform users. The system shall be enhanceable by allowing for
seamless and easy updates. The system shall exhibit reusability by conducting our
implementation in a way that is strictly adherent to the design so that future
implementers can easily reuse our work. The performance of the system will be
responsive (no longer than a two second wait time) and accurate in that every circular
shift shall be sorted correctly, with none exempted from the list.
The KWIC system shall also be user-friendly by offering user feedback in the form of a
progress bar and/or timer and help functions. The GUI design shall also consider userfriendliness by providing a simple enough design to allow a user to immediately know
the function of each element, such as providing them with tooltips. Responsiveness is
an aspect of performance in that the system shall provide user feedback within two
seconds. The system shall also be adaptable in that the implementation will be modular
enough to increase enhanceability and decrease maintenance.
9
Global 14
KWIC WRS v1.4
The Deliverable
Your description should be elegant and comprehensible. Your deliverable should be
available as both online (one URL per team member) and offline specifications
(submission of one copy per team). You can choose to use an (extended) IEEE-style
format for the deliverable, in which the major sections typically include: Introduction,
Main Body (items below, for this project), Glossary (Definitions and Acronyms) and
References (See, for example, "Document Templates - general IEEE" on the Internet or
course web site).
Requirements Specification
The functional requirements specification is incomplete (e.g., where should the input
come from, and the output go?). Describe any extensions, or clarifications, to the
requirements specification. The non functional requirements specification is also
ambiguous. Clarify each non-functional term repeatedly as many times as you'd see
necessary.
Architectural Specification
Describe both pictorially and textually, the architectural style, components and your
deliverable should also discuss the rationale in terms of the advantages and
disadvantages of your architecture, in consideration of several scenarios whenever
appropriate. Also describe all the constraints and patterns, if any. You should establish
traceability between the requirements specification and the architectural design
specification.
Prototype Implementation
Your program specification - well documented and tested, and an implementation of a
prototype system.
User Manual
A (preliminary) user manual should be developed, which should become more complete
and consistent at the end of the 2nd phase of the project. Describe how the user can
access and use the system, including the URL of each team's web site where your
applet, or its equivalent (and all other deliverables), can be accessed. Also briefly
describe essential scenarios --- the typical interactions between the user and the
system, e.g., what are the steps the user has to follow in using the system. Use
screenshots to show how the system looks like initially as well as to show subsequent
steps that the user might take.
10
Global 14
KWIC WRS v1.4
Requirements Traceability Matrix to Implementation
The following table shows the requirements traceability to the implementation of the KWIC
system.
FR1
Issues Functional
Component
Requirements
Input verification
Module input verifies all the inputs
System Feature [Screen Shot #]
(please refer to the figure below)
Input [5]
FR2
Sets of characters
Input [5]
FR3
Shifting each line
FR4
Punctuation
Module Circular Shift excludes circular Ouput [3, 6]
shift of punctuation
FR5
Exclude original
statement in the
output
Module Output doesn't output original
statement
Ouput [3, 6]
FR6
Input methods
Input medium accepts keyboard entry
and copy/pasted inputs
Input [5]
FR7
Only print the
alphabetized form
Module Output only outputs the
alphabetized form
Ouput [3, 6]
I-FR
NFR1
Issues NonFunctional
Requirements
Understandability
NFR2
I-NFR
Module input accepts all valid ASCII
characters
Module Circular Shift constructs
circular shift of each line
Component
Ouput [3, 6]
System Feature [Screen Shot #]
(please refer to the figure below)
A sound User Manual and good GUI
makes the product easily
understandable
Help [1], GUI Design [1-6]
Portability
Anybody can use the system via
internet and the system is nonplatform specific
Link to application:
http://hypv3355.appliedi.net/G14K
wic/
NFR3
Enhanceability
Modular Design [1-6]
NFR4
Reusability
The system can accept updates
without problems
The modules of the system can be
easily reused because of fewer
assumptions
NFR5
Good performance The system responses quickly and
Ouput [3, 4, 6]
correctly
User-friendly
The GUI design is simple to use and a Help, Clear Button [1] [2]
help function helps user
NFR6
Modular Design [1-6]
NFR7
Responsiveness
The system responses in two minutes
Ouput [3, 4, 6]
NFR8
Adaptability
The system is modular to be easily
maintained
Modular Design [1-6]
11
Global 14
KWIC WRS v1.4
The following figure is a snapshot of the KWIC system GUI annotated with references used by
the requirements to implementation traceability matrix.
12
Download