Download presentation
1
Ch 1: The Scope of Software Engineering
CSCI 4320
2
What is “Software Engineering”?
A discipline whose aim is the production of software that meets the client’s needs fault-free delivered on time delivered within budget easy to modify
3
Why the need for Software Engineering?
Software Crisis: Unacceptable low quality of software, exceeds deadline and budget. *Completed late, over budget, and/or with features missing The outcomes of 280,000 development projects completed in 2000
4
Horror Stories Patients died as a consequence of severe overdoses of radiation. US Treasury Department mailed incorrectly printed Social Security Checks. Interest miscalculated on student loans resulting in higher monthly payments. Mars Climate Orbiter spacecraft crashes into the surface of Mars because of measurement conversion error. Consequences of software failures range from inconvenience to death!
5
Ideal SE Life Cycle Theoretical description of the steps that should be performed when building a software product Requirements Analysis (specification) Draw up the Software Project Management Plan Design Architectural and Detailed Design Implementation Coding, Testing, Integration, Accepted by Clients Post-delivery maintenance Corrective, perfective (i.e. faster), adaptive (i.e. new hardware) Retirement
6
Classical vs. Modern Views of Maintenance
Development-then-Maintenance model Modern: Maintenance is performed at any time Projects take a long time and clients requirements change during process No longer from scratch - Reuse of existing products is widespread
7
Post-Delivery Maintenance
The real-time world is constantly changing Bad products are thrown away. Good products are repaired and enhanced SE Goal: Reduce post-delivery maintenance cost! Average cost of percentages of development and post-delivery maintenance between 1992 and 1998.
8
Find Faults Early! The cost of correcting a fault increase steeply from requirements to post-delivery maintenance Involves: update documents, edit code, testing, integration … 60-70% of all faults detected are requirements, analysis or design SE Goal: Better requirements, specifications and designs
9
Importance of Continual Planning, Testing, Documentation
After customer has signed off on the specifications, continue to monitor and adjust plan. Software must be fault-free as possible at all times. At all times, documentation must be complete, correct and up-to-date. personnel overturn incomplete implementation inaccurate testing impossible to maintain
10
Why use Object-Oriented Paradigm
Classical Structured Paradigm Focus on functions of system Object-Oriented Focus on objects Implementation details are local to the object Regression fault (inadvertent fault produced by seeming unrelated change) is greatly reduced. Encapsulation: well-designed independent units Potential Reuse of objects reduces time and cost
11
Code of Ethics Ethics – moral standards that help guide your behavior, actions and choices The golden rule: Do unto others as you would have them do unto you The slippery-slope rules: Be careful starting down a path because one you start you may not be able to stop Professional codes of conduct (ACM, IEEE) Contribute to society and human well being Avoid harm to others Be honest and trustworthy Honor property rights including copyrights and patents Give proper credit for intellectual property Access computing resources only when authorized Respect privacy of others.
12
Questions When is it better to find faults? (requirements, post-delivery maintenance) You are in charge of computerizing the extraction process in a silver refinery. The cost of development has been estimated to be $370,000. Approximately how much additional cost will be needed for post-delivery maintenance?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.