11
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

introToSoftwareDesignAndArchitetures

Embed Size (px)

DESCRIPTION

Introduction to software design presentation

Citation preview

Page 1: introToSoftwareDesignAndArchitetures

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

Page 2: introToSoftwareDesignAndArchitetures

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

Page 3: introToSoftwareDesignAndArchitetures

Change of Focus

* From Software Modeling and the Future of Engineering, J. Bezivin, ICMT 2014

Page 4: introToSoftwareDesignAndArchitetures

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.

Page 5: introToSoftwareDesignAndArchitetures

Key MDE Features

* From Software Modeling and the Future of Engineering, J. Bezivin, ICMT 2014

Page 6: introToSoftwareDesignAndArchitetures

Key MDE Features

* From Software Modeling and the Future of Engineering, J. Bezivin, ICMT 2014

Page 7: introToSoftwareDesignAndArchitetures

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.

Page 8: introToSoftwareDesignAndArchitetures

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

Page 9: introToSoftwareDesignAndArchitetures

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

Page 10: introToSoftwareDesignAndArchitetures

• 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

Page 11: introToSoftwareDesignAndArchitetures

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.