《物件導向軟體工程》筆記(二)
第五章 用類進行建模
ocsf物件客戶機-伺服器框架
統一建模語言unified modelling language
omg物件管理組織object management group
1、uml有多種型別的圖,包括:
(1)類圖:描述類及類之間的關係;
(2)互動圖:(包括兩種圖:順序圖和協作圖)通過描述物件之間如何互動來展示系統行為;
(3)狀態圖和活**:展示了系統內部是如何運作的;
(4)構件和部署圖:展示如何重邏輯上和物理上安排系統的不同構件。
uml的特徵:
(1)具有詳細的語義,描述各種符號的含義;
(2)具有擴充套件機制,允許軟體設計人員表示非uml核心部分的概念;
(3)它具有相關的文字語言,稱為物件約束語言(object constraint language,ocl),用來說明圖中元素的各種情況。
uml的目標是為軟體開發提供支援。
有幾種物件導向的方法,其中一些使用uml表示模型。rational統一開發過程(rational unified process,rup)就是這些方法的乙個例子。
uml是一種建模語言,用來建立軟體系統視覺化模型。在軟體開發中,模型是至關重要的,它們用來描述和驗證軟體系統。
(1)模型應該使用標準符號;
(2)模型應該盡可能被客戶和使用者理解;
(3)模型應該讓軟體工程師能夠洞察整個系統;
(4)模型應該提供抽象。
模型既可以用來幫助建立設計,也可以用來分析和評審這些設計。
2、uml類圖的要素
類圖描述了軟體系統中的資料。
在類圖中顯示的主要符號有:
(1)類class:表示資料型別本身;
(2)關聯association:表示類之間的鏈結;
(3)屬性attribute:是類及其例項中的簡單資料;
(4)操作operation:表示類及其例項所執行的功能;
(5)泛化generalization:把類組織成繼承層次結構。
3、例項圖(instance diagram):給出了存在於程式執行過程中某個特殊點的物件與鏈結
的配置示例。
類圖的高階特徵:
(1)聚合(aggregation):是表示」部分-整體「關係的特殊關聯。
(2)介面(inte***ce):描述了一組物件中的部分可見行為。
(3)約束、注釋和描述性文字
(4)物件約束語言基礎
ocl是一種規格說明語言,而非程式語言。
ocl宣告僅僅是指定系統中的必須為true的邏輯事實。
ocl本身是不能編譯和執行的。
ocl語句也可以用自動**生成。
類圖中的ocl語句可以指定屬性值和關聯。它們還可以宣告操作的前置條件和後置條件。
ocl語句的組成元素:
(1)對角色名稱、關聯名稱、屬性和操作結果的引用;
(2)邏輯值真與假;
(3)邏輯操作符;
(4)字串;
(5)整數和實數;
(6)數**算。
第六章 使用設計模式
(1)有助於保證類圖中關係分離的模式:抽象-發生(abstraction-occurrence)模式、觀察者(observer)模式、玩家-角色(player-role)模式;
(2)用來建立例項層次的模式:通用層次(general-hierarch)模式
(3)委託(delegation)模式;
(4)可以使用委託訪問乙個或更多其他類的功能的模式:介面卡(adapter)模式、外觀(facade)模式和**(proxy)模式;
(5)有助於保護其它物件不會受到預料之外訪問的模式:恆定(immutable)模式和唯讀介面(read-only inte***ce)模式。
1、模式簡介
模式是在特定上下文中遇到的一般性問題的可重用解決方案的概要。
設計模式design pattern就是用在建模或設計中的模式。
好的模式應該盡可能通用,包含那些已經被證明能夠有效解決指定上下文中問題的解決方案。
模式必須用易於理解的方式來描述。
每個模式都應該有乙個名字,還應該具有如下資訊:
(1)上下文context:模式應用的一般環境;
(2)問題problem:解釋要克服主要困難的一兩句話;
(3)約束force:解決問題時要考慮的關係或影響;
(4)解決方案solution:建議使用的解決問題的方法;
(5)反模式antipattern:在此上下文中很差或根本不起作用的模式;
(6)相關模式related pattern:(可選)與本模式相似的解決方案;
(7)參考reference:對開發了或啟發該模式的人的致謝。
物件導向的軟體工程
物件導向的軟體工程是當前最流行的軟體工程方法,但是,想要從根本上搞懂理解物件導向的工程方法很是不容易,所以,暫時不要執著於深究物件導向的原理,或者從頭到腳的去觀察他。選擇從工程中去學習物件導向的方法,從實踐中去獲取對物件導向工程方法的理解。uml是物件導向工程方法相關的設計工具,學習使用uml工具是...
軟體工程 物件導向技術
物件導向的思想已經設計到軟體開發的各個方面,一切事物皆物件,所以物件是無處不在的,通過物件導向的方式,將現實生活的事物抽象成物件,有利於對複雜的系統進行分析,設計與程式設計。能有效提高程式設計的效率。定義 物件導向 物件 類 繼承 通訊 如果乙個軟體系統使用這斯個概念設計和實現的,則是物件導向的,物...
物件導向軟體工程 第二章
首先,實際軟體開發中有很多變數,開發者會犯錯,環境也會改變,客戶也可能犯錯,因此就有各種各樣的模型用以減小變數帶來的損失。1.首先是進化樹模型,它等價與增量 迭代模型,可以理解為最終結果是由不斷新增元件所組成的 增量 而每次新增元件的過程中需要不斷優化,更新元件 迭代 每個增量與迭代都擁有屬於自己的...