Software Engineering Design Process
Total Page:16
File Type:pdf, Size:1020Kb
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.