Chapter 08

N
Nazir AhmedStudent at The Islamia University of Bahawalpur
1
Chapter 8
 Design Concepts
 MOHAMMAD NAZIR
Design Engineering
 What is Design????
Design is what almost every engineer wants to
do. It is the place where creativity rules—where
stakeholder requirements, business needs,
and technical considerations all come together
in the formulation of a product or system.
 Design creates a representation or model of
the software, but unlike the requirements
model (that focuses on describing required
data, function, and behavior), the design model
provides detail about software architecture,
data structures, interfaces, and components
that are necessary to implement the system.
2
Why is it important?
 Design allows you to model the system or
product that is to be built.
 This model can be assessed for quality and
improved before code is generated, tests are
conducted, and end users become involved in
large numbers. Design is the place where
software quality is established.
 Design is the only way that you can accurately
translate stakeholder’s requirements into a
finished software product or system.
3
4
Design
 Mitch Kapor, the creator of Lotus 1-2-3,
presented a “software design manifesto” in Dr.
Dobbs Journal. He said:
 Good software design should exhibit:
 Firmness: A program should not have any bugs that
inhibit its function.
 Commodity: A program should be suitable for the
purposes for which it was intended.
 Delight: The experience of using the program should
be pleasurable one.
5
Analysis Model -> Design Model
Analysis Model
use-cases - text
use-case diagrams
activity diagrams
swim lane diagrams
data flow diagrams
control-flow diagrams
processing narratives
f low- or ient ed
element s
behavior al
element s
class- based
element s
scenar io- based
element s
class diagrams
analysis packages
CRC models
collaboration diagrams
state diagrams
sequence diagrams
Da t a / Cla ss De sign
Arc hit e c t ura l De sign
Int e rfa c e De sign
Com pone nt -
Le v e l De sign
Design Model
Software Quality Guidelines
 Throughout the design process, the quality of
the evolving design is assessed with a series
of technical reviews
 Suggests three characteristics that serve as a
guide for the evaluation of a good design:
6
7
Design and Quality
 The design must implement all of the explicit
requirements.
contained in the analysis model, and it must
accommodate all of the implicit requirements
desired by the customer.
 The design must be a readable, understandable
guide for those who generate code and for those
who test and subsequently support the software.
 The design should provide a complete picture of
the software.
addressing the data, functional, and behavioral
domains from an implementation perspective.
8
Quality Guidelines
 A design should be modular;
that is, the software should be logically partitioned into elements or subsystems
 A design should contain distinct representations
of data, architecture, interfaces, and components.
 A design should lead to data structures that are appropriate
for the classes to be implemented and are drawn from recognizable data patterns.
 A design should lead to components that exhibit independent functional
characteristics.
 A design should lead to interfaces that reduce the complexity
of connections between components and with the external environment.
 A design should be derived using a repeatable method
that is driven by information obtained during software requirements analysis.
 A design should be represented using a notation that effectively communicates
its meaning.
DESIGN CONCEPTS
 M. A. Jackson once said: “The beginning of
wisdom for a software engineer is to recognize
the difference between getting a program to
work, and getting it right.”
 Fundamental software design concepts provide
the necessary framework for “getting it right.”
 In the sections that follow, I present a brief
overview of important software design
concepts that span both traditional and object-
oriented software development.
9
10
Fundamental Concepts
 Abstraction—data, procedure, control
 Architecture—the overall structure of the software
 Patterns—”conveys the essence” of a proven design solution
 Separation of concerns—any complex problem can be more easily
handled if it is subdivided into pieces
 Modularity—compartmentalization of data and function
 Hiding—controlled interfaces
 Functional independence—single-minded function and low coupling
 Refinement—elaboration of detail for all abstractions
 Aspects—a mechanism for understanding how global requirements
affect design
 Refactoring—a reorganization technique that simplifies the design
 OO design concepts—
 Design Classes—provide design detail that will enable analysis
classes to be implemented
Abstraction
 consider a modular solution to any problem
 As different levels of abstraction are
developed, you work to create both procedural
and data abstractions.
 procedural abstraction
 data abstraction
11
procedural abstraction
 A procedural abstraction refers to a sequence
