《軟件工程原理》講義-03ppt課件_第1頁
《軟件工程原理》講義-03ppt課件_第2頁
《軟件工程原理》講義-03ppt課件_第3頁
《軟件工程原理》講義-03ppt課件_第4頁
《軟件工程原理》講義-03ppt課件_第5頁
已閱讀5頁,還剩89頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程原理第三章 軟件設(shè)計3.1 軟件設(shè)計的概念3.2 功能獨立性3.3 構(gòu)造化設(shè)計方法3.4 過程設(shè)計.3.1 軟件設(shè)計的概念軟件設(shè)計的根本目的是用比較籠統(tǒng)概括的方式確定目的系統(tǒng)如何完成預(yù)定的義務(wù),即軟件設(shè)計是確定系統(tǒng)的物理模型。從技術(shù)觀念來看,軟件設(shè)計包括數(shù)據(jù)設(shè)計、體系構(gòu)造設(shè)計、接口設(shè)計、過程設(shè)計。數(shù)據(jù)設(shè)計將實體關(guān)系圖中描畫的對象和關(guān)系,以及數(shù)據(jù)字典中描畫的詳細數(shù)據(jù)內(nèi)容轉(zhuǎn)化為數(shù)據(jù)構(gòu)造的定義。.體系構(gòu)造設(shè)計定義軟件系統(tǒng)各主要成份之間的關(guān)系。接口設(shè)計根據(jù)數(shù)據(jù)流圖定義軟件內(nèi)部各成份之間、軟件與其它協(xié)同系統(tǒng)之間及軟件與用戶之間的交互機制。過程設(shè)計那么是把構(gòu)呵斥份轉(zhuǎn)換成軟件的過程性描畫。.將分析模

2、型轉(zhuǎn)換為設(shè)計數(shù)據(jù)字典數(shù)據(jù)流圖實體關(guān)系圖形狀轉(zhuǎn)換圖加工規(guī)格說明控制規(guī)格說明數(shù)據(jù)對象描述過程設(shè)計接口設(shè)計體系構(gòu)造設(shè)計數(shù)據(jù)設(shè)計.從工程管理角度來看,軟件設(shè)計分兩步完成:概要設(shè)計和詳細設(shè)計。概要設(shè)計將軟件需求轉(zhuǎn)化為軟件體系構(gòu)造確定系統(tǒng)級接口全局?jǐn)?shù)據(jù)構(gòu)造或數(shù)據(jù)庫方式。詳細設(shè)計確立每個模塊的實現(xiàn)算法和部分?jǐn)?shù)據(jù)構(gòu)造用適當(dāng)方法表示算法和數(shù)據(jù)構(gòu)造的細節(jié).軟件設(shè)計是后續(xù)開發(fā)步驟及軟件維護任務(wù)的根底。假設(shè)沒有設(shè)計,只能建立一個不穩(wěn)定的系統(tǒng)構(gòu)造。設(shè)計編碼測試維護測試編碼維護有軟件設(shè)計 沒有軟件設(shè)計.軟件設(shè)計既是過程又是模型。設(shè)計過程是一系列的迭代步驟,使設(shè)計人員可以描畫目的系統(tǒng)的各個側(cè)面。設(shè)計模型首先描畫目的系統(tǒng)的整

3、體架構(gòu),然后逐漸細化架構(gòu)得到構(gòu)造每個細節(jié)的指點原那么,從而得到系統(tǒng)的一系列不同的視圖。良好的設(shè)計原那么可為設(shè)計過程導(dǎo)航。衡量設(shè)計過程的技術(shù)原那么:設(shè)計必需實現(xiàn)分析模型中描畫的一切顯式需求,必需滿足用戶希望的一切隱式需求。衡量軟件設(shè)計的原那么.對于開發(fā)者和未來的維護者而言,設(shè)計必需是可讀的、可了解的,使得未來易于編程、易于測試、易于維護。設(shè)計應(yīng)該給出軟件的全貌,包括從實現(xiàn)角度可看到的數(shù)據(jù)、功能、行為。衡量設(shè)計模型的技術(shù)原那么設(shè)計模型應(yīng)該是一個分層構(gòu)造。該構(gòu)造:運用可識別的設(shè)計方式搭建系統(tǒng)構(gòu)造。用顯示良好設(shè)計特征的構(gòu)件構(gòu)成??梢杂醚莼姆绞綄崿F(xiàn)。設(shè)計該當(dāng)模塊化。.設(shè)計該當(dāng)包含數(shù)據(jù)、體系構(gòu)造、接口和

