SlideShare a Scribd company logo
9
Most read
13
Most read
15
Most read
Software Design
Software Design
 Software design is a process through which requirements
are translated into a ― blue-print for constructing the
software.
 Initially, the blueprint shows how the software will look and
what kind of data or components will be required to in making
it.
Process of Software Design
Engineering
 During the design process, the software specifications are
transformed into design models
 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.
Design Specification Models
 Data design – created by transforming the analysis information
model (data dictionary and ERD) into data structures required to
implement the software. 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, that can be
used to achieve the requirements that have been defined for the
system. Relationships can be made using UML or USECASE
diagrams.
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 design - created by transforming the structural elements
defined by the software architecture into procedural descriptions of
software components using information obtained from the process.
Design - Fundamental Concepts
 Abstraction
 Architecture
 Patterns
 Modularity
 Information hiding
 Functional independence
 Refinement
 Refactoring
Modularity
MODULARITY
Software is divided into separately named components,
often called ‘MODULES’, that are used to detect problems
at ease.
This follows the "DIVIDE AND CONQUER" conclusion.
It's easier to solve a complex problem when you break it
into manageable pieces.
Why modularize a system?
• Management: Partition the overall development effort
• Evolution: Decouple parts of a system so that changes to one
part are isolated from changes to other parts
– Principle of Discontinuity (Delete a part)
– Principle of Continuity (Addition to the part)
• Understanding: Permit system to be understood
– as composition of mind-sized chunks
– With one issue at a time
Advantage of modularization
• Smaller components are easier to maintain
• Program can be divided based on functional aspects
• Desired level of abstraction can be brought in the
program
• Components with high usage can be re-used.
• Concurrent execution can be made possible
Modular Design
 Easier to change
 Easier to build
 Easier to maintain
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 module in the system.
Modularity Modules’ Cost
Verses Size
The effort (cost) to develop
an individual software
module does decrease as the
total number of modules
increases. Given the same
set of requirements, more
modules means smaller
individual size. However, as
the number of modules
grows, the effort (cost)
associated with integrating
the modules also grows.
Modularity Modules’ Cost
Verses Size
These characteristics lead to
a total cost or effort curve
shown in the figure. There
is a number "M" of modules
that would result in
minimum development cost,
but we do not have the
necessary sophistication to
predict M with assurance.
Self-Contained : "Agile & Autonomous"
• A module is a self-contained component of a larger
software system.
• This doesn't mean that it is an atomic component.
• In fact a module consists a several smaller pieces which
are collectively contributed to the
functionality/performance of the module.
We cannot remove or modify at least any of these
tiny (compared to larger software system)
components and if we do so, the 'Module' will cease
it expected functionality
A set of compartments that can mimic the modularity.
Any of these compartments can be move without
affecting other components' functionality (but when we
move a module the functionality of the whole system
changes).
Lets try to understand this by above
real world scenarios.
Modular Compartments
A module can be installed, un-installed or moved
as a whole(single unit) and it wont affect the
functionality of the other modules.
We can form different letters by place different
components(modules) at different places and we
have the freedom of moving modules freely without
affecting the functionality of other modules
Modularizing ..
It is necessary for the programmers and designers
to recognize those modules, which can be made
parallel execution.
Thank You

More Related Content

What's hot (20)

PPTX
Data Designs (Software Engg.)
Arun Shukla
 
PPT
Software architecture design ppt
farazimlak
 
PPT
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
PPTX
Software Process Models
Hassan A-j
 
PPTX
Design Concept software engineering
Darshit Metaliya
 
PPTX
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
PPTX
Chapter 1 2 - some size factors
NancyBeaulah_R
 
PPT
Uml in software engineering
Mubashir Jutt
 
ODP
Evolutionary process models se.ppt
bhadjaashvini1
 
PPT
Lecture 12 requirements modeling - (system analysis)
IIUI
 
PPTX
Software requirements specification
lavanya marichamy
 
PPTX
Design notation
ramya marichamy
 
PPTX
Software Architecture Design Decisions
Afaq Mansoor Khan
 
