0% found this document useful (0 votes)
38 views49 pages

Lecture 1 - SE DesignRevision

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views49 pages

Lecture 1 - SE DesignRevision

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

CAN YOU REMEMBER

WHAT YOU DID IN SE:


ANALYSIS AND DESIGN

University of Technology, Jamaica 1


SCIT 2023/2024
Revision
• REQUIREMENTS ELICITATION
• PROJECT PLANNING
• FEASIBILITY STUDY
• REQUIREMENTS ANALYSIS
• REQUIREMENTS SPECIFICATION

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

State Chart Diagram


Sequence Diagram
Architectural 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

“The beginning of wisdom for a computer


programmer is to recognize the difference
between getting a program to work, and
getting it right.” [Jackson]

– Fundamental concepts provide the framework


for “getting it right”

8
What is System Design
• The transformation of the analysis model into a
system model.

• During the system design, developers define the


design goals of the project and decompose the
system into smaller subsystems that can be
realized by individual teams.

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:

• A set of nonfunctional requirements and constraints


• A use case model, describing the functionality of the
system from the actors’ point of view
• An object model, describing the entities manipulated
by the system
• A sequence diagram for each use case, showing the
sequence of interaction among the objects
participating in the case

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.

Every design methods involves some kind of


decomposition, starting with a high-level depiction of the
system’s key elements and creating lower-level looks at
how the system’s features and functions will fit together.

15
Systems Design
Wasserman (1995) suggests that designs are created in
one of five ways:

1. Modular decomposition: The designer begins with a


high-level description of the functions that are to be
implemented and builds lower-level explanations of how
each component will be organized and related to other
components

2. Data-oriented decomposition: Based on external


data structures. The high-level description depicts
general data structures and lower-level descriptions
provide details on what data elements will be involved
and how they are related.
16
Systems Design
3 Event-oriented decomposition: Based on events that
the system must handle and uses information about how
events change the system’s state.

4 Outside-in design: This black-box approach is based


on user inputs to the system. That is the high-level
description list all possible inputs a user can make and
then lower-level descriptions address what the system
does with each input (including what outputs are
produced).

17
Systems Design

5. Object-Oriented design: This design identifies classes


of objects and their interrelationships. At the highest
level, each object type is described. At lower levels, the
object attributes and actions are discussed and the
design explains how objects are related to one another.

18
Software Design

This is an iterative process through which requirements are


translated into a “blueprint” for constructing the software.

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

• System Modeling uses a representation of:


– USER INTERFACE
– INPUT PROCESSES
– OUTPUT PROCESSES
– PROCESSES AND CONTROL FUNCTIONS
– ERROR DETECTION AND VALIDATION

21
USER INTERFACE PROCESSING

PROCESS AND OUTPUT


INPUT CONTROL PROCESSING
PROCESSING FUNCTIONS

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

• Establish type of information flow


– transform flow - overall data flow is sequential
and flows along a small number of straight line
paths
– transaction flow - a single data item triggers
information flow along one of many paths
Transaction

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?

• 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
Transform Mapping

• Review fundamental system model


• Review and refine data flow diagrams/Use
Cases for the software
• Determine whether the DFD/Use Case has
transform or transaction characteristics
• Isolate the transform center by specifying
incoming and outgoing flow boundaries
• Perform first level factoring
• Perform second level factoring
• Refine the first iteration architecture using
design heuristics for improved software
quality
Transform Mapping

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

typical "worker" modules


First Level Factoring

main
program
controller

input processing output


controller controller controller
Second Level Mapping
main
D
C
control

B A
A
B
C

mapping from the D


flow boundary outward
Transaction Mapping
• Review fundamental system model
• Review and refine data flow diagrams for the
software
• Determine whether the DFD has transform or
transaction characteristics
• Identify the transaction center and flow
characteristics along each action path
• Map the DFD/Use Case to a program
structure amenable to transaction processing
• Factor and refine the transaction structure and
the structure of each action path
• Refine the first iteration architecture using
design heuristics for improved software
quality
Transaction Flow

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

Data flow model f


x1 program structure
a e
d

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

read validate produce fixture report send


command command error status generation control
message controller controller value

each of the action paths must be expanded further


Refining Architectural Design

• Processing narrative developed for each module


• Interface description provided for each module
• Local and global data structures are defined
• Design restrictions/limitations noted
• Design reviews conducted
• Refinement considered if required and justified
Refining the Structure Chart
process
operator
commands

command determine
input type
controller

read validate produce fixture report send


command command error status generation control
message controller controller value

read determine format read calculate format


fixture setting setting record output report
status values
University of Technology, Jamaica 47
SCIT 2017
References
1. McGlaughlin, R., “Some Notes On Program Design,”
Software Engineering Notes, Vol.16, no 4, October
1991, pp. 53-54.
2. Pressman, R. (2005) Software Engineering: A
Practitioner’s Approach. McGraw Hill
3. Davis, A., 201 Principles of Software Development,
McGraw-Hill, 1995.
4. Wirth, N., “Program Development by Stepwise
Refinement, “CACM vol. 14, no 4 1971, pp. 221-227
5. Myers, G., Composite Structured Design, Van
Nostrand, 1978

University of Technology, Jamaica 48


SCIT 2007
Software Engineering

THE END

University of Technology, Jamaica 49


SCIT 2007

You might also like