SlideShare a Scribd company logo
1
Software Design and
SQA
2
Recap
 Software requirements and software quality assurance
3
Today’s Lecture
 Software design
 Software design model and process
 Software design defects
4
Design?
 Synonyms: plan, arrangement, lay out, map, scheme
 Antonyms: accident, fluke, chance, guess
 Design is an activity of creating a solution that satisfies a specific goal or need
 Design is the backbone of all products and services
 Considered an artistic and heuristic activity
5
Software Design - 1
 Software design is an artifact that represents a solution, showing its main features
and behavior, and is the basis for implementing a program or collection of
programs
6
Software Design - 2
 Design is a meaningful representation of something that is to be built. It can be
traced to a customer’s requirements and at the same time assessed for quality
against a set of pre-defined criteria of “good” design
7
Software Design - 3
 Software design is different from other forms of design because it is not
constrained by physical objects, structures, or laws
 As a result, software design tends to be much more complex than other forms of
design because it is conceptually unbounded, whereas the capabilities of the
human mind are bounded
8
Software Design - 4
 Expert designers use a mostly breadth-first approach because it allows them to
mentally simulate the execution of an evolving system to detect unwanted
interaction, inconsistencies, weaknesses, and incompleteness of their designs
9
Software Design - 5
 Thus, design is driven by known solutions, which increases performance by
allowing a user to dynamically shift goals and activities
10
Software Design - 6
Good designers structure problem formulations by
discovering missing information, such as problem
goals and evaluation criteria, and resolving many
open-ended constraints
Hence the challenge of design necessitates the use of
a methodical approach based on key principles and
practices to effectively and efficiently produce high
quality software designs
11
Software Design - 7
 However, designers must occasionally deviate from a defined method in response
to newly acquired information of insights
12
Software Design - 8
Software design principles identify strategic
approaches to the production of quality software
designs
Software design practices identify tactical methods
for producing quality software designs
Software design procedures provide an
organizational framework for designing software
13
An Important Point
 Try to associate quality attributes with every aspect of software design
14
Design and Quality
 Design is the place where quality is fostered in software engineering
 Design provides us with representation of software which can be assessed for
quality
 Design is the only way that we can accurately translate a customer’s requirements
into a finished software product or system
15
Without Software Design
 We risk building an unstable system
 one that will fail when small changes are made
 one that may be difficult to test
 one whose quality cannot be assessed until late in the software process
 one that will be of no or very little use for similar projects (not reusable)
16
Design Process and Model
Software design is both a process and a model
17
Design Process
It is a sequence of steps that enables a designer to
describe all aspects of the software to be built
During the design process, the quality of the evolving
design is assessed with a series of formal technical
reviews or design walkthroughs
Needs creative skills, past experience, sense of what
makes “good” software, and an overall commitment to
quality
18
Design Model
 Equivalent to an architect’s plan for a house
 Represents the totality of the thing to be built
 Provides a variety of different views of the computer software
19
Design Defects
20
Design Defects - 1
 Defects introduced during preliminary design phase are usually not discovered
until integration testing, which is too late in most cases
 Defects introduced during detailed design phase are usually discovered during unit
testing
21
Design Defects - 2
 All four categories of defects are found in design models
 Errors of commission
 Errors of omission
 Errors of clarity and ambiguity
 Errors of speed and capacity
22
Design Defects - 3
 Most common defects are errors of omission, followed by errors of commission
 Errors of clarity and ambiguity are also common, and many performance related
problems originate in design process also
23
Design Defects - 4
 Overall design ranks next to requirements as a source of very troublesome and
expensive errors
 A combination of defect prevention and defect removal is needed for dealing with
design defects
24
Design Defects - 5
 Formal design inspections are one of the most powerful and successful software
quality approaches of all times
 Software professionals should incorporate inspections in their software
development process
25
Defects in Fundamental Design Topics
Functions performed
Function installation, invocation, control, and termination
Data elements
Data relationships
Structure of the application
Sequences or concurrency of execution
Interfaces
26
Functions Performed
 Errors in descriptions of functions the application will perform, are often errors of
omission
 Often omitted functions are those which, are implied functions, rather than the
explicitly demanded functions
27
Function Installation, Invocation, Control,
and Termination
 How to start-up a feature, control its behavior, and safely turn off a feature when
finished are common in commercial and in-house software applications
 Fifty percent of the problems reported to commercial software vendors are of this
