SlideShare una empresa de Scribd logo
1 de 30
Software Design
SW Design
 Software design is an iterative process
through which requirements are translated
into a “blueprint” for constructing the
software.
 Initially, the blueprint depicts a holistic view of
software.
Process of Design Engineering
 During the design process the software
specifications are transformed into design models
 Models describe the details of the data structures,
system architecture, interface, and components.
 Each design product is reviewed for quality before
moving to the next phase of software development.
 At the end of the design process a design model
and specification document is produced.
 This document is composed of the design models
that describe the data, architecture, interfaces and
components.
Entity-
Relationship
Diagram
Data Flow
Diagram
State-Transition
Diagram
Data Dictionary
Process Specification (PSPEC)
Control Specification (CSPEC)
Data Object Description
THE ANALYSIS MODEL
procedural
design
interface
design
architectural
design
data
design
THE DESIGN MODEL
Design Specification Models
 Data design – created by transforming the analysis information
model (data dictionary and ERD) into data structures required to
implement the software. Part of the data design may occur in
conjunction with the design of software architecture. More
detailed data design occurs as each software component is
designed.
 Architectural design - defines the relationships among the
major structural elements of the software, the “design patterns”
than can be used to achieve the requirements that have been
defined for the system, and the constraints that affect the way in
which the architectural patterns can be applied. It is derived from
the system specification, the analysis model, and the subsystem
interactions defined in the analysis model (DFD).
Design Specification Models
 Interface design - describes how the software
elements communicate with each other, with other
systems, and with human users; the data flow and
control flow diagrams provide much of the
necessary information required.
 Procedural / Component-level design - created by
transforming the structural elements defined by the
software architecture into procedural descriptions of
software components using information obtained
from the process specification (PSPEC), control
specification (CSPEC), and state transition diagram
(STD).
7
Design - Fundamental Concepts
 Abstraction
 Architecture
 Patterns
 Modularity
 Information hiding
 Functional independence
 Refinement
 Refactoring
Abstraction
 Data Abstraction
 Procedural Abstraction
Architecture Design
“The overall structure of the software and the ways in which that
structure provides conceptual integrity for a system.”
Design can be represented as
 Structural Models
 Defines the components of a system (e.g., modules, objects, filters) and
 How the components are packaged and interact with one another.
 Framework Models
 Increase level of abstraction
 Dynamic Models and Process Models
 Predicts behavioral and reliability aspects
 Functional Models
 Depicts functional Hierarchy.
Patterns
 a pattern is “a common solution to a common
problem in a given context.” While architectural
styles can be viewed as patterns describing the
high-level organization of software (their
macroarchitecture), other design patterns can be
used to describe details at a lower, more local level
(their microarchitecture).
 Creational patterns (example: builder, factory,
prototype, and singleton)
 Structural patterns (example: adapter, bridge,
composite, decorator, façade, flyweight, and proxy)
 Behavioral patterns (example: command,
interpreter, iterator, mediator, memento, observer,
state, strategy, template, visitor)
Design Pattern
 Design Pattern enables a designer to
determine whether the pattern :
 is applicable to the current work
 can be reused
 can serve as a guide for developing a similar, but
functionally or structurally different pattern.
Modular Design
 Easier to change
 Easier to build
 Easier to maintain
Sizing Modules: Two Views
MODULE
What's
inside??
How big
is it??
Information Hiding
 Principle of information hiding says that a good split
of modules is when modules communicate with one
another with only the information necessary to
achieve the s/w function.
 So information hiding enforces access constraints to
both
 procedural detail with a module, and
 local data structure used by that module.
 Data hiding is a CRITERION for modular design.
 How to know what modules to create.
Information Hiding
module
controlled
interface
"secret"
• algorithm
• data structure
• details of external interface
• resource allocation policy
clients
a specific design decision
16
Information Hiding (Benefits)
 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
17
Functional Independence
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.
Cohesion
 Internal glue with which component is constructed
 All elements of component are directed toward and
