第1章為問(wèn)題域建模_第1頁(yè)
第1章為問(wèn)題域建模_第2頁(yè)
第1章為問(wèn)題域建模_第3頁(yè)
第1章為問(wèn)題域建模_第4頁(yè)
第1章為問(wèn)題域建模_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蠓治雠c設(shè)計(jì)面向?qū)ο蠓治雠c設(shè)計(jì)陳少波編著陳少波編著年秋年秋不謀萬(wàn)世者,不足以謀一時(shí);不謀萬(wàn)世者,不足以謀一時(shí);不謀全局者,不足以謀一域。不謀全局者,不足以謀一域。1第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型1.1 1.1 從需求出發(fā)從需求出發(fā)1.2 1.2 建立一個(gè)概念模型建立一個(gè)概念模型 1.2.1 1.2.1 類(lèi)及類(lèi)的表示類(lèi)及類(lèi)的表示 1.2.2 1.2.2 發(fā)現(xiàn)類(lèi)發(fā)現(xiàn)類(lèi) 1.2.2.1 1.2.2.1 找到備選類(lèi)找到備選類(lèi) 1.2.2.2 1.2.2.2 決定候選類(lèi)決定候選類(lèi) 1.2.3 1.2.3 確定類(lèi)之間的關(guān)系確定類(lèi)之間的關(guān)系 1.2.3.1 1.2.3.1 繼承(

2、泛化)繼承(泛化) 1.2.3.2 1.2.3.2 關(guān)聯(lián)關(guān)聯(lián) 1.2.3.3 1.2.3.3 聚合與組合聚合與組合 1.2.3.4 1.2.3.4 包包 1.2.3.5 1.2.3.5 確定類(lèi)之間的關(guān)系確定類(lèi)之間的關(guān)系 1.2.41.2.4 確定類(lèi)的職責(zé)及協(xié)作者確定類(lèi)的職責(zé)及協(xié)作者1.31.3 概念模型的詳細(xì)程度及其作用概念模型的詳細(xì)程度及其作用 1.3.11.3.1 概念模型的詳細(xì)程度概念模型的詳細(xì)程度 1.3.21.3.2 概念模型的作用概念模型的作用1.4 1.4 建立概念模型的指導(dǎo)原則建立概念模型的指導(dǎo)原則2第第2 2章章 為問(wèn)題域建用例模型為問(wèn)題域建用例模型2.12.1 什么是用例模

3、型什么是用例模型 2.1.1 2.1.1 參與者參與者 2.1.2 2.1.2 用例描述用例描述 2.1.3 2.1.3 用例圖用例圖 2.1.42.1.4 用例之間的關(guān)系用例之間的關(guān)系2.2 2.2 構(gòu)建用例模型構(gòu)建用例模型 2.2.1 2.2.1 確定系統(tǒng)的參與者確定系統(tǒng)的參與者 2.2.2 2.2.2 合并需求獲得用例合并需求獲得用例 2.2.3 2.2.3 細(xì)化用例描述細(xì)化用例描述2.3 2.3 什么是好用例什么是好用例 2.3.1 2.3.1 用例不是用例不是“功能功能”關(guān)于關(guān)于“四輪馬車(chē)四輪馬車(chē)”之一之一 2.3.2 2.3.2 用例可能是用例可能是“功能功能”關(guān)于關(guān)于“四輪馬車(chē)四

4、輪馬車(chē)”之二之二 2.3.3 2.3.3 什么時(shí)候才算完成任務(wù)什么時(shí)候才算完成任務(wù)2.4 2.4 本章小結(jié)本章小結(jié)3第第3 3章章 系統(tǒng)健壯性分析系統(tǒng)健壯性分析3.1 3.1 什么是健壯性分析什么是健壯性分析 3.1.1 3.1.1 健壯性分析的作用健壯性分析的作用 3.1.2 3.1.2 健壯性分析的對(duì)象健壯性分析的對(duì)象3.2 3.2 開(kāi)始健壯性分析開(kāi)始健壯性分析 3.2.1 3.2.1 通過(guò)事件流尋找邊界對(duì)象通過(guò)事件流尋找邊界對(duì)象 3.2.2 3.2.2 從概念模型及用例描述中尋找實(shí)體對(duì)象從概念模型及用例描述中尋找實(shí)體對(duì)象3.3 3.3 完善概念模型完善概念模型4第第4 4章章 構(gòu)建交互模

5、型構(gòu)建交互模型4.1 4.1 順序圖順序圖 4.1.1 4.1.1 定義順序圖定義順序圖 4.1.2 4.1.2 順序圖的組成順序圖的組成 4.1.3 4.1.3 創(chuàng)建對(duì)象和分支、從屬流創(chuàng)建對(duì)象和分支、從屬流 4.1.4 4.1.4 順序圖中的時(shí)間順序圖中的時(shí)間 4.1.5 4.1.5 順序圖中的迭代順序圖中的迭代 4.1.6 4.1.6 消息中的參數(shù)和序號(hào)消息中的參數(shù)和序號(hào) 4.1.7 4.1.7 順序圖片斷順序圖片斷 4.1.8 4.1.8 構(gòu)建順序圖模型構(gòu)建順序圖模型4.2 4.2 通信圖通信圖 4.2.1 4.2.1 通信圖的構(gòu)成通信圖的構(gòu)成 4.2.2 4.2.2 消息的序列號(hào)和控制

6、點(diǎn)消息的序列號(hào)和控制點(diǎn) 4.2.3 4.2.3 順序圖與通信圖的轉(zhuǎn)換及比較順序圖與通信圖的轉(zhuǎn)換及比較4.3 4.3 構(gòu)建交互模型構(gòu)建交互模型 4.3.1 4.3.1 引入實(shí)體對(duì)象引入實(shí)體對(duì)象 4.3.2 4.3.2 引入邊界對(duì)象和參與者引入邊界對(duì)象和參與者 4.3.3 4.3.3 添加對(duì)象之間的消息傳遞添加對(duì)象之間的消息傳遞 4.3.4 4.3.4 添加各個(gè)類(lèi)的屬性和方法添加各個(gè)類(lèi)的屬性和方法 4.3.5 4.3.5 引入基礎(chǔ)類(lèi)引入基礎(chǔ)類(lèi) 4.3.6 4.3.6 系統(tǒng)質(zhì)量評(píng)審及設(shè)計(jì)優(yōu)化系統(tǒng)質(zhì)量評(píng)審及設(shè)計(jì)優(yōu)化4.4 4.4 本章小結(jié)本章小結(jié)5第章關(guān)于過(guò)程的話(huà)題第章關(guān)于過(guò)程的話(huà)題5.1 5.1 為

7、什么需要過(guò)程為什么需要過(guò)程5.2 5.2 主流軟件開(kāi)發(fā)過(guò)程簡(jiǎn)介主流軟件開(kāi)發(fā)過(guò)程簡(jiǎn)介 5.2.1 5.2.1 統(tǒng)一軟件開(kāi)發(fā)過(guò)程統(tǒng)一軟件開(kāi)發(fā)過(guò)程RUPRUP 5.2.2 5.2.2 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDDTDD5.2.3 5.2.3 極限編程極限編程XPXP5.2.4 5.2.4 特征驅(qū)動(dòng)開(kāi)發(fā)特征驅(qū)動(dòng)開(kāi)發(fā)FDDFDD 5.3 5.3 理解開(kāi)發(fā)過(guò)程理解開(kāi)發(fā)過(guò)程 5.3.1 5.3.1 模型的演化過(guò)程模型的演化過(guò)程 5.3.2 5.3.2 第一次迭代第一次迭代5.3.3 5.3.3 第二次迭代第二次迭代5.3.4 5.3.4 隨后的迭代隨后的迭代5.3.5 5.3.5 最后的迭代最后的迭代5.

8、4 5.4 本章小結(jié)本章小結(jié)6第章活動(dòng)圖和狀態(tài)圖第章活動(dòng)圖和狀態(tài)圖.1 .1 活動(dòng)圖活動(dòng)圖6.1.1 6.1.1 定義活動(dòng)圖定義活動(dòng)圖6.1.2 6.1.2 基本活動(dòng)圖基本活動(dòng)圖6.1.3 6.1.3 嵌套活動(dòng)圖嵌套活動(dòng)圖 6.1.4 6.1.4 帶泳道的活動(dòng)圖及對(duì)象流帶泳道的活動(dòng)圖及對(duì)象流6.1.5 6.1.5 活動(dòng)圖構(gòu)建示例活動(dòng)圖構(gòu)建示例6.2 6.2 狀態(tài)圖狀態(tài)圖6.2.1 6.2.1 狀態(tài)狀態(tài)6.2.2 6.2.2 轉(zhuǎn)移轉(zhuǎn)移6.2.3 6.2.3 事件事件6.2.4 6.2.4 狀態(tài)、轉(zhuǎn)移和事件中的相關(guān)概念狀態(tài)、轉(zhuǎn)移和事件中的相關(guān)概念6.3 6.3 本章小結(jié)本章小結(jié)7第章構(gòu)造實(shí)現(xiàn)方式第

