- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章软体工程导论
模組化設計程序的目的,是希望進行符合系統規格的軟體設計。 然而,設計一個容易實作、了解和維護的系統,也是同樣的重要。 模組應具備高內聚力 模組之間應具備低耦合性 模組化設計程序可以將資料流程圖分割為多個模組。 定義這些模組時,同時也定義了模組與物件所用資料結構之間的介面。 一種常用的分割方法,是「自上而下的設計」(top-down design)。 二種標準方法 功能執行的順序 功能執行的型態 圖8.10 說明如何將一個問題分解成為一些模組的集合。然而,並未指出模組的執行順序,或者模組之間的介面 模組結構中資料物件的配置,是一項相當重要的議題。 8.4.1 節將介紹物件導向的基本原則和概念。 8.4.2 節說明如何將物件導向方式套用於組譯器的設計上。 程式是由物件,而不是由程序所組成的。 一個物件中包含一些資料以及處理資料的一些動作,而這些動作可供其他程式的引用。 物件所包含的資料值儲存於「實體變數」中。 通常外部物件不能存取這些「實體變數」。 程式其它部份只能呼叫物件所定義的「方法」,來檢視或者運用儲存於物件中的資料。 「封裝」(encapsulation):抽象化(data abstraction)及資訊隱藏(data hiding) 每個物件即是某個類別的「實體」(instance)。一個類別可視為是定義實體變數和方法的一個範本,可以由一個類別來建立許多的物件 利用子類別和繼承的觀念,可以重複使用已撰寫完成的程式碼 多型(polymorphism)是最為強大的方法之一 Booch(1994)提出二種主要的發展程序,稱為「微觀」(micro)和「宏觀」(macro)。 建立軟體的需求(概念)。 發展系統行為的全面性模組(分析)。 建立實作的架構(設計)。 按部就班的進行實作(進展)。 對於交付的系統進行持續的管理(維護)。 識別系統的物件和類別。 建立物件和類別的行為和其他屬性 ─ 如每個類別的方法。 分析類別與物件之間的關係 ─ 如聯集、繼承和多型的使用。 具體說明類別和物件的實作 ─ 如每一個資料結構和演算法。 8.5.1 節介紹一些名詞,並且簡短說明軟體測試的各個階段。 8.5.2 和8.5.3節討論二種常用測試方式。 「單位測試」(unit test)階段:從系統中抽離個別模組出來進行測試。 「黑箱測試」(black boxtesting) 配合模組的「測試案例」(test case)是依據規格所產生,而不考量程式碼 「白箱測試」(white box testing) 設計一些測試案例,以強迫執行模組中的某些敘述或某些順序的敘述 「整合測試」(integration testing) 結合一些模組來進行測試,以確定彼此的介面是否運作正確。 模組納入系統的方式通常是採用「由下而上」(bottom-up)或者「由下而上」(top-down) 「系統測試」( system testing 確認整個系統是否符合規格(specifications)和需求(requirements) 「Alpha 測試」;「Beta 測試」 以階層式的呼叫架構為基礎。首先測試位於最低階層的模組(離根部最遠的模組),其次為較高層,以此類推。 對於單位測試和模組整合而言,「由下而上測試」是最常使用的方法 由階層架構中,最高階層的模組開始 進行「由上而下測試」時,必須設計「末端程式」(stub)來模擬低層次的模組。 「由上而下測試」能夠較早偵測到模組間呼叫介面的錯誤。 實務的情況下,會採用「由下而上」和「由上而下」的混合方式 ? 2007 台灣培生教育出版(Pearson Education Taiwan) ? 2007 台灣培生教育出版(Pearson Education Taiwan) 第8章 軟體工程導論 8.1 節介紹軟體工程的概念和專用術語 8.2 節討論規格書的編寫方式 8.3 節簡單地紹軟體設計的程序 8.4 節介紹物件導向的軟體設計方式 8.5 節討論個別元件和完整系統的測試策略 8.1.1 節將描述軟體工程技術發展過程中所遭遇的一些問題 8.1.2 節討論軟體開發程序中的各個階段 8.1.3 節將深入探討軟體維護和發展的一些重要階段 軟體工程之工具與方法的發展源起於1960 年代,主要是希望能夠解決所謂的「軟體危機」(software crisis)。 隨著軟體系統的逐漸龐大以及趨於複雜,為了解決衍生的成本、生產力以及可靠度的問題,軟體工程學科因應而生。 為了在電腦上獲得有效率而且經濟的軟體,所建立並使用之健全的工程原則(Bauer, 1972) 在建立軟體系統程序中,可以降低軟體成本和複雜度,並提高可靠度和彈性的技術(Ramamoorthy and Siyan, 1983); 以系統化、嚴謹、量化等方式,來開發、操作和
文档评论(0)