4、構(gòu)件模塊的明晰的視圖。設(shè)計該當(dāng)根據(jù)將要實現(xiàn)的對象和數(shù)據(jù)方式導(dǎo)出適宜的數(shù)據(jù)構(gòu)造。設(shè)計該當(dāng)建立具有獨立功能特征的構(gòu)件。設(shè)計該當(dāng)建立可以降低模塊與外部環(huán)境之間復(fù)雜銜接的接口。設(shè)計模型該當(dāng)經(jīng)過運用軟件需求信息所驅(qū)動的可反復(fù)的方法導(dǎo)出。Davis的軟件設(shè)計原那么設(shè)計應(yīng)具有可跟蹤性,能回溯到軟件需求;.設(shè)計不用每次都從頭做起,可以復(fù)用已有的設(shè)計方式和數(shù)據(jù)方式。設(shè)計該當(dāng)減少軟件與現(xiàn)實世界中問題的“智力間隔,盡量逼近問題領(lǐng)域的構(gòu)造;設(shè)計應(yīng)具有一致性和集成性。整個系統(tǒng)應(yīng)具有一致的風(fēng)格和格式,具有良好的接口。設(shè)計結(jié)果應(yīng)能順應(yīng)未來能夠的變卦;設(shè)計不是編碼,編碼也不是設(shè)計。設(shè)計模型的籠統(tǒng)級別比源代碼高。在編碼級別上獨

5、一的設(shè)計決策是補充一些實現(xiàn)細節(jié)。.設(shè)計應(yīng)具有容錯性和異常處置才干。對于異常數(shù)據(jù)、事件、操作條件等可以平滑處置。在建立設(shè)計方案時就應(yīng)能評價設(shè)計質(zhì)量,而不是在系統(tǒng)編碼之后。應(yīng)堅持設(shè)計評審,減少概念性語義性的錯誤。1)設(shè)計應(yīng)遵照籠統(tǒng)化的原那么,包含數(shù)據(jù)籠統(tǒng)和過程籠統(tǒng)。軟件設(shè)計的主要手段.過程籠統(tǒng) 是指在軟件設(shè)計中將處置過程的實現(xiàn)細節(jié)隱藏在數(shù)據(jù)籠統(tǒng)中,可以直接經(jīng)過模塊接口運用這些處置操作。數(shù)據(jù)籠統(tǒng) 是指采用籠統(tǒng)數(shù)據(jù)類型表示數(shù)據(jù),實現(xiàn)數(shù)據(jù)封裝,使得運用者可經(jīng)過接口運用數(shù)據(jù)而不用關(guān)懷數(shù)據(jù)構(gòu)造的實現(xiàn)。設(shè)計應(yīng)遵照自頂向下、逐漸細化的原那么,建立一個層次的構(gòu)造。將軟件體系構(gòu)造自頂向下,對過程細節(jié)和數(shù)據(jù)細節(jié)從籠統(tǒng)

6、到詳細,逐層細化,直到用編程言語的語句可以實現(xiàn)為止。.設(shè)計該當(dāng)遵照模塊化的原那么。每個模塊可獨立地開發(fā)、測試,最后組裝成完好的程序。其出發(fā)點是本著將一種復(fù)雜問題“分而治之的原那么。其目的是使程序的構(gòu)造明晰,容易閱讀、了解、測試、修正。Meyer的良好模塊設(shè)計方法的規(guī)范模塊可分解性 可將系統(tǒng)按問題子問題分解的原那么分解成系統(tǒng)的模塊層次構(gòu)造;模塊可組裝性 可利用已有的設(shè)計構(gòu)件組裝成新系統(tǒng),不用一切從頭開場。.模塊可了解性 一個模塊可不參考其他模塊而被了解;模塊延續(xù)性 對軟件需求的一些微小變卦只導(dǎo)致對某個模塊的修正而整個系統(tǒng)不用大動;模塊維護 將模塊內(nèi)出現(xiàn)異常情況的影響范圍限制在模塊內(nèi)部;設(shè)計應(yīng)遵照