9、章構(gòu)造實(shí)現(xiàn)方式7.1 7.1 組件圖組件圖7.1.1 7.1.1 什么是組件什么是組件7.1.2 7.1.2 接口和組件間的關(guān)系接口和組件間的關(guān)系7.1.3 7.1.3 嵌套組件嵌套組件7.1.4 7.1.4 組件圖的作用組件圖的作用7.2 7.2 部署圖部署圖7.2.1 7.2.1 部署圖通用準(zhǔn)則部署圖通用準(zhǔn)則7.2.2 7.2.2 結(jié)點(diǎn)和組件結(jié)點(diǎn)和組件7.2.3 7.2.3 依賴(lài)和通信關(guān)聯(lián)依賴(lài)和通信關(guān)聯(lián)7.2.4 7.2.4 實(shí)現(xiàn)方式的建模過(guò)程實(shí)現(xiàn)方式的建模過(guò)程7.2.5 7.2.5 部署圖應(yīng)用部署圖應(yīng)用7.3 7.3 本章小結(jié)本章小結(jié)88.1 8.1 面向?qū)ο笏悸沸〗Y(jié)面向?qū)ο笏悸沸〗Y(jié)8.

10、1.1 8.1.1 從什么地方開(kāi)始從什么地方開(kāi)始8.1.2 8.1.2 分析與設(shè)計(jì)思路分析與設(shè)計(jì)思路8.2 8.2 編程簡(jiǎn)述編程簡(jiǎn)述8.2.1 8.2.1 什么是編程什么是編程8.2.2 8.2.2 編程的例子編程的例子8.3 8.3 測(cè)試簡(jiǎn)述測(cè)試簡(jiǎn)述8.3.1 8.3.1 測(cè)試面向?qū)ο蟮能浖泻尾煌瑴y(cè)試面向?qū)ο蟮能浖泻尾煌?.3.2 8.3.2 對(duì)面向?qū)ο鬁y(cè)試的誤解對(duì)面向?qū)ο鬁y(cè)試的誤解8.3.3 8.3.3 測(cè)試方法概述測(cè)試方法概述8.3.4 8.3.4 單元測(cè)試(類(lèi)測(cè)試)單元測(cè)試(類(lèi)測(cè)試)8.3.5 8.3.5 集成測(cè)試(交互測(cè)試)集成測(cè)試(交互測(cè)試)8.3.6 8.3.6 系統(tǒng)測(cè)試系統(tǒng)

11、測(cè)試8.4 8.4 數(shù)據(jù)庫(kù)設(shè)計(jì)簡(jiǎn)介數(shù)據(jù)庫(kù)設(shè)計(jì)簡(jiǎn)介8.4.1 8.4.1 結(jié)構(gòu)映射到表結(jié)構(gòu)映射到表8.4.2 8.4.2 把功能映射到把功能映射到SQLSQL命令命令第章總結(jié)及其他第章總結(jié)及其他9第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型1.1 1.1 從需求出發(fā)從需求出發(fā)1.2 1.2 建立一個(gè)概念模型建立一個(gè)概念模型 1.2.1 1.2.1 類(lèi)及類(lèi)的表示類(lèi)及類(lèi)的表示 1.2.2 1.2.2 發(fā)現(xiàn)類(lèi)發(fā)現(xiàn)類(lèi) 1.2.2.1 1.2.2.1 找到備選類(lèi)找到備選類(lèi) 1.2.2.2 1.2.2.2 決定候選類(lèi)決定候選類(lèi) 1.2.3 1.2.3 確定類(lèi)之間的關(guān)系確定類(lèi)之間的關(guān)系 1.2.3.1

12、 1.2.3.1 繼承(泛化)繼承(泛化) 1.2.3.2 1.2.3.2 關(guān)聯(lián)關(guān)聯(lián) 1.2.3.3 1.2.3.3 聚合與組合聚合與組合 1.2.3.4 1.2.3.4 包包 1.2.3.5 1.2.3.5 確定類(lèi)之間的關(guān)系確定類(lèi)之間的關(guān)系 1.2.41.2.4 確定類(lèi)的職責(zé)及協(xié)作者確定類(lèi)的職責(zé)及協(xié)作者1.31.3 概念模型的詳細(xì)程度及其作用概念模型的詳細(xì)程度及其作用 1.3.11.3.1 概念模型的詳細(xì)程度概念模型的詳細(xì)程度 1.3.21.3.2 概念模型的作用概念模型的作用1.4 1.4 建立概念模型的指導(dǎo)原則建立概念模型的指導(dǎo)原則10與結(jié)構(gòu)化方法不同,面向?qū)ο蠓椒ㄖ蟹治雠c設(shè)計(jì)之間的界限

13、是模糊的,與結(jié)構(gòu)化方法不同,面向?qū)ο蠓椒ㄖ蟹治雠c設(shè)計(jì)之間的界限是模糊的,分析和設(shè)計(jì)工作共存于一個(gè)連續(xù)體上,并且不同的實(shí)踐者對(duì)于分析和設(shè)計(jì)工作共存于一個(gè)連續(xù)體上,并且不同的實(shí)踐者對(duì)于“分析分析”和和“設(shè)計(jì)設(shè)計(jì)”在這個(gè)連續(xù)體上的活動(dòng)有不同的分類(lèi)界限。因此,生硬地定在這個(gè)連續(xù)體上的活動(dòng)有不同的分類(lèi)界限。因此,生硬地定義分析和設(shè)計(jì)過(guò)程各包含哪些步驟沒(méi)有什么好處。義分析和設(shè)計(jì)過(guò)程各包含哪些步驟沒(méi)有什么好處。更多地面向分析更多地面向設(shè)計(jì)做什么?需求應(yīng)用領(lǐng)域調(diào)查如何做?邏輯解決方案圖圖1-1 分析和設(shè)計(jì)活動(dòng)共存于一個(gè)連續(xù)體上分析和設(shè)計(jì)活動(dòng)共存于一個(gè)連續(xù)體上既然不同的人和不同的方法對(duì)這些術(shù)語(yǔ)有不同的解釋?zhuān)瑢?duì)這

14、些術(shù)語(yǔ)的既然不同的人和不同的方法對(duì)這些術(shù)語(yǔ)有不同的解釋?zhuān)瑢?duì)這些術(shù)語(yǔ)的定義所做的爭(zhēng)論也就沒(méi)有什么積極意義。真正重要的是解決如何更好、定義所做的爭(zhēng)論也就沒(méi)有什么積極意義。真正重要的是解決如何更好、更快、更經(jīng)濟(jì)地創(chuàng)建和維護(hù)軟件這樣一個(gè)問(wèn)題。因此,在本課程中,更快、更經(jīng)濟(jì)地創(chuàng)建和維護(hù)軟件這樣一個(gè)問(wèn)題。因此,在本課程中,我們不打算對(duì)我們不打算對(duì)“分析分析”和和“設(shè)計(jì)設(shè)計(jì)”作出明確的區(qū)分。作出明確的區(qū)分。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型這說(shuō)明了什么這說(shuō)明了什么11由于現(xiàn)實(shí)世界中各領(lǐng)域?qū)浖到y(tǒng)的需求日益增長(zhǎng),變化也越來(lái)越快,由于現(xiàn)實(shí)世界中各領(lǐng)域?qū)浖到y(tǒng)的需求日益增長(zhǎng),變化也越來(lái)越快,

15、軟件開(kāi)發(fā)技術(shù)的發(fā)展方向已從軟件開(kāi)發(fā)技術(shù)的發(fā)展方向已從“提升被開(kāi)發(fā)系統(tǒng)的執(zhí)行效率提升被開(kāi)發(fā)系統(tǒng)的執(zhí)行效率”轉(zhuǎn)變成轉(zhuǎn)變成為為“提高開(kāi)發(fā)效率提高開(kāi)發(fā)效率”。面向?qū)ο蠹夹g(shù)降低了解決方案域(計(jì)算機(jī))與。面向?qū)ο蠹夹g(shù)降低了解決方案域(計(jì)算機(jī))與問(wèn)題域之間的差別,提供了良好的復(fù)用機(jī)制,能夠更加有效地提高軟問(wèn)題域之間的差別,提供了良好的復(fù)用機(jī)制,能夠更加有效地提高軟件開(kāi)發(fā)效率,完全適應(yīng)了軟件開(kāi)發(fā)技術(shù)的發(fā)展方向。件開(kāi)發(fā)效率,完全適應(yīng)了軟件開(kāi)發(fā)技術(shù)的發(fā)展方向。在本課程中,我們將通過(guò)一個(gè)簡(jiǎn)單的個(gè)人圖書(shū)管理系統(tǒng)(根據(jù)需要,在本課程中,我們將通過(guò)一個(gè)簡(jiǎn)單的個(gè)人圖書(shū)管理系統(tǒng)(根據(jù)需要,有時(shí)會(huì)插入一些實(shí)際的圖書(shū)館中圖書(shū)管理

16、系統(tǒng)以及其他應(yīng)用系統(tǒng)的例有時(shí)會(huì)插入一些實(shí)際的圖書(shū)館中圖書(shū)管理系統(tǒng)以及其他應(yīng)用系統(tǒng)的例子),讓大家體驗(yàn)一下正確的面向?qū)ο蠓治龊驮O(shè)計(jì)過(guò)程,從而幫助大子),讓大家體驗(yàn)一下正確的面向?qū)ο蠓治龊驮O(shè)計(jì)過(guò)程,從而幫助大家更好地駕駛面向?qū)ο蠹夹g(shù),增強(qiáng)自已的家更好地駕駛面向?qū)ο蠹夹g(shù),增強(qiáng)自已的“內(nèi)功內(nèi)功”。為了使大家把精力集中于面向?qū)ο蟮膽?yīng)用,本課程不涉及項(xiàng)目計(jì)劃、管為了使大家把精力集中于面向?qū)ο蟮膽?yīng)用,本課程不涉及項(xiàng)目計(jì)劃、管理等內(nèi)容。另外,關(guān)于軟件需求、分析、設(shè)計(jì)等術(shù)語(yǔ),我們?cè)诶淼葍?nèi)容。另外,關(guān)于軟件需求、分析、設(shè)計(jì)等術(shù)語(yǔ),我們?cè)谲浖ぼ浖こ坛讨幸呀?jīng)詳細(xì)介紹了,在此也不再論述,只是請(qǐng)你記?。褐幸呀?jīng)詳細(xì)介紹

