GEORGE
MASON UNIVERSITY
DEPARTMENT OF INFORMATION &
SOFTWARE ENGINEERING
SWE
721 / IT 821 - Advanced Software Design: Reusable
Software Architectures
Spring 2005 Tuesday
Dr. Hassan Gomaa
703-993-1652 Science & Technology 2 Room 330
E-mail: hgomaa@gmu.edu Fax: 703-993-1638
Hotel Reservation
Software Product Line
Problem Definition
A Hotel Reservation multiple view model is to be created for a Software Product Line, which can be tailored to the needs of an individual hotel chain or hotel. The system manages information about rooms, reservations, customers, and customer billing. The system provides functionality for making reservations, check in, and check out, in addition to generating reports and displays. In addition, several optional and variant capabilities are provided.
A customer may make reservations, change, or cancel
reservations. When making a reservation
through a reservation clerk, a customer gives personal details, states the room
type, number of occupants, and dates of arrival and departure. A reservation is either guaranteed by credit
card or not guaranteed. Reservations that are not guaranteed are automatically
cancelled at a pre-specified time, e.g.,
Optional capabilities of the Hotel Reservation System are:
a) Management reports. The manager may view the hotel occupancy figure for the present or past dates, view projected occupancy figures for future dates, and view financial information, including room revenue information.
b)
Automatic
cancellation for non-guaranteed reservations. At a pre-specified time, e.g.,
c)
Automatic
billing of no-show guaranteed reservations. At a pre-specified time, e.g.,
d) Block bookings. A travel company can book a block of rooms at a discounted rate for one or more nights. Bills are charged directly to the travel company.
e) Other optional functions include customer billing for restaurant charges, room service and laundry, various, telephone service, automatic issuing of keys, and a club facility.
f) Variant functionality includes the reservation of residential suites instead of hotel rooms, where a guest can occupy a suite for a week or month at a time, paying a weekly or monthly rate.
Assignments
(1) A Requirements Model for the Hotel
Reservation Software Product Line, which includes:
a) A Use Case
Model, consisting of a description of the actors and use cases, including
kernel, optional, and alternative use cases, which fully define the product
line. Describe each use case in terms of
the actors and their interactions with the system.
b) A product
line context model depicted on a class diagram showing how the product line
interfaces to the external environment.
c) A feature
model identifying the reusable requirements in the product line. Define all
feature dependencies. Show how the features relate to the use cases. Identify
any mutually exclusive features.
(2) An Analysis
model for the Hotel Reservation Software Product Line, which includes:
a) Develop a
static model using class diagrams for the entity classes in the product line,
attributes of the classes, and the relationships between them.
b) Develop interaction diagrams (using
either communication diagrams or sequence diagrams) for each kernel, optional
and variant use case. Identify the object structuring criteria used. Document
briefly the message sequence descriptions.
c) Develop a statechart showing the different states of a hotel
reservation from initial reservation through final checkout. Make sure that the
statechart is consistent with the appropriate
interaction diagram(s).
d) Develop a
feature/class dependency model showing the features, as well as their
relationships to optional and variant classes.
(3) A Design
model (Architectural Design Specification) for the Hotel Reservation Software
Product Line, which includes:
a) An
integrated set of communication diagrams showing subsystems and objects, as
well as the message interfaces.
b)
A Distributed Software Architecture
document describing how the system is decomposed into component-based
subsystems and the message interfaces between the subsystems (depicted on a concurrent
communication diagram). It should also explain how the subsystems were
determined.
c)
A component based software architecture
showing the components and connectors, including ports and interfaces.