Unified software development process
Sixmajorexperiences
Iterativedevelopment.Itisalmostimpossibletofullyandaccuratelycaptureuserneedsintheearlystagesofsoftwaredevelopment.Infact,theproblemweoftenencounteristhatrequirementsoftenchangethroughoutthesoftwaredevelopmentproject.Iterativedevelopmentallowschangesinrequirementsduringeachiteration,anddeepenstheunderstandingoftheproblemthroughcontinuousrefinement.Iterativedevelopmentcannotonlyreducetheriskoftheproject,buteachiterativeprocessendswithanexecutableversion,whichcanencouragedevelopers.
Managerequirements.Determiningtherequirementsofthesystemisacontinuousprocess,anditisimpossiblefordeveloperstofullyexplainthetruerequirementsofasystembeforedevelopingthesystem.RUPdescribeshowtoextract,organizeanddocumentthefunctionsandconstraintsofthesystem,andtheuseofusecasesandscriptshasproventobeaneffectivewaytocapturefunctionalrequirements.
Component-basedarchitecture.Componentsmakereusepossible,andthesystemcanbecomposedofcomponents.Anarchitecturebasedonindependent,replaceable,andmodularcomponentshelpsmanagecomplexityandincreasereuserates.RUPdescribeshowtodesignasoftwarearchitecturethatisflexible,adaptabletochanges,easytounderstand,andconducivetoreuse.
Visualmodeling.RUPisoftenassociatedwithUMLtoestablishavisualmodelofthesoftwaresystemtohelppeopleprovidetheabilitytomanagethecomplexityofthesoftware.RUPtellsushowtovisuallymodelsoftwaresystemsandobtaininformationaboutthestructureandbehaviorofthearchitectureandcomponents.
Verifysoftwarequality.InRUP,softwarequalityassessmentisnolongeraseparateactivitycarriedoutafterthefactoraseparateteam,butallactivitiesbuiltintotheprocess,sothatdefectsinthesoftwarecanbefoundearly.
Controlsoftwarechanges.Withoutstrictcontrolandcoordinationiniterativedevelopment,theentiresoftwaredevelopmentprocesswillsoonfallintochaos.RUPdescribeshowtocontrol,track,monitor,andmodifytoensuresuccessfuliterativedevelopment.RUPisolatesthechangesfromotherworkspacesthroughtheproductsinthesoftwaredevelopmentprocess,soastoestablishasafeworkspaceforeachdeveloper.
Developmentprocess
Thetwo-dimensionaldevelopmentoftheunifiedsoftwaredevelopmentprocessRUPface=Verdana>TheRUPsoftwaredevelopmentlifecycleisatwo-dimensionalsoftwaredevelopmentmodel.Thehorizontalaxisisorganizedthroughtimeandisthelifecyclecharacteristicoftheprocessunfolding,reflectingthedynamicstructureofthedevelopmentprocess.ThetermsusedtodescribeitmainlyincludeCycle,Phase,IterationandMilestone;Theaxisisorganizedasanaturallogicalactivitybycontent,whichreflectsthestaticstructureofthedevelopmentprocess.ThetermsusedtodescribeitmainlyincludeActivity,Artifact,WorkerandWorkflow.Figure1:
Coreconcepts
SomecoreconceptsaredefinedinRUP,asshownbelow:
Role:Describethebehaviorandresponsibilitiesofapersonoragroup.RUPdefinesmanyrolesinadvance.
Activity:isanindependentunitofworkwithaclearpurpose.
Artifact:Apieceofinformationgenerated,createdormodifiedbyanactivity.
Tailoring
RUPisageneralprocesstemplate,whichcontainsmanydevelopmentguides,products,androledescriptionsinvolvedinthedevelopmentprocess.Becauseitisverylarge,itisveryimportantforspecificdevelopmentorganizations.Andtheproject,whenyouuseRUP,youstillneedtocut,thatis,youneedtoconfigureRUP.RUPislikeameta-process.ManydifferentdevelopmentprocessescanbeobtainedbytailoringRUP.ThesesoftwaredevelopmentprocessescanberegardedasspecificexamplesofRUP.RUPtailoringcanbedividedintothefollowingsteps:
1)Determinewhichworkflowisrequiredforthisproject.The9coreworkflowsofRUParenotalwaysnecessary,andcanbechosen.
2)Determinewhichproductsarerequiredforeachworkflow.
3)Determinehowtoevolvebetweenthe4stages.Todeterminetheevolutionbetweenstagesshouldbebasedontheprincipleofriskcontrol,determinewhichworkflowsarerequiredineachstage,towhatextenteachworkflowisexecuted,whatproductsarethere,andtowhatextenteachproductiscompleted.
4)Determinetheiterationplanwithineachphase.Planthecontentdevelopedineachiterationofthe4stagesofRUP.
5)Plantheinternalstructureoftheworkflow.Workflowinvolvesroles,activitiesandproducts,anditscomplexityisrelatedtothescaleoftheproject,thatis,thenumberofroles.Finally,plantheinternalstructureoftheworkflow,usuallygivenintheformofanactivitydiagram.
Milestones
ThesoftwarelifecycleinRUPisbrokendownintofoursequentialphasesintime,namely:theinitialphase(Inception),therefinementphase(Elaboration),constructionphase(Construction)anddeliveryphase(Transition).Eachphaseendsinamajormilestone(MajorMilestones);eachphaseisessentiallythetimespanbetweentwomilestones.Attheendofeachstage,anassessmentisperformedtodeterminewhetherthegoalsofthisstagehavebeenmet.Iftheevaluationresultsaresatisfactory,theprojectcanbeallowedtoenterthenextstage.
Theinitialstage
Thegoaloftheinitialstageistoestablishabusinesscaseforthesystemanddeterminetheboundariesoftheproject.Inordertoachievethisgoal,allexternalentitiesthatinteractwiththesystemmustbeidentified,andthecharacteristicsoftheinteractionmustbedefinedatahigherlevel.Thisstageisofgreatsignificance.Whatisconcernedinthisstageisthemainbusinessanddemandrisksoftheentireproject.Foradevelopmentprojectbasedontheoriginalsystem,theinitialstagemaybeshort.Theendoftheinitialphaseisthefirstimportantmilestone:theLifecycleObjectivemilestone.Thelifecycletargetmilestoneevaluatesthebasicviabilityoftheproject.
Refinementstage
Thegoaloftherefinementstageistoanalyzetheproblemdomain,establishasoundsystemstructurefoundation,prepareaprojectplan,andeliminatethemostriskyelementsintheproject.Inordertoachievethisgoal,itisnecessarytomakedecisionsonthearchitecturebasedontheunderstandingoftheentiresystem,includingitsscope,mainfunctions,andnon-functionalrequirementssuchasperformance.Atthesametime,establishasupportenvironmentfortheproject,includingcreatingdevelopmentcases,creatingtemplates,guidelines,andpreparingtools.Thesecondimportantmilestoneattheendoftherefinementphase:theLifecycleArchitecturemilestone.Thelifecyclestructuremilestoneestablishesamanagementbenchmarkforthestructureofthesystemandenablestheprojectteamtomeasureitduringtheconstructionphase.Atthismoment,itisnecessarytoexaminethedetailedsystemobjectivesandscope,thechoiceofstructure,andthesolutionstothemainrisks.
Constructionphase
Intheconstructionphase,allremainingcomponentsandapplicationfunctionsaredevelopedandintegratedintoproducts,andallfunctionsaretestedindetail.Inasense,theconstructionphaseisamanufacturingprocessthatfocusesonmanagingresourcesandcontrollingoperationstooptimizecost,schedule,andquality.Theendoftheconstructionphaseisthethirdimportantmilestone:theInitialOperationalmilestone.Theinitialfunctionalmilestonedetermineswhethertheproductcanbedeployedinatestenvironment.Atthismoment,itisnecessarytodeterminewhetherthesoftware,environment,anduserscanstarttheoperationofthesystem.Theproductversionatthistimeisalsooftenreferredtoasthe"beta"version.
Deliveryphase
Thefocusofthedeliveryphaseistoensurethatthesoftwareisavailabletotheenduser.Thedeliveryphasecanspanseveraliterations,includingproducttestinginpreparationforrelease,andsmalladjustmentsbasedonuserfeedback.Atthispointinthelifecycle,userfeedbackshouldmainlyfocusonproductadjustments,setup,installation,andusabilityissues.Allmajorstructuralissuesshouldhavebeenresolvedintheearlystagesoftheprojectlifecycle.Theendofthedeliveryphaseisthefourthmilestone:theProductReleasemilestone.Atthispoint,itisnecessarytodeterminewhetherthegoalisachievedandwhetheranotherdevelopmentcycleshouldbestarted.Insomecasesthismilestonemaycoincidewiththeendoftheinitialphaseofthenextcycle.
CoreWork
(CoreWorkflows)
Thereare9coreworkflowsinRUP,whicharedividedinto6CoreProcessWorkflowsand3CoreSupportingWorkflows.Althoughthesixcoreprocessworkflowsmaybereminiscentofseveralstagesinthetraditionalwaterfallmodel,itshouldbenotedthatthestagesintheiterativeprocessarecompletelydifferent,andtheseworkflowsareaccessedagainandagainthroughoutthelifecycle.The9coreworkflowsareusedinturnsintheproject,repeatedwithdifferentemphasisandintensityineachiteration.
BusinessModeling
Businessmodelingworkflowdescribeshowtodevelopanideaforanewtargetorganization,andbasedonthisideainthebusinessusecasemodelandbusinessobjectmodelDefinetheorganization’sprocesses,rolesandresponsibilities.
Requirements(Requirements)
Thegoaloftherequirementsworkflowistodescribewhatthesystemshoulddo,andtoenabledevelopersanduserstoreachaconsensusonthisdescription.Inordertoachievethisgoal,therequiredfunctionsandconstraintsmustbeextracted,organized,anddocumented;themostimportantthingistounderstandthedefinitionandscopeoftheproblemtobesolvedbythesystem.
Analysis&Design
Theanalysisanddesignworkflowtransformsrequirementsintothedesignofthefuturesystem,developsarobuststructureforthesystemandadjuststhedesigntomakeitcompatiblewithRealizethematchingoftheenvironmentandoptimizeitsperformance.Theresultoftheanalysisdesignisadesignmodelandanoptionalanalysismodel.Thedesignmodelisanabstractionofthesourcecode,composedofdesignclassesandsomedescriptions.Thedesignclassisorganizedintoadesignpackage(Package)andadesignsubsystem(Subsystem)withgoodinterfaces,andthedescriptionreflectshowtheobjectsoftheclassworktogethertorealizethefunctionoftheusecase.Thedesignactivityiscenteredonthearchitecturedesign.Thearchitectureisexpressedbyseveralstructuralviews.Thestructuralviewisanabstractionandsimplificationoftheentiredesign.Somedetailsareomittedfromthisviewtomaketheimportantfeaturesmoreclear.Thearchitectureisnotonlyacarriermediumforgooddesignmodels,butalsoimprovesthequalityofthecreatedmodelsinthedevelopmentofthesystem.
4.Implementation(Implementation)Thepurposeofimplementingworkflowincludesdefiningtheorganizationstructureofcodeintheformofhierarchicalsubsystems;implementingclassesandobjectsintheformofcomponents(sourcefiles,binaryfiles,executablefiles);willdevelopThecomponentsaretestedasaunitandintegratetheresultsproducedbyasingledeveloper(orgroup)tomakeitanexecutablesystem.
Test
Thetestworkflowmustverifytheinteractionbetweenobjects,verifythecorrectintegrationofallcomponentsinthesoftware,verifythatallrequirementshavebeencorrectlyimplemented,identifyandConfirmthatdefectsareraisedanddealtwithbeforesoftwaredeployment.RUPproposesaniterativeapproach,whichmeanstestingthroughouttheproject,soastofinddefectsasearlyaspossible,andfundamentallyreducethecostofcorrectingdefects.Thetestissimilartoathree-dimensionalmodel,whichiscarriedoutintermsofreliability,functionality,andsystemperformance.6.Deployment(Deployment)Thepurposeofthedeploymentworkflowistosuccessfullygeneratetheversionanddistributethesoftwaretotheendusers.Thedeploymentworkflowdescribestheactivitiesrelatedtoensuringtheavailabilityofsoftwareproductstoendusers,including:softwarepackaging,generatingproductsotherthanthesoftwareitself,installingsoftware,andprovidinghelptousers.Insomecases,itmayalsoincludeplanningandconductingbetatesting,portingexistingsoftwareanddata,andformalacceptance.
7.Configuration&ChangeManagement(Configuration&ChangeManagement)
Configurationandchangemanagementworkflowdescribeshowtocontrolalargenumberofproductsinaprojectcomposedofmultiplemembers.Theconfigurationandchangemanagementworkflowprovidesguidelinestomanagemultiplevariantsinanevolvingsystemandtrackversionsduringsoftwarecreation.Workflowdescribeshowtomanageparalleldevelopment,distributeddevelopment,andhowtoautomatethecreationofprojects.Atthesametime,italsoexplainedthereason,time,andpersonnelmaintainingauditrecordsforproductmodification.
8.ProjectManagementSoftwareprojectmanagementbalancesvariousconflictinggoals,managesrisks,overcomesvariousconstraints,andsuccessfullydeliversproductsthatsatisfyusers.Itsgoalsinclude:providingaframeworkforprojectmanagement,providingpracticalguidelinesforplanning,staffing,executionandmonitoringofprojects,andprovidingaframeworkformanagingrisks.
9.Environment(Environment)Thepurposeoftheenvironmentworkflowistoprovidesoftwaredevelopmentorganizationswithasoftwaredevelopmentenvironment,includingprocessesandtools.Theenvironmentalworkflowfocusesontheactivitiesrequiredintheprocessofconfiguringtheproject,andalsosupportstheactivitiesofdevelopingprojectspecifications,providesastep-by-stepinstructionmanualanddescribeshowtoimplementtheprocessintheorganization.
Iterativedevelopment
EachstageinRUPcanbefurtherbrokendownintoiterations.Aniterationisacompletedevelopmentcyclethatproducesanexecutableproductversion,whichisasubsetofthefinalproduct.Itdevelopsincrementally,fromoneiterativeprocesstoanotheriterativeprocesstobecomethefinalsystem.Thetraditionalprojectorganizationistosequentiallygothrougheachworkflow,eachworkflowonlyonce,whichisthewaterfalllifecyclewearefamiliarwith(seeFigure2).Theresultofthisisthatbytheendoftheimplementation,theproductiscompletedandtestingbegins.Alargenumberofhiddenproblemsleftoverintheanalysis,design,andimplementationphaseswillappear.Theprojectmayhavetostopandstartalongerrorcorrectioncycle.Amoreflexibleandlessriskymethodistogothroughdifferentdevelopmentworkflowsmultipletimes,sothatyoucanbetterunderstandtherequirements,constructarobustarchitecture,andfinallydeliveraseriesofgraduallycompletedversions.Thisiscalledaniterativelifecycle.Eachsequentialpassintheworkflowiscalledaniteration.Thesoftwarelifecycleisaniterativecontinuum,throughwhichsoftwareisincrementaldevelopment.Aniterationincludesthedevelopmentactivitiestogenerateanexecutableversion,aswellasotherauxiliarycomponentsnecessarytousethisversion,suchasversiondescriptions,userdocumentation,andsoon.Therefore,adevelopmentiterationis,inasense,acompleteprocessinallworkflows.Theseworkflowsincludeatleast:requirementsworkflow,analysisanddesignworkflow,implementationworkflow,andtestingworkflow.Itislikeasmallwaterfallprojectinitself(seeFigure3).
Comparedwiththetraditionalwaterfallmodel,theiterativeprocesshasthefollowingadvantages:
Itreducestheriskofspendingonanincrement.Ifadeveloperrepeatsaniteration,thelossisonlythecostoftheincorrectlydevelopediteration.
Reducetheriskthattheproductcannotenterthemarketaccordingtotheestablishedschedule.Byidentifyingrisksearlyindevelopment,theycanberesolvedasearlyaspossiblewithoutrushinginlatedevelopment.
Acceleratedtheprogressoftheentiredevelopmentwork.Becausedevelopersknowthefocusoftheproblem,theirworkwillbemoreefficient.
Sinceuserneedscannotbefullydefinedatthebeginning,theyareusuallyrefinedinsubsequentstages.Therefore,theiterativeprocessmodelmakesiteasiertoadapttochangesindemand.
Tenelements
1.Developmentprospects
2.Reachtheplan
3.Identifyandreducerisks
4.Assignandtracktasks..
5.Checkthebusinessreason
6.Designthecomponentarchitecture
7.Incrementallybuildandtesttheproduct
8.Verificationandevaluationresults
9.Managementandcontrolofchanges
10.Provideusersupport
Let’sreviewtheseelementsonebyoneandtakealookatthemWhereisRUPsuitable,andfindoutwhytheycanbethetoptenelements.1.DevelopaprospectHavingaclearprospectisthekeytodevelopingaproductthatmeetstherealneedsofstakeholders.TheoutlookcapturestheessentialsoftheRUPrequirementsprocess:analyzeproblems,understandstakeholderrequirements,definesystems,andmanagerequirementswhenrequirementschange.Theprospectsprovideahigh-levelandsometimescontractualbasisformoredetailedtechnicalrequirements.Asthetermimplies,itisaclear,usuallyhigh-levelviewofasoftwareprojectthatcanbeborrowedbyanydecisionmakerorimplementerintheprocess.Itcapturesveryhigh-levelrequirementsanddesignconstraints,allowingprospectivereaderstounderstandthesystemtobedeveloped.Italsoprovidesinputtotheprojectapprovalprocessandisthereforecloselyrelatedtobusinessreasons.Finally,becausetheprospectsconstitute"whatistheproject?"and"whydoyouwanttocarryoutthisproject?",theprospectscanbeusedasoneofthewaystoverifyfuturedecisions.Thevisionstatementshouldanswerthefollowingquestions,whichcanbedividedintosmaller,moredetailedquestionsifnecessary:Whatarethekeyterms?(Glossary)?Whatproblemarewetryingtosolve?(Problemstatement)?Whoarethestakeholders?Whoaretheusers??Whatarethefunctionalrequirements?(UseCases)?Whatarethenon-functionalrequirements??Whatarethedesignconstraints?
2.Reachtheplan"Thequalityoftheproductwillonlybeasgoodastheproductplan."(2)InRUP,thesoftwaredevelopmentplan(SDP)integratesthemanagementprojectThevariousinformationrequiredmayincludesomeseparatecontentdevelopedintheinceptionstage.SDPmustbemaintainedandupdatedthroughouttheproject.SDPdefinestheprojecttimetable(includingprojectplananditerationplan)andresourcerequirements(resourcesandtools),andcantracktheprogressoftheprojectaccordingtotheprojectschedule.Italsoguidestheplanningofotherprocesscomponents(original:processcomponents):projectorganization,demandmanagementplan,configurationmanagementplan,problemsolvingplan,QAplan,testplan,evaluationplan,andproductacceptanceplan.
Insimplerprojects,thestatementoftheseplansmayonlybeoneortwosentences.Forexample,theconfigurationmanagementplancanbesimplystatedasfollows:Attheendofeachday,thecontentsoftheprojectdirectorywillbecompressedintoaZIPpackage,copiedtoaZIPdisk,taggedwiththedateandversion,andplacedinthecentralfilingcabinet.Theformatofthesoftwaredevelopmentplanisfarlessimportantthantheplanningactivitiesthemselvesandtheideasthatdrivethem.AsDwightD.Eisenhowersaid:"Planisnothing,planningiseverything.""Achievingaplan"—alongwithitems3,4,5,and8inthelist—capturesthemainpointsoftheprojectmanagementprocessinRUP.Theprojectmanagementprocessincludesthefollowingactivities:conceptualizingtheproject,evaluatingtheprojectscaleandrisks,monitoringandcontrollingtheproject,planningandevaluatingeachiterationandstage.
3.IdentifyandreducerisksOneofthemainpointsofRUPistoidentifyanddealwiththebiggestrisksearlyintheproject.Eachriskidentifiedbytheprojectteamshouldhaveacorrespondingmitigationorresolutionplan.Therisklistshouldbeusedbothasaplanningtoolforprojectactivitiesandasabasisfordeterminingiterations.
4.AssignandtracktasksOnethingisimportantinanyproject,thatis,continuousanalysisofobjectivedataderivedfromongoingactivitiesandevolvingproducts.InRUP,regularprojectstatusassessmentprovidesamechanismfortelling,communicating,andsolvingmanagementissues,technicalissues,andprojectrisks.Oncetheteamfoundtheseobstacles(fences),theyassignedapersoninchargeofalltheseproblemsandspecifiedadateforresolution.Progressshouldbetrackedregularly,andupdatesshouldbereleasedifnecessary.(Original:updatesshouldbeissuedasnecessary.)Theseproject"snapshots"highlightissuesthatrequiremanagementattention.Overtime/althoughtheperiodmayvary(Original:Whiletheperiodmayvary.),regularassessmentsallowmanagerstocapturethehistoryoftheprojectandremoveanyobstaclesorbottlenecksthatlimitprogress.
5.CheckthebusinessjustificationThebusinessjustificationprovidesthenecessaryinformationfromabusinessperspectivetodeterminewhetheraprojectisworthinvestingin.Businessjustificationcanalsohelpdevelopaneconomicplanneededtorealizetheproject'sprospects.Itprovidesarationalefortheprojectandestablisheseconomicconstraints.Whentheprojectcontinues,analystsusebusinessreasonstocorrectlyestimatethereturnoninvestment(ROI,orreturnoninvestment).Thebusinesscaseshouldcreateashortbutcompellingreasonfortheproject,ratherthandelveintothedetailsoftheproblem,sothatallprojectmemberscaneasilyunderstandandrememberit.Atthekeymilestones,themanagershouldreviewthebusinessreason,calculatetheactualcost,theexpectedreturn,anddecidewhethertheprojectwillcontinue.
6.DesigncomponentarchitectureInRUP,thearchitectureofacomponentsystemreferstotheorganizationorstructureofthekeycomponentsofasystem.Thecomponentsinteractthroughinterfaces,andthecomponentsarecomposedofsomeComposedofsmallercomponentsandinterfaces.Thatis,whatisthemainpart?Howdotheyfittogether?RUPprovidesaverysystematicmethodfordesigning,developing,andverifyingarchitectures.Theanalysisanddesignprocessincludesthefollowingsteps:definingcandidatearchitectures,refiningarchitectures,analyzingbehaviors(usecaseanalysis),anddesigningcomponents.Tostateanddiscusssoftwarearchitecture,youmustfirstcreateanarchitecturerepresentationinordertodescribetheimportantaspectsofthearchitecture.InRUP,thearchitecturerepresentationiscapturedbythesoftwarearchitecturedocument,whichprovidesmultipleviewstothearchitecture.Eachviewdescribesanaspectoftheongoingsystemthatisofinteresttoacertaingroupofstakeholders.Stakeholdersincludeendusers,designers,managers,systemengineers,systemadministrators,andsoon.Thisdocumentenablesthesystemarchitectandotherprojectteammemberstocommunicateeffectivelyonmajordecisionsrelatedtothearchitecture.
7.IncrementalbuildandtestofproductsThemainpointoftheimplementationandtestingprocessinRUPistheincrementalcoding,construction,andtestingthroughouttheprojectlifecycleThesystemcomponentgeneratesanexecutableversionattheendofeachiterationaftertheinitiation.Attheendoftheelaborationphase,thereisalreadyanarchitecturalprototypethatcanbeusedforevaluation;ifnecessary,itcanincludeauserinterfaceprototype.Then,ineachiterationoftheconstructionphase,thecomponentsarecontinuouslyintegratedintotheexecutable,testedversion,andcontinuetoevolvetothefinalproduct.Dynamicandtimelyconfigurationmanagementandreviewactivitiesarealsothekeytothisbasicprocesselement(original:essentialprocesselement).
8.VerificationandevaluationresultsAsthenameimplies,RUP'siterativeevaluationcapturestheresultsoftheiteration.Evaluationdeterminestheextenttowhichtheiterationmeetstheevaluationcriteria,andalsoincludeslessonslearnedandprocessimprovementsimplemented.Dependingonthesizeandriskoftheprojectandthecharacteristicsoftheiteration,theevaluationcanbeasimplerecordofthedemonstrationanditsresults,oritcanbeacompleteandformaltestreviewrecord.Thekeyhereistofocusonbothprocessissuesandproductissues.Thesoonertheproblemisfound,thelessproblematicitwillbe.(Original:Thesooneryoufallbehind,themoretimeyouwillhavetocatchup.)
9.ManageandcontrolchangesThemainpointsofRUP’sconfigurationandchangemanagementprocessareManageandcontrolthescaleoftheprojectwhenchangesoccur,andthroughouttheentirelifecycle.Thepurposeistoconsiderallthestakeholders'needsandsatisfythemasmuchaspossiblewhilestilldeliveringqualifiedproductsinatimelymanner.Afterusersgetthefirstprototypeoftheproduct(andoftenaskforchangesbeforethen),theywillaskforchanges.Itisimportantthattheprocessofproposingandmanagingchangesisalwaysconsistent.InRUP,changerequestsareusuallyusedtorecordandtrackdefectsandenhancements,oranyothertypeofchangerequestsforproducts.Achangerequestprovidesameanstoassessthepotentialimpactofachange,whilerecordingthedecisionsmaderegardingthesechanges.Theyalsohelpensurethatallprojectteammembersunderstandthepotentialimpactofthechange.
10.ProvideusersupportInRUP,themainpointofthedeploymentprocessistopackageanddelivertheproduct,whiledeliveringauserguidethathelpsenduserslearn,use,andmaintaintheproduct(Perhapsitisprovidedthroughonlinehelp),andtheremaybeaninstallationguideandversionreleasenotes.Dependingonthecomplexityoftheproduct,usersmayalsoneedcorrespondingtrainingmaterials.Finally,throughabillofmaterials(BOM,BillofMaterials)clearlyrecordwhichmaterialsshouldbedeliveredwiththeproduct.Regardingtherequirements,afterreadingmylistofelements,somepeoplemaydisagreewithmychoiceverymuch.Forexample,hewouldask,wherearetheneeds?Aretheynotimportant?IwilltellhimwhyIdidn'tincludethem.Sometimes,Iwillaskaprojectteam(especiallytheprojectteamofaninternalproject):"Whatareyourneeds?"TheanswerIgetis:"Wereallydon'thaveanyneeds."AtfirstIwasverysurprised(Ihaveamilitarybackgroundinaerospacedevelopment).Howcantheyhavenodemand?WhenIinquiredfurther,Ifoundthatforthem,therequirementsmeanasetofmandatorystatementsmadebytheoutside,andwhattheymustberequiredtodo,otherwisetheprojectacceptancewillnotbepassed.Buttheydidnotgetsuchastatement.Especiallywhentheprojectteamistrappedinaresearchanddevelopmentsituation,productrequirementsareevolvingfrombeginningtoend.Therefore,Ithenaskedthemanotherquestion:"Okay,sowhatistheprospectofyourproduct?".Thentheireyeslitup.Then,wecommunicatedverysmoothlyontheissueslistedinthefirstelement("DevelopaProspect"),andtherequirementsflownaturally(original:andtherequirementsjustflownaturally.).Perhapsitisonlyusefultoadd"satisfyingneeds"tothelistofelementsforprojectteamsworkingundercontractswithclearneeds.Remember,mylistisonlymeantasastartingpointforfurtherdiscussion.
Summary
RUPhasmanyadvantages:itimprovesteamproductivity,intheiterativedevelopmentprocess,demandmanagement,component-basedarchitecture,visualsoftwaremodeling,verificationsoftwarequalityandcontrolForsoftwarechangesandotheraspects,eachdevelopmentmemberisprovidedwiththenecessaryguidelines,templatesandtoolguidanceforallkeydevelopmentactivities,andensuresthatallmemberssharethesameknowledgebase.Itestablishesaconciseandclearprocessstructureandprovidesgreaterversatilityforthedevelopmentprocess.Butatthesametime,italsohassomeshortcomings:RUPisjustadevelopmentprocess,anddoesnotcoverallthecontentofthesoftwareprocess,forexample,itlackscontentaboutsoftwareoperationandsupport;inaddition,itdoesnotsupportmulti-projectdevelopmentstructure,whichiscertainToacertainextent,itreducesthepossibilityoflarge-scalereuseinthedevelopmentorganization.ItcanbesaidthatRUPisaverygoodstart,butitisnotperfect.Inactualapplications,itcanbeimprovedasneeded,andRUPcanbesupplementedandimprovedwithrelatedcontentofothersoftwareprocessessuchasOPENandOOSP.
Latest: Ericsson
Next: Aero Engine Materials