軟體工程小記——面向物件分析
第八章 面向物件分析
1.傳統軟體工程方法對應的軟體過程模型(或者軟體生命週期模型)通常是瀑布模型,劃分為以下階段:
a.問題定義;
b.需求分析;
c.可行性研究;
d.概要設計;
e.詳細設計;
f.編碼;
h.測試;
i.維護
2.目前通常將通用的傳統軟體工程方法劃分為以下階段:
a.需求分析;
b.概要設計;
c.詳細設計;
d.程式設計;
e.測試;
f.維護;
3.目前較新的文獻將軟體工程方法劃分為以下階段:
a.系統工程;
b.分析;
c.設計;
d.測試;
e.維護;
4.面向物件軟體工程方法對應的軟體過程模型分為以下階段:
a.面向物件的分析OOA;
b.面向物件的設計OOD;
c.面向物件的程式設計OOP;
d.面向物件的測試OOT;
e.面向物件的軟體維護OOSM;
5.面向物件的基本概念
5.1 物件
a.世界上所有的事物都可以稱為物件。
b.物件的兩大要素:屬性和操作(方法)。
屬性是靜態特徵的描述,操作是動態特徵的描述。物件同時具備靜態特徵和動態特徵。
c.物件的特點:
以資料為中心;
物件是主動的;
實現資料封裝;
模組獨立性好;
d.物件的標識是物件名。
5.2 類
a.類是一個抽象的概念。根據抽象的原則對客觀事物進行歸納和劃分,並且只關注與當前目標相關的特徵,
從而就把具有相同特徵的事物歸為了一個類。
c.類是具有相同屬性和相同操作的物件的集合。
5.3 封裝
a.封裝,是指按照資訊遮蔽的原則,把物件的屬性和操作結合在一起,構成一個獨立的物件。
c.外部物件不能直接操作物件的屬性,只能使用物件提供的服務。
d.封裝的作用,在於保護了類的具體實現,隱藏了使用者無需關心的細節,同時對使用者體現出來相同的介面(即操作方法),
從而提高了可複用性。
5.4 繼承
a.繼承表達了物件的一般與特殊的關係。特殊類的物件具有一般類的全部屬性和服務。
c.繼承具有傳遞性。(即父類、子類、孫類等。。。)
5.5 訊息
a.定義:訊息指的是向某個物件發出的服務請求。
b.物件提供的服務規定的訊息格式稱為訊息協議。
c.訊息包括:
被請求的物件標識、被請求的服務標識、輸入資訊、應答資訊。
5.6.結構與連線
a.部分與整體的關係
b.一般與特殊的關係
c.例項連線的關係
d.訊息連線的關係
5.7 多型性
a.多型性指的是一般類中定義的屬性和服務,在特殊類中不改變其名字,但通過各自不同的實現後,可以具有不同的資料型別
或具有不同的行為。
b.靜態分派:方法的過載,即同名不同參;
c.動態分派:方法的重寫;
6.統一建模語言UML
6.1 UML的層次
元——元模型:定義描述元模型的語言;
元模型:描述模型的語言;
模型:對現實世界的抽象,用來描述資訊領域;
使用者物件:一個特定的資訊領域物件;
7.面向物件分析
7.1 需求陳述
a.面向物件分析就是抽取和整理使用者需求並建立問題域精確模型的過程。
b.面向物件分析從分析陳述使用者需求的檔案開始。
7.2 建立物件模型
a.建立物件模型的首要工作,就是建立問題域的物件模型;
b.建立物件模型:
確定類和物件:
確定關聯:
進一步完善:
確定屬性:
識別繼承關係:
自底向上:抽象出現有類的共同性質泛華出父類,即歸納思維的過程;
自頂向下:把現有類細化成更具體的子類,即演繹思維的過程;
7.3 建立動態模型
a.在開發互動式系統時,動態模型非常重要。
b.建立動態模型的步驟:
編寫典型互動行為的指令碼:
從指令碼中提取出事件:
排列事件發生的次序:
比較各個物件的狀態圖:
7.4 建立功能模型
a.功能模型的主要內容:
資料之間的依賴關係:
資料處理能力;
主要工具借用面向過程軟體設計方法的資料流圖和資料字典;
功能處理可以使用IPO圖、偽碼等多種方式進一步描述;
b.功能模型建立的主要步驟:
畫出基本相同模型圖:
畫出功能級資料流圖;
描述處理框功能:
7.5 定義服務
需要顯式畫出服務:
a.從事件匯出的事件;
b.與資料流圖中處理框對應的操作;
c.利用繼承減少冗餘操作;