TCS2411 Software Engineering 1
Software Life Cycle
“What happens in the ‘life’ of software”
TCS2411 Software Engineering 2
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 3
Software Engineering
Layers
a “quality” focus process model methods tools TCS2411 Software Engineering 4Software 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 5
Common Process
Framework
Common process framework Framework activities
work tasks work products
milestones & deliverables QA checkpoints
Umbrella Activities
TCS2411 Software Engineering 6
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 7
Process as Problem
Solving
status quo problem definition technical development solution integration TCS2411 Software Engineering 8The 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 9
The Primary Goal:
High Quality
Remember:
High quality = project timeliness Why?
Less rework!
TCS2411 Software Engineering 10
The Systematic Process
Problem Models Solution Analysis Design Development TestingGeneric Phases
Definition PhaseFocus on ‘what’ the software is
Development Phase
Focus on ‘how’ the software works
Maintenance Phase
Focus on ‘change’ to the software
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 13
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 14
Maintenance Phase
Reapplies definition and development phases to existing software
Types of changes: Correction Adaptation Enhancement Prevention TCS2411 Software Engineering 15
Waterfall Model
System Engineering Analysis Design Code Testing Maintenance TCS2411 Software Engineering 16Waterfall 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 17
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 18
Prototyping Model
Stop Requirements gathering and refinement Building prototype Quick design Customer evaluation Refining prototype Engineer product Start listen to customer build/revise mock-up customer test-drives mock-upTCS2411 Software Engineering 19
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 20
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 21
Rapid Application
Development (RAD)
Business Modeling Data Modeling Process Modeling Application Generation Testing & Turnover Team #1 Business Modeling Data Modeling Process Modeling Application Generation Testing & Turnover Team #2 Time period TCS2411 Software Engineering 22RAD 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
Incremental Model
analysis design code test System/information
engineering
analysis design code test
analysis design code test
analysis design code test
increment 2 increment 3 increment 4 increment 1 delivery of 1st increment delivery of 2nd increment delivery of 3rd increment delivery of 4th increment calendar time
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 25
Spiral Model
Customer Communication
Planning
Construction & Release Customer Evaluation Engineering Risk Analysis TCS2411 Software Engineering 26
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 27
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 28
Component Assembly
Model
Identify candidate components Look up components in library Available? Extract components Build components Construct System yes no TCS2411 Software Engineering 29Component 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 30
Fourth Generation
Techniques (4GT)
"Design" Strategy Testing Requirements gathering Implementation using 4GLTCS2411 Software Engineering 31
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 32
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 beforetesting
TCS2411 Software Engineering 33
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 34