面向對象的需求分析

面向對象的需求分析基於面向對象的思想,以用例模型爲基礎。開發人員在獲取需求的基礎上,建立目標系統的用例模型。所謂用例是指系統中的一個功能單元,可以描述爲操作者與系統之間的一次交互。用例常被用來收集用戶的需求。

首先要找到系統的使用者,即用例的操作者。操作者是在系統之外,透過系統邊界與系統進行有意義交互的任何事物。"在系統之外"是指操作者本身並不是系統的組成部分,而是與系統進行交互的外界事物。這種交互應該是"有意義"的交互,即操作者向系統發出請求後,系統要給出相應的迴應。而且,操作者並不限於人,也可以是時間、溫度和其他系統等。比如,目標系統需要每隔一段時間就進行一次系統更新,那麼時間就是操作者。

可以把操作者執行的每一個系統功能都看作一個用例。可以說,用例描述了系統的功能,涉及系統爲了實現一個功能目標而關聯的操作者、對象和行爲。識別用例時,要注意用例是由系統執行的,並且用例的結果是操作者可以觀測到的。用例是站在用戶的角度對系統進行的描述,所以描述用例要儘量使用業務語言而不是技術語言。關於用例模型的詳細創建方法,本書的實踐部分會進行介紹。圖2-13所示爲某圖書館信息管理系統的用例圖。

 
(點擊查看大圖)圖2-13 圖書館信息管理系統的用例圖

確定了系統的所有用例之後,就可以開始識別目標系統中的對象和類了。把具有相似屬性和操作的對象定義爲一個類。屬性定義對象的靜態特徵,一個對象往往包含很多屬性。比如,讀者的屬性可能有姓名、年齡、年級、性別、學號、身份證號、籍貫、民族和血型等。目標系統不可能關注對象的所有屬性,而只是考慮與業務相關的屬性。比如,在"圖書館信息管理"系統中,可能就不會考慮讀者的民族和血型等屬性。操作定義了對象的行爲,並以某種方式修改對象的屬性值。

目標系統的類可以劃分爲邊界類、控制類和實體類,如圖2-14所示。

 
圖2-14 邊界類、控制類和實體類的圖符

邊界類代表了系統及其操作者的邊界,描述操作者與系統之間的交互。它更加關注系統的職責,而不是實現職責的具體細節。通常,界面控制類、系統和設備接口類都屬於邊界類。

控制類代表了系統的邏輯控制,描述一個用例所具有的事件流的控制行爲,實現對用例行爲的封裝。通常,可以爲每個用例定義一個控制類。

實體類描述了系統中必須存儲的信息及相關的行爲,通常對應於現實世界中的事物。

確定了系統的類和對象之後,就可以分析類之間的關係了。對象或類之間的關係有依賴、關聯、聚合、組合、泛化和實現。

依賴關係是"非結構化"的和短暫的關係,表明某個對象會影響另外一個對象的行爲或服務。

關聯關係是"結構化"的關係,描述對象之間的連接。

聚合關係和組合關係是特殊的關聯關係,它們強調整體和部分之間的從屬性,組合是聚合的一種形式,組合關係對應的整體和部分具有很強的歸屬關係和一致的生存期。比如,計算機和顯示器就屬於聚合關係。

泛化關係與類間的繼承類似。

實現關係是針對類與接口的關係。

明確了對象、類和類之間的層次關係之後,需要進一步識別出對象之間的動態交互行爲,即系統響應外部事件或操作的工作過程。一般採用順序圖將用例和分析的對象聯繫在一起,描述用例的行爲是如何在對象之間分佈的。

最後,需要將需求分析的結果用多種模型圖表示出來,並對其進行評審。由於分析的過程是一個循序漸進的過程,合理的分析模型需要多次迭代才能得到。面向對象需求分析的示意圖如圖2-15所示。

 
(點擊查看大圖)圖2-15 面向對象的需求分析
發佈了74 篇原創文章 · 獲贊 17 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章