Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3-1
Chapter
PrescriptiveProcessModels
CHAPTEROVERVIEWANDCOMMENTS Thisintentofthischapteristopresentprocessmodelsusedbyprofessional softwaredeveloperstomanagelargescalesoftwareprojects.Nosoftware processworkswellforeveryproject.However,everyprojectneedstoconformto somesystematicprocessinordertomanagesoftwaredevelopmentactivitiesthat caneasilygetoutofcontrol.Softwareprocesseshelptoorganizethework productsthatneedtobeproducedduringasoftwaredevelopmentproject. Ultimatelythebestindicatorofhowwellasoftwareprocesshasworkedisthe qualityofthedeliverablesproduced.Awellmanagedprocesswillproducehigh qualityproductsontimeandwithinbudget. 3.1 PrescriptiveModels
Communication
project initiation requirement gathering
Modeling
analysis design
Construction
code test
Deployment
delivery support f eedback
3-2
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
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
3-4
Team # n
Mode ling
business modeling data modeling process modeling
Communication
Team # 2
Modeling
business modeling data modeling process modeling
Deployment
integration delivery feedback
Construction
60 - 90 days
Chapter Comments
3-5
3.4
EvolutionaryProcessModels Softwareevolvesoveraperiodoftime;businessandproduct requirementsoftenchangeasdevelopmentproceeds,makingastraight linepathtoanendproductunrealistic. SoftwareEngineeringneedsaprocessmodelthathasbeenexplicitly designedtoaccommodateaproductthatevolvesovertime. Evolutionaryprocessmodelsareiterative.Theyproduceincreasingly morecompleteversionsoftheSoftwarewitheachiteration. 3.4.1 Prototyping
Quick plan
Communication
Construction of prototype
3-6
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
3-8
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
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
Under development
A waiting changes
Done
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
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
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
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
http://www.uml.org/istheUML Resource Page. Please link to it and familiarize yourself with it.