Page 149 - DCAP308_OBJECT_ORIENTED_ANALYSIS_AND_DESIGN
P. 149
Unit 12: System Design
of classes and relationships where as a framework is much broader in scope and covers an entire Notes
subsystem or application.
12.2.2 Breaking a System into Subsystems
Each major piece of the system is called subsystem, which depends on some there. In a subsystem
classes share common properties, have similar functionality, have the same physical location,
or execute on the same hardware. 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. The interface specifies all interactions with the subsystem to allow independent
subsystem design.
Did u know? A subsystem is usually identified by the services, which is a group of related
functions that share some common purpose.
The decomposition of systems into subsystems may be organized as a sequence of horizontal
layers of vertical partitions.
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. A layered system is an ordered set of virtual worlds, each
built in terms of the ones below it and providing the implementation basis for the ones above
it. Layered architecture comes in closed or open.
In a closed architecture, each layer is built only in terms of the immediate lower layer. This
reduces dependencies between layers and allows changes to be made most easily. In opened
architecture a layer knows of all layers below. It means a layer can use the features of any lower
layer to any depth. This reduces the need to redefine operations at each level.
Figure 12.1: Layered Architecture
Interactive Graphics Application
Windows Operations
Screen Operations
Pixel Operations
Device I/O Operations
Closed Architectures
Each layer is built only in terms of the immediate lower layer
Reduces dependencies between layers
Facilitates change
Open Architectures
Layer can use any lower layer
Reduces the need to redefine operations at each level
More efficient/compact code
System is less robust/harder to change
LOVELY PROFESSIONAL UNIVERSITY 143