Week06-軟件設(shè)計(jì)與設(shè)計(jì)工具解讀課件_第1頁
Week06-軟件設(shè)計(jì)與設(shè)計(jì)工具解讀課件_第2頁
Week06-軟件設(shè)計(jì)與設(shè)計(jì)工具解讀課件_第3頁
Week06-軟件設(shè)計(jì)與設(shè)計(jì)工具解讀課件_第4頁
Week06-軟件設(shè)計(jì)與設(shè)計(jì)工具解讀課件_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

*軟件設(shè)計(jì)工具

Softwaredesigntool任課老師:黃武541*提綱軟件設(shè)計(jì)概述軟件設(shè)計(jì)的基本原理軟件設(shè)計(jì)過程結(jié)構(gòu)化設(shè)計(jì)方法面向?qū)ο蟮脑O(shè)計(jì)方法典型的設(shè)計(jì)工具介紹542*1軟件設(shè)計(jì)概述設(shè)計(jì)是指應(yīng)用各種技術(shù)和原理對(duì)一個(gè)設(shè)備、一個(gè)過程或一個(gè)系統(tǒng)做出足夠詳細(xì)的規(guī)定,使之能夠在物理上得以實(shí)現(xiàn)軟件設(shè)計(jì)是一個(gè)把軟件需求轉(zhuǎn)化為軟件表示的過程,也就是把它加工為在程序細(xì)節(jié)上非常接近于源碼的軟件表示5431.1軟件設(shè)計(jì)的概念軟件設(shè)計(jì)是把用戶需求準(zhǔn)確轉(zhuǎn)化為軟件產(chǎn)品或者系統(tǒng)的方法軟件設(shè)計(jì)是后續(xù)所有軟件工程活動(dòng)的基礎(chǔ)

軟件需求軟件編碼軟件設(shè)計(jì)決定了軟件質(zhì)量軟件設(shè)計(jì)提供了可以進(jìn)行質(zhì)量評(píng)估的軟件表示*軟件設(shè)計(jì)5441.2軟件設(shè)計(jì)的兩個(gè)過程軟件設(shè)計(jì)可以分成兩個(gè)過程概要設(shè)計(jì)

概要設(shè)計(jì)的主要任務(wù)是確定軟件的體系結(jié)構(gòu)及其接口,概要設(shè)計(jì)又可以分為結(jié)構(gòu)設(shè)計(jì),接口設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)詳細(xì)設(shè)計(jì)

詳細(xì)設(shè)計(jì)則是確定每一個(gè)功能模塊算法和數(shù)據(jù)結(jié)構(gòu)*5451.2.1軟件的總體設(shè)計(jì)組成結(jié)構(gòu)設(shè)計(jì)

確定軟件系統(tǒng)各主要部件之間的關(guān)系接口設(shè)計(jì)

描述軟件和協(xié)作系統(tǒng)之間以及軟件與人之間的通訊數(shù)據(jù)設(shè)計(jì)

對(duì)各種全局?jǐn)?shù)據(jù)結(jié)構(gòu)的定義,將創(chuàng)建的信息域模型變換為數(shù)據(jù)結(jié)構(gòu)*546*1.3軟件設(shè)計(jì)的重要性軟件設(shè)計(jì)非常重要,這是因?yàn)椋很浖O(shè)計(jì)階段是在軟件開發(fā)中形成質(zhì)量的關(guān)鍵環(huán)節(jié)軟件設(shè)計(jì)是把軟件需求轉(zhuǎn)換為軟件產(chǎn)品的重要步驟軟件設(shè)計(jì)做出的決策,最終會(huì)影響到軟件實(shí)現(xiàn)的成敗設(shè)計(jì)是軟件工程和軟件維護(hù)的基礎(chǔ)

5471.4軟件設(shè)計(jì)的要求軟件設(shè)計(jì)既要實(shí)現(xiàn)分析模型中所涉及的所有顯示需求,又要實(shí)現(xiàn)用戶希望的所有隱式需求設(shè)計(jì)應(yīng)該是對(duì)編程人員、測(cè)試人員以及維護(hù)人員可讀的,以便于在后期過程中得到指導(dǎo)從實(shí)現(xiàn)的角度看,設(shè)計(jì)應(yīng)給出相關(guān)數(shù)據(jù)功能及其行為相關(guān)的軟件全貌*548*2.軟件設(shè)計(jì)的基本原理軟件設(shè)計(jì)的基本原理包括分解與抽象模塊化信息隱藏模塊獨(dú)立性549*2.1分解與抽象分解是指有計(jì)劃地將系統(tǒng)分解成足夠小的子系統(tǒng)分解是控制軟件復(fù)雜性的基本手段抽象是把事物本質(zhì)的共同特征提取出來從而不考慮細(xì)節(jié),抽象是一個(gè)逐步的過程5410*2.2模塊化模塊化是把一個(gè)待開發(fā)軟件分解成若干個(gè)與語言相對(duì)應(yīng)的子功能模塊化是指解決一個(gè)復(fù)雜問題是自頂向下逐層把軟件系統(tǒng)劃分成若干個(gè)子模塊的過程5411*2.2.1模塊分解的標(biāo)準(zhǔn)用以下5條標(biāo)準(zhǔn)來評(píng)價(jià)一種設(shè)計(jì)方法可分解性

