OOSE Chapter 5 Leacture
OOSE Chapter 5 Leacture
Chapter 5
Object Oriented System Design
Introduction
System design is the transformation of an analysis model into a system design
model.
During system design, developers define the design goals of the project and
decompose the system into smaller subsystems that can be realized by individual
teams.
Developers also select strategies for building the system, such as :-
hardware/software strategy,
the persistent data management strategy,
the global control flow,
the access control policy, and the handling of boundary conditions.
The result of system design is a model that includes a subsystem decomposition
and a clear description of each of these strategies.
Note that we use the ball-and-socket notation when the subsystem decomposition
is already fairly stable and that our focus has shifted from the identification of
subsystems to the definition of services.
System design consists of transforming the analysis model into the design model that
takes into account the nonfunctional requirements described in the requirements
analysis document.
Identifying Design Goals
The definition of design goals is the first step of system design.
It identifies the qualities that our system should focus on.
Many design goals can be inferred from the nonfunctional requirements or from the
application domain.
Others will have to be elicited from the client.
important design decision can be made consistently following the same set of
criteria.
In general, we can select design goals from a long list of highly desirable qualities.
Criteria to identify design goal organized into five groups:-
performance, dependability, cost, maintenance, and end user criteria.
Performance, dependability, and end user criteria are usually specified in the
requirements or inferred from the application domain.
Cost and maintenance criteria are dictated by the customer and the supplier.
Performance criteria include the speed and space requirements imposed on the
system.
Should the system be responsive, or should it accomplish a maximum number of
tasks?
Is memory space available for speed optimizations, or should memory be used
sparingly?
Cost criteria include the cost to develop the system, to deploy it, and to administer it.
Note that cost criteria not only include design considerations but managerial ones, as
well.
When the system is replacing an older one, the cost of ensuring backward
compatibility or transitioning to the new system has to be taken into account.
Maintaining backward compatibility with a previous system can add to the
development cost while reducing the transition cost.
End user criteria include qualities that are desirable from a users’ point of view,
but have not yet been covered under the performance and dependability criteria.
Is the software difficult to use and to learn?
Can the users accomplish needed tasks on the system?
analysis.
Abbotts’s heuristics, are applicable to subsystem identification.
The initial subsystem decomposition should be derived from the functional
requirements.
Another heuristic for subsystem identification is to keep functionally related
objects together.
The first section of the SDD is an Introduction. Its purpose is to provide a brief
overview of the software architecture and the design goals.
The second section, Current software architecture, describes the architecture of the
system being replaced.
If there is no previous system, this section can be replaced by a survey of current
architectures for similar systems.
The purpose of this section is to make explicit the background
information that system architects used, their assumptions, and common issues the
new system will address.
The third section, Proposed system architecture, documents the system design
model of the new system.
Divided into seven parts:
VI. Global software control describes how the global software control is implemented.
-Describe how requests are initiated and how subsystems synchronize
-should list and address synchronization and concurrency issues.
VII. Boundary conditions describes the start-up, shutdown, and error behavior of the
system.
• (If new use cases are discovered for system administration, these should be included
in the requirements analysis document, not in this section.)
The fourth section, Subsystem services, describes the services provided by each
subsystem.
The SDD is written after the initial system decomposition is done;