of instructions that have a specific and limited
function.
 The name of a procedural abstraction implies
these functions, but specific details are
suppressed. An example of a procedural
abstraction would be the word open for a door.
 Open implies a long sequence of procedural
steps (e.g., walk to the door, reach out and
grasp knob, turn knob and pull door, step away
from moving door, etc.).
12
13
Procedural Abstraction
open
implemented with a "knowledge" of the
object that is associated with enter
details of enter
algorithm
Data Abstraction
 A data abstraction is a named collection of data
that describes a data object.
 In the context of the procedural abstraction
open, we can define a data abstraction called
door. Like any data object, the data abstraction
for door would encompass
 a set of attributes that describe the door (e.g.,
door type, swing direction, opening
mechanism, weight, dimensions).
 It follows that the procedural abstraction open
would make use of information contained in the
attributes of the data abstraction door. 14
15
Data Abstraction
door
implemented as a data structure
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism
16
Architecture
“The overall structure of the software and the ways in
which that structure provides conceptual integrity for a
system.”
Structural properties.
This aspect of the architectural design representation defines the
components of a system (e.g., modules, objects, filters) and the manner
in which those components are packaged and interact with one another.
Extra-functional properties.
The architectural design description should address how the design
architecture achieves requirements for performance, capacity, reliability,
security, adaptability, and other system characteristics.
Families of related systems.
The architectural design should draw upon repeatable patterns that are
commonly encountered in the design of families of similar systems.
Patterns
 a design pattern describes a design structure
that solves a particular design problem within a
specific context and amid “forces”
17
18
Separation of Concerns
 Any complex problem can be more easily
handled if it is subdivided into pieces that can
each be solved and/or optimized independently
 A concern is a feature or behavior that is
specified as part of the requirements model for
the software
 By separating concerns into smaller, and
therefore more manageable pieces, a problem
takes less effort and time to solve.
19
Modularity
 Modularity is the most common manifestation of
separation of concerns. Software is divided into
separately named and addressable components,
sometimes called modules, that are integrated to satisfy
problem requirements.
 "modularity is the single attribute of software that allows
a program to be intellectually manageable“.
 In almost all instances, you should break the design into
many modules, hoping to make understanding easier
and as a consequence, reduce the cost required to build
the software.
20
Sizing Modules: Two Views
MODULE
What's
inside??
How big
is it??
21
Why Information Hiding?
 reduces the likelihood of “side effects”
 limits the global impact of local design
decisions
 emphasizes communication through
controlled interfaces
 discourages the use of global data
 leads to encapsulation—an attribute of
high quality design
 results in higher quality software
22
Information Hiding
module
controlled
interface
"secret"
• algorithm
• data structure
• details of external interface
• resource allocation policy
clients
a specific design decision
23
Functional Independence
 Functional independence is achieved by developing
modules with “single minded” function and an “aversion”
to excessive interaction with other modules. Stated
another way, you should design software so that each
module addresses a specific subset of requirements and
has a simple interface when viewed from other parts of
the program structure.
 Software with effective modularity, that is, independent
modules, is easier to develop because function can be
compartmentalized and interfaces are simplified
 Independent modules are easier to maintain (and test)
because secondary effects caused by design or code
modification are limited, error propagation is reduced,
and reusable modules are possible.
Functional Independence
 Independence is assessed using two qualitative criteria:
cohesion and coupling.
 Cohesion.
is an indication of the relative functional strength of a
module.
 A cohesive module performs a single task, requiring little
interaction with other components in other parts of a
program. Stated simply, a cohesive module should (ideally)
do just one thing.
Coupling
is an indication of the relative interdependence among
modules.
 Coupling depends on the interface complexity between
modules, the point at which entry or reference is made to a
module, and what data pass across the interface.
24
Refinement
 Refinement is actually a process of elaboration. You
begin with a statement of function (or description of
information) that is defined at a high level of abstraction.
 That is, the statement describes function or information
conceptually but provides no information about the
internal workings of the function or the internal structure
of the information.
 You then elaborate on the original statement, providing
more and more detail as each successive refinement
(elaboration) occurs.
 Abstraction and refinement are complementary