class
28
Data Elements
Errors in describing the data used by the application are a
major source of problems downstream during coding
and testing
A minor example of errors due to inadequate design of
data elements can be seen in many programs that record
addresses and telephone numbers
Often insufficient space is reserved for names, etc.
29
Data Relationships
 Errors in describing data relationships are very common and a source of much
trouble later
30
Structure of the Application
Complex software structures with convoluted control flow
tend to have higher error rates
Poor structural design is fairly common, and is often due
to haste or poor training and preparation
Tools can measure cyclomatic and essential complexity
Prevention is often better than attempting to simplify an
already complex software structure
31
Sequences or Concurrency of Execution
 Many errors of speed and capacity have their origin in failing to design for
optimum performance
 Performance errors are a result of complex control flow, excessive branching, or too
many sequential processing (use parallel processing)
 Minimize I/O operations
32
Interfaces
 Chronic design problem
 Incompatible data types in message communication
33
Errors in Eight Secondary Design Topics
Security
Reliability
Maintainability
Performance
Human factors
Hardware dependencies
Software dependencies
Packaging
34
Addressing Design Problems
 Continuously evaluate your design model and design process
 Use design inspections or formal technical reviews, which have proven to be the
most valuable mechanism to improve quality of software ever, and especially for
design
 Develop software design by following design principles and guidelines

More Related Content

PPTX
8. project-management
PPTX
Software project management
PPTX
Software Engineering
PPT
Migration Strategies & Methodologies
PDF
Software engineering
PPT
Ch01
PPTX
Software project management Software economics
PPT
Software Project Management
8. project-management
Software project management
Software Engineering
Migration Strategies & Methodologies
Software engineering
Ch01
Software project management Software economics
Software Project Management

What's hot (20)

PPTX
Quality and productivity factors
PPT
Chapter 01
PPT
Software System Engineering - Chapter 2
PPTX
Lect3 conventional vs modern spm
PPTX
Lect4 software economics
PPTX
Lect2 conventional software management
PDF
Software engineering a practitioners approach 8th edition pressman solutions ...
PDF
INTRODUCTION TO SOFTWARE ENGINEERING
PPTX
software project management Assumption about conventional model
PPT
Chapter1 conventional softwaremanagement (1)
PDF
Software design
PPT
Slides chapters 21-23
PPTX
Lect6 life cycle phases
PPTX
Planning the development process
DOCX
Notes of Software engineering and Project Management
PPT
Improving software economics
DOC
Lesson 8...Question Part 2
PPSX
Software Project Planning IV
PPTX
Software Project Management - NESDEV
PPTX
Software Engineering Practice
Quality and productivity factors
Chapter 01
Software System Engineering - Chapter 2
Lect3 conventional vs modern spm
Lect4 software economics
Lect2 conventional software management
Software engineering a practitioners approach 8th edition pressman solutions ...
INTRODUCTION TO SOFTWARE ENGINEERING
software project management Assumption about conventional model
Chapter1 conventional softwaremanagement (1)
Software design
Slides chapters 21-23
Lect6 life cycle phases
Planning the development process
Notes of Software engineering and Project Management
Improving software economics
Lesson 8...Question Part 2
Software Project Planning IV
Software Project Management - NESDEV
Software Engineering Practice
Ad

Similar to Sqa lecture08 usama (20)

PPT
Introduction Software and Software Engineering
PPTX
SQA - Lecturehhhhhhhhvvvvvvvvvvvvv 06.pptx
PPTX
Chapter 1 1 - intro ppt
PPT
Waterfall model
PPTX
Lecture-1,2-Introduction to SE.pptx
PPTX
Design programing logic powor point.pptx
PPTX
Unit 1 Software Engineering and Development Models .pptx
PPTX
Lecture 1 SE.pptx
PPTX
SoftwareEngineering.pptx
PPTX
SoftwareEngineering.pptx
PPT
SPM.ppt details of spm project management
PPTX
SDA 01.pptx
PDF
Basic Software Engineering
PPT
se01.ppt
PPTX
Software Engineering Introduction -UNIT 1.pptx
PPTX
Software Development Methodologies.pptx
PDF
Introduction_SE_Modifiedsoftware engineering.pdf
Introduction Software and Software Engineering
SQA - Lecturehhhhhhhhvvvvvvvvvvvvv 06.pptx
Chapter 1 1 - intro ppt
Waterfall model
Lecture-1,2-Introduction to SE.pptx
Design programing logic powor point.pptx
Unit 1 Software Engineering and Development Models .pptx
Lecture 1 SE.pptx
SoftwareEngineering.pptx
SoftwareEngineering.pptx
SPM.ppt details of spm project management
SDA 01.pptx
Basic Software Engineering
se01.ppt
Software Engineering Introduction -UNIT 1.pptx
Software Development Methodologies.pptx
Introduction_SE_Modifiedsoftware engineering.pdf
Ad

