1 supplementary slides for software engineering: a practitioner's approach, 5/e supplementary...

Post on 13-Dec-2015

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Supplementary Slides Supplementary Slides forfor

Software Engineering:Software Engineering:A Practitioner's A Practitioner's Approach, 5/eApproach, 5/ecopyright © 1996, 2001

R.S. Pressman & Associates, Inc.

For University Use OnlyMay be reproduced ONLY for student use at the university level

when used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.

This presentation, slides, or hardcopy may NOT be used forshort courses, industry seminars, or consulting purposes.

2

Chapter 14Chapter 14Architectural Architectural

DesignDesign

Design -- A multi-step process in which representations of data structure, program structure, interface characteristics, and procedural detail are synthesized.

3

Why Why Architecture?Architecture?The The architecturearchitecture is not the operational software. is not the operational software.

Rather, it is a representation that enables a Rather, it is a representation that enables a software engineer to: software engineer to:

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

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

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

4

Data Data DesignDesign

refine data objects and develop a set of refine data objects and develop a set of data abstractionsdata abstractions

implement data object attributes as one or implement data object attributes as one or more data structuresmore data structures

review data structures to ensure that review data structures to ensure that appropriate relationships have been appropriate relationships have been establishedestablished

simplify data structures as requiredsimplify data structures as required

5

Data Design—Component Data Design—Component LevelLevel

1. The systematic analysis principles applied to function and behavior should also be applied to data.

2. All data structures and the operations to be performed on each should be identified.

3. A data dictionary should be established and used to define both data and program design.

4. Low level data design decisions should be deferred until late in the design process.

6

……Data Design—Component Data Design—Component LevelLevel

5.The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure.

6. A library of useful data structures and the operations that may be applied to them should be developed.

7. A software design and programming language should support the specification and realization of abstract data types.

7

Architectural Architectural StylesStylesEach style describes a system category that encompasses:

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

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

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

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

8

……Architectural Architectural StylesStyles

Small Number of architectural Small Number of architectural stylesstyles

Data-centered architecturesData-centered architectures Data flow architecturesData flow architectures Call and return architecturesCall and return architectures Object-oriented architecturesObject-oriented architectures Layered architecturesLayered architectures

9

Data-Centered Data-Centered ArchitectureArchitecture

10

Data Flow Data Flow ArchitectureArchitecture

11

Call and Return Call and Return ArchitectureArchitecture

12

Layered Layered ArchitectureArchitecture

13

Analyzing Architectural Analyzing Architectural DesignDesign

1.1. Collect scenarios.Collect scenarios.2.2. Elicit requirements, constraints, and Elicit requirements, constraints, and

environment description. environment description. 3. Describe the architectural styles/patterns 3. Describe the architectural styles/patterns

that have been chosen to address the that have been chosen to address the scenarios and requirements:scenarios and requirements:

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

14

...Analyzing Architectural ...Analyzing Architectural DesignDesign

4. Evaluate quality attributes by considered 4. Evaluate quality attributes by considered each attribute in isolation. each attribute in isolation.

5. Identify the sensitivity of quality attributes 5. Identify the sensitivity of quality attributes to various architectural attributes for a to various architectural attributes for a specific architectural style. specific architectural style.

6. Critique candidate architectures 6. Critique candidate architectures (developed in step 3) using the sensitivity (developed in step 3) using the sensitivity analysis conducted in step 5. analysis conducted in step 5.

15

An Architectural Design An Architectural Design MethodMethod

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

customer requirements

architectural design

16

Architectural Design Architectural Design ProcessProcess

Six-step ProcessSix-step Processthe type of information flow is establishedthe type of information flow is establishedflow boundary are indicatedflow boundary are indicateddata flow diagram is mapped into program data flow diagram is mapped into program

structurestructurecontrol hierarchy is definedcontrol hierarchy is definedresultant structure is refined using design resultant structure is refined using design

measures heuristicsmeasures heuristicsArchitectural description is refined and elaboratedArchitectural description is refined and elaborated

17

Mapping RequirementsMapping Requirements

Transform FlowTransform Flow

A Btransformcenter

incoming flow outgoing flows

C

18

… … Mapping RequirementsMapping Requirements

Transaction FlowTransaction Flow

TTransactioncenter

Transaction Action

paths

19

Transform Transform MappingMapping

Allow data flow diagram (DFD) with Allow data flow diagram (DFD) with transform flow characteristics to be transform flow characteristics to be mapped into a predefined template mapped into a predefined template for program structurefor program structure

20

Transform Mapping Transform Mapping (cont)(cont)

Design StepsDesign StepsStep 1Step 1. Review the fundamental system model.. Review the fundamental system model.Step 2Step 2. Review and refine data flow diagrams . Review and refine data flow diagrams

