Sei sulla pagina 1di 28

Object-Oriented Analysis and Design

Process overview

Chapter 14

System Design
RKU
2014

Prepared By Jay Dave

Object-Oriented Analysis and Design


Process overview

Topic Covered

Overview of system design


Estimating performance
Making a Reuse plan
Breaking system into sub-system
Identifying Concurrency
Allocation of Sub Systems
Management of Data Storage
Handling Global Resources
Choosing a Software Control strategy
Handling Boundary Conditions
Setting Trade-off Priorities

RKUCommon Architectural Style


2014

Prepared By Jay Dave

Object-Oriented Analysis and Design


Process overview

System Design

Till now, focus was on WHAT needs to


be done, independent of HOW it is
done.
During System design, decide how
the problem will be solved.
Need to apply high level strategy
System Architecture for solving the
problem and building a solutions.
During System design, developer
the overall Prepared
structure
and
RKU decide
By Jay Dave
2014

Object-Oriented Analysis and Design


Process overview

System Design

To construct system architecture, following


decision must make:
Estimating performance

RKU
2014

Making a Reuse plan


Breaking system into sub-system
Identifying Concurrency
Allocation of Sub Systems
Management of Data Storage
Handling Global Resources
Choosing a Software Control strategy
Handling Boundary Conditions
Setting Trade-off Priorities
Common Architectural Style Prepared By Jay Dave

Object-Oriented Analysis and Design


Process overview

System Design

RKU
2014

Estimating Performance
You should prepare rough
performance estimate.
Purpose of this task to determine if
the system is feasible.
You will have to make simplifying
assumptions.(i.e. assume factors)
Dont worry about detail just
approximate, estimate and guess.
Prepared By Jay Dave

Object-Oriented Analysis and Design


Process overview

System Design

Making a Reuse plan


Two different aspect of reuse
Using existing thing
Creating reusable new things.
Much easier to reuse existing things than
to design new things.
Most developer reuse existing thing and
only a small fraction of developers create
new things.
Creating reusable new things is not easy
RKU
2014

Prepared By Jay Dave

Object-Oriented Analysis and Design


Process overview

System Design

Reusable thing includes mainly


Libraries
Frameworks
Patterns

Libraries: it is a collection of classes


that are useful in many contexts.
Classes must be organized, so users can
find them. Online searching can help
more.
Classes
must have accuratePrepared
and Bythorough
RKU
Jay Dave
2014

Object-Oriented Analysis and Design


Process overview

System Design

Several qualities of good class


libraries:

RKU
2014

Coherence: organized well focus


Completeness: complete behavior
Consistency: consistent names and
signature.
Efficiency: provide alternative to
implement
Extensibility: able to define
subclasses
Prepared By Jay Dave

Object-Oriented Analysis and Design


Process overview

System Design

Framework: it is skeletal structure


of a program that must be
elaborated to build complete
application.
Framework consists of more than just
the classes. It is more specific to
individual application.
Framework class libraries are
typically application specific and not
RKU suitable for general use.
Prepared By Jay Dave
2014

Object-Oriented Analysis and Design


Process overview

System Design

Patterns: A pattern is proven


solution to a general problem.
There are patterns for analysis,
architecture, design and
implementation.
A pattern comes with guideline on
when to use it, as well as exchange
on its use.
There are many benefits. One
RKU advantage, carefully created and
Prepared By Jay Dave
2014

10

Object-Oriented Analysis and Design


Process overview

System Design

A Framework is much broader in


scope and covers an entire
application.

RKU
2014

Prepared By Jay Dave

11

Object-Oriented Analysis and Design


Process overview

System Design

Breaking a system into SubSystems


First steps in system design is to divide the
system into pieces.
Each major pieces of a system is called Sub
System.
Each subsystem is based on common
functionality, common physical location and
common hardware.
A subsystem is not an object nor a function.
But a group of classes, association
operations, events and constraints that are
RKU
Prepared By Jay Dave
12
2014 interrelated.

Object-Oriented Analysis and Design


Process overview

System Design

A Sub system always identified by its


Service it provides.
A Service is group of related functions
that share common purpose.
For. File system within an operating
system is a subsystem.

Each subsystem interface specifies the


form of all interactions and information
flow between them.
RKU
2014

Prepared By Jay Dave

13

Object-Oriented Analysis and Design


Process overview

System Design

Relationship between two subsystems can be