17、了,在此也不再論述,只是請(qǐng)你記住:“需求調(diào)研需求調(diào)研是了解問(wèn)題,分析是定義問(wèn)題,而設(shè)計(jì)則是解決問(wèn)題。是了解問(wèn)題,分析是定義問(wèn)題,而設(shè)計(jì)則是解決問(wèn)題?!钡诘? 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型121.1 從需求出發(fā)從需求出發(fā)盡管我們不打算詳細(xì)論述軟件需求的概念,但盡管我們不打算詳細(xì)論述軟件需求的概念,但一切軟件開(kāi)發(fā)都毫無(wú)例一切軟件開(kāi)發(fā)都毫無(wú)例外地必須從需求出發(fā)外地必須從需求出發(fā)。用軟件工程的術(shù)語(yǔ)來(lái)講,。用軟件工程的術(shù)語(yǔ)來(lái)講,“弄清楚要做什么弄清楚要做什么”就是我們通常所說(shuō)的就是我們通常所說(shuō)的“需求分析需求分析”。軟件項(xiàng)目未來(lái)的所有工作都是依。軟件項(xiàng)目未來(lái)的所有工作都是依據(jù)需求分析的結(jié)

18、果來(lái)開(kāi)展的,如果需求分析的結(jié)果是錯(cuò)誤的或不完整據(jù)需求分析的結(jié)果來(lái)開(kāi)展的,如果需求分析的結(jié)果是錯(cuò)誤的或不完整的,那么,接下來(lái)的設(shè)計(jì)和編碼工作就是建立在錯(cuò)誤或不完整的基礎(chǔ)的,那么,接下來(lái)的設(shè)計(jì)和編碼工作就是建立在錯(cuò)誤或不完整的基礎(chǔ)上,其結(jié)果也就可想而知了。因此,需求分析是軟件開(kāi)發(fā)過(guò)程中最重上,其結(jié)果也就可想而知了。因此,需求分析是軟件開(kāi)發(fā)過(guò)程中最重要的一個(gè)環(huán)節(jié)。要的一個(gè)環(huán)節(jié)。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型軟件項(xiàng)目的需求分析一般要經(jīng)歷以下幾個(gè)步驟:軟件項(xiàng)目的需求分析一般要經(jīng)歷以下幾個(gè)步驟:(1 1)確定項(xiàng)目的目標(biāo)和范圍;)確定項(xiàng)目的目標(biāo)和范圍;(2 2)根據(jù)項(xiàng)目的目標(biāo)和范圍來(lái)分

19、析、確認(rèn)與項(xiàng)目相關(guān)的參與者;)根據(jù)項(xiàng)目的目標(biāo)和范圍來(lái)分析、確認(rèn)與項(xiàng)目相關(guān)的參與者;(3 3)抽取出所有的非功能需求;)抽取出所有的非功能需求;(4 4)分析所有的功能性需求,一般采用用例建模的方法;)分析所有的功能性需求,一般采用用例建模的方法;(5 5)編寫(xiě)項(xiàng)目的)編寫(xiě)項(xiàng)目的需求規(guī)格說(shuō)明書(shū))。需求規(guī)格說(shuō)明書(shū))。13第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型本人是一個(gè)愛(ài)書(shū)之人,家里各類(lèi)書(shū)籍已過(guò)千冊(cè),而平時(shí)又本人是一個(gè)愛(ài)書(shū)之人,家里各類(lèi)書(shū)籍已過(guò)千冊(cè),而平時(shí)又經(jīng)常有朋友來(lái)借,因此需要一個(gè)個(gè)人圖書(shū)管理系統(tǒng)。該系經(jīng)常有朋友來(lái)借,因此需要一個(gè)個(gè)人圖書(shū)管理系統(tǒng)。該系統(tǒng)應(yīng)該能夠?qū)?shū)籍的基本信息按計(jì)

20、算機(jī)類(lèi)、非計(jì)算機(jī)類(lèi)分統(tǒng)應(yīng)該能夠?qū)?shū)籍的基本信息按計(jì)算機(jī)類(lèi)、非計(jì)算機(jī)類(lèi)分別建檔,實(shí)現(xiàn)按書(shū)名、作者、類(lèi)別、出版社等關(guān)鍵字的組別建檔,實(shí)現(xiàn)按書(shū)名、作者、類(lèi)別、出版社等關(guān)鍵字的組合查詢(xún)功能。在使用該系統(tǒng)錄入新書(shū)籍時(shí)系統(tǒng)會(huì)自動(dòng)按規(guī)合查詢(xún)功能。在使用該系統(tǒng)錄入新書(shū)籍時(shí)系統(tǒng)會(huì)自動(dòng)按規(guī)則生成書(shū)號(hào),可以修改信息,但不能夠刪除記錄。該系統(tǒng)則生成書(shū)號(hào),可以修改信息,但不能夠刪除記錄。該系統(tǒng)還應(yīng)該能夠?qū)?shū)籍的外借情況進(jìn)行記錄,可對(duì)外借情況列還應(yīng)該能夠?qū)?shū)籍的外借情況進(jìn)行記錄,可對(duì)外借情況列表打印。另外,還希望對(duì)書(shū)籍的購(gòu)買(mǎi)金額、冊(cè)數(shù)按特殊時(shí)表打印。另外,還希望對(duì)書(shū)籍的購(gòu)買(mǎi)金額、冊(cè)數(shù)按特殊時(shí)段進(jìn)行統(tǒng)計(jì)。段進(jìn)行統(tǒng)計(jì)。一般情

21、況下,用戶(hù)僅僅能夠或者只會(huì)對(duì)其所需要的軟件提出一些要求,一般情況下,用戶(hù)僅僅能夠或者只會(huì)對(duì)其所需要的軟件提出一些要求,而且這些要求通常都是比較模糊的。即使是我們自已,在開(kāi)始的時(shí)候而且這些要求通常都是比較模糊的。即使是我們自已,在開(kāi)始的時(shí)候也很難提出一個(gè)非常完整的需求。以下是一個(gè)初步的需求描述:也很難提出一個(gè)非常完整的需求。以下是一個(gè)初步的需求描述:14第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型建立概念模型的目的是幫助開(kāi)發(fā)團(tuán)隊(duì)理解問(wèn)題域的各種概念、各種名詞、建立概念模型的目的是幫助開(kāi)發(fā)團(tuán)隊(duì)理解問(wèn)題域的各種概念、各種名詞、以及它們之間的各種關(guān)系。而建立用例模型的目的是幫助開(kāi)發(fā)團(tuán)隊(duì)理解以及

22、它們之間的各種關(guān)系。而建立用例模型的目的是幫助開(kāi)發(fā)團(tuán)隊(duì)理解用戶(hù)對(duì)系統(tǒng)的各種功能需求。這兩方面的工作,是分析工作的主要內(nèi)容,用戶(hù)對(duì)系統(tǒng)的各種功能需求。這兩方面的工作,是分析工作的主要內(nèi)容,其結(jié)果就是得到明確的問(wèn)題定義。也就是知道系統(tǒng)該做什么、不該做什其結(jié)果就是得到明確的問(wèn)題定義。也就是知道系統(tǒng)該做什么、不該做什么,以及要達(dá)到的目標(biāo)。么,以及要達(dá)到的目標(biāo)。以上的需求描述當(dāng)然不夠清晰、不夠嚴(yán)謹(jǐn),但從這樣的描述中,我們可以上的需求描述當(dāng)然不夠清晰、不夠嚴(yán)謹(jǐn),但從這樣的描述中,我們可以對(duì)待開(kāi)發(fā)軟件系統(tǒng)有一個(gè)初步的認(rèn)識(shí)。這段描述是我們進(jìn)一步工作的以對(duì)待開(kāi)發(fā)軟件系統(tǒng)有一個(gè)初步的認(rèn)識(shí)。這段描述是我們進(jìn)一步工作

23、的出發(fā)點(diǎn),通過(guò)一系列的分析活動(dòng),也通過(guò)與用戶(hù)的進(jìn)一步溝通,使我們出發(fā)點(diǎn),通過(guò)一系列的分析活動(dòng),也通過(guò)與用戶(hù)的進(jìn)一步溝通,使我們對(duì)用戶(hù)的需求慢慢清晰起來(lái),對(duì)需要解決的問(wèn)題逐漸明確起來(lái)。具體來(lái)對(duì)用戶(hù)的需求慢慢清晰起來(lái),對(duì)需要解決的問(wèn)題逐漸明確起來(lái)。具體來(lái)說(shuō),在分析階段通常包含兩個(gè)方面的工作:說(shuō),在分析階段通常包含兩個(gè)方面的工作:建立一個(gè)以類(lèi)圖表示的反映建立一個(gè)以類(lèi)圖表示的反映問(wèn)題域靜態(tài)關(guān)系的概念模型;建立一個(gè)以用例模型表示的反映系統(tǒng)行為問(wèn)題域靜態(tài)關(guān)系的概念模型;建立一個(gè)以用例模型表示的反映系統(tǒng)行為的動(dòng)態(tài)模型。的動(dòng)態(tài)模型。151.2 建立一個(gè)概念模型建立一個(gè)概念模型所謂所謂“問(wèn)題域問(wèn)題域”是指一個(gè)包

