《軟件工程》教學(xué)課件CHUML概述_第1頁
《軟件工程》教學(xué)課件CHUML概述_第2頁
《軟件工程》教學(xué)課件CHUML概述_第3頁
《軟件工程》教學(xué)課件CHUML概述_第4頁
《軟件工程》教學(xué)課件CHUML概述_第5頁
已閱讀5頁,還剩95頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

UML面向?qū)ο蠓治雠c設(shè)計(jì)UML把Booch,Rumbaugh和Jacobson等各自獨(dú)立的OOA和OOD方法中最優(yōu)秀的特色組合成一個(gè)統(tǒng)一的方法。UML的特點(diǎn):統(tǒng)一標(biāo)準(zhǔn)面向?qū)ο罂梢暬?,表示能力?qiáng)大獨(dú)立于過程容易掌握使用UML的定義UML定義有兩個(gè)主要組成部分:語義:用自然語言描述表示法:定義UML的可視化標(biāo)準(zhǔn)表示符號(hào)使用UML時(shí),要從不同的角度觀察系統(tǒng),為此定義了概念“視圖”。視圖是對(duì)系統(tǒng)的模型在某方面的投影,注重于系統(tǒng)的某個(gè)方面。結(jié)構(gòu)視圖行為視圖實(shí)現(xiàn)視圖環(huán)境視圖用例視圖為最終用戶做什么系統(tǒng)靜態(tài)結(jié)構(gòu)程序員提供什么軟件組織與管理系統(tǒng)集成人員如何組織與控制系統(tǒng)系統(tǒng)工程師如何配置和運(yùn)行系統(tǒng)系統(tǒng)拓?fù)洹⒔桓?、安裝、操作、通信分析員或測(cè)試員系統(tǒng)任務(wù)控制與管理(性能,可伸縮性,吞吐量)行為結(jié)構(gòu)視圖:描述系統(tǒng)的靜態(tài)結(jié)構(gòu),可根據(jù)它確定重要的設(shè)計(jì):類、包和子系統(tǒng)。實(shí)現(xiàn)視圖:描述處于開發(fā)環(huán)境中的靜態(tài)軟件成分的組織(源程序、構(gòu)件、數(shù)據(jù)文件、可執(zhí)行程序等)。行為視圖:描述系統(tǒng)在運(yùn)行時(shí)的并發(fā)性,包括任務(wù)、線程、進(jìn)程及其相互作用。軟件體系結(jié)構(gòu)的4+1視圖模型環(huán)境視圖:描述處于運(yùn)行環(huán)境中的各種可執(zhí)行程序是如何映射到底層平臺(tái)或計(jì)算結(jié)點(diǎn)上的。用例視圖:包括若干關(guān)鍵場(chǎng)景或用例。在初始和細(xì)化階段用來幫助發(fā)現(xiàn)和設(shè)計(jì)體系結(jié)構(gòu)。在構(gòu)造階段用來驗(yàn)證各種不同視圖。在文檔中用來表明其他視圖是如何工作的。UML分析建模著重系統(tǒng)的用例模型和結(jié)構(gòu)模型,設(shè)計(jì)建模著重行為模型,實(shí)現(xiàn)模型和環(huán)境模型上。體系結(jié)構(gòu)中主要的元素包括:主要的類,如為業(yè)務(wù)實(shí)體建模的類。將行為賦予類的機(jī)制,如協(xié)同。模式與框架。層次與子系統(tǒng)。接口以及主要的進(jìn)程控制或線程控制。UML的三個(gè)主要組成元素基本構(gòu)造塊組織構(gòu)造塊的規(guī)則運(yùn)用于整個(gè)UML的公共機(jī)制UML的構(gòu)成UML包括三種基本構(gòu)造塊:事物、關(guān)系和圖。UML事物—結(jié)構(gòu)事物

類名屬性操作open()close()move()display()originsizeWindow類接口—描述一個(gè)類或構(gòu)件的服務(wù)(操作)。協(xié)作—描述合作完成某個(gè)特定任務(wù)的一組類及其關(guān)聯(lián)的集合,用于對(duì)使用情形的實(shí)現(xiàn)建模。用例—表示系統(tǒng)想要實(shí)現(xiàn)的行為,不關(guān)心這些行為是怎樣實(shí)現(xiàn)的。ISpellingPlaceOrderOrderManagement用例協(xié)作實(shí)現(xiàn)主動(dòng)類—它至少擁有一個(gè)進(jìn)程或線程,故能夠啟動(dòng)控制活動(dòng)。

suspend()flush()EventManager構(gòu)件——系系統(tǒng)統(tǒng)中物物理的、可可替代代的部部件。。節(jié)點(diǎn)—系統(tǒng)在在運(yùn)行行時(shí)存在在的物物理元元素。。Orderform.java數(shù)據(jù)庫服務(wù)器應(yīng)用服務(wù)器課程管理成績管理UML事事物——行為為事物物交互—由在特特定環(huán)環(huán)境中中共同同完成成一定定任務(wù)務(wù)的一一組對(duì)對(duì)象之之間交交換的的消息息組成成。p:Person:CompanyAssign(development)消息有名對(duì)象匿名對(duì)象狀態(tài)機(jī)機(jī)—描述了了一個(gè)個(gè)對(duì)象象或一一個(gè)交交互在在生存存周期期內(nèi)響響應(yīng)事事件所所經(jīng)歷歷的狀狀態(tài)序序列。。initializingcommandidleKeypressFinishedExitUML事事物——分組組事物物包用戶接口包業(yè)務(wù)對(duì)象包數(shù)據(jù)庫包應(yīng)用包UML事事物——注釋釋事物物注釋—依附于于一個(gè)個(gè)元素素或一一組元元素之之上,,對(duì)其其進(jìn)行行約束束或解解釋的的簡單單符號(hào)號(hào)。CashAccountpresentValue()Seepolicy8-5-96.docfordetailsaboutthesealgorithms.UML關(guān)關(guān)系依賴—兩個(gè)事事物之之間的的語義義關(guān)系系,其其中一一個(gè)事事物發(fā)發(fā)生變變化會(huì)會(huì)影響響另一一個(gè)事事物的的語義義。CourseScheduleadd(c:Course)remove(c:Course)CourseIterator<<friend>>關(guān)聯(lián)—一種描描述一一組對(duì)對(duì)象之之間連連接的的結(jié)構(gòu)構(gòu)關(guān)系系。聚合是是一種種特殊殊類型型的關(guān)關(guān)聯(lián),,描述述了整整體和和部分分間的的結(jié)構(gòu)構(gòu)關(guān)系系。泛化—一種一一般化化—特特殊化化的關(guān)關(guān)系。。employeremployee0..1*EventConsoleWindowDialogBoxControl依賴泛化關(guān)聯(lián)

