Download presentation
Presentation is loading. Please wait.
1
CS 1120: Computer Science II Software Life Cycle
Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by Prof. L. Lilien) Last updated on 1/10/10
2
Software engineering = production of quality software External quality
Software Quality Software engineering = production of quality software External quality May be detected by its users Internal quality Perceptible only to computer professionals who have access to the actual code What matters is the external quality But it can only be achieved through internal quality
3
External Quality Criteria
Correctness Perform the exact tasks as specified Robustness Ability to react appropriately to abnormal conditions Extendibility Ease of adapting program to changes of specification Reusability Ability of software components to serve for construction of many different applications
4
External Quality Criteria – Cont.
Other Quality Criteria Security, Compatibility, Portability, Ease of Use, Efficiency, Timeliness (of delivery), … Some Tradeoffs Security vs. Ease of Use Efficiency vs. Portability Timeliness vs. Extendibility
5
Software Life Cycle – A Model
6
Software Life Cycle Phase 1: Specification
Answers the question: “What do we build?” Define clearly all aspects of the problem What is input (valid/invalid) data? What assumptions are possible? Are there special cases? What future enhancements are likely?
7
Software Life Cycle Phase 2: Design
Divide into manageable parts – modules Classes & methods are (some of) the modules in C# For each module specify: purpose assumptions input output Develop algorithms for each module Look for existing software components Reuse them Do not reinvent the wheel
8
Software Life Cycle Phase 3: Risk Analysis
Attempts to answer “What can go wrong, and how bad can it be?” Predict and manage what risks you can Consider risks to: timetable, cost, human health … Risks can greatly influence the direction of a project E.g. reduce software portability
9
Software Life Cycle Phase 4: Verification
Answers the question: “Are the algorithms correct?” Some algorithms can be proven correct By using: assertion: condition at a certain point invariant: condition that is always true
10
Software Life Cycle Phase 5: Coding
Translate the algorithms into code In a particular programming language Coding is a minor phase in the software life cycle Relatively easy Developing algorithm (to be coded) is typically much more challenging
11
Software Life Cycle Phase 6: Testing
Answers the question: “Did we build it correctly?” Try to make the software fail-safe (or fault-tolerant) Develop as many test cases as possible Typically, as time allows Testing is both a science and an art
12
Software Life Cycle Phase 7: Refining a Solution
Add bells and whistles Retest after any changes are made
13
Software Life Cycle Phase 8: Production
Distribute software Install it
14
Software Life Cycle Phase 9: Maintenance
Performed as long as software in use Activities during maintenance: Fix previously undiscovered bugs Add new features Enhance old features Generally the most costly phase 80% of total cost by some estimates
15
Software Life Cycle During Phases 1-9: Documentation
Performed extensively in every phase Hence “Documentation” is the axis of this “wheel model’ Different people working on each phase of the software life cycle For all but very small projects Novice programmers usually undervalue documentation
16
Continuing Effort Next generation software being developed while the previous generation still in use So Maintenance for Generation N overlapped by development for Generation N+1 Example: Maintenance for Windows XP overlapped by development for Windows Vista Maintenance for Windows XP and Windows Vista overlapped by development for Windows 7
17
The End
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.