Sei sulla pagina 1di 14

Chapter Comments

3-1

Chapter

PrescriptiveProcessModels
CHAPTEROVERVIEWANDCOMMENTS Thisintentofthischapteristopresentprocessmodelsusedbyprofessional softwaredeveloperstomanagelargescalesoftwareprojects.Nosoftware processworkswellforeveryproject.However,everyprojectneedstoconformto somesystematicprocessinordertomanagesoftwaredevelopmentactivitiesthat caneasilygetoutofcontrol.Softwareprocesseshelptoorganizethework productsthatneedtobeproducedduringasoftwaredevelopmentproject. Ultimatelythebestindicatorofhowwellasoftwareprocesshasworkedisthe qualityofthedeliverablesproduced.Awellmanagedprocesswillproducehigh qualityproductsontimeandwithinbudget. 3.1 PrescriptiveModels

Manypeople(andnotafewprofessors)believethatprescriptivemodelsareold schoolponderous,bureaucraticdocumentproducingmachines. 3.2 TheWaterfallModel


Planning
estimating scheduling tracking

Communication
project initiation requirement gathering

Modeling
analysis design

Construction
code test

Deployment
delivery support f eedback

Manypeopledismissthewaterfallasobsoleteanditcertainlydoeshave problems.Butthismodelcanstillbeusedinsomesituations. Amongtheproblemsthataresometimesencounteredwhenthewaterfallmodelis appliedare: ARealprojectrarelyfollowsthesequentialflowthatthemodel proposes.Changecancauseconfusionastheprojectproceeds. Itisdifficultforthecustomertostatealltherequirements explicitly.Thewaterfallmodelrequiressuchdemand.

3-2

SEPA, 6/e Instructors Guide

