+ All Categories
Home > Documents > CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 –...

CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 –...

Date post: 05-Jan-2016
Category:
Upload: jerome-long
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
26
CC20O7N Software Engineering 1 1 Structured Design Structured Design (Yourdon) (Yourdon) ( based on Pressman’s Chapter 14 – 5 ( based on Pressman’s Chapter 14 – 5 th th edition or edition or Chapter 10 - 6 Chapter 10 - 6 th th edition) edition) 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.
Transcript
Page 1: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 1

Structured Design (Yourdon)Structured Design (Yourdon)

( based on Pressman’s Chapter 14 – 5( based on Pressman’s Chapter 14 – 5thth edition or edition or Chapter 10 - 6Chapter 10 - 6thth edition) edition)

copyright © 1996, 2001, 2005

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.

Page 2: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 2

AgendaAgenda

1. Architectural Design (a brief overview)

1.1 Introduction

1.2 Data design

1.3 Architectural styles

2. Structured Design (Yourdon, Constantine)

Transform mapping technique

Transaction mapping technique

Page 3: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 3

Architectural DesignArchitectural Design

• It represents the structure of data and program components (modules) in the system.

• It considers the architectural style that the system will take, the structure and properties of the components (modules) and interrelationships that occur among all architectural components.

• Architectural design begins with data design and then proceeds to the derivation of one or more representations of the architectural structure of the system.

Page 4: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 4

Architectural Design (cont.)Architectural Design (cont.)• Alternative architectural styles (or patterns) may be

analysed in an attempt to derive the structure that is best suited to customer requirements and quality attributes. Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that captures essential elements of a software architecture.

• Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact. When it is strictly described and commonly available, it is a pattern.

• Once the alternative has been selected, the architecture is elaborated using an architectural (high level) design method (e.g. Structured Design – Yourdon)

Page 5: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 5

Data DesignData Design

• The data design activity translates data object (entities) defined as part of analysis model (see lectures 3 and 4, etc) into data structures at the software component level, and when necessary, a database architecture at the application level.

• In some situations, a database must be designed and built specifically for a new system. In others, one or more existing databases are used.

Page 6: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 6

Architectural StylesArchitectural Styles

• Data-centered architectures

• Data flow architectures

• Call and return architectures

• Object-oriented architectures

• Layered architectures

Each style describes a system Each style describes a system category that encompasses: (1) a set category that encompasses: (1) a set of components (e.g., a database, of components (e.g., a database, computational modules) that perform computational modules) that perform a function required by a system, (2) a a function required by a system, (2) a set of connectors that enable set of connectors that enable “communication, coordination and “communication, coordination and cooperation” among components, (3) cooperation” among components, (3) constraints that define how constraints that define how components can be integrated to components can be integrated to form the system, and (4) semantic form the system, and (4) semantic models that enable a designer to models that enable a designer to understand the overall properties of a understand the overall properties of a system by analyzing the known system by analyzing the known properties of its constituent parts. properties of its constituent parts.

More examples of More examples of architectural patterns architectural patterns include the following:include the following:

• Layers Layers • Presentation-Presentation-abstraction-control abstraction-control • Three-tier Three-tier • Pipeline Pipeline • Implicit invocation Implicit invocation • Blackboard system Blackboard system • Peer-to-peer Peer-to-peer • Service-oriented Service-oriented architecture architecture • Naked objects Naked objects • Model-View-ControllerModel-View-Controller

Page 7: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 7

Data-Centered ArchitectureData-Centered Architecture

Page 8: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 8

Data Flow ArchitectureData Flow Architecture

Page 9: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 9

Call and Return ArchitectureCall and Return Architecture

Page 10: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 10

Layered ArchitectureLayered Architecture

Page 11: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 11

Why Partitioned Architecture?Why Partitioned Architecture?

• results in software that is easier to test

• leads to software that is easier to maintain

• results in propagation of fewer side effects

• results in software that is easier to extend

Page 12: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 12

Structured Design (Yourdon, Structured Design (Yourdon, Constantine)Constantine)

• objective: to derive a program architecture that is partitioned

• approach: – the DFD is mapped into a program

architecture– the Pspec and STD are used to indicate

the content of each module

• notation: structure chart

Page 13: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 13

Flow Flow CharacteristicsCharacteristics

Transform flow

Transaction

flow

Page 14: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 14

General Mapping ApproachGeneral Mapping Approach

isolate incoming and outgoing flow isolate incoming and outgoing flow boundaries; for transaction flows, isolate boundaries; for transaction flows, isolate

the transaction centerthe transaction center

working from the boundary outward, mapworking from the boundary outward, mapDFD transforms into corresponding DFD transforms into corresponding modulesmodules

add control modules as requiredadd control modules as required

refine the resultant program structurerefine the resultant program structureusing effective modularity conceptsusing effective modularity concepts

Page 15: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 15

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 16: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 16

FactoringFactoring

typical "worker" modules

typical "decision making" modules

direction of increasing decision making

Page 17: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 17

First Level FactoringFirst Level Factoring

main programcontroller

inputcontroller

processingcontroller

outputcontroller

Page 18: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 18

Second Level MappingSecond Level Mapping

D

C

B A

A

C

B

Dmapping from the flow boundary outward

main

control

Page 19: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 19

Transaction Mapping PrinciplesTransaction Mapping Principles

isolate the incoming flow pathisolate the incoming flow path

define each of the action paths by looking for define each of the action paths by looking for the "spokes of the wheel"the "spokes of the wheel"

assess the flow on each action pathassess the flow on each action path

define the dispatch and control structuredefine the dispatch and control structure

map each action path flow individuallymap each action path flow individually

Page 20: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 20

Transaction FlowTransaction Flow

T

incoming flow

action path

Page 21: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 21

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 22: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 22

Transaction ExampleTransaction Example

operatorcommands

processoperator commands

fixture setting

report

robot control

fixtureservos

displayscreen

robotcontrolsoftware

in reality, other commandswould also be shown

assemblyrecord

Page 23: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 23

Level 2 Data Flow DiagramLevel 2 Data Flow Diagram

readcommand

validatecommand

determinetype

readrecord

calculateoutputvalues

formatreport

produceerror msg

readfixturestatus

determinesetting

formatsetting

sendcontrolvalue

command

command

invalid command

error msg

status

combinedstatus

raw setting

fixture setting

robot control

start/stop

assemblyrecord

record

values

report

valid command

Page 24: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 24

Isolate Flow PathsIsolate Flow Paths

readcommand

validatecommand

determinetype

readrecord

calculateoutputvalues

formatreport

produceerror msg

readfixturestatus

determinesetting

formatsetting

sendcontrolvalue

command

command

invalid command

error msg

status

combinedstatus

raw setting

fixture setting

robot control

start/stop

assemblyrecord

record

values

report

valid command

Page 25: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 25

Map the Flow ModelMap the Flow Model

process 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 26: CC20O7N Software Engineering 1 1 Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5 th edition or Chapter 10 - 6 th edition) Structured Design.

CC20O7N Software Engineering 1 26

Refining the Structure ChartRefining the Structure Chart

process 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


Recommended