版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第九章第九章 軟件詳細(xì)設(shè)計(jì)軟件詳細(xì)設(shè)計(jì)9.1 9.1 詳細(xì)設(shè)計(jì)的任務(wù)與過程模型詳細(xì)設(shè)計(jì)的任務(wù)與過程模型9.2 9.2 用例設(shè)計(jì)用例設(shè)計(jì)9.3 9.3 子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì)9.4 9.4 構(gòu)件設(shè)計(jì)構(gòu)件設(shè)計(jì)9.5 9.5 類設(shè)計(jì)類設(shè)計(jì)9.6 9.6 數(shù)據(jù)模型設(shè)計(jì)數(shù)據(jù)模型設(shè)計(jì)9.7 9.7 設(shè)計(jì)整合與驗(yàn)證設(shè)計(jì)整合與驗(yàn)證2021-12-281軟件詳細(xì)設(shè)計(jì)軟件詳細(xì)設(shè)計(jì)本章介紹本章介紹詳細(xì)設(shè)計(jì)的主要工作任務(wù)、用以指導(dǎo)完成詳細(xì)設(shè)計(jì)的主要工作任務(wù)、用以指導(dǎo)完成這些任務(wù)的詳細(xì)設(shè)計(jì)過程模型這些任務(wù)的詳細(xì)設(shè)計(jì)過程模型探討詳細(xì)設(shè)計(jì)過程中的七大主要活動(dòng)探討詳細(xì)設(shè)計(jì)過程中的七大主要活動(dòng) 用例設(shè)計(jì)、子系統(tǒng)設(shè)計(jì)、構(gòu)件設(shè)計(jì)、類
2、設(shè)用例設(shè)計(jì)、子系統(tǒng)設(shè)計(jì)、構(gòu)件設(shè)計(jì)、類設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)、設(shè)計(jì)整合及詳細(xì)設(shè)計(jì)計(jì)、數(shù)據(jù)模型設(shè)計(jì)、設(shè)計(jì)整合及詳細(xì)設(shè)計(jì)驗(yàn)證驗(yàn)證活動(dòng)涉及的過程、技術(shù)和方法?;顒?dòng)涉及的過程、技術(shù)和方法。2021-12-2829.19.1詳細(xì)設(shè)計(jì)的任務(wù)與過程模型詳細(xì)設(shè)計(jì)的任務(wù)與過程模型詳細(xì)設(shè)計(jì)的詳細(xì)設(shè)計(jì)的任務(wù)任務(wù): 對(duì)體系結(jié)構(gòu)設(shè)計(jì)和界面設(shè)計(jì)的成果進(jìn)行細(xì)化和對(duì)體系結(jié)構(gòu)設(shè)計(jì)和界面設(shè)計(jì)的成果進(jìn)行細(xì)化和精化,最終獲得高質(zhì)量的詳細(xì)設(shè)計(jì)模型。精化,最終獲得高質(zhì)量的詳細(xì)設(shè)計(jì)模型。詳細(xì)設(shè)計(jì)模型的質(zhì)量詳細(xì)設(shè)計(jì)模型的質(zhì)量要素要素:正確性正確性模型中若干設(shè)計(jì)元素通過模型指定模型中若干設(shè)計(jì)元素通過模型指定的協(xié)作方式能夠?qū)崿F(xiàn)所有的軟件需求;的協(xié)作方
3、式能夠?qū)崿F(xiàn)所有的軟件需求;優(yōu)化性優(yōu)化性模型以充分優(yōu)化的方式實(shí)現(xiàn)所有的模型以充分優(yōu)化的方式實(shí)現(xiàn)所有的軟件需求;軟件需求;設(shè)計(jì)充分性設(shè)計(jì)充分性模型的細(xì)化和精確程度足以作模型的細(xì)化和精確程度足以作為軟件編程人員的全部工作基礎(chǔ),沒有含混、為軟件編程人員的全部工作基礎(chǔ),沒有含混、籠統(tǒng)和歧義之處。籠統(tǒng)和歧義之處。2021-12-283詳細(xì)設(shè)計(jì)過程的主要活動(dòng)詳細(xì)設(shè)計(jì)過程的主要活動(dòng)(1 1)用例設(shè)計(jì)用例設(shè)計(jì)針對(duì)需求分析模型中的每個(gè)用例,基于體針對(duì)需求分析模型中的每個(gè)用例,基于體系結(jié)構(gòu)和用戶界面設(shè)計(jì)模型給出的設(shè)計(jì)元系結(jié)構(gòu)和用戶界面設(shè)計(jì)模型給出的設(shè)計(jì)元素,設(shè)計(jì)用例的軟件實(shí)現(xiàn)方案。素,設(shè)計(jì)用例的軟件實(shí)現(xiàn)方案。通過詳
4、細(xì)考察每個(gè)設(shè)計(jì)元素與其他設(shè)計(jì)元通過詳細(xì)考察每個(gè)設(shè)計(jì)元素與其他設(shè)計(jì)元素協(xié)同完成用例功能的過程,可以更素協(xié)同完成用例功能的過程,可以更精確精確地定義這些設(shè)計(jì)元素地定義這些設(shè)計(jì)元素。2021-12-284詳細(xì)設(shè)計(jì)過程的主要活動(dòng)詳細(xì)設(shè)計(jì)過程的主要活動(dòng)(2 2)子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)活動(dòng)僅設(shè)定了子系統(tǒng)的職責(zé)體系結(jié)構(gòu)設(shè)計(jì)活動(dòng)僅設(shè)定了子系統(tǒng)的職責(zé)和對(duì)外接口,并未深究子系統(tǒng)的內(nèi)部實(shí)現(xiàn)和對(duì)外接口,并未深究子系統(tǒng)的內(nèi)部實(shí)現(xiàn)方案。方案。子系統(tǒng)設(shè)計(jì)的任務(wù)子系統(tǒng)設(shè)計(jì)的任務(wù):確定子系統(tǒng)內(nèi)部的結(jié)確定子系統(tǒng)內(nèi)部的結(jié)構(gòu),即,設(shè)置包含于其中的更小粒度的子構(gòu),即,設(shè)置包含于其中的更小粒度的子系統(tǒng)、構(gòu)件和設(shè)計(jì)類,明確它們之
5、間的協(xié)系統(tǒng)、構(gòu)件和設(shè)計(jì)類,明確它們之間的協(xié)作關(guān)系,確保它們能夠協(xié)同實(shí)現(xiàn)子系統(tǒng)接作關(guān)系,確保它們能夠協(xié)同實(shí)現(xiàn)子系統(tǒng)接口規(guī)定的所有功能和行為??谝?guī)定的所有功能和行為。2021-12-285詳細(xì)設(shè)計(jì)過程的主要活動(dòng)詳細(xì)設(shè)計(jì)過程的主要活動(dòng)(3 3)構(gòu)件設(shè)計(jì)構(gòu)件設(shè)計(jì)類似于子系統(tǒng)設(shè)計(jì),構(gòu)件設(shè)計(jì)是對(duì)體系結(jié)類似于子系統(tǒng)設(shè)計(jì),構(gòu)件設(shè)計(jì)是對(duì)體系結(jié)構(gòu)設(shè)計(jì)活動(dòng)中設(shè)定的構(gòu)件的內(nèi)部實(shí)現(xiàn)方案構(gòu)設(shè)計(jì)活動(dòng)中設(shè)定的構(gòu)件的內(nèi)部實(shí)現(xiàn)方案的設(shè)計(jì),任務(wù)是定義構(gòu)件內(nèi)部的設(shè)計(jì)元素的設(shè)計(jì),任務(wù)是定義構(gòu)件內(nèi)部的設(shè)計(jì)元素及協(xié)作方法。及協(xié)作方法。構(gòu)件的內(nèi)部元素既可以是構(gòu)件的內(nèi)部元素既可以是類類,也可以是粒,也可以是粒度更細(xì)的(子)度更細(xì)的(子)構(gòu)件構(gòu)
6、件。2021-12-286詳細(xì)設(shè)計(jì)過程的主要活動(dòng)詳細(xì)設(shè)計(jì)過程的主要活動(dòng)(4 4)類設(shè)計(jì)類設(shè)計(jì)軟件設(shè)計(jì)活動(dòng)圍繞軟件需求的實(shí)現(xiàn)設(shè)定了軟件設(shè)計(jì)活動(dòng)圍繞軟件需求的實(shí)現(xiàn)設(shè)定了許多類,包括界面類、直接出現(xiàn)于體系結(jié)許多類,包括界面類、直接出現(xiàn)于體系結(jié)構(gòu)中的關(guān)鍵設(shè)計(jì)類、實(shí)現(xiàn)用例功能或行為構(gòu)中的關(guān)鍵設(shè)計(jì)類、實(shí)現(xiàn)用例功能或行為的設(shè)計(jì)類、子系統(tǒng)或構(gòu)件中的設(shè)計(jì)類。的設(shè)計(jì)類、子系統(tǒng)或構(gòu)件中的設(shè)計(jì)類。類設(shè)計(jì)負(fù)責(zé)對(duì)這些類進(jìn)行必要的設(shè)計(jì)精化,類設(shè)計(jì)負(fù)責(zé)對(duì)這些類進(jìn)行必要的設(shè)計(jì)精化,使之精細(xì)到可以提交軟件實(shí)現(xiàn)的程度。使之精細(xì)到可以提交軟件實(shí)現(xiàn)的程度。具體的類設(shè)計(jì)工作包括:具體的類設(shè)計(jì)工作包括:確定類的可見范確定類的可見范圍,定義
7、類的操作和屬性,精化類之間的圍,定義類的操作和屬性,精化類之間的關(guān)系,等。關(guān)系,等。2021-12-287詳細(xì)設(shè)計(jì)過程的主要活動(dòng)詳細(xì)設(shè)計(jì)過程的主要活動(dòng)(5 5)數(shù)據(jù)模型數(shù)據(jù)模型設(shè)計(jì)設(shè)計(jì)數(shù)據(jù)模型數(shù)據(jù)模型指指,需要持久保存的數(shù)據(jù)條目的內(nèi)容及需要持久保存的數(shù)據(jù)條目的內(nèi)容及條目之間的邏輯聯(lián)系。條目之間的邏輯聯(lián)系。數(shù)據(jù)模型還包含持久存儲(chǔ)機(jī)制提供的優(yōu)化數(shù)據(jù)操數(shù)據(jù)模型還包含持久存儲(chǔ)機(jī)制提供的優(yōu)化數(shù)據(jù)操作性能的特殊設(shè)施作性能的特殊設(shè)施u如,關(guān)系數(shù)據(jù)庫中的存儲(chǔ)過程。如,關(guān)系數(shù)據(jù)庫中的存儲(chǔ)過程。數(shù)據(jù)模型設(shè)計(jì)活動(dòng)包括:數(shù)據(jù)模型設(shè)計(jì)活動(dòng)包括:u 確定設(shè)計(jì)模型中類的對(duì)象、這些對(duì)象的哪些屬性需確定設(shè)計(jì)模型中類的對(duì)象、這些
8、對(duì)象的哪些屬性需要持久保存;要持久保存;u 在設(shè)計(jì)模型與持久存儲(chǔ)機(jī)制支持的數(shù)據(jù)組織方式在設(shè)計(jì)模型與持久存儲(chǔ)機(jī)制支持的數(shù)據(jù)組織方式(例如關(guān)系數(shù)據(jù)庫中的表、關(guān)鍵字、外鍵等)之間進(jìn)(例如關(guān)系數(shù)據(jù)庫中的表、關(guān)鍵字、外鍵等)之間進(jìn)行映射;行映射;u 為提高數(shù)據(jù)存儲(chǔ)、操作的性能為提高數(shù)據(jù)存儲(chǔ)、操作的性能,設(shè)計(jì)持久存儲(chǔ)機(jī)制設(shè)計(jì)持久存儲(chǔ)機(jī)制的優(yōu)化設(shè)施。的優(yōu)化設(shè)施。2021-12-288詳細(xì)設(shè)計(jì)過程的主要活動(dòng)詳細(xì)設(shè)計(jì)過程的主要活動(dòng)(6 6)設(shè)計(jì)整合與驗(yàn)證。設(shè)計(jì)整合與驗(yàn)證。整合前面獲得的所有設(shè)計(jì)模型,檢查并消解它整合前面獲得的所有設(shè)計(jì)模型,檢查并消解它們之間的不一致性,剔除冗余性,以用例為導(dǎo)們之間的不一致性,剔除
9、冗余性,以用例為導(dǎo)引構(gòu)建設(shè)計(jì)模型中所有元素協(xié)力完成用例目標(biāo)引構(gòu)建設(shè)計(jì)模型中所有元素協(xié)力完成用例目標(biāo)的完整視圖,最終形成設(shè)計(jì)規(guī)約。的完整視圖,最終形成設(shè)計(jì)規(guī)約。基于該設(shè)計(jì)規(guī)約,重新審視所有軟件需求項(xiàng)的基于該設(shè)計(jì)規(guī)約,重新審視所有軟件需求項(xiàng)的實(shí)現(xiàn)方案,研究如何化解迄今標(biāo)識(shí)出來的所有實(shí)現(xiàn)方案,研究如何化解迄今標(biāo)識(shí)出來的所有重要的全局風(fēng)險(xiǎn),在此過程中驗(yàn)證詳細(xì)設(shè)計(jì)的重要的全局風(fēng)險(xiǎn),在此過程中驗(yàn)證詳細(xì)設(shè)計(jì)的正確性、優(yōu)化性和設(shè)計(jì)充分性。正確性、優(yōu)化性和設(shè)計(jì)充分性。對(duì)中、大型軟件項(xiàng)目,上述詳細(xì)設(shè)計(jì)過程往往對(duì)中、大型軟件項(xiàng)目,上述詳細(xì)設(shè)計(jì)過程往往需要迭代多次需要迭代多次,經(jīng)過反復(fù)求精后才能獲得高質(zhì),經(jīng)過反復(fù)求精
10、后才能獲得高質(zhì)量的軟件設(shè)計(jì)模型。迭代的方式與體系結(jié)構(gòu)設(shè)量的軟件設(shè)計(jì)模型。迭代的方式與體系結(jié)構(gòu)設(shè)計(jì)過程類似,見計(jì)過程類似,見7.37.3節(jié)。節(jié)。2021-12-2899.2 9.2 用例設(shè)計(jì)用例設(shè)計(jì)用例用例設(shè)計(jì)設(shè)計(jì):針對(duì)針對(duì)軟件需求的分析模型中的每個(gè)用例,軟件需求的分析模型中的每個(gè)用例,在前述的體系結(jié)構(gòu)設(shè)計(jì)和界面設(shè)計(jì)給出的設(shè)計(jì)元素在前述的體系結(jié)構(gòu)設(shè)計(jì)和界面設(shè)計(jì)給出的設(shè)計(jì)元素的基礎(chǔ)上,設(shè)計(jì)用例的詳細(xì)實(shí)現(xiàn)方案。的基礎(chǔ)上,設(shè)計(jì)用例的詳細(xì)實(shí)現(xiàn)方案。u用例設(shè)計(jì)活動(dòng)用例設(shè)計(jì)活動(dòng)要要確保界面設(shè)計(jì)模型、體系結(jié)構(gòu)模型與確保界面設(shè)計(jì)模型、體系結(jié)構(gòu)模型與軟件需求的符合性。軟件需求的符合性。用例設(shè)計(jì)的主要任務(wù)用例設(shè)計(jì)的
11、主要任務(wù)(1 1)針對(duì)每個(gè)用例,聯(lián)合采用體系結(jié)構(gòu)設(shè)計(jì)中確定針對(duì)每個(gè)用例,聯(lián)合采用體系結(jié)構(gòu)設(shè)計(jì)中確定的軟件設(shè)計(jì)元素(包括子系統(tǒng)、構(gòu)件、關(guān)鍵設(shè)計(jì)的軟件設(shè)計(jì)元素(包括子系統(tǒng)、構(gòu)件、關(guān)鍵設(shè)計(jì)類),以及用戶界面設(shè)計(jì)中確定的界面類(包括屏類),以及用戶界面設(shè)計(jì)中確定的界面類(包括屏幕類及輸入表格類),幕類及輸入表格類),完整地實(shí)現(xiàn)每個(gè)用例要求的完整地實(shí)現(xiàn)每個(gè)用例要求的業(yè)務(wù)處理功能和交互動(dòng)作序列業(yè)務(wù)處理功能和交互動(dòng)作序列。(2 2)通過詳細(xì)考察每個(gè)設(shè)計(jì)元素與其協(xié)作者之間的通過詳細(xì)考察每個(gè)設(shè)計(jì)元素與其協(xié)作者之間的協(xié)作關(guān)系,以求協(xié)作關(guān)系,以求更精確地定義這些設(shè)計(jì)元素更精確地定義這些設(shè)計(jì)元素,例如,例如補(bǔ)齊必要的
12、細(xì)節(jié),調(diào)整接口定義等。補(bǔ)齊必要的細(xì)節(jié),調(diào)整接口定義等。2021-12-2810用例設(shè)計(jì)用例設(shè)計(jì)用例設(shè)計(jì)的首要活動(dòng)就是用例設(shè)計(jì)的首要活動(dòng)就是,以體系結(jié)構(gòu)設(shè),以體系結(jié)構(gòu)設(shè)計(jì)模型和界面設(shè)計(jì)模型中的設(shè)計(jì)元素替代計(jì)模型和界面設(shè)計(jì)模型中的設(shè)計(jì)元素替代UMLUML交互圖中的分析類,通過設(shè)計(jì)元素的職交互圖中的分析類,通過設(shè)計(jì)元素的職責(zé)及其交互協(xié)作完整地實(shí)現(xiàn)用例。此項(xiàng)活責(zé)及其交互協(xié)作完整地實(shí)現(xiàn)用例。此項(xiàng)活動(dòng)稱為動(dòng)稱為用例實(shí)現(xiàn)方案的(詳細(xì))設(shè)計(jì)。用例實(shí)現(xiàn)方案的(詳細(xì))設(shè)計(jì)。2021-12-2811用例設(shè)計(jì)用例設(shè)計(jì)用例設(shè)計(jì)的子活動(dòng)歸納如下:用例設(shè)計(jì)的子活動(dòng)歸納如下:(1 1)設(shè)計(jì)用例實(shí)現(xiàn)方案;設(shè)計(jì)用例實(shí)現(xiàn)方案;(2
13、 2)導(dǎo)出設(shè)計(jì)類圖;導(dǎo)出設(shè)計(jì)類圖;(3 3)整合并優(yōu)化用例實(shí)現(xiàn)方案。整合并優(yōu)化用例實(shí)現(xiàn)方案。2021-12-28129.2.1 9.2.1 設(shè)計(jì)用例實(shí)現(xiàn)方案設(shè)計(jì)用例實(shí)現(xiàn)方案a)a)按照按照用例逐個(gè)給出用例逐個(gè)給出用用UMLUML交互圖表示的軟交互圖表示的軟件實(shí)現(xiàn)方案件實(shí)現(xiàn)方案,研究分析模型中該用例的研究分析模型中該用例的UMLUML交互圖表示交互圖表示,它是生成基于設(shè)計(jì)元素,它是生成基于設(shè)計(jì)元素的用例實(shí)現(xiàn)方案的主要基礎(chǔ)。的用例實(shí)現(xiàn)方案的主要基礎(chǔ)。b)b)需要研究體系結(jié)構(gòu)模型和界面設(shè)計(jì)模型中需要研究體系結(jié)構(gòu)模型和界面設(shè)計(jì)模型中與當(dāng)前待設(shè)計(jì)的與當(dāng)前待設(shè)計(jì)的用例相關(guān)的設(shè)計(jì)元素用例相關(guān)的設(shè)計(jì)元素,它,
14、它們構(gòu)成用例實(shí)現(xiàn)方案的實(shí)際參與者。們構(gòu)成用例實(shí)現(xiàn)方案的實(shí)際參與者。c)c)研究研究與當(dāng)前待設(shè)計(jì)的與當(dāng)前待設(shè)計(jì)的用例相關(guān)的非功能性用例相關(guān)的非功能性需求項(xiàng)需求項(xiàng),設(shè)計(jì)師在用例實(shí)現(xiàn)方案的設(shè)計(jì)過,設(shè)計(jì)師在用例實(shí)現(xiàn)方案的設(shè)計(jì)過程中必須給出其實(shí)現(xiàn)方法。程中必須給出其實(shí)現(xiàn)方法。2021-12-2813設(shè)計(jì)用例實(shí)現(xiàn)方案設(shè)計(jì)用例實(shí)現(xiàn)方案分析模型已給出基于分析類的用例實(shí)現(xiàn)方案,要明分析模型已給出基于分析類的用例實(shí)現(xiàn)方案,要明確分析類的職責(zé)與設(shè)計(jì)元素的操作之間的對(duì)應(yīng)關(guān)系,確分析類的職責(zé)與設(shè)計(jì)元素的操作之間的對(duì)應(yīng)關(guān)系,將需求分析階段生成的將需求分析階段生成的UMLUML交互圖轉(zhuǎn)換成設(shè)計(jì)階段交互圖轉(zhuǎn)換成設(shè)計(jì)階段需要的
15、交互圖需要的交互圖。分析類與設(shè)計(jì)元素的對(duì)應(yīng)關(guān)系多種多樣,可能的情分析類與設(shè)計(jì)元素的對(duì)應(yīng)關(guān)系多種多樣,可能的情形包括:形包括:(1 1)一個(gè)分析類的一項(xiàng)職責(zé)由一個(gè)設(shè)計(jì)元素的單項(xiàng)一個(gè)分析類的一項(xiàng)職責(zé)由一個(gè)設(shè)計(jì)元素的單項(xiàng)操作完整地實(shí)現(xiàn)。操作完整地實(shí)現(xiàn)。 這種情形最簡(jiǎn)單,從分析模型中的交互圖到設(shè)計(jì)模這種情形最簡(jiǎn)單,從分析模型中的交互圖到設(shè)計(jì)模型中的交互圖的變換方法見型中的交互圖的變換方法見圖圖9.1(a)9.1(a)。(2 2)一個(gè)分析類的一項(xiàng)職責(zé)由一個(gè)設(shè)計(jì)元素的多項(xiàng)一個(gè)分析類的一項(xiàng)職責(zé)由一個(gè)設(shè)計(jì)元素的多項(xiàng)操作來實(shí)現(xiàn)。操作來實(shí)現(xiàn)。 這種情形下交互圖的變換方法見圖這種情形下交互圖的變換方法見圖9.1(b
16、)9.1(b)。2021-12-2814設(shè)計(jì)用例實(shí)現(xiàn)方案設(shè)計(jì)用例實(shí)現(xiàn)方案(3 3)一個(gè)分析類的一項(xiàng)職責(zé)由多個(gè)設(shè)計(jì)元素協(xié)同完一個(gè)分析類的一項(xiàng)職責(zé)由多個(gè)設(shè)計(jì)元素協(xié)同完成。成。 此時(shí)用例設(shè)計(jì)師應(yīng)考慮如何將分析類的職責(zé)分配給此時(shí)用例設(shè)計(jì)師應(yīng)考慮如何將分析類的職責(zé)分配給這些設(shè)計(jì)元素,以及這些設(shè)計(jì)元素如何通過必要的這些設(shè)計(jì)元素,以及這些設(shè)計(jì)元素如何通過必要的消息傳遞來進(jìn)行協(xié)作。見圖消息傳遞來進(jìn)行協(xié)作。見圖9.1(c)9.1(c)。(4 4)對(duì)于在分析模型的交互圖中出現(xiàn)的執(zhí)行者,如對(duì)于在分析模型的交互圖中出現(xiàn)的執(zhí)行者,如果該執(zhí)行者由軟件系統(tǒng)的用戶扮演,那么在設(shè)計(jì)模果該執(zhí)行者由軟件系統(tǒng)的用戶扮演,那么在設(shè)計(jì)模
17、型中其對(duì)應(yīng)的設(shè)計(jì)元素應(yīng)該為界面設(shè)計(jì)模型的界面型中其對(duì)應(yīng)的設(shè)計(jì)元素應(yīng)該為界面設(shè)計(jì)模型的界面類,其發(fā)送消息、響應(yīng)消息的職責(zé)應(yīng)該由界面類的類,其發(fā)送消息、響應(yīng)消息的職責(zé)應(yīng)該由界面類的操作來實(shí)現(xiàn),因?yàn)橛脩羰峭ㄟ^界面與軟件系統(tǒng)交互操作來實(shí)現(xiàn),因?yàn)橛脩羰峭ㄟ^界面與軟件系統(tǒng)交互的;的; 如果該執(zhí)行者是外部設(shè)備或外部軟件系統(tǒng),那么應(yīng)如果該執(zhí)行者是外部設(shè)備或外部軟件系統(tǒng),那么應(yīng)該將其替換為該將其替換為7.6.17.6.1節(jié)中設(shè)置對(duì)應(yīng)于該執(zhí)行者的子節(jié)中設(shè)置對(duì)應(yīng)于該執(zhí)行者的子系統(tǒng)。系統(tǒng)。 2021-12-2815圖圖9.1 9.1 從分析模型中用例的順序圖表示到設(shè)計(jì)模型從分析模型中用例的順序圖表示到設(shè)計(jì)模型中用例實(shí)
18、現(xiàn)方案的變換方法中用例實(shí)現(xiàn)方案的變換方法(a) (a) 說明:說明:AA、BB分別是對(duì)應(yīng)于分析類分別是對(duì)應(yīng)于分析類A A、B B的設(shè)的設(shè)計(jì)元素,計(jì)元素,msgmsg是分析模型中是分析模型中msgmsg在設(shè)計(jì)模型中的對(duì)在設(shè)計(jì)模型中的對(duì)應(yīng)消息應(yīng)消息2021-12-2816圖圖9.1 9.1 從分析模型中用例的順序圖表示到設(shè)計(jì)模型中從分析模型中用例的順序圖表示到設(shè)計(jì)模型中用例實(shí)現(xiàn)方案的變換方法用例實(shí)現(xiàn)方案的變換方法(b) (b) 說明:分析類說明:分析類B B處理處理msgmsg的職責(zé)被分解為設(shè)計(jì)元素的職責(zé)被分解為設(shè)計(jì)元素BB中處理中處理msgmsg1 1,msgmsgn n的操作的操作2021-1
19、2-2817圖圖9.1 9.1 從分析模型中用例的順序圖表示到設(shè)計(jì)模型從分析模型中用例的順序圖表示到設(shè)計(jì)模型中用例實(shí)現(xiàn)方案的變換方法中用例實(shí)現(xiàn)方案的變換方法(c)(c)說明:在設(shè)計(jì)模型中,消息說明:在設(shè)計(jì)模型中,消息msgmsg觸發(fā)分析類觸發(fā)分析類B B中處理中處理msgmsg的職責(zé)的執(zhí)行的職責(zé)的執(zhí)行2021-12-2818設(shè)計(jì)用例實(shí)現(xiàn)方案設(shè)計(jì)用例實(shí)現(xiàn)方案從分析模型中的交互圖生成設(shè)計(jì)模型中的從分析模型中的交互圖生成設(shè)計(jì)模型中的交互圖并非簡(jiǎn)單的語法替換交互圖并非簡(jiǎn)單的語法替換,軟件設(shè)計(jì)師,軟件設(shè)計(jì)師必須確保后者能夠準(zhǔn)確、完整地實(shí)現(xiàn)前者必須確保后者能夠準(zhǔn)確、完整地實(shí)現(xiàn)前者規(guī)定的業(yè)務(wù)邏輯處理功能及行
20、為。規(guī)定的業(yè)務(wù)邏輯處理功能及行為。設(shè)計(jì)師應(yīng)當(dāng)選用盡可能簡(jiǎn)單、高效的實(shí)現(xiàn)設(shè)計(jì)師應(yīng)當(dāng)選用盡可能簡(jiǎn)單、高效的實(shí)現(xiàn)方法,并思考實(shí)現(xiàn)方法如何滿足相關(guān)的非方法,并思考實(shí)現(xiàn)方法如何滿足相關(guān)的非功能性需求。功能性需求。設(shè)計(jì)模式可以發(fā)揮很好的作用設(shè)計(jì)模式可以發(fā)揮很好的作用,軟件設(shè)計(jì)軟件設(shè)計(jì)師必須熟練掌握有關(guān)的設(shè)計(jì)模式知識(shí),并師必須熟練掌握有關(guān)的設(shè)計(jì)模式知識(shí),并在此步驟中靈活運(yùn)用。在此步驟中靈活運(yùn)用。2021-12-2819例例9.1 9.1 用例實(shí)現(xiàn)方案的詳細(xì)設(shè)計(jì)用例實(shí)現(xiàn)方案的詳細(xì)設(shè)計(jì)針對(duì)家庭保安系統(tǒng)中的針對(duì)家庭保安系統(tǒng)中的“傳感器監(jiān)測(cè)傳感器監(jiān)測(cè)”用用例,在圖例,在圖5-16p1435-16p143所示的基于分
21、析類的用所示的基于分析類的用例實(shí)現(xiàn)方案的基礎(chǔ)上,結(jié)合第七章得到的例實(shí)現(xiàn)方案的基礎(chǔ)上,結(jié)合第七章得到的邏輯體系結(jié)構(gòu)(見圖邏輯體系結(jié)構(gòu)(見圖7-18p2097-18p209),得到仍),得到仍以以UMLUML順序圖表示的用例實(shí)現(xiàn)如圖順序圖表示的用例實(shí)現(xiàn)如圖9.2(a)9.2(a)和和(b)(b)。為圖形簡(jiǎn)潔,本例分別針對(duì)門窗和煙霧傳為圖形簡(jiǎn)潔,本例分別針對(duì)門窗和煙霧傳感器監(jiān)測(cè)兩種情況展開詳細(xì)設(shè)計(jì)。感器監(jiān)測(cè)兩種情況展開詳細(xì)設(shè)計(jì)。2021-12-2820圖圖9.2 9.2 家庭保安系統(tǒng)中家庭保安系統(tǒng)中“傳感器監(jiān)測(cè)傳感器監(jiān)測(cè)”用例的設(shè)計(jì)用例的設(shè)計(jì)(a) (a) 門窗傳感器監(jiān)測(cè)門窗傳感器監(jiān)測(cè)2021-12
22、-2821圖圖9.2 9.2 家庭保安系統(tǒng)中家庭保安系統(tǒng)中“傳感器監(jiān)測(cè)傳感器監(jiān)測(cè)”用例的設(shè)計(jì)用例的設(shè)計(jì)(b) (b) 煙霧傳感器監(jiān)測(cè)煙霧傳感器監(jiān)測(cè)2021-12-2822主要的詳細(xì)設(shè)計(jì)點(diǎn)主要的詳細(xì)設(shè)計(jì)點(diǎn)MonitorMonitor類的對(duì)象(簡(jiǎn)稱類的對(duì)象(簡(jiǎn)稱MonitorMonitor對(duì)象,下對(duì)象,下同)從系統(tǒng)配置子系統(tǒng)中獲取傳感器配置同)從系統(tǒng)配置子系統(tǒng)中獲取傳感器配置數(shù)據(jù)的動(dòng)作被移入到數(shù)據(jù)的動(dòng)作被移入到MonitorMonitor類的構(gòu)造函數(shù)類的構(gòu)造函數(shù)之中,所以將其從用例實(shí)現(xiàn)方案中刪除。之中,所以將其從用例實(shí)現(xiàn)方案中刪除。2021-12-2823主要的詳細(xì)設(shè)計(jì)點(diǎn)主要的詳細(xì)設(shè)計(jì)點(diǎn)將體系結(jié)構(gòu)
23、中設(shè)置的子系統(tǒng)和構(gòu)件納入用例實(shí)現(xiàn)方將體系結(jié)構(gòu)中設(shè)置的子系統(tǒng)和構(gòu)件納入用例實(shí)現(xiàn)方案,必要時(shí)調(diào)整消息的名稱、參數(shù)及期望的消息處案,必要時(shí)調(diào)整消息的名稱、參數(shù)及期望的消息處理功能,使之與子系統(tǒng)和構(gòu)件的對(duì)外接口保持一致。理功能,使之與子系統(tǒng)和構(gòu)件的對(duì)外接口保持一致。在家庭保安系統(tǒng)的邏輯體系結(jié)構(gòu)的基礎(chǔ)上,在家庭保安系統(tǒng)的邏輯體系結(jié)構(gòu)的基礎(chǔ)上,“傳感傳感器監(jiān)測(cè)器監(jiān)測(cè)”用例的實(shí)現(xiàn)必須借助四個(gè)構(gòu)件用例的實(shí)現(xiàn)必須借助四個(gè)構(gòu)件:MovingObjectMonitorMovingObjectMonitor TelephoneDialerTelephoneDialer TextToSpeechTextToSpeech
24、(例(例7-37-3) LogManagerLogManager(例(例7-137-13)TelephoneDialerTelephoneDialer構(gòu)件的構(gòu)件的dialdial函數(shù)具有重復(fù)撥號(hào)的函數(shù)具有重復(fù)撥號(hào)的功能,所以功能,所以VideoMonitorVideoMonitor和和SmogMonitorSmogMonitor對(duì)象勿需對(duì)象勿需考慮失敗重?fù)軉栴}??紤]失敗重?fù)軉栴}。2021-12-28249.2.2 9.2.2 構(gòu)造設(shè)計(jì)類圖構(gòu)造設(shè)計(jì)類圖任務(wù):任務(wù):基于第七章給出的邏輯體系結(jié)構(gòu)和前面給基于第七章給出的邏輯體系結(jié)構(gòu)和前面給出的用例實(shí)現(xiàn)方案的出的用例實(shí)現(xiàn)方案的UMLUML交互圖表示,將
25、分析模型交互圖表示,將分析模型中的分析類圖(見中的分析類圖(見5.4.45.4.4節(jié))變換為詳細(xì)設(shè)計(jì)模型節(jié))變換為詳細(xì)設(shè)計(jì)模型中的設(shè)計(jì)類圖。中的設(shè)計(jì)類圖。設(shè)計(jì)類圖中的結(jié)點(diǎn)設(shè)計(jì)類圖中的結(jié)點(diǎn)為各種設(shè)計(jì)元素,包括子系統(tǒng)、為各種設(shè)計(jì)元素,包括子系統(tǒng)、構(gòu)件和通常的構(gòu)件和通常的UMLUML類。類。對(duì)對(duì)UMLUML類圖稍作擴(kuò)充以表示詳細(xì)設(shè)計(jì)類圖:類圖稍作擴(kuò)充以表示詳細(xì)設(shè)計(jì)類圖:允許在允許在類圖中出現(xiàn)子系統(tǒng)和構(gòu)件,它們的類別可以采用類圖中出現(xiàn)子系統(tǒng)和構(gòu)件,它們的類別可以采用不同的不同的UMLUML構(gòu)造型或者不同的圖元符號(hào)來表示,見構(gòu)造型或者不同的圖元符號(hào)來表示,見圖圖9.39.3。2021-12-2825構(gòu)造
26、設(shè)計(jì)類圖構(gòu)造設(shè)計(jì)類圖依據(jù)用例實(shí)現(xiàn)方案的交互圖推導(dǎo)出設(shè)計(jì)類依據(jù)用例實(shí)現(xiàn)方案的交互圖推導(dǎo)出設(shè)計(jì)類圖的過程和方法類似于從分析模型之交互圖的過程和方法類似于從分析模型之交互圖推導(dǎo)出分析類圖的過程圖推導(dǎo)出分析類圖的過程(參見參見5.4.45.4.4節(jié)節(jié)) )。不同的是,這里的推導(dǎo)過程同時(shí)也是從分不同的是,這里的推導(dǎo)過程同時(shí)也是從分析類圖到設(shè)計(jì)類圖的精化過程,應(yīng)該沿用析類圖到設(shè)計(jì)類圖的精化過程,應(yīng)該沿用分析類圖中可以續(xù)用的機(jī)制,并且確保設(shè)分析類圖中可以續(xù)用的機(jī)制,并且確保設(shè)計(jì)類圖相對(duì)于分析類圖的邏輯符合性。計(jì)類圖相對(duì)于分析類圖的邏輯符合性。2021-12-2826例例9.2 9.2 設(shè)計(jì)類圖的構(gòu)造設(shè)計(jì)類圖
27、的構(gòu)造針對(duì)家庭保安系統(tǒng),基于分析類圖(見圖針對(duì)家庭保安系統(tǒng),基于分析類圖(見圖5-21p1515-21p151)邏邏輯體系結(jié)構(gòu)(見圖輯體系結(jié)構(gòu)(見圖7-18p2097-18p209)和和“傳感器監(jiān)測(cè)傳感器監(jiān)測(cè)”用例的用例的實(shí)現(xiàn)方案(見圖實(shí)現(xiàn)方案(見圖9.29.2),導(dǎo)出圖),導(dǎo)出圖9.39.3所示的設(shè)計(jì)類圖。所示的設(shè)計(jì)類圖。圖圖5-215-21中除中除 輸入鍵盤接口(輸入鍵盤接口(KeyboardInteractionKeyboardInteraction) 顯示面板接口(顯示面板接口(DisplayPanelInteractionDisplayPanelInteraction)外的其他)外的
28、其他分析類的職責(zé)均已在邏輯體系結(jié)構(gòu)的設(shè)計(jì)過程中置入分析類的職責(zé)均已在邏輯體系結(jié)構(gòu)的設(shè)計(jì)過程中置入 傳感器監(jiān)測(cè)子系統(tǒng)(傳感器監(jiān)測(cè)子系統(tǒng)(safeHomeMonitorsafeHomeMonitor) 系統(tǒng)配置子系統(tǒng)(系統(tǒng)配置子系統(tǒng)(safeHomeConfigManagersafeHomeConfigManager) 日志管理構(gòu)件(日志管理構(gòu)件(logManagerlogManager) 所以圖所以圖9.39.3與圖與圖5-215-21的差別較大,而與圖的差別較大,而與圖7-187-18的差別較的差別較小。小。2021-12-2827主要的詳細(xì)設(shè)計(jì)點(diǎn)主要的詳細(xì)設(shè)計(jì)點(diǎn)(1 1)根據(jù)圖根據(jù)圖9.29
29、.2可以推知,可以推知,safeHomeMonitorsafeHomeMonitor的對(duì)的對(duì)外接口中必須包含外接口中必須包含analyseVideoSensorDataanalyseVideoSensorData和和analyseSmogSensorDataanalyseSmogSensorData兩個(gè)函數(shù);兩個(gè)函數(shù);DisplayPanelInteractionDisplayPanelInteraction類中必須包含類中必須包含showCurStatusshowCurStatus函數(shù)。函數(shù)。(2 2)根據(jù)圖根據(jù)圖9.29.2,設(shè)置兩個(gè)新的設(shè)備接口類:,設(shè)置兩個(gè)新的設(shè)備接口類:VideoSe
30、nsorInteractionVideoSensorInteraction和和SmogSensorInteractionSmogSensorInteraction,并將它們作為原,并將它們作為原SensorInteractionSensorInteraction的子類。的子類。(3 3)添加必要的關(guān)聯(lián)和依賴關(guān)系。添加必要的關(guān)聯(lián)和依賴關(guān)系。2021-12-2828圖圖9.3 9.3 家庭保安系統(tǒng)的設(shè)計(jì)類圖家庭保安系統(tǒng)的設(shè)計(jì)類圖(初步)(初步)2021-12-28299.2.3 9.2.3 整合并優(yōu)化用例實(shí)現(xiàn)方案整合并優(yōu)化用例實(shí)現(xiàn)方案在針對(duì)每個(gè)用例完成在針對(duì)每個(gè)用例完成9.2.19.2.1和和9.
31、2.29.2.2所述的工作后,所述的工作后,軟件設(shè)計(jì)師必須從全局和整體的軟件設(shè)計(jì)師必須從全局和整體的高度高度整合并優(yōu)化整合并優(yōu)化所所有的用例實(shí)現(xiàn)方案。具體工作包括:有的用例實(shí)現(xiàn)方案。具體工作包括:(1 1)將具有相同或相似職責(zé)的多個(gè)設(shè)計(jì)元素整合為將具有相同或相似職責(zé)的多個(gè)設(shè)計(jì)元素整合為一個(gè)。一個(gè)。(2 2)將具有相同或相似功能的多個(gè)操作整合為一個(gè)。將具有相同或相似功能的多個(gè)操作整合為一個(gè)。(3 3)采用繼承或代理機(jī)制(見采用繼承或代理機(jī)制(見5.4.45.4.4節(jié))對(duì)設(shè)計(jì)元素節(jié))對(duì)設(shè)計(jì)元素中的公共操作進(jìn)行抽象。中的公共操作進(jìn)行抽象。(4 4)確保所有用例實(shí)現(xiàn)方案在同一軟件系統(tǒng)中和諧確保所有用例
32、實(shí)現(xiàn)方案在同一軟件系統(tǒng)中和諧共存,無邏輯沖突。共存,無邏輯沖突。(5 5)根據(jù)上述調(diào)整相應(yīng)地修改前述的交互圖和設(shè)計(jì)根據(jù)上述調(diào)整相應(yīng)地修改前述的交互圖和設(shè)計(jì)類圖。類圖。2021-12-2830整合并優(yōu)化用例實(shí)現(xiàn)方案整合并優(yōu)化用例實(shí)現(xiàn)方案最后,還需要基于用例設(shè)計(jì)的成果最后,還需要基于用例設(shè)計(jì)的成果復(fù)核非復(fù)核非功能性軟件需求的實(shí)現(xiàn)程度功能性軟件需求的實(shí)現(xiàn)程度。可能時(shí),將。可能時(shí),將有關(guān)的非功能需求分解至設(shè)計(jì)元素或其操有關(guān)的非功能需求分解至設(shè)計(jì)元素或其操作,使之成為設(shè)計(jì)元素的實(shí)現(xiàn)約束。必要作,使之成為設(shè)計(jì)元素的實(shí)現(xiàn)約束。必要時(shí),以非功能需求和相關(guān)的功能需求的優(yōu)時(shí),以非功能需求和相關(guān)的功能需求的優(yōu)化實(shí)現(xiàn)
33、為目標(biāo),重新調(diào)整用例實(shí)現(xiàn)方案和化實(shí)現(xiàn)為目標(biāo),重新調(diào)整用例實(shí)現(xiàn)方案和設(shè)計(jì)類圖。設(shè)計(jì)類圖。2021-12-28319.3 9.3 子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì)的任務(wù)是子系統(tǒng)設(shè)計(jì)的任務(wù)是,確定子系統(tǒng)內(nèi)部的結(jié)構(gòu)確定子系統(tǒng)內(nèi)部的結(jié)構(gòu),即,即,設(shè)置包含于其中的、粒度更小的子系統(tǒng)、構(gòu)件和設(shè)計(jì)設(shè)置包含于其中的、粒度更小的子系統(tǒng)、構(gòu)件和設(shè)計(jì)類,明確它們之間的協(xié)作關(guān)系,確保它們能夠協(xié)同實(shí)類,明確它們之間的協(xié)作關(guān)系,確保它們能夠協(xié)同實(shí)現(xiàn)體系結(jié)構(gòu)模型中該子系統(tǒng)的服務(wù)提供接口所規(guī)定的現(xiàn)體系結(jié)構(gòu)模型中該子系統(tǒng)的服務(wù)提供接口所規(guī)定的全部功能和行為。全部功能和行為。u軟件設(shè)計(jì)師首先必須確立子系統(tǒng)內(nèi)部的設(shè)計(jì)元素,根據(jù)軟件設(shè)計(jì)
34、師首先必須確立子系統(tǒng)內(nèi)部的設(shè)計(jì)元素,根據(jù)體系結(jié)構(gòu)模型中確定的子系統(tǒng)的職責(zé)及其對(duì)外接口針對(duì)體系結(jié)構(gòu)模型中確定的子系統(tǒng)的職責(zé)及其對(duì)外接口針對(duì)這些設(shè)計(jì)元素逐個(gè)分派職責(zé),并研究它們?nèi)绾螀f(xié)同以完這些設(shè)計(jì)元素逐個(gè)分派職責(zé),并研究它們?nèi)绾螀f(xié)同以完成子系統(tǒng)的每項(xiàng)職責(zé)。成子系統(tǒng)的每項(xiàng)職責(zé)。u設(shè)計(jì)師必須根據(jù)子系統(tǒng)內(nèi)部設(shè)計(jì)元素的職責(zé)及其協(xié)作關(guān)設(shè)計(jì)師必須根據(jù)子系統(tǒng)內(nèi)部設(shè)計(jì)元素的職責(zé)及其協(xié)作關(guān)系推導(dǎo)出子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖,因?yàn)轭悎D是軟件實(shí)現(xiàn)系推導(dǎo)出子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖,因?yàn)轭悎D是軟件實(shí)現(xiàn)工程師的主要編程基礎(chǔ)和依據(jù)。工程師的主要編程基礎(chǔ)和依據(jù)。u如果狀態(tài)圖或活動(dòng)圖有助于軟件實(shí)現(xiàn)工程師對(duì)于當(dāng)前子如果狀態(tài)圖或活動(dòng)圖有助于軟件
35、實(shí)現(xiàn)工程師對(duì)于當(dāng)前子系統(tǒng)的理解和實(shí)現(xiàn),設(shè)計(jì)師不妨構(gòu)造之,以便為子系統(tǒng)系統(tǒng)的理解和實(shí)現(xiàn),設(shè)計(jì)師不妨構(gòu)造之,以便為子系統(tǒng)的編程實(shí)現(xiàn)奠定更好的基礎(chǔ)。的編程實(shí)現(xiàn)奠定更好的基礎(chǔ)。2021-12-28329.3.1 9.3.1 確立內(nèi)部設(shè)計(jì)元素確立內(nèi)部設(shè)計(jì)元素在體系結(jié)構(gòu)設(shè)計(jì)模型中,已經(jīng)定義了其中每個(gè)子在體系結(jié)構(gòu)設(shè)計(jì)模型中,已經(jīng)定義了其中每個(gè)子系統(tǒng)的接口。這些系統(tǒng)的接口。這些接口中的服務(wù)提供接口實(shí)際上接口中的服務(wù)提供接口實(shí)際上規(guī)定了子系統(tǒng)必須承擔(dān)的職責(zé)規(guī)定了子系統(tǒng)必須承擔(dān)的職責(zé)。這些職責(zé)必須由子系統(tǒng)內(nèi)部的設(shè)計(jì)元素來完成。這些職責(zé)必須由子系統(tǒng)內(nèi)部的設(shè)計(jì)元素來完成。換言之,為了完成子系統(tǒng)的服務(wù)提供接口中規(guī)定換言
36、之,為了完成子系統(tǒng)的服務(wù)提供接口中規(guī)定的職責(zé),需要在子系統(tǒng)中設(shè)置構(gòu)件、設(shè)計(jì)類,有的職責(zé),需要在子系統(tǒng)中設(shè)置構(gòu)件、設(shè)計(jì)類,有時(shí)甚至需要設(shè)置當(dāng)前子系統(tǒng)的子系統(tǒng),并確定它時(shí)甚至需要設(shè)置當(dāng)前子系統(tǒng)的子系統(tǒng),并確定它們的職責(zé)和協(xié)作關(guān)系,通過它們的分工和合作來們的職責(zé)和協(xié)作關(guān)系,通過它們的分工和合作來完成當(dāng)前子系統(tǒng)的接口中規(guī)定的所有功能和行為。完成當(dāng)前子系統(tǒng)的接口中規(guī)定的所有功能和行為。2021-12-2833確立內(nèi)部設(shè)計(jì)元素確立內(nèi)部設(shè)計(jì)元素在分派子系統(tǒng)內(nèi)部的設(shè)計(jì)元素的職責(zé)時(shí),必須在分派子系統(tǒng)內(nèi)部的設(shè)計(jì)元素的職責(zé)時(shí),必須注意利用體系結(jié)構(gòu)模型中定義的其他設(shè)計(jì)元素注意利用體系結(jié)構(gòu)模型中定義的其他設(shè)計(jì)元素(包括
37、技術(shù)支撐設(shè)施和可復(fù)用的設(shè)計(jì)資產(chǎn))已(包括技術(shù)支撐設(shè)施和可復(fù)用的設(shè)計(jì)資產(chǎn))已經(jīng)提供的功能,不能在目標(biāo)軟件系統(tǒng)的不同模經(jīng)提供的功能,不能在目標(biāo)軟件系統(tǒng)的不同模塊重復(fù)實(shí)現(xiàn)相同或相似的功能。塊重復(fù)實(shí)現(xiàn)相同或相似的功能。u利用的方式有兩種:利用的方式有兩種:通過本子系統(tǒng)的服務(wù)請(qǐng)求接通過本子系統(tǒng)的服務(wù)請(qǐng)求接口(如果存在的話)口(如果存在的話);直接直接調(diào)用構(gòu)件的服務(wù)提供調(diào)用構(gòu)件的服務(wù)提供接口或設(shè)計(jì)類的公開函數(shù)接口或設(shè)計(jì)類的公開函數(shù)。上述工作的成果可以表現(xiàn)為一系列的上述工作的成果可以表現(xiàn)為一系列的UMLUML交互交互圖,其中每張交互圖說明子系統(tǒng)內(nèi)的軟件元素圖,其中每張交互圖說明子系統(tǒng)內(nèi)的軟件元素為完成子系統(tǒng)
38、接口中規(guī)定的某項(xiàng)特定職責(zé)而展為完成子系統(tǒng)接口中規(guī)定的某項(xiàng)特定職責(zé)而展開的協(xié)作行動(dòng),見開的協(xié)作行動(dòng),見圖圖9.49.4。2021-12-2834例例9.39.3子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì) 確立內(nèi)部設(shè)計(jì)元素并明確協(xié)作關(guān)系確立內(nèi)部設(shè)計(jì)元素并明確協(xié)作關(guān)系“傳感器監(jiān)測(cè)傳感器監(jiān)測(cè)”(safeHomeMonitorsafeHomeMonitor)是家庭保安)是家庭保安系統(tǒng)中最關(guān)鍵的子系統(tǒng),在第七章所述的邏輯體系統(tǒng)中最關(guān)鍵的子系統(tǒng),在第七章所述的邏輯體系結(jié)構(gòu)設(shè)計(jì)的過程中,已經(jīng)將系結(jié)構(gòu)設(shè)計(jì)的過程中,已經(jīng)將“命令處理器命令處理器”(CommandHandlerCommandHandler)、)、“監(jiān)測(cè)器監(jiān)測(cè)器”(Mon
39、itorMonitor)、)、異常事件(異常事件(ExEventExEvent)、)、傳感器接口(傳感器接口(SensorInteractionSensorInteraction)、)、警報(bào)器接口(警報(bào)器接口(AlarmInteractionAlarmInteraction)報(bào)警電話接口(報(bào)警電話接口(AlarmTelephoneInteractionAlarmTelephoneInteraction) 納入該子系統(tǒng),納入該子系統(tǒng),2021-12-2835例例9.39.3子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì) 確立內(nèi)部設(shè)計(jì)元素并明確協(xié)作關(guān)系確立內(nèi)部設(shè)計(jì)元素并明確協(xié)作關(guān)系詳細(xì)設(shè)計(jì)繼續(xù)沿用這些設(shè)計(jì)元素,并將例詳細(xì)設(shè)
40、計(jì)繼續(xù)沿用這些設(shè)計(jì)元素,并將例9.29.2中引中引入的兩個(gè)新的設(shè)備接口類入的兩個(gè)新的設(shè)備接口類VideoSensorInteractionVideoSensorInteraction和和SmogSensorInteractionSmogSensorInteraction,它們是它們是SensorInteractionSensorInteraction的子類。的子類。圖圖9.29.2已經(jīng)描述了該子系統(tǒng)在響應(yīng)接口函數(shù)已經(jīng)描述了該子系統(tǒng)在響應(yīng)接口函數(shù)analyseVideoSensorDataanalyseVideoSensorData和和analyseSmogSensorDataanalyseSm
41、ogSensorData的調(diào)用時(shí)內(nèi)部設(shè)計(jì)元素的調(diào)用時(shí)內(nèi)部設(shè)計(jì)元素之間(以及它們與外部構(gòu)件之間)的協(xié)作關(guān)系。之間(以及它們與外部構(gòu)件之間)的協(xié)作關(guān)系。本例通過本例通過safeHomeMonitorsafeHomeMonitor響應(yīng)接口函數(shù)響應(yīng)接口函數(shù)resetreset的的調(diào)用時(shí)動(dòng)作過程來進(jìn)一步精化其設(shè)計(jì),見圖調(diào)用時(shí)動(dòng)作過程來進(jìn)一步精化其設(shè)計(jì),見圖9.49.4。2021-12-2836圖圖9.4 9.4 傳感器監(jiān)測(cè)子系統(tǒng)的詳細(xì)設(shè)計(jì)的交互傳感器監(jiān)測(cè)子系統(tǒng)的詳細(xì)設(shè)計(jì)的交互圖表示(局部)圖表示(局部)2021-12-28379.3.2 9.3.2 導(dǎo)出設(shè)計(jì)類圖導(dǎo)出設(shè)計(jì)類圖從子系統(tǒng)詳細(xì)設(shè)計(jì)的從子系統(tǒng)詳細(xì)
42、設(shè)計(jì)的UMLUML交互圖表示出發(fā)推導(dǎo)出子交互圖表示出發(fā)推導(dǎo)出子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖。系統(tǒng)的詳細(xì)設(shè)計(jì)類圖。具體的推導(dǎo)方法類似于從分析模型之交互圖推導(dǎo)具體的推導(dǎo)方法類似于從分析模型之交互圖推導(dǎo)分析類圖的方法,請(qǐng)見分析類圖的方法,請(qǐng)見5.4.45.4.4節(jié)。在子系統(tǒng)的詳細(xì)節(jié)。在子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖中,設(shè)計(jì)類圖中,建議采用某種方式顯式區(qū)分子系統(tǒng)建議采用某種方式顯式區(qū)分子系統(tǒng)內(nèi)部的設(shè)計(jì)元素與位于子系統(tǒng)之外、為子系統(tǒng)提內(nèi)部的設(shè)計(jì)元素與位于子系統(tǒng)之外、為子系統(tǒng)提供服務(wù)的其他設(shè)計(jì)元素供服務(wù)的其他設(shè)計(jì)元素。如,如,圖圖9.59.5即采用垂直虛線分割子系統(tǒng)內(nèi)、外的設(shè)即采用垂直虛線分割子系統(tǒng)內(nèi)、外的設(shè)計(jì)元素。計(jì)元素。
43、2021-12-2838例例9.4 9.4 子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖仍以仍以“傳感器監(jiān)測(cè)傳感器監(jiān)測(cè)”(safeHomeMonitorsafeHomeMonitor)子系統(tǒng))子系統(tǒng)為例說明如何生成子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖。為例說明如何生成子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖??晒├玫墓ぷ骰A(chǔ)包括:邏輯體系結(jié)構(gòu)(見圖可供利用的工作基礎(chǔ)包括:邏輯體系結(jié)構(gòu)(見圖7-7-1717);分析類圖(見圖);分析類圖(見圖5-215-21);詳細(xì)設(shè)計(jì)階段得到);詳細(xì)設(shè)計(jì)階段得到的表示子系統(tǒng)對(duì)外接口實(shí)現(xiàn)的順序圖表示(見圖的表示子系統(tǒng)對(duì)外接口實(shí)現(xiàn)的順序圖表示(見圖9.29.2和圖和圖9.49.4)。)。如例如例9
44、.39.3所述,所述,safeHomeMonitorsafeHomeMonitor包含包含CommandHandlerCommandHandler、MonitorMonitor(及其子類(及其子類VideoMonitorVideoMonitor 和和 SmogMonitorSmogMonitor)、)、ExEventExEvent、SensorInteractionSensorInteraction(及其子類(及其子類VideoSensorInteractionVideoSensorInteraction 和和SmogSensorInteractionSmogSensorInteraction
45、)、)、AlarmInteractionAlarmInteraction和和AlarmTelephoneInteractionAlarmTelephoneInteraction,它們構(gòu)成,它們構(gòu)成safeHomeMonitorsafeHomeMonitor的詳細(xì)設(shè)計(jì)類圖的主要結(jié)點(diǎn)。的詳細(xì)設(shè)計(jì)類圖的主要結(jié)點(diǎn)。2021-12-2839子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖以這些類為基礎(chǔ),綜合圖以這些類為基礎(chǔ),綜合圖5-215-21圖圖9.29.2和圖和圖9.49.4,推導(dǎo),推導(dǎo)它們的主要操作:它們的主要操作:(1 1)switchOnswitchOn、switchOffswitchOff和和
46、resetreset(據(jù)圖(據(jù)圖9.49.4)操作)操作顯然應(yīng)置入顯然應(yīng)置入CommandHandlerCommandHandler類。類。(2 2)analyseVideoSensorDataanalyseVideoSensorData、onMovingObjectDetectedonMovingObjectDetected和和describeEventdescribeEvent(據(jù)圖(據(jù)圖9.2(a)9.2(a))操作應(yīng)置入)操作應(yīng)置入VideoMonitorVideoMonitor類,其中后者應(yīng)類,其中后者應(yīng)該是該是privateprivate操作。同理,操作。同理,analyseSmo
47、gSensorDataanalyseSmogSensorData、isNormalisNormal和和describeEventdescribeEvent(據(jù)圖(據(jù)圖9.2(b)9.2(b))操作應(yīng))操作應(yīng)置入置入SmogMonitorSmogMonitor類。類。describeEventdescribeEvent重復(fù)出現(xiàn)是因重復(fù)出現(xiàn)是因?yàn)樗跒樗贛onitorMonitor的兩個(gè)子類中的實(shí)現(xiàn)方法完全不同,的兩個(gè)子類中的實(shí)現(xiàn)方法完全不同,當(dāng)然,其標(biāo)記(當(dāng)然,其標(biāo)記(signaturesignature)可以提升至)可以提升至MonitorMonitor類。類。2021-12-2840子系統(tǒng)
48、設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖(3 3)據(jù)圖據(jù)圖9.2(a)9.2(a)和和(b)(b),onTelephoneConnectedonTelephoneConnected和和onDialFailedonDialFailed兩個(gè)操作對(duì)兩個(gè)操作對(duì)MonitorMonitor的兩個(gè)子類而的兩個(gè)子類而言是公共的,所以將其置入言是公共的,所以將其置入MonitorMonitor類。類。接下來,考慮接下來,考慮safeHomeMonitorsafeHomeMonitor子系統(tǒng)在運(yùn)作過程子系統(tǒng)在運(yùn)作過程中需要的外部子系統(tǒng)、構(gòu)件及設(shè)計(jì)類。中需要的外部子系統(tǒng)、構(gòu)件及設(shè)計(jì)類。據(jù)圖據(jù)圖9.29.2和圖和圖9
49、.49.4,它需要外部構(gòu)件,它需要外部構(gòu)件MovingObjectMonitorMovingObjectMonitor、TelephoneDialerTelephoneDialer和和TextToSpeechTextToSpeech,需要構(gòu)件,需要構(gòu)件logManagerlogManager和和securityServicesecurityService,還需要設(shè)計(jì)類,還需要設(shè)計(jì)類DisplayPanelInteractionDisplayPanelInteraction。圖圖9.59.5將它們布局于垂直分割線的右方,以示其位將它們布局于垂直分割線的右方,以示其位于于safeHomeMonit
50、orsafeHomeMonitor子系統(tǒng)的邊界以外。子系統(tǒng)的邊界以外。2021-12-2841子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖子系統(tǒng)設(shè)計(jì)導(dǎo)出設(shè)計(jì)類圖采用采用5.4.45.4.4節(jié)所述的節(jié)所述的“根據(jù)消息傳遞確定類之根據(jù)消息傳遞確定類之間的連接間的連接”的方法初步確定以上所有類之間的的方法初步確定以上所有類之間的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系。對(duì)于對(duì)于子系統(tǒng)和構(gòu)件,外部的設(shè)計(jì)元素對(duì)其功能子系統(tǒng)和構(gòu)件,外部的設(shè)計(jì)元素對(duì)其功能的調(diào)用一般均通過接口,從該元素到接口之間的調(diào)用一般均通過接口,從該元素到接口之間不可能存在單向關(guān)聯(lián),因?yàn)殛P(guān)聯(lián)關(guān)系含數(shù)量對(duì)不可能存在單向關(guān)聯(lián),因?yàn)殛P(guān)聯(lián)關(guān)系含數(shù)量對(duì)應(yīng)關(guān)系,而接口沒有數(shù)量的意義應(yīng)關(guān)系,而
51、接口沒有數(shù)量的意義應(yīng)通過從外部設(shè)計(jì)元素到接口之間的單向依賴應(yīng)通過從外部設(shè)計(jì)元素到接口之間的單向依賴關(guān)系表示這種調(diào)用。關(guān)系表示這種調(diào)用。得到的得到的safeHomeMonitorsafeHomeMonitor子系統(tǒng)的詳細(xì)設(shè)計(jì)類子系統(tǒng)的詳細(xì)設(shè)計(jì)類圖如圖圖如圖9.59.5。2021-12-2842圖圖9.5 9.5 傳感器監(jiān)測(cè)子系統(tǒng)的階段性傳感器監(jiān)測(cè)子系統(tǒng)的階段性詳細(xì)設(shè)計(jì)類圖詳細(xì)設(shè)計(jì)類圖2021-12-28439.3.3 9.3.3 設(shè)計(jì)狀態(tài)圖與活動(dòng)圖設(shè)計(jì)狀態(tài)圖與活動(dòng)圖如果子系統(tǒng)具有明顯的狀態(tài)特征,通過如果子系統(tǒng)具有明顯的狀態(tài)特征,通過UMLUML狀態(tài)圖可以更清晰地描述子系統(tǒng)的行為特狀態(tài)圖可以更清晰
52、地描述子系統(tǒng)的行為特征,并且狀態(tài)圖有助于軟件實(shí)現(xiàn)工程師理征,并且狀態(tài)圖有助于軟件實(shí)現(xiàn)工程師理解子系統(tǒng)、實(shí)現(xiàn)子系統(tǒng),那么可以為子系解子系統(tǒng)、實(shí)現(xiàn)子系統(tǒng),那么可以為子系統(tǒng)構(gòu)造狀態(tài)圖。統(tǒng)構(gòu)造狀態(tài)圖。否則,一般沒有必要繪制子系統(tǒng)的狀態(tài)圖。否則,一般沒有必要繪制子系統(tǒng)的狀態(tài)圖。如果當(dāng)前子系統(tǒng)的狀態(tài)圖在分析模型中已如果當(dāng)前子系統(tǒng)的狀態(tài)圖在分析模型中已經(jīng)存在,那么需要對(duì)此狀態(tài)圖進(jìn)行必要的經(jīng)存在,那么需要對(duì)此狀態(tài)圖進(jìn)行必要的精化,確保它與子系統(tǒng)的詳細(xì)設(shè)計(jì)模型精化,確保它與子系統(tǒng)的詳細(xì)設(shè)計(jì)模型(包括前述的(包括前述的UMLUML交互圖和詳細(xì)設(shè)計(jì)類圖)交互圖和詳細(xì)設(shè)計(jì)類圖)協(xié)調(diào)一致。協(xié)調(diào)一致。2021-12-28
53、44設(shè)計(jì)狀態(tài)圖與活動(dòng)圖設(shè)計(jì)狀態(tài)圖與活動(dòng)圖在有必要的情況下軟件設(shè)計(jì)師可以通過構(gòu)在有必要的情況下軟件設(shè)計(jì)師可以通過構(gòu)造子系統(tǒng)的活動(dòng)圖來幫助軟件實(shí)現(xiàn)工程師造子系統(tǒng)的活動(dòng)圖來幫助軟件實(shí)現(xiàn)工程師理解子系統(tǒng)、實(shí)現(xiàn)子系統(tǒng)。理解子系統(tǒng)、實(shí)現(xiàn)子系統(tǒng)。活動(dòng)圖有兩種:活動(dòng)圖有兩種: 表示子系統(tǒng)內(nèi)部的設(shè)計(jì)元素協(xié)同完成子系表示子系統(tǒng)內(nèi)部的設(shè)計(jì)元素協(xié)同完成子系統(tǒng)的某些功能;統(tǒng)的某些功能; 表示作為一個(gè)黑箱的子系統(tǒng)與外部設(shè)計(jì)元表示作為一個(gè)黑箱的子系統(tǒng)與外部設(shè)計(jì)元素協(xié)同完成更大范圍內(nèi)的某些功能。素協(xié)同完成更大范圍內(nèi)的某些功能。如果在分析模型中與當(dāng)前子系統(tǒng)相關(guān)的活如果在分析模型中與當(dāng)前子系統(tǒng)相關(guān)的活動(dòng)圖已經(jīng)存在,需要對(duì)活動(dòng)圖進(jìn)
54、行精化。動(dòng)圖已經(jīng)存在,需要對(duì)活動(dòng)圖進(jìn)行精化。2021-12-28459.4 9.4 構(gòu)件設(shè)計(jì)構(gòu)件設(shè)計(jì)構(gòu)件設(shè)計(jì)的任務(wù)是構(gòu)件設(shè)計(jì)的任務(wù)是,為實(shí)現(xiàn)構(gòu)件的服務(wù)提,為實(shí)現(xiàn)構(gòu)件的服務(wù)提供接口中規(guī)定的職責(zé)而在其內(nèi)部設(shè)置子構(gòu)供接口中規(guī)定的職責(zé)而在其內(nèi)部設(shè)置子構(gòu)件和類,明確它們的職責(zé),定義其對(duì)外接件和類,明確它們的職責(zé),定義其對(duì)外接口,確定它們之間的協(xié)作關(guān)系???,確定它們之間的協(xié)作關(guān)系。構(gòu)件設(shè)計(jì)與子系統(tǒng)設(shè)計(jì)非常類似。構(gòu)件設(shè)計(jì)與子系統(tǒng)設(shè)計(jì)非常類似。2021-12-28469.4.1 9.4.1 為復(fù)用設(shè)計(jì)構(gòu)件為復(fù)用設(shè)計(jì)構(gòu)件注意:注意:構(gòu)件構(gòu)件的詳細(xì)設(shè)計(jì)必須確保接口與實(shí)現(xiàn)相分離。的詳細(xì)設(shè)計(jì)必須確保接口與實(shí)現(xiàn)相分離。
55、實(shí)現(xiàn)了同一接口的兩個(gè)構(gòu)件可以等價(jià)替換,無論它們實(shí)現(xiàn)了同一接口的兩個(gè)構(gòu)件可以等價(jià)替換,無論它們的內(nèi)部實(shí)現(xiàn)方法如何不同。的內(nèi)部實(shí)現(xiàn)方法如何不同。構(gòu)件使用方的任何變化都不應(yīng)導(dǎo)致構(gòu)件的修改,除非構(gòu)件使用方的任何變化都不應(yīng)導(dǎo)致構(gòu)件的修改,除非構(gòu)件自身提供的服務(wù)需要調(diào)整。構(gòu)件自身提供的服務(wù)需要調(diào)整。構(gòu)件應(yīng)具有上下文無關(guān)性,可以在不同的上下文環(huán)境構(gòu)件應(yīng)具有上下文無關(guān)性,可以在不同的上下文環(huán)境中不加修改地被復(fù)用。中不加修改地被復(fù)用。構(gòu)件可以與外界相互協(xié)作,但它們不能相互干擾,例構(gòu)件可以與外界相互協(xié)作,但它們不能相互干擾,例如,構(gòu)件不能與外界共享公共的數(shù)據(jù)結(jié)構(gòu)。如,構(gòu)件不能與外界共享公共的數(shù)據(jù)結(jié)構(gòu)。在可預(yù)期的應(yīng)
56、用場(chǎng)景下,相同或相似的服務(wù)可以由同在可預(yù)期的應(yīng)用場(chǎng)景下,相同或相似的服務(wù)可以由同一構(gòu)件來提供。一構(gòu)件來提供。軟件設(shè)計(jì)師必須分析當(dāng)前及將來可能的多種應(yīng)用場(chǎng)景中軟件設(shè)計(jì)師必須分析當(dāng)前及將來可能的多種應(yīng)用場(chǎng)景中對(duì)構(gòu)件的功能需求的相同點(diǎn)和不同點(diǎn),采取以下辦法來對(duì)構(gòu)件的功能需求的相同點(diǎn)和不同點(diǎn),采取以下辦法來提高構(gòu)件的可復(fù)用性。提高構(gòu)件的可復(fù)用性。2021-12-2847提高構(gòu)件的可復(fù)用性提高構(gòu)件的可復(fù)用性的方法的方法(1 1)分離相同點(diǎn)和不同點(diǎn),將相同點(diǎn)實(shí)現(xiàn)為構(gòu)分離相同點(diǎn)和不同點(diǎn),將相同點(diǎn)實(shí)現(xiàn)為構(gòu)件。件。(2 2)以參數(shù)化手段從不同點(diǎn)中抽象出公共部分,以參數(shù)化手段從不同點(diǎn)中抽象出公共部分,通過構(gòu)件的不
57、同配置覆蓋不同點(diǎn)。參數(shù)化可以通過構(gòu)件的不同配置覆蓋不同點(diǎn)。參數(shù)化可以直接針對(duì)構(gòu)件的服務(wù)功能來進(jìn)行,也可以利用直接針對(duì)構(gòu)件的服務(wù)功能來進(jìn)行,也可以利用構(gòu)件的定制機(jī)制(見構(gòu)件的定制機(jī)制(見9.4.29.4.2)。)。(3 3)將相同點(diǎn)抽象為框架(將相同點(diǎn)抽象為框架(frameworkframework8484),),其中的不同點(diǎn)被定義為框架中的抽象服務(wù)。構(gòu)其中的不同點(diǎn)被定義為框架中的抽象服務(wù)。構(gòu)件設(shè)計(jì)者只需設(shè)定抽象服務(wù)的標(biāo)記件設(shè)計(jì)者只需設(shè)定抽象服務(wù)的標(biāo)記(signaturesignature),并在構(gòu)件實(shí)現(xiàn)時(shí)直接使用它),并在構(gòu)件實(shí)現(xiàn)時(shí)直接使用它們。這些抽象服務(wù)的實(shí)現(xiàn)體將延遲至構(gòu)件使用們。這些抽象
58、服務(wù)的實(shí)現(xiàn)體將延遲至構(gòu)件使用方在復(fù)用構(gòu)件時(shí)再根據(jù)實(shí)際需求來提供,見方在復(fù)用構(gòu)件時(shí)再根據(jù)實(shí)際需求來提供,見9.4.29.4.2節(jié)有關(guān)構(gòu)件繼承和委托機(jī)制的論述。節(jié)有關(guān)構(gòu)件繼承和委托機(jī)制的論述。2021-12-28489.4.2 9.4.2 設(shè)計(jì)構(gòu)件的定制機(jī)制設(shè)計(jì)構(gòu)件的定制機(jī)制構(gòu)件的定制機(jī)制是提高構(gòu)件的靈活性和可復(fù)用構(gòu)件的定制機(jī)制是提高構(gòu)件的靈活性和可復(fù)用性的主要手段之一性的主要手段之一。它。它與構(gòu)件的接口設(shè)計(jì)和內(nèi)與構(gòu)件的接口設(shè)計(jì)和內(nèi)部實(shí)現(xiàn)機(jī)制的設(shè)計(jì)息息相關(guān)。部實(shí)現(xiàn)機(jī)制的設(shè)計(jì)息息相關(guān)。構(gòu)件定制機(jī)制的種類:構(gòu)件定制機(jī)制的種類:u最最簡(jiǎn)單的定制機(jī)制就是將構(gòu)件接口中定義的對(duì)外簡(jiǎn)單的定制機(jī)制就是將構(gòu)件接口中
59、定義的對(duì)外服務(wù)參數(shù)化,構(gòu)件使用者通過使用不同的實(shí)參值服務(wù)參數(shù)化,構(gòu)件使用者通過使用不同的實(shí)參值來定制自己需要的構(gòu)件服務(wù)。來定制自己需要的構(gòu)件服務(wù)。u另一種構(gòu)件定制方法是,以構(gòu)件為單元定義配置另一種構(gòu)件定制方法是,以構(gòu)件為單元定義配置信息,通過配置項(xiàng)的具體取值的不同來實(shí)現(xiàn)構(gòu)件信息,通過配置項(xiàng)的具體取值的不同來實(shí)現(xiàn)構(gòu)件功能的定制功能的定制。當(dāng)當(dāng)構(gòu)件設(shè)計(jì)者希望通過一組參數(shù)來構(gòu)件設(shè)計(jì)者希望通過一組參數(shù)來影響構(gòu)件接口定義中的多個(gè)對(duì)外服務(wù)時(shí),此種定影響構(gòu)件接口定義中的多個(gè)對(duì)外服務(wù)時(shí),此種定制機(jī)制優(yōu)于前述的針對(duì)逐個(gè)服務(wù)的參數(shù)化機(jī)制制機(jī)制優(yōu)于前述的針對(duì)逐個(gè)服務(wù)的參數(shù)化機(jī)制。u基于繼承和基于委托的定制機(jī)制?;?/p>
60、繼承和基于委托的定制機(jī)制。2021-12-2849基于繼承和基于委托的定制機(jī)制基于繼承和基于委托的定制機(jī)制它們它們必須必須與基于與基于框架的抽象方法配套使用??蚣艿某橄蠓椒ㄅ涮资褂?。采用采用繼承機(jī)制繼承機(jī)制時(shí)時(shí),構(gòu)件的使用者利用面向?qū)ο?,?gòu)件的使用者利用面向?qū)ο蟮睦^承機(jī)制為框架中的抽象服務(wù)提供適合于特的繼承機(jī)制為框架中的抽象服務(wù)提供適合于特定應(yīng)用場(chǎng)景的實(shí)現(xiàn)體。定應(yīng)用場(chǎng)景的實(shí)現(xiàn)體。采用采用委托機(jī)制委托機(jī)制時(shí)時(shí),構(gòu)件在運(yùn)行過程中將允許使,構(gòu)件在運(yùn)行過程中將允許使用方定制的部分功能委托給使用方提供的抽象用方定制的部分功能委托給使用方提供的抽象服務(wù)的實(shí)現(xiàn)體,或者說,框架型構(gòu)件采用回調(diào)服務(wù)的實(shí)現(xiàn)體,或者
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品包裝設(shè)計(jì)辦法
- 休閑農(nóng)業(yè)溫室大棚施工協(xié)議
- 服裝行業(yè)計(jì)劃生育承諾書模板
- 珠寶溯源管理珍貴價(jià)值的保障
- 營(yíng)業(yè)執(zhí)照保管細(xì)則
- 生物制品的冷鏈物流管理
- 安全生產(chǎn)項(xiàng)目招投標(biāo)文件
- 臨時(shí)用工協(xié)議
- 家庭聚會(huì)用車租賃協(xié)議
- 物流企業(yè)財(cái)務(wù)主管合同
- 裝修材料合同范例
- 【7地RJ期末】安徽省合肥市廬江縣2023-2024學(xué)年七年級(jí)上學(xué)期期末地理試題(含解析)
- 共用線路三方協(xié)議合同范例
- 戰(zhàn)略規(guī)劃的關(guān)鍵要點(diǎn)
- 個(gè)人自檢自查報(bào)告范文
- 社會(huì)工作服務(wù)質(zhì)量保障措施
- 山西云時(shí)代技術(shù)有限公司招聘筆試題目
- 課程思政專題培訓(xùn)
- 食品買賣合同范本
- 期末素養(yǎng)質(zhì)量檢測(cè)卷(試題)-2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)人教版
- 質(zhì)控競(jìng)聘課件
評(píng)論
0/150
提交評(píng)論