essential for performing the same task
Range of Cohesion
High Cohesion
Low
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Examples of Cohesion-1
Function A
Function
B
Function
D
Function
C
Function
E
Coincidental
Parts unrelated
Function A
Function A’
Function A’’
logic
Logical
Similar functions
Time t0
Time t0 + X
Time t0 + 2X
Temporal
Related by time
Function A
Function B
Function C
Procedural
Related by order of functions
Examples of Cohesion-2
Function A part 1
Function A part 2
Function A part 3
Functional
Sequential with complete, related functions
Function A
Function B
Function C
Communicational
Access same data
Function A
Function B
Function C
Sequential
Output of one is input to another
Coupling
 Degree of dependence among components.
No dependencies Loosely coupled-some dependencies
Highly couples-many dependencies
Ways components can be dependent
 References made from one to another
 Component A invokes B
 A depends on B for completion of its function or process
 Amount of data passed from one to another
 Component A passes to B: a parameter, contents of an array, block of
data
 Amount of control one has over the other
 Component passes a control flag to B
 Value of flag tells B the state of some resource or subsystem, process
to invoke, or whether to invoke a process
 Degree of complexity in the interface between components
 Components C and D exchange values before D can complete
execution
Range of Coupling
High Coupling
Loose
Low
Content
Common
External
Control
Stamp
Data
Uncoupled
Content Coupling : (worst) When a module
uses/alters data in another module
Common Coupling : 2 modules communicating
via global data
External Coupling :Modules are tied to an
environment external to the software
Control Coupling : 2 modules communicating
with a control flag
Stamp Coupling : Communicating via a
data structure passed as a parameter. The
data structure holds more information than
the recipient needs.
Data Coupling : (best) Communicating
via parameter passing. The parameters
passed are only those that the recipient
needs.
No data coupling : independent modules.
Summary
The measure of strength
of the association of
elements within a module
The measure of
interdependence of one
module to another
It is the degree to which
the responsibility of a
single component form a
meaningful unit
It describes the
relationship between
software components
It is a property or
characteristic of an
individual module
It is a property of a
collection of modules
COHESION COUPLING
Refinement
 Refinement is a process of elaboration
 It is a top-down design strategy
 A program is developed by successfully refining levels of procedural
details
Stepwise Refinement
Open Door
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
Refactoring
 Fowler [FOW99] defines refactoring in the
following manner:
 "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.

Más contenido relacionado

La actualidad más candente

Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
Srs template
Srs templateSrs template
Srs templatemuqeet19
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration ManagementSaqib Raza
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 
Requirement Elicitation Techniques
Requirement Elicitation TechniquesRequirement Elicitation Techniques
Requirement Elicitation TechniquesShwetha-BA
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specificationDeepak Sharma
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specificationAmit Gandhi
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
Example for SDS document in Software engineering
Example for SDS document in Software engineeringExample for SDS document in Software engineering
Example for SDS document in Software engineeringRavi Yasas
 
Requirement elicitation
Requirement elicitationRequirement elicitation
Requirement elicitationvivacemente
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1Abdul Basit
 

La actualidad más candente (20)

Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Software Myths
Software MythsSoftware Myths
Software Myths
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software design methodologies
Software design methodologiesSoftware design methodologies
Software design methodologies
 
Srs template
Srs templateSrs template
Srs template
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Management
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Requirement Elicitation Techniques
Requirement Elicitation TechniquesRequirement Elicitation Techniques
Requirement Elicitation Techniques
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
 
requirement documentation
requirement documentation requirement documentation
requirement documentation
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specification
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Example for SDS document in Software engineering
Example for SDS document in Software engineeringExample for SDS document in Software engineering
Example for SDS document in Software engineering
 
Srs
SrsSrs
Srs
 
Requirement elicitation
Requirement elicitationRequirement elicitation
Requirement elicitation
 
Ch22 project management
Ch22 project managementCh22 project management
Ch22 project management
 
