已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1 中文 2780 字 外文資料原文 Software Development Concepts and Design Methodologies During the 1960s, mainframes and higher level programming languages were applied to many problems including human resource systems, reservation systems, and manufacturing systems. Comp uters and software were seen as the cure all for many business issues were sometimes applied blindly. Systems sometimes failed to solve the problem for which they were designed for many reasons including: Inability to sufficiently understand complex problems Not sufficiently taking into account end-user needs, the organizational environment, and performance tradeoffs Inability to accurately estimate development time and operational costs Lack of framework for consistent and regular customer communicatio ns At this time, the concept of structured programming, top -down design, stepwise refinement, and modularity 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 engineering-like discipline could be applied to software design and development. Software design is a process where the software designer applies techniques and principles to produce a conceptual model that 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 methodologies have been evolving to accommodate changes in technology coupled with our increased understanding of development processes. Whereas early design methods addressed specific aspects of the development process, current methods attempt to address the entire scope of 2 software development. Software design methods are often classified in reference to the period in which they were introduced and the problems 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 of structured languages, structured analysis, and data flow analysis. In the last decade or so, the expense involved in automation has shifted from hardware to pe ople. Therefore, the software engineering community has been focused on object oriented (O -O) design and the concept of re -usable code in order to reduce the human cost component. Inefficient designs and development methodologies have been addressed with C omputer Aided Software Engineering (CASE) tools, and fourth generation design languages. This has been done in an attempt replace the traditional waterfall life cycle process model under which most existing software has been developed. 一、 Software Design Fundamentals Software design methods all aim to provide the software designer with a system blueprint. This blueprint usually has three aspects: data, architectural, and procedural. Data design refers to the datas organization, relatio nships, access and processing methods. Architectural design defines the components of the system and their relationships. Procedural design builds on the data and architectural design phases to describe the processing details of the system. Even though there are numerous design methodologies, their basic concepts are very similar-All software design methods partition the problem and software into smaller pieces in order to reduce complexity. They all strive to identify data structures and functions, and p rovide measurements for software quality. Some of the common principles in software design include: stepwise refinement, software architecture, program structure, data structure, 3 software procedures, mod u la r i t y, ab s tr ac t io n, and in fo r ma t io n h i di ng. 二、 M o d e r n D e s i g n M e t h o d o l o g i e s C on ve n t ion a l so f t wa r e d e ve l op me nt p ra c t ic es ca n gen e ra l l y be map pe d o n to t he tr ad i t io na l l i f e -c yc l e p h a s e s o f a n a l ys i s , f u n c t i o na l s p e c i f i c a t i o n , d e s i g n, i mp l e me n t a t i o n , t e s t i n g , an d m a i n t e n a n c e . T h i s t h o u g h t p r o c e s s i s i n a d e q u a t e f o r t o d a y s c o m p l e x i n f o r m a t i o n s y s t e m s . 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, and is difficult to manage. H ence, many new software development technologies have arisen. N ewl y de veloped p ractice s and mode ls do not a tte mp t to separa te phases of softwa re development, such as specification and implementation, but instead focus on the concept of program transformation through stepwise refinement and iteration. 1 、 O b j e c t - O r i e n t e d Te c h n o l o g y Object-Oriented (O-O) software design technology is fundamentally different from the traditional methods described 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 and the functions they perform. O-O programming can be traced to the simulation language SIMULA, a high level language developed in the late 60s that intro duced object classes as a method to encapsulate 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 applied with specifically designed O-O development tools, but it is important to remember that as a methodology is it not specific to any programming language. Many different programming languages can be used to implement 0-0 technology and design methodolo gies. Instead of procedures and functions passing data back and forth, in object oriented design, the system is viewed as a collection of objects with messages 4 passed from object to object. Each object has its own set of associated operations. Object-oriented design is based on the idea of information hiding 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 todays business environment where requirements are always changing and not very well defined. Thus, it has become quite popular! The concept of objects performing services is a natural way of thinking for both developers and customers. This facilitates understanding the problem doma in and a more natural design. In addition, there are many benefits of object -oriented development. These include: In h e r i ta n c e c a p it a liz e s o n th e c o mmo n a lt y o f a tt r ib u te s a n d s e r v i c e s a l l o w i n g c o d e a n d objects to be re-used. .I n f o r m a t i o n h i d i n g m a k e s s y s t e m s m o r e s t a b l e b y l o c a l i z i n g c h a n g e s t o o b j e c t s a n d t h e r e b y m a k i n g t h e m r e u s a b l e . .T h e o b j e c t - o r i e n t e d d e v e l o p m e n t p r o c e s s i s c o n s i s t e n t f r o m a n a l y s i s , t h r o u g h d e s i g n , t o c o d i n g . More information on Object Oriented Programming principles can be found in Chapter 4-Organization of Programming Languages and Programming Concepts. 2 、 P r o t o t yp i n g Prototyping was invented because end users participating in the development phase found it difficult to understand requirement specifications and conceptual models. How ever, when it first began being used in the 1980s, most conventional life cycle developers considered it expensive and time consuming. S i n c e t h a t t i m e , u s e r s a n d d e v e l o p e r s h a v e u s e d p r o t o t yp e s s u c c e s s f u l l y a s a communications tool to demonstrate system re quirements. After several prototype iterations, developers have a better understanding of user requirements and users have a better idea of how the system will eventually work, look, and l. T he nu mb er of t i me s th e p ro to t yp e is in c re men t a l l y r e f ine d de pe nds on 5 how we l l the u se r r eq ui re me n ts a nd un de r s t ood . It a ls o dep en ds o n th e us er s nee d to a dd req u ir e men ts o r ch an ge p r e v i o u s l y s t a t e d r e q u i r e m e n t s . A f t e r e s t a b l i s h i n g a n o ve r a l l a r c h i t e c t u r e a n d f r a me w o r k , t h e s ys t e m i s de ve l ope d and de l i ve re d in inc r e men ts . U se r s ma y e xpe r i men t w i t h a nd u se de l i ve red i n c r e me n t s w h i l e o t h e r s a r e be i n g d e v e l o p ed . Fo r i n s t a n c e , t h e f i r s t p r o t o t yp e ma y b e d e l i ve r e d t h a t i m p l e m e n t s a c e r t a i n s c r e e n w i t h o n l y s o m e a c t i v e m e n u i t e m s . W h i l e u s e r s a r e e x p e r i me n t i n g w i t h t h i s sc r e e n a nd me n u i t e ms , o t h e r s c r e en s a n d me n u i t e ms a r e c o n c u r r e n t l y b e in g de vel op ed wh i ch la t e r w il l be co mb in ed w i th th e e x is t in g p ro to t ype a s it e vo l ves . O n c e t h e u s e r i s s a t i s f i e d t h a t t h e p r o t o t y p e m e e t s r e q u i r e m e n t s , t h e p r o t o t y p e i s t ran s fo r med i n to the s ys t e m. T h i s e ffo r t d epe nd s on se ve ra l fa c to rs . It ma y i n c lu d e add i ng f u n c t i o n a l i t y t h a t w a s n t i n i t i a l l y r e c o g n i z e d a s r e q u i r e d , r e p l a c i n g i n e f f i c i e n t p a r t s o f t h e p r o t o t yp e t o me e t p e r f o r ma n c e c r i t e r i a , o r ad a p t i n g t h e p r o t o t yp e t o f i t t h e u s e r s h a r d w a r e envi ron ment. P r o t o t y p i n g c a n b e g i n v e r y e a r l y, a f t e r s o m e p r e l i m i n a r y r e q u i r e m e n t s a n a l y s i s h a s d e t e r m i n e d t h e b a s i c f u n c t i o n a l i t y, s c o p e , a n d e n v i r o n m e n t o f t h e p r o p o s e d s o f t w a r e . C o n t r a r y t o t h e t r a d i t i o n a l w a t e r f a l l me t h o d , i n t h e p r o t o t yp i n g , f u n c t i o n a l s p e c i f i c a t i o n s a r e n o t f i x e d . R a t h e r, u s e r s a r e e n c o u r a g e d t o m o d i f y t h e i r r e q u i r e m e n t s a s t h e y t h e m s e l v e s b e g i n t o u nd e r s t a n d t h e m b e t t e r. T h i s i s b e c a u s e u s e r s o f t e n d o n t r e a l l y k n o w w h a t t h e y w a n t u n t i l t h e y s e e i t o n t h e s c r e e n . T he p r o t o t yp i n g p r oc e s s o f d e mo n s t r a t i o n , r e v i e w, a nd r e f i n e me n t g e t s t h e u s e r m o r e i n v o l ve d i n t h e d e ve l o p m e n t p r o c e s s , g i v i n g t h e m a s e n s e o f o w n e r s h i p d u r i n g t h e p r o c e s s a n d a t f i n a l s ys t e m d e l i v e r y. H o w e v e r, d u e t o t h e m i n d s e t o f p r o t o t yp e , u s e r s o f t e n find i t diff icu l t to ve rif y t hat the proto t ype sa tis fies their require men ts. T here fore, guidel ines must b e e st ab l i she d t o d e te r m in e wh en t o s top i te ra t in g and the p ro to t yp e to f in a l pr oduc t . 6 外文資料譯文 軟件開發(fā)概念和設計方法 在 20 世紀 60 年 代 , 大 型 機 和 高 級 程 序 語 言 被 用 來 解 決 包 括 人 力 資 源 系統(tǒng) 、 專 有 系 統(tǒng) 和 制 造 系 統(tǒng) 等 許 多 問 題 。 計 算 機 和 軟 件 被 視 為 解 決 所 有 商 業(yè) 問題 的 萬 能 藥 , 有 時 候 甚 至 被 盲 目 的 應 用 。 因 為 很 多 設 計 上 的 原 因 , 這 些 系 統(tǒng)并 不 是 萬 能 的 。 主 要 因 素 如 下 : 1 不 能 完 全 理 解 復 雜 的 問 題 2 沒 有 充 分 滿 足 終 端 用 戶 的 需 求 , 組 織 環(huán) 境 和 性 能 折 中 3 沒 有 準 確 估 計 開 發(fā) 時 間 和 運 行 成 本 4 缺 乏 一 致 , 規(guī) 范 的 客 戶 通 訊 框 架 這 個 時 候 , 結 構 化 的 編 程 , 自 上 而 下 設 計 的 概 念 出 現(xiàn) 了 。 對 軟 件 工 程 來說 ,結 構 化 編 程 至 今 仍 是 最 重 要 的 方 法 且 不 斷 發(fā) 展 ?!?軟 件 工 程 ”概 念 的 出 現(xiàn)則 是 基 于 這 樣 的 構 想 :一 個 類 似 工 程 學 的 學 科 可 以 應 用 于 軟 件 的 設 計 和 開 發(fā) 。 軟 件 設 計 是 一 種 方 法 , 軟 件 設 計 人 員 可 以 籍 此 應 用 技 術 和 規(guī) 則 生 成 一 種描述并 定義問題解決方法的模型。最初,設計方法一直未能構建好,而且模型也不能準確地描述軟件開發(fā)的問題。然而,隨著我們對開發(fā)過程的深入理解,設計方法已經(jīng)不斷適應技術的變化了。 生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。 一、 軟件設計基礎 軟件設計方法最終的目標就是向軟件設計者提供一張系統(tǒng)藍圖。它通常有三個方面: 數(shù)據(jù),構架和過程。 數(shù)據(jù)設計指的是數(shù)據(jù)的組織、關系、訪問和處理方法。 構架設計定義系統(tǒng)組件和它們之間的關系。 過程設計建立在數(shù)據(jù)和構架設計階段之上描述系統(tǒng)的處理細節(jié)。 盡管設計方法眾多,但它們的基本概念非常相似。為了減少復雜度,幾乎所有軟件設計方法都把問題和軟件分割成較小的部分用于標識數(shù)據(jù)結構、功能以及度量軟件品質。軟件設計包括以下這些普遍原則:逐步求精、軟件構架、程序結構、數(shù)據(jù)結構、軟件過程、模塊化、抽象和信息隱藏。 7 二、 現(xiàn)代設計方法 常規(guī)的軟件開發(fā)實踐通常能被映射到傳統(tǒng)的生命階段上,包括分析、功能說明、設計、實現(xiàn)、測試和維護。然而對軟件需求的增長比軟件開發(fā)者數(shù)量增長 要 快 , 遵 守 常 規(guī) 的 技 術 你 瀑 布 模 型 ) 耗 時 太 長 , 過 多 人 員 的 參 與 也 帶 來 了管 理 上 的 困 難 , 顯 然 常 規(guī) 的 思 考 過 程 對 于 今 天 的 復 雜 信 息 系 統(tǒng) 是 不 夠 的 。 因此 , 產(chǎn) 生 了 許 多 新 的 軟 件 開 發(fā) 技 術 。 最 新 發(fā) 展 出 的 實 踐 和 模 型 井 不 試 圖 把 軟件 開 發(fā) 分 割 成 多 個 階 段( 如 說 明 和 實 現(xiàn) ),而 是 注 重 于 通 過 逐 步 求 精 和 迭 代 把概 念 轉 換 成 程 序 。 1、 面 向 對 象 的 技 術 面 向 對 象 的 軟 件 設 計 技 術 從 根 本 上 有 別 于 傳 統(tǒng) 的 設 計 方 法 。傳 統(tǒng) 方 法 中 ,每 個 模 塊 被 當 作 全 局 過 程 的 一 個 主 要 步 驟 , 一 步 一 步 地 往 下 走 ; 而 面 向 對 象的 設 計 圍 繞 著 對 象 模 型 和 對 象 所 執(zhí) 行 的 功 能 進 行 結 構 化 。 面 向 對 象 的 編 程 可 以 追 溯 到 仿 真 語 言 SIMULA。 SIMULA 是一種 20 世紀 60年 代 后 期 的 高 級 語 言 ,引 入 了“ 對 象 類 ”作 為 封 裝 數(shù) 據(jù) 的 方 法 。到 了 20 世紀70 年代, Smalltalk 被 作 為 一 種 完 全 的 圖 形 用 戶 界 面( GUI)面 向 對 象 的 編 程環(huán) 境 被 引 入 。甚 至 在 30 年以后, Smalltalk 仍 然 是 度 量 其 他 所 有 面 向 對 象 語言 的 標 準 。 由 于 面 向 對 象 的 概 念 日 趨 成 熟 , 最 近 十 年 這 種 軟 件 開 發(fā) 方 法 已 經(jīng)流 行 起 來 。 同 時 , 軟 件 業(yè) 注 意 的 焦 點 己 經(jīng) 從 編 碼 和 結 構 化 過 程 轉 移 到 通 過 設計 和 柔 韌 性 來 節(jié) 省 勞 動 力 成 本 和 時 間 。 柔 韌 性 變 得 十 分 關 鍵 , 因 為 系 統(tǒng) 隨 著需 求 的 變 化 而 快 速 改 變 : 變 得 更 大 , 更 復 雜 和 更 不 穩(wěn) 定 。 在 面 向 對 象 中 , 分 析 和 設 計 沒 有 真 正 分 開 。 在 分 析 期 間 , 系 統(tǒng) 對 象 及 其特 性 和 關 系 一 起 被 確 定 。 這 些 對 象 可 以 護 , 這 樣 就 給 整 個 開 發(fā) 過 程 中 的 所 有階 段 提 供 了 一 種 公 用 的 語 言 。 采 用 面 向 對 象 方 法 最 好 是 使 用 專 門 設 計 的 面 向對 象 的 開 發(fā) 工 具 , 但 是 請 一 定 記 住 它 是 一 種 方 法 而 不 是 特 指 任 何 編 程 語 言 。許 多 不 同 的 編 程 語 言 都 可 以 用 來 實 現(xiàn) 面 向 對 象 技 術 和 設 計 方 法 。 和 過 程 、 功 能 往 返 傳 遞 數(shù) 據(jù) 的 方 式 不 同 , 在 面 向 對 象 的 設 計 中 , 系 統(tǒng) 被看 成 一 個 由 很 多 互 相 傳 遞 消 息 的 對 象 組 成 的 集 合 , 每 個 對 象 都 有 它 自 己 關 聯(lián)操 作 的 集 合 。 面 向 對 象 的 設 計 基 本 構 想 是 把 數(shù) 據(jù) 和 過 程 進 行 信 息 隱 藏 和 模 塊化 , 它 最 適 用 于 數(shù) 據(jù) 結 構 或 者 過 程 操 作 沒 有 被 提 前 的 定 義 好 的 情 況 。 這 對 于今 天 的 商 業(yè) 環(huán) 境 中 相 當 有 用 , 畢 竟 需 求 總 是 不 斷 改 變 而 不 能 很 好 的 定 義 。 這 8 也 是 面 向 對 象 的 設 計 現(xiàn) 在 相 當 流 行 的 重 要 原 因 。 對 象 執(zhí) 行 服 務 的 概 念 是 一 種開 發(fā) 者 和 客 戶 都 很 自 然 的 思 考 方 法 , 這 有 利 于 理 解 問 題 的 范 圍 , 也 是 一 種 更加 自 然 的 設 計 。 此 外 , 面 向 對 象 的 開 發(fā) 還 有 許 多 優(yōu) 點 。 通 過 屬 性 和 服 務 的 結 合 使 用 , 繼 承 可 以 重 用 代 碼 和 對 象 。 信 息 隱 藏 通 過 局 限 對 象 的 變 化 使 系 統(tǒng) 更 加 穩(wěn) 定 , 從 而 使 對 象 可 以 重 用 面 向 對 象 的 開 發(fā) 過 程 從 分 析 、 設 計 到 編 碼 都 是 一 致 的 。 2、原型法 原 型 法 的 出 現(xiàn) 是 因 為 參 于 開 發(fā) 階 段 的 終 端 用 戶 覺 得 很 難 理 解 需 求 說 明 和概 念 模 型 。 而 當 原 型 法 在 20 世紀 80 年 代 第 一 次 被 使 用 時 , 大 部 分 常 規(guī) 的 生命 周 期 開 發(fā) 者 認 為 它 費 時 費 力 。 但 從 那 時 開 始 , 用 戶 和 開 發(fā) 者 已 經(jīng) 能 成 功 地應 用 原 型 作 為 通 訊 工 具 來 演 示 系 統(tǒng) 的 需 求 。 原 型 多 次 迭 代 后 , 開 發(fā) 者 對 用 戶的 需 求 有 了 更 好 的 理 解 , 用 戶 也 對 系 統(tǒng) 最 后 如 何 操 作 、 看 起 來 像 什 么 和 如 何感 覺 都 有 所 了 解 。原 型 法 已 經(jīng) 被 證 明 是 一 種 理 解 用 戶 需 求 和 問 題 的 有 效 方 法 ,它 有 效 地 消
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Blockchain技術對合同管理的變革
- 2026年活動視頻剪輯服務合同
- 2026年網(wǎng)站維護合同協(xié)議2026
- 土地承包經(jīng)營權合同2026年分配協(xié)議
- 2026年薪資變更合同
- 云服務器租用合同2026年技術支持
- 《信息技術基礎(上冊)》課件 模塊三課題五
- 家用電器和用火安全課件
- 家校社家長培訓課件
- 培訓課件質量要求
- 2025國家糧食儲備局考試真題與答案
- 2025年汽車后市場汽車維修行業(yè)技術更新?lián)Q代趨勢可行性研究報告
- 2024年一建網(wǎng)絡圖案例專題
- 2025深圳生物會考試卷及答案
- 水泥廠安全檢查表
- 預制管樁防擠施工方案
- 高級電工實操考試題目及答案
- 挖掘機銷售年終總結報告
- 火炬設計計算書
- 農(nóng)村會計考試試題及答案
- 危廢倉庫儲存安全培訓課件
評論
0/150
提交評論