SlideShare a Scribd company logo
Software Design & Architecture
Lecture-8
Lecturer: Junaid Arshad
Software Design
General definition of design
“The process of applying various techniques and
principles for the purpose of defining a device, a
process, or a system in sufficient detail to permit its
physical realization.”
Goal
To produce a model or representation that will
later be built
Major Areas of concern
Data Design
Architecture Design
Interfaces Design
Components Design
Design and Software Quality
Quality
Design is the place where quality is fostered in
software engineering.
Design provides us with representation of
software that can be assessed for quality.
Design is the only way we can translate customers
requirements into finished software product or
system.
Software design serves as the foundation for all
the software engineering and software support
steps.
Characteristics of a Good Design
The design must implement all the explicit
requirements contained in the analysis model, and it
must accommodate all of the implicit requirements
desired by the customer.
The design must be readable, understandable guide
for those who generate code and for those who test
and support the software.
The design should provide a complete picture of the
software, addressing the data, functional and
behavioral domains from an implementation
perspective.
General Design Guidelines
A design should exhibit architectural structure that;
1) has been created using recognizable design patterns,
2) is composed of components that exhibit good design
characteristics
3) and can be implemented in an evolutionary fashion.
Logically partitioned into components that perform specific
tasks and subtasks.
Lead to interfaces that reduce complexity of connections
between modules and with the external environment.
Derived using a repeatable method driven by information
gathered during requirements.
Lead to data structures that are appropriate for the objects
to be implemented.
Design Principles
1. Design process should not suffer from tunnel vision
2. Design should be traceable to the analysis model
3. Design should not reinvent the wheel
4. Design should exhibit uniformity and integration
5. Design should be structured to accommodate change
6. Design is not coding, and coding is not design
7. Design should be reviewed to minimize conceptual
errors
Software Design Model
Information
model
Functional
model
Behavioral
model
Other
requirements
Design
Code
Test
Data design
Architectural
design
Procedural/ Component-level
design
Program
modules
Integrated
& validated
software
Interface
design
Data Design
Data design transforms the information domain
model created during analysis into the data
structures that will be required to implement the
software.
The data objects and relationships defined in ERD
and the detailed data content depicted in the data
dictionary provide the basis for the data design
activities.
Architectural Design
Objective is to develop a modular program
structure and represent the control relationships
between modules
Derived from the system specification, the analysis
model, and the interaction of subsystems defined
within the analysis model.
Interface Design
Combines program and data structure by defining
interfaces that allows data to flow throughout the
program
The interface design describes how the software
communicates within itself, with systems that
interoperate with it and with humans who use it.
Data and control flow diagrams provides information
required for interface design
Procedural Design
Transforms structural elements of the software
architecture into a procedural description of
software components.
After data & program structure have been
established, it becomes necessary to specify
procedural detail without ambiguity
Software Design Fundamentals
Abstraction
Modularity
Control Hierarchy
Data Structure
Software Procedure
Information Hiding (Encapsulation)
Design Fundamentals
Abstraction
Is one of the fundamental ways that can be used to
deal with complexity.
Levels of detail/language used to describe a problem
Highest level
Lower level
Lowest level
Types:
Procedural abstraction
Data abstraction
Control abstraction
Design Fundamentals (cont.)
Modularity
Divide software into separate components often called
modules that are integrated to solve problem
requirements
Criteria to evaluate the Design methods
Modularity Decomposability
Modular Composability
Modular Understandability
Modular Continuity
Modular Protection
Modular Design
Benefits
Reduces complexity
Facilitates change
Easier to develop
Easier to maintain and test
Easier implementation afforded by parallel
development
Design Fundamentals (cont.)
Control Hierarchy/Program Structure
Organization of modules that implies a
hierarchy of control
Depth, width, fan-out, fan-in
Tree like control diagram
Module D Module E
Module F
Module I
Module G
Module J
Module H
Module A
Module K
Module B
Module L
Module N
Module R
Module O Module P Module Q
Module M
Module C
Manager
Design Fundamentals (cont.)
Data Structure
Logical representation of the relationship among
individual data elements
Scalar, vector, array, linked list, stacks etc.
Software Procedure
Processing details of each module
Precise specification includes sequence of
events, decision points, repetitive operations,
data organization
Design Fundamentals (cont.)
Information Hiding/ Encapsulation
Modules should be “characterized by design
decisions that each hides from all others”
Modules are designed so that information within
a module is inaccessible to other modules with
no need for the information
Defines and enforces access constraints

More Related Content

Similar to Lecture # 8 software design and architecture (SDA).ppt

Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
Dhairya Joshi
 

Similar to Lecture # 8 software design and architecture (SDA).ppt (20)