Sample SRS format
Sample SRS formatSample SRS format
Sample SRS format
 
Use Case Modeling
Use Case ModelingUse Case Modeling
Use Case Modeling
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
 

Destacado

Software Design Description (SDD) sample
Software Design Description (SDD) sampleSoftware Design Description (SDD) sample
Software Design Description (SDD) samplePeny Gama
 
Software design specification
Software design specificationSoftware design specification
Software design specificationSubhashiniSukumar
 
Two speed market continues for bc home sales bcrea
Two speed market continues for bc home sales   bcreaTwo speed market continues for bc home sales   bcrea
Two speed market continues for bc home sales bcreaMatt Collinge
 
презентация Microsoft office power point
презентация Microsoft office power pointпрезентация Microsoft office power point
презентация Microsoft office power pointamalik111
 
What chemistry admissions tutors are looking for in a personal statement
What chemistry admissions tutors are looking for in a personal statementWhat chemistry admissions tutors are looking for in a personal statement
What chemistry admissions tutors are looking for in a personal statementTeam MyRSC
 
Sept 2012 Monthly Network Slides
Sept 2012 Monthly Network SlidesSept 2012 Monthly Network Slides
Sept 2012 Monthly Network SlidesNoel Waterman
 
NOVEMBER 29 2012 NETWORK SLIDES
NOVEMBER 29 2012 NETWORK SLIDESNOVEMBER 29 2012 NETWORK SLIDES
NOVEMBER 29 2012 NETWORK SLIDESNoel Waterman
 
3 april 2012 1 hbct weekly news update
3 april 2012 1 hbct weekly news update3 april 2012 1 hbct weekly news update
3 april 2012 1 hbct weekly news updateNoel Waterman
 
Trippelkravmetoden
TrippelkravmetodenTrippelkravmetoden
Trippelkravmetodenritabandita
 
October Network Slides -
October Network Slides - October Network Slides -
October Network Slides - Noel Waterman
 
Chemistry applicants - the process
Chemistry applicants - the processChemistry applicants - the process
Chemistry applicants - the processTeam MyRSC
 
16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News UpdateNoel Waterman
 
15 August 2012 1ABCT Weekly News Update
15 August 2012 1ABCT Weekly News Update15 August 2012 1ABCT Weekly News Update
15 August 2012 1ABCT Weekly News UpdateNoel Waterman
 
28 March 2012 1HBCT Weekly News Update
28 March 2012 1HBCT Weekly News Update28 March 2012 1HBCT Weekly News Update
28 March 2012 1HBCT Weekly News UpdateNoel Waterman
 

Destacado (19)

Software Design Description (SDD) sample
Software Design Description (SDD) sampleSoftware Design Description (SDD) sample
Software Design Description (SDD) sample
 
Software design specification
Software design specificationSoftware design specification
Software design specification
 
Two speed market continues for bc home sales bcrea
Two speed market continues for bc home sales   bcreaTwo speed market continues for bc home sales   bcrea
Two speed market continues for bc home sales bcrea
 
презентация Microsoft office power point
презентация Microsoft office power pointпрезентация Microsoft office power point
презентация Microsoft office power point
 
What chemistry admissions tutors are looking for in a personal statement
What chemistry admissions tutors are looking for in a personal statementWhat chemistry admissions tutors are looking for in a personal statement
What chemistry admissions tutors are looking for in a personal statement
 
Sept 2012 Monthly Network Slides
Sept 2012 Monthly Network SlidesSept 2012 Monthly Network Slides
Sept 2012 Monthly Network Slides
 
Discover cuny-2012
Discover cuny-2012Discover cuny-2012
Discover cuny-2012
 
NOVEMBER 29 2012 NETWORK SLIDES
NOVEMBER 29 2012 NETWORK SLIDESNOVEMBER 29 2012 NETWORK SLIDES
NOVEMBER 29 2012 NETWORK SLIDES
 
