SlideShare a Scribd company logo
1
Software Design Principles
“Producing the software blueprint”
2
Lecture Objectives
To understand the importance of design in
developing quality software
To describe the translation from the
requirements analysis model to the design
model
To understand the principles that guide
proper design of software
3
What Is Design?
Explaining the idea/concept of something
Usually with graphical diagrams
With the intention to build
The design is a representation of a
product or a system with sufficient detail
for implementation
4
The Second Task
Problem
Models
Solution
Analysis
Design
Development
Testing
5
Design Principles
Data design is  the  first  design  activity,  which  results  in  fewer  complexes, 
modular  and  efficient  program  structure.  The  data  objects,  attributes,  and 
relationships  depicted  in  entity  relationship  diagrams  and  the  information 
stored in data dictionary provide a base for data design activity.
Architectural Design major seeks to integrate engineering and architecture in 
ways that blend innovative architectural design with cutting-edge engineering 
technologies.
User interface design (UI)  or  user interface  engineering  is  the design of 
user interfaces for  machines  and  software,  such  as  computers,  home 
appliances,  mobile  devices,  and  other  electronic  devices,  with  the  focus  on 
maximizing usability and the user experience.
6
Designing Software
From our understanding of the problem,
we start building the software
Translate the analysis model into the
design model
Map the information from the analysis
model to the design representations - data
design, architectural design, interface
design, procedural design
7
Design Principles
Design process should be improvise via new
technology
The design should be traceable to the analysis
model
The design should “minimize intellectual
distance” between the software and the problem
in the real world
8
Design Principles (Continued)
The design should exhibit uniformity and
integration
The design should be structured to
accommodate change
The design should be structured to
degrade gently.
9
Design Principles (Continued)
Design is not coding, coding is not design
The design should be assessed for quality
as it is being created, not after the fact
The design should be reviewed to
minimize conceptual errors
10
Component of System
System software is the software used to manage and
control the hardware components and which allow
interaction between the hardware and the other types
of software. The most obvious type of system software
is the computer's operating system but device
drivers are also included within this category. There
are three components of system software:
1.System Software
2.Standard Software
3. Application Software
11
Design Concepts
Abstraction
Refinement
Modularity
Software
Architecture
Control Hierarchy
Structural Partitioning
Data Structure
Software Procedure
Information Hiding
Fundamental concepts which provide
foundation to design correctly:
12
Abstraction
In software engineering and computer
science, Abstraction is a technique for arranging
complexity of computer systems. It works by establishing
a level of complexity on which a person interacts with the
system, suppressing the more complex details below the
current level. Conceptual abstractions may be formed by
filtering the information content of a concept or an
observable phenomenon, selecting only the aspects which
are relevant for a particular purpose.
13
Abstraction
Identifying important features for representation
There are many levels of abstraction depending
on how detailed the representation is required
Data abstraction - representation of data objects
Procedural abstraction - representation of
instructions
14
Refinement is a generic term of computer science that
encompasses various approaches for
producing correct computer programs and simplifying
existing programs to enable their formal verification.
In formal methods, program refinement is
the verifiable transformation of an abstract (high-
level) formal specification into a concrete (low-
level) executable program.
Stepwise refinement allows this process to be done in stages.
Logically, refinement normally involves implication, but
there can be additional complications.
Refinement
15
Refinement
Stepwise refinement - top-down design Starting
at the highest level of abstraction, every step of
refinement ‘decompose’ instructions into more
detailed instructions
Complementary to abstraction
16
In software engineering, modularity refers to the extent to which
a software/Web application may be divided into smaller modules.
Software modularity indicates that the numbers of applications
modules are capable of serving a specified business domain.
Modularity is an important Software Engineering principle. It is a
practical application of the principle of “Separation of Concerns" by
dividing a complex system into simpler and more manageable modules.
The ubiquitous television set is an example of a system made up of a
number of modules – speakers, projection tube, channel buttons, volume
buttons, etc. Each module has its own defined functionality but when
they are put together synergistically, the complete functionalities of a
television are realized.
Modularity
17
Modularity
Software is divided into separately named
and addressable modules
“Divide and conquer” approach - problem
is broken into manageable pieces
Solutions for the separate pieces then
integrated into the whole system
18
19
The alternative approach is to take a complete system
and decompose it into its modules. This approach is
known as the decomposition or top-down approach.
A car, for example, can be decomposed into a number of
sub-systems: body, fuel system, electrical system,
transmission, etc.
The electrical system can be further decomposed into
modules such as battery, alternator, lights, etc.
20
Software architecture refers to the high level structures of a software
system, the discipline of creating such structures, and the
documentation of these structures. These structures are needed to
make the software system.
Each structure comprises software elements, relations among them,
and properties of both elements and relations.
“The software architecture of a program or computing system is the
structure or structures of the system, which
comprise software elements, the externally visible properties of those
elements, and the relationships among them.
Software Architecture
21
Software Architecture
Modules can be integrated in many ways to produce the
system
Software architecture is the overall structure of the
software
The hierarchy of components and how they interact, and
the structure of data used by the components
Use of framework models, and possible reuse of
architectural patterns
22
Software Architecture Patterns
Recurring pattern help designers reuse
successful designs by base of new designs on
prior experience.
A designer who is familiar with such patterns
can apply them immediately to design problems
without having to rediscover them.
23
Why use Design Patterns?
Reuse successful practices
Improve communication
Step towards a software engineer’s
handbook
24
Examples of Software
Architecture
S1
S2
S3
S4
S5
S3
S2 S4 S5
S1
Batch
sequential
pattern
Program structure
Control Hierarchy
25
A program structure that represents the organization of a
program component and implies a hierarchy of control.
A hierarchical control system is a form of control system
in which a set of devices and software is arranged in a
hierarchical tree. When the links in the tree are
implemented by a computer network, then that
hierarchical control system is also a form of networked
control system.
26
Control Hierarchy
Hierarchy of modules representing the
control relationships
A super-ordinate module controls another
module
A subordinate module is controlled by
another module
Measures relevant to control hierarchy:
depth, width, fan-in, fan-out
27
Structure Terminology
g hed
i
f
a b c
M
Fan-out
Fan-in
Width
Depth
28
Structural Partitioning
Program structure partitioned horizontally and
vertically
Horizontal partitioning defines separate
branches for each major program function -
input, process, output
Vertical partitioning defines control (decision-
making) at the top and work at the bottom
29
Software Procedure
Processing details of individual modules
Precise specification of processing,
including sequence of events, exact
decision points, repetitive operations, and
data organization/structure
Procedure is layered - subordinate
modules must be referenced in
processing details
30
Information Hiding
Information (procedure and data) contained
within a module is inaccessible to other modules
that have no need for such information
Effective modularity is achieved by independent
modules, that communicate only necessary
information
Ease of maintenance - testing, modification
localized and less likely to propagate
Ad

