9/3/09 15:07 EEC 521: Software Engineering 1 EEC 521: Software Engineering The Software Process Prescriptive Process Models 9/3/09 15:07 EEC 521: Software Engineering 2 The Top Thrill Dragster • 420 ft tall • Max speed over 120 mph • World’s second fastest roller coaster 9/3/09 15:07 EEC 521: Software Engineering 3 Roller Coaster Process • The park conceptualizes what it wants • Hires a company to build it; communicates its concept to the builder • Builder plans the coaster, and communicates its plans and the budget to park for approval • Builder then makes models of the coaster and makes sure that all the requirements are met • The models also help understand the physics a little better than plain calculations • The actual coaster is built, and tested • The coaster is delivered to the park and is opened to public Concept Communication Planning Modeling Construction Deployment 9/3/09 15:07 EEC 521: Software Engineering 4 What is a Software Process? • A series of predictable steps that helps produce a timely, high-quality result • What are the actual steps? • Diers from one process model to another • Important because it provides stability, control and organization “A process denes who is doing what, when, and how to reach a certain goal” – Ivar Jacobson, Grady Booch, and James Rumbaugh
7
Embed
Roller Coaster Process - CSEdOhioselab.csuohio.edu/~nsridhar/teaching/fall09/eec521/slides/Lecture... · •420 ft tall •Max speed over ... Roller Coaster Process •The park conceptualizes
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
9/3/09 15:07 EEC 521: Software Engineering 1
EEC 521: Software Engineering
The Software ProcessPrescriptive Process Models
9/3/09 15:07 EEC 521: Software Engineering 2
The Top Thrill Dragster• 420 ft tall• Max speed over 120
mph• World’s second
fastest roller coaster
9/3/09 15:07 EEC 521: Software Engineering 3
Roller Coaster Process• The park conceptualizes what it wants• Hires a company to build it; communicates its concept to
the builder• Builder plans the coaster, and communicates its plans and
the budget to park for approval• Builder then makes models of the coaster and makes sure
that all the requirements are met• The models also help understand the physics a little
better than plain calculations• The actual coaster is built, and tested• The coaster is delivered to the park and is opened to
public
Concept
Communication
Planning
Modeling
Construction
Deployment
9/3/09 15:07 EEC 521: Software Engineering 4
What is a Software Process?• A series of predictable steps that helps
produce a timely, high-quality result• What are the actual steps?
• Di!ers from one process model to another
• Important because it provides stability,control and organization
“A process de"nes who is doing what, when, and how to reach acertain goal” – Ivar Jacobson, Grady Booch, and James Rumbaugh
9/3/09 15:07 EEC 521: Software Engineering 5
Software Engineering:A Layered Technology
A quality focus
Process
Methods
Tools
It shoulddo X.
It shoulddo Y.
I’m notsure…
Software Engineering
Software requirements are embodiedknowledge that is initially dispersed, tacit,
latent, and incomplete.
Software engineering encompasses aprocess, management and technical
methods, and tools.
9/3/09 15:07 EEC 521: Software Engineering 6
Generic Software EngineeringPhases
• The de"nition phase• What product is going to be built?
• The development phase• How will the product be built, and how will it be
tested?• The support phase
• Incorporate changes from the four sources ofchange.• Correction• Adaptation• Enhancement• Prevention
9/3/09 15:07 EEC 521: Software Engineering 7
Process Framework• Provides the foundation for a complete
software process• Identi"es framework activities
• Applicable to all software projects• De"nes a set of software engineering actions• Each action has a set of work tasks
• De"nes umbrella activities• Applicable to the process across all process stages• Focus is on project management, tracking, and control
9/3/09 15:07 EEC 521: Software Engineering 8
Generic Framework Activities• Communication
– Communication/collaboration with customer• Planning
– Technical tasks, risks, resource requirements,schedule, etc.
The Waterfall Model (2)Good for projects that can be planned completely rightat the beginning
– Well-de"ned requirements– No changes anticipated
Most real projects cannot be built sequentiallyMost new projects have inherent uncertaintyNo way of checking if requirements are met
9/3/09 15:07 EEC 521: Software Engineering 16
The Incremental Model
• Iterative application of the Waterfall• Product is “grown” through several
increments
CommunicationProject initiationRequirements
PlanningEstimationSchedulingTracking Modeling
AnalysisDesign
ConstructionCodeTest
DeploymentDeliverySupportFeedbackSo
ftwar
e fu
nctio
nalit
y
Project time
CommunicationProject initiationRequirements
PlanningEstimationSchedulingTracking Modeling
AnalysisDesign
ConstructionCodeTest
DeploymentDeliverySupportFeedback
CommunicationProject initiationRequirements
PlanningEstimationSchedulingTracking Modeling
AnalysisDesign
ConstructionCodeTest
DeploymentDeliverySupportFeedback
Release 1
Release 2
Release 3
9/3/09 15:07 EEC 521: Software Engineering 17
The Incremental Model(2)• The model is an evolutionary approach
– The product gains more features with everyiteration
• Similar to Waterfall– Each increment is built sequentially– Changes are expensive inside an increment
• Each increment is a usable, "nishedproduct– Not a prototype
9/3/09 15:07 EEC 521: Software Engineering 18
Prototyping• Requirements are very fuzzy
– Idea is there, but no details– Customer is not able to clearly state requirement
• Communication is key
Communication Quick plan
Modeling and Quick Design
Prototypeconstruction
Deployment, Delivery &Feedback
9/3/09 15:07 EEC 521: Software Engineering 19
Prototyping (2)
Great way to elicit requirements– Can serve as requirements gathering
technique for other process models– Saves a lot of change later on in the life-cycle
Customer may not like the “throw-away”nature of the prototype
May want to shorten schedule
Bad development choices may be made
9/3/09 15:07 EEC 521: Software Engineering 20
The Spiral Model
• The most mature of evolutionary models– Controlled and systematic, yet evolutionary
• Risk-driven process model– Cyclic approach
• Increase degree of de"nition and implementation• Decrease degree of risk
– Anchor point milestones
9/3/09 15:07 EEC 521: Software Engineering 21
The Spiral Model (2)PlanningEstimationSchedulingRisk analysis
ModelingAnalysisDesign
ConstructionCodeTest
DeploymentDeliveryFeedback
Communication
Start
9/3/09 15:07 EEC 521: Software Engineering 22
The Spiral Model (3)
Realistic model for large projectsPeriodic risk evaluation leads to betterutilization of resourcesWhen is the project !nished?Considerable risk assessment expertise isrequired
9/3/09 15:07 EEC 521: Software Engineering 23
The Uni"ed Process
• Uni"es important features of other processmodels
• Speci"cally targeted at Object-Orientedsystem development
• Based on the concept of use-cases• Includes a set of design tools
– Uni"ed Modeling Language
9/3/09 15:07 EEC 521: Software Engineering 24
The Uni"ed Process (2)
Communication
Planning
Modeling
Construction
Deployment
Software incrementRelease
Inception
ElaborationConstruction
Transition
Production
9/3/09 15:07 EEC 521: Software Engineering 25
The Uni"ed Process (3)• De"ned set of work products
– Use-case model (inception)– Non-functional requirements (elaboration)– Analysis model (elaboration)– Design model (construction)– Implementation model (construction)– Test cases (construction)– Beta test reports (transition)– User feedback reports (transition)
9/3/09 15:07 EEC 521: Software Engineering 26
Other PrescriptiveModels• Component-Based Development
– Integrating components with well-de"nedinterfaces to build system
• Formal Methods Model– Speci"cation, development, and veri"cation
of system using rigorous mathematicalnotation
9/3/09 15:07 EEC 521: Software Engineering 27
Reading AssignmentGilda Pour, Martin L. Griss, and Michael Lutz.The Push to Make Software EngineeringRespectable. IEEE Computer. May 2000. pages35 – 43.