Software Life Cycle What happens in the life

  • Slides: 34
Download presentation
Software Life Cycle “What happens in the ‘life’ of software” TCS 2411 Software Engineering

Software Life Cycle “What happens in the ‘life’ of software” TCS 2411 Software Engineering 1

Lecture Objectives z. To look at the ‘life cycle’ of a software z. To

Lecture Objectives z. To look at the ‘life cycle’ of a software z. To understand the software process and its related elements z. To relate to the different software engineering paradigms TCS 2411 Software Engineering 2

Software Engineering Layers tools methods process model a “quality” focus TCS 2411 Software Engineering

Software Engineering Layers tools methods process model a “quality” focus TCS 2411 Software Engineering 3

Software Process z. Activities in software projects z. Characterised by a common process framework

Software Process z. Activities in software projects z. Characterised by a common process framework y. Framework activities - task sets y. Umbrella activities z“Process maturity” enables development of quality software products TCS 2411 Software Engineering 4

Common Process Framework Common process framework Framework activities work tasks work products milestones &

Common Process Framework Common process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities TCS 2411 Software Engineering 5

Umbrella Activities z Software project management z Formal technical reviews z Software quality assurance

Umbrella Activities z Software project management z Formal technical reviews z Software quality assurance z Software configuration management z Document preparation and production z Reusability management z Measurement z Risk management TCS 2411 Software Engineering 6

Process as Problem Solving TCS 2411 Software Engineering 7

Process as Problem Solving TCS 2411 Software Engineering 7

The Process Model: Adaptability zthe framework activities will always be applied on every project.

The Process Model: Adaptability zthe framework activities will always be applied on every project. . . BUT zthe tasks (and degree of rigor) for each activity will vary based on: ythe type of project (an “entry point” to the model) ycharacteristics of the project ycommon sense judgment; concurrence of the project team TCS 2411 Software Engineering 8

The Primary Goal: High Quality Remember: High quality = project timeliness Why? Less rework!

The Primary Goal: High Quality Remember: High quality = project timeliness Why? Less rework! TCS 2411 Software Engineering 9

The Systematic Process Analysis Design Problem Models Development Testing TCS 2411 Software Engineering Solution

The Systematic Process Analysis Design Problem Models Development Testing TCS 2411 Software Engineering Solution 10

Generic Phases z. Definition Phase y. Focus on ‘what’ the software is z. Development

Generic Phases z. Definition Phase y. Focus on ‘what’ the software is z. Development Phase y. Focus on ‘how’ the software works z. Maintenance Phase y. Focus on ‘change’ to the software TCS 2411 Software Engineering 11

Definition Phase z. Identify information to be processed z. Identify system behaviour - functions

Definition Phase z. Identify information to be processed z. Identify system behaviour - functions and performance z. Determine constraints, interfaces, validation criteria z. Major tasks: y. System engineering y. Software project planning y. Requirements analysis TCS 2411 Software Engineering 12

Development Phase z. Define data structures, function implementation, procedural details, interfaces z. Translate design

Development Phase z. Define data structures, function implementation, procedural details, interfaces z. Translate design to programming language z. How testing is performed z. Major tasks: y. Software design y. Code generation y. Software testing TCS 2411 Software Engineering 13

Maintenance Phase z. Reapplies definition and development phases to existing software z. Types of

Maintenance Phase z. Reapplies definition and development phases to existing software z. Types of changes: y. Correction y. Adaptation y. Enhancement y. Prevention TCS 2411 Software Engineering 14

Waterfall Model TCS 2411 Software Engineering 15

Waterfall Model TCS 2411 Software Engineering 15

Waterfall Model Characteristics z. The classic life cycle - oldest and most widely used

Waterfall Model Characteristics z. The classic life cycle - oldest and most widely used paradigm z. Activities ‘flow’ from one phase to another z. If there are corrections, return to a previous phase and ‘flow’ from there again z. Major advantages: Good for planning and well-defined/repeated projects TCS 2411 Software Engineering 16

Problems of Waterfall Model z. Real projects often follow the sequence z. All requirements

Problems of Waterfall Model z. Real projects often follow the sequence z. All requirements may not be stated explicitly by customer z. Customer only sees the results after some time z. Developers are often delayed at certain phases TCS 2411 Software Engineering 17

Prototyping Model Start Requirements gathering and refinement Engineer product Quick design Building prototype Refining

Prototyping Model Start Requirements gathering and refinement Engineer product Quick design Building prototype Refining Customer prototype evaluation Stop TCS 2411 Software Engineering 18

Prototyping Model Characteristics z. Developer and customer determine objectives and draft requirements z. Prototype