client-server or peer-to-peer.
Client-Server Relationship:
Client calls on the server, which performs some
services and replies with a result.
Client must know server interface, but server
did not know its clients interface.
Because client initiates all interactions.
Peer-to-Peer Relationship:
A communication from one subsystem to
another is not necessarily followed by an
immediate response.
RKU
2014

Prepared By Jay Dave

14

Object-Oriented Analysis and Design


Process overview

System Design

Each subsystem must know each others


interfaces.
Therefore, these interactions are more
complicated.

So Decomposition of system into


subsystem may be organized as a
sequence of horizontal layers or
vertical partitions.
RKU
2014

Prepared By Jay Dave

15

Object-Oriented Analysis and Design


Process overview

System Design

Layers:
A layered system is ordered set of tiers.
Which are arranged in a way that, one on
the top and the remaining below that.
Information is one way only subsystem
knows about the layers below it but has
no information of layers above it.
Client-Server relationship exists between
upper layers(users of services) and lower
layers (providers of services)
RKU
2014

Prepared By Jay Dave

16

Object-Oriented Analysis and Design


Process overview

System Design

Layers architecture are in two forms:


Open Architecture
Close Architecture.

RKU
2014

Prepared By Jay Dave

17

Object-Oriented Analysis and Design


Process overview

System Design

Closed Architecture:
Each layer built only in terms of immediate lower
layer.
Reduces dependencies between layered
Allows changes easily.

Open Architecture:
A layer can use features of any lower layer to any
depth.
It reduces the need to redefine operation at each
level.
Changes to sub system can affect at higher level
So, it is Less robust compare to close architecture
RKU
2014

Prepared By Jay Dave

18

Object-Oriented Analysis and Design


Process overview

System Design

Usually Problem statement specifies


only the top and bottom layers:
Top layers is desired system
Bottom layers is available resources
(Hardware, Operating system)

RKU
2014

Prepared By Jay Dave

19

Object-Oriented Analysis and Design


Process overview

System Design

Partitions:
Vertically divide a system into
several independent or weakly
coupled subsystem.
For ex. Computer operating system
includes a file system, process control,
virtual memory management and device
control.

Sub system may have some


information of each other but not
RKU
2014

Prepared By Jay Dave

20

Object-Oriented Analysis and Design


Process overview

System Design

Diff. between layers and partitions


Layers vary in their level. While
partitions only divide a system into
pieces.( all have same level)
Layers depend on each others(client
Server relationship). While partitions are
independent (peer to peer relationship)

RKU
2014

Prepared By Jay Dave

21

Object-Oriented Analysis and Design


Process overview

System Design

Combining layers and partitions


Layers can be partitioned, and
partitions can be layered.
Most large system require a mixture
of layers and partitions. (Refer fig 1)
Once you have identified the toplevel subsystems, you can show their
informational flow.
Many computations have the form of
RKU
Prepared By Jay Dave
22
2014 pipeline;

Object-Oriented Analysis and Design


Process overview

System Design

RKU
2014

Figure 1
Prepared By Jay Dave

23

Object-Oriented Analysis and Design


Process overview

System Design

For ATM example: there are 3 major


sub systems. ATM stations,
Consortium Computer and Bank
computes.
Consortium computer communicate
with all ATM and bank computers
( comm. Links)
Architecture uses station code and
bank code to differentiate phone
RKU lines and consortium computer.
Prepared By Jay Dave
2014

24

Object-Oriented Analysis and Design


Process overview

System Design

RKU
2014

Prepared By Jay Dave

25

Object-Oriented Analysis and Design


Process overview

System Design

Identifying Concurrency:
Identify the objects that must be
active concurrently and objects that
have mutually exclusive activity.
You can fold the objects into a single
thread of control or task.
Two steps:
Identifying inherent concurrency
Defining Concurrent Tasks.
RKU
2014

Prepared By Jay Dave

26

Object-Oriented Analysis and Design


Process overview

System Design

Identifying inherent concurrency


State model guide to identifying
concurrency.
If two objects receive events at the
same time without interacting then its
called inherently concurrent.
If event are unsynchronized, you cant
fold the objects into a single thread of
control.
RKUOften problem statement specifies that
Prepared By Jay Dave
27
2014

Object-Oriented Analysis and Design


Process overview

System Design

For Example ATM: it was stated each


machine should continue to operate
locally in event of central system
failure, then would have no choice
but to include a CPU in each ATM
machine with full control program.

RKU
2014

Prepared By Jay Dave

28

Potrebbero piacerti anche