CS3013 Software Engineering II
Midterm Sample Solution
Oct. 22, 1999
Write your answers in the booklet.
- (20%)
- Draw a diagram to show the
4+1 architectural views of a software system.
- There are six models of
the unified process: use-case model, analysis model, design model,
implementation model, test model, and deployment model. For EACH of
the five views, what models are used to describe the view?
·
- Use Case View: Use
Case model
- Design View: Analysis
model, Design model
- Implementation View:
Implementation model, Test model
- Deployment view:
Deployment model
- For EACH of the six
models, what UML diagrams are used to describe the model?
·
- Use case model: use
case diagrams, interaction diagrams, statecharts, activity diagrams
- Analysis model: class
diagrams, interaction diagrams, statecharts, activity diagrams
- Design model: class
diagrams, interaction diagrams, statecharts, activity diagrams, object
diagrams.
- Implementation model:
component diagrams
- Deployment model:
deployment diagrams
- Test model: use case
diagrams, interaction diagrams, component diagrams, activity diagrams,
statecharts
- (20%) Give short explanations
of the following terms and their relationships in the life of the unified
software development process.
· · Cycles, Phases, Iterations, Workflows
- Cycles: A software
development process consists of several development cycles. At the end of
each cycle there is a product release of new version.
- Phases: Each cycle consists
of four development phases:
-
- Inception:
understanding user requirements
- Elaboration:
specifying user requirements
- Construction:
implementing requirements
- Transition:
installing and deploying the system
- Each phase consists of one
or more iterations. In each iteration, a sequence of workflows is
conducted. At the end of iteration, there is an internal release of the
partial system developed in the current iteration that is increment of
previous iterations.
- Workflows: requirements,
analysis, design, implementation, testing, deployment.
- (20%) The following is the
description of an auto-checkout system for a library.
- A library consists of many
books. Books in the library can be classified into educational books and
recreational books. A library user with a library card can borrow books
from the library. The user can take books to a computer auto-librarian to
check out the books. The auto-librarian scans the user's card and records
the user's id in the books' records on the computer.
From the above description, we identify the
following classes.
Identify and draw association, aggregation,
dependency, and generalization relationships with multiplicity in UML between
the classes. Briefly explain each multiplicity.

- (20%) The following is the
description of an automatic book reservation system for a library.
- Using the system, a user
can reserve a library book for a period of time through the Internet.
There are two ways for a user to find a book to be reserved, by browsing
the library catalogs, or by searching with adequate information such as
book title, author, and ISBN number. Using the system, a librarian can
check reservation information and prepare books to be picked up on the
starting days of reservations.
Identify actors and use cases of the above system
and draw a use case diagram. If there is a relationship between two use cases
in the diagram, show that it is an <<include>> or
<<extend>> relationship.
Solution 1:

Solution 2:
- (20%) The next page (page
3) shows a part of the UML model for the course registration system.
· Assume that when a student registers a course section, if
the section is closed, the system will put the student into a waiting list of
the section.
- Draw a collaboration
diagram with hierarchical sequence numbering to show a student actor
"Joe" registering course section "Math101Section1" but
the section is closed.
- According to the
collaboration diagram, add additional attributes and/or operations to
related classes in the class diagram.
· 

Solution:

