SlideShare una empresa de Scribd logo
1 de 30
1
Design Concepts andDesign Concepts and
PrinciplesPrinciples
2
Design Concepts and PrinciplesDesign Concepts and Principles
The designer's goal is to produce a model or
representation of an entity that will later be
built.
There are two major phases to any design
process: diversification and convergence.
Diversification is the acquisition of a repertoire
of alternatives, the raw material of design:
components, component solutions, and
knowledge, all contained in catalogs,
textbooks, and the mind.
3
Design Concepts and PrinciplesDesign Concepts and Principles
During convergence, the designer chooses
and combines appropriate elements from
this repertoire to meet the design objectives,
as
stated in the requirements document and as
agreed to by the customer.
The second phase is the gradual elimination
of all but one particular configuration of
components, and thus the creation of the
final product.
4
Design Concepts and PrinciplesDesign Concepts and Principles
What is it?
Design is a meaningful engineering representation
of something that is to be built.
It can be traced to a customer’s requirements and
at the same time assessed for quality against a
set of predefined criteria for “good” design.
In the software engineering context, design focuses
on
four major areas of concern: data, architecture,
interfaces, and components.
5
Design Concepts and PrinciplesDesign Concepts and Principles
Who does it?
Software engineers design computer based systems,
but the skills required at each level of design work are
different.
At the data and architectural level, design focuses on
patterns as they apply to the application to be built.
At the interface level, human ergonomics often
dictate our design approach.
At the component level, a “programming approach”
leads us to effective data and procedural designs.
6
Design Concepts and PrinciplesDesign Concepts and Principles
Why is it important?
You wouldn’t attempt to build
a house without a blueprint, would you? You’d
risk confusion, errors, a floor plan that didn’t make
sense, windows and doors in the wrong place . .
. a mess.
Computer software is considerably more
complex than a house; hence, we need a blueprint—
the design.
7
Design Concepts and PrinciplesDesign Concepts and Principles
What are the steps?
Design begins with the requirements model.
We work to transform this model
into four levels of design detail:
the data structure the system architecture, the
interface representation, and the component
level detail.
During each design activity, we apply basic
concepts and principles that lead to high
quality
8
Design Concepts and PrinciplesDesign Concepts and Principles
What is the work product?
Ultimately, a Design Specification is
produced.
The specification is composed
of the design models that describe data,
architecture, interfaces, and components.
Each is a work product of the design process
9
Design Concepts and PrinciplesDesign Concepts and Principles
How do I ensure that I’ve done it right?
At each stage, software design work
products are reviewed for clarity,
correctness, completness, and consistency
with the requirements and with one another.
10
Design PrinciplesDesign Principles
The design process should not suffer from ‘tunnel vision.’The design process should not suffer from ‘tunnel vision.’
The design should be traceable to the analysis model.The design should be traceable to the analysis model.
The design should not reinvent the wheel.The design should not reinvent the wheel.
The design should “minimize the intellectual distance” [DAV95] between theThe design should “minimize the intellectual distance” [DAV95] between the
software and the problem as it exists in the real world.software and the problem as it exists in the real world.
The design should exhibit uniformity and integration.The design should exhibit uniformity and integration.
The design should be structured to accommodate change.The design should be structured to accommodate change.
The design should be structured to degrade gently, even when aberrantThe design should be structured to degrade gently, even when aberrant
data, events, or operating conditions are encountered.data, events, or operating conditions are encountered.
Design is not coding, coding is not design.Design is not coding, coding is not design.
The design should be assessed for quality as it is being created, not after theThe design should be assessed for quality as it is being created, not after the
fact.fact.
The design should be reviewed to minimize conceptual (semantic) errors.The design should be reviewed to minimize conceptual (semantic) errors.
From Davis [DAV95]
11
FundamentalFundamental
ConceptsConceptsabstractionabstraction—data, procedure, control—data, procedure, control
refinementrefinement—elaboration of detail for all—elaboration of detail for all
abstractionsabstractions
modularitymodularity—compartmentalization of data and—compartmentalization of data and
functionfunction
architecturearchitecture—overall structure of the software—overall structure of the software
Structural propertiesStructural properties
Extra-structural propertiesExtra-structural properties
Styles and patternsStyles and patterns
procedureprocedure—the algorithms that achieve function—the algorithms that achieve function
hidinghiding—controlled interfaces—controlled interfaces
12
DataData
AbstractionAbstractiondoor
implemented as a data structure
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism
13
ProceduralProcedural
AbstractionAbstraction
open
implemented with a "knowledge" of the
object that is associated with enter
details of enter
algorithm
14
StepwiseStepwise
RefinementRefinementopen
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
15
Modular DesignModular Design
easier to build, easier to change, easier to fix ...
16
ModularModular
DesignDesign
Let C(x) be a function that defines the perceived
complexity of a problem x, and
E(x) be a function that defines the effort (in time)
required to solve a problem x. Fortwo problems, p1
and p2, if
C(p1) > C(p2)
it follows that
E(p1) > E(p2)
As a general case, this result is intuitively obvious. It
does take more time to solve a difficult problem.
17
ModularModular
DesignDesign
Another interesting characteristic has been uncovered
through experimentation in human problem solving. That is,
C(p1 + p2) > C(p1) + C(p2)
Expression implies that the perceived complexity of a
problem that combines p1 and p2 is greater than the
perceived complexity when each problem is considered
separately.
it follows that
E(p1 + p2) > E(p1) + E(p2)
This leads to a "divide and conquer" conclusion—it's easier to
solve a complex problem when you break it into
manageable pieces. The result expressed in Expression has
important implications with regard to modularity and
software. It is, in fact, an argument for modularity.
18
Modularity: Trade-offsModularity: Trade-offs
What is the "right" number of modulesWhat is the "right" number of modules
for a specific software design?for a specific software design?
optimal numberoptimal number
of modulesof modules
cost ofcost of
softwaresoftware
number of modulesnumber of modules
modulemodule
integrationintegration
costcost
module development costmodule development cost
19
Criteria that enable us
to evaluate a design
method
Modular decomposability. If a design method provides
a systematic mechanism for decomposing the problem
into subproblems, it will reduce the complexity of the
overall problem, thereby achieving an effective
modular
solution.
Modular composability. If a design method enables
existing (reusable) design components to be assembled
into a new system, it will yield a modular solution that
does not reinvent the wheel.
20
Criteria that enable us
to evaluate a design
method
Modular understandability. If a module can be understood
as a standalone unit (without reference to other modules), it
will be easier to build and easier to change.
Modular continuity. If small changes to the system
requirements result in changes to individual modules, rather
than systemwide changes, the impact of change-induced
side effects will be minimized.
Modular protection. If an aberrant condition occurs within a
module and its effects are constrained within that module,
the impact of error-induced side effects will be minimized.
21
ArchitecturArchitectur
ee““The overall structure of the software andThe overall structure of the software and
the ways in which that structure providesthe ways in which that structure provides
conceptual integrity for a system.”conceptual integrity for a system.”
[SHA95a][SHA95a]Structural properties.Structural properties. This aspect of the architectural designThis aspect of the architectural design
representation defines the components of a system (e.g., modules,representation defines the components of a system (e.g., modules,
objects, filters) and the manner in which those components areobjects, filters) and the manner in which those components are
packaged and interact with one another. For example, objects arepackaged and interact with one another. For example, objects are
packaged to encapsulate both data and the processing thatpackaged to encapsulate both data and the processing that
manipulates the data and interact via the invocation of methods .manipulates the data and interact via the invocation of methods .
Extra-functional properties.Extra-functional properties. The architectural design descriptionThe architectural design description
should address how the design architecture achieves requirementsshould address how the design architecture achieves requirements
for performance, capacity, reliability, security, adaptability, andfor performance, capacity, reliability, security, adaptability, and
other system characteristics.other system characteristics.
Families of related systems.Families of related systems. The architectural design should drawThe architectural design should draw
upon repeatable patterns that are commonly encountered in theupon repeatable patterns that are commonly encountered in the
design of families of similar systems. In essence, the design shoulddesign of families of similar systems. In essence, the design should
have the ability to reuse architectural building blocks.have the ability to reuse architectural building blocks.
22
Control Hierarchy
depth and width provide an indication of the
number of levels of control and overall span
of control, respectively.
Fan-out is a measure of the number of
modules that are directly controlled by
another module.
Fan-in indicates how many modules
directly control a given module
23
Control Hierarchy
The control hierarchy also represents two subtly
different characteristics of the software architecture:
visibility and connectivity.
Visibility indicates the set of program components that
may be invoked or used as data by a given
component, even when this is accomplished
indirectly.
Connectivity indicates the set of components that are
directly invoked or used as data by a given
component
24
Module YModule X Module Q Module R
MODULE D MODULE E MODULE GMODULE CMODULE B MODULE F
Module M Module N
Module S Module TModule K Module L
EXECUTIVEEXECUTIVE
Depth
Breadth
Fan out
Fan in
MODULE A
25
Structural Hierarchy
the program structure can be partitioned
both horizontally and vertically.
26
Data StructureData Structure
Data structure is a representation of the
logical relationship among individual
elements of data. Because the structure of
information will invariably affect the final
procedural design, data structure is as
important as program structure to the
representation of software architecture.
27
Software ProcedureSoftware Procedure
Program structure defines control hierarchy
without regard to the sequence of processing
and decisions. Software procedure focuses
on the processing details of each
module individually. Procedure must provide
a precise specification of processing,
including sequence of events, exact
decision points, repetitive operations, and
even
data organization and structure.
28
Information HidingInformation Hiding
modulemodule
controlledcontrolled
interfaceinterface
"secret""secret"
•• algorithmalgorithm
•• data structuredata structure
•• details of external interfacedetails of external interface
•• resource allocation policyresource allocation policy
clientsclients
a specific design decisiona specific design decision
29
Why Information Hiding?Why Information Hiding?
reduces the likelihood of “side effects”reduces the likelihood of “side effects”
limits the global impact of local designlimits the global impact of local design
decisionsdecisions
emphasizes communication throughemphasizes communication through
controlled interfacescontrolled interfaces
discourages the use of global datadiscourages the use of global data
leads to encapsulation—an attribute ofleads to encapsulation—an attribute of
high quality designhigh quality design
results in higher quality softwareresults in higher quality software
30
FunctionalFunctional
IndependenceIndependence
COHESION - the degree to which a
module performs one and only one
function.
COUPLING - the degree to which a
module is "connected" to other
modules in the system.

