Page 159 - DCAP308_OBJECT_ORIENTED_ANALYSIS_AND_DESIGN
P. 159
Unit 12: System Design
Two objects are inherently concurrent if they can receive events at the same time without Notes
interacting. If events are unsynchronized, you cannot fold the objects onto a single thread
of control.
You must allocate each concurrent subsystem to a hardware unit, either a general-purpose
processor or specialized functional unit.
The system designer must identify global resources and determine mechanisms for
controlling access to them. There are several kinds of global resources: Physical system,
Space, Logical names, Access to shared data.
It is best to choose a single control style for the whole system. There are two kinds of
control flows in a software system: External control and internal control.
Although most of the system design concerns steady-state behavior system designer must
consider boundary conditions as well and address issues like initialization, termination
and failure.
The system designer must set priorities that will be used to guide trade-offs for the rest of
the design. For example system can be made faster using extra memory.
12.4 Keywords
Deployment diagram: A deployment diagram shows how the systems will be physically
distributed on the hardware.
External control: External control concerns the flow of externally visible events among the
objects in the system.
Initialization: It refers to initialization of constant data, parameters, global variables, tasks,
guardian objects, and classes as per their hierarchy.
Internal control: Internal control refers to the flow of control within a process.
Layers: Layers define an abstract world and work like a client of services for layers below and as
a supplier of services for layers above it.
Partitions: Partitions vertically divide a system into several independent or weakly subsystems,
each providing one kind of service.
Pattern: A pattern is a proven solution to general problem.
Subsystem: A subsystem is a package of classes, associations, operations, events and constraints
that are interrelated and have a reasonably well defined interface to the rest of the system.
12.5 Review Questions
1. Describe the concept of system design.
2. Make distinction between frameworks based reuse and pattern based reuse.
3. Explain how to organize the decomposition of systems into subsystems.
4. Discuss the concept of identifying concurrency with example.
5. What should system designer do in order to provide allocation to each component? Discuss.
6. Analyze and discuss the use of several kinds of global resources.
7. Illustrate the concept of choosing software control strategy.
LOVELY PROFESSIONAL UNIVERSITY 153