7、信息隱蔽的原那么。Patnas主張在開發(fā)時,將每個程序的成分隱藏在模塊內(nèi),定義每一個模塊時盡能夠少地顯露其內(nèi)部的處置。.每個模塊的實現(xiàn)細節(jié)對于其它模塊是隱蔽的,未來修正軟件時偶爾引入錯誤所呵斥的影響就可以局限在一個或幾個模塊內(nèi)部,不致涉及到軟件的其它部分。在可預(yù)見未來能夠修正的場所,信息隱蔽可以提高軟件的可修正性、可測試性和可移植性。.3.2 功能獨立性功能獨立性是籠統(tǒng)、模塊化和信息隱蔽的直接產(chǎn)物。假設(shè)一個模塊可以獨立于其他模塊被編程、測試和修正,那么該模塊具有功能獨立性。1978年Myers提出用兩個準(zhǔn)那么來度量功能獨立性,即模塊間的耦合和模塊的內(nèi)聚。內(nèi)聚性:內(nèi)聚是一個模塊內(nèi)部各個元素彼此結(jié)

8、合的嚴(yán)密程度的度量。耦合性: 耦合是模塊間相互銜接的嚴(yán)密程度的度量,它取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息經(jīng)過接口。.非直接 數(shù)據(jù) 標(biāo)志 控制 外部 公共 內(nèi)容 耦合 耦合 耦合 耦合 耦合 耦合 耦合耦合性功能獨立性模塊間的耦合模塊之間耦合性越強,功能獨立性越差,這樣構(gòu)成的模塊構(gòu)造界面不好。.非直接耦合(Nondirect Coupling)兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)絡(luò)完全是經(jīng)過主模塊的控制和調(diào)用來實現(xiàn)的。非直接耦合的模塊獨立性最強。主模塊ABCEFGXYZ.數(shù)據(jù)耦合 (Data Coupling)一個模塊訪問另一個模塊時,彼此之間是經(jīng)過簡單數(shù)據(jù)參數(shù) (不是控制參

9、數(shù)、公共數(shù)據(jù)構(gòu)造或外部變量) 來交換輸入、輸出信息的。p0 (x0, y0) p1 (x1, y1)數(shù)據(jù)耦合 LINE ( x0, y0, x1, y1).標(biāo)志耦合 (Stamp Coupling)一組模塊經(jīng)過參數(shù)表傳送記錄信息,就是標(biāo)志耦合。這個記錄是某一數(shù)據(jù)構(gòu)造的子構(gòu)造,而不是簡單變量。p0 (x0, y0) p1 (x1, y1)標(biāo)志耦合 LINE ( p0, p1).控制耦合 (Control Coupling)假設(shè)一個模塊經(jīng)過傳送開關(guān)、標(biāo)志、名字等控制參數(shù),明顯地控制選擇另一模塊的功能,就是控制耦合。FlagFlagf1f2fn.外部耦合External Coupling一組模塊都訪

10、問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)構(gòu)造,而且不是經(jīng)過參數(shù)表傳送該全局變量的信息,那么稱之為外部耦合。公共耦合Common Coupling假設(shè)一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,那么它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)構(gòu)造、共享的通訊區(qū)、內(nèi)存的公共覆蓋區(qū)等。.公共耦合的復(fù)雜程度隨耦合模塊的個數(shù)添加而顯著添加。假設(shè)只是兩模塊間有公共數(shù)據(jù)環(huán)境,那么公共耦合有兩種情況。松散公共耦合和嚴(yán)密公共耦合。common公共數(shù)據(jù)區(qū)ABcommon公共數(shù)據(jù)區(qū)AB松散的公共耦合嚴(yán)密的公共耦合.假設(shè)發(fā)生以下情形,模塊之間就是內(nèi)容耦合:一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不經(jīng)過正常入口轉(zhuǎn)

11、到另一模塊內(nèi)部;兩個模塊有一部分程序代碼重迭(只能夠出如今匯編言語中);一個模塊有多個入口。內(nèi)容耦合 (Content Coupling). c AB進入另一模塊內(nèi)部模塊代碼重疊ABentry1 entry2 模塊多個入口.模塊內(nèi)聚巧合 邏輯 時間 過程 通訊 信息 功能內(nèi)聚 內(nèi)聚 內(nèi)聚 內(nèi)聚 內(nèi)聚 內(nèi)聚 內(nèi)聚內(nèi)聚性功能獨立性模塊內(nèi)聚性越強,功能獨立性越好,對于構(gòu)成的模塊構(gòu)造有比較好的作用。要求模塊構(gòu)造到達高內(nèi)聚,低耦合。.一個模塊中各個部分都是完成某一詳細功能必不可少的組成部分,或者說該模塊中一切部分都是為了完成一項詳細功能而協(xié)同任務(wù),嚴(yán)密聯(lián)絡(luò),不可分割的。那么稱該模塊為功能內(nèi)聚模塊。功能內(nèi)