Windowopen()close()move()display()handleEvent()實(shí)現(xiàn)—類之間間的語語義關(guān)關(guān)系,,其中中的一一個(gè)類類指定定了由由另一一個(gè)類類保證證執(zhí)行行的契契約。。兩種情情況出出現(xiàn)實(shí)實(shí)現(xiàn)關(guān)關(guān)系::在接口口和實(shí)實(shí)現(xiàn)它它們的的類或或構(gòu)件件之間間;用例和和它們們的協(xié)協(xié)作之之間。。PlaceOrderOrderManagement用例協(xié)作實(shí)現(xiàn)類屬性操作對(duì)象屬性操作接口用例構(gòu)件節(jié)點(diǎn)狀態(tài)機(jī)包注釋依賴關(guān)聯(lián)泛化實(shí)現(xiàn)聚合復(fù)合模型中中主要要的圖圖形元元素UML模模型的的圖形形UseCaseDiagramsUseCaseDiagrams用例圖ScenarioDiagramsScenarioDiagrams協(xié)作圖StateDiagramsStateDiagrams構(gòu)件圖ComponentDiagramsComponentDiagrams部署圖StateDiagramsStateDiagrams對(duì)象圖ScenarioDiagramsScenarioDiagrams狀態(tài)圖UseCaseDiagramsUseCaseDiagrams順序圖StateDiagramsStateDiagrams類圖活動(dòng)圖模型1.用用例例圖用例圖圖展現(xiàn)現(xiàn)了一一組用用例、、參與與者以以及它它們間間的關(guān)關(guān)系。??梢杂糜糜美龍D描描述系系統(tǒng)的的靜態(tài)態(tài)使用用情況況,它它定義義了系系統(tǒng)的的功能能需求求,但但這是是從系系統(tǒng)的的外部部觀看看系統(tǒng)統(tǒng)功能能,并并不描描述系系統(tǒng)內(nèi)內(nèi)部對(duì)對(duì)功能能的具具體實(shí)實(shí)現(xiàn)。。在對(duì)系系統(tǒng)行行為組組織和和建模模方面面,用用例圖圖的是是相當(dāng)當(dāng)重要要的。。查詢商品價(jià)格顧客庫存系統(tǒng)售貨員總賬系統(tǒng)查詢商品信息預(yù)售商品網(wǎng)上銷售商品打折銷售商品出售商品查詢商品成分商品查詢售貨管理說明顧客持所欲購買的商品至收銀臺(tái)結(jié)帳,店員刷商品條碼后,根據(jù)數(shù)量及單價(jià)計(jì)算總金額商品售出后,商品編碼、單價(jià)、總金額存入電腦,數(shù)據(jù)記載到“庫存系統(tǒng)”和“總帳系統(tǒng)”中(含預(yù)售、網(wǎng)絡(luò)購物、打折銷售)。。事件流基本事件流刷條碼?結(jié)算金額?付款?扣庫存?記入日記賬?打印發(fā)票異常事件流第一異常事件流顧客結(jié)帳后更換商品第二異常事件流顧客將已售商品退回特殊需求第一個(gè)特殊需求允許退貨,并將退回商品加回庫存第二個(gè)特殊需求記錄顧客的性別,年齡,供后續(xù)統(tǒng)計(jì)分析用用例規(guī)規(guī)格說說明::銷售售商品品2.類類圖圖類圖展展示了了一組組類、、接口口和協(xié)協(xié)作及及它們們間的的關(guān)系系。類圖沒沒有時(shí)時(shí)間概概念,,是概概念數(shù)數(shù)據(jù)模模型((如E-R圖圖)的的一種種延伸伸。用類圖圖說明明系統(tǒng)統(tǒng)的靜靜態(tài)結(jié)結(jié)構(gòu)視視圖,,包含含主動(dòng)動(dòng)類的的類圖圖—專專注于于系統(tǒng)統(tǒng)的靜靜態(tài)處處理視視圖。。系統(tǒng)可可有多多個(gè)類類圖,,單個(gè)個(gè)類圖圖僅表表達(dá)了了系統(tǒng)統(tǒng)的一一個(gè)方方面,,要在在高層層給出出類的的主要要職責(zé)責(zé),在在低層層給出出類的的屬性性和操操作。。類圖是從從系統(tǒng)構(gòu)構(gòu)成角度度來描述述系統(tǒng)。。類的表示示:類的名稱屬性屬性:數(shù)據(jù)類型屬性:數(shù)據(jù)類型=初值操作操作(參數(shù)表):結(jié)果類型限定關(guān)聯(lián)聯(lián)類1類2限定詞關(guān)聯(lián)名稱角色1角色2聚合、引引用和重重復(fù)度0..*0..10..*整體類名部分類名2部分類名10..1聚合簡單引用復(fù)合聚合雙方捆綁關(guān)聯(lián)名類1類2關(guān)聯(lián)類名屬性操作角色1角色2關(guān)聯(lián)類泛化關(guān)系系超類子類1子類2操作抽象類操作雇員雇員標(biāo)識(shí):char姓名:char職務(wù):char工資:long項(xiàng)目項(xiàng)目標(biāo)識(shí)項(xiàng)目名稱參與開始日期結(jié)束日期任務(wù)任務(wù)標(biāo)識(shí)任務(wù)名稱任務(wù)費(fèi)用技能技能標(biāo)識(shí)技能名稱團(tuán)隊(duì)團(tuán)隊(duì)標(biāo)識(shí)承擔(dān)工作部門部門標(biāo)識(shí)部門名稱客戶客戶標(biāo)識(shí)客戶名稱客戶地址客戶電話客戶代表0..*0..*10..*1..*10..*1..*1..*110..*11..*0..*1..*3.對(duì)對(duì)象圖對(duì)象圖展展示了一一組對(duì)象象及它們們間的關(guān)關(guān)系。用對(duì)象圖圖說明類類圖中類類的對(duì)象象實(shí)例的的數(shù)據(jù)結(jié)結(jié)構(gòu)和靜靜態(tài)快照照,即在在某一時(shí)時(shí)刻,一一組對(duì)象象的狀態(tài)態(tài)及其關(guān)關(guān)系。對(duì)象圖表表達(dá)了系系統(tǒng)的靜靜態(tài)設(shè)計(jì)計(jì)視圖或或靜態(tài)過過程視圖圖,除了了現(xiàn)實(shí)和和原型的的方面因因素外,,它與類類圖作用用是相同同的。c:公司名稱=“研發(fā)”d2:部門d1:部門名稱=“銷售”d3:部門名稱=“打印機(jī)銷售”

:聯(lián)系信息地址=“清華產(chǎn)業(yè)樓411”p:人員姓名=“鄭人杰”雇員標(biāo)識(shí)=6037職務(wù)=“銷售副總”經(jīng)理連接link屬性值對(duì)象匿名對(duì)象4.包包圖包圖表明明包及其其之間的的依賴類類圖。包是對(duì)模模型中涉涉及的元元素分組組所得的的結(jié)果,,是具有有特定語語義的一一個(gè)子集集,必須須保證低低耦合、、高內(nèi)聚聚。廣義地講講,包可可以包含含類、接接口、構(gòu)構(gòu)件、節(jié)節(jié)點(diǎn)、協(xié)協(xié)作、用用例等,,還可以以內(nèi)嵌其其他子包包。包之間的的訪問權(quán)權(quán)限通過過輸出((輸出品品)和導(dǎo)導(dǎo)入(進(jìn)進(jìn)口貨))設(shè)置,,虛箭頭頭從從源包到到目標(biāo)包包。5.構(gòu)構(gòu)件圖構(gòu)件圖展展現(xiàn)了一一組構(gòu)件件之間的的組織和和依賴,,用于對(duì)對(duì)源代碼碼、可執(zhí)執(zhí)行的發(fā)發(fā)布、物物理數(shù)據(jù)據(jù)庫等的的系統(tǒng)建建模。構(gòu)件圖表表示系統(tǒng)統(tǒng)的靜態(tài)態(tài)實(shí)現(xiàn)視視圖。CourseCourseOfferingStudentProfessorCourse.dllPeople.dll課程用戶Register.exeBilling.exe課表系統(tǒng)6.部部署圖部署圖展展現(xiàn)了對(duì)對(duì)運(yùn)行時(shí)時(shí)處理節(jié)節(jié)點(diǎn)以及及其中構(gòu)構(gòu)件的配配置每一一節(jié)點(diǎn)代代表一個(gè)個(gè)計(jì)算單單元。。。它描述系系統(tǒng)硬件件的物理理拓?fù)浣Y(jié)結(jié)構(gòu)(包括括網(wǎng)絡(luò)布布局和構(gòu)構(gòu)件在網(wǎng)網(wǎng)絡(luò)上的的位置),以以及在此此結(jié)構(gòu)上上執(zhí)行的的軟件((即運(yùn)行行時(shí)軟構(gòu)構(gòu)件在節(jié)節(jié)點(diǎn)中的的分布情情況)。。用部署圖圖說明系系統(tǒng)結(jié)構(gòu)構(gòu)的靜態(tài)態(tài)環(huán)境視視圖,即即說明分分布、交交付和安安裝的物物理系統(tǒng)統(tǒng)。注冊(cè)服務(wù)器數(shù)據(jù)庫宿舍客戶機(jī)圖書館客戶機(jī)主排課客戶機(jī)8.活活動(dòng)圖活動(dòng)圖是是一種特特殊的狀狀態(tài)圖,,描述要要做的活活動(dòng)、執(zhí)執(zhí)行這些些活動(dòng)的的順序以以及工作作流。它它對(duì)于系系統(tǒng)的功功能建模模特別重重要,強(qiáng)強(qiáng)調(diào)對(duì)象象間的控控制流程程。高層活動(dòng)動(dòng)圖用于于表示任任務(wù)。即即用于分分析用例例,理解解涉及多多個(gè)用例例的工作作流、多多線程及及并行,,顯示相相互聯(lián)系系的行為為整體,,還可用用于業(yè)務(wù)務(wù)過程建建模,對(duì)對(duì)系統(tǒng)的的功能建建模。低低層活動(dòng)動(dòng)圖用于于表示類類的方法法。按訂單供貨接訂單開發(fā)票結(jié)清訂單快速交付正常交付收款起點(diǎn)分叉活動(dòng)分支合并匯合結(jié)束[緊急訂單][非緊急訂單]變遷9.狀狀態(tài)圖狀態(tài)圖展展示了一一個(gè)特定定對(duì)象的的所有可可能狀態(tài)態(tài)以及由由于各種種事件的的發(fā)生而而引起的的狀態(tài)間間的轉(zhuǎn)移移。一個(gè)狀態(tài)態(tài)圖描述述了一個(gè)個(gè)狀態(tài)機(jī)機(jī),用狀狀態(tài)圖說說明系統(tǒng)統(tǒng)的動(dòng)態(tài)態(tài)視圖。。狀態(tài)圖對(duì)對(duì)于接口口、類或或協(xié)作的的行為建建模尤為為重要,,可用它它描述用用例實(shí)例例的生存存周期。。Project對(duì)象的的狀態(tài)圖圖注冊(cè)預(yù)售開發(fā)系統(tǒng)分析系統(tǒng)設(shè)計(jì)程序編碼軟件測(cè)試系統(tǒng)部署單元測(cè)試與調(diào)試維護(hù)新projectproject完開始結(jié)束10.交交互圖圖交互圖展展現(xiàn)了按按一定的的目的進(jìn)進(jìn)行一種種交互,,它由在在一個(gè)上上下文中中的一組組對(duì)象及及它們之之間交互互的信息息組成。。交互圖可可用于描描述一個(gè)個(gè)用例的的行為。。順序圖圖和協(xié)作作圖都是是交互圖圖,它們們可以相相互轉(zhuǎn)換換。如果希望望查看單單個(gè)對(duì)象象跨用例例的行為為,要要使用狀狀態(tài)圖。。如果希望望查看跨跨用例跨跨線程的的行為,,要使用用活動(dòng)圖圖。10-1順序序圖順序圖展展現(xiàn)了一一組對(duì)象象和由這這組對(duì)象象收發(fā)的的消息,,用于按按時(shí)間順順序?qū)乜刂屏鹘ń?。?duì)象表述述為虛垂垂線頂端端的矩形形小框。。垂線是對(duì)對(duì)象的生生命線,,說明對(duì)對(duì)象的生生命。生命線之之間的箭箭頭表示示消息。。消息出出現(xiàn)的次次序自上上而下。。消息箭頭頭可以回回到同一一條生命命線,指指明自調(diào)調(diào)用,即即對(duì)象發(fā)發(fā)給自己己的消息息。移動(dòng)電話話系統(tǒng)的的用例圖圖移動(dòng)用戶移動(dòng)網(wǎng)絡(luò)與對(duì)方通話下載圖符下載鈴聲管理電話本移動(dòng)電話話系統(tǒng)的的順序圖圖:移動(dòng)用戶:移動(dòng)按鍵:移動(dòng)顯示:移動(dòng)手機(jī):移動(dòng)基站按數(shù)字鍵顯示按鍵號(hào)碼按發(fā)送鍵連接基站建立連接連接成功顯示連接成功10-2協(xié)作作圖協(xié)作圖展展現(xiàn)了一一組對(duì)象象,這組組對(duì)象之之間的連連接以及及這組對(duì)對(duì)象收發(fā)發(fā)的消息息。它強(qiáng)調(diào)收收發(fā)消息息的對(duì)象象結(jié)構(gòu)組組織,按按組織結(jié)結(jié)構(gòu)對(duì)控控制流建建模。協(xié)作圖中中的協(xié)作作不是參參與者與與系統(tǒng)之之間的交交互,而而是系統(tǒng)統(tǒng)內(nèi)部某某一個(gè)用用例中各各個(gè)對(duì)象象之間信信息傳遞遞的方式式。消息上所所附編號(hào)號(hào)指明執(zhí)執(zhí)行順序序。移動(dòng)電話話系統(tǒng)的的協(xié)作圖圖:移動(dòng)用戶1:按數(shù)字鍵3:按發(fā)送鍵