24、含現(xiàn)實(shí)世界事物與概念的領(lǐng)域,這些事物和是指一個(gè)包含現(xiàn)實(shí)世界事物與概念的領(lǐng)域,這些事物和概念與所要開(kāi)發(fā)的應(yīng)用系統(tǒng)有關(guān)。概念與所要開(kāi)發(fā)的應(yīng)用系統(tǒng)有關(guān)。在對(duì)問(wèn)題域的分析和調(diào)查過(guò)程中,所謂在對(duì)問(wèn)題域的分析和調(diào)查過(guò)程中,所謂面向?qū)ο竺嫦驅(qū)ο筮@個(gè)概念的精髓是將問(wèn)這個(gè)概念的精髓是將問(wèn)題分解成多個(gè)單獨(dú)的概念或者對(duì)象題分解成多個(gè)單獨(dú)的概念或者對(duì)象即分解成我們能夠覺(jué)察、能夠理解、即分解成我們能夠覺(jué)察、能夠理解、容易表達(dá)的事物。容易表達(dá)的事物。概念模型概念模型(conceptual model)是問(wèn)題域中概念的描)是問(wèn)題域中概念的描述,通常用一組靜態(tài)結(jié)構(gòu)圖來(lái)表達(dá)。概念模型可以展示出:一組概念;述,通常用一組靜態(tài)結(jié)構(gòu)

25、圖來(lái)表達(dá)。概念模型可以展示出:一組概念;概念之間的關(guān)聯(lián);概念的屬性。概念之間的關(guān)聯(lián);概念的屬性。表達(dá)概念模型的是類(lèi)圖。表達(dá)概念模型的是類(lèi)圖。類(lèi)圖是描述類(lèi)、接口以及它們之間關(guān)系的圖,類(lèi)圖是描述類(lèi)、接口以及它們之間關(guān)系的圖,它顯示了系統(tǒng)中各個(gè)類(lèi)的靜態(tài)結(jié)構(gòu),是一種靜態(tài)模型它顯示了系統(tǒng)中各個(gè)類(lèi)的靜態(tài)結(jié)構(gòu),是一種靜態(tài)模型。類(lèi)圖根據(jù)系統(tǒng)中。類(lèi)圖根據(jù)系統(tǒng)中的類(lèi)以及各個(gè)類(lèi)的關(guān)系描述系統(tǒng)的靜態(tài)視圖。的類(lèi)以及各個(gè)類(lèi)的關(guān)系描述系統(tǒng)的靜態(tài)視圖。類(lèi)圖是面向?qū)ο笙到y(tǒng)建模中最常用和最基本的圖之一,其他許多圖,如類(lèi)圖是面向?qū)ο笙到y(tǒng)建模中最常用和最基本的圖之一,其他許多圖,如狀態(tài)圖、順序圖、通信圖、配置圖等都是在類(lèi)圖的基礎(chǔ)上進(jìn)

26、一步描述了狀態(tài)圖、順序圖、通信圖、配置圖等都是在類(lèi)圖的基礎(chǔ)上進(jìn)一步描述了系統(tǒng)其他方面的特性。系統(tǒng)其他方面的特性。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型161.2.1 類(lèi)及類(lèi)的表示類(lèi)及類(lèi)的表示類(lèi)是構(gòu)成類(lèi)圖的基礎(chǔ),也是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心。要使用類(lèi)類(lèi)是構(gòu)成類(lèi)圖的基礎(chǔ),也是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心。要使用類(lèi)圖,需要了解類(lèi)和對(duì)象之間的區(qū)別。圖,需要了解類(lèi)和對(duì)象之間的區(qū)別。類(lèi)是對(duì)資源的定義,它所包含的類(lèi)是對(duì)資源的定義,它所包含的信息主要用來(lái)描述某種類(lèi)型實(shí)體的特征以及對(duì)該類(lèi)型實(shí)體的使用方法。信息主要用來(lái)描述某種類(lèi)型實(shí)體的特征以及對(duì)該類(lèi)型實(shí)體的使用方法。對(duì)象是具體的實(shí)體,它遵守類(lèi)制定的

27、規(guī)則。對(duì)象是具體的實(shí)體,它遵守類(lèi)制定的規(guī)則。從軟件的角度看,程序通從軟件的角度看,程序通常包含的是類(lèi)的集合以及類(lèi)所定義的行為,而實(shí)際創(chuàng)建信息和管理信常包含的是類(lèi)的集合以及類(lèi)所定義的行為,而實(shí)際創(chuàng)建信息和管理信息的是遵守類(lèi)的規(guī)則的對(duì)象。息的是遵守類(lèi)的規(guī)則的對(duì)象。類(lèi)定義了一組具有狀態(tài)和行為的對(duì)象,這些對(duì)象具有相同的屬性、操類(lèi)定義了一組具有狀態(tài)和行為的對(duì)象,這些對(duì)象具有相同的屬性、操作、關(guān)系和語(yǔ)義。其中,屬性和關(guān)聯(lián)用來(lái)描述狀態(tài)。屬性通常用沒(méi)有作、關(guān)系和語(yǔ)義。其中,屬性和關(guān)聯(lián)用來(lái)描述狀態(tài)。屬性通常用沒(méi)有身份的數(shù)據(jù)值表示,如數(shù)字和字符串。關(guān)聯(lián)則用有身份的對(duì)象之間的身份的數(shù)據(jù)值表示,如數(shù)字和字符串。關(guān)聯(lián)則

28、用有身份的對(duì)象之間的關(guān)系來(lái)表示。行為由操作來(lái)描述,方法是操作的實(shí)現(xiàn)。關(guān)系來(lái)表示。行為由操作來(lái)描述,方法是操作的實(shí)現(xiàn)。為了支持對(duì)身份、屬性和操作的定義,為了支持對(duì)身份、屬性和操作的定義,UML規(guī)范采用一個(gè)具有規(guī)范采用一個(gè)具有3個(gè)預(yù)定個(gè)預(yù)定義分欄的圖標(biāo)表示類(lèi),分欄中包含的信息有:名稱(chēng)、屬性和操作,它們義分欄的圖標(biāo)表示類(lèi),分欄中包含的信息有:名稱(chēng)、屬性和操作,它們對(duì)應(yīng)著類(lèi)的基本元素,如圖對(duì)應(yīng)著類(lèi)的基本元素,如圖1.2所示。所示。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型17圖圖1.2 類(lèi)的類(lèi)的3種預(yù)定義的分欄種預(yù)定義的分欄1) 1) 名稱(chēng)名稱(chēng)類(lèi)名采用黑體字書(shū)寫(xiě)在名稱(chēng)分欄的中部。給類(lèi)命名時(shí)最

29、好能夠反映類(lèi)所類(lèi)名采用黑體字書(shū)寫(xiě)在名稱(chēng)分欄的中部。給類(lèi)命名時(shí)最好能夠反映類(lèi)所代表的問(wèn)題域中的概念,并且要清楚準(zhǔn)確,不能含糊不清;類(lèi)名通常表代表的問(wèn)題域中的概念,并且要清楚準(zhǔn)確,不能含糊不清;類(lèi)名通常表示為一個(gè)名詞。示為一個(gè)名詞。2)2)屬性屬性類(lèi)的屬性,也稱(chēng)為特性,描述了類(lèi)在軟件系統(tǒng)中代表的事物(即對(duì)象)類(lèi)的屬性,也稱(chēng)為特性,描述了類(lèi)在軟件系統(tǒng)中代表的事物(即對(duì)象)所具備的特性,這些特性是該類(lèi)中所有對(duì)象所共有的。對(duì)象可能有很多所具備的特性,這些特性是該類(lèi)中所有對(duì)象所共有的。對(duì)象可能有很多屬性,在系統(tǒng)建模時(shí),只抽取那些對(duì)系統(tǒng)有用的特征作為類(lèi)的屬性,通屬性,在系統(tǒng)建模時(shí),只抽取那些對(duì)系統(tǒng)有用的特征

30、作為類(lèi)的屬性,通過(guò)這些屬性可以識(shí)別該類(lèi)的對(duì)象。例如,可以將學(xué)號(hào)、姓名、性別、出過(guò)這些屬性可以識(shí)別該類(lèi)的對(duì)象。例如,可以將學(xué)號(hào)、姓名、性別、出生年月、專(zhuān)業(yè)、班級(jí)等作為類(lèi)生年月、專(zhuān)業(yè)、班級(jí)等作為類(lèi)StudentStudent的屬性。的屬性。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型名稱(chēng)名稱(chēng)屬性屬性操作操作183) 3) 操作操作屬性?xún)H僅描述了要處理的數(shù)據(jù),而操作則描述了處理數(shù)據(jù)的具體方法。屬性?xún)H僅描述了要處理的數(shù)據(jù),而操作則描述了處理數(shù)據(jù)的具體方法。類(lèi)的操作是對(duì)其所屬對(duì)象的行為的抽象,相對(duì)于一個(gè)服務(wù)的實(shí)現(xiàn),且該類(lèi)的操作是對(duì)其所屬對(duì)象的行為的抽象,相對(duì)于一個(gè)服務(wù)的實(shí)現(xiàn),且該服務(wù)可以由類(lèi)的任

