C 物件導向分析

2021-05-28 01:10:32 字數 3782 閱讀 6880

物件導向分析屬於軟體開發過程中的問題定義階段,其目標是清晰、精確地定義問題領域。傳統的系統分析產生一組面向過程的文件,定義目標系統的功能;物件導向分析則產生一種描述系統功能和問題領域的基本特徵的綜合文件。

原則物件導向分析的主要原則如下。

1.抽象

從許多事物中捨棄個別的、非本質的特徵,抽取共同的、本質性的特徵,就叫做抽象。抽象是形成概念的必須手段。

抽象原則有兩方面的意義:第一,儘管問題域中的事物是很複雜的,但是分析員並不需要了解和描述它們的一切,只需要分析研究其中與系統目標有關的事物及其本質性特徵。第二,通過捨棄個體事物在細節上的差異,抽取其共同特徵而得到一批事物的抽象概念。

抽象是物件導向方法中使用最為廣泛的原則。抽象原則包括過程抽象和資料抽象兩個方面。過程抽象是指,任何乙個完成確定功能的操作序列,其使用者都可以把它看做乙個單一的實體,儘管實際上它可能是由一系列更低階的操作完成的。資料抽象是指根據施加於資料之上的操作來定義資料型別,並限定資料的值只能由這些操作來修改和觀察。資料抽象是物件導向分析的核心原則。它強調把資料(屬性)和操作(服務)結合為乙個不可分的系統單位(即物件),物件的外部只需要知道它做什麼,而不必知道它如何做。

2.封裝

封裝就是把物件的屬性和服務結合為乙個不可分的系統單位,並盡可能隱蔽物件的內部細節。

3.繼承

特殊類的物件擁有的其一般類的全部屬性與服務,稱作特殊類對一般類的繼承。

在物件導向分析中運用繼承原則,就是在每個由一般類和特殊類形成的一般—特殊結構中,把一般類的物件例項和所有特殊類的物件例項都共同具有的屬性和服務,一次性地在一般類中進行顯式定義。在特殊類中不再重複地定義一般類中已定義的東西,但是在語義上,特殊類卻自動地、隱含地擁有它的一般類(以及所有更上層的一般類)中定義的全部屬性和服務。繼承原則的好處是:使系統模型比較簡練也比較清晰。

4.分類

就是把具有相同屬性和服務的物件劃分為一類,用類作為這些物件的抽象描述。分類原則實際上是抽象原則運用於物件描述時的一種表現形式。

5.聚合

聚合的原則是:把乙個複雜的事物看成若干比較簡單的事物的組裝體,從而簡化對複雜事物的描述。

6.關聯

關聯是人類思考問題時經常運用的思想方法:通過乙個事物聯想到另外的事物。能使人發生聯想的原因是事物之間確實存在著某些聯絡。

7.訊息通訊

這一原則要求物件之間只能通過訊息進行通訊,而不允許在物件之外直接地訪問物件內部的屬性。通過訊息進行通訊是由於封裝原則而引起的。在ooa中要求用訊息連線表示出物件之間的動態聯絡。

8.粒度控制

一般來講,人在面對乙個複雜的問題域時,不可能在同一時刻既能縱觀全域性,又能洞察秋毫。因此需要控制自己的視野:考慮全域性時,注意其大的組成部分,暫時不詳察每一部分的具體的細節;考慮某部分的細節時則暫時撇開其餘的部分。這就是粒度控制原則。

9.行為分析

現實世界中事物的行為是複雜的。由大量的事物所構成的問題域中各種行為往往相互依賴、相互交織。

階段物件導向分析過程可分為問題領域分析和應用分析兩個階段。

問題領域分析是軟體開發的基本組成部分,目的是使開發人員了解問題領域的結構,建立大致的系統實現環境。問題領域分析給出一組抽象概念(從高層來表示問題領域知識,常常超出當前應用的範圍)作為特定系統需求開發的參考。問題領域分析實際上是一種學習過程。軟體開發人員在這個階段應該盡可能地理解當前系統中與應用有關的知識,應該放開思維,放寬考慮的範圍,盡可能地標識與應用有關的概念。問題領域分析的邊界可能很模糊。有了廣泛的問題領域知識,涉及到具體的應用時,就可以更快地進入狀態,掌握應用的核心知識。而且,在使用者改變對目標系統的需求時,廣泛的分析可以幫助我們**出目標系統在哪些方面會發生哪些變化。通常進行小組分析,小組成員可以包括領域專家和分析員等。在分析過程中,應該標識出系統的基本概念(物件、類、方法、關係等)、識別問題領域的特徵,並把這些概念整合到問題領域的模型中。問題領域的模型必須包含概念之間的關係,以及每個概念的全部資訊。標識出來的相關概念應該根據資訊內容來有機地融合到問題領域的綜合檢視中。

