物件導向方法綜述

2021-08-21 22:43:38 字數 4310 閱讀 7506

陳小群八十年代末以來,隨著物件導向技術成為研究的熱點出現了幾十種支援軟體開發的物件導向方法。其中,booch, coad/yourdon, omt, 和jacobson的方法在物件導向軟體開發界得到了廣泛的認可。特別值得一提的是統一的建模語言uml(unified modeling language),該方法結合了booch, omt, 和jacobson方法的優點,統一了符號體系,並從其它的方法和工程實踐中吸收了許多經過實際檢驗的概念和技術。uml方法自去年提出後到現在已發展到1.1版,並已提交給物件管理集團omg,申請成為物件導向方法的標準。

物件導向方法都支援三種基本的活動:識別物件和類,描述物件和類之間的關係,以及通過描述每個類的功能定義物件的行為。   為了發現物件和類,開發人員要在系統需求和系統分析的文件中查詢名詞和名詞短語,包括可感知的事物(汽車、壓力、感測器);角色(母親、教師、政治家);事件(著陸、中斷、請求);互相作用(借貸、開會、交叉);人員;場所;組織;裝置;和地點。通過瀏覽使用系統的指令碼發現重要的物件和其責任,是物件導向分析和設計過程的初期重要的技術。

當重要的物件被發現後,通過一組互相關聯的模型詳細表示類之間的關係和物件的行為,這些模型從四個不同的側面表示了軟體的體系結構:靜態邏輯、動態邏輯、靜態物理和動態物理。   靜態邏輯模型描述例項化(類成員關係)、關聯、聚集(整體/部分)、和一般化(繼承)等關係。這被稱為物件模型。一般化關係表示屬性和方法的繼承關係。定義物件模型的圖形符號體系通常是從用於資料建模的實體關係圖匯出的。對設計十分重要的約束,如基數(一對

一、一對多、多對多),也在物件模型中表示。

booch方法

動態邏輯模型描述物件之間的互相作用。互相作用通過一組協同的物件,物件之間訊息的有序的序列,參與物件的可見性定義,來定義系統執行時的行為。booch方法中的物件互動作用圖被用來描述重要的互相作用,顯示參與的物件和物件之間按時間排序的訊息。可見性圖用來描述互相作用中物件的可見性。物件的可見性定義了乙個物件如何處於向它傳送訊息的方法的作用域之中。例如,它可以是方法的引數、區域性變數、新的物件、或當前執行方法的物件的部分。   靜態物理模型通過模組描述**的布局。動態物理模型描述軟體的程序和執行緒體系結構。

booch方法的過程包括以下步驟:

. 在給定的抽象層次上識別類和物件

. 識別這些物件和類的語義

. 識別這些類和物件之間的關係

. 實現類和物件

這四種活動不僅僅是乙個簡單的步驟序列,而是對系統的邏輯和物理檢視不斷細化的迭代和漸增的開發過程。

類和物件的識別包括找出問題空間中關鍵的抽象和產生動態行為的重要機制。開發人員可以通過研究問題域的術語發現關鍵的抽象。語義的識別主要是建立前一階段識別出的類和物件的含義。開發人員確定類的行為(即方法)和類及物件之間的互相作用(即行為的規範描述)。該階段利用狀態轉移圖描述物件的狀態的模型,利用時態圖(系統中的時態約束)和物件圖(物件之間的互相作用)描述行為模型。

在關係識別階段描述靜態和動態關係模型。這些關係包括使用、例項化、繼承、關聯和聚集等。類和物件之間的可見性也在此時確定。

在類和物件的實現階段要考慮如何用選定的程式語言實現,如何將類和物件組織成模組。

在物件導向的設計方法中,booch強調基於類和物件的系統邏輯檢視與基於模組和程序的系統物理檢視之間的區別。他還區別了系統的靜態和動態模型。然而,他的方法偏向於系統的靜態描述,對動態描述支援較少。

booch方法的力量在於其豐富的符號體系,包括:

. 類圖(類結構-靜態檢視)

. 物件圖(物件結構-靜態檢視)

. 狀態轉移圖(類結構-動態檢視)

. 時態圖(物件結構-動態檢視)

. 模組圖(模組體系結構)

. 程序圖(程序體系結構)

用於類和物件建模的符號體系使用注釋和不同的圖符(如不同的箭頭)表達詳細的資訊。booch建議在設計的初期可以用符號體系的乙個子集,隨後不斷新增細節。對每乙個符號體系還有乙個文字的形式,由每乙個主要結構的描述模板組成。符號體系由大量的圖符定義,但是,其語法和語義並沒有嚴格地定義。

rumbaugh的omt方法

rumbaugh的omt方法從三個視角描述系統,相應地提供了三種模型,物件模型,動態模型和功能模型。物件模型描述物件的靜態結構和它們之間的關係。主要的概念包括:

. 類. 屬性

. 操作

. 繼承

. 關聯(即關係)

. 聚集

動態模型描述系統那些隨時間變化的方面,其主要概念有:

. 狀態

. 子狀態和超狀態

. 事件

. 行為

. 活動

功能模型描述系統內部資料值的轉換,其主要概念有:

. 加工

. 資料儲存

. 資料流

. 控制流

. 角色(源/潭)

該方法將開發過程分為四個階段:

1 分析

基於問題和使用者需求的描述,建立現實世界的模型。分析階段的產物有:

