Date post: | 05-Jan-2016 |
Category: |
Documents |
Upload: | jerome-long |
View: | 215 times |
Download: | 0 times |
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.
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
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.
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)
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.
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
CC20O7N Software Engineering 1 7
Data-Centered ArchitectureData-Centered Architecture
CC20O7N Software Engineering 1 8
Data Flow ArchitectureData Flow Architecture
CC20O7N Software Engineering 1 9
Call and Return ArchitectureCall and Return Architecture
CC20O7N Software Engineering 1 10
Layered ArchitectureLayered Architecture
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
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
CC20O7N Software Engineering 1 13
Flow Flow CharacteristicsCharacteristics
Transform flow
Transaction
flow
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
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
CC20O7N Software Engineering 1 16
FactoringFactoring
typical "worker" modules
typical "decision making" modules
direction of increasing decision making
CC20O7N Software Engineering 1 17
First Level FactoringFirst Level Factoring
main programcontroller
inputcontroller
processingcontroller
outputcontroller
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
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
CC20O7N Software Engineering 1 20
Transaction FlowTransaction Flow
T
incoming flow
action path
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
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
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
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
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
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