8
1 Software Engineering: A Practitioner’s Approach, 6/e Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Chapter 9: 9.4-9.6 Design Engineering Design Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May 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.

1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

Embed Size (px)

DESCRIPTION

3 Design Model Elements Data elements Data elements Data model --> data structures Data model --> data structures Data model --> database architecture Data model --> database architecture Architectural elements Architectural elements Application domain Application domain Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations Patterns and “styles” (Chapter 10) Patterns and “styles” (Chapter 10) Interface elements Interface elements the user interface (UI) the user interface (UI) external interfaces to other systems, devices, networks or other producers or consumers of information external interfaces to other systems, devices, networks or other producers or consumers of information internal interfaces between various design components internal interfaces between various design components. Component elements Component elements Deployment elements Deployment elements

Citation preview

Page 1: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

1

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

Chapter 9: 9.4-9.6Chapter 9: 9.4-9.6Design EngineeringDesign Engineering

copyright © 1996, 2001, 2005R.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.

Page 2: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

2

The Design ModelThe Design Model

process dimension

architecture elements

interface elements

component-level elements

deployment-level elements

low

high

class diagrams analysis packages CRC models collaboration diagrams

use-cases - text use-case diagrams activity diagrams swim lane diagrams collaboration diagrams data flow diagrams

control-flow diagrams processing narratives

data flow diagrams control-flow diagrams processing narratives

state diagrams sequence diagrams

state diagrams sequence diagrams

design class realizations subsystems collaboration diagrams

design class realizations subsystems collaboration diagrams

refinements to:

deployment diagrams

class diagrams analysis packages CRC models collaboration diagrams

component diagrams design classes activity diagrams sequence diagrams

refinements to:component diagrams design classes activity diagrams sequence diagrams

design class realizations subsystems collaboration diagrams component diagrams design classes activity diagrams sequence diagrams

analysis model

design model

Requirements: constraints interoperability targets and configuration

technical interface design Navigation design GUI design

Page 3: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

3

Design Model ElementsDesign Model Elements Data elementsData elements

Data model --> data structuresData model --> data structures Data model --> database architectureData model --> database architecture

Architectural elementsArchitectural elements Application domainApplication domain Analysis classes, their relationships, collaborations and behaviors Analysis classes, their relationships, collaborations and behaviors

are transformed into design realizationsare transformed into design realizations Patterns and “styles” (Chapter 10)Patterns and “styles” (Chapter 10)

Interface elementsInterface elements the user interface (UI) the user interface (UI) external interfaces to other systems, devices, networks or other external interfaces to other systems, devices, networks or other

producers or consumers of informationproducers or consumers of information internal interfaces between various design componentsinternal interfaces between various design components.

Component elementsComponent elements Deployment elementsDeployment elements

Page 4: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

4

Interface ElementsInterface Elements

ControlPanel

LCDdisplay LEDindicators keyPadCharacteristics speaker wirelessInterface

readKeyStroke() decodeKey() displayStatus() lightLEDs() sendControlMsg()

Figure 9.6 UML interface representation for ControlPanel

KeyPad

readKeystroke() decodeKey()

<<interface>>

WirelessPDA

KeyPad

MobilePhone

Page 5: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

5

Component ElementsComponent Elements

SensorManagementSensor

Page 6: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

6

Deployment ElementsDeployment Elements

Figure 9.8 UML deployment diagram for SafeHome

Personal computer

Security

homeManagement

Surveillance

communication

Control Panel CPI server

Security homeownerAccess

externalAccess

Page 7: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

7

Design PatternsDesign Patterns The best designers in any field have an uncanny ability to see The best designers in any field have an uncanny ability to see

patterns that characterize a problem and corresponding patterns patterns that characterize a problem and corresponding patterns that can be combined to create a solutionthat can be combined to create a solution

A description of a design pattern may also consider a set of A description of a design pattern may also consider a set of design forces. design forces.

Design forcesDesign forces describe non-functional requirements (e.g., ease of describe non-functional requirements (e.g., ease of maintainability, portability) associated the software for which the maintainability, portability) associated the software for which the pattern is to be applied. pattern is to be applied.

The The pattern characteristicspattern characteristics (classes, responsibilities, and (classes, responsibilities, and collaborations) indicate the attributes of the design that may be collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of adjusted to enable the pattern to accommodate a variety of problems.problems.

Page 8: 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: 9.4-9.6 Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter

8

FrameworksFrameworks A A framework framework is not an architectural pattern, but is not an architectural pattern, but

rather a skeleton with a collection of “plug rather a skeleton with a collection of “plug points” (also called points” (also called hookshooks and and slotsslots) that enable ) that enable it to be adapted to a specific problem domain. it to be adapted to a specific problem domain.

Gamma et al note that:Gamma et al note that: Design patterns are more abstract than frameworks.Design patterns are more abstract than frameworks. Design patterns are smaller architectural elements than Design patterns are smaller architectural elements than

frameworksframeworks Design patterns are less specialized than frameworksDesign patterns are less specialized than frameworks