Presentation is loading. Please wait.

Presentation is loading. Please wait.

CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.

Similar presentations


Presentation on theme: "CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering."— Presentation transcript:

1 CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering

2 CC20O7N Software Engineering 1Contents Software Application Areas Problems of Large Software Systems The Software Crisis What Is Software Engineering? Software Life Cycle - Generic Phases/Stages

3 CC20O7N Software Engineering 1 Software Application Areas System software Application/Business software Engineering and scientific software Embedded software Product-line software (PC software) Web-applications Artificial intelligence software

4 CC20O7N Software Engineering 1 Problems with Large Software Systems Delivery Costs Correctness Efficiency

5 CC20O7N Software Engineering 1 Software Costs (world-wide) $ billions

6 CC20O7N Software Engineering 1 Relative Cost of Hardware and Software

7 CC20O7N Software Engineering 1 Software Engineering Concerned with: –building large programs –maintenance –efficiency of development and maintenance –quality –management

8 CC20O7N Software Engineering 1 Three Major Phases in the Software Life Cycle Definition phase Development phase Maintenance phase

9 CC20O7N Software Engineering 1 Generic Stages in the Software Life Cycle } Strategy planning Feasibility study Requirements analysis Definition phase } Development phase  Design (system design, detailed design)  Implementation  Testing }  Maintenance Maintenance phase

10 CC20O7N Software Engineering 1 Costs of Software Life Cycle Stages %

11 CC20O7N Software Engineering 1Summary Discussed –the importance of software and the wide range of software applications –problems with software - the software crisis Presented –several definitions and the main goals of software engineering Identified –generic phases and stages in the software life cycle

12 CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 2 The Software Life Cycle Models

13 CC20O7N Software Engineering 1Contents Waterfall Model Evolutionary Models Incremental Development

14 CC20O7N Software Engineering 1 Waterfall Model - Basic

15 CC20O7N Software Engineering 1 Waterfall Model Advantages & Disadvantages It is easy to identify milestones (+) It is easy to separate one stage from another (+) Documentation is produced(+) It is totally unrealistic! (---)

16 CC20O7N Software Engineering 1 Waterfall Model - Enhanced

17 CC20O7N Software Engineering 1 Waterfall – Enhanced Advantages & Disadvantages It is easy to identify milestones (+) It is easy to separate one stage from another (+) Software is properly documented (+) Premature requirements, design, etc. (-) It assumes that requirements can be precisely specified (-) It requires the customer to be patient (-) It is still unrealistic!

18 CC20O7N Software Engineering 1 Prototyping Process Establish prototype objectives Define prototype functionality Develop prototype Evaluate prototype Prototyping plan Outline definition Executable prototype Evaluation report

19 CC20O7N Software Engineering 1 Prototype (as a tool for requirements analysis) - Benefits Misunderstandings between software developers and users identified as the system functions are demonstrated Missing user services may be detected Difficult-to-use or confusing user services may be identified and refined Incomplete/inconsistent requirements found as the prototype is developed A working, albeit limited, system is available quickly for demonstration to management

20 CC20O7N Software Engineering 1 Throw-Away Prototyping * At this point the prototype is thrown away! ** Development phase of the actual system Establish outline spec. Design & implement system Develop prototype Evaluate prototype Specify system * * * Validate system

21 CC20O7N Software Engineering 1 Throw-Away Prototype - Problems Sometimes the cost of prototype development represents an unacceptably large fraction of the total cost Customers are likely to force the developer to convert the prototype to the working system using a few fixes The developer may become familiar with the prototype and reluctant to discard it

22 CC20O7N Software Engineering 1 Evolutionary Prototyping Develop abstract specification system Deliver system System adequate? NO YES Develop abstract specification Develop abstract specification Build prototype Use prototype system Deliver system System adequate? NO YES

23 CC20O7N Software Engineering 1 Evolutionary Prototyping Advantages & Disadvantages Systems are developed and delivered rapidly (+) Costs are reduced (+) User involvement! (+) The development process is ‘invisible’ to managers (+) Systems are usually poorly structured! (-)

24 CC20O7N Software Engineering 1 Incremental Development Integrate increment Integrate increment System complete? Design system architecture Specify system increment Build system increment Validate increment Define system deliverables Validate system Deliver final system YES NO Reproduced from:Sommerville System complete? Design system architecture Specify system increment Specify system increment Build system increment Build system increment Validate increment Define system deliverables Validate system Deliver final system YES NO Reproduced from:Sommerville

25 CC20O7N Software Engineering 1 Incremental Development Advantages & Disadvantages No ‘big bang’ effect (+) Attention on the essential features (+) Customers can use the ‘partial’ software as soon as it is available (+) Early increments can provide a useful feedback (+) The requirements tend to constrained by the architecture (-) Problems with contracts (-) Difficult to map the customer’s requirements onto increments (-) Problems with basic facilities (-)

26 CC20O7N Software Engineering 1Summary Software life cycle models –all of them include the main generic stages –logic of the software process is different in each The spiral model, which subsumes the other models, should be investigated by students. Object orientation –emphasis on reusability –software development process will become one of assembly rather than one of creation


Download ppt "CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering."

Similar presentations


Ads by Google