SlideShare a Scribd company logo
1 of 30
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

More Related Content

What's hot

How Internet Of Things is changing Financial Sector
How Internet Of Things is changing Financial SectorHow Internet Of Things is changing Financial Sector
How Internet Of Things is changing Financial SectorSandeep Mishra
 
Hybrid Technique for Associative Classification of Heart Diseases
Hybrid Technique for Associative Classification of Heart DiseasesHybrid Technique for Associative Classification of Heart Diseases
Hybrid Technique for Associative Classification of Heart DiseasesJagdeep Singh Malhi
 
Project synopsis on face recognition in e attendance
Project synopsis on face recognition in e attendanceProject synopsis on face recognition in e attendance
Project synopsis on face recognition in e attendanceNitesh Dubey
 
Smart attendance system using facial recognition
Smart attendance system using facial recognitionSmart attendance system using facial recognition
Smart attendance system using facial recognitionVigneshLakshmanan8
 
UML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalUML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalHarieHaren GV
 
Density Based Traffic signal system using microcontroller
Density Based Traffic signal system using microcontrollerDensity Based Traffic signal system using microcontroller
Density Based Traffic signal system using microcontrollerkrity kumari
 
Mobile based attandance system
Mobile based attandance systemMobile based attandance system
Mobile based attandance systemAbhishek Jha
 
IRJET- Greenhouse Monitoring using Raspberry Pi
IRJET- Greenhouse Monitoring using Raspberry PiIRJET- Greenhouse Monitoring using Raspberry Pi
IRJET- Greenhouse Monitoring using Raspberry PiIRJET Journal
 
Time Logger- BSc.CSIT Internship report
Time Logger- BSc.CSIT Internship reportTime Logger- BSc.CSIT Internship report
Time Logger- BSc.CSIT Internship reportRashna Maharjan
 
Online Crime Reporting ppt
Online Crime Reporting pptOnline Crime Reporting ppt
Online Crime Reporting pptShirinAkhtar5
 
Analytics-Based Crime Prediction
Analytics-Based Crime PredictionAnalytics-Based Crime Prediction
Analytics-Based Crime PredictionProdapt Solutions
 
PredPol: How Predictive Policing Works
PredPol: How Predictive Policing WorksPredPol: How Predictive Policing Works
PredPol: How Predictive Policing WorksPredPol, Inc
 
Fire Alarm System Project
Fire Alarm System ProjectFire Alarm System Project
Fire Alarm System ProjectRinkuNahar
 
Face recognition attendance system
Face recognition attendance systemFace recognition attendance system
Face recognition attendance systemNaomi Kulkarni
 
Pornography on the internet
Pornography on the internetPornography on the internet
Pornography on the internetryangregory55
 
Identity Theft Presentation
Identity Theft PresentationIdentity Theft Presentation
Identity Theft Presentationcharlesgarrett
 
Cyber security and its advantages
Cyber security and its advantagesCyber security and its advantages
Cyber security and its advantagesRadhika Sharma
 
Attendance Management System using Face Recognition
Attendance Management System using Face RecognitionAttendance Management System using Face Recognition
Attendance Management System using Face RecognitionNanditaDutta4
 

What's hot (20)

How Internet Of Things is changing Financial Sector
How Internet Of Things is changing Financial SectorHow Internet Of Things is changing Financial Sector
How Internet Of Things is changing Financial Sector
 
Hybrid Technique for Associative Classification of Heart Diseases
Hybrid Technique for Associative Classification of Heart DiseasesHybrid Technique for Associative Classification of Heart Diseases
Hybrid Technique for Associative Classification of Heart Diseases
 
Project synopsis on face recognition in e attendance
Project synopsis on face recognition in e attendanceProject synopsis on face recognition in e attendance
Project synopsis on face recognition in e attendance
 
Smart attendance system using facial recognition
Smart attendance system using facial recognitionSmart attendance system using facial recognition
Smart attendance system using facial recognition
 
UML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalUML Diagrams For Online Course Portal
UML Diagrams For Online Course Portal
 
Density Based Traffic signal system using microcontroller
Density Based Traffic signal system using microcontrollerDensity Based Traffic signal system using microcontroller
Density Based Traffic signal system using microcontroller
 
Mobile based attandance system
Mobile based attandance systemMobile based attandance system
Mobile based attandance system
 
IRJET- Greenhouse Monitoring using Raspberry Pi
IRJET- Greenhouse Monitoring using Raspberry PiIRJET- Greenhouse Monitoring using Raspberry Pi
IRJET- Greenhouse Monitoring using Raspberry Pi
 
Time Logger- BSc.CSIT Internship report
Time Logger- BSc.CSIT Internship reportTime Logger- BSc.CSIT Internship report
Time Logger- BSc.CSIT Internship report
 
Online Crime Reporting ppt
Online Crime Reporting pptOnline Crime Reporting ppt
Online Crime Reporting ppt
 
