Unified software process
Introduction
RUP(RationalUnifiedProcess,unifiedsoftwaredevelopmentprocess,unifiedsoftwareprocess)isanobject-orientedandnetwork-basedprogramdevelopmentmethodology.AccordingtoRational(thedeveloperofRationalRoseandUnifiedModelingLanguage),itislikeanonlineinstructor,whichcanprovideguidelines,templatesandcasesupportforallaspectsandlevelsofprogramdevelopment.RUPandsimilarproducts-suchasObject-OrientedSoftwareProcess(OOSP)andOPENProcessareallcomprehensiblesoftwareengineeringtools-tocombinetheprocess-orientedaspectsofdevelopment(suchasdefinedphases,techniquesandpractices)withotherdevelopmentThecomponents(suchasdocuments,models,manuals,codes,etc.)areintegratedinaunifiedframework.
Sixmajorexperiences
Iterativedevelopment
Itisalmostimpossibletofullyandaccuratelycaptureuserneedsintheearlystagesofsoftwaredevelopment.Infact,theproblemweoftenencounteristhatrequirementsoftenchangethroughoutthesoftwaredevelopmentproject.Iterativedevelopmentallowschangesinrequirementsduringeachiteration,anddeepenstheunderstandingoftheproblemthroughcontinuousrefinement.Iterativedevelopmentcannotonlyreducetheriskoftheproject,buteachiterativeprocessendswithanexecutableversion,whichcanencouragedevelopers.
Managementrequirements
Determiningtherequirementsofthesystemisacontinuousprocess,anditisimpossiblefordeveloperstofullyexplainthetruerequirementsofasystembeforedevelopingthesystem.RUPdescribeshowtoextract,organizeanddocumentthefunctionsandconstraintsofthesystem,andtheuseofusecasesandscriptshasproventobeaneffectivewaytocapturefunctionalrequirements.
Architecture
Componentsmakereusepossible,andthesystemcanbecomposedofcomponents.Anarchitecturebasedonindependent,replaceable,andmodularcomponentshelpsmanagecomplexityandincreasereuserates.RUPdescribeshowtodesignasoftwarearchitecturethatisflexible,adaptabletochanges,easytounderstand,andconducivetoreuse.
Visualmodeling
RUPisoftenassociatedwithUMLtoestablishvisualmodelsofsoftwaresystemstohelppeopleprovidetheabilitytomanagesoftwarecomplexity.RUPtellsushowtovisuallymodelsoftwaresystemsandobtaininformationaboutthestructureandbehaviorofthearchitectureandcomponents.
Verifysoftwarequality
InRUP,softwarequalityassessmentisnolongeraseparateactivityperformedafterthefactoraseparateteam,butallactivitiesbuiltintotheprocess,sothatitcanbeearlyFinddefectsinthesoftware.
Controlsoftwarechanges
Ifthereisnostrictcontrolandcoordinationiniterativedevelopment,theentiresoftwaredevelopmentprocesswillsoonfallintochaos.RUPdescribeshowtocontrol,track,andmonitor,Modificationstoensuresuccessfuliterativedevelopment.RUPisolatesthechangesfromotherworkspacesthroughtheproductsinthesoftwaredevelopmentprocess,soastoestablishasafeworkspaceforeachdeveloper.
Developmentprocess
RUPsoftwaredevelopmentlifecycleisatwo-dimensionalsoftwaredevelopmentmodel.Thehorizontalaxisisorganizedthroughtimeandisthelifecyclecharacteristicoftheprocessunfolding,reflectingthedynamicstructureofthedevelopmentprocess.ThetermsusedtodescribeitmainlyincludeCycle,Phase,IterationandMilestone;Theaxisisorganizedasanaturallogicalactivitybycontent,whichreflectsthestaticstructureofthedevelopmentprocess.ThetermsusedtodescribeitmainlyincludeActivity,Artifact,WorkerandWorkflow.Figure1:
RUPcoreconcepts
SomecoreconceptsaredefinedinRUP,asshowninFigure2:Role:Describethebehaviorandresponsibilitiesofapersonoragroup.RUPdefinesmanyrolesinadvance.
Activity:isanindependentunitofworkwithaclearpurpose.
Artifact:Apieceofinformationgenerated,createdormodifiedbyanactivity.
RUPtailoring
RUPisageneralprocesstemplatethatcontainsmanydevelopmentguides,products,androledescriptionsinvolvedinthedevelopmentprocess.Becauseitisverylarge,itisveryimportantforspecificdevelopmentOrganizationsandprojectsneedtobetailoredwhenusingRUP,thatis,RUPmustbeconfigured.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,whichisusuallygivenintheformofanactivitydiagram.
Eachstage
ThesoftwarelifecycleinRUPisbrokendownintofoursequentialstagesintime,namely:theinitialstage(Inception),therefinementstage(Elaboration),Constructionphase(Construction)anddeliveryphase(Transition).Eachphaseendsinamajormilestone(MajorMilestones);eachphaseisessentiallythetimespanbetweentwomilestones.Attheendofeachstage,anassessmentisperformedtodeterminewhetherthegoalsofthisstagehavebeenmet.Iftheevaluationresultsaresatisfactory,theprojectcanbeallowedtoenterthenextstage.
1.Initialstage
Thegoaloftheinitialstageistoestablishabusinesscaseforthesystemanddeterminetheboundariesoftheproject.Inordertoachievethisgoal,allexternalentitiesthatinteractwiththesystemmustbeidentified,andthecharacteristicsoftheinteractionmustbedefinedatahigherlevel.Thisstageisofgreatsignificance.Whatisconcernedinthisstageisthemainbusinessanddemandrisksoftheentireproject.Foradevelopmentprojectbasedontheoriginalsystem,theinitialstagemaybeshort.Theendoftheinitialphaseisthefirstimportantmilestone:theLifecycleObjectivemilestone.Thelifecycletargetmilestoneevaluatesthebasicviabilityoftheproject.
2.Refinementstage
Thegoaloftherefinementstageistoanalyzetheproblemdomain,establishasoundsystemstructurefoundation,prepareaprojectplan,andeliminatethemostriskyelementsintheproject.Inordertoachievethisgoal,itisnecessarytomakedecisionsonthearchitecturebasedontheunderstandingoftheentiresystem,includingitsscope,mainfunctions,andnon-functionalrequirementssuchasperformance.Atthesametime,establishasupportenvironmentfortheproject,includingcreatingdevelopmentcases,creatingtemplates,guidelines,andpreparingtools.Thesecondimportantmilestoneattheendoftherefinementphase:theLifecycleArchitecturemilestone.Thelifecyclestructuremilestoneestablishesamanagementbenchmarkforthestructureofthesystemandenablestheprojectteamtomeasureitduringtheconstructionphase.Atthismoment,itisnecessarytoexaminethedetailedsystemobjectivesandscope,thechoiceofstructure,andthesolutionstothemainrisks.
3.Constructionphase
Intheconstructionphase,allremainingcomponentsandapplicationfunctionsaredevelopedandintegratedintoproducts,andallfunctionsaretestedindetail.Inasense,theconstructionphaseisamanufacturingprocessthatfocusesonmanagingresourcesandcontrollingoperationstooptimizecost,schedule,andquality.Theendoftheconstructionphaseisthethirdimportantmilestone:theInitialOperationalmilestone.Theinitialfunctionalmilestonedetermineswhethertheproductcanbedeployedinatestenvironment.Atthismoment,itisnecessarytodeterminewhetherthesoftware,environment,anduserscanstarttheoperationofthesystem.Theproductversionatthistimeisalsooftenreferredtoasthe"beta"version.
4.Deliveryphase
Thefocusofthedeliveryphaseistoensurethatthesoftwareisavailabletotheenduser.Thedeliveryphasecanspanseveraliterations,includingproducttestinginpreparationforrelease,andsmalladjustmentsbasedonuserfeedback.Atthispointinthelifecycle,userfeedbackshouldmainlyfocusonproductadjustments,setup,installation,andusabilityissues.Allmajorstructuralissuesshouldhavebeenresolvedintheearlystagesoftheprojectlifecycle.Theendofthedeliveryphaseisthefourthmilestone:theProductReleasemilestone.Atthispoint,itisnecessarytodeterminewhetherthegoalisachievedandwhetheranotherdevelopmentcycleshouldbestarted.Insomecasesthismilestonemaycoincidewiththeendoftheinitialphaseofthenextcycle.
CoreWorkflow
Thereare9coreworkflowsinRUP,whicharedividedinto6CoreProcessWorkflowsand3CoreSupportingWorkflows.).Althoughthesixcoreprocessworkflowsmaybereminiscentofseveralstagesinthetraditionalwaterfallmodel,itshouldbenotedthatthestagesintheiterativeprocessarecompletelydifferent,andtheseworkflowsareaccessedagainandagainthroughoutthelifecycle.The9coreworkflowsareusedinturnsintheproject,repeatedwithdifferentemphasisandintensityineachiteration.
1.BusinessModeling(BusinessModeling)
Businessmodelingworkflowdescribeshowtodevelopavisionforanewtargetorganization,andBasedonthisidea,definetheprocesses,rolesandresponsibilitiesoftheorganizationinthebusinessusecasemodelandthebusinessobjectmodel.
2.Requirements(Requirements)
Thegoaloftherequirementsworkflowistodescribewhatthesystemshoulddo,andtoenabledevelopersanduserstoreachaconsensusonthisdescription.Inordertoachievethisgoal,therequiredfunctionsandconstraintsmustbeextracted,organized,anddocumented;themostimportantthingistounderstandthedefinitionandscopeoftheproblemtobesolvedbythesystem.
3.Analysis&Design(Analysis&Design)
Theanalysisanddesignworkflowtransformstherequirementsintothedesignofthefuturesystem,developsarobuststructureforthesystemandadjuststhedesigntomatchtheimplementationenvironmentMatchandoptimizeitsperformance.Theresultoftheanalysisdesignisadesignmodelandanoptionalanalysismodel.Thedesignmodelisanabstractionofthesourcecode,composedofdesignclassesandsomedescriptions.Thedesignclassisorganizedintoadesignpackage(Package)andadesignsubsystem(Subsystem)withgoodinterfaces,andthedescriptionreflectshowtheobjectsoftheclassworktogethertorealizethefunctionoftheusecase.Thedesignactivityiscenteredonthearchitecturedesign.Thearchitectureisexpressedbyseveralstructuralviews.Thestructuralviewisanabstractionandsimplificationoftheentiredesign.Somedetailsareomittedfromthisviewtomaketheimportantfeaturesmoreclear.Thearchitectureisnotonlyacarriermediumforgooddesignmodels,butalsoimprovesthequalityofthecreatedmodelsinthedevelopmentofthesystem.
4.Implementation(Implementation)
Thepurposeofimplementingworkflowincludesdefiningtheorganizationstructureofcodeintheformofhierarchicalsubsystems;implementingintheformofcomponents(sourcefiles,binaryfiles,executablefiles)Classesandobjects;testthedevelopedcomponentsasaunitandintegratetheresultsproducedbyasingledeveloper(orgroup)tomakeitanexecutablesystem.
5.Test(Test)
Thetestworkflowmustverifytheinteractionbetweenobjects,verifythecorrectintegrationofallcomponentsinthesoftware,verifythatallrequirementshavebeencorrectlyimplemented,identifyandconfirmdefectsinThesoftwareisproposedandprocessedbeforedeployment.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.ProjectManagement
Softwareprojectmanagementbalancesvariousconflictinggoals,managesrisks,overcomesvariousconstraints,andsuccessfullydeliversproductsthatsatisfyusers.Itsgoalsinclude:providingaframeworkforprojectmanagement,providingpracticalguidelinesforplanning,staffing,executionandmonitoringofprojects,andprovidingaframeworkformanagingrisks.
9.Environment(Environment)
Thepurposeoftheenvironmentworkflowistoprovidesoftwaredevelopmentorganizationswithasoftwaredevelopmentenvironment,includingprocessesandtools.Theenvironmentalworkflowfocusesontheactivitiesrequiredintheprocessofconfiguringtheproject,andalsosupportstheactivitiesofdevelopingprojectspecifications,providesastep-by-stepinstructionmanualanddescribeshowtoimplementtheprocessintheorganization.
Iterativedevelopmentmodel
EachstageinRUPcanbefurtherdecomposedintoiterations.Aniterationisacompletedevelopmentcyclethatproducesanexecutableproductversion,whichisasubsetofthefinalproduct.Itdevelopsincrementally,fromoneiterativeprocesstoanotheriterativeprocesstobecomethefinalsystem.Thetraditionalprojectorganizationistogothrougheachworkflowinsequence,eachworkflowonlyonce,whichisthewaterfalllifecyclewearefamiliarwith(seeFigure3).Theresultofthisisthatbytheendoftheimplementation,theproductiscompletedandtestingbegins.Alargenumberofhiddenproblemsleftoverintheanalysis,design,andimplementationphaseswillappear.Theprojectmayhavetostopandstartalongerrorcorrectioncycle.
Amoreflexibleandlessriskymethodistogothroughdifferentdevelopmentworkflowsmanytimes,sothatyoucanbetterunderstandtherequirements,constructarobustarchitecture,andfinallydeliveraseriesofgraduallycompletedVersion.Thisiscalledaniterativelifecycle.Eachsequentialpassintheworkflowiscalledaniteration.Thesoftwarelifecycleisaniterativecontinuum,throughwhichsoftwareisincrementaldevelopment.Aniterationincludesthedevelopmentactivitiestogenerateanexecutableversion,aswellasotherauxiliarycomponentsnecessarytousethisversion,suchasversiondescriptions,userdocumentation,andsoon.Therefore,adevelopmentiterationis,inasense,acompleteprocessinallworkflows.Theseworkflowsincludeatleast:requirementsworkflow,analysisanddesignworkflow,implementationworkflow,andtestingworkflow.Itislikeasmallwaterfallprojectinitself(seeFigure4).Figure4IterativemodelofRUP
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.
Developmentprospects
Havingaclearprospectisthekeytodevelopingaproductthatmeetstherealneedsofstakeholders.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?Whataretheirrespectiveneeds??Whatarethecharacteristicsoftheproduct??Whatarethefunctionalrequirements?(UseCases)?Whatarethenon-functionalrequirements??Whatarethedesignconstraints?
Reachtheplan
"Thequalityoftheproductwillonlybeasgoodastheplanoftheproduct."(2)InRUP,thesoftwaredevelopmentplan(SDP)integrateswhatisneededtomanagetheprojectVariousinformationmayincludesomeseparatecontentdevelopedintheinceptionstage.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.
Identifyandreducerisks
OneofthemainpointsofRUPistoidentifyanddealwiththebiggestrisksearlyintheproject.Eachriskidentifiedbytheprojectteamshouldhaveacorrespondingmitigationorresolutionplan.Therisklistshouldbeusedbothasaplanningtoolforprojectactivitiesandasabasisfordeterminingiterations.
Assignandtracktasks
Onethingisimportantinanyproject,thatis,continuousanalysisofobjectivedataderivedfromongoingactivitiesandevolvingproducts.InRUP,regularprojectstatusassessmentprovidesamechanismfortelling,communicating,andsolvingmanagementissues,technicalissues,andprojectrisks.Oncetheteamfoundtheseobstacles(fences),theyassignedapersoninchargeofalltheseproblemsandspecifiedadateforresolution.Progressshouldbetrackedregularly,andupdatesshouldbereleasedifnecessary.(Original:updatesshouldbeissuedasnecessary.)Theseproject"snapshots"highlightissuesthatrequiremanagementattention.Overtime/althoughtheperiodmayvary(Original:Whiletheperiodmayvary.),regularassessmentsallowmanagerstocapturethehistoryoftheprojectandremoveanyobstaclesorbottlenecksthatlimitprogress.
Checkthebusinessreason
Thebusinessreasonprovidesthenecessaryinformationfromabusinessperspectivetodeterminewhetheraprojectisworthinvestingin.Businessjustificationcanalsohelpdevelopaneconomicplanneededtorealizetheproject'sprospects.Itprovidesarationalefortheprojectandestablisheseconomicconstraints.Whentheprojectcontinues,analystsusebusinessreasonstocorrectlyestimatethereturnoninvestment(ROI,orreturnoninvestment).Thebusinesscaseshouldcreateashortbutcompellingreasonfortheproject,ratherthandelveintothedetailsoftheproblem,sothatallprojectmemberscaneasilyunderstandandrememberit.Atthekeymilestones,themanagershouldreviewthebusinessreason,calculatetheactualcost,theexpectedreturn,anddecidewhethertheprojectwillcontinue.
Designcomponentarchitecture
InRUP,thearchitectureofacomponentsystemreferstotheorganizationorstructureofthekeycomponentsofasystem.Thecomponentsinteractthroughinterfaces,andthecomponentsarecomposedofsmallercomponents.Composedofcomponentsandinterfaces.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.
Buildandtest
ThekeypointoftheimplementationandtestingprocessinRUPistheincrementalcoding,construction,andtestingofsystemcomponentsthroughouttheprojectlifecycle.Anexecutableversionisgeneratedattheendoftheiteration.Attheendoftheelaborationphase,thereisalreadyanarchitecturalprototypethatcanbeusedforevaluation;ifnecessary,itcanincludeauserinterfaceprototype.Then,ineachiterationoftheconstructionphase,thecomponentsarecontinuouslyintegratedintotheexecutable,testedversion,andcontinuetoevolvetothefinalproduct.Dynamicandtimelyconfigurationmanagementandreviewactivitiesarealsothekeytothisbasicprocesselement(original:essentialprocesselement).
ValidationandEvaluationResults
Asthenameimplies,RUP’siterativeevaluationcapturestheresultsoftheiteration.Evaluationdeterminestheextenttowhichtheiterationmeetstheevaluationcriteria,andalsoincludeslessonslearnedandprocessimprovementsimplemented.Dependingonthesizeandriskoftheprojectandthecharacteristicsoftheiteration,theevaluationcanbeasimplerecordofthedemonstrationanditsresults,oritcanbeacompleteandformaltestreviewrecord.Thekeyhereistofocusonbothprocessissuesandproductissues.Thesoonertheproblemisfound,thelessproblematicitwillbe.(Original:Thesooneryoufallbehind,themoretimeyouwillhavetocatchup.)
Manageandcontrolchanges
ThemainpointofRUP'sconfigurationandchangemanagementprocessiswhenchangesaremadeManageandcontrolthescaleoftheprojectwhenitoccurs,andthroughouttheentirelifecycle.Thepurposeistoconsiderallthestakeholders'needsandsatisfythemasmuchaspossiblewhilestilldeliveringqualifiedproductsinatimelymanner.Afterusersgetthefirstprototypeoftheproduct(andoftenaskforchangesbeforethen),theywillaskforchanges.Itisimportantthattheprocessofproposingandmanagingchangesisalwaysconsistent.InRUP,changerequestsareusuallyusedtorecordandtrackdefectsandenhancements,oranyothertypeofchangerequestsforproducts.Achangerequestprovidesameanstoassessthepotentialimpactofachange,whilerecordingthedecisionsmaderegardingthesechanges.Theyalsohelpensurethatallprojectteammembersunderstandthepotentialimpactofthechange.
Provideusersupport
InRUP,themainpointofthedeploymentprocessistopackageanddelivertheproduct,whiledeliveringanynecessarymaterialsthathelptheenduserlearn,use,andmaintaintheproduct.Theprojectteammustatleastprovideuserswithauserguide(perhapsthroughonlinehelp),andpossiblyaninstallationguideandversionreleasenotes.Dependingonthecomplexityoftheproduct,usersmayalsoneedcorrespondingtrainingmaterials.Finally,throughabillofmaterials(BOM,BillofMaterials)clearlyrecordwhichmaterialsshouldbedeliveredwiththeproduct.Regardingtheneeds,afterreadingmylistofelements,somepeoplemaydisagreewithmychoice.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: Treadmill
Next: Validity