Más contenido relacionado

La actualidad más candente

Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Fadhil Ismail
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and conceptsSlideshare
 
Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
software design principles
software design principlessoftware design principles
software design principlesCristal Ngo
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
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
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
Design concepts
Design conceptsDesign concepts
Design conceptsJoshuaU1
 

La actualidad más candente (20)

Software design
Software designSoftware design
Software design
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
Software design
Software designSoftware design
Software design
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
5 software design
5 software design5 software design
5 software design
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
 
Software design principles
Software design principlesSoftware design principles
Software design principles
 
software design principles
software design principlessoftware design principles
software design principles
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Software design
Software designSoftware design
Software design
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
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
 
Design final
Design finalDesign final
Design final
 
06 fse design
06 fse design06 fse design
06 fse design
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Design concepts
Design conceptsDesign concepts
Design concepts
 

Destacado

Lecture 17 design concepts (2)
Lecture 17   design concepts (2)Lecture 17   design concepts (2)
Lecture 17 design concepts (2)IIUI
 
How to start your Design project
How to start your Design projectHow to start your Design project
How to start your Design projectShabnam Golkarian
 
Computer Graphics Modelling and Rendering report
Computer Graphics Modelling and Rendering reportComputer Graphics Modelling and Rendering report
Computer Graphics Modelling and Rendering reportHugo King
 
