TCS 2411 Software Engineering
Download
Report
Transcript TCS 2411 Software Engineering
Software Life Cycle
“What happens in the ‘life’ of software”
TCS2411 Software Engineering
1
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
2
Software Engineering
Layers
tools
methods
process model
a “quality” focus
TCS2411 Software Engineering
3
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
5
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
6
Process as Problem
Solving
TCS2411 Software Engineering
7
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
9
The Systematic Process
Analysis
Design
Problem
Models
Development
Testing
TCS2411 Software Engineering
Solution
10
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
Syst em
Engineering
Analysis
Design
Code
Test ing
M aint enance
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
Engineer
product
Quick
design
Building
prototype
Refining Customer
prototype evaluation
Stop
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 #2
Business
Modeling
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
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
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
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?
Construct
System
no
Build
components
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)
Requirement s
gat hering
"Design"
Strat egy
Imp lement at ion
us ing 4GL
Test ing
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