freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第9章-構(gòu)件級設(shè)計(編輯修改稿)

2025-09-12 01:16 本頁面
 

【文章內(nèi)容簡介】 明的前提,這些接口顯示了系統(tǒng)中構(gòu)件通信和協(xié)作的方式。 實施構(gòu)件級設(shè)計 ?圖 96給出了前述印刷系統(tǒng)的一個簡單協(xié)作圖。 ProductionJob、 WorkOrder和JobQueue三個對象相互協(xié)作為生產(chǎn)線準(zhǔn)備印刷作業(yè)。圖中的箭頭表示對象間傳遞的消息。 ?隨著設(shè)計的進(jìn)行,消息通過下列方式的擴展語法來細(xì)化: [guard condition] sequence expression(return value):=message name(argument list) 實施構(gòu)件級設(shè)計 圖 96 帶消息的協(xié)作圖 實施構(gòu)件級設(shè)計 ?[guard condition]采用對象約束語言 OCL來書寫,并且說明了在消息發(fā)出之前應(yīng)該滿足什么樣的條件集合; ?Sequence expression是一個表明消息發(fā)送序號的整數(shù)或其他樣式的表明發(fā)送順序的指示符; ?(return value)是由消息喚醒操作返回的信息名; ?message name表示喚醒的操作,(argument list)是傳遞給操作的屬性列表。 實施構(gòu)件級設(shè)計 ?步驟 3b:為每一個構(gòu)件確定適當(dāng)?shù)慕涌?。在構(gòu)件級設(shè)計中,一個 UML接口是“一組外部可見的(即公共的)操作。接口不包括內(nèi)部結(jié)構(gòu),沒有屬性,沒有關(guān)聯(lián) …… 。接口是某個抽象類的等價物,該抽象類提供了設(shè)計類之間的可控連接。實際上,為設(shè)計類定義的操作可以歸結(jié)為一個或者更多的抽象類。抽象類內(nèi)的每個操作應(yīng)該是內(nèi)聚的,即它應(yīng)該展示那些關(guān)注于一個有限功能或者子功能的處理。 實施構(gòu)件級設(shè)計 ?參照圖 91,由于 initiateJob接口沒有展現(xiàn)出足夠的內(nèi)聚性而受到爭議。實際上,它完成三個不同的子功能:建立工作單,檢查任務(wù)的優(yōu)先級 , 并將任務(wù)傳遞給生產(chǎn)線 。接口設(shè)計應(yīng)該重構(gòu)。一種方法是重新檢查設(shè)計類并定義一個新類 WorkOrder,該類用來處理與裝配工作單相關(guān)的所有活動。 buildWorkOrder()操作 成為該類的一部分。另外可能要定義一個 合并了操作checkPriority()的 JobQueue類 。 ProductionJob類包括傳遞給生產(chǎn)線的生產(chǎn)任務(wù)的所有相關(guān)信息。initiateJob接口將采用圖 97所示的形式。 initiateJob現(xiàn)在是內(nèi)聚的 ,集中在一個功能上。與 ProductionJob、WorkOrder和 JobQueue相關(guān)的接口都是近乎專誠的。 實施構(gòu)件級設(shè)計 圖 97 為 PrintJob重構(gòu)接口和類定義 實施構(gòu)件級設(shè)計 ?步驟 3c:細(xì)化屬性并且定義相應(yīng)的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu) 。 UML采用下面的語法來定義屬性的數(shù)據(jù)類型: name:typeexpression=initialvalue{property string} 其中 name是屬性名, type expression是數(shù)據(jù)類型; initialvalue是創(chuàng)建對象時屬性的初始值; property string用于定義屬性的特征或特性。 實施構(gòu)件級設(shè)計 ?在構(gòu)件級設(shè)計的第一輪迭代中,屬性通常用名字來描述。隨著設(shè)計的進(jìn)一步細(xì)化,使用 UML的屬性格式注釋來定義每一個屬性。如可以下列方式來定義 paperTypeweight: paperTypeweight:string=―A‖{contains 1 of 4 values – A,B,C or D} ?如果某一屬性在多個設(shè)計類中重復(fù)出現(xiàn),并且其自身具有比較復(fù)雜的結(jié)構(gòu),最好是為這個屬性創(chuàng)建一個單獨的類。 實施構(gòu)件級設(shè)計 ?步驟 3d:詳細(xì)描述每個操作中的處理流。 可以用流程圖、偽代碼或者 UML活動圖來完成。每個軟件構(gòu)件都需要應(yīng)用逐步求精概念通過大量的迭代進(jìn)行細(xì)化。 ?第一輪迭代中,將每個操作都定義為設(shè)計類的一部分。任何情況下,操作應(yīng)該采用確保高內(nèi)聚性的方式來刻畫;即,一個操作應(yīng)該完成單一的目標(biāo)功能或者子功能。接下來的一輪迭代,只是完成對操作名的詳細(xì)擴展。如對圖 91中的操作putePaperCost()可以采用如下方式進(jìn)行擴展 : putePaperCost(weight,size,color):numeric 實施構(gòu)件級設(shè)計 ?如果實現(xiàn) putePaperCost()的 算法簡單而且易于理解,則沒有必要開展進(jìn)一步的設(shè)計細(xì)化 。軟件編碼人員將會提供實現(xiàn)這些操作的必要細(xì)節(jié)。如果算法比較復(fù)雜或者難于理解,則需要進(jìn)行設(shè)計細(xì)化 。圖 98給出了操作putePaperCost()的一個 UML活動圖。 當(dāng)活動圖用于構(gòu)件級設(shè)計的規(guī)格說明時,通常都在比源碼更高的抽象級上表示 。另外,還可以在設(shè)計規(guī)格說明中使用偽代碼。 實施構(gòu)件級設(shè)計 圖 98 putePaperCost()操作的 UML活動圖 實施構(gòu)件級設(shè)計 ?步驟 4:說明 持久數(shù)據(jù)源 (數(shù)據(jù)庫和文件 )并確定管理數(shù)據(jù)源所需要的類。 數(shù)據(jù)庫和文件通常都凌架于單獨的構(gòu)件設(shè)計描述之上。在多數(shù)情況下,這些持久數(shù)據(jù)存儲起初都被指定為體系結(jié)構(gòu)設(shè)計的一部分,然而,隨著設(shè)計細(xì)化過程的不斷深入,提供關(guān)于這些持久數(shù)據(jù)源的結(jié)構(gòu)和組織等額外細(xì)節(jié)常常是有用的。 實施構(gòu)件級設(shè)計 ?步驟 5:開發(fā)并且細(xì)化類或構(gòu)件的行為表示。 UML狀態(tài)圖被用作分析模型的一部分,以表示系統(tǒng)的外部可觀察的行為和更多的分析類個體的局部行為。在構(gòu)件級設(shè)計過程中,有些時候?qū)υO(shè)計類的行為進(jìn)行建模是必要的。 ?對象 (程序執(zhí)行時的設(shè)計類實例 )的動態(tài)行為受到外部事件和對象當(dāng)前狀態(tài) (行為方式 )的影響。為了理解對象的動態(tài)行為,設(shè)計者必須檢查設(shè)計類生命周期中所有相關(guān)的用例,這些用例提供的信息可以幫助設(shè)計者描繪影響對象的事件,以及隨著時間流逝和事件的發(fā)生對象所處的狀態(tài)。圖 99描述了 使用 UML狀態(tài)圖表示的狀態(tài)之間的轉(zhuǎn)換 。 實施構(gòu)件級設(shè)計 圖 99 PrintJob類的狀態(tài)圖 實施構(gòu)件級設(shè)計 ?從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換,都表示為如下形式的事件序列: eventname(parameterlist)[guardconditon]/action expression ?其中 eventname表示事件; parameterlist包含了與事件相關(guān)的數(shù)據(jù); guardcondition采用對象約束語言書寫,并描述了一個在事件發(fā)生前必須滿足的條件, action expression定義了一個狀態(tài)轉(zhuǎn)換時發(fā)生的動作。 ?針對狀態(tài)的進(jìn)入和離開兩種情形,每個狀態(tài)都可以定義entry/和 exit/兩個動作。多數(shù)情況下,這些動作與正在建模的類的相關(guān)操作相對應(yīng)。 do/指示符提供了一種機制,用來顯示伴隨此種狀態(tài)的相關(guān)活動;而 include/指示符則提供了通過在狀態(tài)定義中嵌入更多狀態(tài)圖細(xì)節(jié)的方式細(xì)化的手段。 實施構(gòu)件級設(shè)計 ?行為模型經(jīng)常包含一些在其他設(shè)計模型中不明顯的信息 。例如,通過仔細(xì)查看圖 99中的狀態(tài)圖可以知道,當(dāng)?shù)贸鲇∷⑷蝿?wù)的價錢和進(jìn)度數(shù)據(jù)時, PrintJob類的動態(tài)行為取決于用戶對此是否認(rèn)可。如果沒有同意,印刷工作就不能提交,因為不可能到達(dá) submittingJob狀態(tài)。 實施構(gòu)件級設(shè)計 ?步驟 6:細(xì)化部署圖以提供額外的實現(xiàn)細(xì)節(jié)。 部署圖用作體系結(jié)構(gòu)設(shè)計的一部分,并且部署圖采用描述符形式來表示。在這種表示形式中,主要的系統(tǒng)功能都表示在容納這些功能的計算環(huán)境中。 ?在構(gòu)件級設(shè)計過程中,部署圖應(yīng)該被細(xì)化以表示主要構(gòu)件包的位置。然而,構(gòu)件一般在構(gòu)件圖中不被單獨表示,目的在于避免圖的復(fù)雜性。某些情況下,部署圖在這個時候被細(xì)化成實例形式。這意味著指定的硬件和要使用的操作系統(tǒng)環(huán)境應(yīng)加以說明,而構(gòu)件包在這個環(huán)境中的位置等也需要指出。 實施構(gòu)件級設(shè)計 ?步驟 7:考慮每一個構(gòu)件級設(shè)計表示,并且時刻考慮其他選擇。 設(shè)計是一個迭代過程。 創(chuàng)建的第一個構(gòu)件級模型總沒有迭代 N次之后得到的模型那么全面、一致或精確 。在進(jìn)行設(shè)計工作時,重構(gòu)是十分必要的。 ?設(shè)計中經(jīng)常存在其他的設(shè)計方案,在沒有決定最終設(shè)計模型之前,最好的設(shè)計師會考慮所有(或大部分 )的方案,并且仔細(xì)考慮和分析這些方
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1