31、何對(duì)象請(qǐng)求以影響其行為。屬性是描述對(duì)象特征的值,服務(wù)可以由類(lèi)的任何對(duì)象請(qǐng)求以影響其行為。屬性是描述對(duì)象特征的值,操作用于操縱屬性或執(zhí)行其他動(dòng)作。操作可以看作是類(lèi)的接口,通過(guò)該操作用于操縱屬性或執(zhí)行其他動(dòng)作。操作可以看作是類(lèi)的接口,通過(guò)該接口可以實(shí)現(xiàn)內(nèi)、外信息的交互,操作的具體實(shí)現(xiàn)稱(chēng)為接口可以實(shí)現(xiàn)內(nèi)、外信息的交互,操作的具體實(shí)現(xiàn)稱(chēng)為方法方法。某類(lèi)的操。某類(lèi)的操作只能作用于該類(lèi)的對(duì)象。作只能作用于該類(lèi)的對(duì)象。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型對(duì)象通過(guò)相互發(fā)送消息來(lái)協(xié)作。一個(gè)消息調(diào)用一個(gè)類(lèi)操作。這個(gè)操作通對(duì)象通過(guò)相互發(fā)送消息來(lái)協(xié)作。一個(gè)消息調(diào)用一個(gè)類(lèi)操作。這個(gè)操作通過(guò)存取它自己對(duì)象

32、中的屬性值為調(diào)用對(duì)象的請(qǐng)求提供服務(wù)。一個(gè)可能的過(guò)存取它自己對(duì)象中的屬性值為調(diào)用對(duì)象的請(qǐng)求提供服務(wù)。一個(gè)可能的情景是,這個(gè)操作必須對(duì)外面的對(duì)象是可見(jiàn)的(消息必須看得見(jiàn)操作),情景是,這個(gè)操作必須對(duì)外面的對(duì)象是可見(jiàn)的(消息必須看得見(jiàn)操作),這樣的操作被稱(chēng)為具有這樣的操作被稱(chēng)為具有公共可見(jiàn)性公共可見(jiàn)性。在面向?qū)ο笙到y(tǒng)中,大多數(shù)的操作都是公有的,而大多數(shù)屬性都是私有在面向?qū)ο笙到y(tǒng)中,大多數(shù)的操作都是公有的,而大多數(shù)屬性都是私有的,屬性值對(duì)其他的類(lèi)是隱藏的。一個(gè)類(lèi)的對(duì)象只能請(qǐng)求另一個(gè)類(lèi)在公的,屬性值對(duì)其他的類(lèi)是隱藏的。一個(gè)類(lèi)的對(duì)象只能請(qǐng)求另一個(gè)類(lèi)在公共界面上發(fā)布的服務(wù)(操作),它們不允許直接操作其他對(duì)象

33、的屬性。共界面上發(fā)布的服務(wù)(操作),它們不允許直接操作其他對(duì)象的屬性。我們說(shuō),操作封裝了屬性。然而必須注意,我們說(shuō),操作封裝了屬性。然而必須注意,封裝只作用到類(lèi)封裝只作用到類(lèi)。一個(gè)對(duì)象。一個(gè)對(duì)象不能對(duì)相同類(lèi)的對(duì)象隱藏(封裝)任何東西。通常的可見(jiàn)性符號(hào)為:不能對(duì)相同類(lèi)的對(duì)象隱藏(封裝)任何東西。通常的可見(jiàn)性符號(hào)為:+ +:指公共可見(jiàn)性;:指公共可見(jiàn)性;- -:指私有可見(jiàn)性;:指私有可見(jiàn)性;# #:指受保護(hù)的可見(jiàn)性。分別對(duì)應(yīng):指受保護(hù)的可見(jiàn)性。分別對(duì)應(yīng)于于C+C+中的中的publicpublic、privateprivate和和protectedprotected。19第第1 1章章 為問(wèn)題域建概

34、念模型為問(wèn)題域建概念模型1.2.2 1.2.2 發(fā)現(xiàn)類(lèi)發(fā)現(xiàn)類(lèi)如前所述,類(lèi)代表一組相似對(duì)象的集合,而對(duì)象可以是任何適用于系統(tǒng)如前所述,類(lèi)代表一組相似對(duì)象的集合,而對(duì)象可以是任何適用于系統(tǒng)的人、地點(diǎn)、物品、事件、概念、屏幕演示或報(bào)表。例如,雖然的人、地點(diǎn)、物品、事件、概念、屏幕演示或報(bào)表。例如,雖然“zhang chengzhang cheng”、“jiang junjiang jun”、“l(fā)i haixiali haixia”都是學(xué)生,我們要建立都是學(xué)生,我們要建立的是叫做的是叫做“StudentStudent”類(lèi)的模型,而不是對(duì)每一個(gè)單個(gè)的學(xué)生建模。發(fā)現(xiàn)類(lèi)的模型,而不是對(duì)每一個(gè)單個(gè)的學(xué)生建模。

35、發(fā)現(xiàn)類(lèi),從本質(zhì)上來(lái)講是一項(xiàng)分析工作,因?yàn)樗鼮閼?yīng)用程序確定構(gòu)件。發(fā)現(xiàn)類(lèi),從本質(zhì)上來(lái)講是一項(xiàng)分析工作,因?yàn)樗鼮閼?yīng)用程序確定構(gòu)件。發(fā)現(xiàn)類(lèi)的方法有很多種,下面作一些簡(jiǎn)單介紹,最后再說(shuō)明我們所采用的方類(lèi)的方法有很多種,下面作一些簡(jiǎn)單介紹,最后再說(shuō)明我們所采用的方法。法。操作可見(jiàn)性與屬性可見(jiàn)性沒(méi)什么不同。操作可見(jiàn)性定義該操作在不同于操作可見(jiàn)性與屬性可見(jiàn)性沒(méi)什么不同。操作可見(jiàn)性定義該操作在不同于該類(lèi)的其他類(lèi)的對(duì)象中是否可見(jiàn)。如果是可見(jiàn)的,則該操作的可見(jiàn)性為該類(lèi)的其他類(lèi)的對(duì)象中是否可見(jiàn)。如果是可見(jiàn)的,則該操作的可見(jiàn)性為公有的,否則是私有的。公有的,否則是私有的。操作可見(jiàn)性需要與操作范圍區(qū)別開(kāi)來(lái)。操作可以在一個(gè)

36、實(shí)例對(duì)象中被調(diào)操作可見(jiàn)性需要與操作范圍區(qū)別開(kāi)來(lái)。操作可以在一個(gè)實(shí)例對(duì)象中被調(diào)用,或者還可以在一個(gè)類(lèi)對(duì)象中被調(diào)用。對(duì)前一種情況,操作被說(shuō)成是用,或者還可以在一個(gè)類(lèi)對(duì)象中被調(diào)用。對(duì)前一種情況,操作被說(shuō)成是具有具有實(shí)例范圍實(shí)例范圍,而后一種情況則具有,而后一種情況則具有類(lèi)范圍類(lèi)范圍。例如,尋找雇員的年齡的。例如,尋找雇員的年齡的操作具有實(shí)例范圍,但計(jì)算雇員的平均年齡的操作就具有類(lèi)范圍。操作具有實(shí)例范圍,但計(jì)算雇員的平均年齡的操作就具有類(lèi)范圍。201)1)參與者是潛在的類(lèi)參與者是潛在的類(lèi)。參與者表示與系統(tǒng)進(jìn)行交互的任何人或物,其詳。參與者表示與系統(tǒng)進(jìn)行交互的任何人或物,其詳細(xì)概念我們將在后面的用例建模

37、中論述。參與者有兩種情況,一種是在細(xì)概念我們將在后面的用例建模中論述。參與者有兩種情況,一種是在現(xiàn)實(shí)世界中的參與者,另一種是存儲(chǔ)在你的系統(tǒng)中的參與者。例如,在現(xiàn)實(shí)世界中的參與者,另一種是存儲(chǔ)在你的系統(tǒng)中的參與者。例如,在現(xiàn)實(shí)世界中有作為大學(xué)學(xué)生的人,同時(shí),在你的系統(tǒng)中存在業(yè)務(wù)對(duì)象,現(xiàn)實(shí)世界中有作為大學(xué)學(xué)生的人,同時(shí),在你的系統(tǒng)中存在業(yè)務(wù)對(duì)象,代表那些現(xiàn)實(shí)世界中的人。代表那些現(xiàn)實(shí)世界中的人。 2)2)確定客戶(hù)確定客戶(hù)。大學(xué)中有學(xué)生,銀行有顧客,網(wǎng)絡(luò)操作系統(tǒng)有用戶(hù),航班。大學(xué)中有學(xué)生,銀行有顧客,網(wǎng)絡(luò)操作系統(tǒng)有用戶(hù),航班有乘客。學(xué)生、顧客、用戶(hù)和乘客都是客戶(hù)的例子。有乘客。學(xué)生、顧客、用戶(hù)和乘客都