More Related Content

What's hot (20)

Ch09
Ch09Ch09
Ch09
guest50f28c
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
Nazir Ahmed
 
Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
Dhruvin Nakrani
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineering
rishi ram khanal
 
Unit 3
Unit 3Unit 3
Unit 3
Jignesh Kariya
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
Himanshu
 
SWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design StrategiesSWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design Strategies
ghayour abbas
 
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
nimmik4u
 
Sda 7
Sda   7Sda   7
Sda 7
AmberMughal5
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
Dhairya Joshi
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
Bisrat Girma
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
ghayour abbas
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
Danyal Ahmad
 
Lecture 19 design concepts
Lecture 19   design conceptsLecture 19   design concepts
Lecture 19 design concepts
IIUI
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
IBM
 
Design engineering
Design engineeringDesign engineering
Design engineering
Preeti Mishra
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
Dhairya Joshi
 
Software engineering 17 architectural design
Software engineering 17 architectural designSoftware engineering 17 architectural design
Software engineering 17 architectural design
Vaibhav Khanna
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
Shri Shankaracharya College, Bhilai,Junwani
 
Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
Dhruvin Nakrani
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineering
rishi ram khanal
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
Himanshu
 
SWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design StrategiesSWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design Strategies
ghayour abbas
 
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
nimmik4u
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
Dhairya Joshi
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
Bisrat Girma
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
ghayour abbas
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
Danyal Ahmad
 
Lecture 19 design concepts
Lecture 19   design conceptsLecture 19   design concepts
Lecture 19 design concepts
IIUI
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
IBM
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
Dhairya Joshi
 
Software engineering 17 architectural design
Software engineering 17 architectural designSoftware engineering 17 architectural design
Software engineering 17 architectural design
Vaibhav Khanna
 

