Ch 7 System Design Copy

download Ch 7 System Design Copy

of 28

description

designing of objects as per the requirement of system.

Transcript of Ch 7 System Design Copy

Slide 1

1Chapter 14

System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewPrepared By: Ashwin RaiyaniOverview of system designEstimating performanceMaking a Reuse planBreaking system into sub-systemIdentifying ConcurrencyAllocation of Sub SystemsManagement of Data StorageHandling Global ResourcesChoosing a Software Control strategyHandling Boundary ConditionsSetting Trade-off PrioritiesCommon Architectural Style

Topic CoveredPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewTill 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 decide the overall structure and style.System architecture provides the organization of the system into subsystem.

System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewTo construct system architecture, following decision must make:Estimating performanceMaking a Reuse planBreaking system into sub-systemIdentifying ConcurrencyAllocation of Sub SystemsManagement of Data StorageHandling Global ResourcesChoosing a Software Control strategyHandling Boundary ConditionsSetting Trade-off PrioritiesCommon Architectural Style4System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewEstimating PerformanceYou 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.

5System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewMaking a Reuse planTwo different aspect of reuseUsing existing thingCreating 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 task. It require good experience.6System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewReusable thing includes mainlyLibrariesFrameworksPatternsLibraries: 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 accurate and thorough description to help users determine their relevance.7System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewSeveral qualities of good class libraries:Coherence: organized well focusCompleteness: complete behaviorConsistency: consistent names and signature.Efficiency: provide alternative to implementExtensibility: able to define subclasses Genericity: should be parameterized class where appropriate.8System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewFramework: 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 suitable for general use.9System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewPatterns: 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 advantage, carefully created and applied on past problems..10System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewA Framework is much broader in scope and covers an entire application.

11System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewBreaking a system into SubSystemsFirst 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 interrelated.12System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewA 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.13System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewRelationship 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. 14System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewEach 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.15System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewLayers: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)

16System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewLayers architecture are in two forms:Open ArchitectureClose Architecture. 17System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewClosed Architecture:Each layer built only in terms of immediate lower layer.Reduces dependencies between layeredAllows 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 levelSo, it is Less robust compare to close architecture 18System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewUsually Problem statement specifies only the top and bottom layers:Top layers is desired systemBottom layers is available resources (Hardware, Operating system)19System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewPartitions: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 deep.20System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewDiff. between layers and partitionsLayers 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)21System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewCombining layers and partitionsLayers 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 top-level subsystems, you can show their informational flow.Many computations have the form of pipeline; 22System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overview23

Figure 1System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewFor 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 lines and consortium computer.24System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overview25

System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewIdentifying 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 concurrencyDefining Concurrent Tasks.26System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewIdentifying inherent concurrencyState 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.Often problem statement specifies that distinct hardware units can implement the objects.27System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overviewFor 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.

28System DesignPrepared By Jay Dave RKU 2014Object-Oriented Analysis and DesignProcess overview