Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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 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 2

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 3

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 4

5 Software Life Cycle – A Model 5

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? 6

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 7

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 8

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 9

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 10

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 11

12 Software Life Cycle Phase 7: Refining a Solution Add bells and whistles Retest after any changes are made 12

13 Software Life Cycle Phase 8: Production Distribute software Install it 13

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 14

15 Software Life Cycle During Phases 1-9: Documentation Performed extensively in every phase –Hence “Documentation” is the axis of this “wheel model’ 15 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 16 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 17 The End


Download ppt "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."

Similar presentations


Ads by Google