12、聚模塊的功能獨立性最強。功能內(nèi)聚 (Functional Cohesion).這種模塊完成多個功能,各個功能相互獨立但都在同一數(shù)據(jù)構(gòu)造上操作,每一項功能有一個獨一的入口點。這個模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個功能。由于這個模塊的一切功能都是基于同一個數(shù)據(jù)構(gòu)造符號表,因此,它是一個信息內(nèi)聚的模塊。信息內(nèi)聚模塊可以看成是多個功能內(nèi)聚模塊的組合,并且到達信息的隱蔽。信息內(nèi)聚 (Informational Cohesion).初始化插入刪除查找修正符 號 表.假設(shè)一個模塊內(nèi)各功能部分都運用了一樣的輸入數(shù)據(jù),或產(chǎn)生了一樣的輸出數(shù)據(jù),那么稱之為通訊內(nèi)聚模塊。通常,通訊內(nèi)聚模塊是經(jīng)過數(shù)據(jù)流圖來定義的。

13、模塊內(nèi)各個功能是嚴(yán)密相連的。通訊內(nèi)聚 (Communication Cohesion).打印檢驗結(jié)果讀文件文件計算A計算B合并修正文件新文件A結(jié)果B結(jié)果加工記錄.運用流程圖做為工具設(shè)計程序時,假設(shè)流程圖太大,可以把流程圖中的某一部分劃出組成模塊,就得到過程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、斷定部分、計算部分分成三個模塊,這三個模塊都是過程內(nèi)聚模塊。過程內(nèi)聚Procedural Cohesion.時間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個功能的執(zhí)行與時間有關(guān),通常要求一切功能必需在同一時間段內(nèi)執(zhí)行。例如,初始化模塊和終止模塊就是時間內(nèi)聚模塊。時間內(nèi)聚Classical C

14、ohesion.這種模塊把幾種相關(guān)的功能組合在一同,每次被調(diào)用時,由傳送給模塊的斷定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。寫一個記錄讀一個記錄斷定調(diào)用模塊被調(diào)用模塊邏輯內(nèi)聚Logical Cohesion.當(dāng)幾個模塊內(nèi)正好有一段代碼是一樣的,將它們抽取出來構(gòu)成單獨的模塊,即巧合內(nèi)聚模塊。這種模塊沒有獨立功能,各部分之間沒有聯(lián)絡(luò),或聯(lián)絡(luò)很松散。巧合內(nèi)聚Coincidental CohesionABCM STORE REC() TO N READ MASTER FILE ADD 1 TO x .構(gòu)造化設(shè)計structured design,SD是一種面向數(shù)據(jù)流的設(shè)計方法,它可以與SA方法銜接。構(gòu)造化設(shè)

15、計是基于模塊化、自頂向下細化、構(gòu)造化程序設(shè)計等程序設(shè)計技術(shù)根底上開展起來的。根本思想是將系統(tǒng)設(shè)計成由相對獨立、功能單一的模塊組成的構(gòu)造。該方法實施的要點是:首先研討、分析和審查數(shù)據(jù)流圖。 從軟件3.3 構(gòu)造化設(shè)計方法.的需求規(guī)格闡明中弄清數(shù)據(jù)流加工的過程,對于發(fā)現(xiàn)的問題及時處理。然后根據(jù)數(shù)據(jù)流圖確定數(shù)據(jù)處置的類型。典型的類型有兩種:變換型和事務(wù)型。針對兩種不同類型分別進展分析處置。由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始構(gòu)造圖。利用一些啟發(fā)式原那么改良系統(tǒng)初始構(gòu)造圖,直到得到符合要求的構(gòu)造圖為止。修正和補充數(shù)據(jù)字典。制定測試方案。.在系統(tǒng)構(gòu)造圖中的模塊傳入模塊 從下屬模塊獲得數(shù)據(jù),經(jīng)過某些處置, 再將其傳送