Prototyping Model Characteristics z. Developer and customer determine objectives and draft requirements z. Prototype quickly produced and evaluated by customer z. Prototype then refined, and re-evaluated z. Process iterated, before final product development z. Advantages: Customer participation and better requirements TCS 2411 Software Engineering 19

Problems of Prototyping Model z. Problem 1: Customer may see prototype as working model

Problems of Prototyping Model z. Problem 1: Customer may see prototype as working model and expects fast results z. Problem 2: Developer compromised when producing prototype quickly, e. g. different operating system or programming language TCS 2411 Software Engineering 20

Rapid Application Development (RAD) Team #2 Business Modeling Team #1 Data Business Modeling Process

Rapid Application Development (RAD) Team #2 Business Modeling Team #1 Data Business Modeling Process Data Modeling Application Modeling Generation Process Testing & Turnover Modeling Application Generation Testing & Turnover Time period TCS 2411 Software Engineering 21

RAD Characteristics z“High-speed” version of waterfall model z. Primarily for information systems applications z.

RAD Characteristics z“High-speed” version of waterfall model z. Primarily for information systems applications z. Requirements well-understood, fully functional system produced in short time z. The application modularised - major functions can be completed in 3 months z. Separate teams complete the functions, then integrated as a whole z. Requires human resource and commitment TCS 2411 Software Engineering 22

Incremental Model TCS 2411 Software Engineering 23

Incremental Model TCS 2411 Software Engineering 23

Incremental Model Characteristics z. Software separated into different “increments” - complete working portions z.

Incremental Model Characteristics z. Software separated into different “increments” - complete working portions z. Focus on delivery of operational product with each increment - can be evaluated z. Useful when insufficient staff and can be planned to manage technical risks, e. g. waiting for new hardware TCS 2411 Software Engineering 24

Spiral Model TCS 2411 Software Engineering 25

Spiral Model TCS 2411 Software Engineering 25

Spiral Model Characteristics z. Originally proposed by Boehm, couples iterative nature of prototyping and

Spiral Model Characteristics z. Originally proposed by Boehm, couples iterative nature of prototyping and the systematic aspects of waterfall model z. Software is developed in series of incremental releases z. Each iteration produces a more complete product z. Better management through risk analysis TCS 2411 Software Engineering 26

Problems of Spiral Model z. May be difficult to convince customers that evolution is

Problems of Spiral Model z. May be difficult to convince customers that evolution is controllable z. Demands risk assessment expertise major risk will cause problems if not identified z. Relatively new and not widely used cannot determine performance TCS 2411 Software Engineering 27

Component Assembly Model Extract components Identify candidate components Look up components in library yes

Component Assembly Model Extract components Identify candidate components Look up components in library yes Available? no Construct System Build components TCS 2411 Software Engineering 28

Component Assembly Characteristics z. Use of object-oriented technology z. Components - classes that encapsulate

Component Assembly Characteristics z. Use of object-oriented technology z. Components - classes that encapsulate both data and algorithms z. Components developed to be reusable z. Paradigm similar to spiral model, but engineering activity involves components z. System produced by assembling the correct components TCS 2411 Software Engineering 29

Fourth Generation Techniques (4 GT) TCS 2411 Software Engineering 30

Fourth Generation Techniques (4 GT) TCS 2411 Software Engineering 30

4 GT Characteristics z. Use of software tools that allow software engineer to specify

4 GT Characteristics z. Use of software tools that allow software engineer to specify s/w characteristics at higher level z. The tools generate codes based on specification z. More time in design and testing - increase productivity z. Tools may not be easy to use, codes generated may not be efficient TCS 2411 Software Engineering 31

Other Process Models z Component assembly model—the process to apply when reuse is a

Other Process Models z Component assembly model—the process to apply when reuse is a development objective z Concurrent process model—recognizes that different part of the project will be at different places in the process z Formal methods—the process to apply when a mathematical specification is to be developed z Cleanroom software engineering— emphasizes error detection before testing TCS 2411 Software Engineering 32

Conclusion z. The paradigm used for development of software depends on a number of

Conclusion z. The paradigm used for development of software depends on a number of factors y. People - staff & users y. Software product y. Tools available y. Environment z. Existing models makes development process clearer, but they can be evolved to become new paradigms TCS 2411 Software Engineering 33

References z“Software Engineering: A Practitioner’s Approach” 5 th Ed. by Roger S. Pressman, Mc-Graw-Hill,

References z“Software Engineering: A Practitioner’s Approach” 5 th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 z“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001 TCS 2411 Software Engineering 34