SlideShare a Scribd company logo
SOFTWARE DESIGN
Prepared by Dr.T.Thendral 15.07.23
Prepared by
Dr.T.Thendral
Assistant Professor
Department of Computer Science
Sri Ramaskrishna College of Arts & Science for Women
Coimbatore
• Software design and Software engineering
• The Design process
• Design principles
• Design concepts
• Effective modular design
• Software Architecture
Prepared by Dr.T.Thendral 15.07.23
SOFTWARE DESIGN AND SOFTWARE
ENGINEERING
• Software design is the first of
three technical activities—
design, code generation, and
test—that are required to
build and verify the software
• The design task produces a
data design, an architectural
design, an interface design,
and a component design
• The data design transforms
the information domain model
created during analysis into
the data structures that will be
required to implement the
software
Prepared by Dr.T.Thendral 15.07.23
• The architectural design defines the relationship
between major structural elements of the software,
the “design patterns”
• The interface design describes how the software
communicates within itself, with systems that
interoperate with it and with humans who use it
• An interface implies a flow of information (e.g., data
and/or control) and a specific type of behavior
• The component-level design transforms structural
elements of the software architecture into a
procedural description of software components
Prepared by Dr.T.Thendral 15.07.23
• The importance of software design can be
stated with a single word—quality
• Design is the place where quality is fostered in
software engineering
Prepared by Dr.T.Thendral 15.07.23
Translating the analysis model into
a software design
Prepared by Dr.T.Thendral 15.07.23
THE DESIGN PROCESS
• Software design is an iterative process
through which requirements are translated
into a “blueprint” for constructing the
software
Prepared by Dr.T.Thendral 15.07.23
Design and Software Quality
• Throughout the design process, the quality of
the evolving design is assessed with a series of
formal technical reviews or design
walkthroughs
Prepared by Dr.T.Thendral 15.07.23
Three characteristics of a good design:
Prepared by Dr.T.Thendral 15.07.23
• A design should exhibit an architectural
structure that
• (1) has been created using recognizable design
patterns
• (2) is composed of components that exhibit
good design characteristics, and
• (3) can be implemented in an evolutionary
fashion, thereby facilitating implementation
and testing
Prepared by Dr.T.Thendral 15.07.23
• 2. A design should be modular
• 3. A design should contain distinct representations of data,
architecture, interfaces, and components (modules).
• 4. A design should lead to data structures that are
appropriate for the objects
• 5. A design should lead to components that exhibit
independent functional characteristics
• 6. A design should lead to interfaces that reduce the
complexity of connections between modules and with the
external environment
• 7. A design should be derived using a repeatable method
that is driven by information obtained during software
requirements analysis
Prepared by Dr.T.Thendral 15.07.23
The Evolution of Software Design
• Early design work concentrated on criteria for the
development of modular programs and methods
for refining software structures in a top-down
manner
• Procedural aspects of design definition evolved
into a philosophy called structured programming
• Later work proposed methods for the translation
of data flow or data structure into a design
definition
Prepared by Dr.T.Thendral 15.07.23
• Methods have a number of common
characteristics:
• (1) a mechanism for the translation of analysis
model into a design representation
• (2) a notation for representing functional
components and their interfaces
• (3) heuristics for refinement and partitioning, and
• (4) guidelines for quality assessment
Prepared by Dr.T.Thendral 15.07.23
Example
Prepared by Dr.T.Thendral 15.07.23
DESIGN PRINCIPLES
DESIGN PRINCIPLES
• Software design is both a process and a model
• Design should be Creative skill, past
experience, a sense of what makes “good”
software, and an overall commitment to
quality are critical success factors for a
competent design
• The design model is the equivalent of an
architect’s plans for a house
Prepared by Dr.T.Thendral 15.07.23
• e.g., a three-dimensional rendering of the
house
• slowly refines the thing to provide guidance
for constructing each detail (e.g., the
plumbing layout)
Prepared by Dr.T.Thendral 15.07.23
• The design process should not suffer from
“tunnel vision.”- onsider alternative
approaches
• The design should be traceable to the
analysis model- Because a single element of
the design model often traces to multiple
requirements
• Requirements have been satisfied by the
design model!
Prepared by Dr.T.Thendral 15.07.23
• The design should not reinvent the wheel-
Systems are constructed using a set of design
patterns
• These patterns should always be chosen as an
alternative to reinvention
• Time is short and resources are limited
• The design should “minimize the intellectual
distance” between the software and the
problem as it exists in the real world.
• structure of the software design should mimic
the structure of the problem domain
Prepared by Dr.T.Thendral 15.07.23
• The design should exhibit uniformity and
integration-
• A design is uniform if it appears that one
person developed the entire thing.
• Rules of style and format should be defined
for a design team before design work begins
• design is integrated if care is taken in defining
interfaces between design components
Prepared by Dr.T.Thendral 15.07.23
• The design should be structured to accommodate
change
• The design should be structured to degrade
gently, even when a’berrant data, events, or
operating conditions are encountered
• 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 (semantic) errors
Prepared by Dr.T.Thendral 15.07.23
Prepared by Dr.T.Thendral 15.07.23
DESIGN CONCEPTS
• Each helps the software engineer to answer
the following questions:
• What criteria can be used to partition
software into individual components?
• How is function or data structure detail
separated from a conceptual representation of
the software?
• What uniform criteria define the technical
quality of a software design?
Prepared by Dr.T.Thendral 15.07.23
• The beginning of wisdom for a [software
engineer] is to recognize the difference
between getting a program to work, and
getting it right“
• Fundamental software design concepts
provide the necessary framework for "getting
it right"
Prepared by Dr.T.Thendral 15.07.23
Abstraction
• Abstraction:
• When we consider a modular solution to any problem,
many levels of abstraction can be posed
• Procedural Abstraction
• An example of a procedural abstraction would be the word
open for a door
• Data abstraction
• A data abstraction is a named collection of data that
describes a data object
• In the context of the procedural abstraction open, we can
define a data abstraction called door
• data object, the data abstraction for door (e.g., door type,
swing direction, opening mechanism, weight, dimensions)
Prepared by Dr.T.Thendral 15.07.23
• Control abstraction is the third form of
abstraction used in software design
• control abstraction implies a program control
mechanism without specifying internal details
Prepared by Dr.T.Thendral 15.07.23
Refinement
• Stepwise refinement is a top-down design
strategy originally proposed by Niklaus Wirth
• In each step (of the refinement), one or several
instructions of the given program are
decomposed into more detailed instructions
• Refinement is actually a process of elaboration
• Abstraction enables a designer to specify
procedure and data and yet suppress low-level
details
• Refinement helps the designer to reveal low-level
details as design progresses
Prepared by Dr.T.Thendral 15.07.23
• Every refinement step implies some design
decisions.
• It is important that . . .
• the programmer be aware of the underlying
criteria (for design decisions) and of the
existence of alternative solutions . . .
Prepared by Dr.T.Thendral 15.07.23
Modularity
• software is divided into separately named and
addressable components, often called
modules, that are integrated to satisfy
problem requirements.
Prepared by Dr.T.Thendral 15.07.23
Prepared by Dr.T.Thendral 15.07.23
• Modular decomposability - reduce the complexity of the
overall problem, thereby achieving an effective modular
solution
• Modular composability-If a design method enables existing
(reusable) design components to be assembled into a new
system
• Modular understandability-If a module can be understood
it will be easier to build and easier to change
• Modular continuity-If small changes to the system
requirements result in changes to individual modules
• Modular protection-If an aberrant condition occurs within
a module and its effects are constrained within that module
side effects will be minimized.
Prepared by Dr.T.Thendral 15.07.23
Objective
• Software Architecture
• What Is Architecture?
• Why Is Architecture Important?
Prepared by Dr.T.Thendral 15.07.23
Software Architecture
• Software architecture the overall structure of
the software
• The ways in which that structure provides
conceptual integrity for a system
• First program was divided into modules,
software systems have had architectures,
and programmer
• Effective software architecture and its explicit
representation and design have become
dominant themes in software engineering
Prepared by Dr.T.Thendral 15.07.23
What Is Architecture?
• The architecture of a building, many different
attributes come to mind
• EXAMPLE:
• It is the manner in which the various
components of the building are integrated to
form a cohesive whole
• It is the beautiful feel of the structure—the
visual impact of the building—and the way
textures, colors, and materials are combined
to create the external facade and the internal
“living environment
Prepared by Dr.T.Thendral 15.07.23
• The architecture is not the operational
software.
• It is a representation that enables a software
engineer to
• (1) analyze the effectiveness of the design in
meeting its stated requirements
• (2) consider architectural alternatives at a
stage when making design changes is still
relatively easy,
• (3) reducing the risks associated with the
construction of the software
Prepared by Dr.T.Thendral 15.07.23
Why Is Architecture Important?
• Three key reasons that software architecture is
important:
• Representations of software architecture are an
enabler for communication between all parties
(stakeholders) interested in the development of a
computer-based system
• The architecture highlights early design decisions -
impact on all software engineering work that follows -
the ultimate success of the system as an operational
entity
• Architecture “constitutes a relatively small,
intellectually graspable model of how the system is
structured and how its components work together”
Prepared by Dr.T.Thendral 15.07.23
Summary of Unit II
• Software design and Software engineering
• The Design process
• Design principles
• Design concepts
• Effective modular design
• Software Architecture
Prepared by Dr.T.Thendral 15.07.23

