Object-Oriented System Design Overview
Object-Oriented System Design Overview
Chapter 6-
Object Oriented System
Design
Prepared by:
Misganaw Abeje
University of Gondar
College Of Informatics
Department of computer science
Misganaw.Abeje13@[Link]
Outline
1. An overview of system design.
2. System design concepts.
– Subsystems
– Service and Subsystem Interface
– Properties of subsystem: cohesion and coupling
– Techniques of Subsystem: Layering and partitioning
– Architectural style
3. System design activities: From objects to subsystems
– Identifying Design Goal
– Identifying Subsystem
– Mapping of subsystem to hardware
– Identifying and Storing Persistent Data
BY: MA – Providing Access Control
BY: MA
6. Overview of System Design
System design is the transformation of an analysis model into a system
design model.
Analysis: Focuses on the application domain (user point of view),
Design focuses on the solution domain (developer point of view).
During system design, developers define:
– Design goals of the project
– Decompose the system into smaller subsystems that can be realized by
each teams.
– Developers also select strategies for building the system, such as the
hardware/software strategy, the persistent data management strategy,
access control policy , and the global control flow
The result of system design is a model that includes a subsystem
decomposition, design goals and a clear description of each of
these strategies.
BY: MA
6.1 How the Analysis Models influence System Design
Nonfunctional Requirements
=> Definition of Design Goals
Functional model
=> Subsystem Decomposition
Object model
=> Hardware/Software Mapping, Persistent Data Management
Dynamic model
=> Identification of Concurrency, Global Resource Handling,
Software Control
BY: MA
The following figure Depicts the relationship of system
design with other software engineering activities.
BY: MA
6.2. System Design Concepts
BY: MA
6.2 Subsystems
BY: MA
Subsystem
– Collection of classes, associations, operations, events and
constraints that are closely interrelated with each other
– The objects and classes from the object model are the
“seeds” for the subsystems
– In UML subsystems are modeled as component
diagram.
A subsystem typically corresponds to the amount of work
that a single developer or a single development team can
tackle.
BY: MA
For example, the accident management system we previously
described can be decomposed into a :
– DispatcherInterface subsystem, realizing the user interface for the
Dispatcher;
– FieldOfficerInterface subsystem, realizing the user interface for
the FieldOfficer;
– IncidentManagement subsystem, responsible for the creation,
modification, and storage of Incidents;
– ResourceManagement subsystem, responsible for tracking
available Resources (e.g., FireTrucks and Ambulances);
– MapManagement subsystem for depicting Maps and Locations;
– Notification subsystem, implementing the communication between
BY: MA
FieldOfficer terminals and Dispatcher stations.
This subsystem decomposition is depicted using UML components.
Components are depicted as rectangles with the component icon in the
upper right corner.
Dependencies among components can be depicted with dashed stick
arrows.
In UML, components can represent both logical and physical
components.
– A logical component corresponds to a subsystem that has no
explicit run-time equivalent, for example, individual business
components that are composed together into a single run-time
application logic layer.
– A physical component corresponds to a subsystem that as an
explicit run-time equivalent, for example, a database server.
BY: MA
BY: MA
2.2 Services and Subsystem Interfaces
BY: MA
In general, a subsystem decomposition is the result of
both partitioning and layering.
We first partition the system into top-level subsystems,
which are responsible for specific functionality or run on a
specific hardware node.
Each of the resulting subsystems are, if complexity
justifies it, decomposed into lower- and lower-level layers
until they are simple enough to be implemented by a
single developer.
BY: MA
2.5 Architectural Styles
BY: MA
Once a central repository is well defined, we can easily
add new services in the form of additional subsystems.
The main disadvantage of repository systems is that the
central repository can quickly become a bottleneck, both
from a performance aspect and a modifiability
aspect.
The coupling between each subsystem and the
repository is high, thus making it difficult to change the
repository without having an impact on all subsystems.
BY: MA
2.5.2. Model/View/Controller (MVC)
BY: MA
MVC is well suited for interactive systems, especially
when multiple views of the same model are needed.
MVC can be used for maintaining consistency across
distributed data; however it introduces the same
performance bottleneck as for other repository sty
BY: MA
2.5. 3. Client/server
BY: MA
An information system with a central database is an example of a
client/server architectural style.
The clients are responsible for receiving inputs from the user,
performing range checks, and initiating database transactions when
all necessary data are collected.
The server is then responsible for performing the transaction and
guaranteeing the integrity of the data.
Client/server systems, however, are not restricted to a single server.
On the World Wide Web, a single client can easily access data from
thousands of different servers (Figure 6-19).
BY: MA
BY: MA
2.5.4 Peer-to-peer
BY: MA
2.5.6 Four-tier
The four-tier architectural style is a three-tier architecture in which the
Interface layer is decomposed into a Presentation Client layer and a
Presentation Server layer (Figure 6-23).
The Presentation Client layer is located on the user machines, whereas
the Presentation Server layer can be located on one or more servers.
The four-tier architecture enables a wide range of different presentation
clients in the application, while reusing some of the presentation objects
across clients.
For example, a banking information system can include a host of
different clients, such as a Web browser interface for home users, an
Automated Teller Machine, and an application client for bank
employees. Forms shared by all three clients can then be defined and
processed in the Presentation Server layer, thus removing redundancy
across clients.
BY: MA
BY: MA
3. System Design Activities: From Objects to
Subsystems
BY: MA
3.1. Identifying Design Goals
BY: MA
Performance criteria : include the speed and space
requirements imposed on the system.
– Response time: How soon is a user request acknowledged after
the request has been issued?
– Throughput: How many tasks can the system accomplish in a
fixed period of time?
Memory: How much space is required for the system to run?
End user criteria: include qualities that are desirable
from a users’ point of view.
– Utility: How well does the system support the work of the user?
– Usability: How easy is it for the user to use the system?
BY: MA
Dependability criteria: determine how much effort
should be expended in minimizing system crashes and
their consequences.
– Robustness: Ability to survive invalid user input
– Reliability: Difference between specified and observed behavior
– Availability: Percentage of time that system can be used to
accomplish normal tasks
– Fault tolerance: Ability to operate under erroneous conditions
– Security: Ability to withstand malicious attacks
– Safety: Ability to avoid endangering human lives, even in the
presence of errors and failures
BY: MA
Cost criteria: include the cost to develop the system, to
deploy it, and to administer it.
– Development cost :Cost of developing the initial system
– Deployment cost: Cost of installing the system and training the
users
– Upgrade cost :Cost of translating data from the previous system.
This criteria results in backward compatibility requirements
– Maintenance cost :Cost required for bug fixes and
enhancements to the system
– Administration cost :Cost required to administer the system
BY: MA
Maintenance criteria: determine how difficult it is to
change the system after deployment.
– Extensibility: How easy is it to add functionality or new classes to the
system?
– Modifiability: How easy is it to change the functionality of the system?
– Adaptability: How easy is it to port the system to different application
domains?
– Portability: How easy is it to port the system to different platforms?
– Readability: How easy is it to understand the system from reading the
code?
– Traceability: of requirements How easy is it to map the code to specific
requirements?
BY: MA
Stakeholders have different Design Goals
Hardware/software mapping
– What is the hardware configuration of the system?
– Which node is responsible for which functionality?
– How is communication between nodes realized?
– Which services are realized using existing software components?
Hardware/software mapping describes how subsystems are
assigned to hardware and off-the-shelf components. It also
lists the issues introduced by multiple nodes and software reuse.
Many systems run on more than one computer and depend on
access to an intranet or to the Internet.
The use of multiple computers can address high-performance
needs and interconnect multiple distributed users.
BY: MA
Consequently, we need to examine carefully the allocation
of subsystems to computers and the design of the
infrastructure for supporting communication between
subsystems. These computers are modeled as nodes in
UML deployment diagrams.
BY: MA
Mapping objects into Hardware components
BY: MA
3.4. Identifying and Storing Persistent Data
BY: MA
In general, there are currently three options for storage management:
1. Flat files: Files are the storage provided by operating systems.
2. Relational database.
3. Object-oriented database, it stores data as objects and
associations.
UML object models can be mapped to relational databases, the mapping:
– Each class is mapped to its own table
– Each class attribute is mapped to a column in the table
– An instance of a class represents a row in the table
– One-to-many associations are implemented with a buried foreign key
– Many-to-many associations are mapped to their own tables
– Methods are not mapped
BY: MA
3.5. Providing Access Control
BY: MA
We can represent the access matrix using one of three different
approaches:
– A global access table represents explicitly every cell in the
matrix as a (actor, class, operation) tuple. Determining if an actor
has access to a specific object requires looking up the
corresponding tuple.
– An access control list associates a list of (actor, operation) pairs
with each class to be accessed. Every time an object is accessed,
its access list is checked for the corresponding actor and
operation.
– A capability associates a (class, operation) pair with an actor. A
capability allows an actor access to an object of the class
described in the capability. Denying a capability is equivalent to
BY: MA denying access.
Access Control Matrix Explained
HR Records Gary Sandy Tonya Robyn Samantha
Performance
RWED RW - D ---- ---- RWE -
Reports
• As shown in this table, the matrix consists of one or more subjects (or people)
along one axis and the associated objects (or files) along the other axis. Certain
people are allowed to read (R), write (W), execute (E), and delete (D) files.
Restricted access is indicated by a dash.
• For example, you can see that Gary is allowed to delete the promotion list,
whereas Sandy is allowed to read or execute it. Tonya has full access, while
Samantha has no access whatsoever. When setting up access controls, the
systems administrator must adhere to three primary principles:
BY: MA
Summary
Subsystem decomposition describes the decomposition into
subsystems and the responsibilities of each.
Hardware/software mapping describes how subsystems are
assigned to hardware and off-the-shelf components. It also lists the
issues introduced by multiple nodes and software reuse.
Persistent data management describes the persistent data stored by
the system and the data management infrastructure required for it.
This section typically includes the description of data schemes, the
selection of a database.
Access control and security describes the user model of the system
in terms of an access matrix. This section also describes security
issues, such as the selection of an authentication mechanism, the
use of encryption, and the management of keys.
BY: MA
THANK YOU !
BY: MA