concepts.
25
26
Stepwise Refinement
open
walk to door;
reach for knob;
open door;
walk through;
close door.
repeat until door opens
turn knob clockwise;
if knob doesn't turn, then
take key out;
find correct key;
insert in lock;
endif
pull/push door
move out of way;
end repeat
27
Refactoring
"Refactoring is the process of changing a software system in such a way
that it does not alter the external behavior of the code [design] yet
improves its internal structure.”
 When software is refactored, the existing design is examined
for
 redundancy
 unused design elements
 inefficient or unnecessary algorithms
 poorly constructed or inappropriate data structures
 or any other design failure that can be corrected to yield a better
design.
28
OO Design Concepts
 The object-oriented (OO) paradigm is widely used in modern
software engineering.
 Design classes
 Entity classes
 Boundary classes
 Controller classes
 Inheritance—all responsibilities of a super class is
immediately inherited by all subclasses
 Messages—stimulate some behavior to occur in the
receiving object
 Polymorphism—a characteristic that greatly reduces the
effort required to extend the design
Design Classes
 As the design model evolves, you will define a
set of design classes that refine the analysis
classes by providing design detail that will
enable the classes to be implemented, and
implement a software infrastructure that
supports the business solution.
29
THANKS
30
1 de 30

Recomendados

Unit 3 por
Unit 3Unit 3
Unit 3Jignesh Kariya
2K visualizações113 slides
Design engineering por
Design engineeringDesign engineering
Design engineeringVikram Dahiya
11.7K visualizações64 slides
06 fse design por
06 fse design06 fse design
06 fse designMohesh Chandran
838 visualizações46 slides
Object oriented software engineering por
Object oriented software engineeringObject oriented software engineering
Object oriented software engineeringVarsha Ajith
253 visualizações30 slides
Object oriented sad-5 part i por
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
353 visualizações53 slides
Design concept -Software Engineering por
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
8.2K visualizações52 slides

Mais conteúdo relacionado

Mais procurados

Software engg. pressman_ch-9 por
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
693 visualizações32 slides
Design concepts and design principles por
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principlesDhruvin Nakrani
334 visualizações12 slides
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel por
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
63.6K visualizações41 slides
Design engineering por
Design engineeringDesign engineering
Design engineeringPreeti Mishra
5.9K visualizações35 slides
Scenario based methods por
Scenario based methodsScenario based methods
Scenario based methodsJoshuaU1
470 visualizações34 slides
Software Engineering Important Short Question for Exams por
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
713 visualizações14 slides

Mais procurados(20)

Software engg. pressman_ch-9 por Dhairya Joshi
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
Dhairya Joshi693 visualizações
Design concepts and design principles por Dhruvin Nakrani
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
Dhruvin Nakrani334 visualizações
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel por mohamed khalaf alla mohamedain
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
mohamed khalaf alla mohamedain63.6K visualizações
Design engineering por Preeti Mishra
Design engineeringDesign engineering
Design engineering
Preeti Mishra5.9K visualizações
Scenario based methods por JoshuaU1
Scenario based methodsScenario based methods
Scenario based methods
JoshuaU1470 visualizações
Software Engineering Important Short Question for Exams por MuhammadTalha436
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
MuhammadTalha436713 visualizações
Architectural Design por Jay Thakkar
Architectural DesignArchitectural Design
Architectural Design
Jay Thakkar1.2K visualizações
An Introduction to Software Architecture - Summary por John Ortiz
An Introduction to Software Architecture - SummaryAn Introduction to Software Architecture - Summary
An Introduction to Software Architecture - Summary
John Ortiz2.2K visualizações
Software Designing - Software Engineering por Purvik Rana
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
Purvik Rana1.4K visualizações
Ch 6 por Mohammed Romi
Ch 6Ch 6
Ch 6
Mohammed Romi2.6K visualizações
Data Designs (Software Engg.) por Arun Shukla
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
Arun Shukla4.3K visualizações
Design concepts and principle, por awikhan12
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
awikhan12464 visualizações
Lecture 19 design concepts por IIUI
Lecture 19   design conceptsLecture 19   design concepts
Lecture 19 design concepts
IIUI2.2K visualizações
Sda 7 por AmberMughal5
Sda   7Sda   7
Sda 7
AmberMughal547 visualizações
Software Architecture por Prabhat gangwar
Software ArchitectureSoftware Architecture
Software Architecture
Prabhat gangwar1.9K visualizações
Software architecture por Udayna
Software architectureSoftware architecture
Software architecture
Udayna1.1K visualizações
Architectural styles and patterns por Himanshu
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
Himanshu 27.9K visualizações
Ch09 por guest50f28c
Ch09Ch09
Ch09
guest50f28c695 visualizações
Design and Implementation in Software Engineering por Kourosh Sajjadi
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
Kourosh Sajjadi1.9K visualizações

