You are on page 1of 22

Software Engineering

Design Process

DESIGN
DESIGN DESIGN.
Todays Lecture
1. Intro to Software Engineering
2. Inexact quantities
3. Error propagation
4. Floating-point numbers
5. Design process
6. Teamwork
7. Project planning
8. Decision making
9. Professional Engineering
10. Software quality
11. Software safety
12. Intellectual property
Fall 2004 SE 101 Introduction to Software Engineering 2
Design Models and Processes
An engineering design is a model of the product or
structure to be engineered. The model is used to
Evaluate suitability of proposed product/system
Communicate proposed product to others

An engineering design process describes a set of


steps for constructing an engineering design.

Fall 2004 SE 101 Introduction to Software Engineering 3


Agenda
SE process vs. Engineering design process

Software Engineering processes


Waterfall model
Concurrent engineering
Spiral model
Agile methods

Fall 2004 SE 101 Introduction to Software Engineering 4


Engineering Design Process
1. Recognition of Need

2. Definition of the
Design Problem

3. Design Criteria and


Constraints

4. The Design Loop


Synthesis

Analysis

Decision-Making

5. Optimization

6. Evaluation

7. Communication
(Drawings, reports)

Andrews, Aplevich, Fraswer, Ratz, Introduction to Professional Engineering


in Canada, Pearson, 2002.
Fall 2004 SE 101 Introduction to Software Engineering 5
Engineering Development Process
1. Recognition of Need

2. Definition of the
Design Problem

3. Design Criteria and


Constraints

4. The Design Loop


Synthesis 8. Manufacturing

Analysis
9. Quality Control
Decision-Making

10. Field/customer service


5. Optimization

6. Evaluation

7. Communication
(Drawings, reports)

Fall 2004 SE 101 Introduction to Software Engineering 6


1. Waterfall Model
1. Requirements

2. Specification

3. Architectural Design

4. Detailed Design

5. Implementation

6. Testing

7. Maintenance

Fall 2004 SE 101 Introduction to Software Engineering 7


Waterfall Model
1. Requirements Understand the problem

2. Specification Characterize acceptable solution


Decompose solution
3. Architectural Design into subsystems

4. Detailed Design Design subsystems

Make code-level decisions 5. Implementation

Test that implementation 6. Testing


is acceptable
7. Maintenance
Fix bugs, add features

Fall 2004 SE 101 Introduction to Software Engineering 8


Waterfall Model
1. Requirements

2. Specification

3. Architectural Design

4. Detailed Design

5. Implementation

6. Testing

7. Maintenance

Fall 2004 SE 101 Introduction to Software Engineering 9


Eng. Process vs. SE Process
1. Recognition of Need

2. Definition of the
Design Problem
1. Requirements

3. Design Criteria and


Constraints 2. Specification
4. The Design Loop
Synthesis
3. Architectural Design
Analysis

Decision-Making
?
4. Detailed Design
5. Optimization

6. Evaluation ? 5. Implementation

7. Communication
(Drawings, reports) 6. Testing

8. Manufacturing
7. Maintenance
9. Quality Control

10. Field/customer service

Fall 2004 SE 101 Introduction to Software Engineering 10


2. Concurrent Engineering

Requirements
Specification
Design
Implementation
Testing

time

Fall 2004 SE 101 Introduction to Software Engineering 11


3. Spiral Model
Requirements/Specification

Testing

Design
Coding
Fall 2004 SE 101 Introduction to Software Engineering 12
4. Agile Methods
3. Spiral Model 4. Agile methods
(e.g., Extreme Programming)

Requirements/Specification Test Case Definition

Design
Refactor
Testing

Testing
Design

Coding Pair Programming


Fall 2004 SE 101 Introduction to Software Engineering 13
4. Agile Methods (Extreme Programming)
Test Case Definition

Design
Refactor
Testing

Pair Programming
Fall 2004 SE 101 Introduction to Software Engineering 14
Brief Comparisons
Attributes Agile Methods Plan-driven Methods
Primary Objective

Project Size

Developers

Project Requirements

Product Architecture

Boehm, Get Ready for Agile Methods, with Care, IEEE Computer, January 2002.

Fall 2004 SE 101 Introduction to Software Engineering 15


Brief Comparisons
Attributes Agile Methods Plan-driven Methods
Primary Objective Rapid development High quality

Project Size

Developers

Project Requirements

Product Architecture

Boehm, Get Ready for Agile Methods, with Care, IEEE Computer, January 2002.

Fall 2004 SE 101 Introduction to Software Engineering 16


Brief Comparisons
Attributes Agile Methods Plan-driven Methods
Primary Objective Rapid development High quality

Project Size Smaller teams and Larger teams and products


products
Developers

Project Requirements

Product Architecture

Boehm, Get Ready for Agile Methods, with Care, IEEE Computer, January 2002.

Fall 2004 SE 101 Introduction to Software Engineering 17


Brief Comparisons
Attributes Agile Methods Plan-driven Methods
Primary Objective Rapid development High quality

Project Size Smaller teams and Larger teams and products


products
Developers Agile, knowledgeable, Plan-oriented, adequately
talented, collocated, skilled, have access to
collaborative external knowledge
Project Requirements

Product Architecture

Boehm, Get Ready for Agile Methods, with Care, IEEE Computer, January 2002.

Fall 2004 SE 101 Introduction to Software Engineering 18


Brief Comparisons
Attributes Agile Methods Plan-driven Methods
Primary Objective Rapid development High quality

Project Size Smaller teams and Larger teams and products


products
Developers Agile, knowledgeable, Plan-oriented, adequately
talented, collocated, skilled, have access to
collaborative external knowledge
Project Requirements Emergent, rapidly changing Knowable early, largely
stable
Product Architecture

Boehm, Get Ready for Agile Methods, with Care, IEEE Computer, January 2002.

Fall 2004 SE 101 Introduction to Software Engineering 19


Brief Comparisons
Attributes Agile Methods Plan-driven Methods
Primary Objective Rapid development High quality

Project Size Smaller teams and Larger teams and products


products
Developers Agile, knowledgeable, Plan-oriented, adequately
talented, collocated, skilled, have access to
collaborative external knowledge
Project Requirements Emergent, rapidly changing Knowable early, largely
stable
Product Architecture Designed for current Designed for current and
requirements foreseeable requirements

Boehm, Get Ready for Agile Methods, with Care, IEEE Computer, January 2002.

Fall 2004 SE 101 Introduction to Software Engineering 20


Summary
1. Waterfall Model 2: Concurrent Engineering
1. Requirements
Requirements
2. Specification Specification
Design
3. Architectural Design Implementation
Testing
4. Detailed Design

5. Implementation time
6. Testing

7. Maintenance

3: Spiral Model 4: Agile Methods


Requirements/Specification Test Case Definition
Testing

Design

Testing

Design
Refactor
Coding Pair Programming

Fall 2004 SE 101 Introduction to Software Engineering 21


Announcements
(Optional) draft design report due Thursday 4:30p.m.

No web review next week.

Fall 2004 SE 101 Introduction to Software Engineering 22

You might also like