Similar to Se ii unit2-software_design_principles (20)

software engineering unit-3 in software engineering
software engineering unit-3 in software engineeringsoftware engineering unit-3 in software engineering
software engineering unit-3 in software engineering
terala1
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
puttipavan23022023
 
dynamic and implementation uml diagram.pdf
dynamic and implementation uml diagram.pdfdynamic and implementation uml diagram.pdf
dynamic and implementation uml diagram.pdf
tbit2
 
06 fse design
06 fse design06 fse design
06 fse design
Mohesh Chandran
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
Satyanandaram Nandigam
 
Distributed architecture (SAD)
Distributed architecture (SAD)Distributed architecture (SAD)
Distributed architecture (SAD)
Khubaib Ahmad Kunjahi
 
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 design
Software designSoftware design
Software design
Zulqarnaintayyab
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
MahmoudZidan53
 
Software design
Software designSoftware design
Software design
Inocentshuja Ahmad
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
chitranshidheeraj6
 
Design final
Design finalDesign final
Design final
Indu Sharma Bhardwaj
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software Design
Amr E. Mohamed
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
Priyanka Shetty
 
design concepts in software engineering.pptx
design concepts in software engineering.pptxdesign concepts in software engineering.pptx
design concepts in software engineering.pptx
priyadharshini512852
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
Purvik Rana
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
mccormicknadine86
 
software Design in software engineering1
software Design in software engineering1software Design in software engineering1
software Design in software engineering1
nazimsattar
 
Design concepts in concepts of engineering design
Design concepts in concepts of engineering designDesign concepts in concepts of engineering design
Design concepts in concepts of engineering design
SureshvSuri1
 
software engineering unit-3 in software engineering
software engineering unit-3 in software engineeringsoftware engineering unit-3 in software engineering
software engineering unit-3 in software engineering
terala1
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
puttipavan23022023
 
dynamic and implementation uml diagram.pdf
dynamic and implementation uml diagram.pdfdynamic and implementation uml diagram.pdf
dynamic and implementation uml diagram.pdf
tbit2
 
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
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
SIMONTHOMAS S
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
MahmoudZidan53
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software Design
Amr E. Mohamed
 
design concepts in software engineering.pptx
design concepts in software engineering.pptxdesign concepts in software engineering.pptx
design concepts in software engineering.pptx
priyadharshini512852
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
Purvik Rana
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
mccormicknadine86
 
software Design in software engineering1
software Design in software engineering1software Design in software engineering1
software Design in software engineering1
nazimsattar
 
Design concepts in concepts of engineering design
Design concepts in concepts of engineering designDesign concepts in concepts of engineering design
Design concepts in concepts of engineering design
SureshvSuri1
 
Ad

More from Ahmad sohail Kakar (20)

Lec 1 network types
Lec 1 network typesLec 1 network types
Lec 1 network types
Ahmad sohail Kakar
 
Lec 1 introduction
Lec 1 introductionLec 1 introduction
Lec 1 introduction
Ahmad sohail Kakar
 
Active directory restoration
Active directory restorationActive directory restoration
Active directory restoration
Ahmad sohail Kakar
 
Active directory backup
Active directory backupActive directory backup
Active directory backup
Ahmad sohail Kakar
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-design
Ahmad sohail Kakar
 
Seii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesSeii unit6 software-testing-techniques
Seii unit6 software-testing-techniques
Ahmad sohail Kakar
 
Seii unit5 ui_design
Seii unit5 ui_designSeii unit5 ui_design
Seii unit5 ui_design
Ahmad sohail Kakar
 
Seii unit4 software_process
Seii unit4 software_processSeii unit4 software_process
Seii unit4 software_process
Ahmad sohail Kakar
 
Se ii unit3-architectural-design
Se ii unit3-architectural-designSe ii unit3-architectural-design
Se ii unit3-architectural-design
Ahmad sohail Kakar
 
Se ii unit1-se_ii_intorduction
Se ii unit1-se_ii_intorductionSe ii unit1-se_ii_intorduction
Se ii unit1-se_ii_intorduction
Ahmad sohail Kakar
 
Second chapter-java
Second chapter-javaSecond chapter-java
Second chapter-java
Ahmad sohail Kakar
 
Second chapter-java
Second chapter-javaSecond chapter-java
Second chapter-java
Ahmad sohail Kakar
 
