41
1 Software Engineering: Software Engineering: A Practitioner A Practitioner s Approach, 6/e s Approach, 6/e Roger Pressman Roger Pressman Chapter 10 Chapter 10 Architectural Design Architectural Design

Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

  • Upload
    ngodan

  • View
    233

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

1

Software Engineering: Software Engineering: A PractitionerA Practitioner’’s Approach, 6/es Approach, 6/e

Roger PressmanRoger Pressman

Chapter 10Chapter 10Architectural DesignArchitectural Design

Page 2: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

2

Why Architecture?Why Architecture?

The architecture is not the operational software. Rather, it is The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: a representation that enables a software engineer to:

(1) (1) analyze the analyze the effectiveness of the effectiveness of the designdesign in meeting its in meeting its stated requirements, stated requirements,

(2) (2) considerconsider architectural architectural alternativesalternatives at a stage when at a stage when making design changes is still relatively easy, and making design changes is still relatively easy, and

(3) (3) reduce the risksreduce the risks associated with the construction of the associated with the construction of the software.software.

Page 3: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

3

Why is Architecture Important?Why is Architecture Important?

Representations of software architecture are an enablerRepresentations of software architecture are an enabler for for communication between all parties (stakeholders) interested in tcommunication between all parties (stakeholders) interested in the he development of a computerdevelopment of a computer--based system.based system.The architecture highlights early design decisionsThe architecture highlights early design decisions that will have a that will have a profound impact on all software engineering work that follows anprofound impact on all software engineering work that follows and, d, as important, on the ultimate success of the system as an operatas important, on the ultimate success of the system as an operational ional entity.entity.Architecture constitutes a relatively small, intellectually grasArchitecture constitutes a relatively small, intellectually graspable pable modelmodel of how the system is structured and how its components of how the system is structured and how its components work together.work together.

Page 4: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

4

Data DesignData Design

At the architectural level At the architectural level ……Design of one or more databases to support the application Design of one or more databases to support the application architecturearchitectureDesign of methods for Design of methods for ‘‘miningmining’’ the content of multiple databasesthe content of multiple databases

navigatenavigate through existing databases in an attempt to extract through existing databases in an attempt to extract appropriate businessappropriate business--level informationlevel informationDesign of a Design of a data warehouse data warehouse -- a large, independent database that has a large, independent database that has access to the data that are stored in databases that serve the saccess to the data that are stored in databases that serve the set of et of applications required by a businessapplications required by a business

Page 5: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

5

Data DesignData Design

At the component level At the component level ……refine data objectsrefine data objects and develop a set of and develop a set of data data abstractionsabstractionsimplement data object attributesimplement data object attributes as one or more data as one or more data structuresstructuresreview data structuresreview data structures to ensure that appropriate to ensure that appropriate relationships have been establishedrelationships have been establishedsimplify data structuressimplify data structures as requiredas required

Page 6: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

6

Data DesignData Design——Component LevelComponent Level1. The 1. The systematic analysissystematic analysis principles applied to function and principles applied to function and behavior should also be applied to data. behavior should also be applied to data. 2. All 2. All data structuresdata structures and the and the operationsoperations to be performed on each to be performed on each should be should be identifiedidentified. . 3. A 3. A data dictionarydata dictionary should be established and used to define both should be established and used to define both data and program design. data and program design. 4. 4. Low levelLow level data design data design decisionsdecisions should be deferred until should be deferred until latelate in in the design process. the design process. 5. The 5. The representationrepresentation of data structure should be of data structure should be known onlyknown only to to those those modulesmodules that must make that must make direct usedirect use of the data contained of the data contained within the structure. within the structure. 6. A 6. A librarylibrary of useful data structures and the operations that may of useful data structures and the operations that may be applied to them should be developed. be applied to them should be developed. 7. A software design and programming language should support 7. A software design and programming language should support the specification and realization of the specification and realization of abstractabstract datadata typestypes..

Page 7: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

7

Architectural StylesArchitectural Styles

DataData--centered architecturescentered architecturesData flow architecturesData flow architecturesCall and return architecturesCall and return architecturesLayered architecturesLayered architecturesObjectObject--oriented architecturesoriented architectures

Each style describes a system category that encompasses: Each style describes a system category that encompasses:

(1)(1) a a set of componentsset of components (e.g., a database, computational modules) that (e.g., a database, computational modules) that perform a function required by a system, perform a function required by a system,

(2)(2) a a set of connectorsset of connectors that enable that enable ““communication, coordination and communication, coordination and cooperationcooperation”” among components, among components,

(3)(3) constraintsconstraints that define how components can be integrated to form that define how components can be integrated to form the system, and the system, and

(4)(4) semantic modelssemantic models that enable a designer to understand the overall that enable a designer to understand the overall properties of a system by analyzing the known properties of its properties of a system by analyzing the known properties of its constituent parts. constituent parts.

Page 8: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

8

DataData--Centered ArchitectureCentered Architecture

Page 9: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

9

Data Flow ArchitectureData Flow Architecture