Graphics1 introduction
Graphics1 introductionGraphics1 introduction
Graphics1 introductionlokesh503
 
Drawing in practice
Drawing in practiceDrawing in practice
Drawing in practiceShellygwhs
 
3 d computer graphics software
3 d computer graphics software3 d computer graphics software
3 d computer graphics softwareAfnan Asem
 
Computer Grafica
Computer GraficaComputer Grafica
Computer GraficaGiovanni Re
 
Makeforum2014 - il disegno e i cad (per la stampa 3d)
Makeforum2014 - il disegno e i cad (per la stampa 3d)Makeforum2014 - il disegno e i cad (per la stampa 3d)
Makeforum2014 - il disegno e i cad (per la stampa 3d)Paolo Aliverti
 
Evolution of Drawing as an Engineering Discipline
Evolution of Drawing as an Engineering DisciplineEvolution of Drawing as an Engineering Discipline
Evolution of Drawing as an Engineering DisciplineAnindya Sundar Paul
 
Drawing History
Drawing HistoryDrawing History
Drawing Historybreeding
 
Brief history of graphic design
Brief history of graphic designBrief history of graphic design
Brief history of graphic designMelanie Weser
 
Overview of Graphics System
Overview of Graphics SystemOverview of Graphics System
Overview of Graphics SystemPrathimaBaliga
 