:移動(dòng)按鍵2:顯示按鍵號(hào)碼

:移動(dòng)顯示

:移動(dòng)手機(jī)

:移動(dòng)基站4:連接基站5:建立連接6:連接成功7:顯示連接成功*RUP((RationalUnifiedProcess統(tǒng)一開發(fā)發(fā)過程)的分析析/設(shè)計(jì)計(jì)工作流流分析和設(shè)設(shè)計(jì)工作作流的目目的是研研究欲采采用的實(shí)實(shí)現(xiàn)環(huán)境境和系統(tǒng)統(tǒng)構(gòu)件的的效用,,定義軟件件的組織織結(jié)構(gòu),,把需求求獲取結(jié)結(jié)果轉(zhuǎn)化化為實(shí)現(xiàn)現(xiàn)規(guī)格。。為實(shí)現(xiàn)這這種轉(zhuǎn)化化,必須須理解需需求,采采用最佳佳實(shí)現(xiàn)策策略將其其翻譯為為系統(tǒng)設(shè)設(shè)計(jì)。為此,首首先是建建立健壯壯的軟件件體系結(jié)結(jié)構(gòu),設(shè)設(shè)計(jì)出易易于理解解、開發(fā)發(fā)和演進(jìn)進(jìn)的系統(tǒng)統(tǒng),然后后調(diào)整這這個(gè)設(shè)計(jì)計(jì),使之之適應(yīng)實(shí)實(shí)現(xiàn)環(huán)境境。最后結(jié)果果是產(chǎn)生生一個(gè)對(duì)對(duì)象模型型,即設(shè)設(shè)計(jì)模型型。定義初始體系結(jié)構(gòu)[早期細(xì)化迭代]分析行為設(shè)計(jì)實(shí)時(shí)構(gòu)件設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)構(gòu)件細(xì)化體系結(jié)構(gòu)[細(xì)化迭代][可選][實(shí)時(shí)][非實(shí)時(shí)]定義一個(gè)個(gè)初始的的體系結(jié)結(jié)構(gòu)建立一個(gè)個(gè)初始的的系統(tǒng)體體系結(jié)構(gòu)構(gòu)草圖。。定義一組初始始的重要要體系結(jié)結(jié)構(gòu)元素素。一組初始分分析機(jī)制。。系統(tǒng)的初始始分層和組組織。在當(dāng)前迭代代過程中處處理的用例例實(shí)現(xiàn)。從重要的構(gòu)構(gòu)件用例中中確定類。。確定類之間間的交互作作用,修改改用例實(shí)現(xiàn)現(xiàn)。細(xì)化體系結(jié)結(jié)構(gòu)建立從分析析到設(shè)計(jì)的的自然轉(zhuǎn)移移,并標(biāo)識(shí)識(shí):從分析元素素中確定適適當(dāng)?shù)脑O(shè)計(jì)計(jì)元素。從相關(guān)分析析機(jī)制中確確定適當(dāng)?shù)牡脑O(shè)計(jì)機(jī)制制。保持體系結(jié)結(jié)構(gòu)的一致致性和完整整性,確保保:將當(dāng)前迭代代中標(biāo)識(shí)的的新的設(shè)計(jì)計(jì)元素與已已有的設(shè)計(jì)計(jì)元素集成成在一起。。在設(shè)計(jì)中盡盡早地、最最大限度地地復(fù)用可獲獲得的構(gòu)件件和設(shè)計(jì)元元素。描述系統(tǒng)運(yùn)運(yùn)行的組織織和實(shí)施體體系結(jié)構(gòu)。。組織實(shí)現(xiàn)模模型以實(shí)現(xiàn)現(xiàn)設(shè)計(jì)到實(shí)實(shí)現(xiàn)無縫轉(zhuǎn)轉(zhuǎn)移。分析行為將用例提供供的行為描描述轉(zhuǎn)變?yōu)闉橐幌盗锌煽勺鳛樵O(shè)計(jì)計(jì)基礎(chǔ)的元元素。在分析行為為時(shí),主要要注重于如如何能夠提提供要求的的功能,較較少關(guān)心系系統(tǒng)的非功功能需求。。設(shè)計(jì)構(gòu)件找出設(shè)計(jì)元元素如何實(shí)實(shí)現(xiàn)要求行行為的細(xì)節(jié)節(jié),細(xì)化設(shè)設(shè)計(jì)元素的的定義。根據(jù)新的設(shè)設(shè)計(jì)元素來來細(xì)化和更更新用例實(shí)實(shí)現(xiàn)。當(dāng)設(shè)計(jì)演進(jìn)進(jìn)后,進(jìn)行行設(shè)計(jì)評(píng)審審。設(shè)計(jì)實(shí)時(shí)構(gòu)構(gòu)件在實(shí)時(shí)的或或交互式的的上下文中中,使用封封裝制品作作為主要的的設(shè)計(jì)元素素。設(shè)計(jì)實(shí)時(shí)構(gòu)構(gòu)件與設(shè)計(jì)計(jì)構(gòu)件有相相似的活動(dòng)動(dòng),但增加加了封裝設(shè)設(shè)計(jì)活動(dòng),,定義系統(tǒng)統(tǒng)的并發(fā)控控制線程和和它們之間間的協(xié)議。。設(shè)計(jì)數(shù)據(jù)庫庫在設(shè)計(jì)中標(biāo)標(biāo)識(shí)永久類類并設(shè)計(jì)適適當(dāng)?shù)臄?shù)據(jù)據(jù)庫結(jié)構(gòu)來來存儲(chǔ)永久久類。定義一種存存儲(chǔ)和檢索索永久數(shù)據(jù)據(jù)的機(jī)制和和策略,以以滿足系統(tǒng)統(tǒng)的性能需需求。分析和設(shè)計(jì)計(jì)工作流中中的關(guān)鍵制制品:設(shè)計(jì)模型由類的協(xié)作作構(gòu)成。這這些類的協(xié)協(xié)作可能集集成為包或或子系統(tǒng)。。包是對(duì)類類的邏輯分分組,是為為了減少系系統(tǒng)的復(fù)雜雜性。分析模型是設(shè)計(jì)的抽抽象和泛化化,它提供供系統(tǒng)的功功能描述,,忽略了系系統(tǒng)如何工工作的細(xì)節(jié)節(jié)。軟件體系結(jié)結(jié)構(gòu)文檔涵蓋系統(tǒng)不不同的體系系結(jié)構(gòu)視圖圖。實(shí)現(xiàn)工作流流實(shí)現(xiàn)工作流流的目的是是建立代碼的的分層結(jié)構(gòu)構(gòu);從構(gòu)件(源源文件、二二進(jìn)制文件件、可執(zhí)行行文件或其其他文件))角度來實(shí)實(shí)現(xiàn)類和對(duì)對(duì)象;對(duì)開發(fā)出來來的構(gòu)件進(jìn)進(jìn)行單元測(cè)測(cè)試;將個(gè)人和開開發(fā)團(tuán)隊(duì)開開發(fā)的結(jié)果果集成到可可執(zhí)行系統(tǒng)統(tǒng)中。單元測(cè)測(cè)試僅僅對(duì)單單個(gè)構(gòu)構(gòu)件進(jìn)進(jìn)行。。集成成測(cè)試試和系系統(tǒng)測(cè)測(cè)試在在測(cè)試試工作作流中中執(zhí)行行。構(gòu)造實(shí)現(xiàn)模型集成每個(gè)子系統(tǒng)集成系統(tǒng)制定集成計(jì)劃實(shí)現(xiàn)構(gòu)件[可用于單元測(cè)試的構(gòu)件][可用于集成的實(shí)現(xiàn)子系統(tǒng)][針對(duì)這個(gè)迭代過程的更多的系統(tǒng)構(gòu)造][針對(duì)這個(gè)迭代過程的更多的子系統(tǒng)構(gòu)造][針對(duì)這個(gè)迭代過程的更多的要實(shí)現(xiàn)的構(gòu)件]實(shí)現(xiàn)模模型是是在細(xì)細(xì)化階階段通通過不不斷迭迭代,,不斷斷使用用更大大規(guī)模模的集集成構(gòu)構(gòu)造建建立起起來的的。對(duì)于每每一次次迭代代,要要求做做到::確定要要實(shí)現(xiàn)現(xiàn)哪一一個(gè)子子系統(tǒng)統(tǒng),以以及在在當(dāng)前前迭代代中子子系統(tǒng)統(tǒng)的集集成順順序。。對(duì)于每每一個(gè)個(gè)子系系統(tǒng),,確定定實(shí)現(xiàn)現(xiàn)每個(gè)個(gè)類的的順序序,以以及子子系統(tǒng)統(tǒng)集成成的計(jì)計(jì)劃。。實(shí)現(xiàn)設(shè)設(shè)計(jì)模模型中中的類類和對(duì)對(duì)象,,包括括編寫寫源代代碼、、改寫寫已有有構(gòu)件件、編編譯、、鏈接接和執(zhí)執(zhí)行,,及時(shí)時(shí)反饋饋設(shè)計(jì)計(jì)中可可能的的缺陷陷。修改有有缺陷陷的源源代碼碼,進(jìn)進(jìn)行單單元測(cè)測(cè)試以以驗(yàn)證證這些些變更更。最最后進(jìn)進(jìn)行代代碼評(píng)評(píng)審。。指定專專人負(fù)負(fù)責(zé)將將所有有新的的和已已變更更的構(gòu)構(gòu)件集集成為為一個(gè)個(gè)新的的實(shí)現(xiàn)現(xiàn)子系系統(tǒng)版版本。。在團(tuán)團(tuán)隊(duì)環(huán)環(huán)境,,集成成將產(chǎn)產(chǎn)生一一系列列構(gòu)造造,對(duì)對(duì)每個(gè)個(gè)構(gòu)造造由集集成測(cè)測(cè)試員員進(jìn)行行集成成測(cè)試試。將發(fā)布布的子子系統(tǒng)統(tǒng)集成成到系系統(tǒng)。。最終終的構(gòu)構(gòu)造即即為系系統(tǒng)。。由系系統(tǒng)測(cè)測(cè)試員員進(jìn)行行系統(tǒng)統(tǒng)測(cè)試試。實(shí)現(xiàn)工工作流流的關(guān)關(guān)鍵制制品有有:實(shí)現(xiàn)子子系統(tǒng)統(tǒng)構(gòu)件和和其他他實(shí)現(xiàn)現(xiàn)子系系統(tǒng)的的集成成。它它是將將實(shí)現(xiàn)現(xiàn)模型型細(xì)分分為更更小的的部分分,并并使其其構(gòu)造造化。。構(gòu)件可以是是一塊塊程序序代碼碼,或或是包包含信信息的的文件件。構(gòu)構(gòu)件可可以由由其他他構(gòu)件件聚合合而成成。集成構(gòu)構(gòu)造計(jì)計(jì)劃定義構(gòu)構(gòu)件和和子系系統(tǒng)的的實(shí)現(xiàn)現(xiàn)順序序,詳詳細(xì)描描述系系統(tǒng)集集成時(shí)時(shí)要建建立的的構(gòu)造造。實(shí)現(xiàn)與與設(shè)計(jì)計(jì)的關(guān)關(guān)系緊緊密。。在設(shè)設(shè)計(jì)元元素和和實(shí)現(xiàn)現(xiàn)元素素之間間有非非常明明顯的的跟蹤蹤鏈接接。創(chuàng)建良良好設(shè)設(shè)計(jì)的的原則則設(shè)計(jì)原原則1:分治軟件系系統(tǒng)分分解為為子系系統(tǒng)分布式式系統(tǒng)統(tǒng)可以以分解解為客客戶機(jī)機(jī)和服服務(wù)器器;系統(tǒng)可可以分分解為為一系系列子子系統(tǒng)統(tǒng);子系統(tǒng)統(tǒng)可以以分解解為一一個(gè)或或多個(gè)個(gè)包;;包可以以分解解為類類;類可以以分解解為方方法。。設(shè)計(jì)原原則2:盡可能能增加加內(nèi)聚聚不同內(nèi)內(nèi)聚類類型::優(yōu)先先級(jí)從從高到到低排排序功能能內(nèi)內(nèi)聚聚:模模塊塊只只執(zhí)執(zhí)行行單單一一計(jì)計(jì)算算并并返返回回結(jié)結(jié)果果,,沒沒有有副副作作用用。。如如函函數(shù)數(shù)過過程程。。層內(nèi)內(nèi)聚聚:相相關(guān)關(guān)服服務(wù)務(wù)放放在在一一起起,,并并有有嚴(yán)嚴(yán)格格的的層層次次結(jié)結(jié)構(gòu)構(gòu),,高高層層服服務(wù)務(wù)可可訪訪問問低低層層服服務(wù)務(wù),,反反之之不不可可。。如如分分層層結(jié)結(jié)構(gòu)構(gòu)。。通信信內(nèi)內(nèi)聚聚:訪訪問問或或操操作作同同一一數(shù)數(shù)據(jù)據(jù)的的過過程程放放在在一一個(gè)個(gè)類類中中,,這這些些過過程程可可以以互互相相通通信信。。如如某某個(gè)個(gè)類類設(shè)設(shè)計(jì)計(jì)。。順序序內(nèi)內(nèi)聚聚:存存在在一一系系列列過過程程,,其其中中一一個(gè)個(gè)過過程程向向另另一一個(gè)個(gè)過過程程提提供供輸輸入入,,這這些些過過程程放放在在一一起起,,形形成成順順序序內(nèi)內(nèi)聚聚。。如如消消息息序序列列。。過程程內(nèi)內(nèi)聚聚:幾幾個(gè)個(gè)一一次次調(diào)調(diào)用用的的過過程程放放在在一一起起,,但但其其中中一一個(gè)個(gè)過過程程的的輸輸出出不不一一定定是是另另一一個(gè)個(gè)過過程程的的輸輸入入,,形形成成過過程程內(nèi)內(nèi)聚聚。。如如調(diào)調(diào)用用結(jié)結(jié)構(gòu)構(gòu)。。時(shí)間間內(nèi)內(nèi)聚聚:程序執(zhí)執(zhí)行過程程中同一一階段內(nèi)內(nèi)完成的的操作放放在一起起,達(dá)到到時(shí)間內(nèi)內(nèi)聚。實(shí)用程序內(nèi)內(nèi)聚:邏輯上不不能納入其其他內(nèi)聚類類型的相關(guān)關(guān)實(shí)用程序序放在一起起,形成實(shí)實(shí)用程序內(nèi)內(nèi)聚。如可可復(fù)用的過過程或類。。設(shè)計(jì)原則3:盡可能降低低耦合模塊間存在在相互依賴賴關(guān)系即為為耦合。不不同耦合類類型從高向向低排列有有:內(nèi)容耦合:一個(gè)構(gòu)件件在不被察察覺的情況況下修改另另一個(gè)構(gòu)件件內(nèi)部的數(shù)數(shù)據(jù),應(yīng)始始終避免。。公共耦合:一組構(gòu)件件使用了全全局?jǐn)?shù)據(jù),,就產(chǎn)生公公共耦合。。應(yīng)通過封封裝降低公公共耦合。??刂岂詈希阂粋€(gè)過程程通過標(biāo)志志、開關(guān)或或命令顯式式地控制另另一個(gè)過程程的動(dòng)作,,就產(chǎn)生控控制耦合。。降低的方方法是采用用多態(tài)操作作。標(biāo)記耦合:在一個(gè)操操作的參數(shù)數(shù)表中將類類作為參數(shù)數(shù),就產(chǎn)生生標(biāo)記耦合合。降低標(biāo)標(biāo)記耦合的的方法可以以傳遞簡單單變量或使使用接口做做參數(shù)。數(shù)據(jù)耦合:在一個(gè)操操作的參數(shù)數(shù)表中用簡簡單變量或或簡單的類類(如string)作為參參數(shù),就產(chǎn)產(chǎn)生數(shù)據(jù)耦耦合。應(yīng)通通過減少參參數(shù)個(gè)數(shù)降降低耦合。。例程調(diào)用耦耦合:一個(gè)例程程(或類操操作)調(diào)用用另一個(gè)例例程,就產(chǎn)產(chǎn)生例程調(diào)調(diào)用耦合。。如果出現(xiàn)現(xiàn)例程調(diào)用用序列,降降低的方法法是編寫一一個(gè)例程將將這個(gè)調(diào)用用序列封裝裝起來。類型使用耦耦合:類將實(shí)例例變量或本本地變量聲聲明為另一一個(gè)類時(shí),,就產(chǎn)生類類型(嵌套套)使用耦耦合。降低低該耦合的的方法是將將變量的類類型聲明為為包含所需需操作的最最通用的類類或接口。。包含/引入入耦合:當(dāng)一個(gè)構(gòu)構(gòu)件引入((import)一一個(gè)包時(shí)就就產(chǎn)生引入入耦合,當(dāng)當(dāng)一個(gè)構(gòu)件件包含(include)另另一個(gè)構(gòu)件件時(shí),就產(chǎn)產(chǎn)生包含耦耦合。外部耦合:模塊對(duì)外外部系統(tǒng),,如操作系系統(tǒng)、共享享庫或硬件件有依賴關(guān)關(guān)系時(shí)就產(chǎn)產(chǎn)生外部耦耦合??赏ㄍㄟ^信息隱隱蔽減少這這種依賴關(guān)關(guān)系。設(shè)計(jì)原則4:盡可能提高高抽象層次次設(shè)計(jì)應(yīng)隱藏藏或推遲考考慮細(xì)節(jié)以以降低復(fù)雜雜性。類是包含過過程抽象的的數(shù)據(jù)抽象象。父類和接口口可進(jìn)一步步提高抽象象層次。類中公有操操作越少,,抽象程度度越高。類中所有變變量都是私私有,抽象象程度達(dá)到到最高。抽象可確保保在設(shè)計(jì)時(shí)時(shí)不必關(guān)心心不必要的的細(xì)節(jié),能能把握問題題的本質(zhì)并并做出重要要的決策。。設(shè)計(jì)計(jì)原原則則5::盡可可能能提提高高可可復(fù)復(fù)用用性性可以以在在算算法法、、類類、、過過程程、、框框架架和和完完整整應(yīng)應(yīng)用用程程序序的的級(jí)級(jí)別別上上創(chuàng)創(chuàng)建建可可復(fù)復(fù)用用性性。。復(fù)用用構(gòu)構(gòu)件件的的機(jī)機(jī)制制包包括括過程程調(diào)調(diào)用用和繼承承父父類類。設(shè)計(jì)計(jì)原原則則6::盡可可能能復(fù)復(fù)用用已已有有的的設(shè)設(shè)計(jì)計(jì)和和代代碼碼復(fù)用用已已有有的的設(shè)設(shè)計(jì)計(jì)是是對(duì)對(duì)可可復(fù)復(fù)用用性性設(shè)設(shè)計(jì)計(jì)的的補(bǔ)補(bǔ)充充。。通通過過復(fù)復(fù)用用可可從從以以往往對(duì)對(duì)可可復(fù)復(fù)用用構(gòu)構(gòu)件件的的投投資資中中獲獲益益。。設(shè)計(jì)計(jì)原原則則7::靈活活性性設(shè)設(shè)計(jì)計(jì)積極極預(yù)預(yù)測(cè)測(cè)將將來來可可能能在在實(shí)實(shí)現(xiàn)現(xiàn)和和功功能能上上的的變變化化,,并并為為此此采采取取相相應(yīng)應(yīng)措措施施。。在設(shè)設(shè)計(jì)計(jì)中中引引入入靈靈活活性性的的方方法法有有::降低低耦耦合合并并提提高高內(nèi)內(nèi)聚聚((易易于于提提高高替替換換能能力力))建立立抽抽象象((創(chuàng)創(chuàng)建建有有多多態(tài)態(tài)操操作作的的接接口口和和父父類類))不要將代碼寫寫死(消除代代碼中的常數(shù)數(shù))拋出異常(由由操作的調(diào)用用者處理異常常)使用并創(chuàng)建可可復(fù)用的代碼碼設(shè)計(jì)原則8::預(yù)計(jì)過期積極預(yù)測(cè)將來來可能在技術(shù)術(shù)和運(yùn)行環(huán)境境上的變化,,并為此采取取相應(yīng)措施。。在設(shè)計(jì)中應(yīng)遵遵循的預(yù)計(jì)過過期的規(guī)則有有:避免使用早期期發(fā)布的技術(shù)術(shù)避免使用針對(duì)對(duì)特定環(huán)境的的軟件庫避免使用軟件件庫中未編檔檔的或很少使使用的功能避免使用小公公司或可能不不提供長期支支持的公司提提供的可復(fù)用用構(gòu)件或特殊殊硬件使用眾多廠商商支持的標(biāo)準(zhǔn)準(zhǔn)語言和技術(shù)術(shù)設(shè)計(jì)原則9::可移植性設(shè)計(jì)計(jì)可移植性設(shè)計(jì)計(jì)的主要目標(biāo)標(biāo)是讓軟件在在盡可能多的的平臺(tái)上運(yùn)行行。實(shí)現(xiàn)可移移植性的規(guī)則則有:避免使用特定定環(huán)境的專有有功能使用不依賴特特定平臺(tái)的程程序設(shè)計(jì)語言言小心使用可能能依賴某一平平臺(tái)的類庫了解其他語言言可能依賴特特殊硬件結(jié)構(gòu)構(gòu)的功能和文文本文件的差差異設(shè)計(jì)原則10:可測(cè)試性設(shè)計(jì)計(jì)設(shè)計(jì)時(shí)采取措措施使得測(cè)試試易于進(jìn)行。??蓽y(cè)試性設(shè)計(jì)計(jì)的最重要的的方法是保證證代碼的所有有功能都能脫脫離圖形用戶戶界面執(zhí)行設(shè)計(jì)原則11:防御性設(shè)計(jì)為提高可靠性性,應(yīng)確保不不引入任何缺缺陷,能夠處處理其他代碼碼不適當(dāng)使用用構(gòu)件引起的的問題。按契約設(shè)計(jì)是是防御性設(shè)計(jì)計(jì)技術(shù),其核核心思想:被調(diào)用操作為為正常執(zhí)行必必須滿足的前置條件(precondition):調(diào)用操作在在調(diào)用一個(gè)操操作時(shí)有責(zé)任任確保該操作作的前置條件件成立。被調(diào)用操作正正常執(zhí)行所得得到的結(jié)果即即為后置條件(postcongdition):要求被調(diào)用用操作在返回回前有責(zé)任保保證這些后置置條件成立。。被調(diào)用操作在在執(zhí)行時(shí)確保保不會(huì)被修改改的不變量(invariant)。前置條件、后后置條件和不不變式都是布布爾表達(dá)式,,其計(jì)算結(jié)果果為假,表示示有錯(cuò)誤發(fā)生生??梢允褂脭嘌匝詸C(jī)制。在重要構(gòu)件的的邊界(如層層)應(yīng)始終保保留嚴(yán)格的斷斷言檢測(cè)。設(shè)計(jì)模式設(shè)計(jì)模式是面面向?qū)ο筌浖O(shè)計(jì)經(jīng)驗(yàn)的的總結(jié)。設(shè)計(jì)模式系統(tǒng)統(tǒng)地命名、解解釋和評(píng)價(jià)了了面向?qū)ο笙迪到y(tǒng)中的一個(gè)個(gè)重要的和重重復(fù)出現(xiàn)的設(shè)設(shè)計(jì)。設(shè)計(jì)模式使人人們可以簡單單方便地復(fù)用用成功的設(shè)計(jì)計(jì)和體系結(jié)構(gòu)構(gòu)。設(shè)計(jì)模式描述述了在特定場(chǎng)場(chǎng)景下使用的的解決一般設(shè)設(shè)計(jì)問題的類類和相互通信信的對(duì)象。設(shè)計(jì)模式的四四個(gè)基本要素素模式名用于描述模式式的名字,說說明模式的問問題、解決方方案和效果。。問題說明在何種場(chǎng)場(chǎng)合使用模式式。要描述使使用模式的先先決條件和特特定設(shè)計(jì)問題題。解決方案描述設(shè)計(jì)的成成分、它們之之間的相互關(guān)關(guān)系、各自的的職責(zé)和合作作方式。效果描述模式使使用的效果果,包括對(duì)對(duì)時(shí)間和空空間的衡量量,以及對(duì)對(duì)系統(tǒng)靈活活性、可擴(kuò)擴(kuò)充性、可可移植性的的影響。設(shè)計(jì)模式的的特性靈活性設(shè)計(jì)模式應(yīng)應(yīng)是精巧的的解決方法法。一般化設(shè)計(jì)模式不不依賴于某某一種特定定的系統(tǒng)類類型、程序序設(shè)計(jì)語言言或應(yīng)用領(lǐng)領(lǐng)域。已驗(yàn)證設(shè)計(jì)模式已已在某些面面向?qū)ο笙迪到y(tǒng)中實(shí)踐踐并已通過過測(cè)試。簡單性設(shè)計(jì)模式通通常較小,,只有幾個(gè)個(gè)類??蓮?fù)用可在設(shè)計(jì)層層次(不是是編碼層次次)應(yīng)用于于所有的系系統(tǒng)。面向?qū)ο笤O(shè)計(jì)模式以以面向?qū)ο笙蟮男问匠龀霈F(xiàn)。設(shè)計(jì)模式的的類型依據(jù)設(shè)計(jì)模模式工作目目的不同,,模式可分分為創(chuàng)建型模式式(Creationalpattern)結(jié)構(gòu)型模式式(Structuralpattern)行為型模式式(Behavioralpattern)創(chuàng)建型模式式與對(duì)象的創(chuàng)創(chuàng)建有關(guān);;結(jié)構(gòu)型模式式處理類和對(duì)對(duì)象的組合合,將一組組對(duì)象組合合成一個(gè)大大的結(jié)構(gòu),,例如復(fù)雜雜的用戶界界面;行為型模式式描述類或?qū)?duì)象的交互互和職責(zé)分分配,定義義對(duì)象間的的通信和復(fù)復(fù)雜程序中中的流控。。1、創(chuàng)建型型模式創(chuàng)建型模式式描述怎樣樣創(chuàng)建一個(gè)個(gè)對(duì)象。它它隱藏對(duì)象象創(chuàng)建的具具體細(xì)節(jié),,使用程序序可不依賴賴具體的對(duì)對(duì)象。因此此當(dāng)增加一一個(gè)新對(duì)象象時(shí)幾乎不不需要修改改代碼。創(chuàng)建型類模式將對(duì)象的部分分創(chuàng)建工作延延遲到子類,,創(chuàng)建型對(duì)象模式將它延遲到另另一對(duì)象中。。這時(shí),重點(diǎn)從從定義固定的的行為集合轉(zhuǎn)轉(zhuǎn)向定義一個(gè)個(gè)較小的基本本行為集合,,由這些行為為可以組成許許多更復(fù)雜的的行為集合。。模式式的的特特點(diǎn)點(diǎn)封裝裝了了系系統(tǒng)統(tǒng)中中使使用用的的類類的的具具體體信信息息;;隱藏藏了了這這些些類類的的實(shí)實(shí)例例如如何何創(chuàng)創(chuàng)建建、、如如何何放放在在一一起起的的((機(jī)機(jī)制制))。。系統(tǒng)統(tǒng)關(guān)關(guān)于于這這些些對(duì)對(duì)象象所所知知道道的的只只有有由由抽抽象象類類定定義義的的接接口口。。創(chuàng)建建型型類類模模式式有有FactoryMethod(工工廠廠方方法法)。。創(chuàng)建建型型對(duì)對(duì)象象模模式式包包括括AbstractFactory(抽抽象象工工廠廠)、、Builder(生生成成器器)、、Prototype(原原型型)、、Singleton(單單件件)四四種種模模式式。。2、、結(jié)結(jié)構(gòu)構(gòu)型型模模式式結(jié)構(gòu)構(gòu)型型模模式式處處理理類類或或?qū)?duì)象象的的組組合合,,即即描描述述類類和和對(duì)對(duì)象象之之間間怎怎樣樣組組織織起起來來形形成成大大的的結(jié)結(jié)構(gòu)構(gòu),,從從而而實(shí)實(shí)現(xiàn)現(xiàn)新新的的功功能能。。結(jié)構(gòu)型型類模式式采用繼繼承機(jī)機(jī)制來來組合合類,,如Adapter(適配配器)模式式;結(jié)構(gòu)型型對(duì)象模模式則描述述了對(duì)對(duì)象的的組裝裝方式式,如如Adapter(適適配器器)、、Bridge(橋接接)、、Composite(復(fù)復(fù)合)、Decorator(裝飾飾)、、Facade(外觀觀)、、Flyweight(享享元)、Proxy(代理理)等等七七種模模式。。3、行行為型型模式式行為模模式涉涉及算算法和和對(duì)象象之間間職責(zé)責(zé)的分分配。。行為為模式式不僅僅描述述對(duì)象象或類類的模模式,,還描描述它它們之之間的的通信信。行為模式式刻劃了了在運(yùn)行行時(shí)難以以跟蹤的的復(fù)雜的的控制流流,但這這類模式式把人們們的注意意力從控控制流轉(zhuǎn)轉(zhuǎn)移到對(duì)對(duì)象間的的相互聯(lián)聯(lián)系。類行為模模式使用用繼承機(jī)機(jī)制在類類間分派派行為,如TemplateMethod(模模板方法法)和Interpreter(解釋器器)模模式。對(duì)象行為為模式使使用對(duì)象象復(fù)合而而不是繼繼承,描描述對(duì)象象如何協(xié)協(xié)同完成成預(yù)定任任務(wù),如ChainofResponsibility(職責(zé)責(zé)鏈)、、Command(命令)、Iterator(遍遍歷器)、Mediator(中中介者)、Memento(備忘忘錄)、、Observer(觀察察者)、、State(狀態(tài)態(tài))、Strategy(策略)、Visitor(訪問問者)等等九種種模式。。面向?qū)ο笙鬁y(cè)試面向?qū)ο笙笙到y(tǒng)的的測(cè)試與與傳統(tǒng)的的基于功功能的系系統(tǒng)的測(cè)測(cè)試之間間存在很很大差別別:對(duì)象作為為一個(gè)單單獨(dú)的構(gòu)構(gòu)件一般般比一個(gè)個(gè)功能模模塊大。。由對(duì)象到到子系統(tǒng)統(tǒng)的集成成通常是是松散耦耦合的,,沒有一一個(gè)明顯顯的“頂頂層”。。如果對(duì)象象被復(fù)用用,測(cè)試試者無權(quán)權(quán)進(jìn)入構(gòu)構(gòu)件內(nèi)部部來分析析其代碼碼。面向?qū)ο笙笙到y(tǒng)的的測(cè)試可可分為4個(gè)層次次:測(cè)試與對(duì)對(duì)象相關(guān)關(guān)聯(lián)的單單個(gè)操作作它們們是是一一些些函函數(shù)數(shù)或或程程序序,,傳傳統(tǒng)統(tǒng)的的白白盒盒測(cè)測(cè)試試和和黑黑盒盒測(cè)測(cè)試試方方法法都都可可以以使使用用。。測(cè)試試單單個(gè)個(gè)對(duì)對(duì)象象類類黑盒盒測(cè)測(cè)試試的的原原理理不不變變,,但但等等價(jià)價(jià)劃劃分分的的概概念念要要擴(kuò)擴(kuò)展展以以適適合合操操作作序序列列的的情情況況。。測(cè)試試對(duì)對(duì)象象簇簇((聚聚集集))嚴(yán)格格的的自自頂頂向向下下或或自自底底向向上上的的集集成成不不適適合合一一組組關(guān)關(guān)聯(lián)聯(lián)對(duì)對(duì)象象的的情情形形。。應(yīng)應(yīng)使使用用基基于于場(chǎng)場(chǎng)景景的的測(cè)測(cè)試試等等其其他他方方法法。。對(duì)象類測(cè)測(cè)試測(cè)試面向?qū)?duì)象系統(tǒng)根據(jù)系統(tǒng)需需求規(guī)格說說明進(jìn)行檢檢驗(yàn)和有效效性驗(yàn)證的的過程可以以像對(duì)其他他范型的系系統(tǒng)一樣進(jìn)進(jìn)行。在測(cè)試對(duì)象象時(shí),完全全的覆蓋測(cè)測(cè)試應(yīng)當(dāng)包包括:隔離對(duì)象中中所有操作,進(jìn)行獨(dú)立立測(cè)試。測(cè)試對(duì)象中中所有屬性的設(shè)置和訪訪問。測(cè)試對(duì)象的的所有可能能的狀態(tài)轉(zhuǎn)換。所有可能能引起狀態(tài)態(tài)改變的事事件都要模模擬到。對(duì)象類,作作為在語法法上獨(dú)立的的構(gòu)件,應(yīng)應(yīng)當(dāng)允許用用在不同的的應(yīng)用中。。每個(gè)類都都應(yīng)是可靠靠的,并且且不需了解解任何實(shí)現(xiàn)現(xiàn)的細(xì)節(jié)就就能復(fù)用。。因此,對(duì)對(duì)象類應(yīng)盡盡可能孤立立地進(jìn)行測(cè)測(cè)試。設(shè)計(jì)操作的的測(cè)試用例例時(shí)需要注注意:首先定義測(cè)測(cè)試對(duì)象的的各操作的的測(cè)試用例例。對(duì)于一個(gè)單單獨(dú)的操作作,可通過過該操作的的前置條件件選擇測(cè)試試用例,產(chǎn)產(chǎn)生輸出,,讓測(cè)試者者能夠判斷斷后置條件件是否能夠夠得到滿足足。各個(gè)操作的的測(cè)試與傳傳統(tǒng)對(duì)函數(shù)數(shù)過程定義義的測(cè)試基基本相同。。然后再把測(cè)測(cè)試用例組組擴(kuò)充,針針對(duì)被測(cè)操操作調(diào)用對(duì)對(duì)象類中其其他操作的的情況,設(shè)設(shè)計(jì)操作序序列的測(cè)試試用例組。。測(cè)試可以覆覆蓋每個(gè)操操作的整個(gè)個(gè)輸入域。。但這不夠夠,還必須須測(cè)試這些些操作的相相互作用,,才能認(rèn)為為測(cè)試是充充分的。各個(gè)操作間間的相互作作用包括類內(nèi)通信和類間通信。putReferencePoint(Point)moveTo(Point)ReferencePointarea()draw()erase()getReferencePoint(Point)DisplayableShape(Point)DisplayableShape類內(nèi)消息類間消息DisplayableShape()在設(shè)計(jì)對(duì)象象類的規(guī)格格說明測(cè)試試時(shí)需要注注意:把對(duì)象類當(dāng)當(dāng)做一個(gè)黑黑盒,確認(rèn)認(rèn)類的實(shí)現(xiàn)現(xiàn)是否遵照照它的定義義。對(duì)于““Stack”的測(cè)測(cè)試應(yīng)當(dāng)確確保LIFO原原則得以實(shí)實(shí)施。對(duì)于多數(shù)的的對(duì)象類,,主要檢驗(yàn)驗(yàn)在類聲明明的public域中的的那些操作作。對(duì)于子類,,要檢查繼繼承父類的的public域域和protected域域的那些操操作。檢查所有public域,protected域及private域中中的操作以以完全檢查查對(duì)象中定定義的操作作。等價(jià)劃分的的思想也可可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論