38、是客戶(hù)的例子。 3)3) 跟蹤資金流跟蹤資金流。問(wèn)問(wèn)你自已,資金是從哪里來(lái)的(通常是從客戶(hù)那里。問(wèn)問(wèn)你自已,資金是從哪里來(lái)的(通常是從客戶(hù)那里來(lái)的),它是怎么掙到的(通過(guò)賣(mài)產(chǎn)品或服務(wù)),還有它被花在哪里來(lái)的),它是怎么掙到的(通過(guò)賣(mài)產(chǎn)品或服務(wù)),還有它被花在哪里了。通過(guò)對(duì)資金進(jìn)行跟蹤,你能夠?yàn)橄到y(tǒng)確定很多核心類(lèi)(客戶(hù)、出了。通過(guò)對(duì)資金進(jìn)行跟蹤,你能夠?yàn)橄到y(tǒng)確定很多核心類(lèi)(客戶(hù)、出售的產(chǎn)品或服務(wù),以及組成那些用于出售的產(chǎn)品售的產(chǎn)品或服務(wù),以及組成那些用于出售的產(chǎn)品/服務(wù)的要素)。服務(wù)的要素)。4)4) 概念是潛在的類(lèi)概念是潛在的類(lèi)。你所面對(duì)的應(yīng)用領(lǐng)域的業(yè)務(wù)人員經(jīng)常會(huì)使用他們習(xí)。你所面對(duì)的應(yīng)用領(lǐng)域

39、的業(yè)務(wù)人員經(jīng)常會(huì)使用他們習(xí)以為常的術(shù)語(yǔ)。術(shù)語(yǔ)經(jīng)常是領(lǐng)域模型的候選類(lèi)。例如,在一所大學(xué)中經(jīng)以為常的術(shù)語(yǔ)。術(shù)語(yǔ)經(jīng)常是領(lǐng)域模型的候選類(lèi)。例如,在一所大學(xué)中經(jīng)常會(huì)使用的業(yè)務(wù)術(shù)語(yǔ)有:專(zhuān)業(yè)、課程、教室、教學(xué)樓和課本,這些概念常會(huì)使用的業(yè)務(wù)術(shù)語(yǔ)有:專(zhuān)業(yè)、課程、教室、教學(xué)樓和課本,這些概念中的每一個(gè)都是你的系統(tǒng)中潛在的類(lèi)。中的每一個(gè)都是你的系統(tǒng)中潛在的類(lèi)。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型215) 5) 事件是潛在的類(lèi)事件是潛在的類(lèi)。關(guān)鍵事件發(fā)生在大部分問(wèn)題領(lǐng)域中。例如,在大。關(guān)鍵事件發(fā)生在大部分問(wèn)題領(lǐng)域中。例如,在大學(xué)中,重要的事件包括畢業(yè)和開(kāi)學(xué)。每一個(gè)事件都是系統(tǒng)中潛在的類(lèi),學(xué)中,重要的

40、事件包括畢業(yè)和開(kāi)學(xué)。每一個(gè)事件都是系統(tǒng)中潛在的類(lèi),因?yàn)樗鼈儠?huì)有其職責(zé)(例如因?yàn)樗鼈儠?huì)有其職責(zé)(例如“畢業(yè)畢業(yè)”要維護(hù)一個(gè)畢業(yè)學(xué)生列表,要知道要維護(hù)一個(gè)畢業(yè)學(xué)生列表,要知道其日期和地點(diǎn)等等)。其日期和地點(diǎn)等等)。6) 6) 主要用戶(hù)界面元素是潛在的類(lèi)主要用戶(hù)界面元素是潛在的類(lèi)?,F(xiàn)實(shí)世界中的參與者通過(guò)這些類(lèi)與?,F(xiàn)實(shí)世界中的參與者通過(guò)這些類(lèi)與你的系統(tǒng)一起工作。從學(xué)術(shù)上講,這樣做不夠純粹。然而,這很實(shí)用,你的系統(tǒng)一起工作。從學(xué)術(shù)上講,這樣做不夠純粹。然而,這很實(shí)用,因?yàn)楝F(xiàn)實(shí)世界參與者會(huì)與這些類(lèi)進(jìn)行協(xié)作。因?yàn)楝F(xiàn)實(shí)世界參與者會(huì)與這些類(lèi)進(jìn)行協(xié)作。7) 7) 立即找出三到五個(gè)主類(lèi)立即找出三到五個(gè)主類(lèi)。這些類(lèi)是

41、系統(tǒng)的核心,而且如果你不能描述。這些類(lèi)是系統(tǒng)的核心,而且如果你不能描述這些類(lèi)的話(huà),就不可能理解業(yè)務(wù)。例如,這些類(lèi)的話(huà),就不可能理解業(yè)務(wù)。例如,“乘客乘客”、“飛機(jī)飛機(jī)”、“機(jī)組機(jī)組人員人員”和和“機(jī)場(chǎng)機(jī)場(chǎng)”對(duì)于航班訂票系統(tǒng)應(yīng)該是主類(lèi)。對(duì)于航班訂票系統(tǒng)應(yīng)該是主類(lèi)?!皩W(xué)生學(xué)生”、“教授教授”、“課程課程”和和“教室教室”對(duì)于大學(xué)信息系統(tǒng)應(yīng)該是主類(lèi)。對(duì)于大學(xué)信息系統(tǒng)應(yīng)該是主類(lèi)。我們考察以上這些發(fā)現(xiàn)類(lèi)的方法,其共同特點(diǎn)是我們考察以上這些發(fā)現(xiàn)類(lèi)的方法,其共同特點(diǎn)是潛在的類(lèi)潛在的類(lèi)基本上都與基本上都與名名詞詞有關(guān)。確實(shí),在實(shí)際工作中,發(fā)現(xiàn)類(lèi)應(yīng)用最廣泛的就是有關(guān)。確實(shí),在實(shí)際工作中,發(fā)現(xiàn)類(lèi)應(yīng)用最廣泛的就是“

42、名詞動(dòng)詞名詞動(dòng)詞法法”。所謂。所謂名詞動(dòng)詞法名詞動(dòng)詞法,其主要規(guī)則是從名詞與名詞短語(yǔ)中提取對(duì)象與,其主要規(guī)則是從名詞與名詞短語(yǔ)中提取對(duì)象與屬性;從動(dòng)詞與動(dòng)詞短語(yǔ)中提取操作與關(guān)聯(lián);而所有格短語(yǔ)通常表明名屬性;從動(dòng)詞與動(dòng)詞短語(yǔ)中提取操作與關(guān)聯(lián);而所有格短語(yǔ)通常表明名詞應(yīng)該是屬性而不是對(duì)象。下面,我們就采用該方法開(kāi)始問(wèn)題域建模的詞應(yīng)該是屬性而不是對(duì)象。下面,我們就采用該方法開(kāi)始問(wèn)題域建模的第一步。第一步。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型潛在的類(lèi)有什么共同的特點(diǎn)潛在的類(lèi)有什么共同的特點(diǎn)221.2.2.1 1.2.2.1 找到備選類(lèi)找到備選類(lèi)首先,我們可以逐字逐句地閱讀上面那段需求描

43、述,并將其中的所有首先,我們可以逐字逐句地閱讀上面那段需求描述,并將其中的所有名詞及名詞短語(yǔ)列出來(lái),我們可以得到如下的備選類(lèi)列表:名詞及名詞短語(yǔ)列出來(lái),我們可以得到如下的備選類(lèi)列表:本人本人 人人 家里家里 書(shū)籍書(shū)籍 朋友朋友 個(gè)人圖書(shū)管理系統(tǒng)個(gè)人圖書(shū)管理系統(tǒng) 基本信息(書(shū)籍的)基本信息(書(shū)籍的) 計(jì)算機(jī)類(lèi)計(jì)算機(jī)類(lèi) 非計(jì)算機(jī)類(lèi)非計(jì)算機(jī)類(lèi) 書(shū)名書(shū)名 作者作者 類(lèi)類(lèi)別別 出版社出版社 關(guān)鍵字關(guān)鍵字 功能功能 新書(shū)籍新書(shū)籍 系統(tǒng)系統(tǒng) 規(guī)則規(guī)則 書(shū)號(hào)書(shū)號(hào) 信信息息 記錄記錄 外借情況外借情況 外借情況列表外借情況列表 購(gòu)買(mǎi)金額購(gòu)買(mǎi)金額 冊(cè)數(shù)冊(cè)數(shù) 特定時(shí)特定時(shí)段段 圖圖1.3 列出所有的名詞及名詞短語(yǔ)列

44、出所有的名詞及名詞短語(yǔ)1.2.2.2 1.2.2.2 決定候選類(lèi)決定候選類(lèi)很顯然,并不是每一個(gè)備選類(lèi)都是合適的候選類(lèi),有些名詞對(duì)于要開(kāi)發(fā)很顯然,并不是每一個(gè)備選類(lèi)都是合適的候選類(lèi),有些名詞對(duì)于要開(kāi)發(fā)的系統(tǒng)來(lái)說(shuō)無(wú)關(guān)緊要,甚至是系統(tǒng)之外的;而有些名詞描述的概念太小,的系統(tǒng)來(lái)說(shuō)無(wú)關(guān)緊要,甚至是系統(tǒng)之外的;而有些名詞描述的概念太小,可能是某個(gè)候選類(lèi)的屬性。因此,我們需要對(duì)備選類(lèi)進(jìn)行一番篩選,將可能是某個(gè)候選類(lèi)的屬性。因此,我們需要對(duì)備選類(lèi)進(jìn)行一番篩選,將不合適的備選類(lèi)刪去。不合適的備選類(lèi)刪去。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型23“本人本人”、“人人”、“家里家里”很明顯是系統(tǒng)外的概

