SlideShare a Scribd company logo
1 of 43
Introduction
Software Design
Principles
ITS 64204 - Software Design
THE GOALS OF THIS MODULE
OVERALL GOAL
The goal is to teach you how to design
software architecture in a systematic,
predictable, repeatable, and cost-effective
way.
To teach you using a practical model to develop a
good software architecture design, to reason about
the system, which comprise software elements,
relations among them, and properties of both.
Insert Your Creative Idea
Objectives
ā€¢ To explain what design is and how various types
of design deal with different aspects of a product
ā€¢ To present design as problem solving and outline
the roles of abstraction and modeling in design
ā€¢ To place design in the software life cycle
ā€¢ To survey software engineering design methods
ā€¢ To focus on Agile Framework
INTRODUCTION TO SOFTWARE DESIGN
TOPICS COVERED
1. Software products and software design
2. Abstraction and modeling
3. Varieties of design
4. Software design in the life cycle
5. Software engineering design method -
AGILE
TOPIC 1
SOFTWARE PRODUCTS AND SOFTWARE DESIGN
What Is Software
Design?
Software Design is also a process to plan or convert the software requirements
into a step that are needed to be carried out to develop a software system.
There are several principles that are used to organize and arrange the structural
components of Software design. Software Designs in which these principles are
applied affect the content and the working process of the software from the
beginning.
7
Importance of Software Design
ā€¢ We live in a designed world.
ā€¢ Design is economically important and effects our quality of life.
ā€¢ The quality of software design has important consequences
that software designers should be aware of and take seriously.
Objective of Software Design
Correctness:
A good design should be correct i.e. it should correctly
implement all the functionalities of the system.
Efficiency:
A good software design should address the resources, time, and
cost optimization issues.
Understandability:
A good design should be easily understandable, for which it
should be modular and all the modules are arranged in layers.
Completeness:
The design should have all the components like data structures,
modules, and external interfaces, etc.
Maintainability:
A good software design should be easily amenable to change
whenever a change request is made from the customer side.
9
Software Products
A software product is an entity comprised of
one or more programs, data, and supporting
materials and services that satisfies client needs
and desires either as an independent artifact or
as essential ingredient in some other artifact.
10
Software Design Defined
Software design is the activity of
specifying the nature and composition of
software products that satisfy client needs
and desire, subject to constraints.
Software designers do what designers in other
disciplines do, except they do it for software
products.
11
Design as Problem Solving
ā€¢ An especially fruitful way to think about design is as problem solving.
ā€¢ Advantages
ļƒ¼ Suggests partitioning information between problem and solution
ļƒ¼ Emphasizes that there may be more than one good solution (design)
ļƒ¼ Suggests techniques such as changing the problem, trial and error,
brainstorming, etc.
Software Design Process
ā€¢ A Process is a set of related and (sequenced) tasks that
transforms a set of input to a set of output.
Inputs Outputs
Design
Process
requirements
specifications
design
specifications
sequence of tasks
Is this diagram very clear? What does the rectangle, arrow, or the circle mean?
------ What about the coloring and the lables?
Software Design Concepts
Different Levels of Software Design
1. Architectural Design:
The architecture of a system can be viewed as the overall structure of the system & the way
in which structure provides conceptual integrity of the system. The architectural design
identifies the software as a system with many components interacting with each other. At this
level, the designers get the idea of the proposed solution domain.
2. Preliminary or high-level design:
Here the problem is decomposed into a set of modules, the control relationship among
various modules identified, and also the interfaces among various modules are identified.
The outcome of this stage is called the program architecture. Design representation
techniques used in this stage are structure chart and UML.
3. Detailed design:
Once the high-level design is complete, a detailed design is undertaken. In detailed design,
each module is examined carefully to design the data structure and algorithms. The stage
outcome is documented in the form of a module specification document.
TOPIC 2
ABSTRACTION AND MODELLING
16
Abstraction
Abstraction is an important problem-solving
technique, especially in software design.
Abstraction is suppressing or ignoring
some properties of objects, events, or
situations in favor of others.
17
Importance of Abstraction
ā€¢ Problem simplification
ā€¢ Abstracting allows us to focus on the most important
aspects of a problem in (partially) solving it.
ā€¢ Structuring problem solving
ā€¢ Top-down strategy: Solve an abstract version of the problem,
then add details (refinement)
ā€¢ Bottom-up strategy: Solve parts of a problem and connect
them for a complete solution
18
Modeling
A model represents a target by having model parts
corresponding to target parts, with relationships between
model parts corresponding to relationships between target
parts.
Target Model
19
Modeling in Design
ā€¢ Modeling is used for the following purposes:
ā€¢ Problem understanding
ā€¢ Design creation
ā€¢ Design investigation
ā€¢ Documentation
ā€¢ Modeling work because models abstract details of the target.
ā€¢ Models can fail if important and relevant details are left out.
TOPIC 3
VARIETIES OF DESIGN
21
Static and Dynamic Models
A static design model represents aspects of programs that do
not change during program execution.
A dynamic model represents what happens during program
execution.
ā€¢ Static model examples include class and object
models.
ā€¢ Dynamic model examples of include state diagrams
and sequence diagrams.
22
Product vs. Engineering Design
ā€¢ Product designers are concerned with styling and aesthetics,
function and usability, manufacturability and manageability.
ā€¢ Industrial designers, (building) architects, interior designers,
graphic designers, etc.
ā€¢ Engineering designers are concerned with technical mechanisms
and workings.
ā€¢ Structural, mechanical, chemical, and electrical engineers
ā€¢ Design teams often include both product and engineering
designers.
23
Software Product Design
Requires skills in user interface and interaction
design, communications, industrial design, and
marketing
Software product design is the
activity of specifying software product
features, capabilities, and interfaces to
satisfy client needs and desires.
24
Software Engineering Design
Requires skills in programming, algorithms,
data structures, software design principles,
practices, processes, techniques, architectures,
and patterns
Software engineering design is
the activity of specifying programs
and sub-systems, and their
constituent parts and workings, to
meet software product specifications.
25
Waterfall Life Cycle Model
Requirements
Specification
Design
Implementation
Testing
Maintenance
Software Product Life Cycle
The waterfall model
captures the logical,
but not the temporal,
relationships
between software
development
activities.
26
Design Across the Life Cycle
Engineering Design
Product Redesign and
Engineering Redesign
Product Design
Requirements
Specification
Design
Implementation
Testing
Maintenance
Software Product Life Cycle
27
Design Problems and Solutions
Engineering
Design
Product
Design
Solution: SRS
Problem: Needs,
Desires, Constraints
Solution: Features
and Capabilities
Solution:
Interactions
Solution: Design
Document
Solution: High-
Level Design
Solution: Low-
Level Design
Solution: Code
Design Features
and Capabilities
Design Interactions
Create High-Level
Design
Create Low-Level
Design
Write Code
Software Design
28
Summary
ā€¢ Software design is important.
ā€¢ Software design is best thought of as problem solving.
ā€¢ Abstraction is a fundamental design technique.
ā€¢ Modeling (which relies on abstraction) is a basic design tool.
ā€¢ Software design comprises both product and engineering design.
ā€¢ Product design occurs mainly in the requirements specification phase;
engineering design mainly in the design and implementation phases.
ā€¢ OO analysis and design methods are now dominant.
TOPIC 4
SOFTWARE DESIGN IN THE LIFECYCLE
30
Software Design Method
A software design method/tool
is an orderly procedure for
generating a precise and complete
software design solution that meets
clients needs and constraints.
31
Design Method Components
ā€¢ Design Processā€”A collection of related tasks that transforms a set of
inputs into a set of outputs
ā€¢ Design Notationsā€”A symbolic representational system
ā€¢ Design Heuristicsā€”Rules providing guidance, but no guarantee, for
achieving some end
ā€¢ Design methods also use design principles stating characteristics of design
that make them better or worse.
32
Design Method Timeline
1971 Niklaus Wirth introduces stepwise refinement.
1974 Stevens, Myers, Constantine introduce structured design.
Late 1970s to early 1980s Structured analysis and design methods are
dominant.
Late 1980s Object-oriented analysis and design methods rise to
prominence.
1995 UML 0.8 is released.
2004 UML 2.0 is releasedā€¦
TOPIC 5
SOFTWARE ENGINEERING DESIGN METHOD
AGILE
What Is Agile?
Agile is an iterative and
responsive software
development methodology.
Features of Agile development
include high levels of
communication and
collaboration, fast and effective
responses to change, adaptive
planning, and continuous
improvement.
What Is Agile?
Agile is a project management
methodology that breaks down
larger projects into smaller,
manageable chunks known as
iterations. At the end of every
iteration (which typically takes
places over a consistent time
interval), something of value is
produced; which is placed into
the world to receive feedback
from stakeholders or users.
Differences
Copyright Ā© 2010 AgileInnovation
How Agile Team Looks Like
REMEMBER THE KEYWORDS
KEYWORDS ARE
SOFTWARE
DESIGN
DELIVER
VALUE
FIRST
AGILE
DESIGN
PRINCIPLES
ITERATIVE
EXAMPLES
MOBILE APP?
GAMES?
EXAMPLES
Additional Reading
What is Agile?
https://www.youtube.com/watch?v=GzzkpA
OxHXs
https://www.youtube.com/watch?v=5RocT
_OdQcA
END OF LECTURE
THANK YOU
Tutorial Session
Week 1
ITS 64204 - Software Design
Look and feel where Software Design is
Software design provides a design plan that describes the elements of a system, how they fit, and work together to fulfill the requirement
of the system.
The objectives of having a design plan are as follows:
ā€¢ To negotiate system requirements, and to set expectations with customers, marketing and management personnel.
ā€¢ Act as a blueprint during the development process.
ā€¢ Guide the implementation tasks, including detailed design, coding, integration, and testing.
ā€¢ It comes before the detailed design, coding, integration, and testing and after the domain analysis, requirements analysis, and risk
analysis.

