ucs503 process models
TRANSCRIPT
-
8/3/2019 UCS503 Process Models
1/29
Introduction The Software Lifecycle
ByAshima SinghAsstt. Prof., CSED
-
8/3/2019 UCS503 Process Models
2/29
A naive view:Problem Specification Final Program
But ... Where did the specificationcome from? How do you know the specification corresponds to the
users needs? How did you decide how to structureyour program? How do you know the program actually meets the
specification? How do you know your program will always work
correctly? What do you do if the users needs change? How do you divide tasks upif you have more than a
one-person team?
UCS503- Software Engineering
coding
-
8/3/2019 UCS503 Process Models
3/29
RequirementsCollection
Establish customers needs
Analysis Model and specify the requirements (what)
Design Model and specify a solution (how)
Implementation Construct a solution in software
TestingValidate the solution against the
requirements
MaintenanceRepair defects and adapt the solution to newrequirements
UCS503- Software Engineering
NB: these are ongoing activities, not sequential phases!
-
8/3/2019 UCS503 Process Models
4/29
UCS503- Software Engineering
The classicalsoftware lifecyclemodels the softwaredevelopment as a
step-by-stepwaterfall between
the variousdevelopment phases.
The waterfall model is unrealistic for many reasons: requirements must be frozen too earlyin the life-cycle requirements are validated too late
Design
Implementation
Testing
Maintenance
Analysis
RequirementsCollection
-
8/3/2019 UCS503 Process Models
5/29
1. Real projects rarely follow the sequential flow that themodel proposes. Iterationalways occurs and createsproblems in the application of the paradigm
2. It is often difficultfor the customer to state all
requirementsexplicitly. The classic life cycle requires thisand has difficulty accommodating the natural uncertaintythat exists at the beginning of many projects.
3. The customer must have patience. A working versionof theprogram(s) will not be available until late in the project
timespan. A major blunder, if undetected until the workingprogram is reviewed, can be disastrous.
Pressman, SE, p. 26
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
6/29
UCS503- Software Engineering
In practice, development is always iterative, and allactivities progress in parallel.
RequirementsCollection
Testing
Design
AnalysisValidation through prototyping
Testing based on requirements
Testing throughout implementation
Maintenancethrough iteration
Design through refactoring
Implementation
-
8/3/2019 UCS503 Process Models
7/29
Plan to iterateyour analysis, design andimplementation.
You wont get it right the first time, so integrate,validateand testas frequently as possible.
You should use iterative development only on
projects that you want to succeed. Martin Fowler, UML Distilled
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
8/29
Plan to incrementallydevelop (i.e., prototype)the system.
If possible, always have a running versionof thesystem, even if most functionality is yet to beimplemented.
Integratenew functionality as soon as possible.
Validateincremental versions against userrequirements.
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
9/29UCS503- Software Engineering
Validate
increment
Develop systemincrement
Design systemarchitecture
Integrateincrement
Validate
system
Define outlinerequirements
Assign requirementsto increments
System incomplete
Final
system
-
8/3/2019 UCS503 Process Models
10/29
Development and delivery is broken down intoincrements with each increment delivering part of the
required functionality.
User requirements are prioritised and the highest
priority requirements are included in early
increments.
Is an iterative process
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
11/29
Customer value can be delivered with eachincrement so system functionality is availableearlier.
Early increments act as a prototype to helpelicit requirements for later increments.
Lower risk of overall project failure.
The highest priority system services tend to
receive the most testing.
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
12/29UCS503- Software Engineering
evolving system
initial requirements
first prototype
alpha demo
go, no-go decisioncompletion
Planning = determinationof objectives, alternativesand constraints
Risk Analysis = Analysis ofalternatives and identification/resolution of risks
Customer Evaluation =Assessment of theresults of engineering
Engineering =Development of thenext level product
Risk =something that
will delay project orincrease its cost
-
8/3/2019 UCS503 Process Models
13/29
UCS503- Software Engineering
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-
tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Product
designDetaileddesign
Code
Unit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
-
8/3/2019 UCS503 Process Models
14/29
UCS503- Software Engineering
Process is represented as a spiral rather than as asequence of activities with backtracking
Each loop in the spiral represents a phase in the process.
No fixed phases such as specification or design -- loopsin the spiral are chosen depending on what is required
Risks are explicitly assessed and resolved throughoutthe process.
Uses prototyping
-
8/3/2019 UCS503 Process Models
15/29
User requirements are often expressedinformally: features
usage scenarios
Although requirements may be documented inwritten form, they may be incomplete,ambiguous, or even incorrect.
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
16/29
Requirements willchange! inadequately capturedor expressed in the first place
user and business needs may changeduring the project
Validation is needed throughoutthe softwarelifecycle, not only when the final system isdelivered! build constant feedbackinto your project plan
plan for change early prototyping[e.g., UI] can help clarify requirements
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
17/29
Analysis is the process of specifying whatasystem will do.
The intention is to provide a clear understanding
of what the system is about and what itsunderlying concepts are.
The result of analysis is a specification
document.
UCS503- Software Engineering
Does the requirementsspecification correspond tothe users actual needs?
-
8/3/2019 UCS503 Process Models
18/29
An object-oriented analysisresults in models ofthe system which describe:
classesof objects that exist in the system responsibilitiesof those classes
relationshipsbetween those classes
use casesand scenariosdescribing operationsthat can be performed on the system
allowable sequencesof those operations
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
19/29
UCS503- Software Engineering
Implementation
Design
Testing
Design
Implementation
Testing
Maintenance
Requirements
-
8/3/2019 UCS503 Process Models
20/29
A prototypeis a software program developed totest, explore or validate a hypothesis, i.e. toreduce risks.
An exploratory prototype, also known as athrowaway prototype, is intended to validaterequirementsor explore design choices. UI prototype validate user requirements
rapid prototype validate functional requirements experimental prototype validate technical
feasibility
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
21/29
An evolutionary prototypeis intended to evolvein steps into a finished product.
iteratively grow the application, redesigningand refactoringalong the way
UCS503- Software Engineering
First do it,then do it right,
then do it fast.
-
8/3/2019 UCS503 Process Models
22/29
Designis the process of specifying howthespecified system behaviour will be realized fromsoftware components. The results arearchitectureand detailed design documents.
Object-oriented designdelivers models that describe: how system operations are implemented by
interacting objects how classes refer to one another and how they are
related by inheritance attributesand operationsassociated to classes
UCS503- Software Engineering
Design is an iterative process,proceeding in parallel withimplementation!
-
8/3/2019 UCS503 Process Models
23/29
Organizations that design systems areconstrained to produce designs that are copies ofthe communication structures of theseorganizations
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
24/29
Implementationis the activity ofconstructingasoftware solution to the customersrequirements.
Testingis the process ofvalidatingthat thesolution meets the requirements.
The result of implementation and testing is a fully
documentedand validatedsolution.
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
25/29
Design, implementation and testing are iterativeactivities The implementation does not implement the
design, but rather the design documentdocuments the implementation!
System tests reflect the requirementsspecification
Testing and implementation go hand-in-hand Ideally, test case specification precedesdesign and
implementation
UCS503- Software Engineering
-
8/3/2019 UCS503 Process Models
26/29
Maintenanceis the process of changing a systemafter it has been deployed.
Corrective maintenance: identifying andrepairing defects
Adaptive maintenance: adaptingthe existingsolution to new platforms Perfective maintenance: implementing new
requirements
UCS503- Software Engineering
In a spiral lifecycle, everything afterthe delivery and deployment of thefirst prototype can be considered
maintenance!
-
8/3/2019 UCS503 Process Models
27/29
Maintenance entails: configuration and version management
reengineering (redesigning and refactoring)
updating all analysis, design and userdocumentation
UCS503- Software Engineering
Repeatable,automated testsenable evolutionand refactoring
-
8/3/2019 UCS503 Process Models
28/29
UCS503- Software Engineering
EfficiencyImprovements
4%Documentation
6%
HardwareChanges
6%
RoutineDebugging
9%
EmergencyFixes12%
Changes inData Formats
17%
Other3%
Changes inUser
Requirements
Maintenance typicallyaccounts for 70% ofsoftware costs!
Means:mostproject costs
concern continued
development afterdeployment
Lientz 1979
-
8/3/2019 UCS503 Process Models
29/29
First generation: Adaptation of existing notations (ER diagrams,
state diagrams ...): Booch, OMT, Shlaer and Mellor,...
Specialized design techniques: CRC cards; responsibility-driven design; design by contractSecond generation:
Fusion: Booch + OMT + CRC + formal methodsThird generation: Unified Modeling Language:
uniform notation: Booch + OMT + Use Cases + ...
various UML-based methods (e.g. Catalysis)
UCS503 S f E i i