PPTX
User Interface Analysis and Design
Saqib Raza
 
PPTX
Software Quality Attributes
Hayim Makabee
 
PPTX
Staffing level estimation
kavitha muneeshwaran
 
PPTX
Unified process model
RyndaMaala
 
PPTX
Software Engineering- Requirement Elicitation and Specification
Nishu Rastogi
 
PPTX
Software maintenance
Rajeev Sharan
 
PDF
Black Box Testing
Testbytes
 
Data Designs (Software Engg.)
Arun Shukla
 
Software architecture design ppt
farazimlak
 
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
Software Process Models
Hassan A-j
 
Design Concept software engineering
Darshit Metaliya
 
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
Chapter 1 2 - some size factors
NancyBeaulah_R
 
Uml in software engineering
Mubashir Jutt
 
Evolutionary process models se.ppt
bhadjaashvini1
 
Lecture 12 requirements modeling - (system analysis)
IIUI
 
Software requirements specification
lavanya marichamy
 
Design notation
ramya marichamy
 
Software Architecture Design Decisions
Afaq Mansoor Khan
 
User Interface Analysis and Design
Saqib Raza
 
Software Quality Attributes
Hayim Makabee
 
Staffing level estimation
kavitha muneeshwaran
 
Unified process model
RyndaMaala
 
Software Engineering- Requirement Elicitation and Specification
Nishu Rastogi
 
Software maintenance
Rajeev Sharan
 
Black Box Testing
Testbytes
 

Similar to Software Design and Modularity (20)

PPT
Software design
Benazir Fathima
 
PPT
Software design, software engineering
Rupesh Vaishnav
 
PPTX
Principles and Practices of Effective Software Design and Architecture.pptx
shilpamathur13
 
PPT
Design Concepts software engineering.ppt
RohanMalik45
 
PPTX
SOFTWARE DESIGN ENGINEERING UNIT-3 PPT.pptx
KritagyaTiwari
 
PPT
Se ii unit2-software_design_principles
Ahmad sohail Kakar
 
PPTX
unit 3 Design 1
TharuniDiddekunta
 
PPT
Design
Bala Ganesh
 
PPT
design-concept.ppt
MangeshKetkar1
 
PPTX
effective modular design.pptx
Dr.Shweta
 
PPTX
Unit 5 design engineering ssad
Preeti Mishra
 
PPTX
Design concept -Software Engineering
Varsha Ajith
 
PPTX
Software Eng S3 ( Software Design ).pptx
gauriVarshney8
 
PPT
Software design
Inocentshuja Ahmad
 
PPTX
Lecture 11
Rana Ali
 
PPTX
Lecture 2.pptx
EddyMakoyo1
 
PPT
Lecture 18 design concepts (3)
IIUI
 
PPT
7. Design Concepts.pptbhhbbbbhjijjnnnnnnnn
MominRais
 
PPT
Design final
Indu Sharma Bhardwaj
 
PPTX
Chapter 08
Nazir Ahmed
 
Software design
Benazir Fathima
 
Software design, software engineering
Rupesh Vaishnav
 
Principles and Practices of Effective Software Design and Architecture.pptx
shilpamathur13
 
Design Concepts software engineering.ppt
RohanMalik45
 
SOFTWARE DESIGN ENGINEERING UNIT-3 PPT.pptx
KritagyaTiwari
 
Se ii unit2-software_design_principles
Ahmad sohail Kakar
 
unit 3 Design 1
TharuniDiddekunta
 
Design
Bala Ganesh
 
design-concept.ppt
MangeshKetkar1
 
effective modular design.pptx
Dr.Shweta
 
Unit 5 design engineering ssad
Preeti Mishra
 
Design concept -Software Engineering
Varsha Ajith
 
Software Eng S3 ( Software Design ).pptx
gauriVarshney8
 
Software design
Inocentshuja Ahmad
 
Lecture 11
Rana Ali
 
Lecture 2.pptx
EddyMakoyo1
 
Lecture 18 design concepts (3)
IIUI
 