有效分解降低系統(tǒng)復(fù)雜性可組裝性

利用現(xiàn)有模塊組裝新系統(tǒng)的能力,使模塊可重用的標(biāo)準(zhǔn)可理解性

系統(tǒng)易于理解便于構(gòu)造和修改5412*2.2.2模塊分解的標(biāo)準(zhǔn)(續(xù))模塊連續(xù)性

系統(tǒng)的微小變動(dòng)只引起單個(gè)模塊的修改模塊保護(hù)性

模塊內(nèi)部的異常情況將被限制在模塊內(nèi)5413*2.3信息隱藏信息隱藏是指一個(gè)模塊包含的信息,對(duì)于外部而言是不可直接訪問的,只有通過接口進(jìn)行訪問5414*2.4模塊獨(dú)立性模塊獨(dú)立性是指每個(gè)模塊都是獨(dú)立的,與其它模塊的聯(lián)系最少并且接口簡(jiǎn)單模塊獨(dú)立性是評(píng)價(jià)設(shè)計(jì)好壞的重要指標(biāo)模塊獨(dú)立性的要求是高內(nèi)聚和低耦合最緊密的內(nèi)聚是功能內(nèi)聚最松散的耦合是非直接耦合5415*3軟件設(shè)計(jì)過程軟件設(shè)計(jì)的過程是把分析階段產(chǎn)生的軟件需求規(guī)格說明書轉(zhuǎn)換為適當(dāng)手段表示的軟件設(shè)計(jì)文檔,其設(shè)計(jì)過程如下:設(shè)計(jì)信息描述功能描述行為描述其它描述數(shù)據(jù)設(shè)計(jì)編碼模塊/構(gòu)件結(jié)構(gòu)設(shè)計(jì)過程設(shè)計(jì)接口設(shè)計(jì)5416*4結(jié)構(gòu)化設(shè)計(jì)方法軟件設(shè)計(jì)的方法是指開發(fā)階段設(shè)計(jì)軟件時(shí)所使用的方法軟件設(shè)計(jì)方法可以分為:結(jié)構(gòu)化設(shè)計(jì)方法(StructuredDesign,SD)面向?qū)ο蟮脑O(shè)計(jì)方法(Object-OrientedDesign,OOD)5417*4.1結(jié)構(gòu)化設(shè)計(jì)方法概述結(jié)構(gòu)化設(shè)計(jì)方法是基于模塊化、自頂向下分解及結(jié)構(gòu)化設(shè)計(jì)等程序設(shè)計(jì)技術(shù)基礎(chǔ)發(fā)展起來的結(jié)構(gòu)化設(shè)計(jì)是早期的程序設(shè)計(jì)方法,至今仍然起到重要作用54184.2結(jié)構(gòu)化設(shè)計(jì)方法基本思想結(jié)構(gòu)化設(shè)計(jì)的基本思想是將軟件設(shè)計(jì)成由相對(duì)獨(dú)立、單一化功能的模塊組成的結(jié)構(gòu)結(jié)構(gòu)化設(shè)計(jì)方法給出一組幫助設(shè)計(jì)人員在模塊層次上區(qū)分設(shè)計(jì)質(zhì)量的原理和技術(shù),以數(shù)據(jù)流圖為基礎(chǔ)得到軟件的模塊結(jié)構(gòu)*5419*4.3模塊化設(shè)計(jì)的原則使每個(gè)模塊執(zhí)行一個(gè)功能每個(gè)模塊用過程語句調(diào)用其它模塊模塊間傳送的參數(shù)做數(shù)據(jù)用模塊間共用的信息盡量少總結(jié)起來就是高內(nèi)聚、低耦合5420*4.4結(jié)構(gòu)化設(shè)計(jì)方法的步驟評(píng)審和細(xì)化數(shù)據(jù)流圖確定數(shù)據(jù)流圖的類型把數(shù)據(jù)流圖映射到軟件模塊結(jié)構(gòu),設(shè)計(jì)出模塊結(jié)構(gòu)的上層基于數(shù)據(jù)流圖逐步分解高層模塊,設(shè)計(jì)中下層模塊對(duì)模塊結(jié)構(gòu)進(jìn)行優(yōu)化描述模塊結(jié)構(gòu)5421*4.5結(jié)構(gòu)化設(shè)計(jì)的兩個(gè)階段結(jié)構(gòu)化設(shè)計(jì)包括兩個(gè)階段:概要設(shè)計(jì)階段詳細(xì)設(shè)計(jì)階段54224.5.1概要設(shè)計(jì)階段概要設(shè)計(jì)階段也稱為總體設(shè)計(jì),主要任務(wù)是把系統(tǒng)功能需求分配給軟件結(jié)構(gòu),形成軟件的模塊結(jié)構(gòu)圖,即將數(shù)據(jù)流圖DFD等轉(zhuǎn)換為系統(tǒng)結(jié)構(gòu)圖本階段的描述工具是結(jié)構(gòu)圖*54234.5.1.1概要設(shè)計(jì)的基本任務(wù)概要設(shè)計(jì)的基本任務(wù)包括:軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

