OOAD筆記

OOAD(Object Oriented Analysis and Design) 面向?qū)ο蟮姆治龊驮O(shè)計

定義OOA階段

--建立針對業(yè)務(wù)問題域的清晰視圖
--列出系統(tǒng)必須要完成的核心人物
--針對問題域建立公共詞匯表
--列出針對此問題域的最佳解決方案
此階段要解決的核心問題是"what to do?"

定義OOD階段

設(shè)計階段主要解決以下問題
--如何解決具體的業(yè)務(wù)問題
--引入系統(tǒng)工作所需的支持元素
--定義系統(tǒng)的實現(xiàn)策略
此階段要解決的核心問題是"How to do?"


抽象(abstract)

  • 忽略掉一個對象或?qū)嶓w的細(xì)節(jié)而只關(guān)注其本質(zhì)特征的過程
  • 簡化特征的過程
  • 幫助用戶和對象交互

封裝(encapsulation)

  • 隱藏數(shù)據(jù)和實現(xiàn)
  • 提供公共方法供用戶調(diào)用功能
  • 對象的兩種視圖
    ---外部視圖:對象能做的工作
    ---內(nèi)部視圖:對象如何完成工作

繼承(inheritance)

  • 通過存在的類型定義新類型的機制
  • 通常在兩個類型之間存在"is a"或"kind of"這樣的關(guān)系
  • 通過繼承可實現(xiàn)代碼重用,另外繼承也是多態(tài)的基礎(chǔ)

多態(tài)(polymorphism)

  • 一個名稱,多種形態(tài)
  • 基于繼承的多態(tài)
  • 調(diào)用方法時根據(jù)所給對象的不同選擇不同的處理方式
  • 如Football--paly():使用腳來完成
  • Basketball--play():使用手來完成

關(guān)聯(lián)(association)

  • 對象之間交互時的一種引用方式
  • 當(dāng)一個對象通過對另一個對象的引用去使用另一個對象的服務(wù)或操作時,兩個對象之間便產(chǎn)生了關(guān)聯(lián)
  • 如person使用computer,person與computer之間就存在了關(guān)聯(lián)關(guān)系

聚合(aggregation)

  • 關(guān)聯(lián)關(guān)系的一種,一個對象成為另一個對象的組成部分
  • 是一種關(guān)系較強的關(guān)聯(lián)
  • 在兩個對象之間存在"hasa"關(guān)系,一個對象作為另一個對象的屬性存在,在外部對象被生產(chǎn)時,可由客戶端指定與其關(guān)聯(lián)的內(nèi)部對象
  • 如汽車與輪胎,輪胎作為汽車的一個組成部分,它可以和汽車分別生產(chǎn)以后裝配起來使用,但汽車可以換新輪胎,輪胎也可以卸下來給其他汽車使用.

組合(composition)

  • 當(dāng)一個對象包含另一個對象時,外部對象負(fù)責(zé)管理內(nèi)部對象的生命周期的情況
  • 關(guān)聯(lián)關(guān)系中最為強烈的一種
  • 內(nèi)部對象的創(chuàng)建由外部對象自己控制
  • 外部對象不存在時,內(nèi)部對象也不能存在
  • 如電視機與顯示器

內(nèi)聚和耦合(cohesion & conpling)

內(nèi)聚:度量一個類獨立完成某項工作的能力
耦合:度量系統(tǒng)內(nèi)或系統(tǒng)之間依賴關(guān)系的復(fù)雜度
設(shè)計原則:增加內(nèi)聚,減少耦合


域模型

  • 域模型是面向?qū)ο蟮?在面向?qū)ο笮g(shù)語中,域模型也稱之 為設(shè)計模型.域模型由以下內(nèi)容組成:
    ---具有狀態(tài)和行為的域?qū)ο?br> ---域?qū)ο笾g的關(guān)系
    * 關(guān)聯(lián)
    * 依賴
    * 聚集
    * 一般化(泛化)

傳統(tǒng)開發(fā)過程(瀑布模型)