Basic principles of design
Basic principles of designBasic principles of design
Basic principles of designSarah Baker
 
Fashion Design & The Computer
Fashion  Design &  The  ComputerFashion  Design &  The  Computer
Fashion Design & The Computerdglsdn23
 

Destacado (20)

Lecture 17 design concepts (2)
Lecture 17   design concepts (2)Lecture 17   design concepts (2)
Lecture 17 design concepts (2)
 
How to start your Design project
How to start your Design projectHow to start your Design project
How to start your Design project
 
Computer Graphics Modelling and Rendering report
Computer Graphics Modelling and Rendering reportComputer Graphics Modelling and Rendering report
Computer Graphics Modelling and Rendering report
 
Introduction graphics
Introduction graphicsIntroduction graphics
Introduction graphics
 
Graphics1 introduction
Graphics1 introductionGraphics1 introduction
Graphics1 introduction
 
Drawing 2 pdf 2
Drawing 2 pdf 2Drawing 2 pdf 2
Drawing 2 pdf 2
 
Drawing in practice
Drawing in practiceDrawing in practice
Drawing in practice
 
3d e Fashion
3d e Fashion3d e Fashion
3d e Fashion
 
3 d computer graphics software
3 d computer graphics software3 d computer graphics software
3 d computer graphics software
 
Computer Grafica
Computer GraficaComputer Grafica
Computer Grafica
 
Makeforum2014 - il disegno e i cad (per la stampa 3d)
Makeforum2014 - il disegno e i cad (per la stampa 3d)Makeforum2014 - il disegno e i cad (per la stampa 3d)
Makeforum2014 - il disegno e i cad (per la stampa 3d)
 
Computer graphics1
Computer graphics1Computer graphics1
Computer graphics1
 
Evolution of Drawing as an Engineering Discipline
Evolution of Drawing as an Engineering DisciplineEvolution of Drawing as an Engineering Discipline
Evolution of Drawing as an Engineering Discipline
 
Drawing History
Drawing HistoryDrawing History
Drawing History
 
Brief history of graphic design
Brief history of graphic designBrief history of graphic design
Brief history of graphic design
 
Overview of Graphics System
Overview of Graphics SystemOverview of Graphics System
Overview of Graphics System
 
Basic principles of design
Basic principles of designBasic principles of design
Basic principles of design
 
Overview of Computer Graphics
Overview of Computer GraphicsOverview of Computer Graphics
Overview of Computer Graphics
 
Digital design
Digital designDigital design
Digital design
 
Fashion Design & The Computer
Fashion  Design &  The  ComputerFashion  Design &  The  Computer
Fashion Design & The Computer
 

Similar a Design concepts and principle,

04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsAmr E. Mohamed
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)stanbridge
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 
Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...38aartidhage
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringMuhammad Chaudhry
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 

Similar a Design concepts and principle, (20)

Chapter 09
Chapter 09Chapter 09
Chapter 09
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
 

Último

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 

