Unified software process

honggarae 16/02/2022 825

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