版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Unit5SoftwareProcessSectionASoftwareProcessModelsI.IntroductionAsoftwareprocessisasetofactivitiesthatleadstotheproductionofasoftwareproduct.Theseactivitiesmayinvolvethedevelopmentofsoftwarefromscratch(从零开始、白手起家)inastandardprogramminglanguagelikeJavaorC.Increasingly,however,newsoftwareisdevelopedbyextendingandmodifyingexistingsystemsandbyconfiguringandintegratingoff-the-shelfsoftwareorsystemcomponents.Asoftwareprocessmodelisanabstractrepresentationofasoftwareprocess.Eachprocessmodelrepresentsaprocessfromaparticularperspective,andthusprovidesonlypartialinformationaboutthatprocess.Thissectionintroducesanumberofverygeneralprocessmodels(sometimescalledprocessparadigms)andpresentsthemfroman
architecturalperspective.Thatis,weseetheframeworkoftheprocessbutnotthedetailsofspecificactivities.Thesegenericmodelsarenotdefinitivedescriptionsofsoftwareprocesses.Rather,theyareabstractionsoftheprocessthatcanbeusedtoexplaindifferentapproachestosoftwaredevelopment.Youcanthinkofthemasprocessframeworksthatmaybeextendedandadaptedtocreatemorespecificsoftwareengineeringprocesses.Theprocessmodelscoveredherearethewaterfallmodel,evolutionarydevelopmentandcomponent-basedsoftwareengineering.Thesethreegenericprocessmodelsarewidelyusedincurrentsoftwareengineeringpractice.Theyarenotmutuallyexclusiveandareoftenusedtogether,especiallyforlargesystemsdevelopment.Sub-systemswithinalargersystemmaybedevelopedusingdifferentapproaches.Therefore,althoughitisconvenienttodiscussthesemodelsseparately,
youshouldunderstandthat,inpractice,theyareoftencombined.II.TheWaterfallModelThefirstpublishedmodelofthesoftwaredevelopmentprocesswasderivedfrom(起源于)moregeneralsystemengineeringprocesses.ThisisillustratedinFigure5A-1.Becauseofthecascadefromonephasetoanother,thismodelisknownasthewaterfallmodelorsoftwarelifecycle.Theprincipalstagesofthemodelmapontofundamentaldevelopmentactivities:1.Requirementsanalysisanddefinition.Thesystem'sservices,constraintsandgoalsareestablishedbyconsultationwithsystemusers.Theyarethendefinedindetailandserveasasystemspecification.2.Systemandsoftwaredesign.Thesystemsdesignprocesspartitionstherequirementstoeitherhardwareorsoftwaresystems.Itestablishesanoverallsystemarchitecture.Softwaredesigninvolvesidentifyingand
describingthefundamentalsoftwaresystemabstractionsandtheirrelationships.3.Implementationandunittesting.Duringthisstage,thesoftwaredesignisrealizedasasetofprogramsorprogramunits.Unittestinginvolvesverifyingthateachunitmeetsitsspecification.|4.Integrationandsystemtesting.Theindividualprogramunitsorprogramsareintegratedandtestedasacompletesystemtoensurethatthesoftwarerequirementshavebeenmet.Aftertesting,thesoftwaresystemisdeliveredtothecustomer.5.Operationandmaintenance.Normally(althoughnotnecessarily)thisisthelongestlife-cyclephase.Thesystemisinstalledandputintopracticaluse.Maintenanceinvolvescorrectingerrorswhichwerenotdiscoveredinearlierstagesofthelifecycle,improvingtheimplementationofsystemunitsandenhancingthesystem’sservicesasnewrequirementsarediscovered.
Inprinciple,theresultofeachphaseisoneormoredocumentsthatareapproved.Thefollowingphaseshouldnotstartuntilthepreviousphasehasfinished.Inpractice,thesestagesoverlapandfeedinformationtoeachother.Duringdesign,problemswithrequirementsareidentified;duringcodingdesignproblemsarefoundandsoon.Thesoftwareprocessisnotasimplelinearmodelbutinvolvesasequenceofiterationsofthedevelopmentactivities.Becauseofthecostsofproducingandapprovingdocuments,iterationsarecostlyandinvolvesignificantrework.Therefore,afterasmallnumberofiterations,itisnormaltofreezepartsofthedevelopment,suchasthespecification,andtocontinuewiththelaterdevelopmentstages.Problemsareleftforlaterresolution,ignoredorprogrammedaround.Thisprematurefreezingofrequirementsmaymeanthatthesystemwon'tdowhattheuserwants.Itmayalsoleadtobadlystructured
systemsasdesignproblemsarecircumventedbyimplementationtricks.Duringthefinallife-cyclephase(operationandmaintenance),thesoftwareisputintouse.Errorsandomissionsintheoriginalsoftwarerequirementsarediscovered.Programanddesignerrorsemergeandtheneedfornewfunctionalityisidentified.Thesystemmustthereforeevolvetoremainuseful.Makingthesechanges(softwaremaintenance)mayinvolverepeatingpreviousprocessstages.Theadvantagesofthewaterfallmodelarethatdocumentationisproducedateachphaseandthatitfitswithotherengineeringprocessmodels.Itsmajorproblemisitsinflexiblepartitioningoftheprojectintodistinctstages.Commitmentsmustbemadeatanearlystageintheprocess,whichmakesitdifficulttorespondtochangingcustomerrequirements.Therefore,thewaterfallmodelshouldonlybeusedwhentherequirementsarewellunderstoodandunlikelytochangeradically
duringsystemdevelopment.However,thewaterfallmodelreflectsthetypeofprocessmodelusedinotherengineeringprojects.Consequently,softwareprocessesbasedonthisapproacharestillusedforsoftwaredevelopment,particularlywhenthesoftwareprojectispartofalargersystemsengineeringproject.III.EvolutionaryDevelopmentEvolutionarydevelopmentisbasedontheideaofdevelopinganinitialimplementation,exposingthistousercommentandrefiningitthroughmanyversionsuntilanadequatesystemhasbeendeveloped(Figure5A-2).Specification,developmentandvalidationactivitiesareinterleavedratherthanseparate,withrapidfeedbackacrossactivities.Therearetwofundamentaltypesofevolutionarydevelopment:1.Exploratorydevelopmentwheretheobjectiveoftheprocessistoworkwiththecustomerstoexploretheirrequirementsand
deliverafinalsystem.Thedevelopmentstartswiththepartsofthesystemthatareunderstood.Thesystemevolvesbyaddingnewfeaturesproposedbythecustomer.2.Throwawayprototypingwheretheobjectiveoftheevolutionarydevelopmentprocessistounderstandthecustomer'srequirementsandhencedevelopabetterrequirementsdefinitionforthesystem.Theprototypeconcentratesonexperimentingwiththecustomerrequirementsthatarepoorlyunderstood.Anevolutionaryapproachtosoftwaredevelopmentisoftenmoreeffectivethanthewaterfallapproachinproducingsystemsthatmeettheimmediateneedsofcustomers.Theadvantageofasoftwareprocessthatisbasedonanevolutionaryapproachisthatthespecificationcanbedevelopedincrementally.Asusersdevelopabetterunderstandingoftheirproblem,thiscanbereflectedinthesoftwaresystem.However,fromanengineeringandmanagementperspective,the
evolutionaryapproachhastwoproblems:1.Theprocessisnotvisible.Managersneedregulardeliverablestomeasureprogress.Ifsystemsaredevelopedquickly,itisnotcost-effectivetoproducedocumentsthatreflecteveryversionofthesystem.2.Systemsareoftenpoorlystructured.Continualchangetendstocorruptthesoftwarestructure.Incorporatingsoftwarechangesbecomesincreasinglydifficultandcostly.Forsmallandmedium-sizedsystems(upto500,000linesofcode),theevolutionaryapproachmaybethebestapproachtodevelopment.Theproblemsofevolutionarydevelopmentbecomeparticularlyacuteforlarge,complex,long-life-timesystems,wheredifferentteamsdevelopdifferentpartsofthesystem.Itisdifficulttoestablishastablesystemarchitectureusingthisapproach,whichmakesithardtointegratecontributionsfromtheteams.
Forlargesystems,amixedprocessisrecommendedwhichincorporatesthebestfeaturesofthewaterfallandtheevolutionarydevelopmentmodels.Thismayinvolvedevelopingathrowawayprototypeusinganevolutionaryapproachtoresolveuncertaintiesinthesystemspecification.Youcanthenreimplementthesystemusingamorestructuredapproach.Partsofthesystemthatarewellunderstoodcanbespecifiedanddevelopedusingawaterfall-basedprocess.Otherpartsofthesystem,suchastheuserinterface,whicharedifficulttospecifyinadvance,shouldalwaysbedevelopedusinganexploratoryprogrammingapproach.IV.Component-BasedSoftwareEngineeringInthemajorityofsoftwareprojects,thereissomesoftwarereuse.Thisusuallyhappensinformallywhenpeopleworkingontheprojectknowofdesignsorcodewhichissimilartothatrequired.Theylookforthese,
modifythemasneededandincorporatethemintotheirsystem.Intheevolutionaryapproach,reuseisoftenessentialforrapidsystemdevelopment.Thisinformalreusetakesplaceirrespectiveofthedevelopmentprocessthatisused.However,inthelastfewyears,anapproachtosoftwaredevelopmentcalledcomponent-basedsoftwareengineering(CBSE),whichreliesonreuse,hasemergedandisbecomingincreasinglyused.Thisreuse-orientedapproachreliesonalargebaseofreusablesoftwarecomponentsandsomeintegratingframeworkforthesecomponents.Sometimes,thesecomponentsaresystemsintheirownright(COTSorcommercialoff-the-shelfsystems)thatmayprovidespecificfunctionalitysuchastextformattingornumericcalculation.ThegenericprocessmodelforCBSEisshowninFigure5A-3.Whiletheinitialrequirementsspecification
stageandthevalidationstagearecomparablewithotherprocesses,theintermediatestagesinareuse-orientedprocessaredifferent.Thesestagesare:1.Componentanalysis.Giventherequirementsspecification,asearchismadeforcomponentstoimplementthatspecification.Usually,thereisnoexactmatch,andthecomponentsthatmaybeusedonlyprovidesomeofthefunctionalityrequired.2.Requirementsmodification.Duringthisstage,therequirementsareanalyzedusinginformationaboutthecomponentsthathavebeendiscovered.Theyarethenmodifiedtoreflecttheavailablecomponents.Wheremodificationsareimpossi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版混合砖烟囱拆除施工协议条款版B版
- 2024版二手房交易合同(含装修)3篇
- 2025年沪教版九年级生物下册阶段测试试卷含答案
- 2024版高强度水泥电杆销售协议版
- 2024深圳仓库租赁合同
- 2025年上教版选修化学下册阶段测试试卷含答案
- 2025年华东师大版选修化学下册月考试卷含答案
- 2025年人民版九年级生物上册月考试卷含答案
- 专业煤炭物流2024年运输责任合同书版
- 二零二五年度智慧城市建设土地征用及智能交通合同0183篇
- 2025年MEMS传感器行业深度分析报告
- 2024年度员工试用期劳动合同模板(含保密条款)3篇
- DB23-T 3840-2024非煤矿山隐蔽致灾因素普查治理工作指南
- 机关事业单位财务管理制度(六篇)
- 仓库仓储安全管理培训课件模板
- 风力发电场运行维护手册
- 人教版六年级上册数学第八单元数学广角数与形单元试题含答案
- 叉车租赁合同模板
- 河道旅游开发合同
- 住房公积金稽核审计工作方案例文(4篇)
- 口腔门诊医疗风险规避
评论
0/150
提交评论