Download presentation
Presentation is loading. Please wait.
Published byVincent Heath Modified over 8 years ago
1
© Chinese University, CSE Dept. Software Engineering / 1 - 1 Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________ Computer Science & Engineering Department The Chinese University of Hong Kong
2
© Chinese University, CSE Dept. Software Engineering / 1 - 2 What Is Software Engineering? Software Engineering: A “multi-person construction of multi-version software.” –A term invented in the late 1960s. –Not just programming. –Dealing with complex systems. –Standard techniques and tools are invented and applied in this field.
3
© Chinese University, CSE Dept. Software Engineering / 1 - 3 Why Software Engineering? 1.Growing software scale and cost –An order of magnitude growth in every 10 years. –Techniques applicable to small systems could not be scaled up. 2.Complexity of applications –The demand for software operations increases at a faster rate than software engineer’s productivity
4
© Chinese University, CSE Dept. Software Engineering / 1 - 4 Why Software Engineering? 3.Impact of software failure –Lack of discipline makes software easy to be misused. –Multiple copies of software make software failures spread fast.
5
© Chinese University, CSE Dept. Software Engineering / 1 - 5 Why Software Engineering? 4.Evolution of software –Software crisis was identified in 1960’s. –Software crisis is still software crisis today. –Code is easy to change, but software is hard to replace. 5.Requirements of software measurement and metrics –Estimate software ______. –Predict and meet software development ______. –Measure and demonstrate software ______.
6
© Chinese University, CSE Dept. Software Engineering / 1 - 6 The Software Life Cycle (The “Waterfall Model”) 1.Requirement Analysis and Specification –After a feasibility study of customer’s demand –Identify and document the exact requirements for the system –Involve customer, developer, and user –“______ the problem is” 2.Design –A software system is developed to meet the requirements –Architectural + detailed design –“______ to solve the problem”
7
© Chinese University, CSE Dept. Software Engineering / 1 - 7 The Software Life Cycle 3.Coding and Module Testing (Unit testing) –To produce the actual code for the customer –Ideas on modules (units) – divide and conquer –Work breakdown structure »Break the system down into __________ –Modules are tested individually”
8
© Chinese University, CSE Dept. Software Engineering / 1 - 8 The Software Life Cycle 4.Integration and System Testing –Modules are integrated and tested as a whole system 5.Delivery and Maintenance –Delivery to user for operation –Corrective, adaptive, perfective maintenance
9
© Chinese University, CSE Dept. Software Engineering / 1 - 9 The Waterfall Model of the Software Life Cycle Requirements analysis and specification Design and specification Coding and module testing Integration and system testing Delivery and maintenance verify Design review Design walkthrough Formal inspection Figure 1.1: The waterfall model of the software life cycle verify Code review Code walkthrough verify Testing results verify Operational environment e.g., NASA model
10
© Chinese University, CSE Dept. Software Engineering / 1 - 10 Typical Software Cost Distribution System TypePhase Costs (%) Requirements/designImplementationTesting Command and control Systems462034 Spaceborne systems342046 Operating systems331750 Scientific systems442630 Business systems4428 ______ Therefore, _________________ ___________________ However, good ______________ good _______________ The cost of s/w development activities
11
© Chinese University, CSE Dept. Software Engineering / 1 - 11 Relative Penalty of Error Correction Figure 1.2: Relative cost vs. phase
12
© Chinese University, CSE Dept. Software Engineering / 1 - 12 Possible Software Development Paths Figure 1.3: Many possible paths to develop software
13
© Chinese University, CSE Dept. Software Engineering / 1 - 13 Well-Engineered Software 1.The software should be maintainable 2.The software should be reliable 3.The software should be efficient 4.The software should offer an appropriate user interface 5.The software should be measurable for trade-off study
14
© Chinese University, CSE Dept. Software Engineering / 1 - 14 Typical Trade-Off Study Cost 1.0 (100%) Efficiency or Reliability “The law of ________________” Figure 1.4: Tradeoff between cost and reliability
15
© Chinese University, CSE Dept. Software Engineering / 1 - 15 Topic 1 Conclusion We defined what software engineering is We explained why software engineering is needed We described a fundamental software life cycle We depicted a well engineered software
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.