缺點:無法適應(yīng)變化,"軟件危機",真實開發(fā)中,客戶會經(jīng)常修改需求,瀑布模型并不能解決這個問題

OOAD的開發(fā)過程

  • 將大項目分解為一些子項目
  • 使用uml工具
  • 統(tǒng)一軟件開發(fā)過程是一個迭代遞增的開發(fā)過程

迭代,遞增的項目生命周期

  • 項目是迭代,遞增的
  • 迭代是指生命周期中的一個步驟
  • 迭代導(dǎo)致"遞增"或者是整個項目的增長
  • 大項目分解為子項目
  • 在每一個迭代的階段,應(yīng)該做以下工作
    ---選擇并分析相關(guān)用例
    ---根據(jù)所選架構(gòu)進(jìn)行設(shè)計
    ---在組件層次實現(xiàn)設(shè)計
    ---在驗證組件滿足用例的需求
  • 當(dāng)一次迭代滿足目標(biāo)后,開發(fā)進(jìn)入下一個迭代周期

迭代,遞增生命周期的主要階段

inceotion-start up
elaboration-refine
construction-implement
teansition-promotion
  • 每一個周期包含一次或多次迭代
  • 一個階段的結(jié)束稱之為"里程碑"

細(xì)化階段

本階段的增量集中于
---高層的分析與設(shè)計
---建立項目的基礎(chǔ)框架
---監(jiān)督主要的風(fēng)險因素
---制定達(dá)成項目目標(biāo)的創(chuàng)建計劃


移交階段

本階段的增量集中于
---向用戶發(fā)布產(chǎn)品
---beta測試
---執(zhí)行性能調(diào)優(yōu),用戶培訓(xùn)和接收


每一個階段所含工作流

每一次增量都由5部分工作流組成
---需求與初始分析
---分析
---設(shè)計
---實現(xiàn)
---測試
---每一次迭代執(zhí)行工作流的深度不同
---早期的迭代在深度上覆蓋初始工作流,后期迭代在深度上覆蓋
后期工作流
---80/20原則


迭代,遞增生命周期的優(yōu)勢

  • 降低成本
  • 便于更好地維護項目進(jìn)度
  • 便于團隊的協(xié)作開發(fā)
  • 便于適應(yīng)用戶需求的動態(tài)變化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子卷员,更是在濱河造成了極大的恐慌莽使,老刑警劉巖磁椒,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件路翻,死亡現(xiàn)場離奇詭異,居然都是意外死亡首启,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門驻龟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來温眉,“玉大人,你說我怎么就攤上這事翁狐±嘁纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵露懒,是天一觀的道長闯冷。 經(jīng)常有香客問我,道長懈词,這世上最難降的妖魔是什么窃躲? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮钦睡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘躁倒。我一直安慰自己荞怒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布秧秉。 她就那樣靜靜地躺著褐桌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪象迎。 梳的紋絲不亂的頭發(fā)上荧嵌,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音砾淌,去河邊找鬼啦撮。 笑死,一個胖子當(dāng)著我的面吹牛汪厨,可吹牛的內(nèi)容都是我干的赃春。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼劫乱,長吁一口氣:“原來是場噩夢啊……” “哼织中!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衷戈,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狭吼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后殖妇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刁笙,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了采盒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旧乞。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖磅氨,靈堂內(nèi)的尸體忽然破棺而出尺栖,到底是詐尸還是另有隱情,我是刑警寧澤烦租,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布延赌,位于F島的核電站,受9級特大地震影響叉橱,放射性物質(zhì)發(fā)生泄漏挫以。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一窃祝、第九天 我趴在偏房一處隱蔽的房頂上張望掐松。 院中可真熱鬧,春花似錦粪小、人聲如沸大磺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杠愧。三九已至,卻和暖如春逞壁,著一層夾襖步出監(jiān)牢的瞬間流济,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工腌闯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绳瘟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓姿骏,卻偏偏與公主長得像稽荧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子工腋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容