SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Software Design and Architecture
Introduction
Objective
 To be introduced to principles of good design, and techniques for the
evaluation of software design quality.
 To cover the principal architectural issues associated with the design
and construction of software systems including architectural design
and documentation, component models and technologies, and
frameworks.
 To introduce the students to a number of design patterns and their
applications.
Course Contents
 The course is divided into two major modules
 The first module covers the introduction to software design and
provides details of software architecture and architectural
styles.
 The second module covers the detailed design phase with
introduction to Object Oriented Design and various design
patterns.
Topics
1 Introduction Software design and architecture
2 Principles of good software design.
Correctness and Robustness
Flexibility, reusability and efficiency
3 Introduction to software architecture
4 Software architectural design
Software architectural attributes
Attribute types
Trade-off of attributes and choices
5 Software Architectural Styles
Data flow architctures
Layered
Event-based
Data-centered
MVC
Multi-tier distributed
Service Oriented
Topics
6 ANALYSIS PHASE (OBJECT ORIENTED DESIGN)
Functional Modeling
Activity Diagrams
Use case diagrams
7 ANALYSIS PHASE (OBJECT ORIENTED DESIGN)
Structural Modeling
Classes, Attributes, and Operations, Relationships
CRC Cards
Class Diagrams
8 ANALYSIS PHASE (OBJECT ORIENTED DESIGN)
Behavioural Modeling
Objects, operations, and messages
Sequence Diagrams
Behavioural State Machines – States, Events, Transitions,
Actions, and Activities
9 DESIGN PHASE (OBJECT ORIENTED DESIGN)
Evolving the analysis models into design models
Topics
10 Introduction to Components and Component Oriented Design
11 Pattern oriented Design
Creational patterns
Structural patterns
Behavioral pattern
Course Pre - requisites
 Software Engineering I
 Software Requirements Engineering
Books to follow
 Software Architecture And Design Illuminated By Kai
Qian, Xiang Fu, Lixin Tao, Chong-wei Xu, Jones And Bartlett
Publishers.
 Object-Oriented Systems Analysis and Design using UML, by
Simon Bennett, McRobb & Farmer McGraw-Hill.
 Applying UML and Patterns: An Introduction to Object-
Oriented Analysis and Design and Iterative Development, By
Craig Larman
Motivation
 A staircase that leads right
into a wall!!!
 A door that would drop you 10 feet down!
 A difficult way to use
ATM machine
 What do you think is wrong in these real life scenarios?
 The requirements are correct!
 A staircase next to the outer wall
 A door on the first floor
 An ATM outside the bank branch
 The bridge
 The design is flawed!
 The execution based on the design results in disaster.
 For a useful software, it has to be ‘engineered’; which involves
giving specific attention to every phase of software
development.
Problems in software development
Common issues
 The final software does not fulfill the needs of the customer
 Hard to extend and improve: if you want to add a functionality later
its mission impossible
 Bad documentation
 Bad quality: frequent errors, hard to use, ...
 More time and costs than expected
Ariane 5 Flight 501
 Cause: design errors in the software
 http://www.youtube.com/watch?v=kYUrqdUyEpI
Software Design
What is Design?
 Design is the first step in the development phase for any
engineered product or system.
 Design is about HOW the system will perform its
functions.
Software Design
A software design is a meaningful engineering
representation of some software product that is to be built.
“The process of applying various techniques and
principles for the purpose of defining a device,
a process or a system in sufficient detail to permit its physical realizatio
Software Design
 The literature on design methods began to appear in the 1950s and 60s.
 Since then, design methodology has become an independent discipline of scientific
study.
What are the essential characteristics of design?
 What processes are used by designers?
Is one process better than another, constituting ‘right’ and ‘wrong’ ways to design?
Why are some processes favorable over others?
Do different processes lead to different qualities of results?
22
Software Design
As one of the most complex man-made artifacts, computer software is
very difficult to design.
There are many factors that affect designs and many stakeholders,
 i.e. people who participate in the design process, play various
different roles in the design processes and influence the design of
software.
23
Software Design - Simplified
Requirements specification was about the WHAT the system will do
Design is about the HOW the system will perform its functions
 provides the overall decomposition of the system
 takes target technology into account (e.g., kind of middleware, database design, etc.)
Why Design is important?
Without a proper 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,
perhaps when critical deadlines are approaching and much capital has already
been invested into the product.
Major Design Challenges
Design team should not do too much
Detailed design should not become code
Design team should not do too little
It is essential for the design team to produce a complete detailed
design
Software Development Activities
 Requirements Elicitation
 Requirements Analysis (e.g., Structured Analysis, OO Analysis)
