0% found this document useful (0 votes)
5 views

L1-Intro SW Design

Uploaded by

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

L1-Intro SW Design

Uploaded by

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

Software Design

An Introduction
SWE 3633-Software
Design & Architecture
Software Design

 What?

– What is software design?


 Why?

– Why a “good” design matters?


 How?

– How can we produce a “good”


design?
Software Design

What?

– Design is the creative process of


transforming the problem into a
solution.
One Definition of Design (from K. Lano)
 Design is the activity of constructing
components and organizing their
interactions in order to achieve the
system that will satisfy the
requirements.
– Components:
 Identifying the components

 Specifying their functionalities

 Specifying any constraints (performance, security, etc.)

– Interactions:
 Identify and Specify Component relations (inheritance,

aggregation, etc.)
 Identify and Specify Component dependencies

(interfaces, joint responsibilities, sequences of


interactions, etc.)
Software Design

Why?
– A good software design
 reducesrisks in software
production,
 coordinates development teams

to work together orderly,


Software Design

Why? Cont.
– A good software design
 makes the system traceable for
implementation and testing, and
 leads to software products that

have higher quality attributes.


Software Design
How?

– How can we produce a “good”


design?

 Will be discussed in this course


Software Design

 From requirements specifications to


design specifications
SRS  Software Design  SDS

SRS: Software Requirements


Specifications
SDS: Software Design Specifications
Software Requirements
Specification

 TheSRS is the result of


requirement analysis; it
records the functional and
non-functional requirements
that must be met by the
software system.
Software Design Specification

 TheSDS (SDD) describes the


software architecture or
high-level design and the
detailed design of the
system.
 The SDD describes the
components of a system, the
modules that comprise each
component, and the detailed
information (such as data,
attributes, operations, and
algorithms) of each module.
 From the SDD, the system is
then implemented using
programming language/s,
which is followed by
debugging, testing, and
maintenance.
Software Design

Software Product Design

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

Product Redesign and


Maintenance
Engineering Redesign

 From Page 19 of your textbook


Software Design Problems
and Solutions (Page 23)
Software Design
Problem: Needs,
Desires, Constraints

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

Step-2: Detailed Design


Design
 Start from requirements
 How is the software going to be

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

– multiple ways of organizing elements


 External properties of modules
Architectural Tactics
 Solve smaller, specific problems

 Do not affect overall structure


of system
Detailed Design
 Refine Architecture and match
with Requirements
 How detailed ?

 How formal ?

 Maybe different level of detail

for different views


Questions

You might also like