Upload
little-bunny-foo-foo
View
213
Download
0
Embed Size (px)
DESCRIPTION
Introduction to software design presentation
Citation preview
SOFE 3650 – Software Design and Architectures
A Course in the study of Middle and Detail Software Design.Second course of the Software Design Courses SOFE 2720 – SOFTWARE REQ. SPEC.& ANALYSIS SOFE 3650 – SOFTWARE DESIGN and Architectures
Introduction to Software Engineering Design: Processes, Principles and Patterns with UML2 Author(s): Christopher Fox:• Chapters 11-19
Some Famous Software Engineering Disasters
• Medical Machine Kills (1985)– Canada’s Therac-25 radiation therapy machine malfunctioned
and delivered lethal radiation doses to patients.– Because of a subtle bug called a race condition, a technician
could accidentally configure Therac-25 so the electron beam would fire in high-power mode without the proper patient shielding.
– Three people dead, three people critically injured• One can find many of these examples in the Internet
and it comes as no surprise given that most of our systems are computer controlled
Change of Focus
* From Software Modeling and the Future of Engineering, J. Bezivin, ICMT 2014
Transition Steps towards Modeling
• Structured Programming -> Object Technology -> Model Engineering
• There have been many modeling languages but currently the UML is the accepted standard.– The trend is to move towards more Domain
Specific modeling languages.
Key MDE Features
* From Software Modeling and the Future of Engineering, J. Bezivin, ICMT 2014
Key MDE Features
* From Software Modeling and the Future of Engineering, J. Bezivin, ICMT 2014
Motivation for Software Model Driven Engineering
• No engineering field is an island by itself• MDE helps SE to share knowledge in a formal
manner.• MDE helps software designers to validate
requirements and develop a software system at a higher level of abstraction than the coding layer.– In particular for embedded systems it is crucial to
validate that the software is behaving properly.• This course is primarily a course on Software Model
Driven Engineering.
Review - The SRS Document
• A significant deliverable from SOFE 2720 is the Software Requirements Specifications document.
• Take a look at the SRS document for Aqualush – What are the key
sections of the SRS?
Generic Software Product DesignProject Mission Statement : ProblemSRS : Solution
Project Mission Statement
SRS
[adequate]
[else]
[complete]
[else]
Analyze Product Design Problem
Elicit/Analyze Detailed Needs
Generate/Improve Candidate Requirements
Evaluate Candidate Requirements
Select Requirements
Finalize Requirements
Analysis
Resolution
The SAD Document
• Another significant deliverable from SOFE 2720 is the Software Architecture Design document.
• Take a look at the SAD document for Aqualush – What is the key
objective of the SAD?– What are the key
items?
Architectural Design ProcessSRS : ProblemSAD : Solution
SRS
[adequate architecture]
[else]
Analyze SRS
Generate/ImproveCandidate Architectures
Evaluate CandidateArchitectures
Select Architecture
Finalize Architecture SAD
• Moving on from the SAD to a Detailed Design Document.– We start with Mid-
level design and move to Detail design through the aid of Software Patterns.
• Let’s look at the Aqualush detail design document as an appetizer.
Generic Software Engineering DesignSRS : ProblemDesign Document : Solution
Analysis
ArchitecturalDesign
DesignDocument
SRS
[adequate architecture]
[else]
[adequate detailed design]
[adequate architecture]
Analyze SRS
Generate/ImproveCandidate Architectures
Evaluate CandidateArchitectures
Select Architecture
Finalize Architecture
Generate/Improve DetailedDesign Alternatives
Evaluate DetailedDesign Alternatives
[else]
Select DetailedDesign
Finalize Design
[else]
DetailedDesign
Note that SAD is missing
Today’s Lessons
• Software Engineering Design will rely more on Model Driven Engineering (MDE) in order to support concise documentation of the software.
• Modeling can reduce expenses in the process of software design by supporting the validation and testing of the software at a higher level of abstraction.
• Model Engineering is not only a SE field but can transcend to Systems Engineering across multi0disciplinary projects.