7. Design Concepts.pptbhhbbbbhjijjnnnnnnnn
MominRais
 
Design final
Indu Sharma Bhardwaj
 
Chapter 08
Nazir Ahmed
 
Ad

Recently uploaded (20)

PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PDF
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
PPTX
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
HYDROCEPHALUS: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PPTX
Soil and agriculture microbiology .pptx
Keerthana Ramesh
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPTX
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
PPTX
How to Set Maximum Difference Odoo 18 POS
Celine George
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
PATIENT ASSIGNMENTS AND NURSING CARE RESPONSIBILITIES.pptx
PRADEEP ABOTHU
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
HYDROCEPHALUS: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
Soil and agriculture microbiology .pptx
Keerthana Ramesh
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
How to Set Maximum Difference Odoo 18 POS
Celine George
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Ad

Software Design and Modularity

  • 2. Software Design  Software design is a process through which requirements are translated into a ― blue-print for constructing the software.  Initially, the blueprint shows how the software will look and what kind of data or components will be required to in making it.
  • 3. Process of Software Design Engineering  During the design process, the software specifications are transformed into design models  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.
  • 4. Design Specification Models  Data design – created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. 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, that can be used to achieve the requirements that have been defined for the system. Relationships can be made using UML or USECASE diagrams.
  • 5. 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 design - created by transforming the structural elements defined by the software architecture into procedural descriptions of software components using information obtained from the process.
  • 6. Design - Fundamental Concepts  Abstraction  Architecture  Patterns  Modularity  Information hiding  Functional independence  Refinement  Refactoring
  • 8. MODULARITY Software is divided into separately named components, often called ‘MODULES’, that are used to detect problems at ease. This follows the "DIVIDE AND CONQUER" conclusion. It's easier to solve a complex problem when you break it into manageable pieces.
  • 9. Why modularize a system? • Management: Partition the overall development effort • Evolution: Decouple parts of a system so that changes to one part are isolated from changes to other parts – Principle of Discontinuity (Delete a part) – Principle of Continuity (Addition to the part) • Understanding: Permit system to be understood – as composition of mind-sized chunks – With one issue at a time
  • 10. Advantage of modularization • Smaller components are easier to maintain • Program can be divided based on functional aspects • Desired level of abstraction can be brought in the program • Components with high usage can be re-used. • Concurrent execution can be made possible
  • 11. Modular Design  Easier to change  Easier to build  Easier to maintain
  • 12. 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 module in the system.
  • 13. Modularity Modules’ Cost Verses Size The effort (cost) to develop an individual software module does decrease as the total number of modules increases. Given the same set of requirements, more modules means smaller individual size. However, as the number of modules grows, the effort (cost) associated with integrating the modules also grows.
  • 14. Modularity Modules’ Cost Verses Size These characteristics lead to a total cost or effort curve shown in the figure. There is a number "M" of modules that would result in minimum development cost, but we do not have the necessary sophistication to predict M with assurance.
  • 15. Self-Contained : "Agile & Autonomous" • A module is a self-contained component of a larger software system. • This doesn't mean that it is an atomic component. • In fact a module consists a several smaller pieces which are collectively contributed to the functionality/performance of the module.
  • 16. We cannot remove or modify at least any of these tiny (compared to larger software system) components and if we do so, the 'Module' will cease it expected functionality
  • 17. A set of compartments that can mimic the modularity. Any of these compartments can be move without affecting other components' functionality (but when we move a module the functionality of the whole system changes). Lets try to understand this by above real world scenarios. Modular Compartments
  • 18. A module can be installed, un-installed or moved as a whole(single unit) and it wont affect the functionality of the other modules.
  • 19. We can form different letters by place different components(modules) at different places and we have the freedom of moving modules freely without affecting the functionality of other modules Modularizing ..
  • 20. It is necessary for the programmers and designers to recognize those modules, which can be made parallel execution.

Editor's Notes

  • #13: Independence is assessed using two qualitative criteria : cohesion and coupling.
  • #14: Larger the module size higher the cost and vice versa, overall cost of system is dependent on other costs as well, like Module Integration cost