關鍵字:oo 9.行為分析
現實世界中事物的行為是復雜的。由大量的事物所構成的問題域中各種行為往往相互依賴、相互交織。
階段
面向對象分析過程可分為問題領域分析和應用分析兩個階段。
問題領域分析是軟件開發的基本組成部分,目的是使開發人員了解問題領域的結構,建立大致的系統實現環境。問題領域分析給出一組抽象概念(從高層來表示問題領域知識,常常超出當前應用的范圍)作為特定系統需求開發的參考。問題領域分析實際上是一種學習過程。軟件開發人員在這個階段應該盡可能地理解當前系統中與應用有關的知識,應該放開思維,放寬考慮的范圍,盡可能地標識與應用有關的概念。問題領域分析的邊界可能很模糊。有了廣泛的問題領域知識,涉及到具體的應用時,就可以更快地進入狀態,掌握應用的核心知識。而且,在用戶改變對目標系統的需求時,廣泛的分析可以幫助我們預測出目標系統在哪些方面會發生哪些變化。通常進行小組分析,小組成員可以包括領域專家和分析員等。在分析過程中,應該標識出系統的基本概念(對象、類、方法、關系等)、識別問題領域的特征,并把這些概念集成到問題領域的模型中。問題領域的模型必須包含概念之間的關系,以及每個概念的全部信息。標識出來的相關概念應該根據信息內容來有機地融合到問題領域的綜合視圖中。
應用分析是依據在問題領域分析時建立起來的問題領域模型來進行的。應用分析時,把問題領域模型用于當前特定的應用之中。首先,通過收集到的用戶信息來對問題領域進行取舍,把用戶需求作為限制條件來使用,以縮減問題領域的信息量。因此,問題領域分析的視野大小直接影響到應用分析保留的信息量。一般來說,問題領域分析階段產生的模型并不需要用程序設計語言來表示,而應用分析階段產生的影響條件則需要用某種程序設計語言來表示。模型識別的要求可以針對一個應用,也可以針對多個應用。通常我們著重考慮兩個方面,即應用視圖和類視圖。在類視圖中,必須對每個類的屬性和操作進行細化,并表示出類之間的相互作用關系。
目標
Coad和Yourdon 認為,面向對象分析主要應該考慮與特定應用有關的對象,以及對象之間在結構和相互作用上的關系。在面向對象分析中,需要建立分析模型來描述系統的功能。
面向對象分析需要完成如下兩個任務:
— 形式化地說明所面對的應用問題,最終成為軟件系統基本構成的對象,以及系統所必須遵從的、由應用環境所決定的規則和約束條件。
— 明確地規定構成系統的對象如何協同工作和完成指定的功能。
通過面向對象分析所建立的系統模型是以概念為中心的,因此稱為概念模型。概念模型由一組相關的類組成。面向對象分析可以通過自頂向下地逐層分解來建立系統模型,也可以自底向上地從已經定義的類出發,逐步構造新的類。概念模型的構造和評審由如下5個層次構成:
— 類和對象層
— 屬性層
— 服務層
— 結構層
— 主題層
這5個層次不是構成軟件系統的層次,而是分析過程中的層次。也可以說是問題的不同側面。每個層次的工作都為系統的規格說明增加了一個組成部分。當5個層次的工作全部完成時,面向對象分析的任務也就完成了。
在實際操作中,面向對象分析的目標是得出問題領域的功能模型、對象模型和動態模型,并用相應的UML圖將它們表示出來。
原文轉自:http://www.anti-gravitydesign.com