版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
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è)計方法</p><p> 在20世紀60年代,大型機和高級程序語言被用來解決包括人力資源系統(tǒng)、專有系統(tǒng)和制造系統(tǒng)等許多問題
42、。計算機和軟件被視為解決所有商業(yè)問題的萬能藥,有時候甚至被盲目的應(yīng)用。因為很多設(shè)計上的原因,這些系統(tǒng)并不是萬能的。主要因素如下:</p><p> 1.不能完全理解復雜的問題</p><p> 2.沒有充分滿足終端用戶的需求,組織環(huán)境和性能折中</p><p> 3.沒有準確估計開發(fā)時間和運行成本</p><p> 4.缺乏一致,規(guī)范
43、的客戶通訊框架</p><p> 這個時候,結(jié)構(gòu)化的編程,自上而下設(shè)計的概念出現(xiàn)了。對軟件工程來說,結(jié)構(gòu)化編程至今仍是最重要的方法且不斷發(fā)展?!败浖こ獭备拍畹某霈F(xiàn)則是基于這樣的構(gòu)想:一個類似工程學的學科可以應(yīng)用于軟件的設(shè)計和開發(fā)。</p><p> 軟件設(shè)計是一種方法,軟件設(shè)計人員可以籍此應(yīng)用技術(shù)和規(guī)則生成一種描述并定義問題解決方法的模型。最初,設(shè)計方法一直未能構(gòu)建好,而且模型也不能
44、準確地描述軟件開發(fā)的問題。然而,隨著我們對開發(fā)過程的深入理解,設(shè)計方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。</p><p> 生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。</p><p> 一、 軟件設(shè)計基礎(chǔ)</p><p> 軟件設(shè)計方法最終的目標就是向軟件設(shè)計者提供一張系統(tǒng)藍圖。它通常有三個方面:數(shù)據(jù),構(gòu)架和過程。</p><
45、;p> . 數(shù)據(jù)設(shè)計指的是數(shù)據(jù)的組織、關(guān)系、訪問和處理方法。</p><p> ?。畼?gòu)架設(shè)計定義系統(tǒng)組件和它們之間的關(guān)系。</p><p> ?。^程設(shè)計建立在數(shù)據(jù)和構(gòu)架設(shè)計階段之上描述系統(tǒng)的處理細節(jié)。</p><p> 盡管設(shè)計方法眾多,但它們的基本概念非常相似。為了減少復雜度,幾乎所有軟件設(shè)計方法都把問題和軟件分割成較小的部分用于標識數(shù)據(jù)結(jié)構(gòu)、功能以及
46、度量軟件品質(zhì)。軟件設(shè)計包括以下這些普遍原則:逐步求精、軟件構(gòu)架、程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、軟件過程、模塊化、抽象和信息隱藏。</p><p> 二、 現(xiàn)代設(shè)計方法</p><p> 常規(guī)的軟件開發(fā)實踐通常能被映射到傳統(tǒng)的生命階段上,包括分析、功能說明、設(shè)計、實現(xiàn)、測試和維護。然而對軟件需求的增長比軟件開發(fā)者數(shù)量增長要快,遵守常規(guī)的技術(shù)你瀑布模型)耗時太長,過多人員的參與也帶來了管理上的困難
47、,顯然常規(guī)的思考過程對于今天的復雜信息系統(tǒng)是不夠的。因此,產(chǎn)生了許多新的軟件開發(fā)技術(shù)。最新發(fā)展出的實踐和模型井不試圖把軟件開發(fā)分割成多個階段(如說明和實現(xiàn)),而是注重于通過逐步求精和迭代把概念轉(zhuǎn)換成程序。</p><p><b> 1、面向?qū)ο蟮募夹g(shù)</b></p><p> 面向?qū)ο蟮能浖O(shè)計技術(shù)從根本上有別于傳統(tǒng)的設(shè)計方法。傳統(tǒng)方法中,每個模塊被當作全局過程的
48、一個主要步驟,一步一步地往下走;而面向?qū)ο蟮脑O(shè)計圍繞著對象模型和對象所執(zhí)行的功能進行結(jié)構(gòu)化。</p><p> 面向?qū)ο蟮木幊炭梢宰匪莸椒抡嬲Z言SIMULA。SIMULA是一種20世紀60年代后期的高級語言,引入了“對象類”作為封裝數(shù)據(jù)的方法。到了20世紀70年代,Smalltalk被作為一種完全的圖形用戶界面(GUI)面向?qū)ο蟮木幊汰h(huán)境被引入。甚至在30年以后,Smalltalk仍然是度量其他所有面向?qū)ο笳Z言
49、的標準。由于面向?qū)ο蟮母拍钊遮叧墒?,最近十年這種軟件開發(fā)方法已經(jīng)流行起來。同時,軟件業(yè)注意的焦點己經(jīng)從編碼和結(jié)構(gòu)化過程轉(zhuǎn)移到通過設(shè)計和柔韌性來節(jié)省勞動力成本和時間。柔韌性變得十分關(guān)鍵,因為系統(tǒng)隨著需求的變化而快速改變:變得更大,更復雜和更不穩(wěn)定。</p><p> 在面向?qū)ο笾?,分析和設(shè)計沒有真正分開。在分析期間,系統(tǒng)對象及其特性和關(guān)系一起被確定。這些對象可以護,這樣就給整個開發(fā)過程中的所有階段提供了一種公用的
50、語言。采用面向?qū)ο蠓椒ㄗ詈檬鞘褂脤iT設(shè)計的面向?qū)ο蟮拈_發(fā)工具,但是請一定記住它是一種方法而不是特指任何編程語言。許多不同的編程語言都可以用來實現(xiàn)面向?qū)ο蠹夹g(shù)和設(shè)計方法。</p><p> 和過程、功能往返傳遞數(shù)據(jù)的方式不同,在面向?qū)ο蟮脑O(shè)計中,系統(tǒng)被看成一個由很多互相傳遞消息的對象組成的集合,每個對象都有它自己關(guān)聯(lián)操作的集合。面向?qū)ο蟮脑O(shè)計基本構(gòu)想是把數(shù)據(jù)和過程進行信息隱藏和模塊化,它最適用于數(shù)據(jù)結(jié)構(gòu)或者過程操
51、作沒有被提前的定義好的情況。這對于今天的商業(yè)環(huán)境中相當有用,畢竟需求總是不斷改變而不能很好的定義。這也是面向?qū)ο蟮脑O(shè)計現(xiàn)在相當流行的重要原因。對象執(zhí)行服務(wù)的概念是一種開發(fā)者和客戶都很自然的思考方法,這有利于理解問題的范圍,也是一種更加自然的設(shè)計。此外,面向?qū)ο蟮拈_發(fā)還有許多優(yōu)點。</p><p> .通過屬性和服務(wù)的結(jié)合使用,繼承可以重用代碼和對象。</p><p> ?。畔㈦[藏通過局
52、限對象的變化使系統(tǒng)更加穩(wěn)定,從而使對象可以重用</p><p> ?。嫦?qū)ο蟮拈_發(fā)過程從分析、設(shè)計到編碼都是一致的。</p><p><b> 2、原型法</b></p><p> 原型法的出現(xiàn)是因為參于開發(fā)階段的終端用戶覺得很難理解需求說明和概念模型。而當原型法在20世紀80年代第一次被使用時,大部分常規(guī)的生命周期開發(fā)者認為它費時費力。
53、但從那時開始,用戶和開發(fā)者已經(jīng)能成功地應(yīng)用原型作為通訊工具來演示系統(tǒng)的需求。原型多次迭代后,開發(fā)者對用戶的需求有了更好的理解,用戶也對系統(tǒng)最后如何操作、看起來像什么和如何感覺都有所了解。原型法已經(jīng)被證明是一種理解用戶需求和問題的有效方法,它有效地消除了在以后開發(fā)過程中因錯誤理解導致高昂代價的重復工作。原型法對于開發(fā)用戶界面特別有價值,因為對于用戶界面,有時候無法使用具體的詞和圖表進行描述,而用戶界面的開發(fā)在今天的開發(fā)環(huán)境中又格外關(guān)鍵,它
54、在整個系統(tǒng)開發(fā)費用中份額仍在增加。</p><p><b> ?。?) 丟棄型原型</b></p><p> 原型有兩類,丟棄型原型和演進型原型。丟棄型原型被設(shè)計成用來校驗或者驅(qū)動系統(tǒng)需求,也可以用于評估性能或決定設(shè)計是否可行。一旦獲得所需的信息和完成原型的目的就把原型就丟棄掉,繼續(xù)常規(guī)的軟件設(shè)計。</p><p><b> 丟棄
55、型原型:</b></p><p> A 用于減少需求風險,便于理解用戶需求;</p><p> B 不作為最終的系統(tǒng),在使用以后就被拋棄具體原因有:</p><p> ①原型省掉了系統(tǒng)許多特性;</p><p> ?、跒檠菔居枚焖偻瓿桑浣Y(jié)構(gòu)或許不必最佳且難于維護。</p><p> 在使用丟棄型
56、原型時,分析家通??紤]把原型作為設(shè)計或說明語言設(shè)計階段的輸入,而不是作為產(chǎn)品或者系統(tǒng)本身。以用于傳統(tǒng)系統(tǒng)</p><p><b> (2).演進型原型</b></p><p> 與有意設(shè)計成丟棄型原型不同,演進型原型向終端用戶交付一個可用的系統(tǒng)在完全了解用戶需求后,即可開始演進型原型的開發(fā)它被當作過程模型的焦點,條的屏幕原型,當用戶正在體驗屏幕和菜單條時,其他屏幕
57、和菜單條正同時被開發(fā),然后再與他們相關(guān)的現(xiàn)有原型結(jié)合在一起。</p><p> 一旦用戶對原型所能滿足的需求感到滿意,原型就轉(zhuǎn)變成“系統(tǒng)”這取決于若干因素,包括增加最初無法識別需求的功能,為滿足性能標準而替換原型中效率低的部分,或者改動原型以適應(yīng)用戶的硬件環(huán)境。</p><p> 可以很早就開始建立原型,經(jīng)過一些預先需求分析以后決定出其基本的功能、范圍和建議的軟件環(huán)境。與傳統(tǒng)的瀑布法相
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)外文翻譯
- 軟件開發(fā)外文翻譯(節(jié)選)
- 軟件開發(fā)設(shè)計文檔
- 第1章軟件開發(fā)方法(三)軟件開發(fā)技術(shù)
- 軟件開發(fā)崗位舉證模板_軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_資深軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_助理軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_高級軟件開發(fā)
- 軟件開發(fā)
- 軟件開發(fā)設(shè)計文檔模板
- 軟件開發(fā)概要設(shè)計模板
- 軟件開發(fā)設(shè)計文檔模板
- 絡(luò)軟件開發(fā)技術(shù)概念篇
- 軟件開發(fā)概要設(shè)計模板
- 軟件開發(fā)方法及流程
- 軟件開發(fā)模型
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 軟件開發(fā)規(guī)范
- 軟件開發(fā)協(xié)議
評論
0/150
提交評論