版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 中文2780字</b></p><p><b> 外文資料原文 </b></p><p> Software Development Concepts and Design Methodologies</p><p> During the 1960s, mainframes and
2、higher level programming languages were applied to many problems including human resource systems, reservation systems, and manufacturing systems. Computers and software were seen as the cure all for many business issues
3、 were sometimes applied blindly. Systems sometimes failed to solve the problem for which they were designed for many reasons including:</p><p> ?Inability to sufficiently understand complex problems</p&g
4、t;<p> ?Not sufficiently taking into account end-user needs, the organizational environment, and performance tradeoffs</p><p> ?Inability to accurately estimate development time and operational cost
5、s</p><p> ?Lack of framework for consistent and regular customer communications</p><p> At this time, the concept of structured programming, top-down design, stepwise refinement,and modularity
6、 emerged. Structured programming is still the most dominant approach to software engineering and is still evolving. These failures led to the concept of "software engineering" based upon the idea that an engine
7、ering-like discipline could be applied to software design and development.</p><p> Software design is a process where the software designer applies techniques and principles to produce a conceptual model th
8、at describes and defines a solution to a problem. In the beginning, this design process has not been well structured and the model does not always accurately represent the problem of software development. However, design
9、 methodologies have been evolving to accommodate changes in technology coupled with our increased understanding of development processes.</p><p> Whereas early design methods addressed specific aspects of t
10、he development process, current methods attempt to address the entire scope of software development. Software design methods are often classified in reference to the period in which they were introduced and the problems
11、at that time. Driven by coding and testing problems, tools and methods were developed. Early methods focused on modularity and top-down development, and information hiding through abstraction. This led to the development
12、</p><p> In the last decade or so, the expense involved in automation has shifted from hardware to people. Therefore, the software engineering community has been focused on object oriented (O-O) design and
13、the concept of re-usable code in order to reduce the human cost component. Inefficient designs and development methodologies have been addressed with Computer Aided Software Engineering (CASE) tools, and fourth generatio
14、n design languages. This has been done in an attempt replace the traditional waterf</p><p> 一、 Software Design Fundamentals</p><p> Software design methods all aim to provide the software desi
15、gner with a system blueprint. This blueprint usually has three aspects: data, architectural, and procedural.</p><p> ?Data design refers to the data's organization, relationships, access and processing
16、methods.</p><p> ?Architectural design defines the components of the system and their relationships.</p><p> ?Procedural design builds on the data and architectural design phases to describe t
17、he processing details of the system.</p><p> Even though there are numerous design methodologies, their basic concepts are very similar-All software design methods partition the problem and software into sm
18、aller pieces in order to reduce complexity. They all strive to identify data structures and functions, and provide measurements for software quality. Some of the common principles in software design include: stepwise ref
19、inement, software architecture, program structure, data structure, software procedures, modularity, abstraction, and in</p><p> 二、 Modern Design Methodologies</p><p> Conventional software dev
20、elopment practices can generally be mapped onto the traditional life-cycle phases of analysis, functional specification, design, implementation, testing, and maintenance. This thought process is inadequate for today'
21、s complex information systems. As the demand for software is growing much faster than the number of developers, adhering to conventional techniques such as the waterfall method requires too much time, too many people, an
22、d is difficult to manage. Hence, many n</p><p> 1、Object-Oriented Technology</p><p> Object-Oriented (O-O) software design technology is fundamentally different from the traditional methods de
23、scribed above. With traditional methods, each module is recognized a major step in the overall process and the process goes from one step to the next. On the other hand, O-O design is structured around a model of objects
24、 and the functions they perform.</p><p> O-O programming can be traced to the simulation language SIMULA, a high level language developed in the late 60's that introduced object classes as a method to e
25、ncapsulate data. Later, in the 1970s, Smalltalk was introduced as a complete grapgh design and coding as detail is added to the design. This provides a common language throughout each stage in development. O-O is best ap
26、plied with specifically designed O-O development tools, but it is important to remember that as a methodology is it not</p><p> Instead of procedures and functions passing data back and forth, in object ori
27、ented design, the system is viewed as a collection of objects with messages passed from object to object. Each object has its own set of associated operations. Object-oriented design is based on the idea of information h
28、iding and modularization of both data and processing. It is best used when neither data structure nor processing operations are well defined ahead of time. This is quite useful in today's business envir</p>&l
29、t;p> ? Inheritance capitalizes on the commonalty of attributes and services allowing code and objects to be re-used.</p><p> .Information hiding makes systems more stable by localizing changes to object
30、s and thereby making them reusable.</p><p> .The object-oriented development process is consistent from analysis, through design, to coding.</p><p> More information on Object Oriented Program
31、ming principles can be found in Chapter 4-Organization of Programming Languages and Programming Concepts.</p><p> 2、 Prototyping</p><p> Prototyping was invented because end users participatin
32、g in the development phase found it difficult to understand requirement specifications and conceptual models. However, when it first began being used in the 1980s, most conventional life cycle developers considered it ex
33、pensive and time consuming.</p><p> Since that time, users and developers have used prototypes successfully as a communications tool to demonstrate system requirements. After several prototype iterations, d
34、evelopers have a better understanding of user requirements and users have a better idea of how the system will eventually work, look, and l.</p><p> The number of times the prototype is incrementally refine
35、d depends on how well the user requirements and understood. It also depends on the users need to add requirements or change previously stated requirements. After establishing an overall architecture and framework, the sy
36、stem is developed and delivered in increments. Users may experiment with and use delivered increments while others are being developed. For instance, the first prototype may be delivered that implements a certain screen
37、wit</p><p> Once the user is satisfied that the prototype meets requirements, the prototype is transformed into the "system". This effort depends on several factors. It may include adding function
38、ality that wasn't initially recognized as required, replacing inefficient parts of the prototype to meet performance criteria, or adapting the prototype to fit the user's hardware environment.</p><p>
39、; Prototyping can begin very early, after some preliminary requirements analysis has determined the basic functionality, scope, and environment of the proposed software. Contrary to the traditional waterfall method, in
40、the prototyping, functional specifications are not fixed. Rather, users are encouraged to modify their requirements as they themselves begin to understand them better. This is because users often don't really know wh
41、at they want until they see it on the screen. The prototyping proce</p><p><b> 外文資料譯文</b></p><p> 軟件開發(fā)概念和設(shè)計(jì)方法</p><p> 在20世紀(jì)60年代,大型機(jī)和高級(jí)程序語言被用來解決包括人力資源系統(tǒng)、專有系統(tǒng)和制造系統(tǒng)等許多問題
42、。計(jì)算機(jī)和軟件被視為解決所有商業(yè)問題的萬能藥,有時(shí)候甚至被盲目的應(yīng)用。因?yàn)楹芏嘣O(shè)計(jì)上的原因,這些系統(tǒng)并不是萬能的。主要因素如下:</p><p> 1.不能完全理解復(fù)雜的問題</p><p> 2.沒有充分滿足終端用戶的需求,組織環(huán)境和性能折中</p><p> 3.沒有準(zhǔn)確估計(jì)開發(fā)時(shí)間和運(yùn)行成本</p><p> 4.缺乏一致,規(guī)范
43、的客戶通訊框架</p><p> 這個(gè)時(shí)候,結(jié)構(gòu)化的編程,自上而下設(shè)計(jì)的概念出現(xiàn)了。對(duì)軟件工程來說,結(jié)構(gòu)化編程至今仍是最重要的方法且不斷發(fā)展?!败浖こ獭备拍畹某霈F(xiàn)則是基于這樣的構(gòu)想:一個(gè)類似工程學(xué)的學(xué)科可以應(yīng)用于軟件的設(shè)計(jì)和開發(fā)。</p><p> 軟件設(shè)計(jì)是一種方法,軟件設(shè)計(jì)人員可以籍此應(yīng)用技術(shù)和規(guī)則生成一種描述并定義問題解決方法的模型。最初,設(shè)計(jì)方法一直未能構(gòu)建好,而且模型也不能
44、準(zhǔn)確地描述軟件開發(fā)的問題。然而,隨著我們對(duì)開發(fā)過程的深入理解,設(shè)計(jì)方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。</p><p> 生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。</p><p> 一、 軟件設(shè)計(jì)基礎(chǔ)</p><p> 軟件設(shè)計(jì)方法最終的目標(biāo)就是向軟件設(shè)計(jì)者提供一張系統(tǒng)藍(lán)圖。它通常有三個(gè)方面:數(shù)據(jù),構(gòu)架和過程。</p><
45、;p> ?。?數(shù)據(jù)設(shè)計(jì)指的是數(shù)據(jù)的組織、關(guān)系、訪問和處理方法。</p><p> ?。畼?gòu)架設(shè)計(jì)定義系統(tǒng)組件和它們之間的關(guān)系。</p><p> ?。^程設(shè)計(jì)建立在數(shù)據(jù)和構(gòu)架設(shè)計(jì)階段之上描述系統(tǒng)的處理細(xì)節(jié)。</p><p> 盡管設(shè)計(jì)方法眾多,但它們的基本概念非常相似。為了減少復(fù)雜度,幾乎所有軟件設(shè)計(jì)方法都把問題和軟件分割成較小的部分用于標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)、功能以及
46、度量軟件品質(zhì)。軟件設(shè)計(jì)包括以下這些普遍原則:逐步求精、軟件構(gòu)架、程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、軟件過程、模塊化、抽象和信息隱藏。</p><p> 二、 現(xiàn)代設(shè)計(jì)方法</p><p> 常規(guī)的軟件開發(fā)實(shí)踐通常能被映射到傳統(tǒng)的生命階段上,包括分析、功能說明、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和維護(hù)。然而對(duì)軟件需求的增長比軟件開發(fā)者數(shù)量增長要快,遵守常規(guī)的技術(shù)你瀑布模型)耗時(shí)太長,過多人員的參與也帶來了管理上的困難
47、,顯然常規(guī)的思考過程對(duì)于今天的復(fù)雜信息系統(tǒng)是不夠的。因此,產(chǎn)生了許多新的軟件開發(fā)技術(shù)。最新發(fā)展出的實(shí)踐和模型井不試圖把軟件開發(fā)分割成多個(gè)階段(如說明和實(shí)現(xiàn)),而是注重于通過逐步求精和迭代把概念轉(zhuǎn)換成程序。</p><p><b> 1、面向?qū)ο蟮募夹g(shù)</b></p><p> 面向?qū)ο蟮能浖O(shè)計(jì)技術(shù)從根本上有別于傳統(tǒng)的設(shè)計(jì)方法。傳統(tǒng)方法中,每個(gè)模塊被當(dāng)作全局過程的
48、一個(gè)主要步驟,一步一步地往下走;而面向?qū)ο蟮脑O(shè)計(jì)圍繞著對(duì)象模型和對(duì)象所執(zhí)行的功能進(jìn)行結(jié)構(gòu)化。</p><p> 面向?qū)ο蟮木幊炭梢宰匪莸椒抡嬲Z言SIMULA。SIMULA是一種20世紀(jì)60年代后期的高級(jí)語言,引入了“對(duì)象類”作為封裝數(shù)據(jù)的方法。到了20世紀(jì)70年代,Smalltalk被作為一種完全的圖形用戶界面(GUI)面向?qū)ο蟮木幊汰h(huán)境被引入。甚至在30年以后,Smalltalk仍然是度量其他所有面向?qū)ο笳Z言
49、的標(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)定。</p><p> 在面向?qū)ο笾?,分析和設(shè)計(jì)沒有真正分開。在分析期間,系統(tǒng)對(duì)象及其特性和關(guān)系一起被確定。這些對(duì)象可以護(hù),這樣就給整個(gè)開發(fā)過程中的所有階段提供了一種公用的
50、語言。采用面向?qū)ο蠓椒ㄗ詈檬鞘褂脤iT設(shè)計(jì)的面向?qū)ο蟮拈_發(fā)工具,但是請(qǐng)一定記住它是一種方法而不是特指任何編程語言。許多不同的編程語言都可以用來實(shí)現(xiàn)面向?qū)ο蠹夹g(shù)和設(shè)計(jì)方法。</p><p> 和過程、功能往返傳遞數(shù)據(jù)的方式不同,在面向?qū)ο蟮脑O(shè)計(jì)中,系統(tǒng)被看成一個(gè)由很多互相傳遞消息的對(duì)象組成的集合,每個(gè)對(duì)象都有它自己關(guān)聯(lián)操作的集合。面向?qū)ο蟮脑O(shè)計(jì)基本構(gòu)想是把數(shù)據(jù)和過程進(jìn)行信息隱藏和模塊化,它最適用于數(shù)據(jù)結(jié)構(gòu)或者過程操
51、作沒有被提前的定義好的情況。這對(duì)于今天的商業(yè)環(huán)境中相當(dāng)有用,畢竟需求總是不斷改變而不能很好的定義。這也是面向?qū)ο蟮脑O(shè)計(jì)現(xiàn)在相當(dāng)流行的重要原因。對(duì)象執(zhí)行服務(wù)的概念是一種開發(fā)者和客戶都很自然的思考方法,這有利于理解問題的范圍,也是一種更加自然的設(shè)計(jì)。此外,面向?qū)ο蟮拈_發(fā)還有許多優(yōu)點(diǎn)。</p><p> ?。ㄟ^屬性和服務(wù)的結(jié)合使用,繼承可以重用代碼和對(duì)象。</p><p> ?。畔㈦[藏通過局
52、限對(duì)象的變化使系統(tǒng)更加穩(wěn)定,從而使對(duì)象可以重用</p><p> ?。嫦?qū)ο蟮拈_發(fā)過程從分析、設(shè)計(jì)到編碼都是一致的。</p><p><b> 2、原型法</b></p><p> 原型法的出現(xiàn)是因?yàn)閰⒂陂_發(fā)階段的終端用戶覺得很難理解需求說明和概念模型。而當(dāng)原型法在20世紀(jì)80年代第一次被使用時(shí),大部分常規(guī)的生命周期開發(fā)者認(rèn)為它費(fèi)時(shí)費(fèi)力。
53、但從那時(shí)開始,用戶和開發(fā)者已經(jīng)能成功地應(yīng)用原型作為通訊工具來演示系統(tǒng)的需求。原型多次迭代后,開發(fā)者對(duì)用戶的需求有了更好的理解,用戶也對(duì)系統(tǒng)最后如何操作、看起來像什么和如何感覺都有所了解。原型法已經(jīng)被證明是一種理解用戶需求和問題的有效方法,它有效地消除了在以后開發(fā)過程中因錯(cuò)誤理解導(dǎo)致高昂代價(jià)的重復(fù)工作。原型法對(duì)于開發(fā)用戶界面特別有價(jià)值,因?yàn)閷?duì)于用戶界面,有時(shí)候無法使用具體的詞和圖表進(jìn)行描述,而用戶界面的開發(fā)在今天的開發(fā)環(huán)境中又格外關(guān)鍵,它
54、在整個(gè)系統(tǒng)開發(fā)費(fèi)用中份額仍在增加。</p><p><b> ?。?) 丟棄型原型</b></p><p> 原型有兩類,丟棄型原型和演進(jìn)型原型。丟棄型原型被設(shè)計(jì)成用來校驗(yàn)或者驅(qū)動(dòng)系統(tǒng)需求,也可以用于評(píng)估性能或決定設(shè)計(jì)是否可行。一旦獲得所需的信息和完成原型的目的就把原型就丟棄掉,繼續(xù)常規(guī)的軟件設(shè)計(jì)。</p><p><b> 丟棄
55、型原型:</b></p><p> A 用于減少需求風(fēng)險(xiǎn),便于理解用戶需求;</p><p> B 不作為最終的系統(tǒng),在使用以后就被拋棄具體原因有:</p><p> ?、僭褪〉袅讼到y(tǒng)許多特性;</p><p> ?、跒檠菔居枚焖偻瓿?,其結(jié)構(gòu)或許不必最佳且難于維護(hù)。</p><p> 在使用丟棄型
56、原型時(shí),分析家通??紤]把原型作為設(shè)計(jì)或說明語言設(shè)計(jì)階段的輸入,而不是作為產(chǎn)品或者系統(tǒng)本身。以用于傳統(tǒng)系統(tǒng)</p><p><b> ?。?).演進(jìn)型原型</b></p><p> 與有意設(shè)計(jì)成丟棄型原型不同,演進(jìn)型原型向終端用戶交付一個(gè)可用的系統(tǒng)在完全了解用戶需求后,即可開始演進(jìn)型原型的開發(fā)它被當(dāng)作過程模型的焦點(diǎn),條的屏幕原型,當(dāng)用戶正在體驗(yàn)屏幕和菜單條時(shí),其他屏幕
57、和菜單條正同時(shí)被開發(fā),然后再與他們相關(guān)的現(xiàn)有原型結(jié)合在一起。</p><p> 一旦用戶對(duì)原型所能滿足的需求感到滿意,原型就轉(zhuǎn)變成“系統(tǒng)”這取決于若干因素,包括增加最初無法識(shí)別需求的功能,為滿足性能標(biāo)準(zhǔn)而替換原型中效率低的部分,或者改動(dòng)原型以適應(yīng)用戶的硬件環(huán)境。</p><p> 可以很早就開始建立原型,經(jīng)過一些預(yù)先需求分析以后決定出其基本的功能、范圍和建議的軟件環(huán)境。與傳統(tǒng)的瀑布法相
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)外文翻譯
- 軟件開發(fā)外文翻譯(節(jié)選)
- 軟件開發(fā)設(shè)計(jì)文檔
- 第1章軟件開發(fā)方法(三)軟件開發(fā)技術(shù)
- 軟件開發(fā)崗位舉證模板_軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_資深軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_助理軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_高級(jí)軟件開發(fā)
- 軟件開發(fā)
- 軟件開發(fā)設(shè)計(jì)文檔模板
- 軟件開發(fā)概要設(shè)計(jì)模板
- 軟件開發(fā)設(shè)計(jì)文檔模板
- 絡(luò)軟件開發(fā)技術(shù)概念篇
- 軟件開發(fā)概要設(shè)計(jì)模板
- 軟件開發(fā)方法及流程
- 軟件開發(fā)模型
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 軟件開發(fā)規(guī)范
- 軟件開發(fā)協(xié)議
評(píng)論
0/150
提交評(píng)論