Chapter 9 java
Chapter 9 javaChapter 9 java
Chapter 9 java
Ahmad sohail Kakar
 
Chapter 8 java
Chapter 8 javaChapter 8 java
Chapter 8 java
Ahmad sohail Kakar
 
Chapter 7 java
Chapter 7 javaChapter 7 java
Chapter 7 java
Ahmad sohail Kakar
 
Chapter 6 java
Chapter 6 javaChapter 6 java
Chapter 6 java
Ahmad sohail Kakar
 
Chapter 5 java
Chapter 5 javaChapter 5 java
Chapter 5 java
Ahmad sohail Kakar
 
Chapter 4 java
Chapter 4 javaChapter 4 java
Chapter 4 java
Ahmad sohail Kakar
 
Chapter 3 java
Chapter 3 javaChapter 3 java
Chapter 3 java
Ahmad sohail Kakar
 
Chapter 2 java
Chapter 2 javaChapter 2 java
Chapter 2 java
Ahmad sohail Kakar
 
Ad

Recently uploaded (20)

Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Library Association of Ireland
 
Metamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative JourneyMetamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative Journey
Arshad Shaikh
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
Odoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo SlidesOdoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo Slides
Celine George
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
Sinhala_Male_Names.pdf Sinhala_Male_Name
Sinhala_Male_Names.pdf Sinhala_Male_NameSinhala_Male_Names.pdf Sinhala_Male_Name
Sinhala_Male_Names.pdf Sinhala_Male_Name
keshanf79
 
Operations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdfOperations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdf
Arab Academy for Science, Technology and Maritime Transport
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
How to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odooHow to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odoo
Celine George
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
SPRING FESTIVITIES - UK AND USA -
SPRING FESTIVITIES - UK AND USA            -SPRING FESTIVITIES - UK AND USA            -
SPRING FESTIVITIES - UK AND USA -
Colégio Santa Teresinha
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Library Association of Ireland
 
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Library Association of Ireland
 
Metamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative JourneyMetamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative Journey
Arshad Shaikh
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
Odoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo SlidesOdoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo Slides
Celine George
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
Sinhala_Male_Names.pdf Sinhala_Male_Name
Sinhala_Male_Names.pdf Sinhala_Male_NameSinhala_Male_Names.pdf Sinhala_Male_Name
Sinhala_Male_Names.pdf Sinhala_Male_Name
keshanf79
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
How to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odooHow to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odoo
Celine George
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Library Association of Ireland
 

