軟件設(shè)計與體系結(jié)構(gòu) 秦航 4_第1頁
軟件設(shè)計與體系結(jié)構(gòu) 秦航 4_第2頁
軟件設(shè)計與體系結(jié)構(gòu) 秦航 4_第3頁
軟件設(shè)計與體系結(jié)構(gòu) 秦航 4_第4頁
軟件設(shè)計與體系結(jié)構(gòu) 秦航 4_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章 軟件設(shè)計過程(guòchéng)

1清華大學(xué)出版社共二十七頁內(nèi)容提要(nèirónɡtíyào)4.1 軟件設(shè)計基礎(chǔ)(jīchǔ)

4.2 軟件體系結(jié)構(gòu)設(shè)計 4.3 高可信軟件設(shè)計 4.3.1可信軟件的特點 4.3.2容錯設(shè)計 4.3.3軟件失效模式和影響分析 4.3.4軟件故障樹分析 4.3.5形式化方法 4.3.6凈室方法 4.4 軟件設(shè)計規(guī)格說明 4.5 軟件設(shè)計評審 4.6 小結(jié) 2清華大學(xué)出版社共二十七頁4.1 軟件設(shè)計基礎(chǔ)(jīchǔ)軟件設(shè)計基本概念,是過去數(shù)十年里陸續(xù)提出的,軟件設(shè)計者根據(jù)這組概念進行設(shè)計決策。它們可以幫助軟件工程師回答下述問題(wèntí):能使用什么標(biāo)準將軟件劃分為單個構(gòu)件?如何將功能或數(shù)據(jù)結(jié)構(gòu)與軟件的概念性表示分離開?是否存在定義軟件設(shè)計的技術(shù)質(zhì)量的統(tǒng)一標(biāo)準?3清華大學(xué)出版社共二十七頁軟件設(shè)計的迭代(diédài)

第一層含義是,針對給定的需求模型,通過多次從抽象到具體的設(shè)計(shèjì)過程,得出足夠精細的設(shè)計(shèjì)模型以供軟件實現(xiàn)之用。第二層含義是,軟件需求經(jīng)常發(fā)生變化或者不完整,在需求模型發(fā)生變化并更新完成后,第一層含義的設(shè)計過程再隨之展開,直至獲得最終的目標(biāo)軟件產(chǎn)品。4清華大學(xué)出版社共二十七頁軟件設(shè)計的一般(yībān)過程從工程管理(guǎnlǐ)的角度,可以將軟件設(shè)計分為概要設(shè)計和詳細設(shè)計。但對于面向?qū)ο笤O(shè)計方法來說,其設(shè)計過程從概念模型逐步精化到實現(xiàn)模型,并且不斷的進行迭代,設(shè)計過程已經(jīng)很難用概念設(shè)計和詳細設(shè)計來進行明確的區(qū)分。此外,在設(shè)計過程中還包括對設(shè)計進行計劃評審等活動。5清華大學(xué)出版社共二十七頁2. 軟件設(shè)計的主要(zhǔyào)活動(1)軟件設(shè)計計劃(jìhuà)(2)體系結(jié)構(gòu)設(shè)計(3)界面設(shè)計(4)模塊/子系統(tǒng)設(shè)計(5)過程/算法設(shè)計(6)數(shù)據(jù)模型設(shè)計6清華大學(xué)出版社共二十七頁軟件結(jié)構(gòu)有關(guān)(yǒuguān)概念7清華大學(xué)出版社共二十七頁4.2 軟件體系結(jié)構(gòu)設(shè)計(shèjì)1. 多視圖(shìtú)建模8清華大學(xué)出版社共二十七頁“4+1”模型(móxíng)

