<<

Process

DESIGN DESIGN DESIGN. Today’s Lecture 1. Intro to Software Engineering 2. Inexact quantities 3. Error propagation 4. Floating-point numbers 5. Design process 6. Teamwork 7. planning 8. Decision making 9. Professional Engineering 10. 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/ • 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 • • Concurrent engineering • • 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.

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 Design Testing

Coding

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

Requirements/Specification Definition Design Refactor Design Testing Testing

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 , 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 Design Design Refactor Testing Testing

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