06 fse design
06 fse design06 fse design
06 fse design
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design final
Design finalDesign final
Design final
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
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
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
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
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Software design
Software designSoftware design
Software design
 
Chapter1
Chapter1Chapter1
Chapter1
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
 
Software enginnering
Software enginneringSoftware enginnering
Software enginnering
 
design-concept.ppt
design-concept.pptdesign-concept.ppt
design-concept.ppt
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 

Recently uploaded

Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 

Lecture # 8 software design and architecture (SDA).ppt

  • 1. Software Design & Architecture Lecture-8 Lecturer: Junaid Arshad
  • 2. Software Design General definition of design “The process of applying various techniques and principles for the purpose of defining a device, a process, or a system in sufficient detail to permit its physical realization.” Goal To produce a model or representation that will later be built
  • 3. Major Areas of concern Data Design Architecture Design Interfaces Design Components Design
  • 4. Design and Software Quality Quality Design is the place where quality is fostered in software engineering. Design provides us with representation of software that can be assessed for quality. Design is the only way we can translate customers requirements into finished software product or system. Software design serves as the foundation for all the software engineering and software support steps.
  • 5. Characteristics of a Good Design The design must implement all the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. The design must be readable, understandable guide for those who generate code and for those who test and support the software. The design should provide a complete picture of the software, addressing the data, functional and behavioral domains from an implementation perspective.
  • 6. General Design Guidelines A design should exhibit architectural structure that; 1) has been created using recognizable design patterns, 2) is composed of components that exhibit good design characteristics 3) and can be implemented in an evolutionary fashion. Logically partitioned into components that perform specific tasks and subtasks. Lead to interfaces that reduce complexity of connections between modules and with the external environment. Derived using a repeatable method driven by information gathered during requirements. Lead to data structures that are appropriate for the objects to be implemented.
  • 7. Design Principles 1. Design process should not suffer from tunnel vision 2. Design should be traceable to the analysis model 3. Design should not reinvent the wheel 4. Design should exhibit uniformity and integration 5. Design should be structured to accommodate change 6. Design is not coding, and coding is not design 7. Design should be reviewed to minimize conceptual errors
  • 8. Software Design Model Information model Functional model Behavioral model Other requirements Design Code Test Data design Architectural design Procedural/ Component-level design Program modules Integrated & validated software Interface design
  • 9. Data Design Data design transforms the information domain model created during analysis into the data structures that will be required to implement the software. The data objects and relationships defined in ERD and the detailed data content depicted in the data dictionary provide the basis for the data design activities.
  • 10. Architectural Design Objective is to develop a modular program structure and represent the control relationships between modules Derived from the system specification, the analysis model, and the interaction of subsystems defined within the analysis model.
  • 11. Interface Design Combines program and data structure by defining interfaces that allows data to flow throughout the program The interface design describes how the software communicates within itself, with systems that interoperate with it and with humans who use it. Data and control flow diagrams provides information required for interface design
  • 12. Procedural Design Transforms structural elements of the software architecture into a procedural description of software components. After data & program structure have been established, it becomes necessary to specify procedural detail without ambiguity
  • 13. Software Design Fundamentals Abstraction Modularity Control Hierarchy Data Structure Software Procedure Information Hiding (Encapsulation)
  • 14. Design Fundamentals Abstraction Is one of the fundamental ways that can be used to deal with complexity. Levels of detail/language used to describe a problem Highest level Lower level Lowest level Types: Procedural abstraction Data abstraction Control abstraction
  • 15. Design Fundamentals (cont.) Modularity Divide software into separate components often called modules that are integrated to solve problem requirements Criteria to evaluate the Design methods Modularity Decomposability Modular Composability Modular Understandability Modular Continuity Modular Protection
  • 16. Modular Design Benefits Reduces complexity Facilitates change Easier to develop Easier to maintain and test Easier implementation afforded by parallel development
  • 17. Design Fundamentals (cont.) Control Hierarchy/Program Structure Organization of modules that implies a hierarchy of control Depth, width, fan-out, fan-in Tree like control diagram
  • 18. Module D Module E Module F Module I Module G Module J Module H Module A Module K Module B Module L Module N Module R Module O Module P Module Q Module M Module C Manager
  • 19. Design Fundamentals (cont.) Data Structure Logical representation of the relationship among individual data elements Scalar, vector, array, linked list, stacks etc. Software Procedure Processing details of each module Precise specification includes sequence of events, decision points, repetitive operations, data organization
  • 20. Design Fundamentals (cont.) Information Hiding/ Encapsulation Modules should be “characterized by design decisions that each hides from all others” Modules are designed so that information within a module is inaccessible to other modules with no need for the information Defines and enforces access constraints