More Related Content

What's hot

User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15koolkampus
Ā 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineeringdeep sharma
Ā 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
Ā 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
Ā 
Software architecture
Software architectureSoftware architecture
Software architecturenazn
Ā 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality AttributesHayim Makabee
Ā 
Software requirements
Software requirementsSoftware requirements
Software requirementsDr. Loganathan R
Ā 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
Ā 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
Ā 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
Ā 
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.pptDrTThendralCompSci
Ā 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
Ā 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
Ā 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
Ā 

What's hot (20)

User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
Ā 
Software design
Software designSoftware design
Software design
Ā 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineering
Ā 
Software design
Software designSoftware design
Software design
Ā 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Ā 
Incremental process model
Incremental  process  modelIncremental  process  model
Incremental process model
Ā 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
Ā 
Software architecture
Software architectureSoftware architecture
Software architecture
Ā 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Ā 
Unit 2
Unit 2Unit 2
Unit 2
Ā 
Software requirements
Software requirementsSoftware requirements
Software requirements
Ā 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
Ā 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
Ā 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
Ā 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
Ā 
Unit 8
Unit 8Unit 8
Unit 8
Ā 
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
Ā 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
Ā 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
Ā 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Ā 

Similar to Chapter 1 - Software Design - Introduction.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.pptxKarthigaiSelviS3
Ā 
B19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxB19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxDrPreethiD1
Ā 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
Ā 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
Ā 
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.PPTmalathijanapati1
Ā 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design conceptsJigyasaAgrawal7
Ā 
Chapter 6 design
Chapter 6 designChapter 6 design
Chapter 6 designnikshaikh786
Ā 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9kiruthikamurugesan2628
Ā 
Architecture Design
Architecture DesignArchitecture Design
Architecture DesignSaqib Raza
Ā 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
Ā 
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 techniquesnimmik4u
Ā 
Design concepts
Design conceptsDesign concepts
Design conceptsJoshuaU1
Ā 