Similar a Chapter 08

Slides chapter 9 por
Slides chapter 9Slides chapter 9
Slides chapter 9Priyanka Shetty
3.9K visualizações28 slides
Software design por
Software designSoftware design
Software designZulqarnaintayyab
390 visualizações26 slides
CS8494 SOFTWARE ENGINEERING Unit-3 por
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
391 visualizações174 slides
CHAPTER12.ppt por
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.pptCharenReposposa
10 visualizações41 slides
Unit_4_Software_Design.pptx por
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
7 visualizações59 slides
Design engineering por
Design engineeringDesign engineering
Design engineeringVikram Dahiya
590 visualizações64 slides

Similar a Chapter 08(20)

Slides chapter 9 por Priyanka Shetty
Slides chapter 9Slides chapter 9
Slides chapter 9
Priyanka Shetty3.9K visualizações
Software design por Zulqarnaintayyab
Software designSoftware design
Software design
Zulqarnaintayyab390 visualizações
CS8494 SOFTWARE ENGINEERING Unit-3 por SIMONTHOMAS S
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S391 visualizações
CHAPTER12.ppt por CharenReposposa
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
CharenReposposa10 visualizações
Unit_4_Software_Design.pptx por taxegap762
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
taxegap7627 visualizações
Design engineering por Vikram Dahiya
Design engineeringDesign engineering
Design engineering
Vikram Dahiya590 visualizações
Se ii unit2-software_design_principles por Ahmad sohail Kakar
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
Ahmad sohail Kakar151 visualizações
Chapter1 por Hoang Vu Dinh
Chapter1Chapter1
Chapter1
Hoang Vu Dinh349 visualizações
Software engineering por Stella526835
Software engineeringSoftware engineering
Software engineering
Stella52683560 visualizações
Design Concepts in Software Engineering-1.pptx por KarthigaiSelviS3
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS31.3K visualizações
design-concept.ppt por MangeshKetkar1
design-concept.pptdesign-concept.ppt
design-concept.ppt
MangeshKetkar18 visualizações
Software engg unit 3 por Vivek Kumar Sinha
Software engg unit 3 Software engg unit 3
Software engg unit 3
Vivek Kumar Sinha92 visualizações
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt por Bule Hora University
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Bule Hora University7 visualizações
Unit 3- Software Design.pptx por LSURYAPRAKASHREDDY
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
LSURYAPRAKASHREDDY10 visualizações
Design concepts por JoshuaU1
Design conceptsDesign concepts
Design concepts
JoshuaU1177 visualizações
Pressman_ch_9_design_engineering.ppt por MotherTheresa2
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.ppt
MotherTheresa24 visualizações
Unit 5 design engineering ssad por Preeti Mishra
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
Preeti Mishra1.3K visualizações

Mais de Nazir Ahmed

Data structures final lecture 1 por
Data structures final  lecture 1Data structures final  lecture 1
Data structures final lecture 1Nazir Ahmed
1K visualizações19 slides
Data structures lecture 04 por
Data structures  lecture 04Data structures  lecture 04
Data structures lecture 04Nazir Ahmed
136 visualizações27 slides
Data structure por
Data structureData structure
Data structureNazir Ahmed
95 visualizações16 slides
Cover letter por
Cover letterCover letter
Cover letterNazir Ahmed
132 visualizações61 slides
Control unit design(1) por
Control unit design(1)Control unit design(1)
Control unit design(1)Nazir Ahmed
166 visualizações15 slides
Computer architecture mcq (2) por
Computer architecture mcq (2)Computer architecture mcq (2)
Computer architecture mcq (2)Nazir Ahmed
894 visualizações42 slides