邏輯視圖,也稱概念視圖,主要是支持系統(tǒng)功能需求的抽象描述,即系統(tǒng)最終將提供給用戶什么樣的服務(wù),邏輯視圖描述了系統(tǒng)的功能需求及其之間的相互關(guān)系。開發(fā)視圖,也稱模塊視圖,主要側(cè)重于描述系統(tǒng)的組織,與邏輯視圖密切相關(guān),都描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。過程視圖,主要側(cè)重于描述系統(tǒng)的動態(tài)行為(xíngwéi),即系統(tǒng)運行時所表現(xiàn)出來的相關(guān)特性,著重解決系統(tǒng)的可靠性、吞吐量、并發(fā)性、分布性和容錯性。物理視圖,描述如何把系統(tǒng)軟件元素映射到硬件上,通常要考慮系統(tǒng)的性能、規(guī)模和容錯等問題,展示了軟件在生命周期的不同階段中所需要的物理環(huán)境、硬件配置和分布狀況。場景視圖,場景是用戶需求和系統(tǒng)功能實例的抽象,設(shè)計者通過分析如何滿足每個場景所要求的約束來分析軟件的體系結(jié)構(gòu)。9清華大學(xué)出版社共二十七頁2. 基于評估(pínɡɡū)與轉(zhuǎn)換的設(shè)計方法其中,對體系結(jié)構(gòu)進行轉(zhuǎn)換可以(kěyǐ)通過下述三種方式:使用合適的體系結(jié)構(gòu)風(fēng)格和模式,或者設(shè)計模式來改進體系結(jié)構(gòu)設(shè)計。把非功能需求轉(zhuǎn)化為功能性解決方案,該功能性方案可以與問題域無關(guān),但可以滿足質(zhì)量屬性的要求。采用“分而治之”的方式,可以把系統(tǒng)級的質(zhì)量需求分配到子系統(tǒng)或模塊中,或者把質(zhì)量需求分解為多個與功能相關(guān)的質(zhì)量需求,分解后的質(zhì)量需求能夠比較容易得到滿足。10清華大學(xué)出版社共二十七頁基于(jīyú)評估與轉(zhuǎn)換的設(shè)計方法11清華大學(xué)出版社共二十七頁3. 模式驅(qū)動(qūdònɡ)的設(shè)計方法常用的軟件體系結(jié)構(gòu)風(fēng)格如下:數(shù)據(jù)流風(fēng)格:批處理和管道/過濾器。調(diào)用/返回風(fēng)格:主程序/子程序、層次結(jié)構(gòu)和客戶機/服務(wù)器。面向?qū)ο箫L(fēng)格。獨立部件風(fēng)格:進程通訊和事件驅(qū)動。虛擬機風(fēng)格:解釋器和基于規(guī)則(guīzé)的系統(tǒng)。數(shù)據(jù)共享風(fēng)格:數(shù)據(jù)庫系統(tǒng)和黑板系統(tǒng)。12清華大學(xué)出版社共二十七頁模式驅(qū)動的設(shè)計(shèjì)方法流程13清華大學(xué)出版社共二十七頁4. 領(lǐng)域(lǐnɡyù)特定的軟件體系結(jié)構(gòu)設(shè)計領(lǐng)域特定的軟件體系結(jié)構(gòu)(DomainSpecificSoftwareArchitecture,DSSA)是領(lǐng)域工程的核心部分,領(lǐng)域工程分析應(yīng)用領(lǐng)域的共同特征和可變特征,對刻畫這些特征的對象和操作進行選擇(xuǎnzé)和抽象,形成領(lǐng)域模型,并進一步生成DSSA。DSSA與體系結(jié)構(gòu)風(fēng)格的區(qū)別在于:DSSA與軟件體系結(jié)構(gòu)風(fēng)格是從不同角度出發(fā)研究問題的兩種結(jié)果,前者從問題域出發(fā),而后者從解決域出發(fā)。DSSA只在某個特定領(lǐng)域中進行經(jīng)驗知識的提取、總結(jié)與組織,但可以同時使用多種軟件體系結(jié)構(gòu)風(fēng)格;而一種軟件體系結(jié)構(gòu)風(fēng)格所呈現(xiàn)的公共結(jié)構(gòu)和設(shè)計方法可以擴展到多個應(yīng)用領(lǐng)域。DSSA的體系結(jié)構(gòu)表示和工具一般只適用于一個較小的范圍,在其它領(lǐng)域中是不適用并難以復(fù)用的。14清華大學(xué)出版社共二十七頁5. 軟件產(chǎn)品線方法(fāngfǎ)軟件產(chǎn)品線(SoftwareProductLine,SPL)是指一組可管理的,具有公共特性的軟件應(yīng)用系統(tǒng)的集合。在利用軟件產(chǎn)品線方法構(gòu)建一個應(yīng)用系統(tǒng)時,主要的工作是組裝和繁衍,而不是創(chuàng)造,其重要的活動是集成而不是編程。軟件產(chǎn)品線的主要組成部分,包括(bāokuò)核心資源和軟件產(chǎn)品集合兩部分。15清華大學(xué)出版社共二十七頁軟件產(chǎn)品線過程(guòchéng)模型16清華大學(xué)出版社共二十七頁6. 其它(qítā)軟件體系結(jié)構(gòu)設(shè)計方法(1)基于目標(biāo)圖推理的體系結(jié)構(gòu)設(shè)計方法:該方法的目標(biāo),是使模式背后的推理結(jié)構(gòu)顯式化,并且服從于系統(tǒng)的分析;該方法使用目標(biāo)圖,表達模式在各種需求上的應(yīng)用效果。(2)基于屬性的體系結(jié)構(gòu)設(shè)計方法:是對通常體系結(jié)構(gòu)風(fēng)格描述(miáoshù)的一種擴充,用于獲取結(jié)構(gòu)化分析SA(StructuredAnalysis)層次上的結(jié)構(gòu)和分析技巧,顯式地把推理框架(定性或定量)與體系結(jié)構(gòu)風(fēng)格關(guān)聯(lián)起來。17清華大學(xué)出版社共二十七頁4.3 高可信軟件設(shè)計4.3.1可信軟件的特點可靠性(reliability):在規(guī)定的環(huán)境下、規(guī)定的時間內(nèi)軟件無失效運行的能力;可靠安全性(safety):軟件運行不引起危險、災(zāi)難的能力;保密安全性(security):軟件系統(tǒng)對數(shù)據(jù)和信息提供保密性、完整性、可用性、真實性保障的能力;生存性(survivability):軟件在受到攻擊或失效出現(xiàn)時連續(xù)提供服務(wù)并在規(guī)定時間內(nèi)恢復(fù)所有服務(wù)的能力;容錯性(faulttolerance):軟件在故障(硬件、環(huán)境異常)出現(xiàn)時保證(bǎozhèng)提供服務(wù)的能力;實時性(realtime):軟件在指定的時間內(nèi)完成反應(yīng)或提交輸出的能力。18清華大學(xué)出版社共二十七頁4.3.2容錯(rónɡcuò)設(shè)計(1)恢復(fù)(huīfù)塊技術(shù)19清華大學(xué)出版社共二十七頁(2)N-版本(bǎnběn)編程20清華大學(xué)出版社共二十七頁4.3.3軟件失效模式(móshì)和影響分析設(shè)計到的幾個相關(guān)概念和含義如下:軟件失效(softwarefailure)。軟件失效就是泛指程序在運行中喪失了全部或部分功能、出現(xiàn)偏離預(yù)期的正常狀態(tài)的事件。軟件失效模式(softwarefailuremode)。軟件失效模式是指軟件失效的不同類型,通常用于描述軟件失效發(fā)生(fāshēng)的方式以及對設(shè)備運行可能產(chǎn)生的影響。軟件失效的影響(softwarefailureeffect)。軟件失效的影響是指軟件失效模式對軟件系統(tǒng)的運行、功能或狀態(tài)等造成的后果。21清華大學(xué)出版社共二十七頁軟件系統(tǒng)級FMEA過程(guòchéng)

