版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、13.1 軟件設(shè)計(jì)的基本概念軟件設(shè)計(jì)的基本概念軟件設(shè)計(jì)主要針對(duì)軟件設(shè)計(jì)主要針對(duì)需求分析需求分析過程得到的軟過程得到的軟件需求規(guī)格說明,綜合考慮各種制約因素件需求規(guī)格說明,綜合考慮各種制約因素,探求切實(shí)可行的軟件解決方案并最終給,探求切實(shí)可行的軟件解決方案并最終給出方案的邏輯表示,包括文檔、模型等。出方案的邏輯表示,包括文檔、模型等。軟件設(shè)計(jì)受到資源和技術(shù)兩方面的制約。軟件設(shè)計(jì)受到資源和技術(shù)兩方面的制約。軟件設(shè)計(jì)基本概念是過去數(shù)十年里陸續(xù)提軟件設(shè)計(jì)基本概念是過去數(shù)十年里陸續(xù)提出的,軟件設(shè)計(jì)者根據(jù)這組概念進(jìn)行設(shè)計(jì)出的,軟件設(shè)計(jì)者根據(jù)這組概念進(jìn)行設(shè)計(jì)決策。決策。軟件設(shè)計(jì)的最終目標(biāo)是獲得滿足軟件需求軟
2、件設(shè)計(jì)的最終目標(biāo)是獲得滿足軟件需求的、明確的、可行的、高質(zhì)量的軟件解決的、明確的、可行的、高質(zhì)量的軟件解決方案。方案。 3.1 軟件設(shè)計(jì)的基本概念軟件設(shè)計(jì)的基本概念 抽象與逐步求精抽象與逐步求精模塊數(shù)量與成本模塊數(shù)量與成本內(nèi)聚與耦合及量化指標(biāo)內(nèi)聚與耦合及量化指標(biāo)模塊化與信息隱藏模塊化與信息隱藏(1)抽象與逐步求精)抽象與逐步求精“抽象抽象”是一個(gè)心理學(xué)概念,它要求人們將是一個(gè)心理學(xué)概念,它要求人們將注意力集中在某一層次上考慮問題,而忽注意力集中在某一層次上考慮問題,而忽略那些低層次的細(xì)節(jié)。是管理、控制復(fù)雜略那些低層次的細(xì)節(jié)。是管理、控制復(fù)雜性的基本策略。性的基本策略。軟件設(shè)計(jì)過程是在不同抽象級(jí)
3、別考慮、處軟件設(shè)計(jì)過程是在不同抽象級(jí)別考慮、處理問題的過程。最初應(yīng)該在最高抽象級(jí)別理問題的過程。最初應(yīng)該在最高抽象級(jí)別上,用面向問題域的語(yǔ)言概述問題,包括上,用面向問題域的語(yǔ)言概述問題,包括問題解的形式,然后不斷具體化,不斷用問題解的形式,然后不斷具體化,不斷用接近計(jì)算機(jī)域的語(yǔ)言描述問題,最后,在接近計(jì)算機(jī)域的語(yǔ)言描述問題,最后,在最低的抽象級(jí)別上給出可直接實(shí)現(xiàn)的問題最低的抽象級(jí)別上給出可直接實(shí)現(xiàn)的問題解,即程序。解,即程序。把原本未知解的問題描述成如何解的過程,最終得到解。把原本未知解的問題描述成如何解的過程,最終得到解。(1)抽象與逐步求精)抽象與逐步求精軟件設(shè)計(jì)過程的每一步都是對(duì)較高的、
4、抽軟件設(shè)計(jì)過程的每一步都是對(duì)較高的、抽象的解作一次更具體化的描述。象的解作一次更具體化的描述。過程抽象過程抽象:把完成特定功能的動(dòng)作序列抽象:把完成特定功能的動(dòng)作序列抽象為一個(gè)過程名和參數(shù)表,以后通過指定過程為一個(gè)過程名和參數(shù)表,以后通過指定過程名和實(shí)際參數(shù)調(diào)用此過程。名和實(shí)際參數(shù)調(diào)用此過程。(方法、函數(shù))(方法、函數(shù))數(shù)據(jù)抽象:數(shù)據(jù)抽象:把一個(gè)數(shù)據(jù)對(duì)象的定義(或描述把一個(gè)數(shù)據(jù)對(duì)象的定義(或描述)抽象為一個(gè)數(shù)據(jù)類型名,用此類型名可定)抽象為一個(gè)數(shù)據(jù)類型名,用此類型名可定義多個(gè)具有相同性質(zhì)的數(shù)據(jù)對(duì)象。義多個(gè)具有相同性質(zhì)的數(shù)據(jù)對(duì)象。(系統(tǒng)以(系統(tǒng)以及自定義的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、類)及自定義的數(shù)據(jù)類
5、型、數(shù)據(jù)結(jié)構(gòu)、類)(1)抽象與逐步求精)抽象與逐步求精“逐步求精逐步求精” 可視為一種早期的自頂向下設(shè)可視為一種早期的自頂向下設(shè)計(jì)策略,其主要思想是,針對(duì)某個(gè)功能的計(jì)策略,其主要思想是,針對(duì)某個(gè)功能的宏觀描述用逐步求精的方法不斷地分解,宏觀描述用逐步求精的方法不斷地分解,逐步確立過程細(xì)節(jié),直至該功能用程序語(yǔ)逐步確立過程細(xì)節(jié),直至該功能用程序語(yǔ)言描述的算法實(shí)現(xiàn)為止。言描述的算法實(shí)現(xiàn)為止。 在軟件設(shè)計(jì)過程中,抽象與逐步求精是一在軟件設(shè)計(jì)過程中,抽象與逐步求精是一般都是結(jié)合起來進(jìn)行應(yīng)用。般都是結(jié)合起來進(jìn)行應(yīng)用。系統(tǒng)的層次結(jié)構(gòu)的上一層是下一層的抽象系統(tǒng)的層次結(jié)構(gòu)的上一層是下一層的抽象,下一層是上一層的
6、求精。,下一層是上一層的求精。 抽象與逐步求精抽象與逐步求精(2)模塊化與信息隱藏)模塊化與信息隱藏軟件體系結(jié)構(gòu)體現(xiàn)了模塊化思想,即把軟件劃軟件體系結(jié)構(gòu)體現(xiàn)了模塊化思想,即把軟件劃分為可獨(dú)立命名和訪問的部件,每個(gè)部件稱為分為可獨(dú)立命名和訪問的部件,每個(gè)部件稱為一個(gè)模塊,當(dāng)把所有模塊組裝到一起時(shí)則獲得一個(gè)模塊,當(dāng)把所有模塊組裝到一起時(shí)則獲得滿足問題需要的解。滿足問題需要的解。模塊化使得開發(fā)活動(dòng)更加簡(jiǎn)單的一個(gè)重要因素模塊化使得開發(fā)活動(dòng)更加簡(jiǎn)單的一個(gè)重要因素是模塊的信息隱藏,即一個(gè)模塊的開發(fā)者不必是模塊的信息隱藏,即一個(gè)模塊的開發(fā)者不必看到其它模塊的內(nèi)部,只需知道其接口即可,看到其它模塊的內(nèi)部,只需
7、知道其接口即可,這使得每個(gè)模塊的開發(fā)人員所要處理的復(fù)雜性這使得每個(gè)模塊的開發(fā)人員所要處理的復(fù)雜性顯著降低。顯著降低。 信息隱藏指導(dǎo)的模塊化設(shè)計(jì)不僅支持模塊的并信息隱藏指導(dǎo)的模塊化設(shè)計(jì)不僅支持模塊的并行開發(fā),而且還可以減少測(cè)試和維護(hù)的工作量行開發(fā),而且還可以減少測(cè)試和維護(hù)的工作量。(2)模塊化與信息隱藏)模塊化與信息隱藏問題求解的研究表明,把兩個(gè)問題組合起問題求解的研究表明,把兩個(gè)問題組合起來進(jìn)行求解的復(fù)雜性,一般要比分別對(duì)兩來進(jìn)行求解的復(fù)雜性,一般要比分別對(duì)兩個(gè)問題進(jìn)行求解的復(fù)雜度之和更大,這個(gè)個(gè)問題進(jìn)行求解的復(fù)雜度之和更大,這個(gè)結(jié)論導(dǎo)致結(jié)論導(dǎo)致“分治法分治法”的出現(xiàn),即把一個(gè)復(fù)雜的出現(xiàn),即把
8、一個(gè)復(fù)雜問題分割成若干個(gè)可管理的、更易于求解問題分割成若干個(gè)可管理的、更易于求解的小問題。的小問題。但這種分割并不意味著但這種分割并不意味著“無限無限”分割,當(dāng)模分割,當(dāng)模塊數(shù)量增加時(shí),模塊接口所需要的代價(jià)也塊數(shù)量增加時(shí),模塊接口所需要的代價(jià)也隨之增加。隨之增加。模塊數(shù)量與成本模塊數(shù)量與成本(2)模塊化與信息隱藏)模塊化與信息隱藏恰當(dāng)?shù)亩x模塊范圍和大小非常重要,這恰當(dāng)?shù)亩x模塊范圍和大小非常重要,這與采用的設(shè)計(jì)方法密切相關(guān),評(píng)價(jià)所采用與采用的設(shè)計(jì)方法密切相關(guān),評(píng)價(jià)所采用設(shè)計(jì)方法的標(biāo)準(zhǔn):設(shè)計(jì)方法的標(biāo)準(zhǔn):模塊可分解性模塊可分解性模塊的組裝性模塊的組裝性模塊的可理解性模塊的可理解性模塊連續(xù)性模塊連
9、續(xù)性模塊保護(hù)模塊保護(hù)內(nèi)聚與耦合內(nèi)聚與耦合每個(gè)模塊應(yīng)相對(duì)獨(dú)立,其功能相對(duì)單一,每個(gè)模塊應(yīng)相對(duì)獨(dú)立,其功能相對(duì)單一,而模塊之間的接口應(yīng)盡可能簡(jiǎn)單。而模塊之間的接口應(yīng)盡可能簡(jiǎn)單。內(nèi)聚內(nèi)聚是前述信息隱藏和局部化概念的自然擴(kuò)是前述信息隱藏和局部化概念的自然擴(kuò)展,它標(biāo)志一個(gè)模塊展,它標(biāo)志一個(gè)模塊內(nèi)部?jī)?nèi)部各成分彼此結(jié)合的各成分彼此結(jié)合的緊密程度緊密程度。 耦合耦合是對(duì)軟件結(jié)構(gòu)中模塊間關(guān)聯(lián)程度的一種是對(duì)軟件結(jié)構(gòu)中模塊間關(guān)聯(lián)程度的一種度量。耦合的強(qiáng)弱取決于度量。耦合的強(qiáng)弱取決于模塊間模塊間接口的復(fù)雜接口的復(fù)雜性、進(jìn)入或調(diào)用模塊的位置以及通過接口傳性、進(jìn)入或調(diào)用模塊的位置以及通過接口傳送數(shù)據(jù)的多少等。送數(shù)據(jù)的多少
10、等。 追求追求高內(nèi)聚、低耦合高內(nèi)聚、低耦合。(1)抽象與逐步求精)抽象與逐步求精內(nèi)聚內(nèi)聚內(nèi)聚按其高低程度可劃分為不同等級(jí),內(nèi)內(nèi)聚按其高低程度可劃分為不同等級(jí),內(nèi)聚度越高越好,從而獲得較高的模塊獨(dú)立聚度越高越好,從而獲得較高的模塊獨(dú)立性。性。低等級(jí)內(nèi)聚:低等級(jí)內(nèi)聚: 偶然性內(nèi)聚偶然性內(nèi)聚 邏輯性內(nèi)聚邏輯性內(nèi)聚 時(shí)序內(nèi)聚時(shí)序內(nèi)聚中等級(jí)內(nèi)聚:中等級(jí)內(nèi)聚: 過程性內(nèi)聚過程性內(nèi)聚 通信性內(nèi)聚通信性內(nèi)聚高級(jí)內(nèi)聚:高級(jí)內(nèi)聚: 順序性內(nèi)聚順序性內(nèi)聚 功能性內(nèi)聚:最高程度的內(nèi)聚功能性內(nèi)聚:最高程度的內(nèi)聚耦合耦合耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、進(jìn)入或調(diào)用模塊的位置、通過接口
11、傳輸數(shù)進(jìn)入或調(diào)用模塊的位置、通過接口傳輸數(shù)據(jù)量等。據(jù)量等。模塊間的耦合程度直接影響著系統(tǒng)的可理模塊間的耦合程度直接影響著系統(tǒng)的可理解性、可測(cè)試性、可靠性和可維護(hù)性,軟解性、可測(cè)試性、可靠性和可維護(hù)性,軟件設(shè)計(jì)應(yīng)追求盡可能松散的耦合,模塊間件設(shè)計(jì)應(yīng)追求盡可能松散的耦合,模塊間的聯(lián)系越少,錯(cuò)誤在模塊間傳遞的可能性的聯(lián)系越少,錯(cuò)誤在模塊間傳遞的可能性就越小。就越小。耦合耦合耦合等級(jí)的劃分耦合等級(jí)的劃分低等級(jí)耦合:低等級(jí)耦合: 非直接耦合非直接耦合中等級(jí)耦合中等級(jí)耦合 數(shù)據(jù)耦合數(shù)據(jù)耦合 特征耦合特征耦合 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合高等級(jí)耦合:高等級(jí)耦合: 內(nèi)容耦合內(nèi)容耦合盡量
12、使用數(shù)據(jù)耦合,減少控制耦合,限制盡量使用數(shù)據(jù)耦合,減少控制耦合,限制外部耦合和公共耦合,杜絕內(nèi)容耦合。外部耦合和公共耦合,杜絕內(nèi)容耦合。傳遞的信息含有控制信息內(nèi)聚和耦合的量化指標(biāo)內(nèi)聚和耦合的量化指標(biāo)類耦合度類耦合度類的耦合度為與它耦合的其它類的數(shù)目,包括調(diào)類的耦合度為與它耦合的其它類的數(shù)目,包括調(diào)用其他類的方法、使用其它類的實(shí)例變量。一個(gè)用其他類的方法、使用其它類的實(shí)例變量。一個(gè)類越獨(dú)立,它在應(yīng)用中就越容易被重用,類之間類越獨(dú)立,它在應(yīng)用中就越容易被重用,類之間的耦合度應(yīng)盡可能的小。的耦合度應(yīng)盡可能的小。方法內(nèi)聚缺乏程度方法內(nèi)聚缺乏程度“不訪問相同成員變量的方法對(duì)數(shù)目不訪問相同成員變量的方法對(duì)
13、數(shù)目”減去減去“訪問訪問相同成員變量的方法對(duì)數(shù)目相同成員變量的方法對(duì)數(shù)目”如果一個(gè)類中沒有任何兩個(gè)方法對(duì)同一變量進(jìn)行如果一個(gè)類中沒有任何兩個(gè)方法對(duì)同一變量進(jìn)行訪問,則它們沒有相似性,該類的內(nèi)聚程度將會(huì)訪問,則它們沒有相似性,該類的內(nèi)聚程度將會(huì)很低,缺乏內(nèi)聚度意味著該類可以分為兩個(gè)或更很低,缺乏內(nèi)聚度意味著該類可以分為兩個(gè)或更多的類。多的類。(1)軟件設(shè)計(jì)的一般過程)軟件設(shè)計(jì)的一般過程軟件設(shè)計(jì)可能是一個(gè)多次反復(fù)的過程,所軟件設(shè)計(jì)可能是一個(gè)多次反復(fù)的過程,所以,軟件設(shè)計(jì)一般都可以被看作是迭代的以,軟件設(shè)計(jì)一般都可以被看作是迭代的過程。過程。 迭代有兩層含義(如下頁(yè)圖)迭代有兩層含義(如下頁(yè)圖)軟件
14、設(shè)計(jì)的迭代軟件設(shè)計(jì)的迭代迭代的兩層含義:迭代的兩層含義:第一層含義是,針對(duì)給定的需求模型,通過多次第一層含義是,針對(duì)給定的需求模型,通過多次從抽象到具體的設(shè)計(jì)過程,得出足夠精細(xì)的設(shè)計(jì)模從抽象到具體的設(shè)計(jì)過程,得出足夠精細(xì)的設(shè)計(jì)模型以供軟件實(shí)現(xiàn)之用。型以供軟件實(shí)現(xiàn)之用。第二層含義是,在需求模型發(fā)生變化并更新完成第二層含義是,在需求模型發(fā)生變化并更新完成后,第一層含義的設(shè)計(jì)過程再隨之展開,直至獲得后,第一層含義的設(shè)計(jì)過程再隨之展開,直至獲得最終的目標(biāo)軟件產(chǎn)品最終的目標(biāo)軟件產(chǎn)品 。軟件設(shè)計(jì)的一般過程軟件設(shè)計(jì)的一般過程軟件設(shè)計(jì)過程包括在不同抽象層次上開發(fā)系軟件設(shè)計(jì)過程包括在不同抽象層次上開發(fā)系統(tǒng)的多個(gè)
15、模型。統(tǒng)的多個(gè)模型。軟件設(shè)計(jì)可以看作是將軟件設(shè)計(jì)可以看作是將需求規(guī)格說明需求規(guī)格說明轉(zhuǎn)換為轉(zhuǎn)換為可直接提供軟件代碼實(shí)現(xiàn)使用的可直接提供軟件代碼實(shí)現(xiàn)使用的設(shè)計(jì)規(guī)格說設(shè)計(jì)規(guī)格說明。明。工程管理的角度:工程管理的角度:概要設(shè)計(jì):根據(jù)需求確定軟件和數(shù)據(jù)總體框架。概要設(shè)計(jì):根據(jù)需求確定軟件和數(shù)據(jù)總體框架。詳細(xì)設(shè)計(jì):進(jìn)一步精化成軟件的算法表示和數(shù)據(jù)詳細(xì)設(shè)計(jì):進(jìn)一步精化成軟件的算法表示和數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)。技術(shù)上,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)由若干活動(dòng)組成,技術(shù)上,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)由若干活動(dòng)組成,包括軟件體系結(jié)構(gòu)設(shè)計(jì)、界面設(shè)計(jì)、模塊包括軟件體系結(jié)構(gòu)設(shè)計(jì)、界面設(shè)計(jì)、模塊/子系統(tǒng)子系統(tǒng)設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)、過程設(shè)計(jì)、數(shù)據(jù)模型
16、設(shè)計(jì)、過程/算法設(shè)計(jì)。算法設(shè)計(jì)。軟件設(shè)計(jì)的一般過程軟件設(shè)計(jì)的一般過程1)軟件設(shè)計(jì)計(jì)劃)軟件設(shè)計(jì)計(jì)劃在設(shè)計(jì)過程中,對(duì)設(shè)計(jì)活動(dòng)進(jìn)行計(jì)劃應(yīng)該最在設(shè)計(jì)過程中,對(duì)設(shè)計(jì)活動(dòng)進(jìn)行計(jì)劃應(yīng)該最早進(jìn)行,然后按照計(jì)劃實(shí)施體系結(jié)構(gòu)設(shè)計(jì)、早進(jìn)行,然后按照計(jì)劃實(shí)施體系結(jié)構(gòu)設(shè)計(jì)、界面設(shè)計(jì)、模塊界面設(shè)計(jì)、模塊/子系統(tǒng)設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)子系統(tǒng)設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)、過程、過程/算法設(shè)計(jì)等活動(dòng)。算法設(shè)計(jì)等活動(dòng)。 軟件設(shè)計(jì)計(jì)劃的任務(wù)是:明確設(shè)計(jì)過程的輸軟件設(shè)計(jì)計(jì)劃的任務(wù)是:明確設(shè)計(jì)過程的輸入制品并使其處于就緒狀態(tài),定義設(shè)計(jì)過程入制品并使其處于就緒狀態(tài),定義設(shè)計(jì)過程的目標(biāo)、輸出制品及其驗(yàn)收準(zhǔn)則,確定覆蓋的目標(biāo)、輸出制品及其驗(yàn)收準(zhǔn)則,確定
17、覆蓋設(shè)計(jì)過程中各個(gè)階段的全局性設(shè)計(jì)策略,分設(shè)計(jì)過程中各個(gè)階段的全局性設(shè)計(jì)策略,分配設(shè)計(jì)過程相關(guān)人員的職責(zé),針對(duì)設(shè)計(jì)過程配設(shè)計(jì)過程相關(guān)人員的職責(zé),針對(duì)設(shè)計(jì)過程中的活動(dòng)制訂工作計(jì)劃。中的活動(dòng)制訂工作計(jì)劃。 1)軟件設(shè)計(jì)計(jì)劃)軟件設(shè)計(jì)計(jì)劃軟件設(shè)計(jì)計(jì)劃的步驟:軟件設(shè)計(jì)計(jì)劃的步驟:確定設(shè)計(jì)的目標(biāo)和驗(yàn)收標(biāo)準(zhǔn)確定設(shè)計(jì)的目標(biāo)和驗(yàn)收標(biāo)準(zhǔn)明確目標(biāo)軟件系統(tǒng)應(yīng)遵循的技術(shù)標(biāo)準(zhǔn)或規(guī)范明確目標(biāo)軟件系統(tǒng)應(yīng)遵循的技術(shù)標(biāo)準(zhǔn)或規(guī)范重新審視項(xiàng)目風(fēng)險(xiǎn)管理計(jì)劃重新審視項(xiàng)目風(fēng)險(xiǎn)管理計(jì)劃制定本次設(shè)計(jì)過程的工作計(jì)劃制定本次設(shè)計(jì)過程的工作計(jì)劃對(duì)設(shè)計(jì)過程的工作計(jì)劃進(jìn)行評(píng)審對(duì)設(shè)計(jì)過程的工作計(jì)劃進(jìn)行評(píng)審2)體系結(jié)構(gòu)設(shè)計(jì))體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)的
18、目標(biāo)是建立軟件系統(tǒng)軟件體系結(jié)構(gòu)設(shè)計(jì)的目標(biāo)是建立軟件系統(tǒng)的體系結(jié)構(gòu),有時(shí)也稱的體系結(jié)構(gòu),有時(shí)也稱“頂層架構(gòu)頂層架構(gòu)”。這種架構(gòu)既要明確定義軟件各子系統(tǒng)、關(guān)這種架構(gòu)既要明確定義軟件各子系統(tǒng)、關(guān)鍵構(gòu)件、關(guān)鍵類的職責(zé)劃分及協(xié)作關(guān)系,鍵構(gòu)件、關(guān)鍵類的職責(zé)劃分及協(xié)作關(guān)系,同時(shí)也要描繪它們?cè)谖锢磉\(yùn)行環(huán)境下的部同時(shí)也要描繪它們?cè)谖锢磉\(yùn)行環(huán)境下的部署模型。署模型。頂層架構(gòu)還必須針對(duì)軟件系統(tǒng)全局性、基頂層架構(gòu)還必須針對(duì)軟件系統(tǒng)全局性、基礎(chǔ)性的技術(shù)問題給出技術(shù)解決方案,這種礎(chǔ)性的技術(shù)問題給出技術(shù)解決方案,這種方案往往構(gòu)成目標(biāo)軟件系統(tǒng)的體系結(jié)構(gòu)的方案往往構(gòu)成目標(biāo)軟件系統(tǒng)的體系結(jié)構(gòu)的技術(shù)基礎(chǔ)設(shè)施。技術(shù)基礎(chǔ)設(shè)施。 2)體
19、系結(jié)構(gòu)設(shè)計(jì))體系結(jié)構(gòu)設(shè)計(jì)評(píng)價(jià)軟件體系結(jié)構(gòu)評(píng)價(jià)軟件體系結(jié)構(gòu)寬度和深度:軟件控制的層數(shù)和跨度寬度和深度:軟件控制的層數(shù)和跨度扇出率和扇入率:扇出率和扇入率: 扇出率:一個(gè)模塊的扇出率指該模塊直接扇出率:一個(gè)模塊的扇出率指該模塊直接控制控制的的 其他其他模塊數(shù)。模塊數(shù)。 扇入率:一個(gè)模塊的扇入率指直接扇入率:一個(gè)模塊的扇入率指直接控制該模塊控制該模塊的的 模塊數(shù)模塊數(shù)??梢娦院吐?lián)通性可見性和聯(lián)通性 模塊的可見性:該模塊可直接或間接引用的一組模塊。模塊的可見性:該模塊可直接或間接引用的一組模塊。 模塊的聯(lián)通性:模塊可直接引用的一組模塊。模塊的聯(lián)通性:模塊可直接引用的一組模塊。軟件體系結(jié)構(gòu)設(shè)計(jì)有關(guān)概念軟
20、件體系結(jié)構(gòu)設(shè)計(jì)有關(guān)概念3)界面設(shè)計(jì))界面設(shè)計(jì)用戶界面設(shè)計(jì)的目標(biāo)是,為用戶使用目標(biāo)軟件用戶界面設(shè)計(jì)的目標(biāo)是,為用戶使用目標(biāo)軟件系統(tǒng)以實(shí)現(xiàn)其所有業(yè)務(wù)需求而提供友好的人機(jī)系統(tǒng)以實(shí)現(xiàn)其所有業(yè)務(wù)需求而提供友好的人機(jī)交互界面。交互界面。 軟件界面設(shè)計(jì)需要考慮以下因素軟件界面設(shè)計(jì)需要考慮以下因素 :適用于軟件功能適用于軟件功能 易理解性易理解性 一致性一致性 靈敏性靈敏性 容錯(cuò)性容錯(cuò)性 人性化人性化 國(guó)際化國(guó)際化 個(gè)性化個(gè)性化 合理的布局合理的布局 和諧的色彩和諧的色彩 界面的易用性界面的美觀性4)模塊)模塊/子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì)子系統(tǒng)和模塊的區(qū)別:子系統(tǒng)和模塊的區(qū)別:一個(gè)子系統(tǒng)獨(dú)立構(gòu)成系統(tǒng),不依賴其它子系
21、統(tǒng)提一個(gè)子系統(tǒng)獨(dú)立構(gòu)成系統(tǒng),不依賴其它子系統(tǒng)提供的服務(wù)。供的服務(wù)。 一個(gè)模塊通常是一個(gè)能提供一個(gè)或多個(gè)服務(wù)的系一個(gè)模塊通常是一個(gè)能提供一個(gè)或多個(gè)服務(wù)的系統(tǒng)部件。它能利用其它模塊提供的服務(wù),一般不統(tǒng)部件。它能利用其它模塊提供的服務(wù),一般不被看成一個(gè)獨(dú)立的系統(tǒng)。被看成一個(gè)獨(dú)立的系統(tǒng)。 由于模塊和子系統(tǒng)都是軟件組成部分,它們由于模塊和子系統(tǒng)都是軟件組成部分,它們一般都有層次結(jié)構(gòu),相互之間存在接口,其一般都有層次結(jié)構(gòu),相互之間存在接口,其設(shè)計(jì)方法有很多類似的方面,因此我們統(tǒng)一設(shè)計(jì)方法有很多類似的方面,因此我們統(tǒng)一稱為模塊設(shè)計(jì)。稱為模塊設(shè)計(jì)。 模塊設(shè)計(jì)的目標(biāo)模塊設(shè)計(jì)的目標(biāo)模塊設(shè)計(jì)的目標(biāo)是,確定模塊設(shè)計(jì)的
22、目標(biāo)是,確定模塊的具體接口模塊的具體接口定義定義,并設(shè)計(jì)模塊的內(nèi)部結(jié)構(gòu),即,設(shè)置,并設(shè)計(jì)模塊的內(nèi)部結(jié)構(gòu),即,設(shè)置包含于其中的(更小粒度的)模塊、構(gòu)件包含于其中的(更小粒度的)模塊、構(gòu)件和設(shè)計(jì)類,和設(shè)計(jì)類,明確它們之間的明確它們之間的協(xié)作關(guān)系協(xié)作關(guān)系,確保它們能夠,確保它們能夠協(xié)同實(shí)現(xiàn)高層模塊接口規(guī)定的所有功能和協(xié)同實(shí)現(xiàn)高層模塊接口規(guī)定的所有功能和行為。行為。在進(jìn)行模塊設(shè)計(jì)時(shí),要盡量保持模塊的功在進(jìn)行模塊設(shè)計(jì)時(shí),要盡量保持模塊的功能獨(dú)立性,遵循能獨(dú)立性,遵循“高內(nèi)聚、低耦合高內(nèi)聚、低耦合”的設(shè)計(jì)的設(shè)計(jì)思想。思想。此外,還要力求將模塊的影響限制在模塊此外,還要力求將模塊的影響限制在模塊的控制范圍內(nèi)
23、,使得以后軟件的修改和維的控制范圍內(nèi),使得以后軟件的修改和維護(hù)工作更加簡(jiǎn)單。護(hù)工作更加簡(jiǎn)單。 5)過程)過程/算法設(shè)計(jì)算法設(shè)計(jì)過程過程/算法設(shè)計(jì)的任務(wù)就是對(duì)模塊內(nèi)部的工算法設(shè)計(jì)的任務(wù)就是對(duì)模塊內(nèi)部的工作和執(zhí)行過程進(jìn)行描述,給出有關(guān)處理的作和執(zhí)行過程進(jìn)行描述,給出有關(guān)處理的精確說明,例如事件的順序、確切的決策精確說明,例如事件的順序、確切的決策位置、循環(huán)操作以及數(shù)據(jù)的組成等。位置、循環(huán)操作以及數(shù)據(jù)的組成等。 軟件結(jié)構(gòu)與軟件過程相互關(guān)聯(lián),軟件結(jié)構(gòu)軟件結(jié)構(gòu)與軟件過程相互關(guān)聯(lián),軟件結(jié)構(gòu)中任何模塊的所有從屬模塊必將被引用出中任何模塊的所有從屬模塊必將被引用出現(xiàn)在該模塊的過程說明中。因此,軟件過現(xiàn)在該模塊
24、的過程說明中。因此,軟件過程對(duì)應(yīng)的結(jié)構(gòu)設(shè)計(jì)亦構(gòu)成一個(gè)層次結(jié)構(gòu)。程對(duì)應(yīng)的結(jié)構(gòu)設(shè)計(jì)亦構(gòu)成一個(gè)層次結(jié)構(gòu)。 可以使用可以使用UML對(duì)模塊進(jìn)行設(shè)計(jì)對(duì)模塊進(jìn)行設(shè)計(jì)使用使用UML的模塊過程設(shè)計(jì)的模塊過程設(shè)計(jì)6)數(shù)據(jù)模型設(shè)計(jì))數(shù)據(jù)模型設(shè)計(jì)我們把數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、甚至我們把數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、甚至數(shù)據(jù)文件設(shè)計(jì)等統(tǒng)一稱為數(shù)據(jù)模型設(shè)計(jì)。數(shù)據(jù)文件設(shè)計(jì)等統(tǒng)一稱為數(shù)據(jù)模型設(shè)計(jì)。 在數(shù)據(jù)模型設(shè)計(jì)中有一個(gè)重要概念:持久在數(shù)據(jù)模型設(shè)計(jì)中有一個(gè)重要概念:持久數(shù)據(jù)操作,它包括寫入、查詢、更新和刪數(shù)據(jù)操作,它包括寫入、查詢、更新和刪除四類基本操作以及由它們復(fù)合而成的業(yè)除四類基本操作以及由它們復(fù)合而成的業(yè)務(wù)數(shù)據(jù)操作。務(wù)數(shù)
25、據(jù)操作。 在很多軟件系統(tǒng)中,數(shù)據(jù)是其核心,因此在很多軟件系統(tǒng)中,數(shù)據(jù)是其核心,因此,對(duì)數(shù)據(jù)元素的格式、結(jié)構(gòu)、訪存、表示,對(duì)數(shù)據(jù)元素的格式、結(jié)構(gòu)、訪存、表示等機(jī)制進(jìn)行良好建模和優(yōu)化,是提高軟件等機(jī)制進(jìn)行良好建模和優(yōu)化,是提高軟件設(shè)計(jì)質(zhì)量和系統(tǒng)性能的基礎(chǔ),對(duì)軟件系統(tǒng)設(shè)計(jì)質(zhì)量和系統(tǒng)性能的基礎(chǔ),對(duì)軟件系統(tǒng)的應(yīng)用具有重要意義。的應(yīng)用具有重要意義。 軟件設(shè)計(jì)的一般過程軟件設(shè)計(jì)的一般過程軟件設(shè)計(jì)質(zhì)量的重要性軟件設(shè)計(jì)質(zhì)量的重要性軟件設(shè)計(jì)是軟件開發(fā)過程中的核心活動(dòng),軟軟件設(shè)計(jì)是軟件開發(fā)過程中的核心活動(dòng),軟件設(shè)計(jì)的質(zhì)量不但對(duì)最終軟件產(chǎn)品的質(zhì)量起件設(shè)計(jì)的質(zhì)量不但對(duì)最終軟件產(chǎn)品的質(zhì)量起著決定性作用,還對(duì)軟件開發(fā)過程以
26、及軟件著決定性作用,還對(duì)軟件開發(fā)過程以及軟件以后在使用過程中維護(hù)的難易程度有著重要以后在使用過程中維護(hù)的難易程度有著重要的影響。的影響。高質(zhì)量的軟件設(shè)計(jì),能夠有效縮短軟件開發(fā)高質(zhì)量的軟件設(shè)計(jì),能夠有效縮短軟件開發(fā)時(shí)間,減少開發(fā)成本,提高最終軟件產(chǎn)品質(zhì)時(shí)間,減少開發(fā)成本,提高最終軟件產(chǎn)品質(zhì)量。量。 軟件設(shè)計(jì)的質(zhì)量要素軟件設(shè)計(jì)的質(zhì)量要素評(píng)價(jià)軟件設(shè)計(jì)的質(zhì)量評(píng)價(jià)軟件設(shè)計(jì)的質(zhì)量結(jié)構(gòu)良好結(jié)構(gòu)良好充分性充分性可行性可行性簡(jiǎn)單性簡(jiǎn)單性實(shí)用性實(shí)用性靈活性靈活性健壯性健壯性可移植性可移植性可復(fù)用性可復(fù)用性標(biāo)準(zhǔn)化標(biāo)準(zhǔn)化軟件設(shè)計(jì)的質(zhì)量軟件設(shè)計(jì)的質(zhì)量軟件設(shè)計(jì)對(duì)最終軟件產(chǎn)品質(zhì)量產(chǎn)生的影響軟件設(shè)計(jì)對(duì)最終軟件產(chǎn)品質(zhì)量產(chǎn)生的影
27、響包括:包括:正確性正確性可靠性可靠性運(yùn)行效率運(yùn)行效率可移植性可移植性可維護(hù)性可維護(hù)性可復(fù)用性可復(fù)用性軟件設(shè)計(jì)的質(zhì)量軟件設(shè)計(jì)的質(zhì)量軟件設(shè)計(jì)對(duì)軟件開發(fā)過程可能產(chǎn)生的影響軟件設(shè)計(jì)對(duì)軟件開發(fā)過程可能產(chǎn)生的影響包括:包括:開發(fā)效率開發(fā)效率交付時(shí)間交付時(shí)間風(fēng)險(xiǎn)管理風(fēng)險(xiǎn)管理資源使用資源使用成本成本人員培訓(xùn)人員培訓(xùn)合法性合法性(1)軟件體系結(jié)構(gòu)設(shè)計(jì)方法概述)軟件體系結(jié)構(gòu)設(shè)計(jì)方法概述軟件體系結(jié)構(gòu)的設(shè)計(jì)方法是指通過一系列軟件體系結(jié)構(gòu)的設(shè)計(jì)方法是指通過一系列的設(shè)計(jì)活動(dòng),獲得滿足系統(tǒng)功能性需求、的設(shè)計(jì)活動(dòng),獲得滿足系統(tǒng)功能性需求、并且符合一定非功能性需求約束的軟件體并且符合一定非功能性需求約束的軟件體系結(jié)構(gòu)模型。系
28、結(jié)構(gòu)模型。目前存在多種體系結(jié)構(gòu)設(shè)計(jì)方法,它們的目前存在多種體系結(jié)構(gòu)設(shè)計(jì)方法,它們的側(cè)重點(diǎn)有所不同側(cè)重點(diǎn)有所不同(功能、非功能、復(fù)用功能、非功能、復(fù)用)。 在實(shí)際應(yīng)用過程中,這些體系結(jié)構(gòu)設(shè)計(jì)方在實(shí)際應(yīng)用過程中,這些體系結(jié)構(gòu)設(shè)計(jì)方法并不是絕對(duì)互斥的,根據(jù)需要,有可能法并不是絕對(duì)互斥的,根據(jù)需要,有可能綜合運(yùn)用不同體系結(jié)構(gòu)設(shè)計(jì)方法的思想,綜合運(yùn)用不同體系結(jié)構(gòu)設(shè)計(jì)方法的思想,得到最終所需的設(shè)計(jì)結(jié)果。得到最終所需的設(shè)計(jì)結(jié)果。 軟件體系結(jié)構(gòu)設(shè)計(jì)方法軟件體系結(jié)構(gòu)設(shè)計(jì)方法4+1多視圖建模多視圖建?;谠u(píng)估與轉(zhuǎn)換的設(shè)計(jì)方法基于評(píng)估與轉(zhuǎn)換的設(shè)計(jì)方法模式驅(qū)動(dòng)的設(shè)計(jì)方法模式驅(qū)動(dòng)的設(shè)計(jì)方法領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域
29、特定的軟件體系結(jié)構(gòu)設(shè)計(jì) 復(fù)用復(fù)用軟件產(chǎn)品線方法軟件產(chǎn)品線方法其它軟件體系結(jié)構(gòu)設(shè)計(jì)方法其它軟件體系結(jié)構(gòu)設(shè)計(jì)方法1) 多視圖建模多視圖建模1) 多視圖建模多視圖建模邏輯視圖:功能需求、與應(yīng)用領(lǐng)域密切相關(guān)、領(lǐng)域術(shù)語(yǔ)、邏輯視圖:功能需求、與應(yīng)用領(lǐng)域密切相關(guān)、領(lǐng)域術(shù)語(yǔ)、系統(tǒng)功能映射到概念構(gòu)件和連接件、與硬件和軟件細(xì)節(jié)無系統(tǒng)功能映射到概念構(gòu)件和連接件、與硬件和軟件細(xì)節(jié)無關(guān)。關(guān)。進(jìn)程視圖:非功能需求、設(shè)計(jì)中關(guān)于并發(fā)和同步的內(nèi)容。進(jìn)程視圖:非功能需求、設(shè)計(jì)中關(guān)于并發(fā)和同步的內(nèi)容。開發(fā)視圖:軟件在開發(fā)環(huán)境中的靜態(tài)結(jié)構(gòu)、構(gòu)件和連接子開發(fā)視圖:軟件在開發(fā)環(huán)境中的靜態(tài)結(jié)構(gòu)、構(gòu)件和連接子映射到子系統(tǒng)或模塊、關(guān)注軟件模塊
30、的組織。映射到子系統(tǒng)或模塊、關(guān)注軟件模塊的組織。物理視圖:描述軟件到硬件的映射關(guān)系、關(guān)注物理環(huán)境的物理視圖:描述軟件到硬件的映射關(guān)系、關(guān)注物理環(huán)境的拓?fù)浣Y(jié)構(gòu)以及節(jié)點(diǎn)間的通信。拓?fù)浣Y(jié)構(gòu)以及節(jié)點(diǎn)間的通信。場(chǎng)景:把上述四種視圖聯(lián)系起來,場(chǎng)景(用例的實(shí)例)通場(chǎng)景:把上述四種視圖聯(lián)系起來,場(chǎng)景(用例的實(shí)例)通常是最重要的需求。常是最重要的需求。 以上視圖均可用以上視圖均可用UML進(jìn)行建模。進(jìn)行建模。2)基于評(píng)估與轉(zhuǎn)換的設(shè)計(jì))基于評(píng)估與轉(zhuǎn)換的設(shè)計(jì)方法方法針對(duì)功能特性設(shè)計(jì)體系結(jié)構(gòu),對(duì)設(shè)計(jì)結(jié)果針對(duì)功能特性設(shè)計(jì)體系結(jié)構(gòu),對(duì)設(shè)計(jì)結(jié)果進(jìn)行評(píng)審,如果不滿足要求則進(jìn)行改進(jìn),進(jìn)行評(píng)審,如果不滿足要求則進(jìn)行改進(jìn),一直迭代到
31、滿足要求為止。一直迭代到滿足要求為止。對(duì)設(shè)計(jì)出的體系結(jié)構(gòu)的質(zhì)量進(jìn)行評(píng)估、不對(duì)設(shè)計(jì)出的體系結(jié)構(gòu)的質(zhì)量進(jìn)行評(píng)估、不滿足要求時(shí)的體現(xiàn)結(jié)構(gòu)轉(zhuǎn)換特別重要。滿足要求時(shí)的體現(xiàn)結(jié)構(gòu)轉(zhuǎn)換特別重要。2)基于評(píng)估與轉(zhuǎn)換的設(shè)計(jì))基于評(píng)估與轉(zhuǎn)換的設(shè)計(jì)方法方法體系結(jié)構(gòu)的評(píng)估體系結(jié)構(gòu)的評(píng)估基于場(chǎng)景的評(píng)估基于場(chǎng)景的評(píng)估仿真仿真數(shù)學(xué)建模數(shù)學(xué)建模基于經(jīng)驗(yàn)的推理基于經(jīng)驗(yàn)的推理體系結(jié)構(gòu)設(shè)計(jì)轉(zhuǎn)換方式體系結(jié)構(gòu)設(shè)計(jì)轉(zhuǎn)換方式質(zhì)量評(píng)價(jià)結(jié)果不滿足需求規(guī)格說明,需要質(zhì)量評(píng)價(jià)結(jié)果不滿足需求規(guī)格說明,需要改變?cè)u(píng)估環(huán)境(修改評(píng)估)或修改體系結(jié)改變?cè)u(píng)估環(huán)境(修改評(píng)估)或修改體系結(jié)構(gòu)設(shè)計(jì),有以下三種體系結(jié)構(gòu)轉(zhuǎn)化方式:構(gòu)設(shè)計(jì),有以下三種體系結(jié)構(gòu)轉(zhuǎn)化方式:使用
32、合適的體系結(jié)構(gòu)風(fēng)格和模式,或者設(shè)計(jì)模使用合適的體系結(jié)構(gòu)風(fēng)格和模式,或者設(shè)計(jì)模式來改進(jìn)體系結(jié)構(gòu)設(shè)計(jì)。式來改進(jìn)體系結(jié)構(gòu)設(shè)計(jì)。把非功能需求轉(zhuǎn)化為功能性解決方案,該功能把非功能需求轉(zhuǎn)化為功能性解決方案,該功能性方案可以與問題域無關(guān),但可以滿足質(zhì)量屬性方案可以與問題域無關(guān),但可以滿足質(zhì)量屬性的要求。性的要求。采用采用“分而治之分而治之”的方式,可以把系統(tǒng)級(jí)的質(zhì)的方式,可以把系統(tǒng)級(jí)的質(zhì)量需求分配到子系統(tǒng)或模塊中,或者把質(zhì)量需量需求分配到子系統(tǒng)或模塊中,或者把質(zhì)量需求分解為多個(gè)與功能相關(guān)的質(zhì)量需求,分解后求分解為多個(gè)與功能相關(guān)的質(zhì)量需求,分解后的質(zhì)量需求能夠比較容易得到滿足。的質(zhì)量需求能夠比較容易得到滿足。
33、軟件設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)和復(fù)用軟件設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)和復(fù)用模式驅(qū)動(dòng)的設(shè)計(jì)方法模式驅(qū)動(dòng)的設(shè)計(jì)方法領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)軟件產(chǎn)品線方法軟件產(chǎn)品線方法體系結(jié)構(gòu)風(fēng)格體系結(jié)構(gòu)風(fēng)格/模式模式體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用方式中體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用方式中系統(tǒng)組織方式的慣用模式,為設(shè)計(jì)人員提系統(tǒng)組織方式的慣用模式,為設(shè)計(jì)人員提供公共的模型、符號(hào)和術(shù)語(yǔ)表示,促進(jìn)設(shè)供公共的模型、符號(hào)和術(shù)語(yǔ)表示,促進(jìn)設(shè)計(jì)復(fù)用甚至代碼復(fù)用計(jì)復(fù)用甚至代碼復(fù)用體系結(jié)構(gòu)模式是對(duì)設(shè)計(jì)模式的擴(kuò)展,描述體系結(jié)構(gòu)模式是對(duì)設(shè)計(jì)模式的擴(kuò)展,描述了軟件系統(tǒng)基本的結(jié)構(gòu)化組織方案,是具了軟件系統(tǒng)基本的結(jié)構(gòu)化組織方案,是具體體系
34、結(jié)構(gòu)的模板。體體系結(jié)構(gòu)的模板。體系結(jié)構(gòu)風(fēng)格描述了軟件總體框架的結(jié)構(gòu)體系結(jié)構(gòu)風(fēng)格描述了軟件總體框架的結(jié)構(gòu),綜合考慮整個(gè)系統(tǒng)各方面的需求。,綜合考慮整個(gè)系統(tǒng)各方面的需求。設(shè)計(jì)模式是針對(duì)單一的問題提供解決方案設(shè)計(jì)模式是針對(duì)單一的問題提供解決方案,層次比軟件體系結(jié)構(gòu)風(fēng)格低。,層次比軟件體系結(jié)構(gòu)風(fēng)格低。3)模式驅(qū)動(dòng)的設(shè)計(jì)方法)模式驅(qū)動(dòng)的設(shè)計(jì)方法體系結(jié)構(gòu)風(fēng)格的分類體系結(jié)構(gòu)風(fēng)格的分類體系結(jié)構(gòu)風(fēng)格分類體系結(jié)構(gòu)風(fēng)格分類獨(dú)立構(gòu)件體系結(jié)構(gòu)獨(dú)立構(gòu)件體系結(jié)構(gòu)數(shù)據(jù)流體系結(jié)構(gòu)數(shù)據(jù)流體系結(jié)構(gòu)數(shù)據(jù)為中心的體系結(jié)構(gòu)數(shù)據(jù)為中心的體系結(jié)構(gòu)虛擬機(jī)體系結(jié)構(gòu)虛擬機(jī)體系結(jié)構(gòu)調(diào)用與返回體系結(jié)構(gòu)調(diào)用與返回體系結(jié)構(gòu)4)領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì))
35、領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域特定的軟件體系結(jié)構(gòu)(領(lǐng)域特定的軟件體系結(jié)構(gòu)(Domain Specific Software Architecture,DSSA)是領(lǐng)域工程的核心部分,領(lǐng)域工程分析)是領(lǐng)域工程的核心部分,領(lǐng)域工程分析應(yīng)用領(lǐng)域的共同特征和可變特征,對(duì)刻畫應(yīng)用領(lǐng)域的共同特征和可變特征,對(duì)刻畫這些特征的對(duì)象和操作進(jìn)行選擇和抽象,這些特征的對(duì)象和操作進(jìn)行選擇和抽象,形成領(lǐng)域模型,并進(jìn)一步生成形成領(lǐng)域模型,并進(jìn)一步生成DSSA。領(lǐng)域特定的軟件體系結(jié)構(gòu)借鑒領(lǐng)域中已經(jīng)領(lǐng)域特定的軟件體系結(jié)構(gòu)借鑒領(lǐng)域中已經(jīng)成熟的軟件體系結(jié)構(gòu),實(shí)現(xiàn)解決方案在某成熟的軟件體系結(jié)構(gòu),實(shí)現(xiàn)解決方案在某個(gè)領(lǐng)域內(nèi)的復(fù)用。雖然
36、這些系統(tǒng)實(shí)例的細(xì)個(gè)領(lǐng)域內(nèi)的復(fù)用。雖然這些系統(tǒng)實(shí)例的細(xì)節(jié)會(huì)有不同,但共同的體系結(jié)構(gòu)在開發(fā)新節(jié)會(huì)有不同,但共同的體系結(jié)構(gòu)在開發(fā)新系統(tǒng)時(shí)是能夠復(fù)用的。系統(tǒng)時(shí)是能夠復(fù)用的。 DSSA與體系結(jié)構(gòu)風(fēng)格的區(qū)與體系結(jié)構(gòu)風(fēng)格的區(qū)別別DSSA與軟件體系結(jié)構(gòu)風(fēng)格是從不同角度出與軟件體系結(jié)構(gòu)風(fēng)格是從不同角度出發(fā)研究問題的兩種結(jié)果,前者從問題域出發(fā)發(fā)研究問題的兩種結(jié)果,前者從問題域出發(fā),而后者從解決域出發(fā)。,而后者從解決域出發(fā)。DSSA只在某個(gè)特定領(lǐng)域中進(jìn)行經(jīng)驗(yàn)知識(shí)的只在某個(gè)特定領(lǐng)域中進(jìn)行經(jīng)驗(yàn)知識(shí)的提取、總結(jié)與組織,但可以同時(shí)使用多種軟提取、總結(jié)與組織,但可以同時(shí)使用多種軟件體系結(jié)構(gòu)風(fēng)格;而一種軟件體系結(jié)構(gòu)風(fēng)格件體系結(jié)
37、構(gòu)風(fēng)格;而一種軟件體系結(jié)構(gòu)風(fēng)格所呈現(xiàn)的公共結(jié)構(gòu)和設(shè)計(jì)方法可以擴(kuò)展到多所呈現(xiàn)的公共結(jié)構(gòu)和設(shè)計(jì)方法可以擴(kuò)展到多個(gè)應(yīng)用領(lǐng)域。個(gè)應(yīng)用領(lǐng)域。DSSA的體系結(jié)構(gòu)表示和工具一般只適用于的體系結(jié)構(gòu)表示和工具一般只適用于一個(gè)較小的范圍,在其它領(lǐng)域中是不適用并一個(gè)較小的范圍,在其它領(lǐng)域中是不適用并難以復(fù)用的。難以復(fù)用的。領(lǐng)域特定的軟件體系結(jié)構(gòu)類領(lǐng)域特定的軟件體系結(jié)構(gòu)類型型類模型:類模型是從許多實(shí)際系統(tǒng)中抽象類模型:類模型是從許多實(shí)際系統(tǒng)中抽象出來的一般模型,它們封裝這些系統(tǒng)的主出來的一般模型,它們封裝這些系統(tǒng)的主要特征。如:編譯器模型,大量的編譯器要特征。如:編譯器模型,大量的編譯器幾乎都基于同一種體系結(jié)構(gòu)。幾乎
38、都基于同一種體系結(jié)構(gòu)。參考模型:參考模型是更抽象且是描述一參考模型:參考模型是更抽象且是描述一大類系統(tǒng)的模型,它對(duì)設(shè)計(jì)者是有關(guān)某類大類系統(tǒng)的模型,它對(duì)設(shè)計(jì)者是有關(guān)某類系統(tǒng)的一般結(jié)構(gòu)的指導(dǎo),通常源自于對(duì)某系統(tǒng)的一般結(jié)構(gòu)的指導(dǎo),通常源自于對(duì)某應(yīng)用領(lǐng)域的研究。它代表了一個(gè)理想化的應(yīng)用領(lǐng)域的研究。它代表了一個(gè)理想化的體系結(jié)構(gòu),包含了系統(tǒng)所有應(yīng)該具有的特體系結(jié)構(gòu),包含了系統(tǒng)所有應(yīng)該具有的特征。如:征。如:OSI七層參考模型。七層參考模型。5)軟件產(chǎn)品線方法)軟件產(chǎn)品線方法軟件復(fù)用的更高階段,已經(jīng)超出軟件體系結(jié)構(gòu)設(shè)計(jì)方法軟件復(fù)用的更高階段,已經(jīng)超出軟件體系結(jié)構(gòu)設(shè)計(jì)方法的范疇。的范疇。軟件產(chǎn)品線指一組具有公
39、共的、可管理特征(系統(tǒng)需求軟件產(chǎn)品線指一組具有公共的、可管理特征(系統(tǒng)需求)的軟件系統(tǒng),這些系統(tǒng)滿足特定的市場(chǎng)需求或者任務(wù))的軟件系統(tǒng),這些系統(tǒng)滿足特定的市場(chǎng)需求或者任務(wù)領(lǐng)域需求,并且按照預(yù)定義的方式基于公共的核心資產(chǎn)領(lǐng)域需求,并且按照預(yù)定義的方式基于公共的核心資產(chǎn)(Core Assets)集合開發(fā)得到。)集合開發(fā)得到。 軟件產(chǎn)品線主要由兩部分組成:軟件產(chǎn)品線主要由兩部分組成:核心資產(chǎn)庫(kù):產(chǎn)品線的基礎(chǔ),是領(lǐng)域工程所有成果的核心資產(chǎn)庫(kù):產(chǎn)品線的基礎(chǔ),是領(lǐng)域工程所有成果的集合,管理支持產(chǎn)品開發(fā)的可復(fù)用資源。產(chǎn)品線體系集合,管理支持產(chǎn)品開發(fā)的可復(fù)用資源。產(chǎn)品線體系結(jié)構(gòu)和構(gòu)件是核心資產(chǎn)庫(kù)中用于產(chǎn)品構(gòu)建
40、的最重要部結(jié)構(gòu)和構(gòu)件是核心資產(chǎn)庫(kù)中用于產(chǎn)品構(gòu)建的最重要部分。分。產(chǎn)品集合產(chǎn)品集合軟件產(chǎn)品線過程模型軟件產(chǎn)品線過程模型三個(gè)基本活動(dòng)三個(gè)基本活動(dòng)產(chǎn)品線方法的基本活動(dòng)產(chǎn)品線方法的基本活動(dòng)核心資產(chǎn)開發(fā):如何獲得核心資產(chǎn),可以核心資產(chǎn)開發(fā):如何獲得核心資產(chǎn),可以自己構(gòu)建、直接購(gòu)買、委托加工等方式。自己構(gòu)建、直接購(gòu)買、委托加工等方式。產(chǎn)品開發(fā):是產(chǎn)品線的目標(biāo),核心資產(chǎn)開產(chǎn)品開發(fā):是產(chǎn)品線的目標(biāo),核心資產(chǎn)開發(fā)只是達(dá)到該目標(biāo)的一種手段。發(fā)只是達(dá)到該目標(biāo)的一種手段。管理:為各個(gè)活動(dòng)合理分配資源、協(xié)調(diào)監(jiān)管理:為各個(gè)活動(dòng)合理分配資源、協(xié)調(diào)監(jiān)督、設(shè)置恰當(dāng)?shù)慕M織機(jī)構(gòu)等。督、設(shè)置恰當(dāng)?shù)慕M織機(jī)構(gòu)等。循環(huán)重復(fù)是產(chǎn)品線開發(fā)過程
41、、核心資產(chǎn)開發(fā)循環(huán)重復(fù)是產(chǎn)品線開發(fā)過程、核心資產(chǎn)開發(fā)、產(chǎn)品、產(chǎn)品開發(fā)以及對(duì)其進(jìn)行管理的特征。核心資產(chǎn)開開發(fā)以及對(duì)其進(jìn)行管理的特征。核心資產(chǎn)開發(fā)和產(chǎn)發(fā)和產(chǎn)品開發(fā)沒有先后順序,管理活動(dòng)協(xié)調(diào)整個(gè)產(chǎn)品開發(fā)沒有先后順序,管理活動(dòng)協(xié)調(diào)整個(gè)產(chǎn)品線開品線開發(fā)過程的各個(gè)活動(dòng)。發(fā)過程的各個(gè)活動(dòng)。產(chǎn)品線方法產(chǎn)品線方法_新產(chǎn)品形成步新產(chǎn)品形成步驟驟從公共資產(chǎn)庫(kù)中選取合適的構(gòu)件;從公共資產(chǎn)庫(kù)中選取合適的構(gòu)件;使用預(yù)定義的變化機(jī)制進(jìn)行裁剪,如參數(shù)使用預(yù)定義的變化機(jī)制進(jìn)行裁剪,如參數(shù)化、繼承等;化、繼承等;必要時(shí)增加新的構(gòu)件;必要時(shí)增加新的構(gòu)件;在整個(gè)產(chǎn)品線范圍內(nèi)共同的體系結(jié)構(gòu)指導(dǎo)在整個(gè)產(chǎn)品線范圍內(nèi)共同的體系結(jié)構(gòu)指導(dǎo)下,進(jìn)
42、行構(gòu)件組裝,形成系統(tǒng)。下,進(jìn)行構(gòu)件組裝,形成系統(tǒng)。新產(chǎn)品的開發(fā)從新產(chǎn)品的開發(fā)從“創(chuàng)造創(chuàng)造”變成變成“組裝組裝”,占支配,占支配地位的活動(dòng)是地位的活動(dòng)是“集成集成”而非而非“編程編程”。軟件產(chǎn)品。軟件產(chǎn)品線是對(duì)特定領(lǐng)域的軟件開發(fā)更加全面的復(fù)用,包線是對(duì)特定領(lǐng)域的軟件開發(fā)更加全面的復(fù)用,包括領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)方法。(到商店括領(lǐng)域特定的軟件體系結(jié)構(gòu)設(shè)計(jì)方法。(到商店里買,去倉(cāng)庫(kù)里拿,而不是自己慢慢烹飪)里買,去倉(cāng)庫(kù)里拿,而不是自己慢慢烹飪)6)其它軟件體系結(jié)構(gòu)設(shè)計(jì))其它軟件體系結(jié)構(gòu)設(shè)計(jì)方法方法基于目標(biāo)圖推理的體系結(jié)構(gòu)設(shè)計(jì)方法基于目標(biāo)圖推理的體系結(jié)構(gòu)設(shè)計(jì)方法 基于屬性的體系結(jié)構(gòu)設(shè)計(jì)方法基于屬性
43、的體系結(jié)構(gòu)設(shè)計(jì)方法 一些常用的軟件開發(fā)方法學(xué)中也包含了軟一些常用的軟件開發(fā)方法學(xué)中也包含了軟件體系結(jié)構(gòu)的設(shè)計(jì),例如:件體系結(jié)構(gòu)的設(shè)計(jì),例如:面向數(shù)據(jù)流的軟件開發(fā)方法面向數(shù)據(jù)流的軟件開發(fā)方法面向?qū)ο蟮能浖_發(fā)方法面向?qū)ο蟮能浖_發(fā)方法面向方面的軟件開發(fā)方法面向方面的軟件開發(fā)方法 軟件體系結(jié)構(gòu)設(shè)計(jì)步驟軟件體系結(jié)構(gòu)設(shè)計(jì)步驟始于體系結(jié)構(gòu)設(shè)計(jì),自頂向下、逐步精化始于體系結(jié)構(gòu)設(shè)計(jì),自頂向下、逐步精化。體系結(jié)構(gòu)設(shè)計(jì)是在需求規(guī)格說明、軟件設(shè)體系結(jié)構(gòu)設(shè)計(jì)是在需求規(guī)格說明、軟件設(shè)計(jì)計(jì)劃已經(jīng)完成后開始的。計(jì)計(jì)劃已經(jīng)完成后開始的。軟件體系機(jī)構(gòu)設(shè)計(jì)步驟圖軟件體系機(jī)構(gòu)設(shè)計(jì)步驟圖(2)軟件體系結(jié)構(gòu)設(shè)計(jì)步)軟件體系結(jié)構(gòu)設(shè)計(jì)步
44、驟驟開發(fā)軟件頂層架構(gòu)開發(fā)軟件頂層架構(gòu) 搜索并選取可用設(shè)計(jì)資產(chǎn)搜索并選取可用設(shè)計(jì)資產(chǎn) 設(shè)計(jì)技術(shù)支撐方案設(shè)計(jì)技術(shù)支撐方案 確定設(shè)計(jì)元素確定設(shè)計(jì)元素 開發(fā)軟件部署模型開發(fā)軟件部署模型 設(shè)計(jì)并發(fā)機(jī)制設(shè)計(jì)并發(fā)機(jī)制 構(gòu)建軟件體系結(jié)構(gòu)模型構(gòu)建軟件體系結(jié)構(gòu)模型 評(píng)審軟件體系結(jié)構(gòu)模型評(píng)審軟件體系結(jié)構(gòu)模型 (1)可信軟件的特點(diǎn))可信軟件的特點(diǎn)計(jì)算機(jī)系統(tǒng)的缺陷很大一部分是由于軟件計(jì)算機(jī)系統(tǒng)的缺陷很大一部分是由于軟件的問題引發(fā)的??v觀軟件應(yīng)用的發(fā)展歷史的問題引發(fā)的??v觀軟件應(yīng)用的發(fā)展歷史,國(guó)際上由于軟件可信性問題所導(dǎo)致的重,國(guó)際上由于軟件可信性問題所導(dǎo)致的重大災(zāi)難、事故和嚴(yán)重?fù)p失屢見不鮮,軟件大災(zāi)難、事故和嚴(yán)重?fù)p失屢
45、見不鮮,軟件的可信性問題已經(jīng)成為一個(gè)相當(dāng)普遍的問的可信性問題已經(jīng)成為一個(gè)相當(dāng)普遍的問題。題。 所謂所謂“可信軟件可信軟件”,是指軟件系統(tǒng)的運(yùn)行行,是指軟件系統(tǒng)的運(yùn)行行為及其結(jié)果總是符合人們的預(yù)期,且在受為及其結(jié)果總是符合人們的預(yù)期,且在受到干擾(包括操作錯(cuò)誤、環(huán)境影響、外部到干擾(包括操作錯(cuò)誤、環(huán)境影響、外部攻擊等)時(shí)仍能提供連續(xù)的服務(wù)。攻擊等)時(shí)仍能提供連續(xù)的服務(wù)。 可信屬性可信屬性可靠性(可靠性(Reliability):在規(guī)定的環(huán)境下和規(guī)定的時(shí)間內(nèi)):在規(guī)定的環(huán)境下和規(guī)定的時(shí)間內(nèi),軟件無失效運(yùn)行的概率;,軟件無失效運(yùn)行的概率;可靠安全性(可靠安全性(Safety):軟件運(yùn)行不引起危險(xiǎn)、災(zāi)
46、難的能):軟件運(yùn)行不引起危險(xiǎn)、災(zāi)難的能力;力;保密安全性(保密安全性(Security):軟件系統(tǒng)對(duì)數(shù)據(jù)和信息提供保):軟件系統(tǒng)對(duì)數(shù)據(jù)和信息提供保密性、完整性、可用性、真實(shí)性保障的能力;密性、完整性、可用性、真實(shí)性保障的能力;可生存性(可生存性(Survivability):軟件在受到攻擊或失效出現(xiàn)):軟件在受到攻擊或失效出現(xiàn)時(shí)連續(xù)提供服務(wù)并在規(guī)定時(shí)間內(nèi)恢復(fù)所有服務(wù)的能力;時(shí)連續(xù)提供服務(wù)并在規(guī)定時(shí)間內(nèi)恢復(fù)所有服務(wù)的能力;實(shí)時(shí)性(實(shí)時(shí)性(Real Time):軟件在指定的時(shí)間內(nèi)完成反應(yīng)或):軟件在指定的時(shí)間內(nèi)完成反應(yīng)或提交輸出的能力。提交輸出的能力。成本可信曲線成本可信曲線由于需要附加的設(shè)計(jì)、實(shí)
47、現(xiàn)和驗(yàn)證開銷,提高可信行性將極大的增加開發(fā)成本指數(shù)曲線指數(shù)曲線(2)容錯(cuò)設(shè)計(jì))容錯(cuò)設(shè)計(jì)為了保證高可信系統(tǒng)即使在極端條件下也為了保證高可信系統(tǒng)即使在極端條件下也能按其規(guī)格說明執(zhí)行,對(duì)硬件和軟件同時(shí)能按其規(guī)格說明執(zhí)行,對(duì)硬件和軟件同時(shí)采用容錯(cuò)計(jì)算非常重要。采用容錯(cuò)計(jì)算非常重要。硬件容錯(cuò)對(duì)所有關(guān)鍵硬件部件進(jìn)行備份。硬件容錯(cuò)對(duì)所有關(guān)鍵硬件部件進(jìn)行備份。 為了保護(hù)軟件免受軟件故障的影響,軟件為了保護(hù)軟件免受軟件故障的影響,軟件邏輯和數(shù)據(jù)也必須被備份。邏輯和數(shù)據(jù)也必須被備份。 軟件容錯(cuò)設(shè)計(jì)是使得軟件能發(fā)現(xiàn)失效危險(xiǎn)軟件容錯(cuò)設(shè)計(jì)是使得軟件能發(fā)現(xiàn)失效危險(xiǎn)并從臨失效狀態(tài)恢復(fù)的軟件設(shè)計(jì)技術(shù),有并從臨失效狀態(tài)恢復(fù)的軟
48、件設(shè)計(jì)技術(shù),有兩種主要的軟件容錯(cuò)設(shè)計(jì)方法:兩種主要的軟件容錯(cuò)設(shè)計(jì)方法:恢復(fù)塊(恢復(fù)塊(Recovery Blocks)N-版本(版本(N-version)編程)編程 1)恢復(fù)塊技術(shù))恢復(fù)塊技術(shù)檢測(cè)到錯(cuò)誤后將執(zhí)行軟件模塊的另一個(gè)不同版本。在執(zhí)行模塊的一個(gè)版本前,首先要?jiǎng)?chuàng)建檢查點(diǎn),這有助于在該版本執(zhí)行失敗后恢復(fù)狀態(tài),并為檢測(cè)到錯(cuò)誤后執(zhí)行下一個(gè)版本提供有效的起始點(diǎn)。2)N- 版本編程版本編程N(yùn)版本編程是一種多版本技術(shù),關(guān)鍵模塊的不同版本被設(shè)計(jì)成滿足同樣的基本需求,每個(gè)版本完成同樣的任務(wù),但卻使用不同的方式。這些版本同時(shí)執(zhí)行,它們的輸出結(jié)果提交給一個(gè)表決系統(tǒng)以決定正確的結(jié)果,對(duì)輸出正確性的判斷基于對(duì)所
49、有輸出的比較,出現(xiàn)不一致的情況時(shí)利用多數(shù)表決決定最優(yōu)先的結(jié)果。設(shè)計(jì)多樣性設(shè)計(jì)多樣性恢復(fù)塊技術(shù)和恢復(fù)塊技術(shù)和N-版本編程都是基于設(shè)計(jì)多樣版本編程都是基于設(shè)計(jì)多樣性性當(dāng)不同的開發(fā)者采用不同方法實(shí)現(xiàn)相同的需當(dāng)不同的開發(fā)者采用不同方法實(shí)現(xiàn)相同的需求時(shí),一個(gè)合理的假設(shè)是不同版本的軟件不求時(shí),一個(gè)合理的假設(shè)是不同版本的軟件不大可能包含相同的缺陷,因此,也就不會(huì)產(chǎn)大可能包含相同的缺陷,因此,也就不會(huì)產(chǎn)生相同的失效。生相同的失效。設(shè)計(jì)多樣性可以通過以下多種方式達(dá)到:設(shè)計(jì)多樣性可以通過以下多種方式達(dá)到:使用不同的設(shè)計(jì)方法來實(shí)現(xiàn)需求。使用不同的設(shè)計(jì)方法來實(shí)現(xiàn)需求。使用不同的程序設(shè)計(jì)語(yǔ)言來完成實(shí)現(xiàn)。使用不同的程序設(shè)
50、計(jì)語(yǔ)言來完成實(shí)現(xiàn)。使用不同的開發(fā)工具,且在不同的開發(fā)環(huán)境中完成。使用不同的開發(fā)工具,且在不同的開發(fā)環(huán)境中完成。明確要求在實(shí)現(xiàn)某些關(guān)鍵過程時(shí)使用不同的算法。明確要求在實(shí)現(xiàn)某些關(guān)鍵過程時(shí)使用不同的算法。(3)軟件失效模式和影響)軟件失效模式和影響分析分析軟件失效模式和影響分析(軟件失效模式和影響分析(Failure Model and Effects Analysis,F(xiàn)MEA)主要是在)主要是在軟件開發(fā)階段的早期(需求階段和設(shè)計(jì)階軟件開發(fā)階段的早期(需求階段和設(shè)計(jì)階段),通過識(shí)別軟件失效模式,研究分析段),通過識(shí)別軟件失效模式,研究分析各種失效模式產(chǎn)生的原因及其造成的后果各種失效模式產(chǎn)生的原因及
51、其造成的后果,尋找消除和減少其有害后果的方法,以,尋找消除和減少其有害后果的方法,以盡早發(fā)現(xiàn)潛在的問題,并采取相應(yīng)的措施盡早發(fā)現(xiàn)潛在的問題,并采取相應(yīng)的措施,從而提高軟件的可靠性和安全性。,從而提高軟件的可靠性和安全性。FMEA目的在于分析各種失效模式對(duì)系統(tǒng)的目的在于分析各種失效模式對(duì)系統(tǒng)的影響,從而在軟件實(shí)現(xiàn)之前為改進(jìn)設(shè)計(jì)質(zhì)影響,從而在軟件實(shí)現(xiàn)之前為改進(jìn)設(shè)計(jì)質(zhì)量提供依據(jù)。量提供依據(jù)。相關(guān)概念相關(guān)概念軟件失效(軟件失效(software failure)。軟件失效)。軟件失效就是泛指程序在運(yùn)行中喪失了全部或部分就是泛指程序在運(yùn)行中喪失了全部或部分功能、出現(xiàn)偏離預(yù)期的正常狀態(tài)的事件。功能、出現(xiàn)偏
52、離預(yù)期的正常狀態(tài)的事件。軟件失效模式(軟件失效模式(software failure mode)。軟件失效模式是指軟件失效的不同類型。軟件失效模式是指軟件失效的不同類型,通常用于描述軟件失效發(fā)生的方式以及,通常用于描述軟件失效發(fā)生的方式以及對(duì)設(shè)備運(yùn)行可能產(chǎn)生的影響。對(duì)設(shè)備運(yùn)行可能產(chǎn)生的影響。軟件失效的影響(軟件失效的影響(software failure effect)。軟件失效的影響是指軟件失效模式對(duì))。軟件失效的影響是指軟件失效模式對(duì)軟件系統(tǒng)的運(yùn)行、功能或狀態(tài)等造成的后軟件系統(tǒng)的運(yùn)行、功能或狀態(tài)等造成的后果。果。FMEA分析方法分析方法軟件系統(tǒng)級(jí)軟件系統(tǒng)級(jí)FMEA:在軟件設(shè)計(jì)階段的早期:在
53、軟件設(shè)計(jì)階段的早期,對(duì)軟件體系結(jié)構(gòu)進(jìn)行安全性評(píng)估,在此,對(duì)軟件體系結(jié)構(gòu)進(jìn)行安全性評(píng)估,在此階段進(jìn)行體系結(jié)構(gòu)的修改代價(jià)較低,分析階段進(jìn)行體系結(jié)構(gòu)的修改代價(jià)較低,分析對(duì)象是設(shè)計(jì)階段早期的高層次子系統(tǒng)、部對(duì)象是設(shè)計(jì)階段早期的高層次子系統(tǒng)、部件、模塊以及它們之間的關(guān)系。件、模塊以及它們之間的關(guān)系。軟件詳細(xì)級(jí)軟件詳細(xì)級(jí)FMEA:在詳細(xì)設(shè)計(jì)完成后進(jìn)行:在詳細(xì)設(shè)計(jì)完成后進(jìn)行,驗(yàn)證詳細(xì)設(shè)計(jì)是否滿足安全性設(shè)計(jì)要求,驗(yàn)證詳細(xì)設(shè)計(jì)是否滿足安全性設(shè)計(jì)要求,分析對(duì)象是至少已完成過程設(shè)計(jì)、由偽,分析對(duì)象是至少已完成過程設(shè)計(jì)、由偽代碼或其他方式描述的模塊。代碼或其他方式描述的模塊。軟件失效模式和影響分析軟件失效模式和影響分
54、析 FMEA ( Failure Model and Effects Analysis)軟件系統(tǒng)級(jí)軟件系統(tǒng)級(jí)FMEA過程過程如何描述和刻畫系統(tǒng)級(jí)FMEA的分析對(duì)象,即如何描述目標(biāo)軟件系統(tǒng)的層次結(jié)構(gòu)以及層次結(jié)構(gòu)中各個(gè)模塊之間的依賴關(guān)系是系統(tǒng)級(jí)FMEA分析需要關(guān)注和解決的關(guān)鍵問題。只有正確、充分地描述了目標(biāo)軟件系統(tǒng)的邏輯單元、層次結(jié)構(gòu)和各個(gè)模塊之間的依賴關(guān)系,才可能找出每個(gè)單元可能存在的、危害整個(gè)系統(tǒng)安全運(yùn)行的失效模式,并根據(jù)模塊間的依賴關(guān)系高效的分析失效的原因、影響和后果,然后在設(shè)計(jì)時(shí)有針對(duì)性的采取相應(yīng)的改進(jìn)措施,以保證最終系統(tǒng)安全的運(yùn)行。(4)軟件故障樹分析)軟件故障樹分析軟件故障樹分析(軟件
55、故障樹分析(Fault Tree Analysis,F(xiàn)TA)就是在軟件系統(tǒng)設(shè)計(jì)過程中,通過對(duì))就是在軟件系統(tǒng)設(shè)計(jì)過程中,通過對(duì)可能造成系統(tǒng)故障的各種因素(包括硬件可能造成系統(tǒng)故障的各種因素(包括硬件、軟件、環(huán)境、人為因素等)進(jìn)行分析,、軟件、環(huán)境、人為因素等)進(jìn)行分析,畫出邏輯框圖(即故障樹),從而確定系畫出邏輯框圖(即故障樹),從而確定系統(tǒng)故障原因的各種可能組合,采取相應(yīng)的統(tǒng)故障原因的各種可能組合,采取相應(yīng)的糾正措施,是提高系統(tǒng)可靠性的一種設(shè)計(jì)糾正措施,是提高系統(tǒng)可靠性的一種設(shè)計(jì)分析方法。分析方法。將不希望發(fā)生的事件(故障)作為頂級(jí)事將不希望發(fā)生的事件(故障)作為頂級(jí)事件,然后從該事件向下分
56、解。最主要的用件,然后從該事件向下分解。最主要的用途是把頂級(jí)關(guān)鍵事件轉(zhuǎn)換為在子系統(tǒng)或模途是把頂級(jí)關(guān)鍵事件轉(zhuǎn)換為在子系統(tǒng)或模塊級(jí)別必須防止的事件,然后利用經(jīng)驗(yàn)確塊級(jí)別必須防止的事件,然后利用經(jīng)驗(yàn)確定有害事件的潛在原因。定有害事件的潛在原因。 故障樹的構(gòu)造過程故障樹的構(gòu)造過程故障分析是構(gòu)造故障樹最關(guān)鍵的一步。由故障分析是構(gòu)造故障樹最關(guān)鍵的一步。由設(shè)計(jì)人員、質(zhì)量保證人員共同合作。設(shè)計(jì)人員、質(zhì)量保證人員共同合作。以頂端事件為以頂端事件為“根根”向下倒長(zhǎng)的故障樹構(gòu)造向下倒長(zhǎng)的故障樹構(gòu)造步驟:步驟: 廣泛收集并分析有關(guān)技術(shù)資料廣泛收集并分析有關(guān)技術(shù)資料 選擇頂事件選擇頂事件 生成故障樹生成故障樹 簡(jiǎn)化故障
57、樹簡(jiǎn)化故障樹故障樹圖形符號(hào)故障樹圖形符號(hào)事件符號(hào)與邏輯符號(hào):事件符號(hào)與邏輯符號(hào):使用邏輯使用邏輯符號(hào)對(duì)事符號(hào)對(duì)事件逐步向件逐步向下分解,下分解,將頂級(jí)事將頂級(jí)事件細(xì)化到件細(xì)化到最基本的最基本的潛在事件潛在事件高可信軟件的設(shè)計(jì)方法高可信軟件的設(shè)計(jì)方法黑盒行為黑盒行為狀態(tài)盒行為狀態(tài)盒行為明盒行為明盒行為形式化方法形式化方法凈室方法凈室方法(5)形式化方法)形式化方法形式化方法是關(guān)于在計(jì)算系統(tǒng)的開發(fā)中進(jìn)行嚴(yán)格推理的理形式化方法是關(guān)于在計(jì)算系統(tǒng)的開發(fā)中進(jìn)行嚴(yán)格推理的理論、技術(shù)和工具,它主要包括論、技術(shù)和工具,它主要包括形式規(guī)約技術(shù)形式規(guī)約技術(shù)(Formal Specification)和)和形式驗(yàn)證技
58、術(shù)形式驗(yàn)證技術(shù)(Formal Verification)。是提高軟件質(zhì)量的重要途徑。是提高軟件質(zhì)量的重要途徑。形式規(guī)約技術(shù)形式規(guī)約技術(shù)使用具有嚴(yán)格數(shù)學(xué)定義語(yǔ)法和語(yǔ)義的語(yǔ)言刻使用具有嚴(yán)格數(shù)學(xué)定義語(yǔ)法和語(yǔ)義的語(yǔ)言刻畫軟件系統(tǒng)及其性質(zhì),可以盡早發(fā)現(xiàn)需求和設(shè)計(jì)中的錯(cuò)誤畫軟件系統(tǒng)及其性質(zhì),可以盡早發(fā)現(xiàn)需求和設(shè)計(jì)中的錯(cuò)誤、歧義、不一致和不完全。、歧義、不一致和不完全。 數(shù)學(xué)上的抽象和組合概念是數(shù)學(xué)上的抽象和組合概念是形式化規(guī)約技術(shù)的重要基礎(chǔ)。形式化規(guī)約技術(shù)的重要基礎(chǔ)。形式化驗(yàn)證形式化驗(yàn)證是在形式化規(guī)約的基礎(chǔ)上建立軟件系統(tǒng)及其性是在形式化規(guī)約的基礎(chǔ)上建立軟件系統(tǒng)及其性質(zhì)的關(guān)系,即分析系統(tǒng)是否具有所期望性質(zhì)的
59、過程,主要質(zhì)的關(guān)系,即分析系統(tǒng)是否具有所期望性質(zhì)的過程,主要分為兩類:模型檢驗(yàn)(分為兩類:模型檢驗(yàn)(Model Checking)和定理證明()和定理證明(Theorem Proving)。)。 形式化方法形式化方法模型檢驗(yàn)技術(shù)是通過搜索待驗(yàn)證軟件系統(tǒng)模模型檢驗(yàn)技術(shù)是通過搜索待驗(yàn)證軟件系統(tǒng)模型的有窮狀態(tài)空間來檢驗(yàn)系統(tǒng)的行為是否具型的有窮狀態(tài)空間來檢驗(yàn)系統(tǒng)的行為是否具備預(yù)期性質(zhì)的一種有窮狀態(tài)系統(tǒng)自動(dòng)驗(yàn)證技備預(yù)期性質(zhì)的一種有窮狀態(tài)系統(tǒng)自動(dòng)驗(yàn)證技術(shù)。術(shù)。定理證明技術(shù)是將軟件系統(tǒng)和性質(zhì)都用邏輯定理證明技術(shù)是將軟件系統(tǒng)和性質(zhì)都用邏輯方法來規(guī)約,基于公理和推理規(guī)則組成的形方法來規(guī)約,基于公理和推理規(guī)則組成
60、的形式系統(tǒng),以如同數(shù)學(xué)中定理證明的方法來證式系統(tǒng),以如同數(shù)學(xué)中定理證明的方法來證明軟件系統(tǒng)是否具備所期望的關(guān)鍵性質(zhì)。明軟件系統(tǒng)是否具備所期望的關(guān)鍵性質(zhì)。 模型檢驗(yàn)技術(shù)和定理證明技術(shù)優(yōu)勢(shì)互補(bǔ)。各模型檢驗(yàn)技術(shù)和定理證明技術(shù)優(yōu)勢(shì)互補(bǔ)。各有優(yōu)點(diǎn)和缺點(diǎn)。有優(yōu)點(diǎn)和缺點(diǎn)。形式化方法能以嚴(yán)格的方式保證軟件可信性形式化方法能以嚴(yán)格的方式保證軟件可信性,但理論基礎(chǔ)復(fù)雜,對(duì)技術(shù)人員的理論素養(yǎng),但理論基礎(chǔ)復(fù)雜,對(duì)技術(shù)人員的理論素養(yǎng)和要求很高。和要求很高。(6)凈室方法)凈室方法凈室軟件工程(凈室軟件工程(Clean-room Software Engineering)將形式化方法的規(guī)范、設(shè)計(jì))將形式化方法的規(guī)范、設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學(xué)年高一秋學(xué)期期末語(yǔ)文模擬測(cè)試(一)試題
- 感恩教育國(guó)旗下講話稿(10篇)
- 放射工作人員法律法規(guī)培訓(xùn)
- 心理健康教育心得體會(huì)(15篇)
- 對(duì)超市員工的發(fā)言稿(集錦15篇)
- 智研咨詢-2024年中國(guó)儲(chǔ)能電站EMS系統(tǒng)行業(yè)市場(chǎng)全景調(diào)查、投資策略研究報(bào)告
- 群智感知人機(jī)混合場(chǎng)景下數(shù)據(jù)收集方法的研究與實(shí)現(xiàn)
- 一回路關(guān)鍵能動(dòng)設(shè)備故障診斷及剩余壽命預(yù)測(cè)技術(shù)研究與應(yīng)用
- 寬帶光電探測(cè)器的研制
- 二零二五年度城市商品房買賣合同(精裝修版)
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2024年考研政治試題及答案
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 2022-2023學(xué)年五年級(jí)數(shù)學(xué)春季開學(xué)摸底考(四)蘇教版
- 【螞蟻?!?024中國(guó)商業(yè)醫(yī)療險(xiǎn)發(fā)展研究藍(lán)皮書
- 元宇宙技術(shù)與應(yīng)用智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)科學(xué)技術(shù)大學(xué)
- 建筑工程質(zhì)量、安全與進(jìn)度管控
- ASME B16.5-16.47法蘭尺寸對(duì)照表
- 對(duì)外漢語(yǔ)詞匯教學(xué)(第二版)PPT完整全套教學(xué)課件
- 產(chǎn)品報(bào)價(jià)單(5篇)
評(píng)論
0/150
提交評(píng)論