Mais de Nazir Ahmed(20)

Data structures final lecture 1 por Nazir Ahmed
Data structures final  lecture 1Data structures final  lecture 1
Data structures final lecture 1
Nazir Ahmed1K visualizações
Data structures lecture 04 por Nazir Ahmed
Data structures  lecture 04Data structures  lecture 04
Data structures lecture 04
Nazir Ahmed136 visualizações
Data structure por Nazir Ahmed
Data structureData structure
Data structure
Nazir Ahmed95 visualizações
Cover letter por Nazir Ahmed
Cover letterCover letter
Cover letter
Nazir Ahmed132 visualizações
Control unit design(1) por Nazir Ahmed
Control unit design(1)Control unit design(1)
Control unit design(1)
Nazir Ahmed166 visualizações
Computer architecture mcq (2) por Nazir Ahmed
Computer architecture mcq (2)Computer architecture mcq (2)
Computer architecture mcq (2)
Nazir Ahmed894 visualizações
Complete binary tree and heap por Nazir Ahmed
Complete binary tree and heapComplete binary tree and heap
Complete binary tree and heap
Nazir Ahmed301 visualizações
Clamper clipper(10) por Nazir Ahmed
Clamper clipper(10)Clamper clipper(10)
Clamper clipper(10)
Nazir Ahmed69 visualizações
Cisc mc68000 por Nazir Ahmed
Cisc mc68000Cisc mc68000
Cisc mc68000
Nazir Ahmed380 visualizações
Chapter 07 ddl_sql por Nazir Ahmed
Chapter 07 ddl_sqlChapter 07 ddl_sql
Chapter 07 ddl_sql
Nazir Ahmed218 visualizações
Chapter 4 por Nazir Ahmed
Chapter 4Chapter 4
Chapter 4
Nazir Ahmed32 visualizações
Chapter 03 por Nazir Ahmed
Chapter 03Chapter 03
Chapter 03
Nazir Ahmed19 visualizações
Chapter # 12 er modeling por Nazir Ahmed
Chapter # 12 er modelingChapter # 12 er modeling
Chapter # 12 er modeling
Nazir Ahmed189 visualizações
Chapeter 2 por Nazir Ahmed
Chapeter 2Chapeter 2
Chapeter 2
Nazir Ahmed72 visualizações
Ch7 1 v1 por Nazir Ahmed
Ch7 1 v1Ch7 1 v1
Ch7 1 v1
Nazir Ahmed34 visualizações
Ch07 deadlocks por Nazir Ahmed
Ch07 deadlocksCh07 deadlocks
Ch07 deadlocks
Nazir Ahmed102 visualizações
Ch05 cpu-scheduling por Nazir Ahmed
Ch05 cpu-schedulingCh05 cpu-scheduling
Ch05 cpu-scheduling
Nazir Ahmed516 visualizações
Ch04 threads por Nazir Ahmed
Ch04 threadsCh04 threads
Ch04 threads
Nazir Ahmed71 visualizações
Ch03 processes por Nazir Ahmed
Ch03 processesCh03 processes
Ch03 processes
Nazir Ahmed63 visualizações
Ch1 v1 por Nazir Ahmed
Ch1 v1Ch1 v1
Ch1 v1
Nazir Ahmed56 visualizações

Último

Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx por
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptxGuidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptxNiranjan Chavan
38 visualizações48 slides
Volf work.pdf por
Volf work.pdfVolf work.pdf
Volf work.pdfMariaKenney3
75 visualizações43 slides
Six Sigma Concept by Sahil Srivastava.pptx por
Six Sigma Concept by Sahil Srivastava.pptxSix Sigma Concept by Sahil Srivastava.pptx
Six Sigma Concept by Sahil Srivastava.pptxSahil Srivastava
40 visualizações11 slides
Narration lesson plan por
Narration lesson planNarration lesson plan
Narration lesson planTARIQ KHAN
69 visualizações11 slides
MercerJesse2.1Doc.pdf por
MercerJesse2.1Doc.pdfMercerJesse2.1Doc.pdf
MercerJesse2.1Doc.pdfjessemercerail
301 visualizações5 slides
Papal.pdf por
Papal.pdfPapal.pdf
Papal.pdfMariaKenney3
57 visualizações24 slides