Milano Marittima Life
Milano Marittima LifeMilano Marittima Life
Milano Marittima Life
 
The State of Social 2012
The State of Social 2012The State of Social 2012
The State of Social 2012
 
3 april 2012 1 hbct weekly news update
3 april 2012 1 hbct weekly news update3 april 2012 1 hbct weekly news update
3 april 2012 1 hbct weekly news update
 
Manchester
ManchesterManchester
Manchester
 
Trippelkravmetoden
TrippelkravmetodenTrippelkravmetoden
Trippelkravmetoden
 
October Network Slides -
October Network Slides - October Network Slides -
October Network Slides -
 
Chemistry applicants - the process
Chemistry applicants - the processChemistry applicants - the process
Chemistry applicants - the process
 
16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update16 May 2012 1HBCT Weekly News Update
16 May 2012 1HBCT Weekly News Update
 
15 August 2012 1ABCT Weekly News Update
15 August 2012 1ABCT Weekly News Update15 August 2012 1ABCT Weekly News Update
15 August 2012 1ABCT Weekly News Update
 
28 March 2012 1HBCT Weekly News Update
28 March 2012 1HBCT Weekly News Update28 March 2012 1HBCT Weekly News Update
28 March 2012 1HBCT Weekly News Update
 
Wie ben ik?
Wie ben ik?Wie ben ik?
Wie ben ik?
 

Similar a Software Design

software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptxDr.Shweta
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software EngineeringPurvik Rana
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxLeahRachael
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptxFajar Baskoro
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...JOHNLEAK1
 

Similar a Software Design (20)

Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
Software design
Software designSoftware design
Software design
 
Software design
Software designSoftware design
Software design
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
06 fse design
06 fse design06 fse design
06 fse design
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptx
 
6&8-Design.ppt
6&8-Design.ppt6&8-Design.ppt
6&8-Design.ppt
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
 

Último

SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
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
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdfssuserdda66b
 

Último (20)

SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
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
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 

