第八章 設(shè)計(jì)概念
1.分析模型到設(shè)計(jì)模型
8.2 設(shè)計(jì)過程
1.可以指導(dǎo)良好設(shè)計(jì)演化的3個(gè)特征:(1)設(shè)計(jì)必須實(shí)現(xiàn)所有包含在需求模型中的明確需求后德,而且必須滿足利益相關(guān)者期望的所有隱含需求农猬。(2)對(duì)于那些生成代碼的人和那些進(jìn)行測試以及隨后維護(hù)軟件的人而言,設(shè)計(jì)必須是可讀的改抡、可理解的指南矢炼。(3)設(shè)計(jì)必須提供軟件的全貌,從實(shí)現(xiàn)的角度說明數(shù)據(jù)域阿纤、功能域和行為域句灌。
2.質(zhì)量屬性:FURPS,功能性欠拾、易用性胰锌、可靠性、性能藐窄、可支持性
8.3 設(shè)計(jì)概念
1.抽象
2.體系結(jié)構(gòu)资昧,指軟件的整體結(jié)構(gòu)和這種結(jié)構(gòu)為系統(tǒng)提供概念完整性的方式。需要給出的:結(jié)構(gòu)特性荆忍、外部功能特性格带、相關(guān)系統(tǒng)族
3.模式,承載了已證實(shí)的解決方案的精髓
4.模塊化
5.信息隱蔽刹枉,給出接口
6.功能獨(dú)立叽唱,高內(nèi)聚性和低耦合性
7.細(xì)化,對(duì)抽象細(xì)節(jié)的詳細(xì)說明
8.重構(gòu)微宝,重構(gòu)之后要檢查冗余棺亭、沒有使用的設(shè)計(jì)元素、低效的或不必要的算法芥吟、拙劣的或不恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)以及其他設(shè)計(jì)不足
面向?qū)ο蟮脑O(shè)計(jì)概念
1.設(shè)計(jì)類:(1)用戶接口類(2)業(yè)務(wù)域類(3)過程類(4)持久類(5)系統(tǒng)類
2.繼承
3.信息message
4.多態(tài)性
8.4 設(shè)計(jì)模型
1.
2.設(shè)計(jì)模型元素
(1)數(shù)據(jù)設(shè)計(jì)元素侦铜,數(shù)據(jù)模型->數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)模型->數(shù)據(jù)庫體系結(jié)構(gòu)
(2)體系結(jié)構(gòu)設(shè)計(jì)元素钟鸵,來自a.應(yīng)用域信息钉稍,b.特定的需求模型元素,c.體系結(jié)構(gòu)風(fēng)格
(3)接口設(shè)計(jì)元素棺耍,重要元素有用戶界面贡未、外部接口和內(nèi)部接口
(4)構(gòu)件元素
(5)部署元素
第九章 體系結(jié)構(gòu)設(shè)計(jì)
1.什么是體系結(jié)構(gòu)?
程序或計(jì)算系統(tǒng)的軟件體系結(jié)構(gòu)是指系統(tǒng)的一個(gè)或者多個(gè)結(jié)構(gòu),它包括軟件構(gòu)件俊卤、構(gòu)件的外部可見屬性以及它們之間的相互關(guān)系嫩挤。
2.體系結(jié)構(gòu)為什么重要?
(1)軟件體系結(jié)構(gòu)的表示有助于對(duì)計(jì)算機(jī)系統(tǒng)開發(fā)感興趣的各方開展交流
(2)體系結(jié)構(gòu)突出了早期的設(shè)計(jì)決策消恍,這些決策對(duì)隨后所有的軟件工程工作有深遠(yuǎn)的影響岂昭,同時(shí)對(duì)系統(tǒng)作為一個(gè)可運(yùn)行實(shí)體的最后成功有重要作用。
(3)體系結(jié)構(gòu)“構(gòu)建了一個(gè)相對(duì)小的狠怨、易于理解的模型约啊,該模型描述了系統(tǒng)如何構(gòu)成以及其構(gòu)件如何一起工作”。
9.3 體系結(jié)構(gòu)風(fēng)格
1.每種風(fēng)格描述一種系統(tǒng)類別佣赖,系統(tǒng)類別有:(1)完成系統(tǒng)需要的某種功能的一組構(gòu)件(2)能使構(gòu)件間實(shí)現(xiàn)“通信恰矩、合作和協(xié)調(diào)”的一組連接件;(3)定義構(gòu)件如何集成為系統(tǒng)的約束(4)語義模型憎蛤,能使設(shè)計(jì)者通過分析系統(tǒng)組成成分的已知屬性來理解系統(tǒng)的整體性質(zhì)外傅。
2.體系結(jié)構(gòu)風(fēng)格的簡單分類:(1)以數(shù)據(jù)為中心的體系結(jié)構(gòu)(2)數(shù)據(jù)流體系結(jié)構(gòu)(3)調(diào)用和返回體系結(jié)構(gòu)(4)面向?qū)ο篌w系結(jié)構(gòu)(5)層次體系結(jié)構(gòu)(6)客戶端/服務(wù)器體系結(jié)構(gòu)(7)分布式對(duì)象DOC
3.體系結(jié)構(gòu)模式:(1)并發(fā)性,應(yīng)用程序必須并行處理多個(gè)任務(wù)(2)數(shù)據(jù)的持久存儲(chǔ)(3)分布式
9.4 體系結(jié)構(gòu)設(shè)計(jì)
1.軟件必須放在環(huán)境中俩檬,須定義外部實(shí)體
2.定義原型萎胰。原型是表示核心抽象的類或模式,該抽象對(duì)于目標(biāo)系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)非常關(guān)鍵豆胸。
3.將體系結(jié)構(gòu)精化為構(gòu)件
4.描述系統(tǒng)實(shí)例
9.5 分析體系結(jié)構(gòu)設(shè)計(jì)
1.收集場景
2.引出需求奥洼、約束和環(huán)境描述
3.描述那些已經(jīng)被選擇用于解決場景和需求的體系結(jié)構(gòu)風(fēng)格/模式
4.通過單獨(dú)地考慮每個(gè)屬性來評(píng)估質(zhì)量屬性。
5.針對(duì)特定的體系結(jié)構(gòu)風(fēng)格晚胡,確定質(zhì)量屬性對(duì)各種體系結(jié)構(gòu)屬性的敏感性
6.使用第5步進(jìn)行的敏感性分析鑒定候選體系結(jié)構(gòu)
9.6 使用數(shù)據(jù)流進(jìn)行體系結(jié)構(gòu)映射
1.一般的映射方法:(1)分離輸入和輸出流的邊界;transaction流嚼沿,分離出變換中心(3)按要求加入控制模塊(4)使用有效的模塊化概念優(yōu)化生成的程序結(jié)構(gòu)
2.變換流和事務(wù)流的不同估盘。
第十章 構(gòu)件級(jí)設(shè)計(jì)
1.什么是構(gòu)件?
構(gòu)件是系統(tǒng)中模塊化的、可部署的和可替換的部件骡尽,該部件封裝了實(shí)現(xiàn)并暴露了一組接口遣妥。
面向?qū)ο蟮挠^點(diǎn):構(gòu)件包括一組協(xié)作的類
傳統(tǒng)的觀點(diǎn):一個(gè)構(gòu)件就是程序的一個(gè)功能要素,程序由處理邏輯及實(shí)現(xiàn)處理邏輯所需的內(nèi)部數(shù)據(jù)結(jié)構(gòu)以及能夠保證構(gòu)件被調(diào)用和實(shí)現(xiàn)數(shù)據(jù)傳遞的接口構(gòu)成攀细。
10.2 設(shè)計(jì)基于類的構(gòu)件
1.基本設(shè)計(jì)原則:(1)開閉原則OCP箫踩,即模塊應(yīng)該對(duì)外延具有開放性,對(duì)修改具有封閉性谭贪。(2)Liskov替換原則境钟,LSP,即子類可以替換它們的基類(3)依賴倒置原則DIP俭识,即依賴于抽象而非具體實(shí)現(xiàn)(4)接口分離原則ISP慨削,即多個(gè)用戶專用接口比一個(gè)通用接口好(5)單一責(zé)任原則SRP,即每個(gè)模塊或類都應(yīng)對(duì)軟件功能的單個(gè)部分負(fù)責(zé),并且職責(zé)完全用類進(jìn)行封裝(6)的米特爾法則LoD或最小公布原則LSP(7)發(fā)布復(fù)用等價(jià)性原則REP(8)共同封裝原則CCP(9)共同復(fù)用原則CRP
2.構(gòu)件級(jí)設(shè)計(jì)指導(dǎo)方針:1.構(gòu)件2.接口3.依賴與繼承
3.內(nèi)聚性意味著構(gòu)件或者類只封裝那些相互關(guān)聯(lián)密切缚态,以及與構(gòu)件或類自身有密切關(guān)系的屬性和操作磁椒。(1)功能內(nèi)聚(2)分層內(nèi)聚(3)通信內(nèi)聚
4.耦合是類之間彼此聯(lián)系程度的一種定性度量。
10.3 實(shí)施構(gòu)件級(jí)設(shè)計(jì)
1.標(biāo)識(shí)出所有與問題域相對(duì)應(yīng)的設(shè)計(jì)類
2.確定所有與基礎(chǔ)設(shè)施域相對(duì)應(yīng)的設(shè)計(jì)類
3.細(xì)化所有不需要作為可復(fù)用構(gòu)件的設(shè)計(jì)類玫芦。
? ? a.在類或構(gòu)件協(xié)作時(shí)說明消息的細(xì)節(jié)浆熔。
? ? b.為每個(gè)構(gòu)件確定適當(dāng)?shù)慕涌?/p>
? ? c.細(xì)化屬性,并且定義實(shí)現(xiàn)屬性所需要的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)
? ? d.詳細(xì)描述每個(gè)操作中的處理流桥帆。
4.說明持久數(shù)據(jù)源(數(shù)據(jù)庫和文件)并確定管理數(shù)據(jù)源所需要的類
5.開發(fā)并且細(xì)化類或構(gòu)件的行為表示医增。
6.細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)。
7.考慮每個(gè)構(gòu)件級(jí)設(shè)計(jì)表示环葵,并且時(shí)刻考慮其他可選方案调窍。
對(duì)象約束語言O(shè)CL
1.context
2.property
3.operation
4.keywords
N-S Design
程序設(shè)計(jì)語言
第十一章 用戶界面設(shè)計(jì)
1.黃金規(guī)則:(1)用戶操縱控制(2)減輕用戶記憶負(fù)擔(dān)(3)保持界面一致
2.用戶界面設(shè)計(jì)模型:(1)用戶模型(2)設(shè)計(jì)模型(3)心理模型(4)實(shí)現(xiàn)模型
界面分析
理解問題就意味著了解(1)通過界面和系統(tǒng)交互的人(2)最終用戶為完成工作要執(zhí)行的任務(wù)(3)作為界面的一部分而顯示的內(nèi)容(4)任務(wù)處理的環(huán)境
1.用戶分析
2.任務(wù)分析和建模
3.顯示內(nèi)容分析
界面設(shè)計(jì)步驟
1.使用界面分析中獲得的信息,定義界面對(duì)象和動(dòng)作张遭。
2.定義那些導(dǎo)致用戶界面狀態(tài)發(fā)生變化的事件邓萨,并對(duì)行為建模。
3.描述每個(gè)界面狀態(tài)菊卷,就像最終用戶實(shí)際看到的那樣缔恳。
4.簡要說明用戶如何從界面提供的界面信息來解釋系統(tǒng)狀態(tài)。
設(shè)計(jì)問題
1.響應(yīng)時(shí)間
2.幫助設(shè)施
3.錯(cuò)誤處理
4.菜單和命令標(biāo)記
5.應(yīng)用系統(tǒng)的可訪問性
6.國際化