design goals are derived form the non- functional requirements every subsystem is assigned to a...

23
Design goals are derived form the non-functional requirements Every subsystem is assigned to a team and realized independently During system design, we define subsystems in terms of the services they provide

Upload: donald-mccormick

Post on 17-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Design goals are derived form the non-functional requirements

Every subsystem is assigned to a team and realized independently

During system design, we define subsystems in terms of the services they provide

Page 2: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Service: set of related operations

Later in the object design, we define subsystem interfaces in terms of operation they provide

Coupling: dependences between subsystems

Cohesion: dependencies between classes

Page 3: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Two techniques for relating subsystems together:

Layering: subsystems hierarchy

Partioning: organizes the subsystems as peers

Page 4: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Example: Friend system: we have:DispatureInterface subsystemFieldOfficerInterfaceIncidentManagementResourceManagementMapManagementNotificationManagement

Page 5: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Services and subsystem interfaces

Subsystem is characterized by services it provides to other susbsystems

Service: set of operations that share common purpose:

Notification services has operations:Send notificationLook up channelsSubscribe and unsubscribe a channel

Page 6: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Subsystem interface: set of operations available to other subsystems

Subsystem interface has:Operation namesParameters and typesTheir return values

Page 7: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Object design focus more on API, which refines and extends subsystem interfaces

When writing subsystem interfaces, stive to minimize the amount of information provided about implementation

This lowers coupling

Page 8: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Coupling

Refer to the number of dependencies between subsystems

This has to be low so as to be independent

Refer to FRIEND Example!

Page 9: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Coupling is not the end!

Sometimes it produces more complexity

Consumes time and effort

Page 10: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Cohesion

Number of dependencies within subsystem

High cohesion: the objects are related to each other and perform similar tasks

Refer to book example

Page 11: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
Page 12: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
Page 13: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

7+- 2 rule

If a subsystem offers more than 9 services then something is wrong

More than 7+- layer is not good

Page 14: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Layers and partitions

Layer: grouping of subsystems providing related services

Usually layers can only depend on layers at lower level

Has no knowledge of above layers

Page 15: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Closed architecture: layers can access layers below it

Example OSI Open architecture: layers can also

access layers at deeper levels

Page 16: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,
Page 17: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Architectural styles

Software architecture includes:System decompositionGlobal control flowHandling of boundaryconditions

Intersubsystem communication protocoles

Page 18: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Repository

Subsystems must exchange data so that they can work together

We have two ways for doing so:

1- All shared data is held in central database* all subsystems access it* this is called Repository model

Page 19: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

2- each subsystem maintains its own database

Majority of systems with large amount of data use repository model

Page 20: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Repository 2 Subsystems access and modify a single

data structure called repository

Here subsystems are independents

Interact only through repository

Repository has no knowledge of subsystems

Page 21: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Repository 3

They are well suited for applications with

Constantly changing data

Complex data processing tasks

Page 22: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Where it is Used?

Mainly used in DBMS Such as banks and payroll, MIS, CAD Coz easy to manage integrity and

concurrency between subsystems

Repository can sometimes invoke subsystems when the data state change

BLACKBOARD systems

Page 23: Design goals are derived form the non- functional requirements  Every subsystem is assigned to a team and realized independently  During system design,

Repository disadvantages Single repository can be bottleneck

Coupling between subsystem and the repository is high

Evolution is difficult

Distributing repository over number of machines is difficult