16、給上級模塊。它傳送的數(shù)據(jù)流叫做邏輯輸入數(shù)據(jù)流。傳出模塊 從上級模塊獲得數(shù)據(jù),進展某些處置,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出數(shù)據(jù)流。變換模塊 它從上級模塊獲得數(shù)據(jù),進展特定的處置,轉(zhuǎn)換成其它方式, 再傳送回上級模塊。.協(xié)調(diào)模塊 對一切下屬模塊進展協(xié)調(diào)和管理的模塊。傳入模塊AA傳出模塊DD變換模塊AB協(xié)調(diào)模塊AABB.系統(tǒng)構(gòu)造圖的根本符號模塊調(diào)用數(shù)據(jù)控制信息轉(zhuǎn)接符號系統(tǒng)構(gòu)造圖的根本符號選擇判別反復(fù).模塊調(diào)用例如(a) 調(diào)用(b) 判別調(diào)用(c) 循環(huán)調(diào)用.數(shù)據(jù):模塊之間傳送的數(shù)據(jù)用帶空心圓的箭頭表示,并在旁邊標(biāo)上數(shù)據(jù)名??刂菩畔ⅲ嚎刂菩畔⑴c數(shù)據(jù)的主要區(qū)別是前者只反映數(shù)據(jù)的某種形狀。

17、模塊間的數(shù)據(jù)傳送AB(a)xyz查職工簡歷讀人事文件(b)職工號簡歷數(shù)據(jù)無此職工.數(shù)據(jù)處置的類型 在需求分析階段,面向數(shù)據(jù)流的SA方法產(chǎn)生數(shù)據(jù)流圖DFD。在軟件設(shè)計階段,面向數(shù)據(jù)流的SD方法將DFD轉(zhuǎn)換成程序構(gòu)造圖。數(shù)據(jù)處置即為在DFD中從系統(tǒng)的輸入數(shù)據(jù)流到系統(tǒng)的輸出數(shù)據(jù)流所閱歷的一連串延續(xù)變換。數(shù)據(jù)處置的類型分為變換流型與事務(wù)流型。 .變換流 數(shù)據(jù)沿著輸入通路進入系統(tǒng),經(jīng)過一系列數(shù)據(jù)變換,將數(shù)據(jù)的外部方式轉(zhuǎn)換成對應(yīng)的內(nèi)部表示,然后經(jīng)過變換中心也稱主加工處置,再沿著輸出通路轉(zhuǎn)換成外部方式分開系統(tǒng)。具有這種特性的數(shù)據(jù)流稱為變換流。變換流型DFD可以分成: 輸入變換中心主加工輸出 輸入數(shù)據(jù)C變換數(shù)

18、據(jù)CD輸出數(shù)據(jù)D.相應(yīng)于獲得數(shù)據(jù)、變換數(shù)據(jù)、給出數(shù)據(jù),變換流型系統(tǒng)構(gòu)造圖由輸入、變換中心和輸出等三部分組成。主模塊B變換成C輸入B輸出CA變換成B輸入AC變換成D輸出DAABBBCCCDD.事務(wù)流 數(shù)據(jù)沿著輸入通路到達一個事務(wù)中心,事務(wù)中心根據(jù)輸入數(shù)據(jù)即事務(wù)的類型在假設(shè)干個動作稱為活動流中選擇一個來執(zhí)行,這種數(shù)據(jù)流也稱為事務(wù)流。事務(wù)流有明顯的事務(wù)中心,各活動流以事務(wù)中心為起點呈輻射狀流出。在事務(wù)流型系統(tǒng)構(gòu)造圖中,事務(wù)中心模塊按所接受的事務(wù)的類型,選擇某一事務(wù)活動流處置模塊執(zhí)行。各事務(wù)處置模塊并列。.事務(wù)中心分派模塊輸出結(jié)果事務(wù)1輸入作業(yè)信息事務(wù)2事務(wù)3事務(wù)4作業(yè)信息作業(yè)信息結(jié)果結(jié)果操作1操作2

