Unformatted text preview:

Today s Lecture Discuss Software Life Cycles Why do we need them What types exist Software Life Cycles Kenneth M Anderson Foundations of Software Engineering CSCI 5828 Spring Semester 2001 Guest Lecture Code and Fix hacking Waterfall Iterative Rapid Prototype Spiral Advantages and Disadvantages March 16 2001 Background Kenneth M Anderson 2001 2 Use of Process In Software Engineering Car Assembly An assembly line is a process for producing cars A significant amount of work goes into not just designing a car but into designing the process used to build that car Process is King We want our activities to be coordinated and planned e g engineered The reason A high quality process should increase our ability to create a high quality product Software Engineering The same principles can be applied to developing a software system March 16 2001 Kenneth M Anderson 2001 3 March 16 2001 Kenneth M Anderson 2001 4 Key Difference Software Life Cycle There is a key difference between software engineering and car assembly however In car assembly design time for the car is short the majority of the work lies in manufacturing A series of steps that organizes the development of a software product Duration can be from days to years Consists of In software engineering we face the reverse situation creating new copies of a software system is trivial it s the design that is hard Thus there will be significant differences in the processes used to develop software March 16 2001 Kenneth M Anderson 2001 5 March 16 2001 Standard Phases client asks for wrong product client is computer software illiterate specifications may be ambiguous inconsistent incomplete Validation 7 determine exactly what client wants and identify constraints develop a contract with client Specify the product s task explicitly Difficulties Phases promote manageability and provide organization Kenneth M Anderson 2001 6 Problem Definition Requirements Specification Requirements Analysis Specification Design Implementation and Integration Operation and Maintenance Change in Requirements Testing throughout March 16 2001 Kenneth M Anderson 2001 Requirements Analysis and Specification Phases of a Software Life Cycle people overall process intermediate products stages of the process extensive reviews to check that requirements satisfy client needs look for ambiguity consistency incompleteness check for feasibility testability develop system acceptance test plan March 16 2001 Kenneth M Anderson 2001 8 Implementation and Integration Design Requirements Specification Design develop architectural design system structure develop detailed design module specifications maintain record of design decisions implement modules and verify they meet their specifications combine modules according to architectural design decompose software into modules with module interfaces select algorithms and data structures Difficulties Difficulties Design Implementation miscommunication between module designers design may be inconsistent incomplete ambiguous Verification and Testing Verification extensive design reviews inspections to determine that design conforms to requirements check module interactions develop integration test plan March 16 2001 Kenneth M Anderson 2001 9 Operation and Maintenance code reviews to determine that implementation conforms to requirements and design develop unit module test plan focus on individual module functionality develop integration test plan focus on module interfaces develop system test plan focus on requirements and determine whether product as a whole functions correctly March 16 2001 10 Build First Version Operation Change Difficulties Modify until Client is satisfied design not extensible lack of up to date documentation personnel turnover Kenneth M Anderson 2001 Code and Fix Not a Life Cycle maintain software after and during user operation determine whether product as a whole still functions correctly module interaction errors order of integration has a critical influence on product quality Verification and Testing Operations Mode review to determine that change is made correctly and all documentation updated test to determine that change is correctly implemented test to determine that no inadvertent changes were made to compromise system functionality Retirement March 16 2001 Kenneth M Anderson 2001 11 March 16 2001 Kenneth M Anderson 2001 12 Discussion of Code and Fix Waterfall Model Useful for hacking Problems become apparent in any serious coding effort Verify Kenneth M Anderson 2001 Design Verify No process for things like versioning configuration management testing etc Difficult to coordinate activities of multiple programmers Non technical users cannot explain how the program should work Programmers do not know or understand user needs March 16 2001 Req Change Requirements Implementation Test Operations Retirement 13 March 16 2001 Discussion of Waterfall Kenneth M Anderson 2001 14 Waterfall continued The original waterfall model had disadvantages because it disallowed iteration Proposed in early 70s Widely used even today Advantages Measurable Progress Experience applying steps in past projects can be used in estimating duration of steps in future projects Produces software artifacts that can be re used in other projects Inflexability Monolithic Estimation is difficult Requirements change over time Maintenance not handled well These are problems with other life cycle models as well The waterfall with feedback model was created in response Our slides show this model March 16 2001 Kenneth M Anderson 2001 15 March 16 2001 Kenneth M Anderson 2001 16 Rapid Prototyping Req Change Rapid Prototype Verify Discussion of Rapid Prototyping Prototypes are used to develop reqs spec Once reqs are known waterfall is used Prototypes are discarded once design begins Design Verify Prototypes should not be used as a basis for implementation Prototyping tools do not create production quality code In addition customer needs to be educated about prototypes Implementation Test Operations they need to know that prototypes are used just to answer requirements related questions otherwise they get impatient Retirement March 16 2001 Kenneth M Anderson 2001 17 Incremental March 16 2001 Kenneth M Anderson 2001 18 Discussion of Incremental Model Requirements Verify Used by Microsoft Arch Design Verify For each build Perform detailed design implement Test Deliver Operations Retirement March 16 2001 Kenneth M Anderson 2001 19 Programs are built


View Full Document

CU-Boulder CSCI 5828 - Software Life Cycles

Documents in this Course
Drupal

Drupal

31 pages

Deadlock

Deadlock

23 pages

Deadlock

Deadlock

23 pages

Deadlock

Deadlock

22 pages

Load more
Loading Unlocking...
Login

Join to view Software Life Cycles and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Life Cycles and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?