CS3773 Project I
For this project, you will write a complete Software Requirements Specification (SRS) for the UTSA
Book Club software system. You shall
apply the software engineering principles and notations that have been
discussed in lecture to capture, model, and document the requirements of the
Book Club system. You shall follow the IEEE Standard on Recommended Practice
for Software Requirements Specification to structure your document. Your
complete SRS shall be around 80 pages. You will work in groups of size three or four.
In the SRS, you shall include a
table of contents, a table of figures and tables, an introduction of the
document, a brief description of the UTSA Book Club system, and the complete
specification of the system. You shall
include the following models, tables, and associated descriptions to express the
requirements of the software system. You are required to use a Computer Aided
Software Engineering (CASE) tool for UML to build all your UML diagrams. You
may choose to use Rational Rose, which is available on CS machines, Visual
Paradigm, MagicDraw, Microsoft Visio, or other UML
CASE tools. You are expected to learn
how to use CASE tools on your own.
· Develop a UML use case diagram, showing all identified use cases, along with a brief description of the use case diagram.
· For each use case, give a detail description in a tabular format to include a use case number, a meaningful use case name, the actors of who initiate and participate in the use case, the pre/post conditions, the related requirements and other use cases, and a normal scenario of the use case and its exceptions and alternative steps (i.e., all possible scenarios).
· For each use case, build a sequence diagram for its normal scenario.
· Build a UML class diagram for the whole system, showing all identified classes and their attributes and operations, all actors, relations, and multiplicities. Include a discussion of the class diagram.
· Build a state diagram for each class that displays interesting behaviour. Include a discussion for each state diagram.
· Construct a data dictionary to describe terms that have been used in your diagrams, such as classes, attributes, operations, states, events, activities, and variables.
· Draw GUI interfaces, showing screen shots and widgets. Describe the purpose of each screen shot and each widget, and the effect of pressing each widget (showing the navigation among screen shots).
· Develop functional and nonfunctional requirements table, which includes a requirement number, a requirement name, the pre/post conditions, a brief description, and the related requirements and use cases.
Please
send an electronic copy to both Jianwei Niu and Brendan Dunne by 9:30 am, April
1.