Último (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

Design concepts and principle,

  • 1. 1 Design Concepts andDesign Concepts and PrinciplesPrinciples
  • 2. 2 Design Concepts and PrinciplesDesign Concepts and Principles The designer's goal is to produce a model or representation of an entity that will later be built. There are two major phases to any design process: diversification and convergence. Diversification is the acquisition of a repertoire of alternatives, the raw material of design: components, component solutions, and knowledge, all contained in catalogs, textbooks, and the mind.
  • 3. 3 Design Concepts and PrinciplesDesign Concepts and Principles During convergence, the designer chooses and combines appropriate elements from this repertoire to meet the design objectives, as stated in the requirements document and as agreed to by the customer. The second phase is the gradual elimination of all but one particular configuration of components, and thus the creation of the final product.
  • 4. 4 Design Concepts and PrinciplesDesign Concepts and Principles What is it? Design is a meaningful engineering representation of something that is to be built. It can be traced to a customer’s requirements and at the same time assessed for quality against a set of predefined criteria for “good” design. In the software engineering context, design focuses on four major areas of concern: data, architecture, interfaces, and components.
  • 5. 5 Design Concepts and PrinciplesDesign Concepts and Principles Who does it? Software engineers design computer based systems, but the skills required at each level of design work are different. At the data and architectural level, design focuses on patterns as they apply to the application to be built. At the interface level, human ergonomics often dictate our design approach. At the component level, a “programming approach” leads us to effective data and procedural designs.
  • 6. 6 Design Concepts and PrinciplesDesign Concepts and Principles Why is it important? You wouldn’t attempt to build a house without a blueprint, would you? You’d risk confusion, errors, a floor plan that didn’t make sense, windows and doors in the wrong place . . . a mess. Computer software is considerably more complex than a house; hence, we need a blueprint— the design.
  • 7. 7 Design Concepts and PrinciplesDesign Concepts and Principles What are the steps? Design begins with the requirements model. We work to transform this model into four levels of design detail: the data structure the system architecture, the interface representation, and the component level detail. During each design activity, we apply basic concepts and principles that lead to high quality
  • 8. 8 Design Concepts and PrinciplesDesign Concepts and Principles What is the work product? Ultimately, a Design Specification is produced. The specification is composed of the design models that describe data, architecture, interfaces, and components. Each is a work product of the design process
  • 9. 9 Design Concepts and PrinciplesDesign Concepts and Principles How do I ensure that I’ve done it right? At each stage, software design work products are reviewed for clarity, correctness, completness, and consistency with the requirements and with one another.
  • 10. 10 Design PrinciplesDesign Principles The design process should not suffer from ‘tunnel vision.’The design process should not suffer from ‘tunnel vision.’ The design should be traceable to the analysis model.The design should be traceable to the analysis model. The design should not reinvent the wheel.The design should not reinvent the wheel. The design should “minimize the intellectual distance” [DAV95] between theThe design should “minimize the intellectual distance” [DAV95] between the software and the problem as it exists in the real world.software and the problem as it exists in the real world. The design should exhibit uniformity and integration.The design should exhibit uniformity and integration. The design should be structured to accommodate change.The design should be structured to accommodate change. The design should be structured to degrade gently, even when aberrantThe design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered.data, events, or operating conditions are encountered. Design is not coding, coding is not design.Design is not coding, coding is not design. The design should be assessed for quality as it is being created, not after theThe design should be assessed for quality as it is being created, not after the fact.fact. The design should be reviewed to minimize conceptual (semantic) errors.The design should be reviewed to minimize conceptual (semantic) errors. From Davis [DAV95]
  • 11. 11 FundamentalFundamental ConceptsConceptsabstractionabstraction—data, procedure, control—data, procedure, control refinementrefinement—elaboration of detail for all—elaboration of detail for all abstractionsabstractions modularitymodularity—compartmentalization of data and—compartmentalization of data and functionfunction architecturearchitecture—overall structure of the software—overall structure of the software Structural propertiesStructural properties Extra-structural propertiesExtra-structural properties Styles and patternsStyles and patterns procedureprocedure—the algorithms that achieve function—the algorithms that achieve function hidinghiding—controlled interfaces—controlled interfaces
  • 12. 12 DataData AbstractionAbstractiondoor implemented as a data structure manufacturer model number type swing direction inserts lights type number weight opening mechanism
  • 13. 13 ProceduralProcedural AbstractionAbstraction open implemented with a "knowledge" of the object that is associated with enter details of enter algorithm
  • 14. 14 StepwiseStepwise RefinementRefinementopen 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
  • 15. 15 Modular DesignModular Design easier to build, easier to change, easier to fix ...
  • 16. 16 ModularModular DesignDesign Let C(x) be a function that defines the perceived complexity of a problem x, and E(x) be a function that defines the effort (in time) required to solve a problem x. Fortwo problems, p1 and p2, if C(p1) > C(p2) it follows that E(p1) > E(p2) As a general case, this result is intuitively obvious. It does take more time to solve a difficult problem.
  • 17. 17 ModularModular DesignDesign Another interesting characteristic has been uncovered through experimentation in human problem solving. That is, C(p1 + p2) > C(p1) + C(p2) Expression implies that the perceived complexity of a problem that combines p1 and p2 is greater than the perceived complexity when each problem is considered separately. it follows that E(p1 + p2) > E(p1) + E(p2) This leads to a "divide and conquer" conclusion—it's easier to solve a complex problem when you break it into manageable pieces. The result expressed in Expression has important implications with regard to modularity and software. It is, in fact, an argument for modularity.
  • 18. 18 Modularity: Trade-offsModularity: Trade-offs What is the "right" number of modulesWhat is the "right" number of modules for a specific software design?for a specific software design? optimal numberoptimal number of modulesof modules cost ofcost of softwaresoftware number of modulesnumber of modules modulemodule integrationintegration costcost module development costmodule development cost
  • 19. 19 Criteria that enable us to evaluate a design method Modular decomposability. If a design method provides a systematic mechanism for decomposing the problem into subproblems, it will reduce the complexity of the overall problem, thereby achieving an effective modular solution. Modular composability. If a design method enables existing (reusable) design components to be assembled into a new system, it will yield a modular solution that does not reinvent the wheel.
  • 20. 20 Criteria that enable us to evaluate a design method Modular understandability. If a module can be understood as a standalone unit (without reference to other modules), it will be easier to build and easier to change. Modular continuity. If small changes to the system requirements result in changes to individual modules, rather than systemwide changes, the impact of change-induced side effects will be minimized. Modular protection. If an aberrant condition occurs within a module and its effects are constrained within that module, the impact of error-induced side effects will be minimized.
  • 21. 21 ArchitecturArchitectur ee““The overall structure of the software andThe overall structure of the software and the ways in which that structure providesthe ways in which that structure provides conceptual integrity for a system.”conceptual integrity for a system.” [SHA95a][SHA95a]Structural properties.Structural properties. This aspect of the architectural designThis aspect of the architectural design representation defines the components of a system (e.g., modules,representation defines the components of a system (e.g., modules, objects, filters) and the manner in which those components areobjects, filters) and the manner in which those components are packaged and interact with one another. For example, objects arepackaged and interact with one another. For example, objects are packaged to encapsulate both data and the processing thatpackaged to encapsulate both data and the processing that manipulates the data and interact via the invocation of methods .manipulates the data and interact via the invocation of methods . Extra-functional properties.Extra-functional properties. The architectural design descriptionThe architectural design description should address how the design architecture achieves requirementsshould address how the design architecture achieves requirements for performance, capacity, reliability, security, adaptability, andfor performance, capacity, reliability, security, adaptability, and other system characteristics.other system characteristics. Families of related systems.Families of related systems. The architectural design should drawThe architectural design should draw upon repeatable patterns that are commonly encountered in theupon repeatable patterns that are commonly encountered in the design of families of similar systems. In essence, the design shoulddesign of families of similar systems. In essence, the design should have the ability to reuse architectural building blocks.have the ability to reuse architectural building blocks.
  • 22. 22 Control Hierarchy depth and width provide an indication of the number of levels of control and overall span of control, respectively. Fan-out is a measure of the number of modules that are directly controlled by another module. Fan-in indicates how many modules directly control a given module
  • 23. 23 Control Hierarchy The control hierarchy also represents two subtly different characteristics of the software architecture: visibility and connectivity. Visibility indicates the set of program components that may be invoked or used as data by a given component, even when this is accomplished indirectly. Connectivity indicates the set of components that are directly invoked or used as data by a given component
  • 24. 24 Module YModule X Module Q Module R MODULE D MODULE E MODULE GMODULE CMODULE B MODULE F Module M Module N Module S Module TModule K Module L EXECUTIVEEXECUTIVE Depth Breadth Fan out Fan in MODULE A
  • 25. 25 Structural Hierarchy the program structure can be partitioned both horizontally and vertically.
  • 26. 26 Data StructureData Structure Data structure is a representation of the logical relationship among individual elements of data. Because the structure of information will invariably affect the final procedural design, data structure is as important as program structure to the representation of software architecture.
  • 27. 27 Software ProcedureSoftware Procedure Program structure defines control hierarchy without regard to the sequence of processing and decisions. Software procedure focuses on the processing details of each module individually. Procedure must provide a precise specification of processing, including sequence of events, exact decision points, repetitive operations, and even data organization and structure.
  • 28. 28 Information HidingInformation Hiding modulemodule controlledcontrolled interfaceinterface "secret""secret" •• algorithmalgorithm •• data structuredata structure •• details of external interfacedetails of external interface •• resource allocation policyresource allocation policy clientsclients a specific design decisiona specific design decision
  • 29. 29 Why Information Hiding?Why Information Hiding? reduces the likelihood of “side effects”reduces the likelihood of “side effects” limits the global impact of local designlimits the global impact of local design decisionsdecisions emphasizes communication throughemphasizes communication through controlled interfacescontrolled interfaces discourages the use of global datadiscourages the use of global data leads to encapsulation—an attribute ofleads to encapsulation—an attribute of high quality designhigh quality design results in higher quality softwareresults in higher quality software
  • 30. 30 FunctionalFunctional IndependenceIndependence COHESION - the degree to which a module performs one and only one function. COUPLING - the degree to which a module is "connected" to other modules in the system.