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

Lecture 01 Introduction to Software Design

The document introduces the process of software design, outlining its objectives, stages, and the importance of design quality attributes. It contrasts a programmer's approach that skips design phases for quick coding with a structured design process that includes problem understanding, solution identification, and abstraction. The document emphasizes that design is a high-level model of a software system, detailing its structure and functionality, and highlights the need for effective representation and consideration of both functional and non-functional requirements.

Uploaded by

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

Lecture 01 Introduction to Software Design

The document introduces the process of software design, outlining its objectives, stages, and the importance of design quality attributes. It contrasts a programmer's approach that skips design phases for quick coding with a structured design process that includes problem understanding, solution identification, and abstraction. The document emphasizes that design is a high-level model of a software system, detailing its structure and functionality, and highlights the need for effective representation and consideration of both functional and non-functional requirements.

Uploaded by

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

Introduction to Software Design

Lecture 01
By Engr Muhammad Usman
Malik
Objectives
• To introduce the process of software design
• To describe the different stages in this design
process
• To show how object-oriented and functional
design strategies are complementary
• To discuss some design quality attributes
Programmer’s Approach to
Software Engineering

Skip requirements engineering and design


phases;
start writing code
Why this programmer’s approach?
• Design is a waste of time

• We need to show something to the customer real


quick

• We are judged by the amount of LOC(lines of


code)/month

• We expect or know that the schedule is too tight


Design of small and large systems
theStorag e
What is the Problem?
aWarehouse
This is a simple
UM L-A Generated Association Class:aNavPoint Association (0.5)
(1.0)
software system!
aRoute

UM L-A Generated Dependency Class:aRouteCollection Association (0.5)

UML -A Genera ted De pend ency C lass :aRou teCol lectio n Ass ociatio n (0. 25)
theVehicleCollection
UM L-A Generated Association Class:aW arehouse Association (1.0)

aVehicle

UM L-A Generated Dependency Class:theRouter Dependency (1.0)


UM L-A Generated Dependency Class:theRouter Dependency (0.5)
UM L-A Generated Dependency Class:theRouter Association
UM L-A UMGenerated
L-AUM (0.25)
Generated
L-AAssociation
UMGenerated
L-A
Association
UMGenerated
L-A
Class:aNavPoint
Association
Generated
UMClass:aNavPoint
Association
L-A Class:aNavPoint
Gene
Association
UM L-AUMAssociation
rated
L-A
Class:aNavPoint
Genera
Association
Association
GeneratedClass:aNavPoint
Association
(1.0)
ted Depend
Clas
(1.0)
Association
Association s:theW
ency
Association
(1.0)Class
areh
(1.0)
Class:theRouter ouseCollec
:aRouteCollectio
(1.0) tion Depen
Association n Assden
(0.25)oc
UM L-A UM L-A Generated Dependency Class:theRouter Dependency (1.0)
UM L-AUMGenerated
L-AUM
Genera
L-AAssociation
UM
Generated
ted
L-AUM
AsGenerated
socia
L-A
Class:theVehicleCollection
Association
UMGenerated
tion
L-A
CAssociation
UML-
lass:
Generated
Class:theVehicleCollection
A
theVe
Association
UMGen
L-A
hicleC
L-A
dollec onGenerated
Class:theVehicleCollection
erate
Association
UMGenerated
Class:theVehicleCollection
UM
Ass
Generalization
Generated
L-A
ociati
tion nDependency
Class:theVehicleCollection
Association
Generated
Genera
Cl
Association
Generalization
ass:th
lizatio
(1.0) Class:theRouter
Class:theVehicleCollection
Association
eVehi
Generalization
(1.
Class:theVehicleCollection
cleCo
0)
Generalization
(1.0) Dependency
Class:theVehicleCollection
llectio
Generalization
(1.0)
n Ge(1.0)
nerali
Generalization
zation
(1.0) (0.5)
Generalization
(1.0Generalization
) (1.0) (1.0) (1.0)
aTruck aShip aAirplane theW areho useCo llecti on UML- A Ge nerate d Gen eraliz ation Class :avail ableV ehicle Colle ction Depe ndenc y (1.0 )
UMUML-AL-A
Generated
GeneratedAssociation
Association
Class:theVehicleCollection
Class:availableVehicleCollection
Dependency
Dependency
(0.5) (0.5)
UM L-A Generated Dependency Class:theRouter Association (0.5)
UM L-A Generated Dependency Class:theRouter Association (0.25)

UM L-A Generated Dependency Class:theRouter Dependency (1.0)