More Related Content

What's hot

Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Requirement Engineering.ppt
Requirement Engineering.pptRequirement Engineering.ppt
Requirement Engineering.ppt
DrTThendralCompSci
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Prabhat gangwar
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
Mr. Swapnil G. Thaware
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
AlenaDion
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
Simran Kaur
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
University of Sargodha
 
Software Generic Design Process.
Software Generic Design Process.Software Generic Design Process.
Software Generic Design Process.
Syed Hassan Ali
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
Priyanka Shetty
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Software prototyping.pptx
Software prototyping.pptxSoftware prototyping.pptx
Software prototyping.pptx
DrTThendralCompSci
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Atul Karmyal
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
Rupesh Vaishnav
 

What's hot (20)

Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Requirement Engineering.ppt
Requirement Engineering.pptRequirement Engineering.ppt
Requirement Engineering.ppt
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Software design
Software designSoftware design
Software design
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software Generic Design Process.
Software Generic Design Process.Software Generic Design Process.
Software Generic Design Process.
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software prototyping.pptx
Software prototyping.pptxSoftware prototyping.pptx
Software prototyping.pptx
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 

Similar to Software design and Software engineering.pptx

Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
SHREEHARI WADAWADAGI
 
Chapter 6 design
Chapter 6 designChapter 6 design
Chapter 6 design
nikshaikh786
 