Thecustomermusthavepatience.Aworkingoftheprogramwill notbeavailableuntillateintheprojecttimespan. 3.3IncrementalProcessModels Theprocessmodelsinthiscategorytendtobeamongthemostwidelyused(and effective)intheindustry. 3.3.1TheIncrementalModel Theincrementalmodelcombineselementsofthewaterfallmodelappliedinan iterativefashion.Themodelapplieslinearsequencesinastaggeredfashionas calendartimeprogresses. Eachlinearsequenceproducesdeliverableincrementsofthesoftware.(Ex:a WordProcessordeliversbasicfilemgmt.,editing,inthefirstincrement;more sophisticatedediting,documentproductioncapabilitiesinthe2ndincrement; spellingandgrammarcheckinginthe3rdincrement. Whenanincrementmodelisused,the1stincrementisoftenacoreproduct.The coreproductisusedbythecustomer. Asaresultofuseand/orevaluation,aplanisdevelopedforthenextincrement. Theplanaddressesthemodificationofthecoreproducttobettermeettheneeds ofthecustomerandthedeliveryofadditionalfeaturesandfunctionality. Theprocessisrepeatedfollowingthedeliveryofeachincrement,untilthe completeproductisproduced. Ifthecustomerdemandsdeliverybyadatethatisimpossibletomeet,suggest deliveringoneormoreincrementsbythatdateandtherestoftheSoftwarelater.

Chapter Comments

3-3

increment #n
Co m m uni c a t i on Planning Modeling analys is des ign

C o n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k

increment # 2
Communic at ion Pl a nni ng Modeling analys is des ign

delivery of nth increment

C o n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fee dba c k

increment # 1
Co m m uni c a t i on Planning M odeling analys is des ign C o n s t ru c t i o n c ode t es t Dep l o y m e n t d e l i v e ry fe e dba c k

delivery of 2nd increment

delivery of 1st increment

project calendar time


3.3.1TheRADModel RapidApplicationDevelopment(RAD)isanincrementalsoftwareprocessmodel thatemphasizesashortdevelopmentcycle. RADisahighspeedadaptationofthewaterfallmodel,inwhichrapid developmentisachievedbyusingacomponentbasedconstructionapproach. Ifrequirementsarewellunderstoodandprojectscopeisconstrained,theRAD processenablesadevelopmentteamtocreateafullyfunctionalsystemwithina shortperiodoftime. WhatarethedrawbacksoftheRADmodel? 1. Forlarge,butscalableprojects,RADrequiressufficienthumanresources tocreatetherightnumberofRADteams. 2. Ifdevelopersandcustomersarenotcommittedtotherapidfireactivities necessarytocompletethesysteminamuchabbreviatedtimeframe,RAD projectwillfail. 3. Ifasystemcannotproperlybemodularized,buildingthecomponents necessaryforRADwillbeproblematic.

3-4

SEPA, 6/e Instructors Guide

Team # n
Mode ling
business modeling data modeling process modeling

Const ruct ion

Communication

Team # 2
Modeling
business modeling data modeling process modeling

component reuse automatic code generation testing

Planning Team # 1 Modeling


business modeling data modeling process modeling Construction
component reuse automatic code generation testing

Deployment
integration delivery feedback

Construction

component reuse automatic code generation testing

60 - 90 days

Chapter Comments

3-5

3.4

EvolutionaryProcessModels Softwareevolvesoveraperiodoftime;businessandproduct requirementsoftenchangeasdevelopmentproceeds,makingastraight linepathtoanendproductunrealistic. SoftwareEngineeringneedsaprocessmodelthathasbeenexplicitly designedtoaccommodateaproductthatevolvesovertime. Evolutionaryprocessmodelsareiterative.Theyproduceincreasingly morecompleteversionsoftheSoftwarewitheachiteration. 3.4.1 Prototyping

CustomersoftendefineasetofgeneralobjectivesforSoftware,but doesntidentifydetailedinput,processing,orinputrequirements. PrototypingparadigmassiststheSoftwareengineeringandthecustomer tobetterunderstandwhatistobebuiltwhenrequirementsarefuzzy.

Quick plan

Communication

Modeling Quick design

Deployment Delivery & Feedback

Construction of prototype

3-6

SEPA, 6/e Instructors Guide

Chapter Comments

3-7

Theprototypingparadigmbeginswithcommunicationwhererequirements andgoalsofSoftwarearedefined. Prototypingiterationisplannedquicklyandmodelingintheformofquick designoccurs. Thequickdesignfocusesonarepresentationofthoseaspectsofthe SoftwarethatwillbevisibletothecustomerHumaninterface. ThequickdesignleadstotheConstructionofthePrototype. Theprototypeisdeployedandthenevaluatedbythecustomer. FeedbackisusedtorefinerequirementsfortheSoftware. Iterationoccursastheprototypeistunedtosatisfytheneedsofthe customer,whileenablingthedevelopertobetterunderstandwhatneeds tobedone. Theprototypecanserveasthefirstsystem.Bothcustomersand developersliketheprototypingparadigmasusersgetafeelfortheactual system,anddevelopersgettobuildSoftwareimmediately.Yet, prototypingcanbeproblematic: 1. Thecustomerseeswhatappearstobeaworkingversionofthe Software,unawarethattheprototypeisheldtogetherwith chewinggum.Quality,longtermmaintainability.When informedthattheproductisaprototype,thecustomercriesfoul anddemandsthatfewfixesbeappliedtomakeitaworking product.Toooften,Softwaredevelopmentmanagement relents. 2. Thedevelopermakesimplementationcompromisesinorderto getaprototypeworkingquickly.AninappropriateO/Sor programminglanguageusedsimplyb/citsavailableand known.Afteratime,thedevelopermaybecomecomfortable withthesechoicesandforgetallthereasonswhytheywere inappropriate. Thekeyistodefinetherulesofthegameatthebeginning.Thecustomer andthedevelopermustbothagreethattheprototypeisbuilttoserveasa mechanismfordefiningrequirements. 3.4.2 TheSpiralModel

ThespiralmodelisanevolutionarySoftwareprocessmodelthatcouples theiterativenatureofprototypingwiththecontrolledandsystematic aspectsofthewaterfallmodel. Ithastwodistinguishingfeatures:

3-8

SEPA, 6/e Instructors Guide

a. Acyclicapproachforincrementallygrowingasystems degreeofdefinitionandimplementationwhiledecreasingits degreeofrisk. b. Asetofanchorpointmilestonesforensuringstakeholder commitmenttofeasibleandmutuallysatisfactorysolutions. Usingthespiralmodel,Softwareisdevelopedinaseriesofevolutionary releases. Duringearlystages,thereleasemightbeapapermodelorprototype. Duringlateriterations,increasinglymorecompleteversionsofthe engineeredsystemareproduced. Aspiralmodelisdividedintoasetofframeworkactivitiesdividedbythe Softwareengineeringteam. Asthisevolutionaryprocessbegins,theSoftwareteamperformsactivities thatareimpliedbyacircuitaroundthespiralinaclockwisedirection, beginningatthecenter. Riskisconsideredaseachrevolutionismade. Anchorpointmilestonesacombinationofworkproductsandconditions thatareattainedalongthepathofthespiralarenotedforeach evolutionarypass. Thefirstcircuitaroundthespiralmightresultinthedevelopmentofa productspecification;subsequentpassesaroundthespiralmightbeused todevelopaprototypeandthenprogressivelymoresophisticated versionsoftheSoftware. Eachpassthroughtheplanningregionresultsinadjustmentstothe projectplan.Costandscheduleareadjustedbasedonfeedbackderived fromthecustomerafterdelivery. UnlikeotherprocessmodelsthatendwhenSoftwareisdelivered,the spiralmodelcanbeadaptedtoapplythroughoutthelifeoftheSoftware.

Chapter Comments

3-9

pla nning
estim tio a n sch d lin e u g risk a a n lysis

c m unic tio o m a n m de o ling


a a n lysis d sig e n sta rt

de y e plo m nt
d live e ry fe d a e b ck

c nstruc n o tio
co e d te st

3-10

SEPA, 6/e Instructors Guide

3.4.3 TheconcurrentDevelopmentModel Theconcurrentdevelopmentmodel,sometimescalledconcurrentengineering, canberepresentedschematicallyasaseriesofframeworkactivities, Softwareengineeringactionsoftasks,andtheirassociatedstates. Theconcurrentmodelisoftenmoreappropriateforsystemengineering projectswheredifferentengineeringteamsareinvolved.


none Modeling activity

Under development

represents the state of a software engineering activity or task

A waiting changes

Under review Under revision Baselined

Done

FigureaboveprovidesaschematicrepresentationofoneSoftwareengineering taskwithinthemodelingactivityfortheconcurrentprocessmodel.Theactivity modelingmaybeinanyoneofthestatesnotedatanygiventime. Allactivitiesexistconcurrentlybutresideindifferentstates. Forexample,earlyintheprojectthecommunicationactivityhascompleteditsfirst iterationandexistsintheawaitingchangesstate.Themodelingactivitywhich existedinthenonestatewhileinitialcommunicationwascompletednowmakes atransitionintounderdevelopmentstate.

Chapter Comments

3-11

If,however,thecustomerindicatesthechangesinrequirementsmustbemade, themodelingactivitymovesfromtheunderdevelopmentstateintotheawaiting changesstate. Theconcurrentprocessmodeldefinesaseriesofeventsthatwilltrigger transitionsfromstatetostateforeachoftheSoftwareengineeringactivities, actions,ortasks. SpecializedProcessModels 3.5.1ComponentBasedDevelopment Commercialofftheshelf(COTS)Softwarecomponents,developedbyvendors whoofferthemasproducts,canbeusedwhenSoftwareistobebuilt.These componentsprovidetargetedfunctionalitywithwelldefinedinterfacesthat enablethecomponenttobeintegratedintotheSoftware. Thecomponentbaseddevelopmentmodelincorporatesmanyofthecharacteristics ofthespiralmodel. Thecomponentbaseddevelopmentmodelincorporatesthefollowingsteps: Availablecomponentbasedproductsareresearchedandevaluatedforthe applicationdomaininquestion. Componentintegrationissuesareconsidered. Softwarearchitectureisdesignedtoaccommodatethecomponents. Componentsareintegratedintothearchitecture. Comprehensivetestingisconductedtoensureproperfunctionality. ThecomponentbaseddevelopmentmodelleadstoSoftwarereuse,andreusability providesSoftwareengineerswithanumberofmeasurablebenefits. 3.5.1TheFormalMethodsModel TheFormalMethodsModelencompassesasetofactivitiesthatleadstoformal mathematicalspecificationsofSoftware. FormalmethodsenableaSoftwareengineertospecify,develop,andverifya computerbasedsystembyapplyingarigorous,mathematicalnotation. Avariationofthisapproach,calledcleanroomSoftwareengineeringiscurrently appliedbysomesoftwaredevelopmentorganizations. http://www.sei.cmu.edu/str/descriptions/cleanroom.html

3-12

SEPA, 6/e Instructors Guide

Althoughnotamainstreamapproach,theformalmethodsmodeloffersthe promiseofdefectfreeSoftware.Yet,concernaboutitsapplicabilityinabusiness environmenthasbeenvoiced: Thedevelopmentofformalmodelsiscurrentlyquitetimeconsumingand expensive. B/Cfewsoftwaredevelopershavethenecessarybackgroundtoapply formalmethods,extensivetrainingisrequired. Itisdifficulttousethemethodsasacommunicationmechanismfor technicallyunsophisticatedcustomers. 3.5.3AspectOrientedSoftwareDevelopment Regardlessofthesoftwareprocessthatischosen,thebuildersofcomplex softwareinvariablyimplementasetoflocalizedfeatures,functions,and informationcontent.Forfurtherinformationreadbookpage61. 3.6 TheUnifiedProcess

Ausecasedriven,architecturecentric,iterativeandincrementalsoftware processcloselyalignedwiththeUnifiedModelingLanguage(UML). http://www.jeckle.de/files/uniproc.pdf,http://www 01.ibm.com/software/awdtools/rup/ TheUPisanattempttodrawonthebestfeaturesandcharacteristicsof conventionalsoftwareprocessmodels,butcharacterizetheminawaythat implementsmanyofthebestprinciplesofagilesoftwaredevelopment. TheUPrecognizestheimportanceofcustomercommunicationandstreamlined methodsfordescribingthecustomersviewofasystem. Itemphasizestheimportantroleofsoftwarearchitectureandhelpsthearchitect focusontherightgoals,suchasunderstandability,reliancetofuturechanges, andreuse. UMLprovidesthenecessarytechnologytosupportObjectOrientedSoftware Engineeringpractice,butitdoesntprovidetheprocessframeworktoguide projectteamsintheirapplicationofthetechnology. TheUMLdevelopersdevelopedtheUnifiedProcess,aframeworkObjectOriented SoftwareEngineeringusingUML. 3.6.2PhasesoftheUnifiedProcess

Chapter Comments

3-13

ThefigurebelowdepictsthephasesoftheUPandrelatesthemtothegeneric activities. TheInceptionphaseoftheUPencompassesbothcustomercommunicationand planningactivities. Bycollaboratingwiththecustomerandendusers,businessrequirementsforthe softwareareidentified,arougharchitectureforthesystemisproposed,anda planfortheiterative,incrementalnatureoftheensuingprojectisdeveloped.


Elaboration Inception

construction
Release
software increment

transition

production

Ausecasedescribesasequenceofactionsthatareperformedbyanactor (person,machine,anothersystem)astheactorinteractswiththeSoftware. Theelaborationphaseencompassesthecustomercommunicationandmodeling activitiesofthegenericprocessmodel.Elaborationrefinesandexpandsthe preliminaryusecasesthatweredevelopedaspartoftheinceptionphaseand expandsthearchitecturalrepresentationtoincludefivedifferentviewsofthe softwaretheusecasemodel,theanalysismodel,thedesignmodel,the implementationmodel,andthedeploymentmodel. TheconstructionphaseoftheUPisidenticaltotheconstructionactivitydefined forthegenericsoftwareprocess. Usingthearchitecturalmodelasinput,theconstructionphasedevelopsor acquiresthesoftwarecomponentsthatwillmakeeachusecaseoperationalfor endusers.

3-14

SEPA, 6/e Instructors Guide

ThetransitionphaseoftheUPencompassesthelatterstagesofthegeneric constructionactivityandthefirstpartofthegenericdeploymentactivity. Softwareisgiventoendusersforbetatesting,anduserfeedbackreportsboth defectsandnecessarychanges. Attheconclusionofthetransitionphase,thesoftwareincrementbecomesa usablesoftwarereleaseusermanuals,troubleshootingguides,andinstallation procedures.) TheproductionphaseoftheUPcoincideswiththedevelopmentactivityofthe genericprocess. Theongoinguseofthesoftwareismonitored,supportfortheoperating environmentisprovidedanddefectreportsandrequestsforchangesare submittedandevaluated. ASoftwareEngineeringworkflowisdistributedacrossallUPphases. UP Phases
Inception Elaboration Construction Transition Production

Workflows Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n

http://www.uml.org/istheUML Resource Page. Please link to it and familiarize yourself with it.

Potrebbero piacerti anche