for the software.for the software.Step 3Step 3. Determine whether DFD has transform . Determine whether DFD has transform

or transaction flow characteristics. or transaction flow characteristics. in general---transform flowin general---transform flowspecial case---transaction flowspecial case---transaction flow

21

Transform Mapping Transform Mapping (cont)(cont)

Step 4Step 4. Isolate the transform center by specifying . Isolate the transform center by specifying incoming and outgoing flow boundariesincoming and outgoing flow boundariesdifferent designers may select slightly differentlydifferent designers may select slightly differentlytransform center can contain more than one transform center can contain more than one

bubble.bubble. Step 5Step 5. Perform “first-level factoring”. Perform “first-level factoring”

program structure represent a top-down program structure represent a top-down distribution control.distribution control.

factoring results in a program structure(top-factoring results in a program structure(top-level, middle-level, low-level)level, middle-level, low-level)

number of modules limited to minimum.number of modules limited to minimum.

22

Level 0 SafeHome DFD-Context Level 0 SafeHome DFD-Context LevelLevel

Next

23

Level 1 SafeHome Level 1 SafeHome DFDDFD

Next

24

Level 2 SafeHome DFD – Refines the Level 2 SafeHome DFD – Refines the monitor sensors processmonitor sensors process

TM1

25

Level 3 DFD for Monitor Sensors with Level 3 DFD for Monitor Sensors with flow boundariesflow boundaries

TM2

26

First level factoring for monitor sensorsFirst level factoring for monitor sensors

Next

27

Transform Mapping Transform Mapping (cont)(cont)

Step 6Step 6. Perform “second-level factoring”. Perform “second-level factoring”mapping individual transforms(bubbles) to mapping individual transforms(bubbles) to

appropriate modules.appropriate modules.factoring accomplished by moving factoring accomplished by moving

outwards from transform center boundary.outwards from transform center boundary. Step 7Step 7. Refine the first iteration program . Refine the first iteration program

structure using design heuristics for structure using design heuristics for improved software quality.improved software quality.

28

Second Level Second Level FactoringFactoring

TM3

29

First-Iteration program structure First-Iteration program structure for monitor sensorsfor monitor sensors

Next

30

Refined program structure for monitor Refined program structure for monitor sensorssensors

31

Transaction Transaction MappingMappingLevel 2 DFD for user transaction subsystem with

flow boundaries

32

TrTranansasactiction on MaMappipping ng DeDesigsignn

Step 1.Review the fundamental system model.Step 1.Review the fundamental system model. Step 2.Review and refine DFD for the softwareStep 2.Review and refine DFD for the software Step 3.Determine whether the DFD has transform or Step 3.Determine whether the DFD has transform or

transaction flow characteristicstransaction flow characteristics Step 4Step 4. Identify the transaction center and flow . Identify the transaction center and flow

characteristics along each of the action pathscharacteristics along each of the action pathsisolate incoming path and all action pathsisolate incoming path and all action pathseach action path evaluated for its flow each action path evaluated for its flow

characteristic.characteristic.

33

Transaction Mapping Transaction Mapping (cont)(cont)

Step 5Step 5. Map the DFD in a program structure . Map the DFD in a program structure amenable to transaction processingamenable to transaction processingincoming branch incoming branch

bubbles along this path map to modulesbubbles along this path map to modulesdispatch branchdispatch branch

dispatcher module controls all subordinate dispatcher module controls all subordinate action modulesaction modules

each action path mapped to each action path mapped to corresponding structurecorresponding structure

34

TrTranansasactiction on MaMappippingng

Next

35

First level factoring for user interaction First level factoring for user interaction subsystemsubsystem

Next

36

Transaction Mapping Transaction Mapping (cont)(cont)

Step 6Step 6. Factor and refine the transaction . Factor and refine the transaction structure and the structure of each action structure and the structure of each action pathpath

Step 7Step 7. Refine the first iteration program . Refine the first iteration program structure using design heuristics for structure using design heuristics for improved software qualityimproved software quality

37

First-iteration architecture for user First-iteration architecture for user interaction subsysteminteraction subsystem

38

Refining the architectural Refining the architectural designdesign

A processing narrative must be developed A processing narrative must be developed for each modulefor each module

An interface description is provided for each An interface description is provided for each modulemodule

Local and global data structures are definedLocal and global data structures are defined All design restrictions/limitations are notedAll design restrictions/limitations are noted A design review is conductedA design review is conducted ““Optimization” is considered (if required and Optimization” is considered (if required and

justified) justified)

40

☺☺End of ChapterEnd of Chapter

top related