軟件開(kāi)發(fā)設(shè)計(jì)外文翻譯文獻(xiàn)_第1頁(yè)
軟件開(kāi)發(fā)設(shè)計(jì)外文翻譯文獻(xiàn)_第2頁(yè)
軟件開(kāi)發(fā)設(shè)計(jì)外文翻譯文獻(xiàn)_第3頁(yè)
軟件開(kāi)發(fā)設(shè)計(jì)外文翻譯文獻(xiàn)_第4頁(yè)
軟件開(kāi)發(fā)設(shè)計(jì)外文翻譯文獻(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE2外文資料原文SoftwareDevelopmentConceptsandDesignMethodologiesDuringthe1960s,mainframesandhigherlevelprogramminglanguageswereappliedtomanyproblemsincludinghumanresourcesystems,reservationsystems,andmanufacturingsystems.Computersandsoftwarewereseenasthecureallformanybusinessissuesweresometimesappliedblindly.Systemssometimesfailedtosolvetheproblemforwhichtheyweredesignedformanreasonsincluding:?Inabilitytosufficientlyunderstandcomplex problemsNot sufficiently taking into account end-user needs, the environ ment,andperformancetradeoffs?Inabilitytoaccuratelyestimatedevelopmenttimeandoperationalcosts?LackofframeworkforconsistentandregularcustomercommunicationsAt this time, the concept of structured programming, top-down design,stepwise refinement ,and modularity emerged. Structured programming isstillthemostdominantapproachtosoftwareengineeringandisstillevo lving.Thesefailuresledtotheconceptof" softwareengineering"basedupontheideathatanengineering -like discipline could be applied to software design develop ment.Software design is a process where the software designer appliestechniques and principles to produce a conceptual model that describes defines asolution to aproblem. In the beginning, this design process has notbeen well structuredandthemodeldoesnotalwaysaccuratelyrepresenttheproblemofsoftwaredevelopment.However,designmethodologieshavebeenevolvingtoaccommodatechangesintechnologycoupledwithourincreasedunderstandingofdevelopmentprocesses.Whereasearlydesignmethodsaddressedspecificaspectsofthedevelopmentprocess,currentmethodsattempttoaddresstheentirescopeofsoftwaredevelopment.Softwaredesignmethodsareoftenclassifiedreferencetotheperiodinwhichtheywereintroducedandtheproblemsatthattime.Drivenbycodingandtestingproblems,toolsandmethodsweredeveloped.Earlymethodsfocusedonmodularityandtop-downdevelopment,andinformationhidingthroughabstraction.Thisledtothedevelopmentstructuredlanguages,structuredanalysis,anddataflowanalysis.In the last decade or so, the expense involved in automation has shiftedfrom hardware to people. Therefore, the software engineering community beenfocusedonobjectoriented(O -O)designandtheconceptofre -usablecodein order to reduce the human cost component. Inefficient designsdevelopmentmethodologieshavebeenaddressedwithComputerAidedSoftwareEngineering(CASE)tools,andfourthgenerationdesignlanguages.This has been done in an attempt replace the traditional waterf all life cycleprocessmodelunderwhichmostexistingsoftwarehasbeendeveloped.一、SoftwareDesignFundamentalsSoftware design methods all aim to provide the software designer with systemblueprint. This blueprint usually has three aspects: data, architectural,andprocedural.?Data design refers to the data's organization, relationships, access andprocessingmethods.?Architectural design defines the components of the system and theirrelationships.?Procedural design builds on the data and architectural design phases todescribetheprocessingdetailsofthes ystem.Eventhoughtherearenumerousdesignmethodologies,theirbasicconceptsareverysimilar-Allsoftwaredesignmethodspartitiontheproblemandsoftwareintosmallerpiecesinordertoreducecomplexity.Theyallstrivetoidentifydatastructuresandfunctions,andprovidemeasurementsPAGE5PAGE5softwarequality.Someofthecommonprinciplesinsoftwaredesigninclude:stepwiserefinement,softwarearchitecture,programstructure,datastructure,softwareprocedures,modularity,abstraction,andinformationhiding.二、ModernDesignMethodologiesConventionalsoftwaredevelopmentpracticescangenerallybemappedontothetraditionallife-cyclephasesofanalysis,functionalspecification,design,implementation,testing,andmaintenance. Thisthoughtprocessisinadequatefortoday'scomplexinformationsystems. thedemandforsoftwareisgrowingmuchfasterthanthenumberofdevelopers,adheringtoconventionaltechniquessuchasthewaterfallmethodrequirestoomuchtime,toomanypeople, andisdifficulttomanage.Hence,manysoftwaredevelopmenttechnologieshavearisen. Newlydevelopedpracticesandmodelsdonotattempttoseparatephasesofsoftwaredevelopment,suchasspecificationandimplementation,butinsteadfocusontheconceptof programtransformationthroughstepwiserefin ementanditeration.1ObjectOrientedTechnologyObject-Oriented(O -O)softwaredesigntechnologyisfundamentallydifferentfromthetraditionalmethodsdescribedabove.Withtraditionalmethods,O-O programmingcan betraced tothe simulationlanguage SIMULA, ahigheachmoduleisrecognizeda majorstepintheoverallproc essandtheO-O programmingcan betraced tothe simulationlanguage SIMULA, ahighlevel languagedevelopedin the late 60's that introducedobject classes as amethod to encapsulatedata. Later, in the 1970s, Smalltalkwas introducedlevel languagedevelopedin the late 60's that introducedobject classes as amethod to encapsulatedata. Later, in the 1970s, Smalltalkwas introducedasacompletegrapghdesignandcodingasdetailisaddedtothedesign.Thisprovidesacommon language throughouteach stage indevelopment. O-Oisbest appliedwith specificallydesignedO-O developmenttools,but it is importanttoremember that asamethodologyisitnot specific toany programminglanguage.Manydifferentprogramminglanguagescanbeusedtoimplement0-0technologyanddesignmethodologies.Instead of proceduresInstead of proceduresand functionspassing data back and forth, in objectoriented design, the system is viewed as acollectionof objects with messagespassedfromobjecttoobject.Eachobjecthasitsownsetofassociatedoperations.Object-orienteddesignis basedon the ideaof informationhidingandmodularizationoriented design, the system is viewed as acollectionof objects with messagespassedfromobjecttoobject.Eachobjecthasitsownsetofassociatedoperations.Object-orienteddesignis basedon the ideaof informationhidingandmodularizationof both data and processing.It is best used when neither datastructure nor processingoperationsare well defined ahead oftime. This isquiteuseful in today's business environmentwhere requirementsare always changingand not very well defined. Thus, it has become quite popular! The concept ofobjects performingservices isanatural way of thinking for both developersandcustomers.Thisfacilitatesunderstanding the problem domain anda morenaturaldesign.Inaddition,therearemanybenefitsofobject-orienteddevelopment.Theseinclude:Inheritance capitalizes on the commonalty of attributes andservices allowing code andobjectstobere-used..Information hiding makes systems more stable by localizingchanges to objects andthereby making them reusable..The object-oriented development process is consistent froanalysis, through design,to coding.MoreinformationonObjectOrientedProgrammingprinciplescanbefoundin Chapter 4-Organization of Programming Languages and Concepts.2、 PrototypingPrototypingwasinventedbecauseendusersparticipatinginthedevelopmentphase found it difficult to understand requirement specifications conceptualmodels.However,whenitfirstbeganbeingusedinthe1980s,mostconventionallifec ycledevelopersconsideredit expensiveandtimeconsuming.SiSince that time, users and developers have used prototypessuccessfully as a communicationstool to demonstratesystem requirements.Afterseveralprototypeiterations,developershaveabetterunderstandingofuserrequirementsandusershaveabetterideaofhowthesystemwilleventuallywork,look,andlook,andl.increments while others are being developed. For instance, tincrements while others are being developed. For instance, the firstdeveloped which later will be combined with the existing prototype as ithowhowwelltheuserrequirementsandunderstood. Italsodependsontheusersneed to add requirements orchange previously stated requirements. Afterestablishinganoverallarchitectureandframework,thesystemisdevelopedanddeliveredin increments. Usersmayexperimentwithandusedeliveredpprototype may be delivered that implements a certain screen with onlysome active menu items. While users are experimentingwiththisscreenand menu items, other screens and menu items are concurrently beingevolves.Oncetheuserissatisfiedthattheprototypemeetsrequirements,theevolves.Oncetheuserissatisfiedthattheprototypemeetsrequirements,theprototype is transformedinto the"system". Thiseffortdependsonseveralfactors.Itmayincludeaddingfunctionalitythatwasn'tinitiallyrecognizedas required, replacing inefficient parts of the prototype to meetenvienvironment.Prototypingcanbeginveryearly,aftersomepreliminaryrequirementsanalysishasdeterminedthebasicfunctionality,scope,andenvironmentofpprototyping, functional specifications are not fixed. Rather, users areencouraged to modify their requirements as they themselves begin tounderstandthembetter. Thisisbecauseusersoftendon't reallyknowwhatddemonstration, review, and refinement gets the user more involved in thedevelopmentprocess,givingthemasenseofownershipduringtheprocessandatfinalsystemdelivery. However, duetothemindsetof"prototype",performance critperformance criteria, or adapting the prototype to fit the user's hardwaretheproposedsoftware. Contrarytothetraditionalwaterfallmethod,inthethey want until they see it on the screen. The prototyping process ofusers often find it difficult to verify that the prototype satisfies theirPAGEPAGE10stopiteratingandtheprototypetofinalproduct. 外文資料譯文軟件開(kāi)發(fā)概念和設(shè)計(jì)方法在20世紀(jì)60年代,大型機(jī)和高級(jí)程序語(yǔ)言被用來(lái)解決包括人力資源系統(tǒng)、專(zhuān)有系統(tǒng)和制造系統(tǒng)等許多問(wèn)題。計(jì)算機(jī)和軟件被視為解決所有商業(yè)問(wèn)題的萬(wàn)能藥,有時(shí)候甚至被盲目的應(yīng)用。因?yàn)楹芏嘣O(shè)計(jì)上的原因,這些系統(tǒng)并不是萬(wàn)能的。主要因素如下:.不能完全理解復(fù)雜的問(wèn)題.沒(méi)有充分滿足終端用戶的需求,組織環(huán)境和性能折中.沒(méi)有準(zhǔn)確估計(jì)開(kāi)發(fā)時(shí)間和運(yùn)行成本.缺乏一致,規(guī)范的客戶通訊框架這個(gè)時(shí)候,結(jié)構(gòu)化的編程,自上而下設(shè)計(jì)的概念出現(xiàn)了。對(duì)軟件工程來(lái)說(shuō),結(jié)構(gòu)化編程至今仍是最重要的方法且不斷發(fā)展。“軟件工程”概念的出現(xiàn)則是基于這樣的構(gòu)想:一個(gè)類(lèi)似工程學(xué)的學(xué)科可以應(yīng)用于軟件的設(shè)計(jì)和開(kāi)發(fā)。軟件設(shè)計(jì)是一種方法,軟件設(shè)計(jì)人員可以籍此應(yīng)用技術(shù)和規(guī)則生成一種描述并定義問(wèn)題解決方法的模型。最初,設(shè)計(jì)方法一直未能構(gòu)建好,而且模型也不能準(zhǔn)確地描述軟件開(kāi)發(fā)的問(wèn)題。然而,隨著我們對(duì)開(kāi)發(fā)過(guò)程的深入理解,設(shè)計(jì)方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。生命周期過(guò)程的模型下開(kāi)發(fā)的,但人們開(kāi)始嘗試尋找這種模型的替代品。一、 軟件設(shè)計(jì)基礎(chǔ)軟件設(shè)計(jì)方法最終的目標(biāo)就是向軟件設(shè)計(jì)者提供一張系統(tǒng)藍(lán)圖。它通常有三個(gè)方面:數(shù)據(jù),構(gòu)架和過(guò)程。.?dāng)?shù)據(jù)設(shè)計(jì)指的是數(shù)據(jù)的組織、關(guān)系、訪問(wèn)和處理方法。.構(gòu)架設(shè)計(jì)定義系統(tǒng)組件和它們之間的關(guān)系。.過(guò)程設(shè)計(jì)建立在數(shù)據(jù)和構(gòu)架設(shè)計(jì)階段之上描述系統(tǒng)的處理細(xì)節(jié)。盡管設(shè)計(jì)方法眾多,但它們的基本概念非常相似。為了減少?gòu)?fù)雜度,幾乎所有軟件設(shè)計(jì)方法都把問(wèn)題和軟件分割成較小的部分用于標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)、功能以及度量軟件品質(zhì)。軟件設(shè)計(jì)包括以下這些普遍原則:逐步求精、軟件構(gòu)架、程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、軟件過(guò)程、模塊化、抽象和信息隱藏。二、現(xiàn)代設(shè)計(jì)方法常規(guī)的軟件開(kāi)發(fā)實(shí)踐通常能被映射到傳統(tǒng)的生命階段上,包括分析、功能說(shuō)明、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和維護(hù)。然而對(duì)軟件需求的增長(zhǎng)比軟件開(kāi)發(fā)者數(shù)量增長(zhǎng)要快,遵守常規(guī)的技術(shù)你瀑布模型)耗時(shí)太長(zhǎng),過(guò)多人員的參與也帶來(lái)了管理上的困難,顯然常規(guī)的思考過(guò)程對(duì)于今天的復(fù)雜信息系統(tǒng)是不夠的。因此,產(chǎn)生了許多新的軟件開(kāi)發(fā)技術(shù)。最新發(fā)展出的實(shí)踐和模型井不試圖把軟件開(kāi)發(fā)分割成多個(gè)階段(如說(shuō)明和實(shí)現(xiàn),而是注重于通過(guò)逐步求精和迭代把概念轉(zhuǎn)換成程序。1、面向?qū)ο蟮募夹g(shù)面向?qū)ο蟮能浖O(shè)計(jì)技術(shù)從根本上有別于傳統(tǒng)的設(shè)計(jì)方法。傳統(tǒng)方法中,每個(gè)模塊被當(dāng)作全局過(guò)程的一個(gè)主要步驟,一步一步地往下走;而面向?qū)ο蟮脑O(shè)計(jì)圍繞著對(duì)象模型和對(duì)象所執(zhí)行的功能進(jìn)行結(jié)構(gòu)化。面向?qū)ο蟮木幊炭梢宰匪莸椒抡嬲Z(yǔ)言SIMULA。SIMULA是一種20世紀(jì)60年代后期的高級(jí)語(yǔ)言,引入了“對(duì)象類(lèi)”作為封裝數(shù)據(jù)的方法。到了20世紀(jì)70年代,Smalltalk被作為一種完全的圖形用戶界面(GUI)面向?qū)ο蟮木幊汰h(huán)境被引入。甚至在30年以后,Smalltalk仍然是度量其他所有面向?qū)ο笳Z(yǔ)言的標(biāo)準(zhǔn)。由于面向?qū)ο蟮母拍钊遮叧墒欤罱赀@種軟件開(kāi)發(fā)方法已經(jīng)流行起來(lái)。同時(shí),軟件業(yè)注意的焦點(diǎn)己經(jīng)從編碼和結(jié)構(gòu)化過(guò)程轉(zhuǎn)移到通過(guò)設(shè)計(jì)和柔韌性來(lái)節(jié)省勞動(dòng)力成本和時(shí)間。柔韌性變得十分關(guān)鍵,因?yàn)橄到y(tǒng)隨著需求的變化而快速改變:變得更大,更復(fù)雜和更不穩(wěn)定。在面向?qū)ο笾?,分析和設(shè)計(jì)沒(méi)有真正分開(kāi)。在分析期間,系統(tǒng)對(duì)象及其特性和關(guān)系一起被確定。這些對(duì)象可以護(hù),這樣就給整個(gè)開(kāi)發(fā)過(guò)程中的所有階段提供了一種公用的語(yǔ)言。采用面向?qū)ο蠓椒ㄗ詈檬鞘褂脤?zhuān)門(mén)設(shè)計(jì)的面向?qū)ο蟮拈_(kāi)發(fā)工具,但是請(qǐng)一定記住它是一種方法而不是特指任何編程語(yǔ)言。許多不同的編程語(yǔ)言都可以用來(lái)實(shí)現(xiàn)面向?qū)ο蠹夹g(shù)和設(shè)計(jì)方法。和過(guò)程、功能往返傳遞數(shù)據(jù)的方式不同,在面向?qū)ο蟮脑O(shè)計(jì)中,系統(tǒng)被看成一個(gè)由很多互相傳遞消息的對(duì)象組

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論