Recently uploaded (20)

PPTX
Anesthesia and it's stage with mnemonic and images
PDF
COLEAD A2F approach and Theory of Change
PPTX
lesson6-211001025531lesson plan ppt.pptx
PPTX
PHIL.-ASTRONOMY-AND-NAVIGATION of ..pptx
PDF
MODULE 3 BASIC SECURITY DUTIES AND ROLES.pdf
PPTX
FINAL TEST 3C_OCTAVIA RAMADHANI SANTOSO-1.pptx
PDF
Yusen Logistics Group Sustainability Report 2024.pdf
PPTX
Kompem Part Untuk MK Komunikasi Pembangunan 5.pptx
PPTX
HOW TO HANDLE THE STAGE FOR ACADEMIA AND OTHERS.pptx
PDF
natwest.pdf company description and business model
PPTX
2025-08-17 Joseph 03 (shared slides).pptx
PPTX
Research Process - Research Methods course
PPTX
PurpoaiveCommunication for students 02.pptx
PPTX
ANICK 6 BIRTHDAY....................................................
PPTX
NORMAN_RESEARCH_PRESENTATION.in education
PDF
_Nature and dynamics of communities and community development .pdf
PPTX
Shizophrnia ppt for clinical psychology students of AS
PDF
Presentation1 [Autosaved].pdf diagnosiss
DOC
LBU毕业证学历认证,伦敦政治经济学院毕业证外国毕业证
PPTX
ART-APP-REPORT-FINctrwxsg f fuy L-na.pptx
Anesthesia and it's stage with mnemonic and images
COLEAD A2F approach and Theory of Change
lesson6-211001025531lesson plan ppt.pptx
PHIL.-ASTRONOMY-AND-NAVIGATION of ..pptx
MODULE 3 BASIC SECURITY DUTIES AND ROLES.pdf
FINAL TEST 3C_OCTAVIA RAMADHANI SANTOSO-1.pptx
Yusen Logistics Group Sustainability Report 2024.pdf
Kompem Part Untuk MK Komunikasi Pembangunan 5.pptx
HOW TO HANDLE THE STAGE FOR ACADEMIA AND OTHERS.pptx
natwest.pdf company description and business model
2025-08-17 Joseph 03 (shared slides).pptx
Research Process - Research Methods course
PurpoaiveCommunication for students 02.pptx
ANICK 6 BIRTHDAY....................................................
NORMAN_RESEARCH_PRESENTATION.in education
_Nature and dynamics of communities and community development .pdf
Shizophrnia ppt for clinical psychology students of AS
Presentation1 [Autosaved].pdf diagnosiss
LBU毕业证学历认证,伦敦政治经济学院毕业证外国毕业证
ART-APP-REPORT-FINctrwxsg f fuy L-na.pptx