劃分功能模塊、確定模塊間調(diào)用關(guān)系數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)

實(shí)現(xiàn)需求定義和規(guī)格過程中提出的數(shù)據(jù)對(duì)象的邏輯表示編寫概要設(shè)計(jì)文檔概要設(shè)計(jì)文檔評(píng)審*54244.5.1.2結(jié)構(gòu)化設(shè)計(jì)的目的任務(wù)結(jié)構(gòu)化設(shè)計(jì)的目的:使程序的結(jié)構(gòu)盡可能地反映要解決問題的結(jié)構(gòu)結(jié)構(gòu)化設(shè)計(jì)的任務(wù):把需求分析得到的數(shù)據(jù)流圖變換為系統(tǒng)結(jié)構(gòu)圖*54254.5.2結(jié)構(gòu)圖結(jié)構(gòu)圖反應(yīng)了系統(tǒng)的功能實(shí)現(xiàn)以及模塊與模塊之間的聯(lián)系與通訊結(jié)構(gòu)圖的基本組成模塊數(shù)據(jù)調(diào)用*54264.5.2.1結(jié)構(gòu)圖的基本術(shù)語深度:模塊結(jié)構(gòu)的層次數(shù)寬度:同一層模塊的最大模塊數(shù)扇出:一個(gè)模塊直接調(diào)用的其它模塊數(shù)扇入:調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)原則上,結(jié)構(gòu)化設(shè)計(jì)的深度寬度要適當(dāng)應(yīng)該形成低扇出,高扇入*5427*4.5.3數(shù)據(jù)流圖到結(jié)構(gòu)圖的轉(zhuǎn)換面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法,典型的信息流類型:變化型事務(wù)型5428*4.5.3.1變換型信息流變換型信息流是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式轉(zhuǎn)換為內(nèi)部形式,然后經(jīng)過變化中心加工然后沿輸出通路再轉(zhuǎn)變?yōu)橥獠啃问?429*4.5.3.2事務(wù)型信息流事物型信息流是指數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)數(shù)據(jù)類型在若干個(gè)動(dòng)作序列中選擇一個(gè)來執(zhí)行54304.5.4詳細(xì)設(shè)計(jì)及其工具詳細(xì)設(shè)計(jì)為軟件結(jié)構(gòu)圖中的每一個(gè)模塊確定采用的算法,模塊內(nèi)部的數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計(jì)的工具:程序流程圖N-S圖問題分析圖等*54314.5.4.1流程圖流程圖用方框表示各種操作,菱形表示分支*54324.5.4.2N-S圖用方框代表流程圖*54335面向?qū)ο蠓椒ǖ脑O(shè)計(jì)方法面向?qū)ο蠓椒ㄍㄟ^一組互相關(guān)聯(lián)的模型詳細(xì)表示類之間的關(guān)系和對(duì)象的行為,這些模型從不同的側(cè)面表示了軟件的體系結(jié)構(gòu),包括:靜態(tài)邏輯模型(對(duì)象模型)動(dòng)態(tài)邏輯模型(動(dòng)態(tài)模型)靜態(tài)物理模型動(dòng)態(tài)物理模型*54345.1面向?qū)ο蠓椒ǖ?種模型靜態(tài)邏輯模型——描述類及類的實(shí)例化、關(guān)聯(lián)、聚集、繼承等關(guān)系,表達(dá)了對(duì)象之間的靜態(tài)邏輯關(guān)系動(dòng)態(tài)邏輯模型——描述對(duì)象之間的相互作用,相互作用通過一組協(xié)同的對(duì)象,對(duì)象之間的消息序列,參考對(duì)象的可見性來定義系統(tǒng)運(yùn)行時(shí)的行為,表達(dá)了對(duì)象之間的動(dòng)態(tài)邏輯關(guān)系*54355.1.1面向?qū)ο蠓椒ǖ?種模型靜態(tài)物理模型——通過模塊描述代碼的布局,即模塊與文件的關(guān)系動(dòng)態(tài)物理模型——描述軟件的進(jìn)程和線程體系結(jié)構(gòu),描述了對(duì)象運(yùn)行時(shí)載體之間的關(guān)系面向?qū)ο蟮?種模型通常使用UML語言表達(dá)*54365.2UML語言的表示法(上)UML表示法由5類共9種圖形來定義用例圖(Usecasediagram),從用戶角度描述系統(tǒng)功能靜態(tài)圖(Staticdiagram),描述系統(tǒng)的靜態(tài)邏輯結(jié)構(gòu),包括類圖、對(duì)象圖和包圖行為圖(Behaviordiagram),描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系,包括狀態(tài)圖和活動(dòng)圖*54375.2.1UML語言的表示法(下)交互圖(Interactivediagram),描述對(duì)象間的交互關(guān)系,包括時(shí)序圖和協(xié)作圖實(shí)現(xiàn)圖(Implementationdiagram),包括組件圖和配置圖UML語言包括了這些圖形的語義、語法和說明,提供了靜態(tài)、動(dòng)態(tài)、系統(tǒng)環(huán)境及組織結(jié)構(gòu)的模型*54385.3UML的4+1模型視圖UML的4+1模型視圖通過五個(gè)不同的視圖來描述系統(tǒng),每個(gè)視圖對(duì)應(yīng)于特定的研究系統(tǒng)的觀點(diǎn),不同的視圖突出特定參與者所關(guān)心系統(tǒng)的不同方面,通過合并所有5個(gè)視圖中得到的信息就可以形成系統(tǒng)的完整描述其中的用例視圖具有將其他4個(gè)視圖的內(nèi)容結(jié)合到一起的特殊作用*54395.4UML不同模型之間的關(guān)系UML可以通過稱為4+1視圖模型的軟件體系結(jié)構(gòu)來了解系統(tǒng)設(shè)計(jì)視圖實(shí)現(xiàn)視圖進(jìn)程視圖部署視圖用例視圖UML的4+1模型視圖*54405.5UML的5個(gè)模型視圖的作用用例視圖:定義了系統(tǒng)的外部行為設(shè)計(jì)視圖:描述的是支持用例視圖中規(guī)定功能需求的邏輯結(jié)構(gòu)實(shí)現(xiàn)視圖:描述構(gòu)造系統(tǒng)的物理組件進(jìn)程視圖:設(shè)計(jì)系統(tǒng)中的并發(fā)性問題部署視圖:描述物理組件如何在系統(tǒng)的實(shí)際環(huán)境中分布*54415.6UML的圖與視圖的關(guān)系序號(hào)圖(Diagram)視圖(View)1用例圖(Usecase)用例視圖2對(duì)象圖(Object)用例和設(shè)計(jì)視圖3順序圖(Sequence)用例和設(shè)計(jì)視圖4協(xié)作圖(Collaboration)用例和設(shè)計(jì)視圖5類圖(Class)設(shè)計(jì)視圖6狀態(tài)圖(Stutechart)設(shè)計(jì)和進(jìn)程視圖7活動(dòng)圖(Activity)設(shè)計(jì)和進(jìn)程視圖8組件圖(Component)實(shí)現(xiàn)視圖9部署圖(Deployment)部署視圖*54425.7用例驅(qū)動(dòng)的過程使用用例進(jìn)行UML模型視圖的實(shí)化和細(xì)化用例領(lǐng)域模型RealizationRefinement時(shí)序圖類圖狀態(tài)圖*54435.8UML圖形舉例用例圖*54445.8.1UML圖形舉例-類圖*54455.8.2UML圖形舉例-時(shí)序圖*54465.8.3UML圖形舉例-狀態(tài)圖*54476.StarUML軟件介紹StarUML是一款開放源碼的UML開發(fā)工具是由韓國公司主導(dǎo)開發(fā)出來的產(chǎn)品,可以直接到StarUML網(wǎng)站下載StarUML(簡(jiǎn)稱SU),是一種創(chuàng)建UML類圖,生成類圖和其他類型的統(tǒng)一建模語言(UML)圖表的工具*54486.1

StarUML軟件特點(diǎn)可繪制9款UML圖:用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖、通信圖、模塊圖、部署圖以及復(fù)合結(jié)構(gòu)圖等正反向工程:StarUML可以依據(jù)類圖的內(nèi)容生成Java、C++、C#代碼,也能夠讀取Java、C++、C#代碼反向生成類圖導(dǎo)入Rose文件:StarUML可以讀取

溫馨提示

  • 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)論