Title: Introduction to Design Structured AnalysisDesign
1Introduction to Design/Structured Analysis/Design
2Agenda
- Design Principles
- Common Design Techniques
- SA/SD
3Software Development Life Cycles
Project Planning
Requirements
Analysis
Design
Implementation
Testing
OM
4What is 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.
5Levels of Design (Formality)
- None (Code and Fix)
- Back of the envelope
- Structured
- Object-Oriented
- Formal Methods
6Why Design?
7Design Stages
- Analysis
- Software Architecture
- Preliminary Design
- Detail Design
Moving from as-is to to-be
Moving from language of the user to language of
the machine
8Design Principles
- Good organization and control
- Modular
- Separable representation of data
- Independent modules
- Simple interfaces
- Repeatable method
- Build vs Buy
9Key Design Ideas
- Abstraction
- Refinement (Stepwise, Elaboration)
- Modularity (235)
- Information Hiding (339)
- Cohesion (single task) (232)
- Coupling (interconnection) (229)
10Quality Design Issues
- Performance
- Usability
- Usefulness
- Reliability
- Extensibility
- Modifiability
- Reusability
- Safety
- Security
CONSTRAINTS
11Design Strategies
- Top Down (Decomposition)
- Bottom Up (Aggregation/Composition)
- Hybrid
12Lab 4 Top Down Functional Decomposition
13Lab 4 Bottom-Up Functional Composition
14Design Techniques
- SA/SD
- Object Oriented
- Object Modeling Technique (OMT)
- Rational Unified Process (UML)
- Shellor-Mellor
- Objectory
- Ad Hoc
15Now.
Structured Analysis (SA) Structured Design
(SD)
Data Dictionaries
Context Diagrams
Data Flow Diagrams
Module Hierarchy
16Structured Analysis
- Context Diagram
- Data Flow Diagram (DFD)
- Data Dictionary (DD)
- Procedure Specification (PSPEC)
17Context Diagrams
What is in system? (System Boundary) What do we
have to interface with? (External Actors)
User
Display Info
Payroll System
0. System
Keypress Info
Employee Salary Info
Budget System
18Lab 4 Context Diagram
19Data Flow Diagrams
What are processes? What is information being
processed? How does information flow between
processes?
1. Process
Information Flow
20Example DFD
Configuration Information
User
2. Update Config
Keypress Info
1. Input Handler
Display Info
Selection Info
4. Display Results
3. Process Salary Data
Expenditure Data
Employee Salary Info
Payroll System
21Lab 4 Data Flow Diagram
22Data Dictionary
What is the definition and makeup of the data in
the data flows?
Name Employee Number Alias SSN Where/How
Used Process Salary, indexes employees Descriptio
n string length 9
23Lab 4 Data Dictionary
Name Alias Where/How Used Description
24Procedure Specification
Pseudo-code spec of decomposed process Use for
comments in actual code.
25Structured Design
- Refine DFD as necessary
- Determine type of information flow
- Establish flow boundaries
- Map DFD onto program structure
- Factor control hierarchy
- Refine program structure
26Flow Determination
Employee Salary Info
27First Level Factoring
Main Controller
Input Handler
Output Handler
Data Transform Engine
28Second Level Factoring
Main Controller
Input Handler
User Display Manager
Data Transform Engine
User Input Handler
Payroll Interface
Salary Processor
Configuration Manager
Then refine structure based on principles
29Lab 4 Structured Design
30Unified Modeling Language
- Three Amigos Booch, Rumbaugh (OMT), Jacobson
(OOSE) - OMG Standard
- CASE Tool Support (Rational Rose)
- For this class Version 1.5
- OCL Formal Specifications
31Model and View Diagrams
Implementation View
Class Diagram Object Diagram
Component Diagrams
User View Use Case Diagrams
Structural View
Deployment Diagram
Sequence Diagram Collaboration Diagram Statechart
Diagram Activity Diagram
Behavioral View
Environment View
32Why so many diagrams?
Different stakeholders
Different concerns
Why not just one blueprint for a skyscraper?
33Next Time
UML Class Diagrams Sequence Diagrams