22
Software Engineering Design Process DESIGN DESIGN DESIGN.

Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Embed Size (px)

Citation preview

Page 1: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Software Engineering Design Process

DESIGNDESIGN DESIGN.

Page 2: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 2

Today’s Lecture1. Intro to Software Engineering2. Inexact quantities3. Error propagation4. Floating-point numbers5. Design process6. Teamwork7. Project planning8. Decision making9. Professional Engineering10. Software quality11. Software safety12. Intellectual property

Page 3: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 3

Design Models and Processes

An engineering design is a model of the product orstructure 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 ofsteps for constructing an engineering design.

Page 4: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 4

Agenda

• SE process vs. Engineering design process

• Software Engineering processes

• Waterfall model

• Concurrent engineering

• Spiral model

• Agile methods

Page 5: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 5

Engineering Design Process1. Recognition of Need

2. Definition of the Design Problem

3. Design Criteria and Constraints

4. The Design Loop

Synthesis

Analysis

Decision-Making

5. Optimization

7. Communication (Drawings, reports)

6. Evaluation

Andrews, Aplevich, Fraswer, Ratz, Introduction to Professional Engineeringin Canada, Pearson, 2002.

Page 6: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 6

Engineering Development Process

8. Manufacturing

9. Quality Control

10. Field/customer service

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

7. Communication (Drawings, reports)

6. Evaluation

Page 7: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 7

1. Waterfall Model

1. Requirements

2. Specification

3. Architectural Design

4. Detailed Design

5. Implementation

6. Testing

7. Maintenance

Page 8: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

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

Understand the problem

Characterize acceptable solution

Decompose solution into subsystems

Design subsystems

Make code-level decisions

Test that implementation is acceptable

Fix bugs, add features

Page 9: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 9

Waterfall Model

1. Requirements

2. Specification

3. Architectural Design

4. Detailed Design

5. Implementation

6. Testing

7. Maintenance

Page 10: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 10

Eng. Process vs. SE Process

1. Requirements

2. Specification

3. Architectural Design

4. Detailed Design

5. Implementation

7. Maintenance

6. Testing

8. Manufacturing

9. Quality Control

10. Field/customer service

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

7. Communication (Drawings, reports)

6. Evaluation

?

?

Page 11: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 11

2. Concurrent Engineering

RequirementsSpecification

DesignImplementation

Testing

time

Page 12: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 12

3. Spiral ModelRequirements/Specification

Tes

ting D

esign

Coding

Page 13: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 13

4. Agile Methods

Test Case Definition

Tes

ting

Refacto

rD

esign

Pair Programming

Requirements/Specification

Tes

ting D

esign

Coding

3. Spiral Model 4. Agile methods (e.g., Extreme Programming)

Page 14: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 14

4. Agile Methods (Extreme Programming)

Test Case Definition

Tes

ting

Refacto

rD

esign

Pair Programming

Page 15: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 15

Brief Comparisons

Project Size

Primary Objective

Product Architecture

Project Requirements

Developers

Plan-driven MethodsAgile MethodsAttributes

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

Page 16: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 16

Brief Comparisons

Project Size

High qualityRapid developmentPrimary Objective

Product Architecture

Project Requirements

Developers

Plan-driven MethodsAgile MethodsAttributes

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

Page 17: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 17

Brief Comparisons

Larger teams and productsSmaller teams andproducts

Project Size

High qualityRapid developmentPrimary Objective

Product Architecture

Project Requirements

Developers

Plan-driven MethodsAgile MethodsAttributes

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

Page 18: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 18

Brief Comparisons

Larger teams and productsSmaller teams andproducts

Project Size

High qualityRapid developmentPrimary Objective

Product Architecture

Project Requirements

Plan-oriented, adequatelyskilled, have access toexternal knowledge

Agile, knowledgeable,talented, collocated,collaborative

Developers

Plan-driven MethodsAgile MethodsAttributes

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

Page 19: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 19

Brief Comparisons

Larger teams and productsSmaller teams andproducts

Project Size

High qualityRapid developmentPrimary Objective

Product Architecture

Knowable early, largelystable

Emergent, rapidly changingProject Requirements

Plan-oriented, adequatelyskilled, have access toexternal knowledge

Agile, knowledgeable,talented, collocated,collaborative

Developers

Plan-driven MethodsAgile MethodsAttributes

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

Page 20: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 20

Brief Comparisons

Larger teams and productsSmaller teams andproducts

Project Size

High qualityRapid developmentPrimary Objective

Designed for current andforeseeable requirements

Designed for currentrequirements

Product Architecture

Knowable early, largelystable

Emergent, rapidly changingProject Requirements

Plan-oriented, adequatelyskilled, have access toexternal knowledge

Agile, knowledgeable,talented, collocated,collaborative

Developers

Plan-driven MethodsAgile MethodsAttributes

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

Page 21: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 21

2: Concurrent Engineering

RequirementsSpecification

DesignImplementation

Testing

time

Summary

3: Spiral ModelRequirements/Specification

Test

ing

Desig

n

Coding

1. Waterfall Model

1. Requirements

2. Specification

3. Architectural Design

4. Detailed Design 5. Implementation

6. Testing

7. Maintenance

Test Case Definition

Test

ing R

efa

ctor

Desig

n

Pair Programming

4: Agile Methods

Page 22: Software Engineering Design Process - UWse101/Process.pdf · Fall 2004 SE 101 Introduction to Software Engineering 3 Design Models and Processes An engineering design is a model of

Fall 2004 SE 101 Introduction to Software Engineering 22

Announcements

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

• No web review next week.