Page 10: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

10

Call and Return ArchitectureCall and Return Architecture

Page 11: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

11

Layered ArchitectureLayered Architecture

Page 12: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

12

ObjectObject--Oriented ArchitectureOriented Architecture

Figure 10.7 UML relationships for SafeHome security function archetypes(adapted from [BOS00])

Controller

Node

communicates with

Detector Indicator

Page 13: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

13

Architectural PatternsArchitectural Patterns

ConcurrencyConcurrency——applications must handle multiple tasks in a manner that applications must handle multiple tasks in a manner that simulates parallelism simulates parallelism

operating system process managementoperating system process management patternpatterntask schedulertask scheduler patternpattern

PersistencePersistence——Data persists if it survives past the execution of the process Data persists if it survives past the execution of the process that created it. Two patterns are common: that created it. Two patterns are common:

a a database management systemdatabase management system pattern that applies the storage and retrieval pattern that applies the storage and retrieval capability of a DBMS to the application architecturecapability of a DBMS to the application architecture

an an application levelapplication level persistencepersistence pattern that builds persistence features into the pattern that builds persistence features into the application architectureapplication architecture

DistributionDistribution—— the manner in which systems or components within the manner in which systems or components within systems communicate with one another in a distributed environmensystems communicate with one another in a distributed environmentt

AA brokerbroker acts as a acts as a ‘‘middlemiddle--manman’’ between the client component and a server between the client component and a server component.component.

Page 14: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

14

Architectural DesignArchitectural Design

The software must be The software must be placed into contextplaced into contextthe design should define the external entities (other systems, the design should define the external entities (other systems, devices, people) that the software interacts with and the naturedevices, people) that the software interacts with and the natureof the interactionof the interaction

A set of architectural archetypes should be identifiedA set of architectural archetypes should be identifiedAnAn archetypearchetype is an abstraction (similar to a class) that represents is an abstraction (similar to a class) that represents one element of system behaviorone element of system behavior

The designer specifies the structure of the system by The designer specifies the structure of the system by defining and refining software componentsdefining and refining software components that that implement each archetypeimplement each archetype

Page 15: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

15

Architectural ContextArchitectural Context

target system: Security Function

usesuses peershomeowner

Safehome Product

Internet-based system

surveillance function

sensors

control panel

sensors

uses

Page 16: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

16

ArchetypesArchetypes

Figure 10.7 UML relationships for SafeHome security function archetypes(adapted from [BOS00])

Controller

Node

communicates with

Detector Indicator

Page 17: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

17

Component StructureComponent StructureSafeHome Executive

External Communication Management

GUI Internet Interface

Function selection

Security Surveillance Home management

Control panel

processing

detector management

alarm processing

Page 18: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

18

Refined Component StructureRefined Component Structure

sensorsensorsensorsensorsensorsensorsensorsensor

External Communication Management

GUI Internet Interface

Security

Control panel

processing

detector management

alarm processing

Keypad processing

CP display functions

scheduler

sensorsensorsensorsensor

phone communication

alarm

SafeHome Executive

Page 19: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

19

Analyzing Architectural DesignAnalyzing Architectural Design

1. Collect 1. Collect scenariosscenarios. . 2. Elicit 2. Elicit requirementsrequirements, constraints, and environment description. , constraints, and environment description. 3. Describe the 3. Describe the architectural styles/patternsarchitectural styles/patterns that have been that have been chosen to address the scenarios and requirements:chosen to address the scenarios and requirements:

•• module viewmodule view•• process viewprocess view•• data flow viewdata flow view

4. 4. EvaluateEvaluate qualityquality attributes by considered each attribute in attributes by considered each attribute in isolation. isolation. 5. Identify the 5. Identify the sensitivitysensitivity of quality attributes to various of quality attributes to various architectural attributes for a specific architectural style. architectural attributes for a specific architectural style. 6. 6. CritiqueCritique candidate architectures (developed in step 3) using the candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5.sensitivity analysis conducted in step 5.

Page 20: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

20

An Architectural Design MethodAn Architectural Design Methodcustomer requirements

"four bedrooms, three baths,lots of glass ..."

architectural design

Page 21: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

21

Deriving Program ArchitectureDeriving Program Architecture

ProgramProgramArchitectureArchitecture

Page 22: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

22

Partitioning the ArchitecturePartitioning the Architecture

““horizontalhorizontal”” and and ““verticalvertical”” partitioning partitioning are requiredare required

Page 23: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

23

Horizontal PartitioningHorizontal Partitioning

define separate branches of the module define separate branches of the module hierarchy for each major functionhierarchy for each major functionuse control modules to coordinate use control modules to coordinate communication between functionscommunication between functions

function 1function 1 function 3function 3

function 2function 2

Page 24: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

24

Vertical Partitioning:Vertical Partitioning:FactoringFactoring

design so that decision making and work are design so that decision making and work are stratifiedstratifieddecision making modules should reside at the top decision making modules should reside at the top of the architectureof the architecture

workersworkers