45、念,沒(méi)有必要建模。很明顯是系統(tǒng)外的概念,沒(méi)有必要建模。而而“個(gè)人圖書(shū)管理系統(tǒng)個(gè)人圖書(shū)管理系統(tǒng)”、“系統(tǒng)系統(tǒng)”指的就是將要開(kāi)發(fā)的系統(tǒng),即系指的就是將要開(kāi)發(fā)的系統(tǒng),即系統(tǒng)本身,也沒(méi)有必要對(duì)其建模。統(tǒng)本身,也沒(méi)有必要對(duì)其建模?!皶?shū)籍書(shū)籍”是一個(gè)很重要的類(lèi),而是一個(gè)很重要的類(lèi),而“書(shū)名書(shū)名”、“作者作者”、“類(lèi)別類(lèi)別”、“出版社出版社”、“書(shū)號(hào)書(shū)號(hào)”是用來(lái)描述書(shū)籍的基本信息,因此應(yīng)該作為是用來(lái)描述書(shū)籍的基本信息,因此應(yīng)該作為“書(shū)籍書(shū)籍”類(lèi)的屬性處理,類(lèi)的屬性處理,“規(guī)則規(guī)則”則是指書(shū)號(hào)的生成規(guī)則,而書(shū)號(hào)是則是指書(shū)號(hào)的生成規(guī)則,而書(shū)號(hào)是書(shū)籍的一個(gè)屬性,因此,書(shū)籍的一個(gè)屬性,因此,“規(guī)則規(guī)則”可以作為編寫(xiě)

46、可以作為編寫(xiě)“書(shū)籍書(shū)籍”類(lèi)構(gòu)造函數(shù)類(lèi)構(gòu)造函數(shù)的指南。的指南?!盎拘畔⒒拘畔ⅰ笔菚?shū)名、作者、類(lèi)別等描述書(shū)籍的基本信息統(tǒng)稱(chēng),是書(shū)名、作者、類(lèi)別等描述書(shū)籍的基本信息統(tǒng)稱(chēng),“關(guān)關(guān)鍵字鍵字”則是代表書(shū)名、作者、出版社則是代表書(shū)名、作者、出版社其中之一,因此無(wú)需對(duì)其建模。其中之一,因此無(wú)需對(duì)其建模?!肮δ芄δ堋?、“新書(shū)籍新書(shū)籍”、“信息信息”、“記錄記錄”都是在描述需求時(shí)使用都是在描述需求時(shí)使用到的一些相關(guān)術(shù)語(yǔ),并不是問(wèn)題域的本質(zhì),因此不在考慮的范圍。到的一些相關(guān)術(shù)語(yǔ),并不是問(wèn)題域的本質(zhì),因此不在考慮的范圍?!坝?jì)算機(jī)類(lèi)計(jì)算機(jī)類(lèi)”、“非計(jì)算機(jī)類(lèi)非計(jì)算機(jī)類(lèi)”是該系統(tǒng)中圖書(shū)的兩大分類(lèi),應(yīng)該對(duì)是該系統(tǒng)中圖書(shū)的

47、兩大分類(lèi),應(yīng)該對(duì)其建模,并改名為其建模,并改名為“計(jì)算機(jī)類(lèi)書(shū)籍計(jì)算機(jī)類(lèi)書(shū)籍”和和“非計(jì)算機(jī)類(lèi)書(shū)籍非計(jì)算機(jī)類(lèi)書(shū)籍”,以減少,以減少歧義。歧義。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型24“外借情況外借情況”則是用來(lái)表示一次借閱行為,應(yīng)該成為一個(gè)候選類(lèi),多則是用來(lái)表示一次借閱行為,應(yīng)該成為一個(gè)候選類(lèi),多個(gè)外借情況將組成個(gè)外借情況將組成“外借情況列表外借情況列表”,而外借情況中一個(gè)很重要的角色,而外借情況中一個(gè)很重要的角色是是“朋友朋友” 借閱主體。雖然本系統(tǒng)中并不需要建立借閱主體。雖然本系統(tǒng)中并不需要建立“朋友朋友”的資料的資料庫(kù),但考慮到可能需要列出某個(gè)朋友的借閱情況,因此還是將其列

48、為候庫(kù),但考慮到可能需要列出某個(gè)朋友的借閱情況,因此還是將其列為候選類(lèi)。為了更好地表述,將選類(lèi)。為了更好地表述,將“外借情況外借情況”改名為改名為“借閱記錄借閱記錄”,而將,而將“外借情況列表外借情況列表”改名為改名為“借閱情況列表借閱情況列表”?!百?gòu)買(mǎi)金額購(gòu)買(mǎi)金額”、“冊(cè)數(shù)冊(cè)數(shù)”都是統(tǒng)計(jì)的結(jié)果,即都是一個(gè)數(shù)字,故不必都是統(tǒng)計(jì)的結(jié)果,即都是一個(gè)數(shù)字,故不必建模,而建模,而“特定時(shí)段特定時(shí)段”是統(tǒng)計(jì)的范圍,也不必建模;但要進(jìn)行統(tǒng)計(jì),是統(tǒng)計(jì)的范圍,也不必建模;但要進(jìn)行統(tǒng)計(jì),必須有一個(gè)執(zhí)行統(tǒng)計(jì)的主體,這讓我們發(fā)現(xiàn)了一個(gè)在需求描述中隱藏必須有一個(gè)執(zhí)行統(tǒng)計(jì)的主體,這讓我們發(fā)現(xiàn)了一個(gè)在需求描述中隱藏的關(guān)鍵

49、類(lèi),即書(shū)籍列表。的關(guān)鍵類(lèi),即書(shū)籍列表。通過(guò)以上的分析,我們得到了一個(gè)候選類(lèi)列表:通過(guò)以上的分析,我們得到了一個(gè)候選類(lèi)列表:書(shū)籍書(shū)籍 計(jì)算機(jī)類(lèi)書(shū)籍計(jì)算機(jī)類(lèi)書(shū)籍 非計(jì)算機(jī)類(lèi)書(shū)籍非計(jì)算機(jī)類(lèi)書(shū)籍借閱記錄借閱記錄 借閱記錄列表借閱記錄列表 書(shū)籍列表書(shū)籍列表圖圖1.4 候選類(lèi)列表候選類(lèi)列表第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型25至此,我們已經(jīng)完成了概念建模的第一步工作。在實(shí)際工作中,這一至此,我們已經(jīng)完成了概念建模的第一步工作。在實(shí)際工作中,這一步不要花費(fèi)太多的時(shí)間,即按前面提及的第步不要花費(fèi)太多的時(shí)間,即按前面提及的第7種發(fā)現(xiàn)類(lèi)的方法,快速地種發(fā)現(xiàn)類(lèi)的方法,快速地找出系統(tǒng)中的幾個(gè)主類(lèi),以

50、便于我們對(duì)問(wèn)題域有一個(gè)概要的了解。找出系統(tǒng)中的幾個(gè)主類(lèi),以便于我們對(duì)問(wèn)題域有一個(gè)概要的了解。1.2.3.1 1.2.3.1 繼承(泛化)繼承(泛化)不同類(lèi)之間經(jīng)常會(huì)存在相似性,兩個(gè)以上的類(lèi)也會(huì)經(jīng)常共享相同的屬不同類(lèi)之間經(jīng)常會(huì)存在相似性,兩個(gè)以上的類(lèi)也會(huì)經(jīng)常共享相同的屬性和性和/或相同的方法。因?yàn)槲覀儾⒉幌胫貜?fù)編寫(xiě)代碼,那我們就要利用或相同的方法。因?yàn)槲覀儾⒉幌胫貜?fù)編寫(xiě)代碼,那我們就要利用這種相似機(jī)制。繼承就是這種機(jī)制。這種相似機(jī)制。繼承就是這種機(jī)制。1.2.3 1.2.3 確定類(lèi)之間的關(guān)系確定類(lèi)之間的關(guān)系在對(duì)以上候選類(lèi)建立關(guān)系之前,我們先簡(jiǎn)單地介紹與此相關(guān)的一些概念。在對(duì)以上候選類(lèi)建立關(guān)系之前

51、,我們先簡(jiǎn)單地介紹與此相關(guān)的一些概念。第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型繼承是指子類(lèi)可以擁有父類(lèi)的全部屬性和操作。繼承是面向?qū)ο蠓椒ɡ^承是指子類(lèi)可以擁有父類(lèi)的全部屬性和操作。繼承是面向?qū)ο蠓椒ǖ囊粋€(gè)重要概念,是面向?qū)ο蠹夹g(shù)提高軟件開(kāi)發(fā)效率的一個(gè)重要原因。的一個(gè)重要概念,是面向?qū)ο蠹夹g(shù)提高軟件開(kāi)發(fā)效率的一個(gè)重要原因。在構(gòu)建系統(tǒng)模型時(shí),可以根據(jù)所涉及到的事物的共性抽象出一些基本在構(gòu)建系統(tǒng)模型時(shí),可以根據(jù)所涉及到的事物的共性抽象出一些基本類(lèi),并在此基礎(chǔ)上根據(jù)事物的個(gè)性抽象出新的類(lèi)(即子類(lèi))。子類(lèi)既類(lèi),并在此基礎(chǔ)上根據(jù)事物的個(gè)性抽象出新的類(lèi)(即子類(lèi))。子類(lèi)既具有父類(lèi)的全部屬性和操作,

