關鍵字:oo 面向對象分析屬于軟件開發過程中的問題定義階段,其目標是清晰、精確地定義問題領域。傳統的系統分析產生一組面向過程的文檔,定義目標系統的功能;面向對象分析則產生一種描述系統功能和問題領域的基本特征的綜合文檔。
原則
面向對象分析的主要原則如下。
1.抽象
從許多事物中舍棄個別的、非本質的特征,抽取共同的、本質性的特征,就叫做抽象。抽象是形成概念的必須手段。
抽象原則有兩方面的意義:第一,盡管問題域中的事物是很復雜的,但是分析員并不需要了解和描述它們的一切,只需要分析研究其中與系統目標有關的事物及其本質性特征。第二,通過舍棄個體事物在細節上的差異,抽取其共同特征而得到一批事物的抽象概念。
抽象是面向對象方法中使用最為廣泛的原則。抽象原則包括過程抽象和數據抽象兩個方面。過程抽象是指,任何一個完成確定功能的操作序列,其使用者都可以把它看做一個單一的實體,盡管實際上它可能是由一系列更低級的操作完成的。數據抽象是指根據施加于數據之上的操作來定義數據類型,并限定數據的值只能由這些操作來修改和觀察。數據抽象是面向對象分析的核心原則。它強調把數據(屬性)和操作(服務)結合為一個不可分的系統單位(即對象),對象的外部只需要知道它做什么,而不必知道它如何做。
2.封裝
封裝就是把對象的屬性和服務結合為一個不可分的系統單位,并盡可能隱蔽對象的內部細節。
3.繼承
特殊類的對象擁有的其一般類的全部屬性與服務,稱作特殊類對一般類的繼承。
在面向對象分析中運用繼承原則,就是在每個由一般類和特殊類形成的一般—特殊結構中,把一般類的對象實例和所有特殊類的對象實例都共同具有的屬性和服務,一次性地在一般類中進行顯式定義。在特殊類中不再重復地定義一般類中已定義的東西,但是在語義上,特殊類卻自動地、隱含地擁有它的一般類(以及所有更上層的一般類)中定義的全部屬性和服務。繼承原則的好處是:使系統模型比較簡練也比較清晰。
4.分類
就是把具有相同屬性和服務的對象劃分為一類,用類作為這些對象的抽象描述。分類原則實際上是抽象原則運用于對象描述時的一種表現形式。
5.聚合
聚合的原則是:把一個復雜的事物看成若干比較簡單的事物的組裝體,從而簡化對復雜事物的描述。
6.關聯
關聯是人類思考問題時經常運用的思想方法:通過一個事物聯想到另外的事物。能使人發生聯想的原因是事物之間確實存在著某些聯系。
7.消息通信
這一原則要求對象之間只能通過消息進行通信,而不允許在對象之外直接地存取對象內部的屬性。通過消息進行通信是由于封裝原則而引起的。在OOA中要求用消息連接表示出對象之間的動態聯系。
8.粒度控制
一般來講,人在面對一個復雜的問題域時,不可能在同一時刻既能縱觀全局,又能洞察秋毫。因此需要控制自己的視野:考慮全局時,注意其大的組成部分,暫時不詳察每一部分的具體的細節;考慮某部分的細節時則暫時撇開其余的部分。這就是粒度控制原則。
原文轉自:http://www.anti-gravitydesign.com