22清華大學(xué)出版社共二十七頁4.3.4軟件故障樹分析4.3.5形式化方法形式化方法是關(guān)于在計算系統(tǒng)的開發(fā)中進行嚴格推理的理論、技術(shù)和工具,它主要包括形式規(guī)約技術(shù)(FormalSpecification)和形式驗證技術(shù)(FormalVerification)。4.3.6凈室方法傳統(tǒng)的軟件工程建模、形式化方法、程序驗證(正確性證明(zhèngmíng))、以及統(tǒng)計SQA的集成使用已經(jīng)組合成一種可以導(dǎo)致極高質(zhì)量軟件的技術(shù)。凈室軟件工程(Cleanroomsoftwareengineering)是一種在軟件開發(fā)過程中強調(diào)在軟件中建立正確性的需要的方法。代替?zhèn)鹘y(tǒng)的分析、設(shè)計、編碼、測試和調(diào)試周期,凈室方法建議一種不同的觀點。23清華大學(xué)出版社共二十七頁4.4 軟件設(shè)計規(guī)格(guīgé)說明軟件設(shè)計過程中的各個活動(huódòng)的結(jié)果最終應(yīng)該文檔化,形成正式的軟件設(shè)計規(guī)格說明,作為軟件設(shè)計的輸出。形成的軟件設(shè)計規(guī)格說明將被評審,并作為后續(xù)軟件實現(xiàn)活動的依據(jù)。軟件設(shè)計規(guī)格說明并沒有統(tǒng)一的格式,例如IEEE標(biāo)準、ISO標(biāo)準以及我國的國家標(biāo)準、各行業(yè)標(biāo)準所建議的格式都不盡相同。使用不同的軟件設(shè)計方法學(xué)所得到的設(shè)計模型也會有很大區(qū)別,導(dǎo)致設(shè)計規(guī)格說明的結(jié)構(gòu)也會明顯不同。24清華大學(xué)出版社共二十七頁4.5 軟件設(shè)計評審(pínɡshěn)設(shè)計評審中需要重點關(guān)注的內(nèi)容包括:設(shè)計模型是否能夠充分地、無遺漏地支持所有軟件需求的實現(xiàn);設(shè)計模型是否已經(jīng)精化(jīnɡhuà)至合理的程度,可以確保合格的軟件實現(xiàn)工程師能夠構(gòu)造出符合軟件設(shè)計者期望的目標(biāo)軟件系統(tǒng);設(shè)計模型的質(zhì)量屬性,即,設(shè)計模型是否已經(jīng)經(jīng)過充分的優(yōu)化,以確保依照設(shè)計模型構(gòu)造出來的目標(biāo)軟件產(chǎn)品能夠表現(xiàn)出良好的軟件質(zhì)量屬性。25清華大學(xué)出版社共二十七頁4.6 小結(jié)(xiǎojié)軟件設(shè)計是軟件開發(fā)過程的一個(yīɡè)核心環(huán)節(jié),設(shè)計質(zhì)量很大程度上決定了最終軟件產(chǎn)品的質(zhì)量。首先對軟件設(shè)計的基本概念進行介紹包括抽象和逐步求精、模塊化和信息隱藏、高內(nèi)聚和低耦合等,然后對設(shè)計過程、設(shè)計質(zhì)量、軟件體系結(jié)構(gòu)設(shè)計、高可信軟件設(shè)計進行了介紹介紹了軟件設(shè)計規(guī)格說明和軟件設(shè)計評審。軟件設(shè)計過程中的各個活動的結(jié)果最終應(yīng)該形成正式的軟件設(shè)計規(guī)格說明,作為軟件設(shè)計的輸出。軟件設(shè)計規(guī)格說明必須要進行評審,只有通過評審后才能成為后續(xù)軟件實現(xiàn)活動的正式依據(jù)。26清華大學(xué)出版社共二十七頁內(nèi)

溫馨提示

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

評論

0/150

提交評論