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

More Related Content

What's hot (20)

PPT
Ch09
guest50f28c
 
PPTX
Chapter 08
Nazir Ahmed
 
PDF
Design concepts and design principles
Dhruvin Nakrani
 
PPTX
Implementation issues software engineering
rishi ram khanal
 
PPTX
Unit 3
Jignesh Kariya
 
PPTX
Architectural styles and patterns
Himanshu
 
PDF
SWE-401 - 7. Software Design Strategies
ghayour abbas
 
DOCX
Function Oriented and Object Oriented Design,Modularization techniques
nimmik4u
 
PPTX
Sda 7
AmberMughal5
 
PPT
Software engg. pressman_ch-9
Dhairya Joshi
 
PPT
Object oriented sad-5 part i
Bisrat Girma
 
PPTX
Fundamental design concepts
srijavel
 
PDF
SWE-401 - 6. Software Analysis and Design Tools
ghayour abbas
 
PPTX
Software Design and Modularity
Danyal Ahmad
 
PPT
Lecture 19 design concepts
IIUI
 
PDF
4 agile modeldevelopement-danielleroux
IBM
 
PPTX
Design engineering
Preeti Mishra
 
PPT
Software engg. pressman_ch-10
Dhairya Joshi
 
PPTX
Software engineering 17 architectural design
Vaibhav Khanna
 
PDF
Object oriented analysis and design unit- v
Shri Shankaracharya College, Bhilai,Junwani
 
Chapter 08
Nazir Ahmed
 
Design concepts and design principles
Dhruvin Nakrani
 
Implementation issues software engineering
rishi ram khanal
 
Architectural styles and patterns
Himanshu
 
SWE-401 - 7. Software Design Strategies
ghayour abbas
 
Function Oriented and Object Oriented Design,Modularization techniques
nimmik4u
 
Software engg. pressman_ch-9
Dhairya Joshi
 
Object oriented sad-5 part i
Bisrat Girma
 
Fundamental design concepts
srijavel
 
SWE-401 - 6. Software Analysis and Design Tools
ghayour abbas
 
Software Design and Modularity
Danyal Ahmad
 
Lecture 19 design concepts
IIUI
 
4 agile modeldevelopement-danielleroux
IBM
 
Design engineering
Preeti Mishra
 
Software engg. pressman_ch-10
Dhairya Joshi
 
Software engineering 17 architectural design
Vaibhav Khanna
 
Object oriented analysis and design unit- v
Shri Shankaracharya College, Bhilai,Junwani
 

Similar to Se ii unit2-software_design_principles (20)

PPT
Software design
Inocentshuja Ahmad
 
PPTX
Design Engineering and Design concepts
JigyasaAgrawal7
 
PPTX
UNIT_III_Design Engineering, design engineering, architecture, patterns, UML ...
MANOJ964697
 
PPTX
Architecture and UML diagrams, types of UML diagrams, types of architecture a...
MANOJ964697
 
PDF
Desining---systems@@@@@@@@@@@@@@.ppt.pdf
timoemin50
 
PPTX
EContent_11_2024_04_24_08_30_24_Unit3_PPTpptx__2024_04_05_09_12_25.pptx
DevSavaliya1
 
PPTX
design concepts in software engineering.pptx
priyadharshini512852
 
PPT
Software design
Benazir Fathima
 
PPTX
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
PPT
Week 6
Mahmoud Saaideh
 
PPT
Design concepts and principle,
awikhan12
 
PPT
SE-software design.ppt
vishal choudhary
 
PPTX
Unit 5 design engineering ssad
Preeti Mishra
 
PPT
CHAPTER12.ppt
CharenReposposa
 
PPT
Design Concepts software engineering.ppt
RohanMalik45
 
PPT
software design cet ererg rgg rggerv rgeg
hajerghinnewah
 
PPTX
How to design a Software with methods and steps
dilmimalsha25
 
PPT
Chapter 6 design
nikshaikh786
 
PPT
Design
Bala Ganesh
 
Software design
Inocentshuja Ahmad
 
Design Engineering and Design concepts
JigyasaAgrawal7
 
UNIT_III_Design Engineering, design engineering, architecture, patterns, UML ...
MANOJ964697
 
Architecture and UML diagrams, types of UML diagrams, types of architecture a...
MANOJ964697
 
Desining---systems@@@@@@@@@@@@@@.ppt.pdf
timoemin50
 
EContent_11_2024_04_24_08_30_24_Unit3_PPTpptx__2024_04_05_09_12_25.pptx
DevSavaliya1
 
design concepts in software engineering.pptx
priyadharshini512852
 
Software design
Benazir Fathima
 
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
Design concepts and principle,
awikhan12
 