Último(20)

Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx por Niranjan Chavan
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptxGuidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx
Niranjan Chavan38 visualizações
Volf work.pdf por MariaKenney3
Volf work.pdfVolf work.pdf
Volf work.pdf
MariaKenney375 visualizações
Six Sigma Concept by Sahil Srivastava.pptx por Sahil Srivastava
Six Sigma Concept by Sahil Srivastava.pptxSix Sigma Concept by Sahil Srivastava.pptx
Six Sigma Concept by Sahil Srivastava.pptx
Sahil Srivastava40 visualizações
Narration lesson plan por TARIQ KHAN
Narration lesson planNarration lesson plan
Narration lesson plan
TARIQ KHAN69 visualizações
MercerJesse2.1Doc.pdf por jessemercerail
MercerJesse2.1Doc.pdfMercerJesse2.1Doc.pdf
MercerJesse2.1Doc.pdf
jessemercerail301 visualizações
Papal.pdf por MariaKenney3
Papal.pdfPapal.pdf
Papal.pdf
MariaKenney357 visualizações
The Accursed House by Émile Gaboriau por DivyaSheta
The Accursed House  by Émile GaboriauThe Accursed House  by Émile Gaboriau
The Accursed House by Émile Gaboriau
DivyaSheta246 visualizações
REFERENCING, CITATION.pptx por abhisrivastava11
REFERENCING, CITATION.pptxREFERENCING, CITATION.pptx
REFERENCING, CITATION.pptx
abhisrivastava1139 visualizações
Jibachha publishing Textbook.docx por DrJibachhaSahVetphys
Jibachha publishing Textbook.docxJibachha publishing Textbook.docx
Jibachha publishing Textbook.docx
DrJibachhaSahVetphys54 visualizações
Nelson_RecordStore.pdf por BrynNelson5
Nelson_RecordStore.pdfNelson_RecordStore.pdf
Nelson_RecordStore.pdf
BrynNelson546 visualizações
EILO EXCURSION PROGRAMME 2023 por info33492
EILO EXCURSION PROGRAMME 2023EILO EXCURSION PROGRAMME 2023
EILO EXCURSION PROGRAMME 2023
info33492181 visualizações
11.30.23A Poverty and Inequality in America.pptx por mary850239
11.30.23A Poverty and Inequality in America.pptx11.30.23A Poverty and Inequality in America.pptx
11.30.23A Poverty and Inequality in America.pptx
mary85023986 visualizações
When Sex Gets Complicated: Porn, Affairs, & Cybersex por Marlene Maheu
When Sex Gets Complicated: Porn, Affairs, & CybersexWhen Sex Gets Complicated: Porn, Affairs, & Cybersex
When Sex Gets Complicated: Porn, Affairs, & Cybersex
Marlene Maheu108 visualizações
INT-244 Topic 6b Confucianism por S Meyer
INT-244 Topic 6b ConfucianismINT-244 Topic 6b Confucianism
INT-244 Topic 6b Confucianism
S Meyer44 visualizações
Meet the Bible por Steve Thomason
Meet the BibleMeet the Bible
Meet the Bible
Steve Thomason76 visualizações
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37 por MysoreMuleSoftMeetup
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
MysoreMuleSoftMeetup44 visualizações
Monthly Information Session for MV Asterix (November) por Esquimalt MFRC
Monthly Information Session for MV Asterix (November)Monthly Information Session for MV Asterix (November)
Monthly Information Session for MV Asterix (November)
Esquimalt MFRC98 visualizações
Class 9 lesson plans por TARIQ KHAN
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plans
TARIQ KHAN68 visualizações
Create a Structure in VBNet.pptx por Breach_P
Create a Structure in VBNet.pptxCreate a Structure in VBNet.pptx
Create a Structure in VBNet.pptx
Breach_P82 visualizações