19、操作3操作4操作5操作6細節(jié)1細節(jié)2細節(jié)3細節(jié)4細節(jié)5細節(jié)6.變換分析 變換分析從變換流型的數(shù)據(jù)流圖導(dǎo)出系統(tǒng)構(gòu)造圖.步驟重畫數(shù)據(jù)流圖;區(qū)分有效邏輯輸入、有效邏輯輸出和變換中心部分;進展一級分解,設(shè)計模塊構(gòu)造的頂層和第一層模塊;進展二級分解,設(shè)計輸入、輸出和中心變換部分的中、下層模塊。.1. 重畫數(shù)據(jù)流圖平鋪為了建立系統(tǒng)構(gòu)造,將數(shù)據(jù)流圖平鋪開來,物理輸入畫在左側(cè),物理輸出畫在右側(cè)。假設(shè)一個外部實體既是物理輸入又是物理輸出,那么兩側(cè)都要畫出它。ABBCEGGHDFCDEABCDEFGH物理輸入物理輸出.2. 確定邏輯輸入、邏輯輸出和變換中心部分變換中心是程序的中心功能,它的輸入是邏輯輸入,它的輸出

20、為邏輯輸出。變換中心ABBCEGGHDFCDEABCDEFGH物理輸入物理輸出邏輯輸入邏輯輸出.3. 第一級分解:設(shè)計模塊構(gòu)造的頂層和第一層頂層模塊:其功能就是整個系統(tǒng)的功能;輸入控制模塊:接納一切的輸入數(shù)據(jù);變換控制模塊:實現(xiàn)輸入到輸出的變換;輸出控制模塊:產(chǎn)生一切的輸出數(shù)據(jù)。頂層模塊變換控制輸出控制輸入控制.變換中心ABBCEGGHDFCDEABCDEFGH物理輸入物理輸出邏輯輸入邏輯輸出主模塊C D,E輸入C輸出D輸出ECCD,EDE邏輯輸入變換中心邏輯輸出.4. 第二級分解:設(shè)計中、下層模塊輸入控制模塊的分解:從變換中心的邊境開場,沿著各輸入通路,把輸入通路上的每個加工映射成輸入控制模

21、塊的一個低層模塊。輸出控制模塊的分解:從變換中心的邊境開場,沿著各輸出通路,把輸出通路上的每個加工映射成輸出控制模塊的一個低層模塊。變換控制模塊的分解:變換控制模塊通常沒有通用的分解方法,應(yīng)根據(jù)數(shù)據(jù)流圖中變換部分的實踐情況進展設(shè)計。.輸出HG HABBCEGGHDFCD,EABCDEFGH物理輸入物理輸出主模塊CD,E輸入C輸出D輸出ECCD,EDE輸入BBBCBC輸入AABABA輸出GE G輸出FDFDFFEGGGHH.輸出HG HABBCEGGHDFCD,EABCDEFGH物理輸入物理輸出主模塊CD,E輸入C輸出D輸出ECCD,EDE輸入BBBCBC輸入AABABA輸出GE G輸出FDFD

22、FFEGGGHH.事務(wù)分析事務(wù)分析是從事務(wù)流型數(shù)據(jù)流圖導(dǎo)出系統(tǒng)構(gòu)造圖。步驟:確定事務(wù)中心和每條活動流的流特性 將事務(wù)流型數(shù)據(jù)流圖映射成高層的系統(tǒng)構(gòu)造進一步分解 .1. 確定事務(wù)中心和各活動流的流特性 右圖為事務(wù)流型DFD的普通方式。事務(wù)中心圖中的T:位于活動流的起點,活動流從該點成輻射狀流出?;顒恿鳎嚎蔀樽儞Q流可為事務(wù)流事務(wù)流型的DFD的組成:輸入流事務(wù)中心假設(shè)干條活動流 T輸入流事務(wù)流活動流.右圖為事務(wù)流型DFD的高層構(gòu)造方式。頂層模塊:其功能就是整個系統(tǒng)的功能。接納模塊:接納輸入數(shù)據(jù)。分派模塊:調(diào)度模塊,控制下層的一切活動模塊。事務(wù)模塊:對應(yīng)活動流,是該活動流映射成的。 2. 將事務(wù)流型D

