Lecture 1 - SE DesignRevision
Lecture 1 - SE DesignRevision
2
LETS MOVE ON!!
3
Software Design Engineering
Unit 2
Software Design Process
4
DESIGN FOCUSES ON FOUR
MAJOR AREAS
Use Cases Data Flow Diagrams
Activity Diagrams Control Flow Diagrams
Processing Narratives
Component
level Design
Interface Design
Class Diagram
Analysis Package
Data/Class Design
CRC Model
5
Software Design
– General definition of design
• “… the process of applying various techniques and
principles for the purpose of defining a device, a
process, or a system in sufficient detail to permit its
physical realization.”
– Goal:
• To produce a model or representation that will later
be built
– Engineering or Art?
6
Software Design Model
Functional Information
model model
Data design
Behavioral
model Architectural
Design design
Interface
Design Code
Other Integrated
requirements Procedural Program & validated
design modules Test
software
7
Software Design Fundamentals
– Good design is not accomplished by chance
8
What is System Design
• The transformation of the analysis model into a
system model.
9
THE END RESULT OF SYSTEM DESIGN
• The end result is
– A model that includes:
– A list of design goals
• The decomposition of the system into subsystems
• The selection of off-the-shelf software (if required)
• The selection of persistent data management
infrastructure
• The handling of boundary conditions
10
Systems Design Overview
As a result of the analysis a requirements
model results which describes:
11
Systems Design Overview
The system design includes :
❖ A list of design goals
o Describing the qualities of the system that developers should optimize
❖ The decomposition of the system into subsystems (software architecture)
o Describing the subsystem decomposition in terms of subsystem
responsibilities,
o Dependencies among subsystems,
o Subsystem mapping to hardware,
o Major policy decisions such as control flow, access control, and data storage
❖ The selection of off-the-shelf and legacy components
❖ The selection of a persistent data management infrastructure
The handling of boundary conditions
12
Systems Design Concepts
The customers understand what the system is
to do and the developers must understand
how the system is to work.
• Conceptual Design :
Written in the customer’s language
Contains no technical jargon
Describes the functions of the system
Independent of implementation
Linked to the requirements documents
13
Systems Design Concepts
• Technical Design :
• A description of the major hardware
components and their functions
• The hierarchy and function of the
software
• The data structures and the data flow
14
Subsystems and classes
To reduce complexity of the solution domain we
decompose the system into simpler parts, called
subsystems, which are made of a number of solution
domain classes.
15
Systems Design
Wasserman (1995) suggests that designs are created in
one of five ways:
17
Systems Design
18
Software Design
19
Design Principles
• How is software design both a process and a
model?
By process we mean the sequence of steps that enable the designer to describe all aspects
of the software to be built. The design model begins representing the totality of things to
be built and slowly refines the thing to provide guidance for constructing each detail.
The model provides a variety of different views of the computer software.
20
System Modeling
21
USER INTERFACE PROCESSING
MAINTENANCE
AND SELF TEST
22
BROWSER BUILDER
AUTHENTICATION, ASSIGNMENT
ASSIGNMENT, INFORMATION
REPORT
AUTHENTICATION
EMAIL
SHIMMER INFORMATION
MAILER
AUTHENTICATOR LOGIN/PASSWORD
SYSTEM
CONFIGURATION
CONTROL
CONFIGURATION
Mapping Requirements to Software Architecture
T Action Path
Transaction
center
Transaction Flow
Action Path
Transform Flow
• Flow boundaries indicated
• DFD is mapped into program structure
• Control hierarchy defined
• Resultant structure refined using design measures
and heuristics
• Architectural description refined and elaborated
Program
Architecture
•Partitioning the Architecture
• “horizontal” and “vertical”
partitioning are required
•Horizontal Partitioning
• define separate branches of the module
hierarchy for each major function
• use control modules to coordinate
communication between functions
function 1 function 3
function 2
•Vertical Partitioning: Factoring
• design so that decision making and
work are stratified
• decision making modules should
reside at the top of the architecture
decision-makers
workers
Why Partitioned Architecture?
b g h
a e f
d
c i
j
data flow model
x1 "Transform" mapping
x2 x3 x4
b c d e f g i
a h j
Factoring
direction of increasing
decision making typical "decision
making" modules
main
program
controller
B A
A
B
C
incoming flow
action path
T
•Transaction Mapping Principles
isolate the incoming flow path
define each of the action paths by looking for
the "spokes of the wheel"
assess the flow on each action path
define the dispatch and control structure
map each action path flow individually
Transaction Mapping
b t b t
g i mapping
a x2 x3 x4
l h
k
m j d e f g h x3.1 l m n
n i j
k
Isolate Flow Paths
error msg
command
produce fixture setting
read error msg
status format
command
determine setting
invalid command read
validate setting
command command fixture raw setting
status combined
determine
valid command status
type
read
robot control record record
calculate
output
send
values values
control
format
value
assembly report report
start/stop record
Map the Flow Model
process
operator
commands
command determine
input type
controller
command determine
input type
controller
THE END