52、又具有自己獨(dú)特的屬性和操作。父類(lèi)與具有父類(lèi)的全部屬性和操作,又具有自己獨(dú)特的屬性和操作。父類(lèi)與子類(lèi)的關(guān)系為一般與特殊的關(guān)系。子類(lèi)的關(guān)系為一般與特殊的關(guān)系。26第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型繼承繼承(inheritanceinheritance)表示兩個(gè)類(lèi)之間是)表示兩個(gè)類(lèi)之間是“is ais a”、“is likeis like”或或“is is kind ofkind of(是(是的一種)的一種)”的關(guān)系。的關(guān)系。子類(lèi)子類(lèi)(subclasssubclass):如果類(lèi)):如果類(lèi)B B繼承自類(lèi)繼承自類(lèi)A A,我們說(shuō),我們說(shuō)B B是是A A的子類(lèi)。的子類(lèi)。父類(lèi)父類(lèi)(super

53、classsuperclass):如果類(lèi)):如果類(lèi)B B繼承自類(lèi)繼承自類(lèi)A A,我們說(shuō),我們說(shuō)A A是是B B的父類(lèi)。的父類(lèi)。繼承機(jī)制具有特殊的意義。由于子類(lèi)可以自動(dòng)擁有父類(lèi)的全部操作和繼承機(jī)制具有特殊的意義。由于子類(lèi)可以自動(dòng)擁有父類(lèi)的全部操作和屬性,當(dāng)我們?cè)诙x子類(lèi)時(shí),就不必重復(fù)定義那些在父類(lèi)中已經(jīng)定義屬性,當(dāng)我們?cè)诙x子類(lèi)時(shí),就不必重復(fù)定義那些在父類(lèi)中已經(jīng)定義過(guò)的屬性和操作,只需要聲明該類(lèi)是某個(gè)父類(lèi)的子類(lèi),從而可以將精過(guò)的屬性和操作,只需要聲明該類(lèi)是某個(gè)父類(lèi)的子類(lèi),從而可以將精力集中在定義子類(lèi)所特有的屬性和操作上。這非常有利于提高軟件的力集中在定義子類(lèi)所特有的屬性和操作上。這非常有利于提高

54、軟件的可復(fù)用性??蓮?fù)用性。繼承具有傳遞性。如果類(lèi)繼承具有傳遞性。如果類(lèi)B B繼承自類(lèi)繼承自類(lèi)A A,而類(lèi),而類(lèi)C C又繼承了類(lèi)又繼承了類(lèi)B B,則類(lèi),則類(lèi)C C可以可以繼承類(lèi)繼承類(lèi)A A和類(lèi)和類(lèi)B B的全部屬性和操作。即類(lèi)的全部屬性和操作。即類(lèi)C C的對(duì)象除了具有該類(lèi)新增的所的對(duì)象除了具有該類(lèi)新增的所有特性之外,還具有全部父類(lèi)的所有特性。有特性之外,還具有全部父類(lèi)的所有特性。如果限定每個(gè)子類(lèi)只能繼承單獨(dú)一個(gè)父類(lèi)的屬性和操作,則稱(chēng)這種繼如果限定每個(gè)子類(lèi)只能繼承單獨(dú)一個(gè)父類(lèi)的屬性和操作,則稱(chēng)這種繼承為單繼承;如果一個(gè)子類(lèi)可以同時(shí)繼承多個(gè)父類(lèi)的屬性和操作,這承為單繼承;如果一個(gè)子類(lèi)可以同時(shí)繼承多個(gè)父

55、類(lèi)的屬性和操作,這種繼承稱(chēng)為多重繼承。種繼承稱(chēng)為多重繼承。27類(lèi)類(lèi)A(父類(lèi))(父類(lèi))類(lèi)類(lèi)B(子類(lèi))(子類(lèi))圖圖1.5 UML1.5 UML中繼承的建模符號(hào)中繼承的建模符號(hào)繼承通過(guò)利用類(lèi)間的相似性來(lái)復(fù)用已有的工作繼承通過(guò)利用類(lèi)間的相似性來(lái)復(fù)用已有的工作例如,學(xué)生都有姓名、住址、電話(huà)號(hào)碼和私車(chē)。同時(shí),教授也同樣擁例如,學(xué)生都有姓名、住址、電話(huà)號(hào)碼和私車(chē)。同時(shí),教授也同樣擁有這些東西。毫無(wú)疑問(wèn),我們可以開(kāi)發(fā)有關(guān)學(xué)生和教授的類(lèi),讓它們有這些東西。毫無(wú)疑問(wèn),我們可以開(kāi)發(fā)有關(guān)學(xué)生和教授的類(lèi),讓它們一起運(yùn)行。實(shí)際上,僅需要先開(kāi)發(fā)一起運(yùn)行。實(shí)際上,僅需要先開(kāi)發(fā)“StudentStudent”類(lèi),一旦它可以運(yùn)行

56、了,類(lèi),一旦它可以運(yùn)行了,制作一份拷貝,就叫制作一份拷貝,就叫“ProfessorProfessor”,并進(jìn)行一些適當(dāng)?shù)男薷?。這樣做,并進(jìn)行一些適當(dāng)?shù)男薷?。這樣做很容易,但并不完美。如果很容易,但并不完美。如果“StudentStudent”源碼出現(xiàn)錯(cuò)誤將會(huì)怎樣?我們?cè)创a出現(xiàn)錯(cuò)誤將會(huì)怎樣?我們需要在兩個(gè)地方改正錯(cuò)誤。如果處理姓名的方法發(fā)生了變化(你把長(zhǎng)需要在兩個(gè)地方改正錯(cuò)誤。如果處理姓名的方法發(fā)生了變化(你把長(zhǎng)度從度從3030變成了變成了4040)又會(huì)怎樣?同樣要在兩個(gè)地方作出改動(dòng)。這真是讓?zhuān)┯謺?huì)怎樣?同樣要在兩個(gè)地方作出改動(dòng)。這真是讓人覺(jué)得毫無(wú)興趣的工作。如果僅有一份代碼拷貝用于開(kāi)發(fā)和維護(hù),

57、這人覺(jué)得毫無(wú)興趣的工作。如果僅有一份代碼拷貝用于開(kāi)發(fā)和維護(hù),這樣難道不更好嗎?樣難道不更好嗎?第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型28這就是繼承。使用繼承,就可以定義一個(gè)類(lèi)來(lái)封裝學(xué)生和教授間的相這就是繼承。使用繼承,就可以定義一個(gè)類(lèi)來(lái)封裝學(xué)生和教授間的相似性。新的類(lèi)將有屬性似性。新的類(lèi)將有屬性“namename”、“addressaddress”、“phoneNumberphoneNumber”以及方以及方法法“driveVehicledriveVehicle”。因?yàn)樾枰?lèi),所以就要問(wèn)問(wèn)自己,數(shù)據(jù)和功。因?yàn)樾枰?lèi),所以就要問(wèn)問(wèn)自己,數(shù)據(jù)和功能是什么?對(duì)于這個(gè)類(lèi),合適的類(lèi)

58、名應(yīng)該是能是什么?對(duì)于這個(gè)類(lèi),合適的類(lèi)名應(yīng)該是“PersonPerson”。一旦定義了一旦定義了“PersonPerson”類(lèi),就可以從它繼承出類(lèi),就可以從它繼承出“StudentStudent”和和“ProfessorProfessor”??梢哉f(shuō),??梢哉f(shuō),“PersonPerson”是是“StudentStudent”和和“ProfessorProfessor”的父的父類(lèi)。任何父類(lèi)知道和完成的事情,子類(lèi)也知道。實(shí)際上,僅需要寫(xiě)兩類(lèi)。任何父類(lèi)知道和完成的事情,子類(lèi)也知道。實(shí)際上,僅需要寫(xiě)兩行代碼:一行表示行代碼:一行表示“StudentStudent”是是“PersonPerson”的子類(lèi),

59、另一行表示的子類(lèi),另一行表示“ProfessorProfessor”是是“PersonPerson”的子類(lèi)。因?yàn)榈淖宇?lèi)。因?yàn)椤癙ersonPerson”有姓名、住址和電有姓名、住址和電話(huà)號(hào)碼,話(huà)號(hào)碼,“StudentStudent”和和“ProfessorProfessor”也有這些屬性。因?yàn)橐灿羞@些屬性。因?yàn)椤癙ersonPerson”是是會(huì)開(kāi)車(chē)的,這樣會(huì)開(kāi)車(chē)的,這樣“StudentStudent”和和“ProfessorProfessor”也應(yīng)該可以開(kāi)車(chē)。也應(yīng)該可以開(kāi)車(chē)。PersonStudentProfessor圖圖1.6 1.6 對(duì)對(duì)“StudentStudent”和和“Profess

60、orProfessor”類(lèi)從類(lèi)從“PersonPerson”繼承這個(gè)概念進(jìn)行繼承這個(gè)概念進(jìn)行建模建模第第1 1章章 為問(wèn)題域建概念模型為問(wèn)題域建概念模型29繼承技巧和技術(shù)繼承技巧和技術(shù)下面的技巧和技術(shù)有助于有效地應(yīng)用繼承:下面的技巧和技術(shù)有助于有效地應(yīng)用繼承:1.1.尋找相似之處尋找相似之處。無(wú)論何時(shí)只要有兩個(gè)以上的類(lèi)有相似之處。無(wú)論何時(shí)只要有兩個(gè)以上的類(lèi)有相似之處相似的相似的屬性或者是相似的方法,都會(huì)存在使用繼承的可能性。屬性或者是相似的方法,都會(huì)存在使用繼承的可能性。2.2.尋找已有的類(lèi)尋找已有的類(lèi)。當(dāng)確定一個(gè)新的類(lèi)時(shí),可能已經(jīng)有了一個(gè)與其相似。當(dāng)確定一個(gè)新的類(lèi)時(shí),可能已經(jīng)有了一個(gè)與其相似

溫馨提示

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

評(píng)論

0/150

提交評(píng)論