23、FD映射成高層系統(tǒng)構(gòu)造頂層模塊分派接納事務(wù)1事務(wù)2事務(wù)n.3. 進一步分解接納模塊:類同于變換分析中輸入控制模塊的分解。活動流模塊:根據(jù)其流特性變換流或事務(wù)流進一步采用變換分析或事務(wù)分析進展分解。 .模塊設(shè)計的原那么在選擇模塊設(shè)計的次序時,必需對一個模塊的全部直接下屬模塊都設(shè)計完成之后,才干轉(zhuǎn)向另一個模塊的下層模塊的設(shè)計。運用“黑盒技術(shù): 在設(shè)計當(dāng)前模塊時,先把該模塊的一切下層模塊定義成“黑盒,在設(shè)計中利用它們時暫不思索其內(nèi)部構(gòu)造和實現(xiàn)。在這一步定義好的“黑盒,在下一步就可以對它們進展設(shè)計和加工。最后,全部“黑盒的內(nèi)容和構(gòu)造應(yīng)完全被確定。.在設(shè)計下層模塊時,應(yīng)思索模塊的耦合和內(nèi)聚問題,以提高初

24、始構(gòu)造圖質(zhì)量。模塊劃分時,一個模塊的直接下屬模塊普通在 5 個左右。假設(shè)直接下屬模塊超越 10 個,可設(shè)立中間層次。假設(shè)出現(xiàn)以下情況,就停頓模塊分解:模塊不能再細分為明顯的子義務(wù);分解成用戶提供的模塊或庫函數(shù);模塊接口是輸入輸出設(shè)備傳送的信息;模塊不宜再分解得過小。.變換分析是軟件系統(tǒng)構(gòu)造設(shè)計的主要方法。普通,一個大型的軟件系統(tǒng)是變換型構(gòu)造和事務(wù)型構(gòu)造的混合構(gòu)造。所以,我們通常利用以變換分析為主,事務(wù)分析為輔的方式進展軟件構(gòu)造設(shè)計。.abdpqrsbac1d分派模塊事務(wù)控制qrs接受通路p.模塊功能完善化 一個完好的模塊該當(dāng)有以下幾部分:執(zhí)行規(guī)定的功能的部分;出錯處置的部分。當(dāng)模塊不能完成規(guī)定

25、的功能時,必需回送出錯標(biāo)志,出現(xiàn)例外情況的緣由。假設(shè)需求前往數(shù)據(jù)給它的調(diào)用者,在完成數(shù)據(jù)加工或終了時, 該當(dāng)給它的調(diào)用者前往一個形狀碼。改良系統(tǒng)構(gòu)造的啟發(fā)式原那么.消除反復(fù)功能,改善軟件構(gòu)造完全類似:在構(gòu)造上完全類似,能夠只是在數(shù)據(jù)類型上不一致。此時可以采取完全合并的方法。部分類似:找出其一樣部分,分別出去,重新定義成一個獨立的下一層模塊。還可以與它的上級模塊合并。.R1R2XY類似部分R1R2XYR1+R2XYX+R1Y+R2R1Y+R2X不可取開關(guān)太多.模塊的作用范圍應(yīng)在控制范圍之內(nèi)模塊的控制范圍包括它本身及其一切的從屬模塊。模塊的作用范圍是指模塊內(nèi)一個斷定的作用范圍,凡是受這個斷定影響的

26、一切模塊都屬于這個斷定的作用范圍。假設(shè)一個斷定的作用范圍包含在這個斷定所在模塊的控制范圍之內(nèi),那么這種構(gòu)造是簡單的,否那么,它的構(gòu)造是不簡單的。.盡能夠減少高扇出構(gòu)造 假設(shè)一個模塊的扇出數(shù)過大,就意味著該模塊過分復(fù)雜,需求協(xié)調(diào)和控制過多的下屬模塊。該當(dāng)適當(dāng)添加中間層次的控制模塊。PPP1P2.防止或減少運用病態(tài)聯(lián)接直接病態(tài)聯(lián)接公共數(shù)據(jù)域病態(tài)聯(lián)接通訊模塊病態(tài)聯(lián)接ABcommonABTABLEITABABxxxx(a) 直接病態(tài)聯(lián)接(b) 公共數(shù)據(jù)域 病態(tài)聯(lián)接(c) 通訊模塊 病態(tài)聯(lián)接.模塊的大小要適中。設(shè)計功能可預(yù)測的模塊 一個功能可預(yù)測的模塊, 不論內(nèi)部處置細節(jié)如何,但對一樣的輸入數(shù)據(jù),總能產(chǎn)

