Computer
Science Department
Courant
Institute of Mathematical Sciences
Course Title: Adaptive Software
Engineering Course Number: g22.3033-007
Instructor: Jean-Claude Franchitti Session: 5
Session 5: Team Assignment – Application
Modeling Review
This is an integrated team assignment intended as a review of
the application modeling techniques covered in the course.
You are to work on this assignment with your team.
As part of this team assignment you will review how to establish the high-level requirements for a software product, take a set of requirements and translate them into Use Cases, review the use UML diagrams (class, sequence, and collaboration) with a UML design tool, enhance your familiarity with the use of UML in code design, and conduct a high-level Design Review. You may either of Rational Rose or Poseidon to submit your answers to the assignment activities.
Purpose of this exercise: Establish the high-level requirements for a software product
Problem: You are to determine the user requirements for a web phone-mail product. The primary purpose of this product is to give phone-mail users (e.g., faculty and staff) the ability to access the functionality of the phone-mail system from a web page. In general, the product should enable users of the phone-mail system to do their usual phone-mail activities via a web page. You will need to determine what are those activities, in the form of product requirements.
Customer:
You will need to assume the role of an hypothetical
customer to identify the important user-level requirements. You will also
need to assume the roles of engineer and user in order to develop the full
requirement specification.
See the requirements
supplement for an outline of what
you need to do.
1.
Determine
requirements for the web phone-mail interface. This should include any requirements
that you think are necessary or very desirable in order to meet the customer
needs. If you have a question about what the customer needs (or anything
else), ask the instructor. The initial requirements should include 10
functional requirements and 10 nonfunctional requirements.
2.
Evaluate these
requirements. Do your requirements satisfy the eight criteria: Understandable,
Verifiable, Independent of implementation, Consistent, Complete, Unambiguous,
Realistic, Necessary? Explain your
answers. Weed out any requirements that you do not think are good user
requirements.
3.
Prioritize the
requirements as to whether they are (1) absolutely necessary, (2) desirable, or
(3) optional.
4.
Assume there is a
development team of 5 programmers and this product is to be delivered in 6
months. What are the primary risks associated with implementing a product
that meets your requirements?
5.
System
requirements. Pick one of your user requirements, and translate it into a
list of system requirements. These should be specific enough that the
engineering team can design the software that will meet these requirements.
What to hand in: You should submit your responses to the above 5 questions in one
document.
How To Submit
Turn in a model file called
“tass4_5-act1” with the appropriate extension.
Purpose of this exercise: Take
a set of requirements and translate them into Use Cases. To improve your
understanding of the process, this process will be performed as a
"Design Studio".
Background: You
may find it useful to refer to your answers to activity #1 above. You
should use the requirements gathered for that same application, the web
voice-mail interface. However, in this activity you need to develop use
cases (instead of requirements lists) to express those requirements.
Problem:
Working with your assigned group, perform the following:
Note:
To determine the use cases and actors, it may be helpful to ask some of
the following questions:
o
Who uses the system?
o
Who installs the system?
o
Who starts up the system?
o
Who maintains the system?
o
What other systems interface with this
system?
o
Who provides information to the system?
o
Who extracts information from the system?
o
Does this system do anything
automatically at preset times?
What to hand in: Each student should submit his own version of this
exercise. This can be done on paper or electronically (e.g. in a word
document). Specify the names of the students who participated with you in
the exercise.
Turn in a model file called “tass4_5-act2” with the
appropriate extension.
Purpose of this exercise: Become familiar with the use of UML in code
design
Problem: You need to implement a "Book Order
Application" to be used to process book purchases.
This application is to be used to enable users (these are sales reps for the
bookstore) to process orders for books. You are responsible for
making sure your application supports the following use case:
Use Case: Process
customer order
Actors: Sales Rep
(person), Inventory Management System (software), Billing Dept
(person).
Precondition: A customer
has requested to order a book, and Sales rep starts Book Order Application
Main Success Scenario:
Alternate Scenarios:
The following UML Activity
Diagram is provided to describe this use case:
The Inventory Management System
has already been implemented. You can obtain the Inventory Management
Code (inventoryManager.cpp, inventoryManager.h) and the Book Inventory Database
file (CatalogList.txt) from the website. The CatalogList.txt file will
need to be put in the directory where your application is launched so that it
can be read at startup time.
Note: One problem you
will encounter is to read an input line of text from the console (including
blanks) when the user inputs a book title. There is (commented-out) test
code in inventoryManager.cpp that provides one way of
reading this input line. This can also be done with the iostream classes.
Your assignment is the
following:
Purpose of
this exercise: Learn how to conduct a high-level Design Review
Problem:
Consider the Online Flight Reservation system, the subject of activity #3.
You are to participate in a Design Review of the proposed system design.
Based on a Design
Review,
you will evaluate the design, and will determine specific improvements that
must be made to the design. You will evaluate the design by participating
in the presentation and discussion of the design, and by answering the
following questions:
What to hand in: Provide complete answers to the above
questions. Turn in a file called “tass4_5-act4” with the appropriate
extension.
Grade Breakdown: