150 likes | 278 Views
計算機概論 Computer Science 7.3~7.4 By 應數一 蕭羽萱. 瀑布模式 (waterfall model) 漸進模式 (incremental model) 反覆模式 (iterative model ) 高彈性方法 (agile methods). 7.3 軟體工程方法論 Software Engineering Methodologies. 在開始 製作、設計之前,應該完成整 個系統的需求規格之設計工作。. 瀑布模式 (waterfall model). 漸進 模式 (incremental model).
E N D
計算機概論 Computer Science 7.3~7.4 By應數一蕭羽萱
瀑布模式(waterfall model) • 漸進模式(incremental model) • 反覆模式(iterative model) • 高彈性方法(agile methods) 7.3軟體工程方法論 Software Engineering Methodologies
在開始製作、設計之前,應該完成整 • 個系統的需求規格之設計工作。 瀑布模式(waterfall model)
漸進模式(incremental model) 目標軟體系統是逐步地被完成。一旦第一個版本經過測試、評估,那就可逐步得加上更多功能,直到整個系統完成為止。
反覆模式(iterative model) 當漸進模式主張以延伸的方式,將產品的每個初步版本變成大版本時,反覆模式的每個版本抱持著重建的觀點。 例:Rational統一流程 (Rational Unified Process,RUP) 統一流程(Unified Process)
雛型化(prototyping) 「雛型」(prototyping) :是一個用來評估未來整 體系統的簡化版本 。 漸進模式:一個完整的系統是由雛型經過演進式雛型 (evolutionary prototyping)而逐漸完成的。 變形:開放原始碼發展方式 (open-sourcedevelopment) 反覆模式:這種重複過程所建立的雛型被捨棄,而只 採用對最終設計重新製作的結果,稱為 捨棄式雛型(throwaway prototyping) 例:快速塑模(rapid prototyping)的觀念
高彈性方法(agile methods) 例:極限程式設計方法 (extreme programming , XP)
7.4模組化 Modularity • 「模組」(module) :將軟體分成許多可管理的單元,每個單 • 元只對付軟體全部工作的一部分。 • 模組實作(Modular Implementation) • 外連(Coupling) • 內聚(Cohesion) • 資訊隱藏(Information hiding) • 元件(Components)
模組實作(Modular Implementation) 命令式方法 圖7.3簡單的結構圖 • 此結構圖並未指出每個程序如何執行其任務, • 反而,它只是指出哪些程序及程序之間的關聯性。
物件導向式方法 • 圖7.4PlayerClass的結構及其例子 • 物件 • 類別 • 為其實例 • 屬 • 性 • 為其實例 • 方 • 法
圖7.5 從PlayerA發球後所導致個物件之間的反動 • evaluateServe • returnVolley • PlayerA呼叫Judge中的evaluteServe方法 • evaluteReturn • returnVolley • evaluteReturn • updateScore
外連(Coupling) • 當設計模組系統時的目標之一,應該是將獨立性 • 最大化,或將模組間的外連(連結)最小化。 控制外連(control coupling) 發生在一個模組將控制權交給另一模組, 就像是個程序間的呼叫。 資料外連(data coupling) 指模組間資料的共享。 以參數的形勢明顯的從一個程序傳遞資料到另一程序 廣域資料(global data)的形式隱含的在模組間分享資料
內聚(Cohesion) • 內聚一詞已經被用來表示內部的束縛,或是只模組內 • 部各部分的相關程度。 廣義的內聚:邏輯內聚(logical cohesion) 為模組內部各單元應該自然的執行相類似 的任務,而造成的內聚。 狹義的內聚:功能內聚(functional cohesion) 指模組內的所有部分都是著眼在單一活動的效率。
資訊隱藏(information hiding) • 模組化設計的要領之一,就是掌握資訊隱藏的概念。 • 此概念是指將資訊限制在一個軟體系統的特定部分。 目的:在於避免模組的動作對其他模組產生 不必要的關聯或效應。 雙重意義:設計目標&建置目標 抽象化工具的觀念就是黑箱(black box)的觀念。 其內部特性可以被使用者所忽略,而讓使用者 可以專注在手邊更大型的應用軟體。
元件(Components) • 就是軟體可再使用的單元。 • 開發及使用元件的研究已經導致一個名為 • 元件架構(component architecture)的新興領域, • 其中城市設計師的傳統由元件組合師 • (component assembler)取代,他們已預製的元件建 • 構軟體的系統。