27、生同樣的結(jié)果。但是,假設(shè)模塊內(nèi)部蘊藏有一些特殊的鮮為人知的功能時,這個模塊就能夠是不可預(yù)測的。對于這種模塊,假設(shè)調(diào)用者不小心運用,其結(jié)果將不可預(yù)測。.保管當(dāng)前標(biāo)志恢復(fù)“以前標(biāo)志標(biāo)志?標(biāo)志?功能不可預(yù)測的模塊.在過程設(shè)計階段,要決議各個模塊的實現(xiàn)算法,并準(zhǔn)確地表達這些算法。對每個模塊規(guī)定的功能以及算法的設(shè)計,給出適當(dāng)?shù)乃惴璁嫞簣D形工具:程序流程圖, N-S ,PAD, HIPO表格工具:斷定表言語工具: PDL , HIPO3.5 過程設(shè)計詳細設(shè)計.程序流程圖ABABPA1P=1A2=2An=nTSPFFSPT順序型選擇型先判別反復(fù)型后判別反復(fù)型多分支選擇型.gabfx1x4x5x6x2x3入

28、口hijcde出口流程圖例如FFFFFTTTTTswitchdo-whiledo-whilewhile-do=1=2=3.N-S 圖ABPFTABPFTAwhile-do PAdo-while PAP= 1 = 2 = nA1 A2 An順序型選擇型(1)選擇型(2)先判別反復(fù)型后判別反復(fù)型多分支選擇型.N-S圖盒圖例如do-while x6abx1TTFFx2x4f=1=2=3gido-while x5hdec while-do x6j.問題分析圖 (PAD)S1SA1A2AnPPP=1=2=nwhile PSSS1S2S2until P選擇型順序型多分支選擇型先判別反復(fù)型后判別反復(fù)型.PA

29、D例如while-do x3bfgx1ado-while x6jx4do-while x5hicdex2=1=2=3.PDL (Program Design Language)PDL是一種用于描畫功能模塊的算法設(shè)計和加工巧節(jié)的言語。稱為設(shè)計程序用言語。它是一種偽碼。偽碼的語法規(guī)那么分為“外語法和“內(nèi)語法。PDL具有嚴(yán)厲的關(guān)鍵字外語法,用于定義控制構(gòu)造和數(shù)據(jù)構(gòu)造,同時它的表示實踐操作和條件的內(nèi)語法可運用自然言語的詞匯。.例如: 拼詞檢查程序PROCEDURE spellcheckBEGIN -* split document into single words LOOP get next wor

30、d add word to word list in sortorder EXIT WHEN all words processed END LOOP -* look up words in dictionary LOOP get word from word list. IF word not in dictionary THEN -* display words not in dictionary display word prompt on user terminal IF user response says word OK THEN add word to good word lis

31、t ELSE add word to bad word list ENDIF ENDIF EXIT WHEN all words processedEND LOOP. -* create a new words dictionary dictionary :merge dictionary and good word listEND spellcheck為了區(qū)別關(guān)鍵字,規(guī)定關(guān)鍵字一概大寫,其它單詞一概小寫。內(nèi)語法運用自然言語來描畫處置特性。內(nèi)語法比較靈敏,只需寫清楚就可以,不用思索語法錯,以利于人們可把主要精神放在描畫算法的邏輯上。.斷定表決策表用于表示程序的靜態(tài)邏輯在決策表中的條件部分給出一

32、切的兩分支判別的列表,動作部分給出相應(yīng)的處置要求將程序流程圖中的多分支判別都改成兩分支判別.gabfx1x6x7x8x2x5入口hijcde出口FFFFFTTTTTswitchdo-whiledo-whilewhile-dox3x4FFFTTT無多分支判別構(gòu)造.1234567891011121314x1TTTTTFFFFFFFFFx2TTTFFFFFFx3TTFFFFx4TTFFx5TFFx6TTTFFx7TFFx8TFTFTFTFTFTFaYYYYYYYYYYYYYYbYYYYYYYYYYYYYYcYdYYeYYfYYYYYgYYhYYiYYYjYYYYYY.HIPO圖HIPO是1976年由 IBM 公司提出來的,圖既是在開發(fā)過程中的表達工具,又是開發(fā)文檔的編制工具。HIPO圖采用功能框圖和 PDL 來描畫程序邏輯,它由兩部分組成:層次圖H圖和IPO圖。層次圖給出程序的層次關(guān)系,IPO圖為程序各部分提供詳細的任務(wù)細節(jié)。.層次圖 (H圖) 闡明各個功能的隸屬關(guān)系。它是自頂向下逐層分解得到的。最高一層是整個系統(tǒng)的稱號和系統(tǒng)的概括功能

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論