Upload
amberlynn-mcbride
View
231
Download
2
Tags:
Embed Size (px)
Citation preview
1
Software Engineering process models
Hamza Mohammed Naji120090117
2
New or changed
requirements
New or changed
system
Software EngineeringProcess
What Is a Software Engineering Process?
A process defines Who is doing What, When and How in the development of a software system– Roles and workflows
– Work products
– Milestones
– Guideline
– …
3
Process & Product
Processmodel
Project
Product
People
Tools
Template
Participants
Result
Automation
4
An Effective Process ...
• Provides guidelines for efficient development of quality software
• Reduces risk and increases predictability • Captures and presents best practices
– Learn from other’s experiences– Mentor on your desktop– Extension of training material
• Promotes common vision and culture• Provides roadmap for applying tools• Delivers information on-line, at your finger tips
5
Lightweight vs. Heavyweight Processes
Document drivenElaborate workflow definitionsMany different rolesMany checkpointsHigh management overheadHighly bureaucratic
Focus on working coderather than documentationFocus on direct communication(between developers andbetween developers and the customer)Low management overhead
Heavyweighte.g., V-Process
CustomizableFrameworke.g., RationalUnifiedProcess (RUP)
Agile (Lightweight)e.g., eXtremeProgramming (XP)
6
• Process used should depend on type of product which is being developed– For large systems, management is usually the
principal problem so you need a strictly managed process. For smaller systems, more informality is possible.
• High costs may be incurred if you force an inappropriate process on a development team
Process choice
7
Build and Fix Model
• Properties– No planning or analysis– The working program is the only
workproduct• Advantage
– Appropriate for small programs written by one person
• Disadvantage– Understandability and maintainability
decrease rapidly with increasing program size
– Totally unsatisfactory– Need a life-cycle model
• “Game plan” • Phases• Milestones
8
Waterfall Model
• Characterized by– Sequential steps (phases)– Feedback loops (between two phases in
development)– Documentation-driven
• Advantages – Documentation– Maintenance easier
• Disadvantages– Complete and frozen specification document up-
front often not feasible in practice– Customer involvement in the first phase only– Sequential and complete execution of phases
often not desirable– Process difficult to control– The product becomes available very late in the
process
9
Rapid Prototyping Model
• Rapid prototyping phase followed by waterfall– Do not turn the rapid prototype into the product– Rapid prototyping may replace the specification phase—never the design phase
• Comparison:– Waterfall model—try to get it right the first time– Rapid prototyping—frequent change, then discard
10
Advantages and Disadvantages
• Advantages– Requirements better specified and validated– Early feasibility analysis– Strong involvement of the customer in the prototyping phase
• Disadvantage– Higher development effort– Danger that due to schedule slip, the prototype becomes part
of the product
11
Incremental
Design Coding Test Deployment
Design Coding Test Deployment
Design Coding Test Deployment
Requirem
ents
Release 1
Release 2
Release 3
12
Incremental Model (contd)
• Waterfall, rapid prototyping models– Operational quality complete product at end
• Incremental model– Operational quality portion of product within weeks
• Less traumatic• Smaller capital outlay, rapid return on investment
13
Evolutionary
Design Coding Test DeploymentRequirements
Design Coding Test DeploymentRequirements
Design Coding Test DeploymentRequirements
Feedback
Version 1
Version 1
Version 1
14
Evolutionary Model (contd)
• Advantages– Constant customer involvement and validation– Allows for good risk management
• Disadvantages– Build-and-fix danger– Contradiction in terms
15
Spiral model
• Waterfall model plus risk analysis preceding each phase and evaluation following each phase
• Prototyping for high-risk specifications• Radial dimension: cumulative cost to date• Angular dimension: progress through the spiral• If all risks cannot be resolved, the project is
immediately terminated• Appropriate only for big projects (high
management overhead)
16
Spiral model
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit 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
17
Process model risk problems• Waterfall
– High risk for new systems because of specification and design problems
– Low risk for well-understood developments using familiar technology
• Prototyping– Low risk for new applications because specification
and program stay in step– High risk because of lack of process visibility
• Evolutionary and Spiral– Middle ground between waterfall and prototyping
18
Hybrid process models• Large systems are usually made up of several
sub-systems• The same process model need not be used for
all subsystems• Prototyping for high-risk specifications• Waterfall model for well-understood
developments• Taylor the process to a problem
19
Use of the Models in Practice
20
• The fundamental problem with software– The software process is badly managed
• Understanding existing processes
• Introducing process changes to achieve organisational objectives which are usually focused on quality improvement, cost reduction and schedule acceleration
Process improvement