Unified software development process

honggarae 04/04/2022 886

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.

Unified software development process

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