Chapter 08

  • 1. 1 Chapter 8  Design Concepts  MOHAMMAD NAZIR
  • 2. Design Engineering  What is Design???? Design is what almost every engineer wants to do. It is the place where creativity rules—where stakeholder requirements, business needs, and technical considerations all come together in the formulation of a product or system.  Design creates a representation or model of the software, but unlike the requirements model (that focuses on describing required data, function, and behavior), the design model provides detail about software architecture, data structures, interfaces, and components that are necessary to implement the system. 2
  • 3. Why is it important?  Design allows you to model the system or product that is to be built.  This model can be assessed for quality and improved before code is generated, tests are conducted, and end users become involved in large numbers. Design is the place where software quality is established.  Design is the only way that you can accurately translate stakeholder’s requirements into a finished software product or system. 3
  • 4. 4 Design  Mitch Kapor, the creator of Lotus 1-2-3, presented a “software design manifesto” in Dr. Dobbs Journal. He said:  Good software design should exhibit:  Firmness: A program should not have any bugs that inhibit its function.  Commodity: A program should be suitable for the purposes for which it was intended.  Delight: The experience of using the program should be pleasurable one.
  • 5. 5 Analysis Model -> Design Model Analysis Model use-cases - text use-case diagrams activity diagrams swim lane diagrams data flow diagrams control-flow diagrams processing narratives f low- or ient ed element s behavior al element s class- based element s scenar io- based element s class diagrams analysis packages CRC models collaboration diagrams state diagrams sequence diagrams Da t a / Cla ss De sign Arc hit e c t ura l De sign Int e rfa c e De sign Com pone nt - Le v e l De sign Design Model
  • 6. Software Quality Guidelines  Throughout the design process, the quality of the evolving design is assessed with a series of technical reviews  Suggests three characteristics that serve as a guide for the evaluation of a good design: 6
  • 7. 7 Design and Quality  The design must implement all of the explicit requirements. contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer.  The design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software.  The design should provide a complete picture of the software. addressing the data, functional, and behavioral domains from an implementation perspective.
  • 8. 8 Quality Guidelines  A design should be modular; that is, the software should be logically partitioned into elements or subsystems  A design should contain distinct representations of data, architecture, interfaces, and components.  A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns.  A design should lead to components that exhibit independent functional characteristics.  A design should lead to interfaces that reduce the complexity of connections between components and with the external environment.  A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis.  A design should be represented using a notation that effectively communicates its meaning.
  • 9. DESIGN CONCEPTS  M. A. Jackson once said: “The beginning of wisdom for a software engineer is to recognize the difference between getting a program to work, and getting it right.”  Fundamental software design concepts provide the necessary framework for “getting it right.”  In the sections that follow, I present a brief overview of important software design concepts that span both traditional and object- oriented software development. 9
  • 10. 10 Fundamental Concepts  Abstraction—data, procedure, control  Architecture—the overall structure of the software  Patterns—”conveys the essence” of a proven design solution  Separation of concerns—any complex problem can be more easily handled if it is subdivided into pieces  Modularity—compartmentalization of data and function  Hiding—controlled interfaces  Functional independence—single-minded function and low coupling  Refinement—elaboration of detail for all abstractions  Aspects—a mechanism for understanding how global requirements affect design  Refactoring—a reorganization technique that simplifies the design  OO design concepts—  Design Classes—provide design detail that will enable analysis classes to be implemented
  • 11. Abstraction  consider a modular solution to any problem  As different levels of abstraction are developed, you work to create both procedural and data abstractions.  procedural abstraction  data abstraction 11
  • 12. procedural abstraction  A procedural abstraction refers to a sequence of instructions that have a specific and limited function.  The name of a procedural abstraction implies these functions, but specific details are suppressed. An example of a procedural abstraction would be the word open for a door.  Open implies a long sequence of procedural steps (e.g., walk to the door, reach out and grasp knob, turn knob and pull door, step away from moving door, etc.). 12
  • 13. 13 Procedural Abstraction open implemented with a "knowledge" of the object that is associated with enter details of enter algorithm
  • 14. Data Abstraction  A data abstraction is a named collection of data that describes a data object.  In the context of the procedural abstraction open, we can define a data abstraction called door. Like any data object, the data abstraction for door would encompass  a set of attributes that describe the door (e.g., door type, swing direction, opening mechanism, weight, dimensions).  It follows that the procedural abstraction open would make use of information contained in the attributes of the data abstraction door. 14
  • 15. 15 Data Abstraction door implemented as a data structure manufacturer model number type swing direction inserts lights type number weight opening mechanism
  • 16. 16 Architecture “The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” Structural properties. This aspect of the architectural design representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components are packaged and interact with one another. Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, and other system characteristics. Families of related systems. The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems.
  • 17. Patterns  a design pattern describes a design structure that solves a particular design problem within a specific context and amid “forces” 17
  • 18. 18 Separation of Concerns  Any complex problem can be more easily handled if it is subdivided into pieces that can each be solved and/or optimized independently  A concern is a feature or behavior that is specified as part of the requirements model for the software  By separating concerns into smaller, and therefore more manageable pieces, a problem takes less effort and time to solve.
  • 19. 19 Modularity  Modularity is the most common manifestation of separation of concerns. Software is divided into separately named and addressable components, sometimes called modules, that are integrated to satisfy problem requirements.  "modularity is the single attribute of software that allows a program to be intellectually manageable“.  In almost all instances, you should break the design into many modules, hoping to make understanding easier and as a consequence, reduce the cost required to build the software.
  • 20. 20 Sizing Modules: Two Views MODULE What's inside?? How big is it??
  • 21. 21 Why Information Hiding?  reduces the likelihood of “side effects”  limits the global impact of local design decisions  emphasizes communication through controlled interfaces  discourages the use of global data  leads to encapsulation—an attribute of high quality design  results in higher quality software
  • 22. 22 Information Hiding module controlled interface "secret" • algorithm • data structure • details of external interface • resource allocation policy clients a specific design decision
  • 23. 23 Functional Independence  Functional independence is achieved by developing modules with “single minded” function and an “aversion” to excessive interaction with other modules. Stated another way, you should design software so that each module addresses a specific subset of requirements and has a simple interface when viewed from other parts of the program structure.  Software with effective modularity, that is, independent modules, is easier to develop because function can be compartmentalized and interfaces are simplified  Independent modules are easier to maintain (and test) because secondary effects caused by design or code modification are limited, error propagation is reduced, and reusable modules are possible.
  • 24. Functional Independence  Independence is assessed using two qualitative criteria: cohesion and coupling.  Cohesion. is an indication of the relative functional strength of a module.  A cohesive module performs a single task, requiring little interaction with other components in other parts of a program. Stated simply, a cohesive module should (ideally) do just one thing. Coupling is an indication of the relative interdependence among modules.  Coupling depends on the interface complexity between modules, the point at which entry or reference is made to a module, and what data pass across the interface. 24
  • 25. Refinement  Refinement is actually a process of elaboration. You begin with a statement of function (or description of information) that is defined at a high level of abstraction.  That is, the statement describes function or information conceptually but provides no information about the internal workings of the function or the internal structure of the information.  You then elaborate on the original statement, providing more and more detail as each successive refinement (elaboration) occurs.  Abstraction and refinement are complementary concepts. 25
  • 26. 26 Stepwise Refinement open walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
  • 27. 27 Refactoring "Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure.”  When software is refactored, the existing design is examined for  redundancy  unused design elements  inefficient or unnecessary algorithms  poorly constructed or inappropriate data structures  or any other design failure that can be corrected to yield a better design.
  • 28. 28 OO Design Concepts  The object-oriented (OO) paradigm is widely used in modern software engineering.  Design classes  Entity classes  Boundary classes  Controller classes  Inheritance—all responsibilities of a super class is immediately inherited by all subclasses  Messages—stimulate some behavior to occur in the receiving object  Polymorphism—a characteristic that greatly reduces the effort required to extend the design
  • 29. Design Classes  As the design model evolves, you will define a set of design classes that refine the analysis classes by providing design detail that will enable the classes to be implemented, and implement a software infrastructure that supports the business solution. 29