UM L-A Generated Dependency Class:theRouter Dependency (1.0)
UM L-AUM
Generated
L-A Generated
Association
Association
Class:aDifficiency
Class:aDifficiency
Association
Association
(1.0) (1.0)
t heRou ter UM L-A
UMGenerated
L-A
UMGenerated
L-A Association
Association
Generated Class:aDifficiency
Class:aDifficiency
Association Association
Class:aDifficiencyAssociation
(1.0) (1.0)
Association (1.0
U ML-AU ML-A
Gen UM
erated
Gen
L-Aerated
Asso
UMGenerated
L-Aciatio
Asso
UM nciatio
Association
Cla
Generated
L-A ss:aD
n Cla
Generated ss:aD
ifficie
Class:aDifficiency
Association ncy
ifficie
A ncy
Association ssoci
A atio
sso
Class:aDiffi
Class
UM L-A Generated Association Class:aNavPoint Association (0.25) UM L-AUM L-A Genera
Generated ted AssociClass:aSu
Association ation C las
UM L-A Generated Association Class:aNavPoint Association (0.25)
UM L-A Generated Association Class:aW arehouse Association (0.5)
UMAssociation
L-A Generated UM L-A Generated
Association Association
Class:aNavPoint Class:aNavPoint
Association (0.25) Association (0.25)
UM L-A Generated Association Class:aW arehouse (1.0)
UM L-A Generated Dependency Class:theWarehouseCollection Dependency (1.0)
availableVehicleCollection aRouteCollection
UM L-A Generated Dependency Class:theRouter Association (1.0)
UM L-A Generated Dependency Class:theRouter Association (0.5)
UM L-A Generated Association Class:theW arehouseCollection Dependency (0.5)
UM L-A Generated
UM L-ADependency
Generated Dependency
Class:theRouter
Class:theRouter
Association Association
(1.0) (1.0)

theCarg oRouter

UML -A Genera ted As socia tion C lass: theWa rehou seCo llectio n De pende ncy ( 0.25)
UM L-A Generated Association Class:aRoute Association (0.5)

theAWT aLocation
UM L-A Generated Association Class:theRouter Association (0.25)

UM L-A Generated Association Class:aRoute Association (0.25)


UMUM
UM L-A Generated
L-AL-A Generated
Association
Generated Association
Class:aNavPoint
Association Class:aRoute
Association
Class:aRoute Association
(0.5)
Association (0.25)
(0.25)
UM L-A Generated Association Class:aNavPoint
UM L-A Generated
Association
Association
(0.5) Class:aRoute Association (0.25)

aVehiceDialog aWarehouseDialog aPortDialog aRouterDialog aNavPoint


UM L-A GeneratedUM L-A Generated
Association AssociationAssociation
Class:aNavPoint Class:aW arehouse
(0.5) Association (0.5)
UM L-A Generated Association Class:aW arehouse Association (0.5)

availableGoods aPortC ollec tion theTimeNeeded


UM L-A Generated
UM L-A Generated Association
Association Class:aWClass:aW
arehousearehouse Association
Association (0.5) (0.5)

UM L-A Generated Association Class:aW arehouse Association (0.5)

aPort aSurp lus aDifficiency


UM L-A Generated Association Class:aW arehouse Association (0.5)

UM L-A Generated
UMAssociation
L-A Generated
Class:availableGoods
Association Class:aW
Association
arehouse(0.5)
Association (0.5)

theGoods
The Usual Tool: Design Abstraction

aTruck aAirplane aShip

aLocation

aVehicle

aNavPoint aRoute theVehicleCollection

theRouter
RegularStorage

aRouteCollection

theStorage availableVehicleCollection

aWarehous e
theWarehous eCollection

RefrigeratedStorage

aSurplus aDeficiency theCargoRouter


We have to do better!
theGoods theTim eNeeded
aRouterDialog
aPort theAWT

availableGoods

aPortDialog

aVehiceDialog
aWarehous eDialog
aPortCollection
Architectural Abstraction
Cl o ck :
Cl o ck

8 : re q u e st

Cl o ckCo n n

9 : n oti fi ca ti o n 1 0 : no ti fi ca ti o n

Wa reh o u se De l i ve ryPo rt Ve h i cl e

7 : re q u e st

1 : re q u e st
4 : re q u e st 3 : re q u e st
Ro u te rCo n n

2 : n oti fi ca ti o n

Ca rgo Rou te r

5 : re q u e st

Gra p h i csCo n n

6 : n oti fi ca ti o n

Gra p h i csB i n d i n g :
Gra p h i csB i n d i n g
What is not Design
• Design is not programming.
• Design is not modeling. Modeling is part of the architectural
design.
• Design is not part of requirements.
• Where requirements finishes and where design starts ?.
• Requirements = What the system is supposed to do.
• Design = How the system is built.
What is Design (or Architecture?)
• A high-level model of a software system
– Describes the structure, functionality and
characteristics of the software system.
– Understandable to many stakeholders
– Allows evaluation of the system’s properties before
it is built
– Provides well understood tools and techniques for
constructing the thing from its blueprint
• A software system’s blueprint
– Its components
– Their interactions
– Their interconnections
What is Design (or Architecture?)
• How should they be represented most effectively to enable
stakeholders to understand, reason, and communicate about a
system before it is built?
• What tools and techniques are useful for implementing an
architecture in a manner that preserves its properties?
• We design the software but we must consider the hardware
(and the environment).
• Design must reflect requirements, and we must be able to
relate each requirements with parts of the design.
• How can we include non-functional requirements into the
design?
Stages of design
• Problem understanding
– Look at the problem from different angles to
discover the
design requirements
• Identify one or more solutions
– Evaluate possible solutions and choose the
most
appropriate depending on the designer's
experience and
available resources
• Describe solution abstractions
From informal to formal design

Informal Informal More


design formal Finished
design design
outline design
The design process

• The system should be described at several


different levels of abstraction
• Design takes place in overlapping stages. It is
artificial to separate it into distinct phases but
some separation is usually necessary
Phases in the design process

Requirements
specifica
tion

Design acti
vities

Architectur
al Abstract Interface Component Data Algorithm
design specifica
tio design design structur
e design
n design

Software Data
System Interface Component Algorithm
specifica
tion structure
architectur
e specifica
tion specifica
tion specifica
tion
specification

Design pr
oducts
Design phases
• Architectural design Identify sub-systems
• Abstract specification Specify sub-systems
• Interface design Describe sub-system
interfaces
• Component design Decompose sub-systems
into components
• Data structure design Design data structures
to hold problem data
• Algorithm design Design algorithms for
problem functions

You might also like