. 問題描述

. 物件模型=物件圖+資料詞典

. 動態模型=狀態圖+全域性事件流圖

. 功能模型=資料流圖+約束

2 系統設計

結合問題域的知識和目標系統的體系結構(求解域),將目標系統分解為子系統。

3 物件設計

基於分析模型和求解域中的體系結構等新增的實現細節,完成系統設計。主要產物包括:

. 細化的物件模型

. 細化的動態模型

. 細化的功能模型

4 實現

將設計轉換為特定的程式語言或硬體,同時保持可追蹤性、靈活性和可擴充套件性。

coad/yourdon方法

coad/yourdon方法嚴格區分了物件導向分析ooa和物件導向設計ood。該方法利用五個層次和活動定義和記錄系統行為,輸入和輸出。這五個層次的活動包括:

. 發現類及物件。描述如何發現類及物件。從應用領域開始識別類及物件,形成整個應用的基礎,然後,據此分析系統的責任。

. 識別結構。該階段分為兩個步驟。第一,識別一般-特殊結構,該結構捕獲了識別出的類的層次結構;第二,識別整體-部分結構,該結構用來表示乙個物件如何成為另乙個物件的一部分,以及多個物件如何組裝成更大的物件。

. 定義主題。主題由一組類及物件組成,用於將類及物件模型劃分為更大的單位,便於理解。

. 定義屬性。其中包括定義類的例項(物件)之間的例項連線。

. 定義服務。其中包括定義物件之間的訊息連線。

在物件導向分析階段,經過五個層次的活動後的結果是乙個分成五個層次的問題域模型,包括主題、類及物件、結構、屬性和服務五個層次,由類及物件圖表示。五個層次活動的順序並不重要。

物件導向設計模型需要進一步區分以下四個部分:

.問題域部分(pdc)。物件導向分析的結果直接放入該部分。

.人機互動部分(hic)。這部分的活動包括對使用者分類,描述人機互動的指令碼,設計命令層次結構,設計詳細的互動,生成使用者介面的原型,定義hic類。

.任務管理部分(tmc)這部分的活動包括識別任務(程序)、任務所提供的服務、任務的優先順序、程序是事件驅動還是時鐘驅動、以及任務與其它程序和外界如何通訊。

.資料管理部分(dmc)。這一部分依賴於儲存技術,是檔案系統,還是關聯式資料庫管理系統,還是物件導向資料庫管理系統。

jacobson方法

jacobson方法與上述三種方法有所不同,它涉及到整個軟體生命週期,包括需求分析、設計、實現和測試等四個階段。需求分析和設計密切相關。需求分析階段的活動包括定義潛在的角色(角色指使用系統的人和與系統互相作用的軟、硬體環境),識別問題域中的物件和關係,基於需求規範說明和角色的需要發現use case,詳細描述use case。設計階段包括兩個主要活動,從需求分析模型中發現設計物件,以及針對實現環境調整設計模型。第乙個活動包括從use case的描述發現設計物件,並描述物件的屬性、行為和關聯。在這裡還要把use case的行為分派給物件。

在需求分析階段的識別領域物件和關係的活動中,開發人員識別類、屬性和關係。關係包括繼承、熟悉(關聯)、組成(聚集)和通訊關聯。定義use case的活動和識別設計物件的活動,兩個活動共同完成行為的描述。jacobson方法還將物件區分為語義物件(領域物件)、介面物件(如使用者介面物件)和控制物件(處理介面物件和領域物件之間的控制)。

在該方法中的乙個關鍵概念就是use case。use case是指行為相關的事務(transaction)序列,該序列將由使用者在與系統對話中執行。因此,每乙個use case就是乙個使用系統的方式,當使用者給定乙個輸入,就執行乙個use case的例項並引發執行屬於該use case的乙個事務。基於這種系統檢視,jacobson將use case模型與其它五種系統模型關聯:

. 領域物件模型。use case模型根據領域來表示。

. 分析模型。use case模型通過分析來構造。

. 設計模型。use case模型通過設計來具體化。

. 實現模型。該模型依據具體化的設計來實現use case模型。

. 測試模型。用來測試具體化的use case模型。

物件導向方法與物件導向測試

物件導向 object oriented,oo 方法認為,客觀世界是由各種物件組成的,任何事物都是物件,每乙個物件都有自己的運動規律和內部狀態,都屬於某個物件類,是該物件類的乙個元素。複雜的物件可由相對簡單的各種物件以某種方式而構成,不同物件的組合及相互作用就構成了系統。oo方法是當前的主流開發方法...

物件導向的方法

物件導向是按照貼近生活的認知論和思維方式來研究和模擬客觀世界的方法學。物件導向方法是一種運用物件 類 繼承 封裝 聚合 訊息傳遞 和多型等概念來設計 系統的軟體開發方法。物件導向方法 object oriented oo 以系統物件作為研究物件 為 資訊系統的分析與設計提供了一種全新的方法。彌補了傳...

物件導向 構造方法

又稱構造器,是乙個特殊的方法,它是方法名與類名相同且沒有返回值型別的方法。作用 用來給成員變數初始化定義語法 修飾詞 類名 有參傳參 無參構造器 如果在定義類時,沒有新增構造方法,系統會預設提供乙個公有的無參的構造方法 有參構造器 因為構造器是用來給成員變數初始化的,為了方便,所以形式引數的名稱都與...