Se ii unit2-software_design_principles

  • 1. 1 Software Design Principles “Producing the software blueprint”
  • 2. 2 Lecture Objectives To understand the importance of design in developing quality software To describe the translation from the requirements analysis model to the design model To understand the principles that guide proper design of software
  • 3. 3 What Is Design? Explaining the idea/concept of something Usually with graphical diagrams With the intention to build The design is a representation of a product or a system with sufficient detail for implementation
  • 5. 5 Design Principles Data design is  the  first  design  activity,  which  results  in  fewer  complexes,  modular  and  efficient  program  structure.  The  data  objects,  attributes,  and  relationships  depicted  in  entity  relationship  diagrams  and  the  information  stored in data dictionary provide a base for data design activity. Architectural Design major seeks to integrate engineering and architecture in  ways that blend innovative architectural design with cutting-edge engineering  technologies. User interface design (UI)  or  user interface  engineering  is  the design of  user interfaces for  machines  and  software,  such  as  computers,  home  appliances,  mobile  devices,  and  other  electronic  devices,  with  the  focus  on  maximizing usability and the user experience.
  • 6. 6 Designing Software From our understanding of the problem, we start building the software Translate the analysis model into the design model Map the information from the analysis model to the design representations - data design, architectural design, interface design, procedural design
  • 7. 7 Design Principles Design process should be improvise via new technology The design should be traceable to the analysis model The design should “minimize intellectual distance” between the software and the problem in the real world
  • 8. 8 Design Principles (Continued) The design should exhibit uniformity and integration The design should be structured to accommodate change The design should be structured to degrade gently.
  • 9. 9 Design Principles (Continued) Design is not coding, coding is not design The design should be assessed for quality as it is being created, not after the fact The design should be reviewed to minimize conceptual errors
  • 10. 10 Component of System System software is the software used to manage and control the hardware components and which allow interaction between the hardware and the other types of software. The most obvious type of system software is the computer's operating system but device drivers are also included within this category. There are three components of system software: 1.System Software 2.Standard Software 3. Application Software
  • 11. 11 Design Concepts Abstraction Refinement Modularity Software Architecture Control Hierarchy Structural Partitioning Data Structure Software Procedure Information Hiding Fundamental concepts which provide foundation to design correctly:
  • 12. 12 Abstraction In software engineering and computer science, Abstraction is a technique for arranging complexity of computer systems. It works by establishing a level of complexity on which a person interacts with the system, suppressing the more complex details below the current level. Conceptual abstractions may be formed by filtering the information content of a concept or an observable phenomenon, selecting only the aspects which are relevant for a particular purpose.
  • 13. 13 Abstraction Identifying important features for representation There are many levels of abstraction depending on how detailed the representation is required Data abstraction - representation of data objects Procedural abstraction - representation of instructions
  • 14. 14 Refinement is a generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification. In formal methods, program refinement is the verifiable transformation of an abstract (high- level) formal specification into a concrete (low- level) executable program. Stepwise refinement allows this process to be done in stages. Logically, refinement normally involves implication, but there can be additional complications. Refinement
  • 15. 15 Refinement Stepwise refinement - top-down design Starting at the highest level of abstraction, every step of refinement ‘decompose’ instructions into more detailed instructions Complementary to abstraction
  • 16. 16 In software engineering, modularity refers to the extent to which a software/Web application may be divided into smaller modules. Software modularity indicates that the numbers of applications modules are capable of serving a specified business domain. Modularity is an important Software Engineering principle. It is a practical application of the principle of “Separation of Concerns" by dividing a complex system into simpler and more manageable modules. The ubiquitous television set is an example of a system made up of a number of modules – speakers, projection tube, channel buttons, volume buttons, etc. Each module has its own defined functionality but when they are put together synergistically, the complete functionalities of a television are realized. Modularity
  • 17. 17 Modularity Software is divided into separately named and addressable modules “Divide and conquer” approach - problem is broken into manageable pieces Solutions for the separate pieces then integrated into the whole system
  • 18. 18
  • 19. 19 The alternative approach is to take a complete system and decompose it into its modules. This approach is known as the decomposition or top-down approach. A car, for example, can be decomposed into a number of sub-systems: body, fuel system, electrical system, transmission, etc. The electrical system can be further decomposed into modules such as battery, alternator, lights, etc.
  • 20. 20 Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. These structures are needed to make the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations. “The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Software Architecture
  • 21. 21 Software Architecture Modules can be integrated in many ways to produce the system Software architecture is the overall structure of the software The hierarchy of components and how they interact, and the structure of data used by the components Use of framework models, and possible reuse of architectural patterns
  • 22. 22 Software Architecture Patterns Recurring pattern help designers reuse successful designs by base of new designs on prior experience. A designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them.
  • 23. 23 Why use Design Patterns? Reuse successful practices Improve communication Step towards a software engineer’s handbook
  • 24. 24 Examples of Software Architecture S1 S2 S3 S4 S5 S3 S2 S4 S5 S1 Batch sequential pattern Program structure
  • 25. Control Hierarchy 25 A program structure that represents the organization of a program component and implies a hierarchy of control. A hierarchical control system is a form of control system in which a set of devices and software is arranged in a hierarchical tree. When the links in the tree are implemented by a computer network, then that hierarchical control system is also a form of networked control system.
  • 26. 26 Control Hierarchy Hierarchy of modules representing the control relationships A super-ordinate module controls another module A subordinate module is controlled by another module Measures relevant to control hierarchy: depth, width, fan-in, fan-out
  • 27. 27 Structure Terminology g hed i f a b c M Fan-out Fan-in Width Depth
  • 28. 28 Structural Partitioning Program structure partitioned horizontally and vertically Horizontal partitioning defines separate branches for each major program function - input, process, output Vertical partitioning defines control (decision- making) at the top and work at the bottom
  • 29. 29 Software Procedure Processing details of individual modules Precise specification of processing, including sequence of events, exact decision points, repetitive operations, and data organization/structure Procedure is layered - subordinate modules must be referenced in processing details
  • 30. 30 Information Hiding Information (procedure and data) contained within a module is inaccessible to other modules that have no need for such information Effective modularity is achieved by independent modules, that communicate only necessary information Ease of maintenance - testing, modification localized and less likely to propagate