《面向對象技術及UML教程》主要包括3部分內容:面向對象編程的基本知識、UML介紹和UML工具的介紹,其中詳細講解了UML的主要模型圖的圖符、含義和應用。主要內容包括用例圖、順序圖和協作圖、類圖和對象圖、包圖、狀態圖和協作圖、構件圖和IML部署圖。在講述LJ/VML各種模型圖時,不僅介紹圖符的用法和含義,還著重介紹這些模型圖的應用。另外,《面向對象技術及UML教程》還以Rational Rose為例簡要介紹了如何使用UML工具進行UML主要模型圖的繪制,以及如何利用Rational:Rose進行模型到代碼、代碼到模型的雙向工程。
《面向對象技術及UML教程》在內容組織和安排上強調實用性,書中介紹了面向對象的概念、面向對象實現技術以及相關的軟件開發過程,最后給出一個實例詳細介紹如何在實際項目中應用UML進行面向對象分析和設計。
《面向對象技術及UML教程》內容淺顯易懂,適合作為高等院校相關專業的UML教材,也可以作為計算機行業從業人員學習UML,的參考書。
《面向對象技術及UML教程》以面向對象程序設計、UML基礎出知識和實際應用為主,由淺入深地向讀者介紹了面向對象編程的基礎知識、UML的基礎知識以及如何在實際項目中應用UML技術,并且以Rational Rose為主介紹了如何使用UML工具。 以Ralional Rose為主要工具,以UML基礎知識為主要內容,以實際應用UML為主要目的。
統一建模語言(Unified Modeling Language,UML,)匯集和融合了著名的面向對象技術專家Grady Booth、James Rum baugh和Ivar Jaeo bson的研究成果。它是一種簡潔的、統一的可視化建模語言。UML是一種定義良好、易于表達、功能強大且適用于各種應用領域的建模語言,已被OMG采納為標準,目前UML已成為面向對象技術領域內占主導地位的標準建模語言。
對于系統的使用者,開發人員可以用UML來表達系統的功能,讓使用者了解系統能夠提供的功能和價值。對于系統分析師,他們可以使用UML作為系統架構設計的工具。對于軟件工程師,他們可以利用UML進行構件和類的設計,描述系統中對象之間的動態交互。對于系統的管理者,他們也可以使用UML來刻畫系統中硬件或是軟件構件的部署與配置情形。
本書以面向對象程序設計、UML基礎知識和實際應用為主,由淺人深地向讀者介紹了面向對象編程的基礎知識、UML的基礎知識以及如何在實際項目中應用UML技術,并且以:Rational Rose為例介紹了如何使用UML工具。
本書共分為13章,第1章主要講解了面向對象的基礎知識;第2章主要介紹了RUP(統一軟件過程),RUP是目前的軟件過程中與UML結合最好的過程;第3章簡要介紹了UML的基礎內容,包括UML的概念、UML的發展歷史、UML的主要內容,以及UML2.0中的新內容;第4章主要介紹了UML的工具,并以Raional Rose工具為例,講解了如何繪制UML的各種關系圖,以及如何使用Rose的雙向工程;第5章到第11章詳細介紹了UML的用例圖、順序圖、協作圖、類圖、對象圖、包圖、狀態圖、活動圖、構件圖和部署圖,包括10種模型圖的含義、使用的圖符以及如何在實際應用中使用這10種模型圖;第12章介紹了面向對象的實現技術,包括面向對象語言的介紹、面向對象類和接口的設計,以及面向對象的基本編程規范;第13章以一個具體的實例“打擊游戲”為例,將該實例作為一個軟件項目,參照軟件公司的項目組織和開發方式,應用UML完成項目的需求分析、設計實現、集成和測試的過程,幫助讀者學會如何使用UML進行實際軟件項目的開發。
本書既可以作為高等院校計算機專業的學生學習UML或面向對象程序設計的基礎教材,也可作為從事計算機行業的技術人員學習UML的參考書。
本書由李磊、王養廷和杜啟軍共同編寫,其中第4章、第5章、第6章、第7章、第8章、第9章由李磊編寫,第1章、第2章、第12章、第13章由王養廷編寫,第3章、第10章、第11章由杜啟軍編寫。
由于作者的水平有限,書中難免存在錯誤之處,懇請廣大讀者批評指正。如果讀者有問題,請發送電子郵件到編者將及時給您答復。
第1章 面向對象技術概述
1.1 面向對象方法學
1.1.1 面向對象方法學概述
1.1.2 面向對象方法學的基本特征
1.2 面向對象的類和對象
1.3 面向對象程序設計語言
1.4 小結
1.5 習題
第2章 RUP軟件開發過程
2.1 RUP軟件開發過程概述
2.1.1 RUP簡介
2.1.2 RUP主要特點
2.1.3 RUP最佳實踐
2.2 RUP過程框架
2.2.1 RUP過程框架模型
2.2.2 RUP過程階段
2.2.3 RUP迭代開發模式
2.3 RUP的靜態結構
2.4 RUP的角色
2.4.1 分析員角色集
2.4.2 開發人員角色集
2.4.3 測試人員角色集
2.4.4 經理角色集
2.4.5 其他角色集
2.5 RUP的活動
2.5.1 先啟階段核心活動
2.5.2 細化階段核心活動
2.5.3 構建階段核心活動
2.5.4 產品化階段核心活動
2.6 RUP的工件
2.7 小結
2.8 習題
第3章 UML概述
3.1 什么是UML
3.1.1 UML簡介
3.1.2 UML的主要作用
3.2 UML演變
3.3 UML組成
3.3.1 用例圖
3.3.2 類圖、對象圖、包圖
3.3.3 狀態圖、活動圖
3.3.4 順序圖、協作圖
3.3.5 構件圖、部署圖
3.4 UML的應用領域
3.5 UML2.0的新特性
3.6 小結
3.7 習題
第4章 UML工具
4.1 UML工具介紹
4.2 主要UML工具介紹
4.3 Rational Rose的主要功能
4.4 Rational Rose窗口介紹
4.4.1 窗口的構成
4.4.2 瀏覽器
4.4.3 文檔窗口
4.4.4 工具欄
4.4.5 框圖窗口
4.4.6 日志.1
4.5 Rose模型視圖
4.6 Rational Rose框圖創建
4.6.1 創建Rose模型
4.6.2 創建用例圖
4.6.3 創建類圖
4.6.4 創建狀態圖
4.6.5 創建活動圖
4.6.6 創建順序圖
4.6.7 創建協作圖
4.6.8 創建構件圖
4.7 Rational Rose的雙向工程
4.7.1 正向工程
4.7.2 逆向工程
4.8 小結
4.9 習題
第5章 用例和用例圖
5.1 用例圖概述
5.2 為什么要使用用例圖
5.3 用例圖元素
5.3.1 執行者
5.3.2 用例
5.3.3 系統
5.3.4 關系
5.3.5 用例描述
5.4 用例圖圖符
5.5 用例粒度
5.6 用例圖應用
5.6.1 用戶需求
5.6.2 需求分析
5.6.3 需求描述
5.7 小結
5.8 習題
第6章 順序圖和協作圖
6.1 順序圖概述
6.2 順序圖元素
6.2.1 對象
6.2.2 生命線
6.2.3 激活
6.2.4 消息
6.3 順序圖圖符
6.4 順序圖理解
6.4.1 條件分支
6.4.2 從屬流
6.4.3 消息延遲
6.4.4 循環
6.4.5 順序圖片段
6.5 順序圖應用
6.6 協作圖概述
6.7 協作圖元素
6.7.1 對象
6.7.2 多對象
6.7.3 主動對象
6.7.4 鏈
6.7.5 消息
6.7.6 消息種類
6.7.7 消息序列化
6.8 協作圖圖符
6.9 協作圖理解
6.10 協作圖應用
6.11 順序圖與協作圖之間關系
6.12 小結
6.13 習題
第7章 類圖和對象圖
7.1 類圖概述
7.2 類圖元素
7.2.1 類名稱
7.2.2 屬性
7.2.3 方法
7.2.4 可見性
7.3 類間關系
7.3.1 關聯
7.3.2 泛化
7.3.3 依賴
7.3.4 其他關系
7.4 抽象類
7.5 類圖圖符
7.6 類圖理解
7.7 類圖應用
7.7.1 類圖的層次
7.7.2 需求描述
7.3 類的提取
7.7.4 類圖設計
7.8 對象圖概述
7.9 對象圖應用
7.10 小結
7.11 習題
第8章 包
8.1 概述
8.2 包圖圖符
8.3 包圖理解
8.3.1 包中元素
8.3.2 包的可見性
8.3.3 包間關系
8.4 包圖應用
8.5 包的設計原則
8.5.1 重用發布等價原則
8.5.2 無環依賴原則
8.5.3 穩定抽象等價原則
8.5.4 穩定依賴原則
8.5.5 共同封閉原則
8.5.6 全部重用原則
8.6 小結
8.7 習題
第9章 狀態圖和活動圖
9.1 狀態圖概述
9.1.1 狀態機
9.1.2 狀態圖概述
9.2 狀態圖元素
9.2.1 起點和終點
9.2.2 狀態
9.2.3 事件
9.2.4 轉換
9.2.5 復合狀態和子狀態
9.3 狀態圖圖符
9.4 狀態圖應用
9.4.1 狀態分析
9.4.2 狀態圖描述
9.5 活動圖概述
9.6 活動圖元素
9.6.1 起點和終點
9.6.2 活動
9.6.3 轉移
9.6.4 接收信號和發送信號
9.6.5 決策點和匯合點
9.6.6 分岔和匯合
9.6.7 泳道
9.7 活動圖圖符
9.8 活動圖應用
9.8.1 過程分析
9.8.2 活動連接
9.8.3 活動圖描述
9.9 小結
9.10 習題
第10章 構件圖
10.1 構件圖概述
10.2 構件圖元素
10.2.1 構件
10.2.2 接口
10.2.3 依賴關系
10.3 構件圖圖符
10.4 構件圖理解
10.5 構件圖應用
10.6 小結
10.7 習題
第11章 部署圖
11.1 部署圖概述
11.2 部署圖元素
11.2.1 節點
11.2.2 關聯關系
11.3 部署圖圖符
11.4 部署圖理解
11.5 部署圖應用
11.6 小結
11.7 習題
第12章 面向對象實現技術
12.1 面向對象的程序設計語言
12.2 類和接口的設計
12.2.1 類的設計
12.2.2 接口的設計
12.3 類的實現
12.3.1 方法的實現
12.3.2 代碼設計
12.3.3 類的包裝
12.4 小結
12.5 習題
第13章 UML項目實訓
13.1 項目啟動
13.1.1 建立項目組
13.1.2 制定開發計劃
13.2 項目需求分析
13.2.1 需求獲取
13.2.2 需求描述
13.2.3 軟件界面描述
13.2.4 游戲規則定義
13.2.5 游戲說明
13.3 使用UML進行系統設計
13.3.1 系統備選對象
13.3.2 系統對象分析
13.3.3 系統類圖設計
13.4 使用UML進行類設計
13.4.1 添加系統類
13.4.2 類圖設計
13.4.3 添加屬性
13.4.4 添加方法
13.4.5 類圖設計
13.5 UML設計模型到代碼實現轉換
13.6 UML在測試階段的應用
13.7 項目總結
13.8 小結
13.9 習題
1.1.2面向對象方法學的基本特征 面向對象程序設計的基本特征包括了封裝、繼承和多態,對象之間是通過消息相互作用的。下面對這些特征進行介紹。
1.抽象
抽象是解決實際問題經常采用的策略,也是人類認識世界的本能方式。.所謂抽象是指從許多事物中,舍棄個別的、非本質的屬性,抽取出共同的、本質的屬性的過程,它是形成概念的必要手段。
交通圖就是應用抽象的一個很好范例。在人們駕車外出旅行時,需要一張交通路線圖。在這張圖上,有道路、河流、山脈、旅游景區、快餐店、加油站等各種標志,它們都是對實際景觀抽象的結果。這些標志只能說明某個地理位置有一條道路、一條河流、一座加油站等,而并沒有反映出某一座特定的加油站的特征。實際上,每一個加油站在其建筑、占用面積、人員管理等諸多方面都有所不同,但所有這些加油站都是用來為汽車加油的,這是所有加油站的共同特征。對于所有的出行人來說只要知道有一個能夠加油的地方就可以了,并不需要知道這個加油站的人員、規模等信息。
數據抽象是一種更高級別的抽象方法。它將現實世界中存在的事物作為抽象單元,其抽象內容既包括事物的屬性特征,也包括行為特征。數據抽象是面向對象程序設計所采用的核心方法,通過數據抽象得到現實世界的一個一個的事物,這些事物就是一個一個的對象。
例如,現實世界中一個學校有許多學生,在抽象過程中每個學生可以用學號、姓名、性別、年齡、家庭住址等信息進行描述;同時每個學生還可以有注冊學籍、選修課程等行為。通過這些從每個學生身上抽象出的信息和行為,可以任意描述出該學校每一個現實世界中的學生。
2.封裝
封裝是指將現實世界中某個事物的屬性與行為聚集在一個邏輯單元內部的機制。封裝指將對象屬性和操作結合在一起,構成一個獨立的對象。它的內部信息是隱藏的,不允許外界直接存取對象的屬性,而只能通過指定的接口與對象聯系。
實際上,封裝并不是新的概念,在日常生活中,處處可以看到封裝機制的應用。例如,一臺日常的電視機由許多電器元件組成,每一個電器元件都有一定的性能指標,完成一定的功能。但是在使用電視機時,用戶不需要了解這些電器元件的功能,只需要操作電視機前面面板上提供的按鈕來實現換臺、調節音量等功能。這就是封裝,用戶只需要操作電視機提供的按鈕,而不需要了解內部每個電器元件的工作原理與工作過程。