版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)(論文)--文獻(xiàn)翻譯原文題目SoftwareDevelopmentConceptsandDesignMethodologies譯文題目軟件開發(fā)概念和設(shè)計(jì)方法專業(yè)信息與計(jì)算科學(xué)姓名學(xué)號指導(dǎo)教師
SoftwareDevelopmentConceptsandDesignMethodologiesDuringthe1960s,mainframesandhigherlevelprogramminglanguageswereappliedtomanyproblemsincludinghumanresourcesystems,reservationsystems,andmanufacturingsystems.Computersandsoftwarewereseenasthecureallformanybusinessissuesweresometimesappliedblindly.Systemssometimesfailedtosolvetheproblemforwhichtheyweredesignedformanyreasonsincluding:?Inabilitytosufficientlyunderstandcomplexproblems.?Notsufficientlytakingintoaccountend-userneeds,theorganizationalenvironment,andperformancetradeoffs.?Inabilitytoaccuratelyestimatedevelopmenttimeandoperationalcosts?LackofframeworkforconsistentandregularcustomercommunicationsAtthistime,theconceptofstructuredprogramming,top-downdesign,stepwiserefinement,andmodularityemerged.Structuredprogrammingisstillthemostdominantapproachtosoftwareengineeringandisstillevolving.Thesefailuresledtotheconceptof"softwareengineering"basedupontheideathatanengineering-likedisciplinecouldbeappliedtosoftwaredesignanddevelopment.Softwaredesignisaprocesswherethesoftwaredesignerappliestechniquesandprinciplestoproduceaconceptualmodelthatdescribesanddefinesasolutiontoaproblem.Inthebeginning,thisdesignprocesshasnotbeenwellstructuredandthemodeldoesnotalwaysaccuratelyrepresenttheproblemofsoftwaredevelopment.However,designmethodologieshavebeenevolvingtoaccommodatechangesintechnologycoupledwithourincreasedunderstandingofdevelopmentprocesses.Whereasearlydesignmethodsaddressedspecificaspectsofthedevelopmentprocess,currentmethodsattempttoaddresstheentirescopeofsoftwaredevelopment.Softwaredesignmethodsareoftenclassifiedinreferencetotheperiodinwhichtheywereintroducedandtheproblemsatthattime.Drivenbycodingandtestingproblems,toolsandmethodsweredeveloped.Earlymethodsfocusedonmodularityandtop-downdevelopment,andinformationhidingthroughabstraction.Thisledtothedevelopmentofstructuredlanguages,structuredanalysis,anddataflowanalysis.Inthelastdecadeorso,theexpenseinvolvedinautomationhasshiftedfromhardwaretopeople.Therefore,thesoftwareengineeringcommunityhasbeenfocusedonobjectoriented(O-O)designandtheconceptofre-usablecodeinordertoreducethehumancostcomponent.InefficientdesignsanddevelopmentmethodologieshavebeenaddressedwithComputerAidedSoftwareEngineering(CASE)tools,andfourthgenerationdesignlanguages.Thishasbeendoneinanattemptreplacethetraditionalwaterfalllifecycleprocessmodelunderwhichmostexistingsoftwarehasbeendeveloped.SoftwareDesignFundamentalsSoftwaredesignmethodsallaimtoprovidethesoftwaredesignerwithasystemblueprint.Thisblueprintusuallyhasthreeaspects:data,architectural,andprocedural.?Datadesignreferstothedata'sorganization,relationships,accessandprocessingmethods.?Architecturaldesigndefinesthecomponentsofthesystemandtheirrelationships.?Proceduraldesignbuildsonthedataandarchitecturaldesignphasestodescribetheprocessingdetailsofthesystem.Eventhoughtherearenumerousdesignmethodologies,theirbasicconceptsareverysimilar-Allsoftwaredesignmethodspartitiontheproblemandsoftwareintosmallerpiecesinordertoreducecomplexity.Theyallstrivetoidentifydatastructuresandfunctions,andprovidemeasurementsforsoftwarequality.Someofthecommonprinciplesinsoftwaredesigninclude:stepwiserefinement,softwarearchitecture,programstructure,datastructure,softwareprocedures,modularity,abstraction,andinformationhiding.ModernDesignMethodologiesConventionalsoftwaredevelopmentpracticescangenerallybemappedontothetraditionallife-cyclephasesofanalysis,functionalspecification,design,implementation,testing,andmaintenance.Thisthoughtprocessisinadequatefortoday'scomplexinformationsystems.Asthedemandforsoftwareisgrowingmuchfasterthanthenumberofdevelopers,adheringtoconventionaltechniquessuchasthewaterfallmethodrequirestoomuchtime,toomanypeople,andisdifficulttomanage.Hence,manynewsoftwaredevelopmenttechnologieshavearisen.Newlydevelopedpracticesandmodelsdonotattempttoseparatephasesofsoftwaredevelopment,suchasspecificationandimplementation,butinsteadfocusontheconceptofprogramtransformationthroughstepwiserefinementanditeration.1.Object-OrientedTechnologyObject-Oriented(O-O)softwaredesigntechnologyisfundamentallydifferentfromthetraditionalmethodsdescribedabove.Withtraditionalmethods,eachmoduleisrecognizedamajorstepintheoverallprocessandtheprocessgoesfromonesteptothenext.Ontheotherhand,O-Odesignisstructuredaroundamodelofobjectsandthefunctionstheyperform.O-OprogrammingcanbetracedtothesimulationlanguageSIMULA,ahighlevellanguagedevelopedinthelate60'sthatintroducedobjectclassesasamethodtoencapsulatedata.Later,inthe1970s,Smalltalkwasintroducedasacompletegrapghdesignandcodingasdetailisaddedtothedesign.Thisprovidesacommonlanguagethroughouteachstageindevelopment.O-OisbestappliedwithspecificallydesignedO-Odevelopmenttools,butitisimportanttorememberthatasamethodologyisitnotspecifictoanyprogramminglanguage.Manydifferentprogramminglanguagescanbeusedtoimplement0-0technologyanddesignmethodologies.Insteadofproceduresandfunctionspassingdatabackandforth,inobjectorienteddesign,thesystemisviewedasacollectionofobjectswithmessagespassedfromobjecttoobject.Eachobjecthasitsownsetofassociatedoperations.Object-orienteddesignisbasedontheideaofinformationhidingandmodularizationofbothdataandprocessing.Itisbestusedwhenneitherdatastructurenorprocessingoperationsarewelldefinedaheadoftime.Thisisquiteusefulintoday'sbusinessenvironmentwhererequirementsarealwayschangingandnotverywelldefined.Thus,ithasbecomequitepopular!Theconceptofobjectsperformingservicesisanaturalwayofthinkingforbothdevelopersandcustomers.Thisfacilitatesunderstandingtheproblemdomainandamorenaturaldesign.Inaddition,therearemanybenefitsofobject-orienteddevelopment.Theseinclude:?Inheritancecapitalizesonthecommonaltyofattributesandservicesallowingcodeandobjectstobere-used..Informationhidingmakessystemsmorestablebylocalizingchangestoobjectsandtherebymakingthemreusable..Theobject-orienteddevelopmentprocessisconsistentfromanalysis,throughdesign,tocoding.MoreinformationonObjectOrientedProgrammingprinciplescanbefoundinChapter4-OrganizationofProgrammingLanguagesandProgrammingConcepts.2、PrototypingPrototypingwasinventedbecauseendusersparticipatinginthedevelopmentphasefounditdifficulttounderstandrequirementspecificationsandconceptualmodels.However,whenitfirstbeganbeingusedinthe1980s,mostconventionallifecycledevelopersconsidereditexpensiveandtimeconsuming.Sincethattime,usersanddevelopershaveusedprototypessuccessfullyasacommunicationstooltodemonstratesystemrequirements.Afterseveralprototypeiterations,developershaveabetterunderstandingofuserrequirementsandusershaveabetterideaofhowthesystemwilleventuallywork,
look,andl.Thenumberoftimestheprototypeisincrementallyrefineddependsonhowwelltheuserrequirementsandunderstood.Italsodependsontheusersneedtoaddrequirementsorchangepreviouslystatedrequirements.Afterestablishinganoverallarchitectureandframework,thesystemisdevelopedanddeliveredinincrements.Usersmayexperimentwithandusedeliveredincrementswhileothersarebeingdeveloped.Forinstance,thefirstprototypemaybedeliveredthatimplementsacertainscreenwithonlysomeactivemenuitems.Whileusersareexperimentingwiththisscreenandmenuitems,otherscreensandmenuitemsareconcurrentlybeingdevelopedwhichlaterwillbecombinedwiththeexistingprototypeasitevolves.Oncetheuserissatisfiedthattheprototypemeetsrequirements,theprototypeistransformedintothe"system".Thiseffortdependsonseveralfactors.Itmayincludeaddingfunctionalitythatwasn'tinitiallyrecognizedasrequired,replacinginefficientpartsoftheprototypetomeetperformancecriteria,oradaptingtheprototypetofittheuser'shardwareenvironment.Prototypingcanbeginveryearly,aftersomepreliminaryrequirementsanalysishasdeterminedthebasicfunctionality,scope,andenvironmentoftheproposedsoftware.Contrarytothetraditionalwaterfallmethod,intheprototyping,functionalspecificationsarenotfixed.Rather,usersareencouragedtomodifytheirrequirementsastheythemselvesbegintounderstandthembetter.Thisisbecauseusersoftendon'treallyknowwhattheywantuntiltheyseeitonthescreen.Theprototypingprocessofdemonstration,review,andrefinementgetstheusermoreinvolvedinthedevelopmentprocess,givingthemasenseofownershipduringtheprocessandatfinalsystemdelivery.However,duetothemindsetof"prototype",usersoftenfinditdifficulttoverifythattheprototypesatisfiestheirrequirements.Therefore,guidelinesmustbeestablishedtodeterminewhento
stopiteratingandtheprototypetofinalproduct.
軟件開發(fā)概念和設(shè)計(jì)方法在20世紀(jì)60年代,大型機(jī)和高級程序語言被用來解決包括人力資源系統(tǒng)、專有系統(tǒng)和制造系統(tǒng)等許多問題。計(jì)算機(jī)和軟件被視為解決所有商業(yè)問題的萬能藥,有時(shí)候甚至被盲目的應(yīng)用。因?yàn)楹芏嘣O(shè)計(jì)上的原因,這些系統(tǒng)并不是萬能的。主要因素如下:1.不能完全理解復(fù)雜的問題2.沒有充分滿足終端用戶的需求,組織環(huán)境和性能折中3.沒有準(zhǔn)確估計(jì)開發(fā)時(shí)間和運(yùn)行成本4.缺乏一致,規(guī)范的客戶通訊框架這個(gè)時(shí)候,結(jié)構(gòu)化的編程,自上而下設(shè)計(jì)的概念出現(xiàn)了。對軟件工程來說,結(jié)構(gòu)化編程至今仍是最重要的方法且不斷發(fā)展?!败浖こ獭备拍畹某霈F(xiàn)則是基于這樣的構(gòu)想:一個(gè)類似工程學(xué)的學(xué)科可以應(yīng)用于軟件的設(shè)計(jì)和開發(fā)。軟件設(shè)計(jì)是一種方法,軟件設(shè)計(jì)人員可以籍此應(yīng)用技術(shù)和規(guī)則生成一種描述并定義問題解決方法的模型。最初,設(shè)計(jì)方法一直未能構(gòu)建好,而且模型也不能準(zhǔn)確地描述軟件開發(fā)的問題。然而,隨著我們對開發(fā)過程的深入理解,設(shè)計(jì)方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。一、軟件設(shè)計(jì)基礎(chǔ)軟件設(shè)計(jì)方法最終的目標(biāo)就是向軟件設(shè)計(jì)者提供一張系統(tǒng)藍(lán)圖。它通常有三個(gè)方面:數(shù)據(jù),構(gòu)架和過程。.?dāng)?shù)據(jù)設(shè)計(jì)指的是數(shù)據(jù)的組織、關(guān)系、訪問和處理方法。.構(gòu)架設(shè)計(jì)定義系統(tǒng)組件和它們之間的關(guān)系。.過程設(shè)計(jì)建立在數(shù)據(jù)和構(gòu)架設(shè)計(jì)階段之上描述系統(tǒng)的處理細(xì)節(jié)。盡管設(shè)計(jì)方法眾多,但它們的基本概念非常相似。為了減少復(fù)雜度,幾乎所有軟件設(shè)計(jì)方法都把問題和軟件分割成較小的部分用于標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)、功能以及度量軟件品質(zhì)。軟件設(shè)計(jì)包括以下這些普遍原則:逐步求精、軟件構(gòu)架、程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、軟件過程、模塊化、抽象和信息隱藏。二、現(xiàn)代設(shè)計(jì)方法常規(guī)的軟件開發(fā)實(shí)踐通常能被映射到傳統(tǒng)的生命階段上,包括分析、功能說明、設(shè)計(jì)、實(shí)現(xiàn)、測試和維護(hù)。然而對軟件需求的增長比軟件開發(fā)者數(shù)量增長要快,遵守常規(guī)的技術(shù)你瀑布模型)耗時(shí)太長,過多人員的參與也帶來了管理上的困難,顯然常規(guī)的思考過程對于今天的復(fù)雜信息系統(tǒng)是不夠的。因此,產(chǎn)生了許多新的軟件開發(fā)技術(shù)。最新發(fā)展出的實(shí)踐和模型井不試圖把軟件開發(fā)分割成多個(gè)階段(如說明和實(shí)現(xiàn)),而是注重于通過逐步求精和迭代把概念轉(zhuǎn)換成程序。1、面向?qū)ο蟮募夹g(shù)面向?qū)ο蟮能浖O(shè)計(jì)技術(shù)從根本上有別于傳統(tǒng)的設(shè)計(jì)方法。傳統(tǒng)方法中,每個(gè)模塊被當(dāng)作全局過程的一個(gè)主要步驟,一步一步地往下走;而面向?qū)ο蟮脑O(shè)計(jì)圍繞著對象模型和對象所執(zhí)行的功能進(jìn)行結(jié)構(gòu)化。面向?qū)ο蟮木幊炭梢宰匪莸椒抡嬲Z言SIMULA。SIMULA是一種20世紀(jì)60年代后期的高級語言,引入了“對象類”作為封裝數(shù)據(jù)的方法。到了20世紀(jì)70年代,Smalltalk被作為一種完全的圖形用戶界面(GUI)面向?qū)ο蟮木幊汰h(huán)境被引入。甚至在30年以后,Smalltalk仍然是度量其他所有面向?qū)ο笳Z言的標(biāo)準(zhǔn)。由于面向?qū)ο蟮母拍钊遮叧墒?,最近十年這種軟件開發(fā)方法已經(jīng)流行起來。同時(shí),軟件業(yè)注意的焦點(diǎn)己經(jīng)從編碼和結(jié)構(gòu)化過程轉(zhuǎn)移到通過設(shè)計(jì)和柔韌性來節(jié)省勞動(dòng)力成本和時(shí)間。柔韌性變得十分關(guān)鍵,因?yàn)橄到y(tǒng)隨著需求的變化而快速改變:變得更大,更復(fù)雜和更不穩(wěn)定。在面向?qū)ο笾?,分析和設(shè)計(jì)沒有真正分開。在分析期間,系統(tǒng)對象及其特性和關(guān)系一起被確定。這些對象可以護(hù),這樣就給整個(gè)開發(fā)過程中的所有階段提供了一種公用的語言。采用面向?qū)ο蠓椒ㄗ詈檬鞘褂脤iT設(shè)計(jì)的面向?qū)ο蟮拈_發(fā)工具,但是請一定記住它是一種方法而不是特指任何編程語言。許多不同的編程語言都可以用來實(shí)現(xiàn)面向?qū)ο蠹夹g(shù)和設(shè)計(jì)方法。和過程、功能往返傳遞數(shù)據(jù)的方式不同,在面向?qū)ο蟮脑O(shè)計(jì)中,系統(tǒng)被看成一個(gè)由很多互相傳遞消息的對象組成的集合,每個(gè)對象都有它自己關(guān)聯(lián)操作的集合。面向?qū)ο蟮脑O(shè)計(jì)基本構(gòu)想是把數(shù)據(jù)和過程進(jìn)行信息隱藏和模塊化,它最適用于數(shù)據(jù)結(jié)構(gòu)或者過程操作沒有被提前的定義好的情況。這對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國平行分度凸輪副數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024版機(jī)械施工合作協(xié)議范本版
- 【同步備課】高中數(shù)學(xué)(北師大版)必修一教案:第2章-對數(shù)函數(shù)的概念-說課稿
- 2024年版:離婚財(cái)產(chǎn)分配協(xié)議書3篇
- 2024年短視頻平臺(tái)推廣服務(wù)合同
- DB2301-T 163-2024 辣椒一次性收獲機(jī)械作業(yè)質(zhì)量技術(shù)規(guī)程
- 2025年度企業(yè)搬遷環(huán)境風(fēng)險(xiǎn)評估與治理協(xié)議3篇
- 2025版餐飲外賣配送服務(wù)外包綜合協(xié)議3篇
- 2024年豬場使用權(quán)轉(zhuǎn)租合同3篇
- 2025年甘肅省安全員-B證(項(xiàng)目經(jīng)理)考試題庫
- 《基層管理者職業(yè)素養(yǎng)與行為規(guī)范》考核試題及答案
- 公共關(guān)系理論與實(shí)務(wù)教程 課件 項(xiàng)目九-公共關(guān)系危機(jī)管理
- 椎間孔鏡治療腰椎間盤突出
- 2024年融媒體中心事業(yè)單位考試招考142人500題大全加解析答案
- 2024-2025學(xué)年 語文二年級上冊統(tǒng)編版期末測試卷(含答案)
- 期末測試題二(含答案)2024-2025學(xué)年譯林版七年級英語上冊
- 大創(chuàng)賽項(xiàng)目書
- 產(chǎn)品質(zhì)量知識(shí)培訓(xùn)課件
- 乳腺旋切手術(shù)
- 醫(yī)護(hù)禮儀課件教學(xué)課件
- 2024-2030年中國商品混凝土行業(yè)產(chǎn)量預(yù)測分析投資戰(zhàn)略規(guī)劃研究報(bào)告
評論
0/150
提交評論