B19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxB19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptx
DrPreethiD1
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
Saqib Raza
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
JigyasaAgrawal7
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
CharenReposposa
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
TharuniDiddekunta
 
chapter 1.pdf
chapter 1.pdfchapter 1.pdf
chapter 1.pdf
ThedronBerhanu
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
Preeti Mishra
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
HaifaMohd3
 
Design engineering
Design engineeringDesign engineering
Design engineering
Preeti Mishra
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
malathijanapati1
 
Design concepts
Design conceptsDesign concepts
Design concepts
Karachi University
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
Mohammed Fazuluddin
 
Design final
Design finalDesign final
Design final
Indu Sharma Bhardwaj
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
itadmin33
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
Dr VISU P
 
1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptx
SumbalIlyas1
 
Software architecture slides chap1 .pptx
Software architecture slides chap1 .pptxSoftware architecture slides chap1 .pptx
Software architecture slides chap1 .pptx
alimunawar4316
 
Architectural design
Architectural designArchitectural design
Architectural design
KiranStha
 

Similar to Software design and Software engineering.pptx (20)

Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
 
Chapter 6 design
Chapter 6 designChapter 6 design
Chapter 6 design
 
B19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxB19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptx
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
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
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
chapter 1.pdf
chapter 1.pdfchapter 1.pdf
chapter 1.pdf
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Design final
Design finalDesign final
Design final
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptx
 
Software architecture slides chap1 .pptx
Software architecture slides chap1 .pptxSoftware architecture slides chap1 .pptx
Software architecture slides chap1 .pptx
 
Architectural design
Architectural designArchitectural design
Architectural design
 

More from DrTThendralCompSci

Loader and linker.pptx
Loader and linker.pptxLoader and linker.pptx
Loader and linker.pptx
DrTThendralCompSci
 
The Application Layer.ppt
The Application Layer.pptThe Application Layer.ppt
The Application Layer.ppt
DrTThendralCompSci
 
