版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件開發(fā)設(shè)計外文翻譯文獻本科畢業(yè)論文外文資料原文
SoftwareDevelopmentConceptsandDesign
Methodologies
Duringthe1960s,mainframesandhigherlevelprogramminglanguageswereappliedtomanyproblemsincludinghumanresourcesystems,reservationsystems,andmanufacturingsystems.Computersandsoftwarewereseenasthecureallformanybusinessissuesweresometimesappliedblindly.Systemssometimesfailedtosolvetheproblemforwhichtheyweredesignedformanyreasonsincluding:?Inabilitytosufficientlyunderstandcomplexproblems
?Notsufficientlytakingintoaccountend-userneeds,theorganizationalenvironment,andperformancetradeoffs
?Inabilitytoaccuratelyestimatedevelopmenttimeandoperationalcosts
?Lackofframeworkforconsistentandregularcustomercommunications
Atthistime,theconceptofstructuredprogramming,top-downdesign,stepwiserefinement,andmodularityemerged.Structuredprogrammingisstillthemostdominantapproachtosoftwareengineeringandisstillevolving.Thesefailuresledtotheconceptof"softwareengineering"basedupontheideathatanengineering-likedisciplinecouldbeappliedtosoftwaredesignanddevelopment.
Softwaredesignisaprocesswherethesoftwaredesignerappliestechniquesandprinciplestoproduceaconceptualmodelthatdescribesanddefinesasolutiontoaproblem.Inthebeginning,thisdesignprocesshasnotbeenwellstructuredandthemodeldoesnotalwaysaccuratelyrepresenttheproblemofsoftwaredevelopment.However,
1
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.
一、SoftwareDesignFundamentals
Softwaredesignmethodsallaimtoprovidethesoftwaredesignerwithasystemblueprint.Thisblueprintusuallyhasthreeaspects:data,architectural,andprocedural.
?Datadesignreferstothedata'sorganization,relationships,accessandprocessingmethods.
?Architecturaldesigndefinesthecomponentsofthesystemandtheirrelationships.
?Proceduraldesignbuildsonthedataandarchitecturaldesign
2
phasestodescribetheprocessingdetailsofthesystem.
Eventhoughtherearenumerousdesignmethodologies,theirbasicconceptsareverysimilar-Allsoftwaredesignmethodspartitiontheproblemandsoftwareintosmallerpiecesinordertoreducecomplexity.Theyallstrivetoidentifydatastructuresandfunctions,andprovidemeasurementsforsoftwarequality.Someofthecommonprinciplesinsoftwaredesigninclude:stepwiserefinement,softwarearchitecture,programstructure,datastructure,softwareprocedures,modularity,
abstraction,andinformationhiding.
二、ModernDesignMethodologies
Conventionalsoftwaredevelopmentpracticescangenerallybemappedontothetraditionallife-cyclephasesofanalysis,
functionalspecification,desi
gn,implementation,testing,and
maintenance.Thisthoughtprocessisinadequatefortoday's
complexinformationsystems.Asthedeman
dforsoftwar
eisgrowingmuchfasterthanthenumbero
fdevelopers,adherin
gtoconventionaltechniquessuc
hasthewaterfallmethodrequirestoomuchtime,toomanypeople,andisdifficulttomanage.Hence,manynewsoftwaredevelopmenttechnologieshavearisen.Newlydevelopedpract
icesandmodelsdonotattempttoseparatephasesofsoftwaredevelopment,suchasspecificationandimplementation,butinsteadfocusontheconceptofprogramtransformationthroughstepwiserefinementanditeration.
1、Object-OrientedTechnology
Object-Oriented(O-O)softwaredesigntechnologyisfundamentallydifferentfromthetraditionalmethodsdescribedabove.Withtraditionalmethods,eachmoduleisrecognizedamajorstepintheoverallprocessandtheprocessgoesfromonesteptothenext.Ontheotherhand,O-Odesignisstructuredaroundamodelofobjectsandthefunctionstheyperform.
O-OprogrammingcanbetracedtothesimulationlanguageSIMULA,a
3
highlevellanguagedevelopedinthelate60'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-OrganizationofProgrammingLanguagesand
4
ProgrammingConcepts.
2、Prototyping
Prototypingwasinventedbecauseendusersparticipatinginthedevelopmentphasefounditdifficulttounderstandrequirementspecificationsandconceptualmodels.However,whenitfirstbeganbeingusedinthe1980s,mostconventionallifecycledevelopersconsidereditexpensiveandtimeconsuming.
Sincethattime,usersanddevelopershaveusedprototypessuccessfullyasacommunicationstooltodemonstratesystemrequirements.Afterseveralprototypeiterations,developershaveabetterunderstandingofuserrequirementsandusershaveabetterideaofhowthesystemwilleventuallywork,look,andl.
Thenumberoftimestheprototypeisincrementallyrefineddependsonhowwelltheuserrequirementsandunderstood.Italsodependsontheusersneedtoaddrequirementsorchangepreviouslystatedrequirements.Afterestablishinganoverallarchitectureandframework,thesystemisdevelopedanddeliveredinincrements.Usersmayexperimentwithandusedeliveredincrementswhileothersarebeingdeveloped.Forinstance,thefirstprototypemaybedeliveredthatimplementsacertainscreenwithonlysomeactivemenuitems.Whileusersareexperimentingwiththisscreenandmenuitems,otherscreensandmenuitemsareconcurrentlybeingdevelopedwhichlaterwillbecombinedwiththeexistingprototypeasitevolves.
Oncetheuserissatisfiedthattheprototypemeetsrequirements,theprototypeistransformedintothe"system".This
effortdependsonseveralfactors.Itmayincludeadding
functionalitythatwasn'tinitiallyreco
gnizedasrequired,replacinginefficientpartsoft
heprototypetomeetperformancecr
iteria,oradaptingtheprototypetofittheuser'shardware
5
environment.
Prototypingcanbeginveryearly,aftersomepreliminaryrequirementsanalysishasdeterminedthebasicfunctionality,scope,andenvironmentoftheproposedsoftware.Contrarytothetraditionalwaterfallmethod,intheprototyping,functionalspecificationsarenotfixed.Rather,usersareencouragedtomodifytheirrequirementsastheythemselvesbegintounderstandthembetter.Thisisbecauseusersoftendon'treallyknowwhattheywantuntiltheyseeitonthescreen.Theprototypingprocessofdemonstration,review,andrefinementgetstheusermoreinvolvedinthedevelopmentprocess,givingthemasenseofownershipduringtheprocessandatfinalsystemdelivery.However,duetothemindsetof"prototype",usersoftenfinditdifficulttoverifythattheprototypesatisfiestheirrequirements.Therefore,guidelinesmustbeestablishedtodeterminewhentostopiteratingandtheprototypetofinalproduct.
6
外文資料譯文
軟件開發(fā)概念和設(shè)計方法
在20世紀60年代,大型機和高級程序語言被用來解決包括人力資源系統(tǒng)、專有系統(tǒng)和制造系統(tǒng)等許多問題。計算機和軟件被視為解決所有商業(yè)問題的萬能藥,有時候甚至被盲目的應(yīng)用。因為很多設(shè)計上的原因,這些系統(tǒng)并不是萬能的。主要因素如下:
1.不能完全理解復(fù)雜的問題
2.沒有充分滿足終端用戶的需求,組織環(huán)境和性能折中
3.沒有準確估計開發(fā)時間和運行成本
4.缺乏一致,規(guī)范的客戶通訊框架
這個時候,結(jié)構(gòu)化的編程,自上而下設(shè)計的概念出現(xiàn)了。對軟件工程來說,結(jié)構(gòu)化編程至今仍是最重要的方法且不斷發(fā)展?!败浖こ獭备拍畹某霈F(xiàn)則是基于這樣的構(gòu)想:一個類似工程學(xué)的學(xué)科可以應(yīng)用于軟件的設(shè)計和開發(fā)。
軟件設(shè)計是一種方法,軟件設(shè)計人員可以籍此應(yīng)用技術(shù)和規(guī)則生成一種描述并定義問題解決方法的模型。最初,設(shè)計方法一直未能構(gòu)建好,而且模型也不能準確地描述軟件開發(fā)的問題。然而,隨著我們對開發(fā)過程的深入理解,設(shè)計方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。
生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。
一、軟件設(shè)計基礎(chǔ)
軟件設(shè)計方法最終的目標就是向軟件設(shè)計者提供一張系統(tǒng)藍圖。它通常有三個方面:數(shù)據(jù),構(gòu)架和過程。
.數(shù)據(jù)設(shè)計指的是數(shù)據(jù)的組織、關(guān)系、訪問和處理方法。
.構(gòu)架設(shè)計定義系統(tǒng)組件和它們之間的關(guān)系。
.過程設(shè)計建立在數(shù)據(jù)和構(gòu)架設(shè)計階段之上描述系統(tǒng)的處理細節(jié)。
7
盡管設(shè)計方法眾多,但它們的基本概念非常相似。為了減少復(fù)雜度,幾乎所有軟件設(shè)計方法都把問題和軟件分割成較小的部分用于標識數(shù)據(jù)結(jié)構(gòu)、功能以及度量軟件品質(zhì)。軟件設(shè)計包括以下這些普遍原則:逐步求精、軟件構(gòu)架、程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、軟件過程、模塊化、抽象和信息隱藏。
二、現(xiàn)代設(shè)計方法
常規(guī)的軟件開發(fā)實踐通常能被映射到傳統(tǒng)的生命階段上,包括分析、功能說明、設(shè)計、實現(xiàn)、測試和維護。然而對軟件需求的增長比軟件開發(fā)者數(shù)量增長要快,遵守常規(guī)的技術(shù)你瀑布模型)耗時太長,過多人員的參與也帶來了管理上的困難,顯然常規(guī)的思考過程對于今天的復(fù)雜信息系統(tǒng)是不夠的。因此,產(chǎn)生了許多新的軟件開發(fā)技術(shù)。最新發(fā)展出的實踐和模型井不試圖把軟件開發(fā)分割成多個階段(如說明和實現(xiàn)),而是注重于通過逐步求精和迭代把概念轉(zhuǎn)換成程序。
1、面向?qū)ο蟮募夹g(shù)
面向?qū)ο蟮能浖O(shè)計技術(shù)從根本上有別于傳統(tǒng)的設(shè)計方法。傳統(tǒng)方法中,每個模塊被當作全局過程的一個主要步驟,一步一步地往下走;而面向?qū)ο蟮脑O(shè)計圍繞著對象模型和對象所執(zhí)行的功能進行結(jié)構(gòu)化。
面向?qū)ο蟮木幊炭梢宰匪莸椒抡嬲Z言SIMULA。SIMULA是一種20世紀60年代后期的高級語言,引入了“對象類”作為封裝數(shù)據(jù)的方法。到了20世紀70年代,Smalltalk被作為一種完全的圖形用戶界面(GUI)面向?qū)ο蟮木幊汰h(huán)境被引入。甚至在30年以后,Smalltalk仍然是度量其他所有面向?qū)ο笳Z言的標準。由于面向?qū)ο蟮母拍钊遮叧墒欤罱赀@種軟件開發(fā)方法已經(jīng)流行起來。同時,軟件業(yè)注意的焦點己經(jīng)從編碼和結(jié)構(gòu)化過程轉(zhuǎn)移到通過設(shè)計和柔韌性來節(jié)省勞動力成本和時間。柔韌性變得十分關(guān)鍵,因為系統(tǒng)隨著需求的變化而快速改變:變得更大,更復(fù)雜和更不穩(wěn)定。
在面向?qū)ο笾校治龊驮O(shè)計沒有真正分開。在分析期間,系統(tǒng)對象及其特性和關(guān)系一起被確定。這些對象可以護,這樣就給整個開發(fā)過程中的所有階段提供了一種公用的語言。采用面向?qū)ο蠓椒ㄗ詈檬鞘褂脤iT設(shè)計的面向?qū)ο蟮拈_發(fā)工具,但是請一定記住它是一種方法而不是特指任何編程語言。許多不同的編程語言都可以用來實現(xiàn)面向?qū)ο蠹夹g(shù)和設(shè)計方法。
和過程、功能往返傳遞數(shù)據(jù)的方式不同,在面向?qū)ο蟮脑O(shè)計中,系統(tǒng)被
8
看成一個由很多互相傳遞消息的對象組成的集合,每個對象都有它自己關(guān)聯(lián)操作的集合。面向?qū)ο蟮脑O(shè)計基本構(gòu)想
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育資源優(yōu)化與批判性思維的培養(yǎng)
- 教育科技助力小學(xué)茶藝教育的發(fā)展趨勢
- 2025年房產(chǎn)及土地使用權(quán)買賣合同3篇
- 教育產(chǎn)業(yè)中創(chuàng)新寵物科技產(chǎn)品分析報告
- Unit 2 We are family Section A Grammar Focus 3a - 3d說課稿 2024-2025學(xué)年人教版七年級上冊英語
- 《認識地球資源》(說課稿)安徽大學(xué)版六年級下冊綜合實踐活動
- Module 7 寫作說課稿2024-2025學(xué)年外研版英語九年級上冊
- 8《彩色的夢》說課稿-2023-2024學(xué)年統(tǒng)編版語文二年級下冊
- 2025年度銷售員銷售市場拓展與客戶開發(fā)合同3篇
- 3植物媽媽有辦法 (說課稿)2024-2025學(xué)年部編版語文二年級上冊
- 中考英語688高頻詞大綱詞頻表
- 九年級初三中考物理綜合復(fù)習(xí)測試卷3套(含答案)
- (完整版)中職數(shù)學(xué)習(xí)題及答案
- 高中語文 蘇軾導(dǎo)讀 課件
- 府谷縣恒陽陽建材有限公司-15萬立方米-年混凝土攪拌站項目報告書
- 水中鋼管樁施工方案
- 上交所期權(quán)投資者綜合試卷考試及答案
- 超市日常工作檢查表
- 電纜熱穩(wěn)定校驗計算書
- 傳熱學(xué)-第一章
- 管理制度評價表(填寫模板)
評論
0/150
提交評論