Software Design

  • 2. SW Design  Software design is an iterative process through which requirements are translated into a “blueprint” for constructing the software.  Initially, the blueprint depicts a holistic view of software.
  • 3. Process of Design Engineering  During the design process the software specifications are transformed into design models  Models describe the details of the data structures, system architecture, interface, and components.  Each design product is reviewed for quality before moving to the next phase of software development.  At the end of the design process a design model and specification document is produced.  This document is composed of the design models that describe the data, architecture, interfaces and components.
  • 4. Entity- Relationship Diagram Data Flow Diagram State-Transition Diagram Data Dictionary Process Specification (PSPEC) Control Specification (CSPEC) Data Object Description THE ANALYSIS MODEL procedural design interface design architectural design data design THE DESIGN MODEL
  • 5. Design Specification Models  Data design – created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. Part of the data design may occur in conjunction with the design of software architecture. More detailed data design occurs as each software component is designed.  Architectural design - defines the relationships among the major structural elements of the software, the “design patterns” than can be used to achieve the requirements that have been defined for the system, and the constraints that affect the way in which the architectural patterns can be applied. It is derived from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD).
  • 6. Design Specification Models  Interface design - describes how the software elements communicate with each other, with other systems, and with human users; the data flow and control flow diagrams provide much of the necessary information required.  Procedural / Component-level design - created by transforming the structural elements defined by the software architecture into procedural descriptions of software components using information obtained from the process specification (PSPEC), control specification (CSPEC), and state transition diagram (STD).
  • 7. 7 Design - Fundamental Concepts  Abstraction  Architecture  Patterns  Modularity  Information hiding  Functional independence  Refinement  Refactoring
  • 8. Abstraction  Data Abstraction  Procedural Abstraction
  • 9. Architecture Design “The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.” Design can be represented as  Structural Models  Defines the components of a system (e.g., modules, objects, filters) and  How the components are packaged and interact with one another.  Framework Models  Increase level of abstraction  Dynamic Models and Process Models  Predicts behavioral and reliability aspects  Functional Models  Depicts functional Hierarchy.
  • 10. Patterns  a pattern is “a common solution to a common problem in a given context.” While architectural styles can be viewed as patterns describing the high-level organization of software (their macroarchitecture), other design patterns can be used to describe details at a lower, more local level (their microarchitecture).  Creational patterns (example: builder, factory, prototype, and singleton)  Structural patterns (example: adapter, bridge, composite, decorator, façade, flyweight, and proxy)  Behavioral patterns (example: command, interpreter, iterator, mediator, memento, observer, state, strategy, template, visitor)
  • 11. Design Pattern  Design Pattern enables a designer to determine whether the pattern :  is applicable to the current work  can be reused  can serve as a guide for developing a similar, but functionally or structurally different pattern.
  • 12. Modular Design  Easier to change  Easier to build  Easier to maintain
  • 13. Sizing Modules: Two Views MODULE What's inside?? How big is it??
  • 14. Information Hiding  Principle of information hiding says that a good split of modules is when modules communicate with one another with only the information necessary to achieve the s/w function.  So information hiding enforces access constraints to both  procedural detail with a module, and  local data structure used by that module.  Data hiding is a CRITERION for modular design.  How to know what modules to create.
  • 15. Information Hiding module controlled interface "secret" • algorithm • data structure • details of external interface • resource allocation policy clients a specific design decision
  • 16. 16 Information Hiding (Benefits)  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
  • 17. 17 Functional Independence 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.
  • 18. Cohesion  Internal glue with which component is constructed  All elements of component are directed toward and essential for performing the same task
  • 19. Range of Cohesion High Cohesion Low Functional Sequential Communicational Procedural Temporal Logical Coincidental
  • 20. Examples of Cohesion-1 Function A Function B Function D Function C Function E Coincidental Parts unrelated Function A Function A’ Function A’’ logic Logical Similar functions Time t0 Time t0 + X Time t0 + 2X Temporal Related by time Function A Function B Function C Procedural Related by order of functions
  • 21. Examples of Cohesion-2 Function A part 1 Function A part 2 Function A part 3 Functional Sequential with complete, related functions Function A Function B Function C Communicational Access same data Function A Function B Function C Sequential Output of one is input to another
  • 22. Coupling  Degree of dependence among components. No dependencies Loosely coupled-some dependencies Highly couples-many dependencies
  • 23. Ways components can be dependent  References made from one to another  Component A invokes B  A depends on B for completion of its function or process  Amount of data passed from one to another  Component A passes to B: a parameter, contents of an array, block of data  Amount of control one has over the other  Component passes a control flag to B  Value of flag tells B the state of some resource or subsystem, process to invoke, or whether to invoke a process  Degree of complexity in the interface between components  Components C and D exchange values before D can complete execution
  • 24. Range of Coupling High Coupling Loose Low Content Common External Control Stamp Data Uncoupled
  • 25. Content Coupling : (worst) When a module uses/alters data in another module Common Coupling : 2 modules communicating via global data External Coupling :Modules are tied to an environment external to the software Control Coupling : 2 modules communicating with a control flag
  • 26. Stamp Coupling : Communicating via a data structure passed as a parameter. The data structure holds more information than the recipient needs. Data Coupling : (best) Communicating via parameter passing. The parameters passed are only those that the recipient needs. No data coupling : independent modules.
  • 27. Summary The measure of strength of the association of elements within a module The measure of interdependence of one module to another It is the degree to which the responsibility of a single component form a meaningful unit It describes the relationship between software components It is a property or characteristic of an individual module It is a property of a collection of modules COHESION COUPLING
  • 28. Refinement  Refinement is a process of elaboration  It is a top-down design strategy  A program is developed by successfully refining levels of procedural details
  • 29. Stepwise Refinement Open Door 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
  • 30. Refactoring  Fowler [FOW99] defines refactoring in the following manner:  "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.