Similar to Chapter 1 - Software Design - Introduction.pptx (20)

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
Ā 
B19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxB19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptx
Ā 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
Ā 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
Ā 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
Ā 
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 Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
Ā 
Chapter 6 design
Chapter 6 designChapter 6 design
Chapter 6 design
Ā 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
Ā 
Design concepts
Design conceptsDesign concepts
Design concepts
Ā 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
Ā 
Design final
Design finalDesign final
Design final
Ā 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
Ā 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
Ā 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
Ā 
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
Ā 
Chapter1
Chapter1Chapter1
Chapter1
Ā 
HCI Chapter_2.ppt
HCI Chapter_2.pptHCI Chapter_2.ppt
HCI Chapter_2.ppt
Ā 
HCI Chapter_2.pdf
HCI Chapter_2.pdfHCI Chapter_2.pdf
HCI Chapter_2.pdf
Ā 
Design concepts
Design conceptsDesign concepts
Design concepts
Ā 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
Ā 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
Ā 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
Ā 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
Ā 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
Ā 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
Ā 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
Ā 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
Ā 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
Ā 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
Ā 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
Ā 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
Ā 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
Ā 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
Ā 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
Ā 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
Ā 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
Ā 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ā 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Ā 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Ā 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Ā 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Ā 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
Ā 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Ā 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Ā 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
Ā 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Ā 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
Ā 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
Ā 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Ā 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Ā 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
Ā 
Hot Sexy call girls in Panjabi Bagh šŸ” 9953056974 šŸ” Delhi escort Service
Hot Sexy call girls in Panjabi Bagh šŸ” 9953056974 šŸ” Delhi escort ServiceHot Sexy call girls in Panjabi Bagh šŸ” 9953056974 šŸ” Delhi escort Service
Hot Sexy call girls in Panjabi Bagh šŸ” 9953056974 šŸ” Delhi escort Service
Ā 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Ā 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Ā 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Ā 