SE-software design.ppt
vishal choudhary
 
Unit 5 design engineering ssad
Preeti Mishra
 
CHAPTER12.ppt
CharenReposposa
 
Design Concepts software engineering.ppt
RohanMalik45
 
software design cet ererg rgg rggerv rgeg
hajerghinnewah
 
How to design a Software with methods and steps
dilmimalsha25
 
Chapter 6 design
nikshaikh786
 
Design
Bala Ganesh
 
Ad

More from Ahmad sohail Kakar (20)

PPTX
Lec 1 network types
Ahmad sohail Kakar
 
PPTX
Lec 1 introduction
Ahmad sohail Kakar
 
PPTX
Active directory restoration
Ahmad sohail Kakar
 
PPTX
Active directory backup
Ahmad sohail Kakar
 
PPT
Seii unit7 component-level-design
Ahmad sohail Kakar
 
PPT
Seii unit6 software-testing-techniques
Ahmad sohail Kakar
 
PPT
Seii unit5 ui_design
Ahmad sohail Kakar
 
PPT
Seii unit4 software_process
Ahmad sohail Kakar
 
PPT
Se ii unit3-architectural-design
Ahmad sohail Kakar
 
PPT
Se ii unit1-se_ii_intorduction
Ahmad sohail Kakar
 
PDF
Second chapter-java
Ahmad sohail Kakar
 
DOCX
Second chapter-java
Ahmad sohail Kakar
 
PPTX
Chapter 9 java
Ahmad sohail Kakar
 
PPTX
Chapter 8 java
Ahmad sohail Kakar
 
PPTX
Chapter 7 java
Ahmad sohail Kakar
 
PPTX
Chapter 6 java
Ahmad sohail Kakar
 
PPTX
Chapter 5 java
Ahmad sohail Kakar
 
PPTX
Chapter 4 java
Ahmad sohail Kakar
 
PPTX
Chapter 3 java
Ahmad sohail Kakar
 
PPTX
Chapter 2 java
Ahmad sohail Kakar
 
Lec 1 network types
Ahmad sohail Kakar
 
Lec 1 introduction
Ahmad sohail Kakar
 
Active directory restoration
Ahmad sohail Kakar
 
Active directory backup
Ahmad sohail Kakar
 
Seii unit7 component-level-design
Ahmad sohail Kakar
 
Seii unit6 software-testing-techniques
Ahmad sohail Kakar
 
Seii unit5 ui_design
Ahmad sohail Kakar
 
Seii unit4 software_process
Ahmad sohail Kakar
 
Se ii unit3-architectural-design
Ahmad sohail Kakar
 
Se ii unit1-se_ii_intorduction
Ahmad sohail Kakar
 
Second chapter-java
Ahmad sohail Kakar
 
Second chapter-java
Ahmad sohail Kakar
 
Chapter 9 java
Ahmad sohail Kakar
 
Chapter 8 java
Ahmad sohail Kakar
 
Chapter 7 java
Ahmad sohail Kakar
 
Chapter 6 java
Ahmad sohail Kakar
 
Chapter 5 java
Ahmad sohail Kakar
 
Chapter 4 java
Ahmad sohail Kakar
 
Chapter 3 java
Ahmad sohail Kakar
 
Chapter 2 java
Ahmad sohail Kakar
 
Ad

Recently uploaded (20)

PPSX
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PPTX
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
PPTX
How to Configure Prepayments in Odoo 18 Sales
Celine George
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
How to Manage Access Rights & User Types in Odoo 18
Celine George
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PDF
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
PPTX
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
PPTX
Pyhton with Mysql to perform CRUD operations.pptx
Ramakrishna Reddy Bijjam
 
PDF
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PDF
CHILD RIGHTS AND PROTECTION QUESTION BANK
Dr Raja Mohammed T
 
PPTX
How to Manage Promotions in Odoo 18 Sales
Celine George
 
PPTX
BANDHA (BANDAGES) PPT.pptx ayurveda shalya tantra
rakhan78619
 
PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
PPTX
HYDROCEPHALUS: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
How to Configure Prepayments in Odoo 18 Sales
Celine George
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
How to Manage Access Rights & User Types in Odoo 18
Celine George
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
Pyhton with Mysql to perform CRUD operations.pptx
Ramakrishna Reddy Bijjam
 
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
CHILD RIGHTS AND PROTECTION QUESTION BANK
Dr Raja Mohammed T
 
How to Manage Promotions in Odoo 18 Sales
Celine George
 
BANDHA (BANDAGES) PPT.pptx ayurveda shalya tantra
rakhan78619
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
HYDROCEPHALUS: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 

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