




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
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ā)概念和設(shè)計方法 在 20 世紀 60 年 代 , 大 型 機 和 高 級 程 序 語 言 被 用 來 解 決 包 括 人 力 資 源 系統(tǒng) 、 專 有 系 統(tǒng) 和 制 造 系 統(tǒng) 等 許 多 問 題 。 計 算 機 和 軟 件 被 視 為 解 決 所 有 商 業(yè) 問題 的 萬 能 藥 , 有 時 候 甚 至 被 盲 目 的 應(yīng) 用 。 因 為 很 多 設(shè) 計 上 的 原 因 , 這 些 系 統(tǒng)并 不 是 萬 能 的 。 主 要 因 素 如 下 : 1 不 能 完 全 理 解 復(fù) 雜 的 問 題 2 沒 有 充 分 滿 足 終 端 用 戶 的 需 求 , 組 織 環(huán) 境 和 性 能 折 中 3 沒 有 準 確 估 計 開 發(fā) 時 間 和 運 行 成 本 4 缺 乏 一 致 , 規(guī) 范 的 客 戶 通 訊 框 架 這 個 時 候 , 結(jié) 構(gòu) 化 的 編 程 , 自 上 而 下 設(shè) 計 的 概 念 出 現(xiàn) 了 。 對 軟 件 工 程 來說 ,結(jié) 構(gòu) 化 編 程 至 今 仍 是 最 重 要 的 方 法 且 不 斷 發(fā) 展 ?!?軟 件 工 程 ”概 念 的 出 現(xiàn)則 是 基 于 這 樣 的 構(gòu) 想 :一 個 類 似 工 程 學(xué) 的 學(xué) 科 可 以 應(yīng) 用 于 軟 件 的 設(shè) 計 和 開 發(fā) 。 軟 件 設(shè) 計 是 一 種 方 法 , 軟 件 設(shè) 計 人 員 可 以 籍 此 應(yīng) 用 技 術(shù) 和 規(guī) 則 生 成 一 種描述并 定義問題解決方法的模型。最初,設(shè)計方法一直未能構(gòu)建好,而且模型也不能準確地描述軟件開發(fā)的問題。然而,隨著我們對開發(fā)過程的深入理解,設(shè)計方法已經(jīng)不斷適應(yīng)技術(shù)的變化了。 生命周期過程的模型下開發(fā)的,但人們開始嘗試尋找這種模型的替代品。 一、 軟件設(shè)計基礎(chǔ) 軟件設(shè)計方法最終的目標就是向軟件設(shè)計者提供一張系統(tǒng)藍圖。它通常有三個方面: 數(shù)據(jù),構(gòu)架和過程。 數(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è)計方法都把問題和軟件分割成較小的部分用于標識數(shù)據(jù)結(jié)構(gòu)、功能以及度量軟件品質(zhì)。軟件設(shè)計包括以下這些普遍原則:逐步求精、軟件構(gòu)架、程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、軟件過程、模塊化、抽象和信息隱藏。 7 二、 現(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、 面 向 對 象 的 技 術(shù) 面 向 對 象 的 軟 件 設(shè) 計 技 術(shù) 從 根 本 上 有 別 于 傳 統(tǒng) 的 設(shè) 計 方 法 。傳 統(tǒng) 方 法 中 ,每 個 模 塊 被 當(dāng) 作 全 局 過 程 的 一 個 主 要 步 驟 , 一 步 一 步 地 往 下 走 ; 而 面 向 對 象的 設(shè) 計 圍 繞 著 對 象 模 型 和 對 象 所 執(zhí) 行 的 功 能 進 行 結(jié) 構(gòu) 化 。 面 向 對 象 的 編 程 可 以 追 溯 到 仿 真 語 言 SIMULA。 SIMULA 是一種 20 世紀 60年 代 后 期 的 高 級 語 言 ,引 入 了“ 對 象 類 ”作 為 封 裝 數(shù) 據(jù) 的 方 法 。到 了 20 世紀70 年代, Smalltalk 被 作 為 一 種 完 全 的 圖 形 用 戶 界 面( GUI)面 向 對 象 的 編 程環(huán) 境 被 引 入 。甚 至 在 30 年以后, Smalltalk 仍 然 是 度 量 其 他 所 有 面 向 對 象 語言 的 標 準 。 由 于 面 向 對 象 的 概 念 日 趨 成 熟 , 最 近 十 年 這 種 軟 件 開 發(fā) 方 法 已 經(jīng)流 行 起 來 。 同 時 , 軟 件 業(yè) 注 意 的 焦 點 己 經(jīng) 從 編 碼 和 結(jié) 構(gòu) 化 過 程 轉(zhuǎn) 移 到 通 過 設(shè)計 和 柔 韌 性 來 節(jié) 省 勞 動 力 成 本 和 時 間 。 柔 韌 性 變 得 十 分 關(guān) 鍵 , 因 為 系 統(tǒng) 隨 著需 求 的 變 化 而 快 速 改 變 : 變 得 更 大 , 更 復(fù) 雜 和 更 不 穩(wěn) 定 。 在 面 向 對 象 中 , 分 析 和 設(shè) 計 沒 有 真 正 分 開 。 在 分 析 期 間 , 系 統(tǒng) 對 象 及 其特 性 和 關(guān) 系 一 起 被 確 定 。 這 些 對 象 可 以 護 , 這 樣 就 給 整 個 開 發(fā) 過 程 中 的 所 有階 段 提 供 了 一 種 公 用 的 語 言 。 采 用 面 向 對 象 方 法 最 好 是 使 用 專 門 設(shè) 計 的 面 向?qū)?象 的 開 發(fā) 工 具 , 但 是 請 一 定 記 住 它 是 一 種 方 法 而 不 是 特 指 任 何 編 程 語 言 。許 多 不 同 的 編 程 語 言 都 可 以 用 來 實 現(xiàn) 面 向 對 象 技 術(shù) 和 設(shè) 計 方 法 。 和 過 程 、 功 能 往 返 傳 遞 數(shù) 據(jù) 的 方 式 不 同 , 在 面 向 對 象 的 設(shè) 計 中 , 系 統(tǒng) 被看 成 一 個 由 很 多 互 相 傳 遞 消 息 的 對 象 組 成 的 集 合 , 每 個 對 象 都 有 它 自 己 關(guān) 聯(lián)操 作 的 集 合 。 面 向 對 象 的 設(shè) 計 基 本 構(gòu) 想 是 把 數(shù) 據(jù) 和 過 程 進 行 信 息 隱 藏 和 模 塊化 , 它 最 適 用 于 數(shù) 據(jù) 結(jié) 構(gòu) 或 者 過 程 操 作 沒 有 被 提 前 的 定 義 好 的 情 況 。 這 對 于今 天 的 商 業(yè) 環(huán) 境 中 相 當(dāng) 有 用 , 畢 竟 需 求 總 是 不 斷 改 變 而 不 能 很 好 的 定 義 。 這 8 也 是 面 向 對 象 的 設(shè) 計 現(xiàn) 在 相 當(dāng) 流 行 的 重 要 原 因 。 對 象 執(zhí) 行 服 務(wù) 的 概 念 是 一 種開 發(fā) 者 和 客 戶 都 很 自 然 的 思 考 方 法 , 這 有 利 于 理 解 問 題 的 范 圍 , 也 是 一 種 更加 自 然 的 設(shè) 計 。 此 外 , 面 向 對 象 的 開 發(fā) 還 有 許 多 優(yōu) 點 。 通 過 屬 性 和 服 務(wù) 的 結(jié) 合 使 用 , 繼 承 可 以 重 用 代 碼 和 對 象 。 信 息 隱 藏 通 過 局 限 對 象 的 變 化 使 系 統(tǒng) 更 加 穩(wěn) 定 , 從 而 使 對 象 可 以 重 用 面 向 對 象 的 開 發(fā) 過 程 從 分 析 、 設(shè) 計 到 編 碼 都 是 一 致 的 。 2、原型法 原 型 法 的 出 現(xiàn) 是 因 為 參 于 開 發(fā) 階 段 的 終 端 用 戶 覺 得 很 難 理 解 需 求 說 明 和概 念 模 型 。 而 當(dāng) 原 型 法 在 20 世紀 80 年 代 第 一 次 被 使 用 時 , 大 部 分 常 規(guī) 的 生命 周 期 開 發(fā) 者 認 為 它 費 時 費 力 。 但 從 那 時 開 始 , 用 戶 和 開 發(fā) 者 已 經(jīng) 能 成 功 地應(yīng) 用 原 型 作 為 通 訊 工 具 來 演 示 系 統(tǒng) 的 需 求 。 原 型 多 次 迭 代 后 , 開 發(fā) 者 對 用 戶的 需 求 有 了 更 好 的 理 解 , 用 戶 也 對 系 統(tǒng) 最 后 如 何 操 作 、 看 起 來 像 什 么 和 如 何感 覺 都 有 所 了 解 。原 型 法 已 經(jī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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廢舊材料建筑改造方案
- 車貸業(yè)務(wù)風(fēng)險預(yù)警及應(yīng)急處理合同
- 餐飲品牌加盟與運營管理合同
- 巖石開挖施工方案
- 別墅莊園管理方案
- 特斯拉裁員面試題及答案
- 腹腔鏡膽結(jié)石術(shù)后護理
- 育苗大棚裝修方案(3篇)
- 秘密法考試題及答案
- 2026版《全品高考》選考復(fù)習(xí)方案生物0525 非選擇題強化練(二)含答案
- DB33T 1180-2019 餐廚垃圾資源化利用技術(shù)規(guī)程
- 安徽省合肥市廬陽區(qū)南門小學(xué)-2024-2025年第一學(xué)期辦公室工作總結(jié)(層峰辟新天)【課件】
- DB31∕T 360-2020 住宅物業(yè)管理服務(wù)規(guī)范
- 基于多模態(tài)數(shù)據(jù)的智慧化平衡功能評估系統(tǒng)應(yīng)用研究
- 外研版(2024)七年級上冊單詞默寫
- BIM技術(shù)在項目管理中講解課件講解
- 食品包裝注塑產(chǎn)品安全方案
- 2024至2030年中國娛樂玩具行業(yè)投資前景及策略咨詢研究報告
- T-TSSP 036-2023 鮮核桃仁團體標準
- 設(shè)備維護修理合同
- 汽車裝調(diào)工職業(yè)技能考試題庫及答案(完整版)
評論
0/150
提交評論