Transport Layer.pptx
Transport Layer.pptxTransport Layer.pptx
Transport Layer.pptx
DrTThendralCompSci
 
Software Configuration Management.ppt
Software Configuration Management.pptSoftware Configuration Management.ppt
Software Configuration Management.ppt
DrTThendralCompSci
 
Wireless LANs PPT.ppt
Wireless LANs PPT.pptWireless LANs PPT.ppt
Wireless LANs PPT.ppt
DrTThendralCompSci
 
NETWORK LAYER.ppt
NETWORK LAYER.pptNETWORK LAYER.ppt
NETWORK LAYER.ppt
DrTThendralCompSci
 
Bluetooth.ppt
Bluetooth.pptBluetooth.ppt
Bluetooth.ppt
DrTThendralCompSci
 
MEDIUM-ACCESS CONTROL SUB LAYER.ppt
MEDIUM-ACCESS CONTROL SUB LAYER.pptMEDIUM-ACCESS CONTROL SUB LAYER.ppt
MEDIUM-ACCESS CONTROL SUB LAYER.ppt
DrTThendralCompSci
 
Ethernet.ppt
Ethernet.pptEthernet.ppt
Ethernet.ppt
DrTThendralCompSci
 
DATA-LINK LAYER.ppt
DATA-LINK LAYER.pptDATA-LINK LAYER.ppt
DATA-LINK LAYER.ppt
DrTThendralCompSci
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.ppt
DrTThendralCompSci
 
UNIT I.ppt
UNIT I.pptUNIT I.ppt
UNIT I.ppt
DrTThendralCompSci
 
PHYSICAL LAYER.ppt
PHYSICAL LAYER.pptPHYSICAL LAYER.ppt
PHYSICAL LAYER.ppt
DrTThendralCompSci
 
COMPUTER NETWORK
COMPUTER NETWORKCOMPUTER NETWORK
COMPUTER NETWORK
DrTThendralCompSci
 

More from DrTThendralCompSci (14)

Loader and linker.pptx
Loader and linker.pptxLoader and linker.pptx
Loader and linker.pptx
 
The Application Layer.ppt
The Application Layer.pptThe Application Layer.ppt
The Application Layer.ppt
 
Transport Layer.pptx
Transport Layer.pptxTransport Layer.pptx
Transport Layer.pptx
 
Software Configuration Management.ppt
Software Configuration Management.pptSoftware Configuration Management.ppt
Software Configuration Management.ppt
 
Wireless LANs PPT.ppt
Wireless LANs PPT.pptWireless LANs PPT.ppt
Wireless LANs PPT.ppt
 
NETWORK LAYER.ppt
NETWORK LAYER.pptNETWORK LAYER.ppt
NETWORK LAYER.ppt
 
Bluetooth.ppt
Bluetooth.pptBluetooth.ppt
Bluetooth.ppt
 
MEDIUM-ACCESS CONTROL SUB LAYER.ppt
MEDIUM-ACCESS CONTROL SUB LAYER.pptMEDIUM-ACCESS CONTROL SUB LAYER.ppt
MEDIUM-ACCESS CONTROL SUB LAYER.ppt
 
Ethernet.ppt
Ethernet.pptEthernet.ppt
Ethernet.ppt
 
DATA-LINK LAYER.ppt
DATA-LINK LAYER.pptDATA-LINK LAYER.ppt
DATA-LINK LAYER.ppt
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.ppt
 
UNIT I.ppt
UNIT I.pptUNIT I.ppt
UNIT I.ppt
 
PHYSICAL LAYER.ppt
PHYSICAL LAYER.pptPHYSICAL LAYER.ppt
PHYSICAL LAYER.ppt
 
COMPUTER NETWORK
COMPUTER NETWORKCOMPUTER NETWORK
COMPUTER NETWORK
 

Recently uploaded

Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
Steve Thomason
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
Nguyen Thanh Tu Collection
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
EduSkills OECD
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 

Recently uploaded (20)

Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 

