Software Engineering Design 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. 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 Design Testing
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 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 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 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