02-refppt
TRANSCRIPT
-
8/2/2019 02-refppt
1/34
TCS2411 Software Engineering 1
Software Life Cycle
What happens in the life of software
-
8/2/2019 02-refppt
2/34
TCS2411 Software Engineering 2
Lecture Objectives
To look at the life cycle of a software
To understand the software process andits related elements
To relate to the different softwareengineering paradigms
-
8/2/2019 02-refppt
3/34
TCS2411 Software Engineering 3
Software Engineering
Layers
a quality focusa quality focus
process modelprocess model
methodsmethodstoolstools
-
8/2/2019 02-refppt
4/34
TCS2411 Software Engineering 4
Software Process
Activities in software projects
Characterised by a common processframework
Framework activities - task sets
Umbrella activities
Process maturity enables developmentof quality software products
-
8/2/2019 02-refppt
5/34
TCS2411 Software Engineering 5
Common Process
Framework
Common process frameworkCommon process framework
Framework activitiesFramework activities
work taskswork tasks
work productswork products
milestones & deliverablesmilestones & deliverables
QA checkpointsQA checkpoints
Umbrella ActivitiesUmbrella Activities
-
8/2/2019 02-refppt
6/34
TCS2411 Software Engineering 6
Umbrella Activities
Software project management Formal technical reviews S
oftware quality assurance Software configuration management Document preparation and production Reusability management
Measurement Risk management
-
8/2/2019 02-refppt
7/34
TCS2411 Software Engineering 7
Process as Problem
Solving
statusquo
problemdefinition
technicaldevelopment
solution
integration
-
8/2/2019 02-refppt
8/34
TCS2411 Software Engineering 8
The Process Model:
Adaptability
the framework activities will alwaysbe applied on every project ... BUT
the tasks (and degree of rigor) foreach activity will vary based on: the type of project (an entry point to
the model)
characteristics of the project
common sense judgment; concurrenceof the project team
-
8/2/2019 02-refppt
9/34
TCS2411 Software Engineering 9
The Primary Goal:
High Quality
Remember:Remember:
High quality = project timelinessHigh quality = project timeliness
Why?Why?
Less rework!Less rework!
-
8/2/2019 02-refppt
10/34
TCS2411 Software Engineering 10
The Systematic Process
Problem
Models
Solution
Analysis
Design
Development
Testing
-
8/2/2019 02-refppt
11/34
TCS2411 Software Engineering 11
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
-
8/2/2019 02-refppt
12/34
TCS2411 Software Engineering 12
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
-
8/2/2019 02-refppt
13/34
TCS2411 Software Engineering 13
Development Phase
Define data structures, functionimplementation, procedural details, interfaces
Translate design to programming language
How testing is performed
Major tasks:
Software design
Code generation
Software testing
-
8/2/2019 02-refppt
14/34
TCS2411 Software Engineering 14
Maintenance Phase
Reapplies definition and developmentphases to existing software
Types of changes:
Correction
Adaptation
Enhancement Prevention
-
8/2/2019 02-refppt
15/34
TCS2411 Software Engineering 15
Waterfall Model
SystemEngineering
Analysis
Design
Code
Testing
Maintenance
-
8/2/2019 02-refppt
16/34
TCS2411 Software Engineering 16
Waterfall Model
Characteristics
The classic life cycle - oldest and mostwidely used paradigm
Activities flow from one phase to another
If there are corrections, return to aprevious phase and flow from there again
Major advantages: Good for planning andwell-defined/repeated projects
-
8/2/2019 02-refppt
17/34
TCS2411 Software Engineering 17
Problems ofWaterfall
Model
Real projects often follow the sequence
All requirements may not be stated
explicitly by customer
Customer only sees the results after sometime
Developers are often delayed at certainphases
-
8/2/2019 02-refppt
18/34
TCS2411 Software Engineering 18
Prototyping Model
Stop
Requirements
gathering and
refinement
Building
prototype
Quick
design
Customer
evaluation
Refining
prototype
Engineer
product
Start
listento
customer
build/revisemock-up
customertest-drivesmock-up
-
8/2/2019 02-refppt
19/34
TCS2411 Software Engineering 19
Prototyping Model
Characteristics
Developer and customer determineobjectives and draft requirements
Prototype quickly produced and evaluatedby customer
Prototype then refined, and re-evaluated
Process iterated, before final productdevelopment
Advantages: Customer participation andbetter requirements
-
8/2/2019 02-refppt
20/34
TCS2411 Software Engineering 20
Problems of Prototyping
Model
Problem 1: Customer may see prototypeas working model and expects fast results
Problem 2: Developer compromised whenproducing prototype quickly, e.g. differentoperating system or programming
language
-
8/2/2019 02-refppt
21/34
TCS2411 Software Engineering 21
Rapid Application
Development (RAD)
Business
Modeling
DataModeling
Process
ModelingApplication
GenerationTesting &
Turnover
Team #1 BusinessModeling
Data
ModelingProcess
ModelingApplication
GenerationTesting &
Turnover
Team #2
Time period
-
8/2/2019 02-refppt
22/34
TCS2411 Software Engineering 22
RAD Characteristics
High-speed version of waterfall model
Primarily for information systems applications
Requirements well-understood, fully functionalsystem produced in short time
The application modularised - major functionscan be completed in 3 months
Separate teams complete the functions, thenintegrated as a whole
Requires human resource and commitment
-
8/2/2019 02-refppt
23/34
TCS2411 Software Engineering 23
Incremental Model
analysis design code test
System/informationengineering
analysis design code test
analysis design code test
analysis design code test
increment 2
increment 3
increment 4
increment 1
delivery of1st increment
delivery of2nd increment
delivery of
3rd increment
delivery of4th increment
calendar time
-
8/2/2019 02-refppt
24/34
TCS2411 Software Engineering 24
Incremental Model
Characteristics
Software separated into differentincrements - complete working portions
Focus on delivery of operational productwith each increment - can be evaluated
Useful when insufficient staff and can be
planned to manage technical risks, e.g.waiting for new hardware
-
8/2/2019 02-refppt
25/34
TCS2411 Software Engineering 25
Spiral Model
Customer
Communication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
-
8/2/2019 02-refppt
26/34
TCS2411 Software Engineering 26
Spiral Model
Characteristics
Originally proposed by Boehm, couplesiterative nature of prototyping and the
systematic aspects of waterfall model Software is developed in series of
incremental releases
Each iteration produces a more completeproduct
Better management through risk analysis
-
8/2/2019 02-refppt
27/34
TCS2411 Software Engineering 27
Problems of Spiral
Model
May be difficult to convince customersthat evolution is controllable
Demands risk assessment expertise -major risk will cause problems if notidentified
Relatively new and not widely used -cannot determine performance
-
8/2/2019 02-refppt
28/34
TCS2411 Software Engineering 28
Component Assembly
Model
Identify
candidate
components
Look up
components
in library
Available?
Extract
components
Build
components
Construct
System
yes
no
-
8/2/2019 02-refppt
29/34
TCS2411 Software Engineering 29
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 thecorrect components
-
8/2/2019 02-refppt
30/34
TCS2411 Software Engineering 30
Fourth Generation
Techniques (4GT)
"
Design"
Strategy
Testing
Requirementsgathering
Implementationusing 4GL
-
8/2/2019 02-refppt
31/34
TCS2411 Software Engineering 31
4GT Characteristics
Use of software tools that allow softwareengineer to specify s/w characteristics athigher level
The tools generate codes based onspecification
More time in design and testing - increase
productivity
Tools may not be easy to use, codesgenerated may not be efficient
-
8/2/2019 02-refppt
32/34
TCS2411 Software Engineering 32
Other Process Models
Component assembly modelthe process toapply when reuse is a development objective
Concurrent process model
recognizes thatdifferent part of the project will be at differentplaces in the process
Formal methodsthe process to apply when amathematical specification is to be developed
Cleanroom software engineeringemphasizes error detection before testing
-
8/2/2019 02-refppt
33/34
TCS2411 Software Engineering 33
Conclusion
The paradigm used for development ofsoftware depends on a number of factors People - staff & users
Software product Tools available
Environment
Existing models makes developmentprocess clearer, but they can be evolvedto become new paradigms
-
8/2/2019 02-refppt
34/34
TCS2411 Software Engineering 34
References
Software Engineering: APractitionersApproach 5th Ed. by Roger S. Pressman,Mc-Graw-Hill, 2001
Software Engineering by Ian Sommerville,Addison-Wesley, 2001