Software design and Software engineering.pptx

  • 1. SOFTWARE DESIGN Prepared by Dr.T.Thendral 15.07.23 Prepared by Dr.T.Thendral Assistant Professor Department of Computer Science Sri Ramaskrishna College of Arts & Science for Women Coimbatore
  • 2. • Software design and Software engineering • The Design process • Design principles • Design concepts • Effective modular design • Software Architecture Prepared by Dr.T.Thendral 15.07.23
  • 3. SOFTWARE DESIGN AND SOFTWARE ENGINEERING • Software design is the first of three technical activities— design, code generation, and test—that are required to build and verify the software • The design task produces a data design, an architectural design, an interface design, and a component design • The data design transforms the information domain model created during analysis into the data structures that will be required to implement the software Prepared by Dr.T.Thendral 15.07.23
  • 4. • The architectural design defines the relationship between major structural elements of the software, the “design patterns” • The interface design describes how the software communicates within itself, with systems that interoperate with it and with humans who use it • An interface implies a flow of information (e.g., data and/or control) and a specific type of behavior • The component-level design transforms structural elements of the software architecture into a procedural description of software components Prepared by Dr.T.Thendral 15.07.23
  • 5. • The importance of software design can be stated with a single word—quality • Design is the place where quality is fostered in software engineering Prepared by Dr.T.Thendral 15.07.23
  • 6. Translating the analysis model into a software design Prepared by Dr.T.Thendral 15.07.23
  • 7. THE DESIGN PROCESS • Software design is an iterative process through which requirements are translated into a “blueprint” for constructing the software Prepared by Dr.T.Thendral 15.07.23
  • 8. Design and Software Quality • Throughout the design process, the quality of the evolving design is assessed with a series of formal technical reviews or design walkthroughs Prepared by Dr.T.Thendral 15.07.23
  • 9. Three characteristics of a good design: Prepared by Dr.T.Thendral 15.07.23
  • 10. • A design should exhibit an architectural structure that • (1) has been created using recognizable design patterns • (2) is composed of components that exhibit good design characteristics, and • (3) can be implemented in an evolutionary fashion, thereby facilitating implementation and testing Prepared by Dr.T.Thendral 15.07.23
  • 11. • 2. A design should be modular • 3. A design should contain distinct representations of data, architecture, interfaces, and components (modules). • 4. A design should lead to data structures that are appropriate for the objects • 5. A design should lead to components that exhibit independent functional characteristics • 6. A design should lead to interfaces that reduce the complexity of connections between modules and with the external environment • 7. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis Prepared by Dr.T.Thendral 15.07.23
  • 12. The Evolution of Software Design • Early design work concentrated on criteria for the development of modular programs and methods for refining software structures in a top-down manner • Procedural aspects of design definition evolved into a philosophy called structured programming • Later work proposed methods for the translation of data flow or data structure into a design definition Prepared by Dr.T.Thendral 15.07.23
  • 13. • Methods have a number of common characteristics: • (1) a mechanism for the translation of analysis model into a design representation • (2) a notation for representing functional components and their interfaces • (3) heuristics for refinement and partitioning, and • (4) guidelines for quality assessment Prepared by Dr.T.Thendral 15.07.23
  • 14. Example Prepared by Dr.T.Thendral 15.07.23 DESIGN PRINCIPLES
  • 15. DESIGN PRINCIPLES • Software design is both a process and a model • Design should be Creative skill, past experience, a sense of what makes “good” software, and an overall commitment to quality are critical success factors for a competent design • The design model is the equivalent of an architect’s plans for a house Prepared by Dr.T.Thendral 15.07.23
  • 16. • e.g., a three-dimensional rendering of the house • slowly refines the thing to provide guidance for constructing each detail (e.g., the plumbing layout) Prepared by Dr.T.Thendral 15.07.23
  • 17. • The design process should not suffer from “tunnel vision.”- onsider alternative approaches • The design should be traceable to the analysis model- Because a single element of the design model often traces to multiple requirements • Requirements have been satisfied by the design model! Prepared by Dr.T.Thendral 15.07.23
  • 18. • The design should not reinvent the wheel- Systems are constructed using a set of design patterns • These patterns should always be chosen as an alternative to reinvention • Time is short and resources are limited • The design should “minimize the intellectual distance” between the software and the problem as it exists in the real world. • structure of the software design should mimic the structure of the problem domain Prepared by Dr.T.Thendral 15.07.23
  • 19. • The design should exhibit uniformity and integration- • A design is uniform if it appears that one person developed the entire thing. • Rules of style and format should be defined for a design team before design work begins • design is integrated if care is taken in defining interfaces between design components Prepared by Dr.T.Thendral 15.07.23
  • 20. • The design should be structured to accommodate change • The design should be structured to degrade gently, even when a’berrant data, events, or operating conditions are encountered • 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 (semantic) errors Prepared by Dr.T.Thendral 15.07.23
  • 22. DESIGN CONCEPTS • Each helps the software engineer to answer the following questions: • What criteria can be used to partition software into individual components? • How is function or data structure detail separated from a conceptual representation of the software? • What uniform criteria define the technical quality of a software design? Prepared by Dr.T.Thendral 15.07.23
  • 23. • The beginning of wisdom for a [software engineer] is to recognize the difference between getting a program to work, and getting it right“ • Fundamental software design concepts provide the necessary framework for "getting it right" Prepared by Dr.T.Thendral 15.07.23
  • 24. Abstraction • Abstraction: • When we consider a modular solution to any problem, many levels of abstraction can be posed • Procedural Abstraction • An example of a procedural abstraction would be the word open for a door • Data abstraction • A data abstraction is a named collection of data that describes a data object • In the context of the procedural abstraction open, we can define a data abstraction called door • data object, the data abstraction for door (e.g., door type, swing direction, opening mechanism, weight, dimensions) Prepared by Dr.T.Thendral 15.07.23
  • 25. • Control abstraction is the third form of abstraction used in software design • control abstraction implies a program control mechanism without specifying internal details Prepared by Dr.T.Thendral 15.07.23
  • 26. Refinement • Stepwise refinement is a top-down design strategy originally proposed by Niklaus Wirth • In each step (of the refinement), one or several instructions of the given program are decomposed into more detailed instructions • Refinement is actually a process of elaboration • Abstraction enables a designer to specify procedure and data and yet suppress low-level details • Refinement helps the designer to reveal low-level details as design progresses Prepared by Dr.T.Thendral 15.07.23
  • 27. • Every refinement step implies some design decisions. • It is important that . . . • the programmer be aware of the underlying criteria (for design decisions) and of the existence of alternative solutions . . . Prepared by Dr.T.Thendral 15.07.23
  • 28. Modularity • software is divided into separately named and addressable components, often called modules, that are integrated to satisfy problem requirements. Prepared by Dr.T.Thendral 15.07.23
  • 30. • Modular decomposability - reduce the complexity of the overall problem, thereby achieving an effective modular solution • Modular composability-If a design method enables existing (reusable) design components to be assembled into a new system • Modular understandability-If a module can be understood it will be easier to build and easier to change • Modular continuity-If small changes to the system requirements result in changes to individual modules • Modular protection-If an aberrant condition occurs within a module and its effects are constrained within that module side effects will be minimized. Prepared by Dr.T.Thendral 15.07.23
  • 31. Objective • Software Architecture • What Is Architecture? • Why Is Architecture Important? Prepared by Dr.T.Thendral 15.07.23
  • 32. Software Architecture • Software architecture the overall structure of the software • The ways in which that structure provides conceptual integrity for a system • First program was divided into modules, software systems have had architectures, and programmer • Effective software architecture and its explicit representation and design have become dominant themes in software engineering Prepared by Dr.T.Thendral 15.07.23
  • 33. What Is Architecture? • The architecture of a building, many different attributes come to mind • EXAMPLE: • It is the manner in which the various components of the building are integrated to form a cohesive whole • It is the beautiful feel of the structure—the visual impact of the building—and the way textures, colors, and materials are combined to create the external facade and the internal “living environment Prepared by Dr.T.Thendral 15.07.23
  • 34. • The architecture is not the operational software. • It is a representation that enables a software engineer to • (1) analyze the effectiveness of the design in meeting its stated requirements • (2) consider architectural alternatives at a stage when making design changes is still relatively easy, • (3) reducing the risks associated with the construction of the software Prepared by Dr.T.Thendral 15.07.23
  • 35. Why Is Architecture Important? • Three key reasons that software architecture is important: • Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system • The architecture highlights early design decisions - impact on all software engineering work that follows - the ultimate success of the system as an operational entity • Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together” Prepared by Dr.T.Thendral 15.07.23
  • 36. Summary of Unit II • Software design and Software engineering • The Design process • Design principles • Design concepts • Effective modular design • Software Architecture Prepared by Dr.T.Thendral 15.07.23