decisiondecision--makersmakers

Page 25: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

25

Why Partitioned Architecture?Why Partitioned Architecture?

results in software that is results in software that is easier to testeasier to testleads to software that is leads to software that is easier to maintaineasier to maintainresults in propagation of results in propagation of fewer side effectsfewer side effectsresults in software that is results in software that is easier to extendeasier to extend

Page 26: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

26

Structured DesignStructured Design

objective:objective: to derive a program to derive a program architecture that is partitionedarchitecture that is partitionedapproach:approach:

the Data Flow Diagram (DFD) is mapped into the Data Flow Diagram (DFD) is mapped into a program architecturea program architecturethe Process Specification (PSPEC) and State the Process Specification (PSPEC) and State Transition Diagram (STD) are used to Transition Diagram (STD) are used to indicate the content of each moduleindicate the content of each module

notation:notation: structure chartstructure chart

Page 27: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

27

Flow CharacteristicsFlow Characteristics

Transform flow

Transactionflow

Page 28: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

28

General Mapping ApproachGeneral Mapping Approach

isolateisolate incoming and outgoing flow incoming and outgoing flow boundariesboundaries; for transaction flows, isolate ; for transaction flows, isolate the the transactiontransaction centercenter

working working fromfrom the the boundary outwardboundary outward, , mapmapDFD DFD transformstransforms into corresponding into corresponding modulesmodules

addadd controlcontrol modules as requiredmodules as required

refinerefine the resultant program structurethe resultant program structureusing effective modularity conceptsusing effective modularity concepts

Page 29: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

29

Transform MappingTransform Mapping

data flow model

"Transform" mapping

ab

c

d e fg h

ij

x1

x2 x3 x4

b c

a

d e f g i

h j

Page 30: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

30

FactoringFactoring

typical "worker" modules

typical "decision making" modules

direction of increasing decision making

Page 31: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

31

First Level FactoringFirst Level Factoring

main programcontroller

inputcontroller

processingcontroller

outputcontroller

Page 32: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

32

Second Level MappingSecond Level Mapping

DC

B A

A

C

B

Dmapping from the flow boundary outward

main

control

Page 33: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

33

Transaction FlowTransaction Flow

T

incoming flow

action path

Page 34: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

34

Transaction ExampleTransaction Example

operatorcommands

processoperator commands

fixture setting

report

robot control

fixtureservos

displayscreen

robotcontrolsoftware

in reality, other commandswould also be shown

assemblyrecord

Page 35: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

35

Level 1 Data Flow DiagramLevel 1 Data Flow Diagram

operator fixtureservos

displayscreen

generate

analyzefixturestatus

sendcontrolvalue

determinecommand

type

readoperator

commandsFixture setting

commands

Validcommand

select report

control robot report

robot control

Error msg

status

fixture

assembly record

Page 36: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

36

Level 2 Data Flow DiagramLevel 2 Data Flow Diagram

readcommand

validatecommand

determinetype

readrecord

calculateoutputvalues

formatreport

produceerror msg

readfixturestatus

determinesetting

formatsetting

sendcontrolvalue

command

commandinvalid command

error msg

status

combinedstatus

raw setting

fixture setting

start/stop

record

values

report

valid command

robot control

assemblyrecord

Page 37: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

37

Transaction Mapping PrinciplesTransaction Mapping Principles

isolateisolate the the incoming flow pathincoming flow path

definedefine each of the each of the action pathsaction paths by looking for by looking for the "spokes of the wheel"the "spokes of the wheel"

assess the flowassess the flow on each action pathon each action path

definedefine the the dispatchdispatch and and controlcontrol structurestructure

mapmap each each action path flowaction path flow individuallyindividually

Page 38: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

38

Transaction MappingTransaction Mapping

a

b

t

g

h

d

e

f

i

k

j

l

m

n

Data flow model

x1

b

a

t

x2 x3 x4

d e f g h x3.1 l m n

i j

k

mapping

program structure

Page 39: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

39

Isolate Flow PathsIsolate Flow Paths

readcommand

validatecommand

determinetype

readrecord

calculateoutputvalues

formatreport

produceerror msg

readfixturestatus

determinesetting

formatsetting

sendcontrolvalue

command

commandinvalid command

error msg

status

combinedstatus

raw setting

fixture setting

start/stop

assemblyrecord

record

values

report

valid command

robot control

Page 40: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

40

Map the Flow ModelMap the Flow Modelprocess operator

commands

command input

controller

read command

validate command

produce error

message

determine type

fixture status

controller

report generation controller

send control value

each of the action paths must be expanded further

Page 41: Chapter 10 Architectural Design - Institute for Computing ...marko/onderwijs/systemdevelopment/Ch10.pdf · Roger Pressman Chapter 10 ... profound impact on all software engineering

41

Refining the Structure ChartRefining the Structure Chartprocess operator

commands

command input

controller

read command

validate command

produce error

message

determine type

send control value

read fixture status

determine setting

format setting

read record

calculate output values

format report

fixture status

controller

report generation controller