面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-基礎(chǔ)篇.ppt_第1頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-基礎(chǔ)篇.ppt_第2頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-基礎(chǔ)篇.ppt_第3頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-基礎(chǔ)篇.ppt_第4頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-基礎(chǔ)篇.ppt_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一部分 基礎(chǔ)篇 面向?qū)ο蟮姆治雠c設(shè)計(jì) 2 從程序設(shè)計(jì)方法的角度看 面向?qū)ο笫且环N新的程序設(shè)計(jì)范型 paradigm 其基本思想是使用對(duì)象 類 繼承 封裝 聚合 關(guān)聯(lián) 消息 多態(tài)性等基本概念來進(jìn)行程序設(shè)計(jì) 自20世紀(jì)80年代以來 面向?qū)ο蠓椒ㄒ焉钊氲接?jì)算機(jī)軟件領(lǐng)域的幾乎所有分支 它不僅是一些具體的軟件開發(fā)技術(shù)與策略 而且是一整套關(guān)于如何看待軟件系統(tǒng)與現(xiàn)實(shí)世界的關(guān)系 用什么觀點(diǎn)來研究問題并進(jìn)行問題求解 以及如何進(jìn)行系統(tǒng)構(gòu)造的軟件方法學(xué) 從這個(gè)意義上講 面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象 類 繼承 封裝 聚合 關(guān)聯(lián) 消息 多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法 1 1什么是面向?qū)ο?第1章面向?qū)ο蠓椒ǜ耪?3 面向?qū)ο蠓椒ǖ幕舅枷?一 從現(xiàn)實(shí)世界中客觀存在的事物出發(fā)來構(gòu)造系統(tǒng)強(qiáng)調(diào)直接以問題域 現(xiàn)實(shí)世界 中的事物為中心來思考問題 認(rèn)識(shí)問題 并根據(jù)這些事物的本質(zhì)特征 把它們抽象為系統(tǒng)中的對(duì)象 作為系統(tǒng)的基本構(gòu)成單位 這可以使系統(tǒng)直接映射問題域 保持問題域中事物及其相互關(guān)系的本來面貌 二 充分運(yùn)用人類日常的思維方法強(qiáng)調(diào)運(yùn)用人類在日常的邏輯思維中經(jīng)常采用的思想方法與原則 例如抽象 分類 繼承 聚合 封裝 關(guān)聯(lián)等等 這使得軟件開發(fā)者能更有效地思考問題 并以其他人也能看得懂的方式把自己的認(rèn)識(shí)表達(dá)出來 4 主要特點(diǎn) 用類和對(duì)象作為系統(tǒng)的基本構(gòu)成單位 對(duì)象對(duì)應(yīng)問題域中的事物 其屬性和操作刻畫了事物的靜態(tài)特征和動(dòng)態(tài)特征 它們之間的繼承關(guān)系 聚合關(guān)系 關(guān)聯(lián)和消息如實(shí)地表達(dá)了問題域中事物之間實(shí)際存在的各種關(guān)系 因此 無論系統(tǒng)的構(gòu)成成分 還是通過這些成分之間的關(guān)系而體現(xiàn)的系統(tǒng)結(jié)構(gòu) 都可直接地映射問題域 5 對(duì)問題域的認(rèn)識(shí) 人 客觀世界 問題域 計(jì)算機(jī) 自然語言 語言的鴻溝 編程語言 語言的過渡 人 編程 人 程序的理解和執(zhí)行 機(jī)器 軟件開發(fā) 對(duì)事物的認(rèn)識(shí)和描述問題 語言的鴻溝 1 2從認(rèn)識(shí)論看面向?qū)ο蠓椒ǖ男纬?6 計(jì)算機(jī) 自然語言 客觀世界 問題域 語言的鴻溝 語言的發(fā)展 鴻溝變窄 程序的指令 數(shù)據(jù) 地址 都是由二進(jìn)制的 0 和 1 構(gòu)成的 離機(jī)器最近 能夠直接地執(zhí)行 然而沒有絲毫形象的意義 離人類的思維最遠(yuǎn) 7 問題域 測試 編程 計(jì)算機(jī) 編程語言 自然語言 需求分析 總體設(shè)計(jì) 詳細(xì)設(shè)計(jì) 軟件工程學(xué)的作用 傳統(tǒng)的軟件工程方法 8 問題域 OOA 計(jì)算機(jī) 自然語言 面向?qū)ο缶幊陶Z言 OOD OOP OOT 軟件工程學(xué)的作用 面向?qū)ο蟮能浖こ谭椒?9 1 3面向?qū)ο蠓椒ǖ幕靖拍钆c原則 對(duì)象 類屬性 操作封裝繼承 一般 特殊結(jié)構(gòu)聚合 整體 部分結(jié)構(gòu)關(guān)聯(lián)消息多態(tài)持久對(duì)象 主動(dòng)對(duì)象 10 對(duì)象是現(xiàn)實(shí)世界中某個(gè)實(shí)際存在的事物 它可以是有形的 比如一輛汽車 也可以是無形的 比如一項(xiàng)計(jì)劃 對(duì)象是構(gòu)成世界的一個(gè)獨(dú)立單位 它具有自己的靜態(tài)特征和動(dòng)態(tài)特征 屬性是用來描述對(duì)象靜態(tài)特征的一個(gè)數(shù)據(jù)項(xiàng) 操作是用來描述對(duì)象動(dòng)態(tài)特征的一個(gè)動(dòng)作序列 對(duì)象標(biāo)識(shí)就是對(duì)象的名字 有 外部標(biāo)識(shí) 和 內(nèi)部標(biāo)識(shí) 之分 對(duì)象 屬性 操作 11 抽象 類 一般類 特殊類 抽象與分類 忽略事物的非本質(zhì)特征 只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征 從而找出事物的共性 叫做抽象 抽象是形成概念的基本手段 把具有共同性質(zhì)的事物劃分為一類 叫做分類 類是具有相同屬性和操作的一組對(duì)象的集合 它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述 其內(nèi)部包括屬性和操作兩個(gè)主要部分 類的作用是用來創(chuàng)建對(duì)象 對(duì)象是類的一個(gè)實(shí)例 12 不同程度的抽象可得到不同層次的分類 較多地忽略事物之間的差別可得到較一般的類 較多地注意事物之間的差別可得到較特殊的類 運(yùn)輸工具 火車 汽車 飛機(jī) 卡車 轎車 輪船 車輛 13 定義1 如果類A具有類B的全部屬性和全部操作 而且具有自己特有的某些屬性或操作 則A叫做B的特殊類 B叫做A的一般類 一般類與特殊類又稱父類與子類 定義2 如果類A的全部對(duì)象都是類B的對(duì)象 而且類B中存在不屬于類A的對(duì)象 則A是B的特殊類 B是A的一般類 可以證明 以上兩種定義是等價(jià)的 一般類和特殊類的定義 14 封裝 把對(duì)象的屬性和操作結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位 并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié) 封裝的重要意義 使對(duì)象能夠集中而完整地描述并對(duì)應(yīng)一個(gè)具體的事物 體現(xiàn)了事物的相對(duì)獨(dú)立性 使對(duì)象外部不能隨意存取對(duì)象的內(nèi)部數(shù)據(jù) 避免了外部錯(cuò)誤對(duì)它的 交叉感染 對(duì)象的內(nèi)部的修改對(duì)外部的影響很小 減少了修改引起的 波動(dòng)效應(yīng) 封裝帶來的問題 編程的麻煩執(zhí)行效率的損失解決辦法 不強(qiáng)調(diào)嚴(yán)格封裝 實(shí)行可見性控制 混合型OOPL 例如 C 15 繼承 特殊類擁有其一般類的全部屬性與操作 稱作特殊類對(duì)一般類的繼承 繼承意味著自動(dòng)地?fù)碛?或曰隱含地復(fù)制 繼承簡化了人們對(duì)事物的認(rèn)識(shí)和描述 非常有益于軟件復(fù)用 是OO技術(shù)提高軟件開發(fā)效率的重要原因之一 由繼承機(jī)制保證 由一組具有繼承關(guān)系的類所組成的結(jié)構(gòu)稱作一般 特殊結(jié)構(gòu) 它是一個(gè)以類為結(jié)點(diǎn) 以繼承關(guān)系為邊的連通的有向圖 繼承關(guān)系的語義 isakindof 16 多繼承 允許一個(gè)特殊類具有一個(gè)以上一般類的繼承方式稱作多繼承 17 聚合 是兩個(gè)類之間的一個(gè)二元關(guān)系 它表示一個(gè)類的對(duì)象實(shí)例以另一個(gè)類的對(duì)象實(shí)例作為其組成部分 聚合刻畫了現(xiàn)實(shí)事物之間的構(gòu)成關(guān)系或者擁有關(guān)系 聚合關(guān)系的語義 hasa 或 isapartof 緊密 固定的聚合方式又稱為組合 18 整體 部分結(jié)構(gòu) 聚合關(guān)系又稱整體 部分關(guān)系 由一組具有聚合關(guān)系的類所形成的結(jié)構(gòu)稱為整體 部分結(jié)構(gòu) 它是一個(gè)以類為結(jié)點(diǎn) 以聚合關(guān)系為邊的連通有向圖 19 關(guān)聯(lián) 兩個(gè)或者多個(gè)類上的一個(gè)關(guān)系 即這些類的對(duì)象實(shí)例集合的笛卡兒積的一個(gè)子集合 其中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一組有意義的信息 20 用集合論的觀點(diǎn)和系統(tǒng)需求討論關(guān)聯(lián)概念 關(guān)聯(lián)是兩個(gè)或者多個(gè)類上的一個(gè)關(guān)系 其中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一組有意義的信息 例 設(shè)A和B是兩個(gè)類 它們的對(duì)象實(shí)例集合是A a1 a2 an B b1 b2 bm A和B的笛卡兒積A B 這個(gè)笛卡兒積集合中有n m個(gè)元素 它們可以組合成2 n m 個(gè)子集合 但是只有某個(gè)子集合中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一組有意義的信息時(shí) 才有必要把它定義為系統(tǒng)中的一個(gè)關(guān)聯(lián) 21 例如 在一個(gè)教學(xué)管理系統(tǒng)中有教師 學(xué)生 教務(wù)員課程等類 系統(tǒng)中需要表明每一門課程由哪位教師承擔(dān) 有哪些學(xué)生選修 因此需要在教師和課程之間定義一個(gè)關(guān)聯(lián) 在學(xué)生和課程之間也定義一個(gè)關(guān)聯(lián) 該系統(tǒng)的教務(wù)員要為學(xué)生做注冊 登記成績等工作 但是不需要區(qū)別是哪個(gè)教務(wù)員為哪個(gè)學(xué)生做的 因此就不需要在教務(wù)員和學(xué)生這兩個(gè)類之間定義關(guān)聯(lián) 教師 課程 學(xué)生 1 教務(wù)員 22 消息 消息是向?qū)ο蟀l(fā)出的服務(wù)請求 目前在大部分面向?qū)ο蟮木幊陶Z言中 消息其實(shí)就是函數(shù) 或過程 調(diào)用 但是 函數(shù)調(diào)用只是實(shí)現(xiàn)消息的方式之一 上述理解只適合于順序系統(tǒng) 更一般的定義 消息是對(duì)象之間在一次交互中所傳送的信息 23 教師 課程 學(xué)生 1 糾正一種誤解 認(rèn)為在任何兩個(gè)類之間只有存在關(guān)聯(lián)才可能存在消息 實(shí)際上 關(guān)聯(lián)和消息是兩個(gè)截然不同的概念 二者是相互獨(dú)立的 教務(wù)員 call 24 多態(tài) 多態(tài)是指同一個(gè)命名可具有不同的語義 OO方法中 常指在一般類中定義的屬性或操作被特殊類繼承之后 可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為 實(shí)現(xiàn)機(jī)制 重寫 override 在特殊類中對(duì)繼承來的屬性或操作重新定義其實(shí)現(xiàn) 動(dòng)態(tài)綁定 dynamicbinding 在運(yùn)行時(shí)根據(jù)對(duì)象接收的消息動(dòng)態(tài)地確定要連接哪一段操作代碼 類屬 generic 操作參量的類型可以是參數(shù)化的 百度討論 25 其他 持久對(duì)象 在程序運(yùn)行結(jié)束后仍能繼續(xù)保存的對(duì)象超出了程序運(yùn)行時(shí)間 跨越了內(nèi)外存空間實(shí)現(xiàn)途徑 支持持久對(duì)象的OOPL OO DBMS 主動(dòng)對(duì)象 至少有一個(gè)操作不需要接收消息就能主動(dòng)執(zhí)行的對(duì)象 描述具有主動(dòng)行為的事物描述并發(fā)執(zhí)行的多個(gè)控制流 26 面向機(jī)器面向代數(shù)面向過程面向數(shù)據(jù)面向人面向文件面向信息面向應(yīng)用面向功能面向數(shù)據(jù)流 面向?qū)ο笫擒浖椒▽W(xué)的返樸歸真 軟件科學(xué)的發(fā)展歷程中出現(xiàn)過許多 面向 軟件開發(fā)從過分專業(yè)化的方法 規(guī)則和技巧中回到了客觀世界 回到了人們的日常思維 是軟件理論的返樸歸真 面向?qū)ο?27 1 雛形階段60年代挪威計(jì)算中心開發(fā)的Simula67 面向?qū)ο笳Z言的先驅(qū)和第一個(gè)里程碑 首先引入了類的概念和繼承機(jī)制 70年代CLU 并發(fā)Pascal Ada和Modula 2等語言對(duì)抽象數(shù)據(jù)類型理論的發(fā)展起到重要作用 支持?jǐn)?shù)據(jù)與操作的封裝 猶他大學(xué)的博士生AlanKay設(shè)計(jì)了一個(gè)實(shí)驗(yàn)性的語言Flex 從Simula67中借鑒了許多概念 如類 對(duì)象 繼承等 1972年P(guān)aloAlno研究中心 PARC 發(fā)布了Smalltalk 72 其中正式使用了 面向?qū)ο?這個(gè)術(shù)語 Smalltalk的問世標(biāo)志著面向?qū)ο蟪绦蛟O(shè)計(jì)方法的正式形成 但是這個(gè)時(shí)期的Smalltalk語言還不夠完善 1 4OO 面向?qū)ο?方法的發(fā)展歷史與現(xiàn)狀 28 PARC先后發(fā)布了Smalltalk 72 76 78等版本 直至1981年推出該語言最完善的版本Smalltalk 80 Smalltalk 80的問世被今認(rèn)為是面向?qū)ο笳Z言發(fā)展史上最重要的里程碑 迄今絕大部分面向?qū)ο蟮幕靖拍罴捌渲С謾C(jī)制在Smalltalk 80中都已具備 它是第一個(gè)完善的 能夠?qū)嶋H應(yīng)用的面向?qū)ο笳Z言 但是 Smalltalk開始幾年的應(yīng)用不夠廣泛 原因是 一種新的軟件方法學(xué)被廣泛接受需要一定的時(shí)間 商品化軟件開發(fā)工作到87年才開始進(jìn)行 追求純OO的宗旨使許多軟件開發(fā)人員感到不便 2 完善階段 29 3 繁榮階段自80年代中期到90年代 是面向?qū)ο笳Z言走向繁榮的階段 其主要表現(xiàn)是大批比較實(shí)用的OOPL的涌現(xiàn) 例如C Objective C ObjectPascal CLOS CommonLispObjectSystem Eiffel Actor等 OO編程語言分為純OO語言和混合型OO語言混合型語言是在傳統(tǒng)的過程式語言基礎(chǔ)上增加OO語言成分 在實(shí)用性方面具有更大的優(yōu)勢 此時(shí)的純OO語言也比較重視實(shí)用性 30 4 發(fā)展到軟件生存周期前期階段 計(jì)算機(jī)軟件領(lǐng)域的很多新的方法與技術(shù)都有這樣的發(fā)展經(jīng)歷 例如 結(jié)構(gòu)化方法 形式化方法 軟件復(fù)用 與其他方法相比 面向?qū)ο蟮姆椒ㄅc技術(shù)發(fā)展到軟件生命期的前期階段有著更為深刻的意義 面向?qū)ο蠓椒◤木幊贪l(fā)展到設(shè)計(jì) 分析 進(jìn)而發(fā)展到整個(gè)軟件生存周期 31 5 最新發(fā)展編程語言 語言 類庫 可視化編程環(huán)境例如 VisualC VisualBasic Delhpi分析與設(shè)計(jì)方法走向統(tǒng)一 形成統(tǒng)一建模語言UML結(jié)束各種方法的概念及表示法不一致的局面 32 在軟件生存周期全過程運(yùn)用面向?qū)ο蠓椒?L M Northrop 盡管面向?qū)ο笳Z言正取得令人振奮的發(fā)展 但編程并不是軟件開發(fā)問題的主要根源 需求分析與設(shè)計(jì)問題更為普遍并且更值得解決 因此面向?qū)ο箝_發(fā)技術(shù)的焦點(diǎn)不應(yīng)該只對(duì)準(zhǔn)編程階段 而應(yīng)更全面地對(duì)準(zhǔn)軟件工程的其他階段 面向?qū)ο蠓椒ㄕ嬲饬x深遠(yuǎn)的目標(biāo)是它適合于解決分析與設(shè)計(jì)期間的復(fù)雜性并實(shí)現(xiàn)分析與設(shè)計(jì)的復(fù)用 面向?qū)ο蟮拈_發(fā)不僅僅是編程 必須在整個(gè)軟件生存周期采用一種全新的方法 這一觀點(diǎn)已被人們所接受 軟件工程百科全書 紐約 1994 33 第2章不同的分析與設(shè)計(jì)方法 幾種典型的建模方法功能分解法結(jié)構(gòu)化方法信息建模法面向?qū)ο蠓椒?本章內(nèi)容結(jié)構(gòu) 34 歷史上幾種典型的建模方法 2 1功能分解法 functiondecomposition 以系統(tǒng)需要提供的功能為中心來組織系統(tǒng) 首先定義各種功能 然后把功能分解為子功能對(duì)較大的子功能進(jìn)一步分解 直到可給出明確的定義 根據(jù)功能 子功能的需要設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu) 定義功能 子功能之間的接口 沒有明確地區(qū)分分析與設(shè)計(jì) 建模過程 層層進(jìn)行功能分解 35 功能模塊 功能模塊 功能模塊 功能模塊 功能模塊 功能模塊 功能模塊 功能模塊 功能模塊 功能模塊 得到的系統(tǒng)模型 由模塊及其接口構(gòu)成 優(yōu)點(diǎn)與缺點(diǎn) 直接地反映用戶的需求 所以工作很容易開始 不能直接地映射問題域 很難檢驗(yàn)結(jié)果的正確性 對(duì)需求變化的適應(yīng)能力很差 局部的錯(cuò)誤和修改很容易產(chǎn)生全局性的影響 36 2 2結(jié)構(gòu)化方法結(jié)構(gòu)化分析 structuredanalysis SA 結(jié)構(gòu)化設(shè)計(jì) structureddesign SD 結(jié)構(gòu)化分析又稱數(shù)據(jù)流法 其基本策略是跟蹤數(shù)據(jù)流 即研究問題域中數(shù)據(jù)如何流動(dòng) 以及在各個(gè)環(huán)節(jié)上進(jìn)行何種處理 從而發(fā)現(xiàn)數(shù)據(jù)流和加工 得到的分析模型是數(shù)據(jù)流圖 DFD 主要模型元素是數(shù)據(jù)流 加工 文件及端點(diǎn) 外加處理說明和數(shù)據(jù)字典 結(jié)構(gòu)化設(shè)計(jì)與功能分解法基本相同 基于模塊的概念建立設(shè)計(jì)模型 分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì) 概要設(shè)計(jì) 確定系統(tǒng)中包含哪些模塊以及模塊之間的調(diào)用關(guān)系 得到模塊結(jié)構(gòu)圖 MSD 詳細(xì)設(shè)計(jì) 描述每個(gè)模塊內(nèi)部的數(shù)據(jù)結(jié)構(gòu)和操作流程 37 數(shù)據(jù)流 加工 文件 起點(diǎn) 處理說明 數(shù)據(jù)詞典 優(yōu)點(diǎn) 有嚴(yán)格的法則 強(qiáng)調(diào)研究問題域 缺點(diǎn) 仍然是間接映射問題域 與結(jié)構(gòu)化設(shè)計(jì)的概念不一致 從分析到設(shè)計(jì)的過渡比較困難 數(shù)據(jù)流和加工的數(shù)量太多 引起分析文檔的膨脹 終點(diǎn) 38 2 3信息建模法 informationmodeling 由實(shí)體 關(guān)系法 E R方法 發(fā)展而來 核心概念是實(shí)體和關(guān)系 實(shí)體描述問題域中的事物 關(guān)系描述事物之間在數(shù)據(jù)方面的聯(lián)系 都可以帶有屬性 發(fā)展之后的方法也把實(shí)體稱作對(duì)象 并使用了類型和子類型的概念 作為實(shí)體 對(duì)象 的抽象描述 有人也稱之為面向?qū)ο蠓椒?但有以下差別 1 強(qiáng)調(diào)的重點(diǎn)是信息建模和狀態(tài)建模 而不是對(duì)象建模 2 沒有把對(duì)實(shí)體屬性所進(jìn)行的操作封裝到實(shí)體對(duì)象中 3 只有屬性的繼承 不支持操作的繼承 4 沒有采用消息通訊 實(shí)體 屬性 屬性 屬性 屬性 關(guān)系 實(shí)體 m n E R圖 信息模型 m n 對(duì)象屬性 關(guān)系屬性 對(duì)象屬性 39 2 4面向?qū)ο蠓椒嫦驅(qū)ο蟮姆治?OOA 面向?qū)ο蟮脑O(shè)計(jì) OOD 運(yùn)用對(duì)象 類 繼承 封裝 聚合 關(guān)聯(lián) 消息 多態(tài)性等概念來構(gòu)造系統(tǒng) 把問題域中的事物抽象為對(duì)象 作為系統(tǒng)的基本構(gòu)成單位其屬性和操作刻畫了事物的靜態(tài)特征和動(dòng)態(tài)特征 完整地刻畫了問題域中事物 用類作為對(duì)象的抽象描述 建立它們之間的繼承 聚合 關(guān)聯(lián) 消息等關(guān)系 如實(shí)地表達(dá)了問題域中事物之間的各種關(guān)系 封裝 繼承 聚合 關(guān)聯(lián) 消息通訊等原則符合人類的日常思維 使系統(tǒng)的復(fù)雜性得到控制 因此 得到的系統(tǒng)模型可以直接映射問題域 40 不同的建模方法體現(xiàn)于從不同的概念出發(fā)來認(rèn)識(shí)問題域用不同的概念進(jìn)行系統(tǒng)構(gòu)造系統(tǒng)對(duì)現(xiàn)實(shí)世界的不同映射 41 審批 不同的方法對(duì)同一應(yīng)用實(shí)例 電話安裝業(yè)務(wù)系統(tǒng) 的不同效果結(jié)構(gòu)化分析 數(shù)據(jù)流和加工 登記 安裝 開通 問題 不是直接映射問題域 與問題域事物相關(guān)的數(shù)據(jù)和操作不是圍繞這些事物來組織的 而是分散在數(shù)據(jù)流和加工中 經(jīng)常發(fā)生信息膨脹 模型中的多個(gè)數(shù)據(jù)流 實(shí)現(xiàn)中其實(shí)只是一項(xiàng)數(shù)據(jù) 分析模型難以與設(shè)計(jì)模型及源程序?qū)?yīng) 用戶登記表 用戶登記表 用戶登記表 用戶登記表 文件 用戶信息 42 面向?qū)ο蠓椒?對(duì)象及其關(guān)系 用戶登記表用戶名登記人審批人施工隊(duì)號(hào)碼登記審批安裝開通 用戶 營業(yè)員 主管人 施工隊(duì) 機(jī)房 1 1 1 call call call call 直接映射了問題域中的實(shí)際事物 能夠與程序形成良好的對(duì)應(yīng) 43 顧名思義 面向?qū)ο蟮姆治?OOA 就是運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)分析 首先 OOA是分析 是軟件生存周期的一個(gè)階段 具有一般分析方法共同具有的內(nèi)容 目標(biāo)及策略 但是 它強(qiáng)調(diào)運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行分析 用面向?qū)ο蟮母拍詈捅硎痉ū磉_(dá)分析結(jié)果 基本任務(wù) 運(yùn)用面向?qū)ο蟮母拍顚?duì)問題域進(jìn)行分析和理解 將問題域中與系統(tǒng)責(zé)任有關(guān)的事物抽象為系統(tǒng)中的類和對(duì)象 定義這些類和對(duì)象的屬性與操作 以及它們之間所形成的各種關(guān)系 最終目標(biāo) 建立一個(gè)滿足用戶需求 直接映射問題域的OOA模型及其規(guī)約 2 4 1什么是OOA 問題 OOA是需求分析還是系統(tǒng)分析 44 2 4 2什么是OOD不同時(shí)期有不同內(nèi)容及特點(diǎn) 早期 80年代末期之前 OOD的特點(diǎn) 1 不是基于OOA的大多基于結(jié)構(gòu)化分析結(jié)果 數(shù)據(jù)流圖 2 是OO編程方法的延伸多數(shù)方法與編程語言有關(guān) 特別受Ada影響很大3 不是純OO的對(duì)某些OO概念 如繼承 缺少支持 攙雜一些非OO概念 如數(shù)據(jù)流 包 模塊等 4 不是只針對(duì)軟件生存周期的設(shè)計(jì)階段OOD中的 D 指的是Design或Development多少涉及分析問題 如識(shí)別問題域的對(duì)象 但很不徹底 早期的OOD可看作現(xiàn)今OOA D方法的雛形 45 定義 面向?qū)ο蟮脑O(shè)計(jì) OOD 就在是OOA模型基礎(chǔ)上運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)設(shè)計(jì) 目標(biāo)是產(chǎn)生一個(gè)符合具體實(shí)現(xiàn)條件的OOD模型 現(xiàn)今 90年代以后 OOD的特點(diǎn) 1 以面向?qū)ο蟮姆治鰹榛A(chǔ) 一般不依賴結(jié)構(gòu)化分析 2 與相應(yīng)的OOA方法共同構(gòu)成一種OOA D方法體系 OOA和OOD采用一致的概念與原則 但屬于軟件生存周期的不同階段 有不同的目標(biāo)及策略 3 較全面地體現(xiàn)面向?qū)ο蠓椒ǖ母拍钆c原則 4 大多數(shù)方法獨(dú)立于編程語言 通過面向?qū)ο蟮姆治雠c設(shè)計(jì)所得到的系統(tǒng)模型可以由不同的編程語言實(shí)現(xiàn) 46 軟件建模面臨的挑戰(zhàn) 1 問題域和系統(tǒng)責(zé)任復(fù)雜性日益增長問題域 problemdomain 被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域 即在現(xiàn)實(shí)世界中由這個(gè)系統(tǒng)進(jìn)行處理的業(yè)務(wù)范圍 系統(tǒng)責(zé)任 systemresponsibilities 所開發(fā)的系統(tǒng)應(yīng)該具備的職能 隨著硬件性能的提高和價(jià)格的下降 軟件系統(tǒng)所面臨的問題域和系統(tǒng)責(zé)任越來越復(fù)雜 因此系統(tǒng)也越來越龐大 2 交流問題軟件系統(tǒng)的開發(fā)需要各類人員之間頻繁交流 領(lǐng)域的多樣性使軟件工程中的交流問題比與其他工程更為突出 有效的交流需要一種彼此都能理解的共同語言 否則將使彼此的思想難以溝通 很容易隱藏下許多錯(cuò)誤 2 4 3OO方法的主要優(yōu)點(diǎn) 47 3 需求的不斷變化用戶因素 競爭因素 經(jīng)費(fèi)因素 開發(fā)者必須接受和適應(yīng)需求變化 易變部分和穩(wěn)定部分 功能 最易變外部接口 很易變屬性 較易變對(duì)象 較穩(wěn)定 4 軟件復(fù)用的要求復(fù)用級(jí)別提高 分析結(jié)果復(fù)用要求分析模型的基本成分可以在多個(gè)系統(tǒng)中復(fù)用要求一個(gè)分析模型可以在多種條件下設(shè)計(jì)和實(shí)現(xiàn) 需求變化 系統(tǒng)局部修改 受影響部分修改 產(chǎn)生新錯(cuò)誤 延長開發(fā)時(shí)間 48 面向?qū)ο蠓椒ǖ膬?yōu)勢 對(duì)問題域和系統(tǒng)責(zé)任的復(fù)雜性具有較強(qiáng)的處理能力從問題域中的實(shí)際事物出發(fā)來構(gòu)造系統(tǒng)模型 使系統(tǒng)模型能直接地映射問題域 繼承 封裝 聚合等概念使系統(tǒng)的復(fù)雜性得到有效的控制 提供了便于各類相關(guān)人員交流共同語言使用與問題域一致的概念及術(shù)語 體現(xiàn)人類的日常思維方式 為改進(jìn)各類人員之間的交流提供了最基本的條件 對(duì)需求的變化具有較強(qiáng)的適應(yīng)性按封裝原則把系統(tǒng)中最容易變化的因素隔離起來 系統(tǒng)的各個(gè)單元成分之間接口很少 把需求變化所引起的影響局部化 為實(shí)現(xiàn)分析與設(shè)計(jì)級(jí)別的軟件復(fù)用提供了有力支持OO方法的封裝 繼承 聚合等原則 對(duì)象的完整性 獨(dú)立性以及與問題域的良好對(duì)應(yīng) 使之非常有利于軟件復(fù)用 貫穿軟件生存周期全過程的一致性從OOA開始使用與問題域一致的概念 詞匯 原則及表示法 這種一致性保持到設(shè)計(jì) 編程 測試 維護(hù)等各個(gè)階段 對(duì)于整個(gè)軟件生存周期的開發(fā) 維護(hù)及管理活動(dòng)都具有重要的意義 49 Booch方法Coad Yourdon方法Firesmith方法Jacobson方法 OOSE Martin Odell方法Rumbaugh方法 OMT Seidewitz Stark方法Shlaer Mellor方法Wirfs Brock方法 2 4 4幾種典型的OO方法 方法的異同體現(xiàn)于 概念表示法系統(tǒng)模型開發(fā)過程可用性技術(shù)支持 50 Booch方法 必要時(shí)使用 用于分析和設(shè)計(jì) 6種模型圖 基本圖 通常不可缺少 類圖對(duì)象圖模塊圖進(jìn)程圖 只用于設(shè)計(jì) 補(bǔ)充圖 狀態(tài)轉(zhuǎn)移圖交互圖 模型圖 51 開發(fā)期望行為模型 分析 建立體系結(jié)構(gòu) 設(shè)計(jì) 逐漸形成實(shí)現(xiàn) 演化 建立核心需求 概念化 a 宏過程 識(shí)別類和對(duì)象 識(shí)別類和對(duì)象的語義 識(shí)別類和對(duì)象的關(guān)系 說明類和對(duì)象的接口和實(shí)現(xiàn) b 微過程 管理交付后的演化 維護(hù) 特點(diǎn) 思想活躍 開拓與創(chuàng)新可操作性不夠強(qiáng)類圖與對(duì)象圖并存 過程 Booch方法 續(xù) 52 主題層類及對(duì)象層結(jié)構(gòu)層屬性層服務(wù)層 OOA模型的5個(gè)層次 主題層類及對(duì)象層結(jié)構(gòu)層屬性層服務(wù)層 人機(jī)交互部分 HIC 問題域部分 PDC 任務(wù)管理部分 TMC 數(shù)據(jù)管理部分 DMC OOD模型的5個(gè)層次和4個(gè)部分 Coad Yourdon方法 特點(diǎn) 概念簡練 過程清晰強(qiáng)調(diào)概念的一致性過程指導(dǎo)不夠具體 53 實(shí)體對(duì)象 界面對(duì)象 控制對(duì)象 三種對(duì)象 行為 表示 信息 三維的分析模型四維的設(shè)計(jì)模型 實(shí)現(xiàn)環(huán)境 需求說明 需求分析 健壯分析 需求模型 分析模型 需求模型 設(shè)計(jì) 實(shí)現(xiàn) 設(shè)計(jì)模型 實(shí)現(xiàn)模型 分析模型 需求模型 單元測試 組裝測試 實(shí)現(xiàn)模型 設(shè)計(jì)模型 系統(tǒng)測試 測試模型 分析過程 構(gòu)造過程 測試過程 Jacobson方法 OOSE 特點(diǎn) 通過用況描述用戶需求用交互圖描述對(duì)象之間的交互用況驅(qū)動(dòng)的觀點(diǎn)言之有過 54 三個(gè)模型 Rumbaugh方法 OMT 過程 分析 面向?qū)ο?系統(tǒng)設(shè)計(jì) 傳統(tǒng)方法 對(duì)象設(shè)計(jì) 面向?qū)ο?實(shí)現(xiàn) 特點(diǎn) 概念嚴(yán)謹(jǐn) 闡述清楚過程具體 可操作性強(qiáng)包含了許多非OO的內(nèi)容提出若干擴(kuò)充概念 偏于復(fù)雜 55 上述這些方法的共同點(diǎn)是什么 分組討論總結(jié) 56 支持3種基本的活動(dòng) 系統(tǒng)的基本模型識(shí)別對(duì)象和類描述對(duì)象和類之間的關(guān)系通過描述每個(gè)類的功能定義對(duì)象的行為 57 各種面向?qū)ο蟮姆治雠c設(shè)計(jì)方法都為面向?qū)ο罄碚撆c技術(shù)的發(fā)展做出了貢獻(xiàn) 這些方法各有自己的優(yōu)點(diǎn)和缺點(diǎn) 同時(shí)在各自不同范圍內(nèi)擁有自己的用戶群 各種方法的主導(dǎo)思想以及所采用的主要概念與原則大體上是一致的 但是也存在不少差異 這些差異所帶來的問題是 不利于面向?qū)ο蠓椒ㄏ蛞恢碌姆较虬l(fā)展 也會(huì)給用戶的選擇帶來一些困惑 58 第3章統(tǒng)一建模語言UML簡介 3 1UML的背景與發(fā)展歷史3 2UML1概況3 3UML2概況 主要組成部分元模型體系結(jié)構(gòu)具體元類和抽象元類各種圖和擴(kuò)展機(jī)制 UML2的四個(gè)規(guī)范圖的增加和主要變化 59 面向?qū)ο蠓椒ǚN類繁多1989年約10種 1994年達(dá)到50種以上概念 表示法 過程策略及文檔組織等方面的差異使用戶在選擇建模方法和工具時(shí)無所適從不利于技術(shù)交流迫切需要OO概念及表示法走向統(tǒng)一和標(biāo)準(zhǔn)化統(tǒng)一建模語言UML應(yīng)運(yùn)而生 誕生背景 UML的背景與發(fā)展歷史 60 發(fā)展歷史第一階段 OO方法學(xué)家的聯(lián)合行動(dòng)1995 10 G Booch與J Rumbaugh聯(lián)合推出UnifiedMethod0 81996 6 I Jacobson加入推出UML0 9 UnifiedModelingLanguage 不再稱 方法 而改稱 建模語言 第二階段 公司的聯(lián)合行動(dòng)1996 成立了UML伙伴組織 12家公司加入1997 1 推出UML1 0 另外5家公司加盟1997 9 形成UML1 1 提交OMG作為建模語言規(guī)范提案1997 11 UML1 1被OMG正式采納 61 第三階段 OMG主持下的修訂1997 2002 OMG成立UML修訂任務(wù)組主持UML的修訂先后產(chǎn)生UML1 2 UML1 3 UML1 4 UML1 5等版本 UML1 3和UML1 4是兩個(gè)最重要的修訂版本 第四階段 UML的重大修訂 UML21999 開始醞釀 旨在產(chǎn)生比UML1有顯著改進(jìn)的新版本2000 2001 由OMG陸續(xù)發(fā)布了4個(gè)提案需求 RFP 征集提案 擇優(yōu)采納2002年之后先后形成4個(gè)UML2 0規(guī)范在OMG的組織下繼續(xù)修訂和改進(jìn) 目前最新的版本是UML2 4 62 UML是什么不是什么 1 是一種建模語言 不是一種建模方法 Rational統(tǒng)一過程 不是UML的一部分2 用于建立系統(tǒng)的分析模型和設(shè)計(jì)模型 而不是用于編程3 是一種已被OMG采納的建模語言規(guī)范 specification 正式場合一般不稱作 標(biāo)準(zhǔn) standard 4 部分地采用了形式化語言的定義方式 但并不嚴(yán)格不是一種形式化語言 不能編譯執(zhí)行或解釋執(zhí)行 統(tǒng)一建模語言 UML 是一種用來對(duì)軟件密集型系統(tǒng)制品進(jìn)行可視化 詳述 構(gòu)造和建檔的圖形語言 也可用于業(yè)務(wù)建模以及其它非軟件系統(tǒng) 63 UML1規(guī)范的主要構(gòu)成部分 1 UML概要 UMLSummary 對(duì)UML做概括介紹 包括其構(gòu)成 動(dòng)機(jī) 目標(biāo) 范圍 特點(diǎn) 歷史 現(xiàn)狀以及對(duì)未來演化的建議 2 UML語義 UMLSemantics 定義UML的語法和語義 是定義UML語言的基本文件 3 UML表示法指南 UMLNotationGuide 定義UML的各種模型圖給出各種圖中建模元素的可視化表示法 UML1概況 64 4 UML外廓范例 UMLExampleProfiles 用于軟件開發(fā)過程的UML外廓用于業(yè)務(wù)建模的UML外廓 5 UML模型交換 UMLModelInterchange 規(guī)定了建模工具在實(shí)現(xiàn)各種UML模型時(shí)需要共同遵守的語言約定 使來自不同廠商的建模工具能夠彼此交換和處理各自開發(fā)的系統(tǒng)模型 6 對(duì)象約束語言O(shè)CL ObjectConstraintLanguage 定義了一種對(duì)象約束語言 用來描述模型中關(guān)于對(duì)象的附加約束 是一種形式化的語言 65 定義建模語言的語言元 元模型層 實(shí)例化 抽象 實(shí)例化 實(shí)例化 元 元模型 meta metamodel 元模型的基礎(chǔ)體系結(jié)構(gòu) 定義一種說明元模型的語言 例如 MOF元模型 metamodel 元 元模型的一個(gè)實(shí)例 定義一種說明模型的語言例如 UML模型 model 元模型的一個(gè)實(shí)例 定義一種語言來描述信息領(lǐng)域 例如 教學(xué)管理系統(tǒng) 教室類 學(xué)生類 課程類用戶對(duì)象 userobject 模型的一個(gè)實(shí)例 定義一個(gè)特定的信息領(lǐng)域 例如 一個(gè)學(xué)校 某老師 某學(xué)生 某課程 OMG的四層元模型體系結(jié)構(gòu) 66 抽象元類和具體元類 類 類型 接口 構(gòu)件 結(jié)點(diǎn) 關(guān)聯(lián) 泛化 依賴 類目 關(guān)系 可泛化元素 模型元素 元素 具體元類 抽象元類 classifier 67 UML1的9種模型圖 靜態(tài)結(jié)構(gòu)圖 StaticStructureDiagram 類圖 ClassDiagram 對(duì)象圖 ObjectDiagram 用況圖 UseCaseDiagram 交互圖 InteractionDiagram 順序圖 SequenceDiagram 協(xié)作圖 CollaborationDiagram 狀態(tài)圖 StatechartDiagrams 活動(dòng)圖 ActivityDiagrams 實(shí)現(xiàn)圖 ImplementationDiagrams 構(gòu)件圖 ComponentDiagram 部署圖 DeploymentDiagram 九種圖支持用戶從不同的視角進(jìn)行系統(tǒng)建模 68 關(guān)聯(lián) 類 對(duì)象 鏈 元模型中的實(shí)例級(jí)概念引起體系結(jié)構(gòu)層次的混亂 69 擴(kuò)展機(jī)制 附加到其他模型元素之上以 將原有的建模元素特化成一種語義較特殊的新變種 或者表示出它們的某些細(xì)節(jié) 約束 constraint 用于說明某些必須保持為真的命題 注釋 comment 對(duì)模型元素的細(xì)節(jié)所進(jìn)行的解釋 標(biāo)記值 TaggedValue 表示模型元素的附加的特征 衍型 stereotype 附加到其他模型元素之上 從而將原有的建模元素定制成一種語義較為特殊的新變種 衍型的表示法和例子 active 類名 類名 界面 類名 關(guān)鍵詞或圖標(biāo) 70 UML2的四個(gè)規(guī)范 UML2概況 71 UML2的13種模型圖 圖 結(jié)構(gòu)圖 行為圖 交互圖 類圖 構(gòu)件圖 對(duì)象圖 活動(dòng)圖 用況圖 狀態(tài)機(jī)圖 部署圖 順序圖 通訊圖 組合結(jié)構(gòu)圖 包圖 交互概覽圖 定時(shí)圖 支持用戶從不同的視角進(jìn)行系統(tǒng)建模 72 UML與UML2的各種圖的對(duì)照 73 學(xué)習(xí)建議 1 重點(diǎn)掌握UML直接提供給應(yīng)用模型開發(fā)者使用的建模元素 即 具體元類 熟練地掌握面向?qū)ο蠓椒ㄗ罨镜母拍?2 在13種圖中 重點(diǎn)掌握類圖 用況圖 順序圖 活動(dòng)圖狀態(tài)機(jī)圖 構(gòu)件圖 3 著眼于實(shí)際應(yīng)用 從UML的復(fù)雜性中解放出來 4 切記 UML只是一種建模語言 不是建模方法 它不包括過程 而且是獨(dú)立于過程的 根據(jù)本單位的實(shí)際情況選擇適當(dāng)?shù)倪^程 5 動(dòng)手實(shí)踐 使用工具 選擇合適的項(xiàng)目開始實(shí)際應(yīng)用 74 4 1引言 本書的宗旨 充分運(yùn)用面向?qū)ο蠓椒ǖ幕靖拍?限制擴(kuò)充概念以往某些OO方法提出了許多擴(kuò)充概念 問題是 使方法復(fù)雜化 增加學(xué)習(xí)難度和工程開銷缺乏編程語言支持 造成模型與源程序不一致加強(qiáng)過程指導(dǎo)給出運(yùn)用最基本的OO概念自然而有效地解決建模問題的策略 包括那些在其他方法中采用擴(kuò)充概念解決的問題 強(qiáng)調(diào)在類的抽象層次上建立系統(tǒng)模型所有對(duì)象的屬性和操作以及對(duì)象之間的關(guān)系 都通過它們的類來描述 而不是針對(duì)個(gè)別對(duì)象實(shí)例進(jìn)行描述 第4章本書的OOA D方法概貌 75 面向?qū)ο蟮母拍畎ㄒ韵聝煞N情況 1 用來構(gòu)成系統(tǒng)模型的某種基本成分 稱為建模元素 2 在建模中需要遵守的某種原則 不代表任何模型成分 4 2主要概念 主要建模元素對(duì)象 類 所有的對(duì)象都通過類來表示 屬性 操作 類屬性和實(shí)例屬性 被動(dòng)操作和主動(dòng)操作 一般 特殊關(guān)系 一般 特殊結(jié)構(gòu)整體 部分關(guān)系 整體 部分結(jié)構(gòu)關(guān)聯(lián) 二元關(guān)聯(lián) 多元關(guān)聯(lián) 消息 控制流內(nèi)部的消息 控制流之間的消息 76 主要原則 1 抽象什么叫抽象 回顧定義 OO方法廣泛地運(yùn)用抽象原則 例如 系統(tǒng)中的對(duì)象是對(duì)現(xiàn)實(shí)世界中事物的抽象 類是對(duì)象的抽象 一般類是對(duì)特殊類的進(jìn)一步抽象 屬性是事物靜態(tài)特征的抽象 操作是事物動(dòng)態(tài)特征的抽象 過程抽象任何一個(gè)完成確定功能的操作序列 其使用者都可把它看作一個(gè)單一的實(shí)體 盡管實(shí)際上它可能是由一系列更低級(jí)的操作完成的 數(shù)據(jù)抽象根據(jù)施加于數(shù)據(jù)之上的操作來定義數(shù)據(jù)類型 并限定數(shù)據(jù)的值只能由這些操作來修改和觀察 77 2 分類分類就是把具有相同屬性和操作的對(duì)象劃分為一類 用類作為這些對(duì)象的抽象描述 不同程度的抽象可得到不同層次的類 形成一般 特殊結(jié)構(gòu) 又稱分類結(jié)構(gòu) 強(qiáng)調(diào) 在類的抽象層次上建模 3 封裝 4 繼承 5 聚合 6 關(guān)聯(lián) 7 消息通信即要求對(duì)象之間只能通過消息進(jìn)行通訊 而不允許在對(duì)象之外直接地存取對(duì)象內(nèi)部的屬性 78 8 粒度控制人們在研究問題時(shí)既需要微觀的思考 也需要宏觀的思考 因此需要控制自己的視野 考慮全局時(shí) 注重其大的組成部分 暫時(shí)不詳察每一部分的具體的細(xì)節(jié) 考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開其余的部分 這就是粒度控制原則 引入包 package 的概念 把模型中的類按一定的規(guī)則進(jìn)行組合 形成一些包 使模型具有大小不同的粒度層次 從而有利于人們對(duì)復(fù)雜性的控制 79 9 行為分析 以對(duì)象為單位描述系統(tǒng)中的各種行為任何行為都?xì)w屬于某個(gè)對(duì)象 用對(duì)象的操作表示 對(duì)象的操作只作用于對(duì)象自身的屬性 通過消息描述對(duì)象之間的行為依賴關(guān)系如果一個(gè)對(duì)象操作的執(zhí)行需要另一個(gè)對(duì)象為它提供服務(wù) 則在模型中表現(xiàn)為前者向后者發(fā)送消息 認(rèn)識(shí)行為的起因 區(qū)分主動(dòng)行為和被動(dòng)行為用主動(dòng)對(duì)象的主動(dòng)操作描述主動(dòng)行為用對(duì)象的被動(dòng)操作描述被動(dòng)行為 認(rèn)識(shí)系統(tǒng)的并發(fā)行為在分析階段根據(jù) 根據(jù)系統(tǒng)的需求和事物的主動(dòng)性來認(rèn)識(shí)系統(tǒng)的并發(fā)行為 在設(shè)計(jì)階段 根據(jù)具體的實(shí)現(xiàn)條件確定系統(tǒng)中需要設(shè)計(jì)哪些控制流 80 4 3模型及其規(guī)約在分析階段和設(shè)計(jì)階段建立的系統(tǒng)模型分別稱為OOA模型和OOD模型正規(guī)理解 一個(gè)系統(tǒng)模型 應(yīng)包括建模過程中產(chǎn)生的圖形 文字等各種形式的文檔 因?yàn)?所謂 模型 是指某一級(jí)別上的系統(tǒng)抽象描述 構(gòu)成這種描述的任何資料都是模型的一部分 習(xí)慣說法 目前大部分OOA OOD著作談到 模型 一般是指OOA或OOD過程中產(chǎn)生的圖形文檔 本書采用習(xí)慣說法 將模型和模型規(guī)約分別討論OOA和OOD模型包括需求模型 基本模型和輔助模型 通過模型規(guī)約做詳細(xì)說明 81 基本模型 類圖面向?qū)ο蟮慕V凶钪匾?最基本的模型圖集中而完整地體現(xiàn)了面向?qū)ο蟮母拍顬槊嫦驅(qū)ο蟮木幊烫峁┝酥苯?可靠的依據(jù)可以從三個(gè)層次來看 需求模型 用況圖每個(gè)用況是一項(xiàng)系統(tǒng)功能使用情況的說明 把每一類參與者對(duì)每一項(xiàng)系統(tǒng)功能的使用情況確切地描述出來 便全面地定義了系統(tǒng)的功能需求 輔助模型 其他各種圖對(duì)類圖起到輔助作用 提供更詳細(xì)的建模信息 或者從不同的視角來描述系統(tǒng) 例如包圖 順序圖 活動(dòng)圖等 模型規(guī)約對(duì)上述各種模型圖及其模型元素的詳細(xì)而確切的定義和解釋 82 OOA模型框架 基本模型 類圖 模型規(guī)約 需求模型 用況圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論