– analyzing requirements and working towards a conceptual model without taking
the target implementation technology into account
– useful if the conceptual gap between requirements and implementation is
large
 part of requirements engineering (but may produce more than what is going to be
part of the requirement spec)
 Design
 coming up with solution models taking the target implementation technology into
account
 Implementation
 Testing
Software Design in SDLC
 In SDLC (Software Development Life Cycle), Design phase is one of the most
important phases.
 In the software engineering context, design focuses on four major areas of concern:
data, architecture, interfaces and components.
Design Process Activities
Architectural design
 Modules, inter-relationships etc
Abstract specification
 Services of each sub-system, constraints etc
Interface design
 Interface to other sub-system or outside environment
Component design
 Services allocated to components and their interfaces designed
Data structure design
Algorithm design
The Software Design Process
Ar
chitectur
al
design
Abstr
act
specifica
tion
Interface
design
Component
design
Da
ta
structur
e
design
Algorithm
design
Sy stem
architectur
e
Softw
are
specifica
tion
Interface
specifica
tion
Component
specifica
tion
Da
ta
structur
e
specifica
tion
Algorithm
specifica
tion
Requir
ements
specifica
tion
Design acti
vities
Design pr
oducts
Levels of Software Design
 Architectural design (high-level design)
 architecture - the overall structure, main modules and their
connections
 addresses the main non-functional requirements (e.g., reliability,
performance)
 Detailed design (low-level design)
 the inner structure of the main modules
 detailed enough to be implemented in the programming language
Design vs. Architecture
 Architecture is concerned with the selection of architectural elements,
their interaction, and the constraints on those elements and their
interactions
 Design is concerned with the modularization and detailed interfaces of
the design elements, their algorithms and procedures, and the data
types needed to support the architecture and to satisfy the
requirements.
 Architecture…is specifically not about…details of implementations (e.g.,
algorithms and data structures.)

Weitere ähnliche Inhalte

Ähnlich wie SDA 01.pptx

SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SEAbhishekTripathi709328
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.orgnazeer pasha
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxHaifaMohd3
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineeringinfinitetechnology20
 
香港六合彩
香港六合彩香港六合彩
香港六合彩pchgmf
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideSharehcslenk
 

Ähnlich wie SDA 01.pptx (20)

Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Unit1
Unit1Unit1
Unit1
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.org
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 

Kürzlich hochgeladen

Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 

Kürzlich hochgeladen (20)

Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 

