ooa物件導向分析
物件導向分析產生三種分析模型
功能模型(即用例模型à作為輸入)
物件模型:對用例模型進行分析,把系統分解成互相協作的分析類,通過類圖/物件圖描述物件/物件的屬性/物件間的關係,是系統的靜態模型
動態模型:描述系統的動態行為,通過時序圖/協作圖描述物件的互動,以揭示物件間如何協作來完成每個具體的用例,單個物件的狀態變化/動態行為可以通過狀態圖來表達
ood物件導向的設計
ood是對ooa的細化
沒有嚴格的界線
ood的結果直接用於編碼
與ooa的輸出一樣,只是更加詳細完善
ooa與ood的區別
ooa偏重於理解問題,描述軟體要做什麼,而ood偏重於理解解決方案,描述軟體要如何做
ooa只考慮理想的設計,不關心技術與實現底層的細節,而ood需要得到更具體詳細更接近於真實的**的設計方案
在設計結果的描述上,ooa偏重於描述物件的行為,ood偏重於描述物件的屬性與方法
ooa只關注功能性需求,ood還需要關注非功能性需求
ooa步驟
從用例中提取實體物件/實體類
新增邊界類
新增控制類
提取類的屬性(一般省略,放到ood中)
提取分析類間的關係
繪製類圖/時序圖
編制術語表(可選)
三種分析類
分析類
實體類(entity class)
邊界類
控制類
實體類
是應用中的核心類
與現實事物相對應的類
用於長期儲存系統中的資訊,以及針對這些資訊的相關處理行為
一般實體類的物件和應用系統本身有相同的生命週期
邊界類
從與那些系統和外界進行互動的物件中歸納和抽象出來的
邊界類是系統內的物件和系統外的參與者的聯絡媒介
外界的訊息只有通過邊界類的物件才能傳送給系統
大多數為使用者介面(表示層)
控制類
管理實體物件與邊界物件之間的互動的仲裁物件
通過控制類協調系統內邊界類與實體類之間的互動
1、提取實體類
用例驅動:從用例模型中找名詞或名詞短語,再進行篩選
候選實體類:使用者/帳戶/系統管理員/聊天伺服器/訊息
使用者在系統中表現為帳戶,因此使用者就不需要了
本專案中系統管理員僅完成啟動/關閉系統的作用,而沒有其他管理任務,也不需要作為乙個實體類
聊天系統:代表整個系統,大多數情況這個實體物件不必存在
聊天訊息:聊天的內容本專案不需要儲存
可以得到實體類: 帳戶類
2.新增邊界類
互動型軟體的邊界類就是使用者介面
邊界類:
註冊介面:註冊類
登陸介面:登陸類
聊天介面:聊天類
3.新增控制類
有人認為每個用例確定乙個控制類,但可能會得到很小的控制類,應該考慮進行恰當的合併
我們專案可以把註冊/登陸/聊天用例合併為乙個控制器類
4、提取屬性
建議放到設計時再提取,因為現在只能對屬性進行與語言無關的描述
5、提取分析類之間的關係
一對一
一對多
多對對
歸納關係
6、繪製類圖(參見demo)
7、繪製時序圖(流程簡單可省略)
8、編制術語表(羅列系統模型中需要澄清的術語)
架構分析
架構分析主要從巨集觀上考慮乙個軟體系統應該如何組織
目的:通過科學的解析,將整個軟體系統劃分為不同的元件,並準確定義出元件和元件之間的介面
最典型的架構模式:分層模式(layer),客戶/伺服器模式,mvc模式等等
獲得架構圖
ood步驟
細化重組類
細化和實現類間關係,明確其可見性
增加屬性,指定屬性的型別與可見性
分配職責,定義執行每個職責的方法
對訊息驅動的系統,明確訊息傳遞方式
利用設計模式進行區域性設計
畫出詳細的類圖與時序圖
1
建立分析模型和設計模型
物件導向分析產生三種分析模型 功能模型 即用例模型 作為輸入 物件模型 對用例模型進行分析,把系統分解成互相協作的分析類,通過類圖 物件圖描述物件 物件的屬性 物件間的關係,是系統的靜態模型 動態模型 描述系統的動態行為,通過時序圖 協作圖描述物件的互動,以揭示物件間如何協作來完成每個具體的用例,單...
建立IT投資效益分析模型
對於 it專案的成功,如果總是以類似 提高效率 等說辭來評價,給人的感覺過於 空泛 和 落套 為了讓 it的投資價值顯現出來,需要一種合理的評估和效益分析方法。事實上,資訊化專案的投資效益分析出現了許多理論 原則和方法,例如 總體擁有 成本tco 經濟增加值eva 總體經濟影響tei 平衡記分卡bs...
統計分析 模型評估和模型選擇
機器學習的目的是使學習到的模型不僅對已知資料而且對未知資料都能有很好的 能力。假設學習到的模型是y f x 訓練誤差是模型y f x 關於訓練資料集的平均損失 re mp f 1 n i 1nl yi,f xi 其中 n 是訓練樣本容量。測試誤差是模型y f x 關於測試資料集的平均損失 et es...