Sqa lecture08 usama

  • 2. 2 Recap  Software requirements and software quality assurance
  • 3. 3 Today’s Lecture  Software design  Software design model and process  Software design defects
  • 4. 4 Design?  Synonyms: plan, arrangement, lay out, map, scheme  Antonyms: accident, fluke, chance, guess  Design is an activity of creating a solution that satisfies a specific goal or need  Design is the backbone of all products and services  Considered an artistic and heuristic activity
  • 5. 5 Software Design - 1  Software design is an artifact that represents a solution, showing its main features and behavior, and is the basis for implementing a program or collection of programs
  • 6. 6 Software Design - 2  Design is a meaningful representation of something that is to be built. It can be traced to a customer’s requirements and at the same time assessed for quality against a set of pre-defined criteria of “good” design
  • 7. 7 Software Design - 3  Software design is different from other forms of design because it is not constrained by physical objects, structures, or laws  As a result, software design tends to be much more complex than other forms of design because it is conceptually unbounded, whereas the capabilities of the human mind are bounded
  • 8. 8 Software Design - 4  Expert designers use a mostly breadth-first approach because it allows them to mentally simulate the execution of an evolving system to detect unwanted interaction, inconsistencies, weaknesses, and incompleteness of their designs
  • 9. 9 Software Design - 5  Thus, design is driven by known solutions, which increases performance by allowing a user to dynamically shift goals and activities
  • 10. 10 Software Design - 6 Good designers structure problem formulations by discovering missing information, such as problem goals and evaluation criteria, and resolving many open-ended constraints Hence the challenge of design necessitates the use of a methodical approach based on key principles and practices to effectively and efficiently produce high quality software designs
  • 11. 11 Software Design - 7  However, designers must occasionally deviate from a defined method in response to newly acquired information of insights
  • 12. 12 Software Design - 8 Software design principles identify strategic approaches to the production of quality software designs Software design practices identify tactical methods for producing quality software designs Software design procedures provide an organizational framework for designing software
  • 13. 13 An Important Point  Try to associate quality attributes with every aspect of software design
  • 14. 14 Design and Quality  Design is the place where quality is fostered in software engineering  Design provides us with representation of software which can be assessed for quality  Design is the only way that we can accurately translate a customer’s requirements into a finished software product or system
  • 15. 15 Without Software Design  We risk building an unstable system  one that will fail when small changes are made  one that may be difficult to test  one whose quality cannot be assessed until late in the software process  one that will be of no or very little use for similar projects (not reusable)
  • 16. 16 Design Process and Model Software design is both a process and a model
  • 17. 17 Design Process It is a sequence of steps that enables a designer to describe all aspects of the software to be built During the design process, the quality of the evolving design is assessed with a series of formal technical reviews or design walkthroughs Needs creative skills, past experience, sense of what makes “good” software, and an overall commitment to quality
  • 18. 18 Design Model  Equivalent to an architect’s plan for a house  Represents the totality of the thing to be built  Provides a variety of different views of the computer software
  • 20. 20 Design Defects - 1  Defects introduced during preliminary design phase are usually not discovered until integration testing, which is too late in most cases  Defects introduced during detailed design phase are usually discovered during unit testing
  • 21. 21 Design Defects - 2  All four categories of defects are found in design models  Errors of commission  Errors of omission  Errors of clarity and ambiguity  Errors of speed and capacity
  • 22. 22 Design Defects - 3  Most common defects are errors of omission, followed by errors of commission  Errors of clarity and ambiguity are also common, and many performance related problems originate in design process also
  • 23. 23 Design Defects - 4  Overall design ranks next to requirements as a source of very troublesome and expensive errors  A combination of defect prevention and defect removal is needed for dealing with design defects
  • 24. 24 Design Defects - 5  Formal design inspections are one of the most powerful and successful software quality approaches of all times  Software professionals should incorporate inspections in their software development process
  • 25. 25 Defects in Fundamental Design Topics Functions performed Function installation, invocation, control, and termination Data elements Data relationships Structure of the application Sequences or concurrency of execution Interfaces
  • 26. 26 Functions Performed  Errors in descriptions of functions the application will perform, are often errors of omission  Often omitted functions are those which, are implied functions, rather than the explicitly demanded functions
  • 27. 27 Function Installation, Invocation, Control, and Termination  How to start-up a feature, control its behavior, and safely turn off a feature when finished are common in commercial and in-house software applications  Fifty percent of the problems reported to commercial software vendors are of this class
  • 28. 28 Data Elements Errors in describing the data used by the application are a major source of problems downstream during coding and testing A minor example of errors due to inadequate design of data elements can be seen in many programs that record addresses and telephone numbers Often insufficient space is reserved for names, etc.
  • 29. 29 Data Relationships  Errors in describing data relationships are very common and a source of much trouble later
  • 30. 30 Structure of the Application Complex software structures with convoluted control flow tend to have higher error rates Poor structural design is fairly common, and is often due to haste or poor training and preparation Tools can measure cyclomatic and essential complexity Prevention is often better than attempting to simplify an already complex software structure
  • 31. 31 Sequences or Concurrency of Execution  Many errors of speed and capacity have their origin in failing to design for optimum performance  Performance errors are a result of complex control flow, excessive branching, or too many sequential processing (use parallel processing)  Minimize I/O operations
  • 32. 32 Interfaces  Chronic design problem  Incompatible data types in message communication
  • 33. 33 Errors in Eight Secondary Design Topics Security Reliability Maintainability Performance Human factors Hardware dependencies Software dependencies Packaging
  • 34. 34 Addressing Design Problems  Continuously evaluate your design model and design process  Use design inspections or formal technical reviews, which have proven to be the most valuable mechanism to improve quality of software ever, and especially for design  Develop software design by following design principles and guidelines

Editor's Notes

  • #31: Software architecture exposes the structure of a system while hiding the implementation details. Architecture also focuses on how the elements and components within a system interact with one other. Software design delves deeper into the implementation details of the system. Design concerns include the selection of data structures and algorithms, or the implementation details of individual components. Cyclomatic: number of linearly independent paths through a program's source code.