Analytics-Based Crime Prediction
Analytics-Based Crime PredictionAnalytics-Based Crime Prediction
Analytics-Based Crime Prediction
 
PredPol: How Predictive Policing Works
PredPol: How Predictive Policing WorksPredPol: How Predictive Policing Works
PredPol: How Predictive Policing Works
 
honour killing
honour killinghonour killing
honour killing
 
Fire Alarm System Project
Fire Alarm System ProjectFire Alarm System Project
Fire Alarm System Project
 
Face recognition attendance system
Face recognition attendance systemFace recognition attendance system
Face recognition attendance system
 
Pornography on the internet
Pornography on the internetPornography on the internet
Pornography on the internet
 
Ppt(women prisoners (1)
Ppt(women prisoners  (1)Ppt(women prisoners  (1)
Ppt(women prisoners (1)
 
Identity Theft Presentation
Identity Theft PresentationIdentity Theft Presentation
Identity Theft Presentation
 
Cyber security and its advantages
Cyber security and its advantagesCyber security and its advantages
Cyber security and its advantages
 
Attendance Management System using Face Recognition
Attendance Management System using Face RecognitionAttendance Management System using Face Recognition
Attendance Management System using Face Recognition
 

Similar to Chapter 08

Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principlesAhmad sohail Kakar
 
Software engineering
Software engineeringSoftware engineering
Software engineeringStella526835
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 

Similar to Chapter 08 (20)

06 fse design
06 fse design06 fse design
06 fse design
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Software design
Software designSoftware design
Software design
 
Software design
Software designSoftware design
Software design
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
Unit 3
Unit 3Unit 3
Unit 3
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Chapter1
Chapter1Chapter1
Chapter1
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 

More from Nazir Ahmed

Data structures final lecture 1
Data structures final  lecture 1Data structures final  lecture 1
Data structures final lecture 1Nazir Ahmed
 
Data structures lecture 04
Data structures  lecture 04Data structures  lecture 04
Data structures lecture 04Nazir Ahmed
 
Control unit design(1)
Control unit design(1)Control unit design(1)
Control unit design(1)Nazir Ahmed
 
Computer architecture mcq (2)
Computer architecture mcq (2)Computer architecture mcq (2)
Computer architecture mcq (2)Nazir Ahmed
 
Complete binary tree and heap
Complete binary tree and heapComplete binary tree and heap
Complete binary tree and heapNazir Ahmed
 
Clamper clipper(10)
Clamper clipper(10)Clamper clipper(10)
Clamper clipper(10)Nazir Ahmed
 
Chapter 07 ddl_sql
Chapter 07 ddl_sqlChapter 07 ddl_sql
Chapter 07 ddl_sqlNazir Ahmed
 
Chapter # 12 er modeling
Chapter # 12 er modelingChapter # 12 er modeling
Chapter # 12 er modelingNazir Ahmed
 
Ch05 cpu-scheduling
Ch05 cpu-schedulingCh05 cpu-scheduling
Ch05 cpu-schedulingNazir Ahmed
 

More from Nazir Ahmed (20)

Data structures final lecture 1
Data structures final  lecture 1Data structures final  lecture 1
Data structures final lecture 1
 
Data structures lecture 04
Data structures  lecture 04Data structures  lecture 04
Data structures lecture 04
 
Data structure
Data structureData structure
Data structure
 
Cover letter
Cover letterCover letter
Cover letter
 
Control unit design(1)
Control unit design(1)Control unit design(1)
Control unit design(1)
 
Computer architecture mcq (2)
Computer architecture mcq (2)Computer architecture mcq (2)
Computer architecture mcq (2)
 
Complete binary tree and heap
Complete binary tree and heapComplete binary tree and heap
Complete binary tree and heap
 
Clamper clipper(10)
Clamper clipper(10)Clamper clipper(10)
Clamper clipper(10)
 
Cisc mc68000
Cisc mc68000Cisc mc68000
Cisc mc68000
 
Chapter 07 ddl_sql
Chapter 07 ddl_sqlChapter 07 ddl_sql
Chapter 07 ddl_sql
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Chapter 03
Chapter 03Chapter 03
Chapter 03
 
Chapter # 12 er modeling
Chapter # 12 er modelingChapter # 12 er modeling
Chapter # 12 er modeling
 
Chapeter 2
Chapeter 2Chapeter 2
Chapeter 2
 
Ch7 1 v1
Ch7 1 v1Ch7 1 v1
Ch7 1 v1
 
Ch07 deadlocks
Ch07 deadlocksCh07 deadlocks
Ch07 deadlocks
 
Ch05 cpu-scheduling
Ch05 cpu-schedulingCh05 cpu-scheduling
Ch05 cpu-scheduling
 
Ch04 threads
Ch04 threadsCh04 threads
Ch04 threads
 
Ch03 processes
Ch03 processesCh03 processes
Ch03 processes
 
Ch1 v1
Ch1 v1Ch1 v1
Ch1 v1
 

Recently uploaded

Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 

Recently uploaded (20)

Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 

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