Sie sind auf Seite 1von 34

Software Life Cycle

What happens in the life of software

TCS2411 Software Engineering

Lecture Objectives
To look at the life cycle of a software To understand the software process and its related elements To relate to the different software engineering paradigms

TCS2411 Software Engineering

Software Engineering Layers

tools methods process model a quality focus

TCS2411 Software Engineering

Software Process
Activities in software projects Characterised by a common process framework
Framework activities - task sets Umbrella activities

Process maturity enables development of quality software products


TCS2411 Software Engineering 4

Common Process Framework


Common process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities

TCS2411 Software Engineering

Umbrella Activities
Software project management Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

TCS2411 Software Engineering

Process as Problem Solving

problem definition

status quo

technical development

solution integration

TCS2411 Software Engineering

The Process Model: Adaptability


the framework activities will always be applied on every project ... BUT the tasks (and degree of rigor) for each activity will vary based on:
the type of project (an entry point to the model) characteristics of the project common sense judgment; concurrence of the project team
TCS2411 Software Engineering 8

The Primary Goal: High Quality


Remember: High quality = project timeliness Why? Less rework!

TCS2411 Software Engineering

The Systematic Process


Analysis Problem

Design

Models

Development Solution
10

Testing
TCS2411 Software Engineering

Generic Phases
Definition Phase
Focus on what the software is

Development Phase
Focus on how the software works

Maintenance Phase
Focus on change to the software

TCS2411 Software Engineering

11

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

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

Maintenance Phase
Reapplies definition and development phases to existing software Types of changes:
Correction Adaptation Enhancement Prevention
TCS2411 Software Engineering 14

Waterfall Model
System Engineering Analysis Design Code Testing Maintenance

TCS2411 Software Engineering

15

Waterfall Model Characteristics


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

Problems of Waterfall Model


Real projects often follow the sequence All requirements may not be stated explicitly by customer Customer only sees the results after some time Developers are often delayed at certain phases
TCS2411 Software Engineering 17

Prototyping Model
Start
Requirements gathering and refinement

Quick design

Building prototype

listen to customer

build/revise mock-up

Engineer product Stop

Refining Customer prototype evaluation

customer test-drives mock-up

TCS2411 Software Engineering

18

Prototyping Model Characteristics


Developer and customer determine objectives and draft requirements Prototype quickly produced and evaluated by customer Prototype then refined, and re-evaluated Process iterated, before final product development Advantages: Customer participation and better requirements
TCS2411 Software Engineering 19

Problems of Prototyping Model


Problem 1: Customer may see prototype as working model and expects fast results Problem 2: Developer compromised when producing prototype quickly, e.g. different operating system or programming language

TCS2411 Software Engineering

20

Rapid Application Development (RAD)


Team #1 Data Business Modeling Modeling Process Data Modeling Application Modeling Generation Process Testing & Turnover Modeling Application Generation Testing & Turnover Time period
TCS2411 Software Engineering 21

Team #2 Business Modeling

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

Incremental Model
System/information engineering

increment 1
code test

analysis

design

delivery of 1st increment

increment 2

analysis

design

code

test

delivery of 2nd increment

increment 3 analysis

design

code

test

delivery of 3rd increment

increment 4

analysis

design

code

test

delivery of 4th increment

calendar time TCS2411 Software Engineering 23

Incremental Model Characteristics


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

Spiral Model
Planning

Risk Analysis Customer Communication

Engineering

Customer Evaluation

Construction & Release

TCS2411 Software Engineering

25

Spiral Model Characteristics


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

Problems of Spiral Model


May be difficult to convince customers that evolution is controllable Demands risk assessment expertise major risk will cause problems if not identified Relatively new and not widely used cannot determine performance
TCS2411 Software Engineering 27

Component Assembly Model


Extract components Identify candidate components Look up components in library yes Available? no Build components Construct System

TCS2411 Software Engineering

28

Component Assembly Characteristics


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

Fourth Generation Techniques (4GT)


Requirements gathering "Design" Strategy Implementation using 4GL Testing

TCS2411 Software Engineering

30

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

Other Process Models


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

Conclusion
The paradigm used for development of software depends on a number of factors
People - staff & users Software product Tools available Environment

Existing models makes development process clearer, but they can be evolved to become new paradigms
TCS2411 Software Engineering 33

References
Software Engineering: A Practitioner s Approach 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 Software Engineering by Ian Sommerville, Addison-Wesley, 2001

TCS2411 Software Engineering

34

Das könnte Ihnen auch gefallen