應用分析是依據在問題領域分析時建立起來的問題領域模型來進行的。應用分析時,把問題領域模型用於當前特定的應用之中。首先,通過收集到的使用者資訊來對問題領域進行取捨,把使用者需求作為限制條件來使用,以縮減問題領域的資訊量。因此,問題領域分析的視野大小直接影響到應用分析保留的資訊量。一般來說,問題領域分析階段產生的模型並不需要用程式語言來表示,而應用分析階段產生的影響條件則需要用某種程式語言來表示。模型識別的要求可以針對乙個應用,也可以針對多個應用。通常我們著重考慮兩個方面,即應用檢視和類檢視。在類檢視中,必須對每個類的屬性和操作進行細化,並表示出類之間的相互作用關係。

目標coad和yourdon 認為,物件導向分析主要應該考慮與特定應用有關的物件,以及物件之間在結構和相互作用上的關係。在物件導向分析中,需要建立分析模型來描述系統的功能。

物件導向分析需要完成如下兩個任務:

— 形式化地說明所面對的應用問題,最終成為軟體系統基本構成的物件,以及系統所必須遵從的、由應用環境所決定的規則和約束條件。

— 明確地規定構成系統的物件如何協同工作和完成指定的功能。

通過物件導向分析所建立的系統模型是以概念為中心的,因此稱為概念模型。概念模型由一組相關的類組成。物件導向分析可以通過自頂向下地逐層分解來建立系統模型,也可以自底向上地從已經定義的類出發,逐步構造新的類。概念模型的構造和評審由如下5個層次構成:

— 類和物件層

— 屬性層

— 服務層

— 結構層

— 主題層

這5個層次不是構成軟體系統的層次,而是分析過程中的層次。也可以說是問題的不同側面。每個層次的工作都為系統的規格說明增加了乙個組成部分。當5個層次的工作全部完成時,物件導向分析的任務也就完成了。

在實際操作中,物件導向分析的目標是得出問題領域的功能模型、物件模型和動態模型,並用相應的uml圖將它們表示出來。

步驟物件導向分析通常按照下面的步驟來進行:

(1)標識物件和類。可以從應用領域開始,逐步確定形成整個應用的基礎類和物件。這一步需要分析領域中目標系統的責任,調查系統的環境,從而確定對系統有用的類和物件。

(2)標識結構。典型的結構有兩種,即一般—特殊結構和整體—部分結構。一般—特殊結構表示一般類是基類,特殊類是派生類。比如,汽車是轎車和卡車的基類,這是一種一般—特殊結構。整體部分結構表示聚合,由屬於不同類的成員聚合成為新的類。比如,輪子、車體和汽車底盤都是汽車的一部分,這些不同功能的部件聚合成為汽車這個整體。

(3)標識屬性。物件所儲存的資訊稱為它的屬性。類的屬性描述狀態資訊,在類的某個例項中,屬性的值表示該物件的狀態值。需要找出每個物件在目標系統中所需要的屬性,並將屬性安排在適當的位置,找出例項連線,最後再進行檢查。應該給出每個屬性的名字和描述,並指定該屬性所受的特殊限制(如唯讀、屬性值限定在某個範圍之內等)。

(4)標識服務。物件收到訊息後執行的操作稱為物件提供的服務。它描述了系統需要執行的處理和功能。定義服務的目的是為了定義物件的行為和物件之間的通訊。其具體步驟包括:

— 標識物件狀態

— 標識必要的服務

— 標識訊息連線

— 描述服務

可以用類似於流圖的圖形來表示服務。

(5)標識主題。為了更好地理解包含大量類和物件的概念模型,需要標識主題,即對模型進行劃分,給出模型的整體框架,劃分出層次結構。可以按照如下步驟來標識主題。

— 識別主題

— 對主題進行改進和細化

— 將主題加入到分析模型

主題是乙個與應用相關的概念,而不是人為任意引出來的,主題層的工作有助於理解分析的結果。

優點物件導向分析的主要有點有:

(1)加強了對問題域和系統責任的理解;

(2)改進與分析有關的各類人員之間的交流;

(3)對需求的變化具有較強的適應性;

(4)支援軟體復用;

(5)貫穿軟體生命週期全過程的一致性;

(6)實用性;

(7)有利於使用者參與。

C 物件導向分析

物件導向分析屬於軟體開發過程中的問題定義階段,其目標是清晰 精確地定義問題領域。傳統的系統分析產生一組面向過程的文件,定義目標系統的功能 物件導向分析則產生一種描述系統功能和問題領域的基本特徵的綜合文件。原則物件導向分析的主要原則如下。1.抽象 從許多事物中捨棄個別的 非本質的特徵,抽取共同的 本質...

物件導向分析

物件導向分析 1 物件導向分析,就是抽取和整理使用者需求並建立問題域精確模型的過程。首先,系統分析員對需求文件進行分析 然後是需求建模 最後是需求評審。2 物件導向分析要建立三個主要模型 用例模型 物件模型 和動態模型。建立用例模型 在物件導向方法中為了獲取使用者需求常常用場景和用例描述使用者需求。...

物件導向分析

一 分析方法之功能分解 functional decomposition 原理 將問題或功能分解成多個小問題或小功能,然後逐一解決 缺點 a.導致讓乙個 主 程式負責控制程式,主程式的責任太多 可使用委託delegation解決 同時,引 起另外乙個問題,低內聚weak cohesion 緊耦合ti...