版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
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. 外文資料譯文軟件開發(fā)概念和設(shè)計方法在20世紀(jì)60年代,大型機和高級程序語言被用來解決包括人力資源系統(tǒng)、專有系統(tǒng)和制造系統(tǒng)等許多問題。計算機和軟件被視為解決所有商業(yè)問題的萬能藥,有時候甚至被盲目的應(yīng)用。因為很多設(shè)計上的原因,這些系統(tǒng)并不是萬能的。主要因素如下:.不能完全理解復(fù)雜的問題.沒有充分滿足終端用戶的需求,組織環(huán)境和性能折中.沒有準(zhǔn)確估計開發(fā)時間和運行成本.缺乏一致,規(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)建好,而且模型也不能準(zhǔn)確地描述軟件開發(fā)的問題。然而,隨著我們對開發(fā)過程的深入理解,設(shè)計方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。一、 軟件設(shè)計基礎(chǔ)軟件設(shè)計方法最終的目標(biāo)就是向軟件設(shè)計者提供一張系統(tǒng)藍圖。它通常有三個方面:數(shù)據(jù),構(gòu)架和過程。.?dāng)?shù)據(jù)設(shè)計指的是數(shù)據(jù)的組織、關(guān)系、訪問和處理方法。.構(gòu)架設(shè)計定義系統(tǒng)組件和它們之間的關(guān)系。.過程設(shè)計建立在數(shù)據(jù)和構(gòu)架設(shè)計階段之上描述系統(tǒng)的處理細節(jié)。盡管設(shè)計方法眾多,但它們的基本概念非常相似。為了減少復(fù)雜度,幾乎所有軟件設(shè)計方法都把問題和軟件分割成較小的部分用于標(biāo)識數(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)方法中,每個模塊被當(dāng)作全局過程的一個主要步驟,一步一步地往下走;而面向?qū)ο蟮脑O(shè)計圍繞著對象模型和對象所執(zhí)行的功能進行結(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)流行起來。同時,軟件業(yè)注意的焦點己經(jīng)從編碼和結(jié)構(gòu)化過程轉(zhuǎn)移到通過設(shè)計和柔韌性來節(jié)省勞動力成本和時間。柔韌性變得十分關(guān)鍵,因為系統(tǒng)隨著需求的變化而快速改變:變得更大,更復(fù)雜和更不穩(wěn)定。在面向?qū)ο笾?,分析和設(shè)計沒有真正分開。在分析期間,系統(tǒng)對象及其特性和關(guān)系一起被確定。這些對象可以護,這樣就給整個開發(fā)過程中的所有階段提供了一種公用的語言。采用面向?qū)ο蠓椒ㄗ詈檬鞘褂脤iT設(shè)計的面向?qū)ο蟮拈_發(fā)工具,但是請一定記住它是一種方法而不是特指任何編程語言。許多不同的編程語言都可以用來實現(xiàn)面向?qū)ο蠹夹g(shù)和設(shè)計方法。和過程、功能往返傳遞數(shù)據(jù)的方式不同,在面向?qū)ο蟮脑O(shè)計中,系統(tǒng)被看成一個由很多互相傳遞消息的對象組
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧農(nóng)業(yè)灌溉系統(tǒng)建設(shè)與運營管理合同4篇
- 2025年度二零二五版環(huán)保技術(shù)研發(fā)項目保證合同4篇
- 二零二五版二手房買賣合同中的物業(yè)費結(jié)算辦法3篇
- 2025年度綜合性消防安全設(shè)施維護保養(yǎng)服務(wù)協(xié)議4篇
- 2025年智能安置房租賃合同示范文本3篇
- 個人租車位簡易協(xié)議合同 2篇
- 上海律協(xié)發(fā)布COVID(2024版)
- 個人勞務(wù)用工合同范本 2篇
- 2025年度池塘漁業(yè)資源增殖放流合作合同3篇
- 2025年度藝術(shù)品代持協(xié)議書3篇
- 2024年全國體育專業(yè)單獨招生考試數(shù)學(xué)試卷試題真題(含答案)
- 北師大版小學(xué)三年級上冊數(shù)學(xué)第五單元《周長》測試卷(含答案)
- DB45T 1950-2019 對葉百部生產(chǎn)技術(shù)規(guī)程
- 新修訂《保密法》知識考試題及答案
- 電工基礎(chǔ)知識培訓(xùn)課程
- 住宅樓安全性檢測鑒定方案
- 廣東省潮州市潮安區(qū)2023-2024學(xué)年五年級上學(xué)期期末考試數(shù)學(xué)試題
- 市政道路及設(shè)施零星養(yǎng)護服務(wù)技術(shù)方案(技術(shù)標(biāo))
- 《論語》學(xué)而篇-第一課件
- 《寫美食有方法》課件
- (完整word版)申論寫作格子紙模板
評論
0/150
提交評論