SDA 01.pptx

  • 1. Software Design and Architecture
  • 3. Objective  To be introduced to principles of good design, and techniques for the evaluation of software design quality.  To cover the principal architectural issues associated with the design and construction of software systems including architectural design and documentation, component models and technologies, and frameworks.  To introduce the students to a number of design patterns and their applications.
  • 4. Course Contents  The course is divided into two major modules  The first module covers the introduction to software design and provides details of software architecture and architectural styles.  The second module covers the detailed design phase with introduction to Object Oriented Design and various design patterns.
  • 5. Topics 1 Introduction Software design and architecture 2 Principles of good software design. Correctness and Robustness Flexibility, reusability and efficiency 3 Introduction to software architecture 4 Software architectural design Software architectural attributes Attribute types Trade-off of attributes and choices 5 Software Architectural Styles Data flow architctures Layered Event-based Data-centered MVC Multi-tier distributed Service Oriented
  • 6. Topics 6 ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling Activity Diagrams Use case diagrams 7 ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Structural Modeling Classes, Attributes, and Operations, Relationships CRC Cards Class Diagrams 8 ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Behavioural Modeling Objects, operations, and messages Sequence Diagrams Behavioural State Machines – States, Events, Transitions, Actions, and Activities 9 DESIGN PHASE (OBJECT ORIENTED DESIGN) Evolving the analysis models into design models
  • 7. Topics 10 Introduction to Components and Component Oriented Design 11 Pattern oriented Design Creational patterns Structural patterns Behavioral pattern
  • 8. Course Pre - requisites  Software Engineering I  Software Requirements Engineering
  • 9. Books to follow  Software Architecture And Design Illuminated By Kai Qian, Xiang Fu, Lixin Tao, Chong-wei Xu, Jones And Bartlett Publishers.  Object-Oriented Systems Analysis and Design using UML, by Simon Bennett, McRobb & Farmer McGraw-Hill.  Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and Iterative Development, By Craig Larman
  • 11.  A staircase that leads right into a wall!!!
  • 12.  A door that would drop you 10 feet down!
  • 13.  A difficult way to use ATM machine
  • 14.
  • 15.  What do you think is wrong in these real life scenarios?  The requirements are correct!  A staircase next to the outer wall  A door on the first floor  An ATM outside the bank branch  The bridge  The design is flawed!  The execution based on the design results in disaster.
  • 16.  For a useful software, it has to be ‘engineered’; which involves giving specific attention to every phase of software development.
  • 17. Problems in software development Common issues  The final software does not fulfill the needs of the customer  Hard to extend and improve: if you want to add a functionality later its mission impossible  Bad documentation  Bad quality: frequent errors, hard to use, ...  More time and costs than expected
  • 18. Ariane 5 Flight 501  Cause: design errors in the software  http://www.youtube.com/watch?v=kYUrqdUyEpI
  • 20. What is Design?  Design is the first step in the development phase for any engineered product or system.  Design is about HOW the system will perform its functions.
  • 21. Software Design A software design is a meaningful engineering representation of some software product that is to be built. “The process of applying various techniques and principles for the purpose of defining a device, a process or a system in sufficient detail to permit its physical realizatio
  • 22. Software Design  The literature on design methods began to appear in the 1950s and 60s.  Since then, design methodology has become an independent discipline of scientific study. What are the essential characteristics of design?  What processes are used by designers? Is one process better than another, constituting ‘right’ and ‘wrong’ ways to design? Why are some processes favorable over others? Do different processes lead to different qualities of results? 22
  • 23. Software Design As one of the most complex man-made artifacts, computer software is very difficult to design. There are many factors that affect designs and many stakeholders,  i.e. people who participate in the design process, play various different roles in the design processes and influence the design of software. 23
  • 24. Software Design - Simplified Requirements specification was about the WHAT the system will do Design is about the HOW the system will perform its functions  provides the overall decomposition of the system  takes target technology into account (e.g., kind of middleware, database design, etc.)
  • 25. Why Design is important? Without a proper 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, perhaps when critical deadlines are approaching and much capital has already been invested into the product.
  • 26. Major Design Challenges Design team should not do too much Detailed design should not become code Design team should not do too little It is essential for the design team to produce a complete detailed design
  • 27. Software Development Activities  Requirements Elicitation  Requirements Analysis (e.g., Structured Analysis, OO Analysis) – analyzing requirements and working towards a conceptual model without taking the target implementation technology into account – useful if the conceptual gap between requirements and implementation is large  part of requirements engineering (but may produce more than what is going to be part of the requirement spec)  Design  coming up with solution models taking the target implementation technology into account  Implementation  Testing
  • 28. Software Design in SDLC  In SDLC (Software Development Life Cycle), Design phase is one of the most important phases.  In the software engineering context, design focuses on four major areas of concern: data, architecture, interfaces and components.
  • 29. Design Process Activities Architectural design  Modules, inter-relationships etc Abstract specification  Services of each sub-system, constraints etc Interface design  Interface to other sub-system or outside environment Component design  Services allocated to components and their interfaces designed Data structure design Algorithm design
  • 30. The Software Design Process Ar chitectur al design Abstr act specifica tion Interface design Component design Da ta structur e design Algorithm design Sy stem architectur e Softw are specifica tion Interface specifica tion Component specifica tion Da ta structur e specifica tion Algorithm specifica tion Requir ements specifica tion Design acti vities Design pr oducts
  • 31. Levels of Software Design  Architectural design (high-level design)  architecture - the overall structure, main modules and their connections  addresses the main non-functional requirements (e.g., reliability, performance)  Detailed design (low-level design)  the inner structure of the main modules  detailed enough to be implemented in the programming language
  • 32.
  • 33. Design vs. Architecture  Architecture is concerned with the selection of architectural elements, their interaction, and the constraints on those elements and their interactions  Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.  Architecture…is specifically not about…details of implementations (e.g., algorithms and data structures.)

Hinweis der Redaktion

  1. Cluster was a constellation of four European Space Agency spacecraft which were launched on the maiden flight of the Ariane 5 rocket, Flight 501, and subsequently lost when that rocket failed to achieve orbit. The launch, which took place on Tuesday, 4 June 1996, ended in failure due to an error in the software design caused by assertions having been turned off, which in turn caused inadequate protection from integer overflow. This resulted in the rocket veering off its flight path 37 seconds after launch, beginning to disintegrate under high aerodynamic forces, and finally self-destructing by its automated flight termination system. The failure has become known as one of the most infamous and expensive software bugs in history.[1] The failure resulted in a loss of more than US$370 million