L1-Intro SW Design
L1-Intro SW Design
An Introduction
SWE 3633-Software
Design & Architecture
Software Design
What?
What?
– Interactions:
Identify and Specify Component relations (inheritance,
aggregation, etc.)
Identify and Specify Component dependencies
Why?
– A good software design
reducesrisks in software
production,
coordinates development teams
Why? Cont.
– A good software design
makes the system traceable for
implementation and testing, and
leads to software products that
Software Engineering
Design
Software product design
is
the activity of specifying
software product features,
capabilities, and interfaces to
satisfy client needs and desires.
Software engineering
design
isthe activity of
specifying programs and
sub-systems, and their
constituent parts and
workings, to meet
software product
specifications.
Software Design
Software Product Life Cycle
Requirements
Product Design
Specification
Design
Engineering Design
Implementation
Testing
Design Features
and Capabilities
Solution: Features
Product and Capabilities
Design
Solution:
Design Interactions
Interactions
Solution: SRS
Create High-Level
Design Solution: High-
Level Design
Engineering
Design Create Low-Level Solution: Low-
Design Level Design
Solution: Design
Document
Write Code
Solution: Code
Software Engineering Design
Step-1: Architectural
Design
structured?
– What are the components (Modules)
– How are these components related
Two parts
– Architectural (high-level)
– Detailed design
Software Architecture
Structure(s) of system,
comprising:
– Software Elements
– Their externally visible properties
– Relationships among elements
Every system has an architecture
Multiple structures
How formal ?