Chapter 1 - Software Design - Introduction.pptx

  • 2. THE GOALS OF THIS MODULE OVERALL GOAL The goal is to teach you how to design software architecture in a systematic, predictable, repeatable, and cost-effective way. To teach you using a practical model to develop a good software architecture design, to reason about the system, which comprise software elements, relations among them, and properties of both.
  • 3. Insert Your Creative Idea Objectives ā€¢ To explain what design is and how various types of design deal with different aspects of a product ā€¢ To present design as problem solving and outline the roles of abstraction and modeling in design ā€¢ To place design in the software life cycle ā€¢ To survey software engineering design methods ā€¢ To focus on Agile Framework
  • 4. INTRODUCTION TO SOFTWARE DESIGN TOPICS COVERED 1. Software products and software design 2. Abstraction and modeling 3. Varieties of design 4. Software design in the life cycle 5. Software engineering design method - AGILE
  • 5. TOPIC 1 SOFTWARE PRODUCTS AND SOFTWARE DESIGN
  • 6. What Is Software Design? Software Design is also a process to plan or convert the software requirements into a step that are needed to be carried out to develop a software system. There are several principles that are used to organize and arrange the structural components of Software design. Software Designs in which these principles are applied affect the content and the working process of the software from the beginning.
  • 7. 7 Importance of Software Design ā€¢ We live in a designed world. ā€¢ Design is economically important and effects our quality of life. ā€¢ The quality of software design has important consequences that software designers should be aware of and take seriously.
  • 8. Objective of Software Design Correctness: A good design should be correct i.e. it should correctly implement all the functionalities of the system. Efficiency: A good software design should address the resources, time, and cost optimization issues. Understandability: A good design should be easily understandable, for which it should be modular and all the modules are arranged in layers. Completeness: The design should have all the components like data structures, modules, and external interfaces, etc. Maintainability: A good software design should be easily amenable to change whenever a change request is made from the customer side.
  • 9. 9 Software Products A software product is an entity comprised of one or more programs, data, and supporting materials and services that satisfies client needs and desires either as an independent artifact or as essential ingredient in some other artifact.
  • 10. 10 Software Design Defined Software design is the activity of specifying the nature and composition of software products that satisfy client needs and desire, subject to constraints. Software designers do what designers in other disciplines do, except they do it for software products.
  • 11. 11 Design as Problem Solving ā€¢ An especially fruitful way to think about design is as problem solving. ā€¢ Advantages ļƒ¼ Suggests partitioning information between problem and solution ļƒ¼ Emphasizes that there may be more than one good solution (design) ļƒ¼ Suggests techniques such as changing the problem, trial and error, brainstorming, etc.
  • 12. Software Design Process ā€¢ A Process is a set of related and (sequenced) tasks that transforms a set of input to a set of output. Inputs Outputs Design Process requirements specifications design specifications sequence of tasks Is this diagram very clear? What does the rectangle, arrow, or the circle mean? ------ What about the coloring and the lables?
  • 14. Different Levels of Software Design 1. Architectural Design: The architecture of a system can be viewed as the overall structure of the system & the way in which structure provides conceptual integrity of the system. The architectural design identifies the software as a system with many components interacting with each other. At this level, the designers get the idea of the proposed solution domain. 2. Preliminary or high-level design: Here the problem is decomposed into a set of modules, the control relationship among various modules identified, and also the interfaces among various modules are identified. The outcome of this stage is called the program architecture. Design representation techniques used in this stage are structure chart and UML. 3. Detailed design: Once the high-level design is complete, a detailed design is undertaken. In detailed design, each module is examined carefully to design the data structure and algorithms. The stage outcome is documented in the form of a module specification document.
  • 16. 16 Abstraction Abstraction is an important problem-solving technique, especially in software design. Abstraction is suppressing or ignoring some properties of objects, events, or situations in favor of others.
  • 17. 17 Importance of Abstraction ā€¢ Problem simplification ā€¢ Abstracting allows us to focus on the most important aspects of a problem in (partially) solving it. ā€¢ Structuring problem solving ā€¢ Top-down strategy: Solve an abstract version of the problem, then add details (refinement) ā€¢ Bottom-up strategy: Solve parts of a problem and connect them for a complete solution
  • 18. 18 Modeling A model represents a target by having model parts corresponding to target parts, with relationships between model parts corresponding to relationships between target parts. Target Model
  • 19. 19 Modeling in Design ā€¢ Modeling is used for the following purposes: ā€¢ Problem understanding ā€¢ Design creation ā€¢ Design investigation ā€¢ Documentation ā€¢ Modeling work because models abstract details of the target. ā€¢ Models can fail if important and relevant details are left out.
  • 21. 21 Static and Dynamic Models A static design model represents aspects of programs that do not change during program execution. A dynamic model represents what happens during program execution. ā€¢ Static model examples include class and object models. ā€¢ Dynamic model examples of include state diagrams and sequence diagrams.
  • 22. 22 Product vs. Engineering Design ā€¢ Product designers are concerned with styling and aesthetics, function and usability, manufacturability and manageability. ā€¢ Industrial designers, (building) architects, interior designers, graphic designers, etc. ā€¢ Engineering designers are concerned with technical mechanisms and workings. ā€¢ Structural, mechanical, chemical, and electrical engineers ā€¢ Design teams often include both product and engineering designers.
  • 23. 23 Software Product Design Requires skills in user interface and interaction design, communications, industrial design, and marketing Software product design is the activity of specifying software product features, capabilities, and interfaces to satisfy client needs and desires.
  • 24. 24 Software Engineering Design Requires skills in programming, algorithms, data structures, software design principles, practices, processes, techniques, architectures, and patterns Software engineering design is the activity of specifying programs and sub-systems, and their constituent parts and workings, to meet software product specifications.
  • 25. 25 Waterfall Life Cycle Model Requirements Specification Design Implementation Testing Maintenance Software Product Life Cycle The waterfall model captures the logical, but not the temporal, relationships between software development activities.
  • 26. 26 Design Across the Life Cycle Engineering Design Product Redesign and Engineering Redesign Product Design Requirements Specification Design Implementation Testing Maintenance Software Product Life Cycle
  • 27. 27 Design Problems and Solutions Engineering Design Product Design Solution: SRS Problem: Needs, Desires, Constraints Solution: Features and Capabilities Solution: Interactions Solution: Design Document Solution: High- Level Design Solution: Low- Level Design Solution: Code Design Features and Capabilities Design Interactions Create High-Level Design Create Low-Level Design Write Code Software Design
  • 28. 28 Summary ā€¢ Software design is important. ā€¢ Software design is best thought of as problem solving. ā€¢ Abstraction is a fundamental design technique. ā€¢ Modeling (which relies on abstraction) is a basic design tool. ā€¢ Software design comprises both product and engineering design. ā€¢ Product design occurs mainly in the requirements specification phase; engineering design mainly in the design and implementation phases. ā€¢ OO analysis and design methods are now dominant.
  • 29. TOPIC 4 SOFTWARE DESIGN IN THE LIFECYCLE
  • 30. 30 Software Design Method A software design method/tool is an orderly procedure for generating a precise and complete software design solution that meets clients needs and constraints.
  • 31. 31 Design Method Components ā€¢ Design Processā€”A collection of related tasks that transforms a set of inputs into a set of outputs ā€¢ Design Notationsā€”A symbolic representational system ā€¢ Design Heuristicsā€”Rules providing guidance, but no guarantee, for achieving some end ā€¢ Design methods also use design principles stating characteristics of design that make them better or worse.
  • 32. 32 Design Method Timeline 1971 Niklaus Wirth introduces stepwise refinement. 1974 Stevens, Myers, Constantine introduce structured design. Late 1970s to early 1980s Structured analysis and design methods are dominant. Late 1980s Object-oriented analysis and design methods rise to prominence. 1995 UML 0.8 is released. 2004 UML 2.0 is releasedā€¦
  • 33. TOPIC 5 SOFTWARE ENGINEERING DESIGN METHOD AGILE
  • 34. What Is Agile? Agile is an iterative and responsive software development methodology. Features of Agile development include high levels of communication and collaboration, fast and effective responses to change, adaptive planning, and continuous improvement.
  • 35. What Is Agile? Agile is a project management methodology that breaks down larger projects into smaller, manageable chunks known as iterations. At the end of every iteration (which typically takes places over a consistent time interval), something of value is produced; which is placed into the world to receive feedback from stakeholders or users.
  • 37. How Agile Team Looks Like
  • 38. REMEMBER THE KEYWORDS KEYWORDS ARE SOFTWARE DESIGN DELIVER VALUE FIRST AGILE DESIGN PRINCIPLES ITERATIVE
  • 40. Additional Reading What is Agile? https://www.youtube.com/watch?v=GzzkpA OxHXs https://www.youtube.com/watch?v=5RocT _OdQcA
  • 42. Tutorial Session Week 1 ITS 64204 - Software Design
  • 43. Look and feel where Software Design is Software design provides a design plan that describes the elements of a system, how they fit, and work together to fulfill the requirement of the system. The objectives of having a design plan are as follows: ā€¢ To negotiate system requirements, and to set expectations with customers, marketing and management personnel. ā€¢ Act as a blueprint during the development process. ā€¢ Guide the implementation tasks, including detailed design, coding, integration, and testing. ā€¢ It comes before the detailed design, coding, integration, and testing and after the domain analysis, requirements analysis, and risk analysis.