版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件設(shè)計(jì)綜述報(bào)告軟件設(shè)計(jì)包括一套原理、概念和實(shí)踐。明確軟件設(shè)計(jì)目標(biāo)是軟件設(shè)計(jì)的第一步。軟件設(shè)計(jì)目標(biāo)明確了最終的軟件系統(tǒng)應(yīng)該擁有的質(zhì)量屬性。軟件設(shè)計(jì)的目標(biāo)涉及性能、可靠性、成本、維護(hù)等多個(gè)方面的目標(biāo)。1.1軟件設(shè)計(jì)的目標(biāo) 軟件設(shè)計(jì)的目標(biāo)應(yīng)從用戶那里得到,確定了軟件最終應(yīng)擁有的功能。可以從需求規(guī)格說(shuō)明書中選擇重要的質(zhì)量屬性,作為設(shè)計(jì)目標(biāo),如性能目標(biāo)、可靠目標(biāo)等。而成本和維護(hù)方面往往從客戶和供應(yīng)商那里得到。1.1.1性能準(zhǔn)則 性能準(zhǔn)則包括對(duì)系統(tǒng)速度和空間的需求。系統(tǒng)應(yīng)該是能夠發(fā)現(xiàn)請(qǐng)求并及時(shí)響應(yīng)這些請(qǐng)求。1.1.2可靠性準(zhǔn)則 可靠性準(zhǔn)則決定了對(duì)減少系統(tǒng)崩潰以及隨后所造成危害所做的努力程度。1.1.3成
2、本準(zhǔn)則 成本準(zhǔn)則包括開發(fā)、配置和管理系統(tǒng)的成本。當(dāng)新系統(tǒng)更新舊系統(tǒng)時(shí),應(yīng)該考慮確保向后兼容,或減少新系統(tǒng)移植的開銷,同時(shí)需要考慮在多種不同成本之間做出權(quán)衡。1.1.4維護(hù)準(zhǔn)則 維護(hù)準(zhǔn)則確定在開發(fā)完成后再改變系統(tǒng)的困難程度。這些準(zhǔn)則很難進(jìn)行優(yōu)化和事先規(guī)劃,因?yàn)楹苌倌軌蚯逦慕o出項(xiàng)目成功的程度和系統(tǒng)的可操作的時(shí)間周期。1.1.5最終用戶準(zhǔn)則 最終用戶準(zhǔn)則包括從用戶的視點(diǎn)出發(fā)所需的屬性,但并沒(méi)有覆蓋性能準(zhǔn)則和可靠性準(zhǔn)則。1.2軟件設(shè)計(jì)的任務(wù) 軟件設(shè)計(jì)的主要任務(wù)是要解決如何做的問(wèn)題,要在需求分析的基礎(chǔ)上,建立各種設(shè)計(jì)模型,并通過(guò)對(duì)設(shè)計(jì)模型的分析和評(píng)估,確定模型是否滿足需求。軟件設(shè)計(jì)是將用戶需求準(zhǔn)確的轉(zhuǎn)
3、化成為最終的軟件產(chǎn)品的唯一途徑,在需求到構(gòu)造之間起到了橋梁作用。1.2.1軟件設(shè)計(jì)的階段和任務(wù) 從工程管理的角度將軟件設(shè)計(jì)分為兩個(gè)階段:概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。從技術(shù)的角度,采用的方法不同,設(shè)計(jì)的內(nèi)容也會(huì)有所不同。傳統(tǒng)的結(jié)構(gòu)化的方法將軟件設(shè)計(jì)劃分為體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)和過(guò)程設(shè)計(jì)。(1) 體系結(jié)構(gòu)設(shè)計(jì):體系結(jié)構(gòu)設(shè)計(jì)定義軟件的主要結(jié)構(gòu)元素及其之間的關(guān)系。體系結(jié)構(gòu)設(shè)計(jì)表可以從系統(tǒng)規(guī)格說(shuō)明、分析模型及體系結(jié)構(gòu)的風(fēng)格導(dǎo)出。(2) 類設(shè)計(jì):類設(shè)計(jì)對(duì)分析階段所建立的分析類模型進(jìn)行細(xì)化,轉(zhuǎn)化為設(shè)計(jì)類的實(shí)現(xiàn)及軟件實(shí)現(xiàn)所要求的數(shù)據(jù)結(jié)構(gòu)。(3) 數(shù)據(jù)設(shè)計(jì):傳統(tǒng)方法主要根據(jù)需求階段所建立的實(shí)體-關(guān)系圖
4、來(lái)確定軟件設(shè)計(jì)的文件系統(tǒng)的結(jié)構(gòu)及數(shù)據(jù)庫(kù)的表結(jié)構(gòu)。(4) 接口設(shè)計(jì):接口設(shè)計(jì)描述用戶界面,軟件和其他硬件設(shè)備、其他軟件系統(tǒng)及使用人員的外部接口。(5) 構(gòu)件級(jí)設(shè)計(jì):構(gòu)件級(jí)設(shè)計(jì)將軟件體系結(jié)構(gòu)的結(jié)構(gòu)元素變換為對(duì)軟件構(gòu)件的過(guò)程性的描述。接口設(shè)計(jì)類設(shè)計(jì)(00方法)詳細(xì)設(shè)計(jì)過(guò)程設(shè)計(jì)(傳統(tǒng)方法)構(gòu)件級(jí)設(shè)計(jì)(000方法)需要設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)管理觀點(diǎn)技術(shù)觀點(diǎn)圖1 從技術(shù)和管理的角度看設(shè)計(jì)的關(guān)系(6) 過(guò)程設(shè)計(jì):過(guò)程設(shè)計(jì)的主要工作是確定軟件各個(gè)組成部分內(nèi)的算法及內(nèi)部數(shù)據(jù)結(jié)構(gòu),并選定某種過(guò)程的表達(dá)式來(lái)描述各種算法。1.2.2結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的關(guān)系 軟件設(shè)計(jì)必須依據(jù)對(duì)軟件的需求來(lái)進(jìn)行,結(jié)構(gòu)化分析的結(jié)果為
5、結(jié)構(gòu)化設(shè)計(jì)提供了最基本的輸入信息。(1)研究、分析和審查數(shù)據(jù)流圖。根據(jù)穿越系統(tǒng)邊界的信息流初步確定系統(tǒng)與外部接口。(2)根據(jù)數(shù)據(jù)流圖決定問(wèn)題的類型。數(shù)據(jù)處理問(wèn)題通常有兩種類型:變換型和事務(wù)型。針對(duì)兩種不同的類型分別進(jìn)行分析處理。(3)由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖。(4)利用一些啟發(fā)式原則來(lái)改進(jìn)系統(tǒng)的初始結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。(5)根據(jù)分析模型中的實(shí)體關(guān)系圖和數(shù)據(jù)字典進(jìn)行數(shù)據(jù)設(shè)計(jì),包括數(shù)據(jù)庫(kù)設(shè)計(jì)或數(shù)據(jù)文件的設(shè)計(jì)。(6)在設(shè)計(jì)的基礎(chǔ)上,依舊分析模型中的加工規(guī)格說(shuō)明、狀態(tài)轉(zhuǎn)換圖進(jìn)行過(guò)程設(shè)計(jì)。(7)制定測(cè)試計(jì)劃。結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的關(guān)系如圖。左面是結(jié)構(gòu)化分析階段所建立的分析模版
6、,右面為建立的設(shè)計(jì)模型。圖2 結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析關(guān)系實(shí)體- 數(shù)據(jù)關(guān)系圖 流圖 數(shù)據(jù)字典狀態(tài)-遷移圖控制規(guī)格說(shuō)明加工規(guī)格說(shuō)明數(shù)據(jù)對(duì)象描述體系結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)過(guò)程設(shè)計(jì)1.3模塊結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu) 軟件的結(jié)構(gòu)包括兩部分,一部分為軟件的模塊結(jié)構(gòu),另一部分為軟件的數(shù)據(jù)結(jié)構(gòu)。雖然這兩部分是有密切聯(lián)系的。但是在傳統(tǒng)方法中,這兩部分的設(shè)計(jì)是分開進(jìn)行的。1.3.1模塊結(jié)構(gòu)表示 一般通過(guò)功能劃分過(guò)程來(lái)完成軟件結(jié)構(gòu)設(shè)計(jì)。功能劃分過(guò)程從需求分析確立的目標(biāo)系統(tǒng)的模型出發(fā),對(duì)整個(gè)問(wèn)題進(jìn)行分割,使其每一部分用一個(gè)或幾個(gè)軟件模塊加以解決。一個(gè)軟件系統(tǒng)通常由很多模塊組成,結(jié)構(gòu)化程序設(shè)計(jì)的函數(shù)和子程序都可稱為模塊。它是程
7、序語(yǔ)句按邏輯關(guān)系建立起來(lái)的組合體。對(duì)于大的模塊,一般還可以繼續(xù)分為功能獨(dú)立的較小模塊,將不能再分解的模塊稱為原子模塊。通常,可以按照在軟件系統(tǒng)中的功能將模塊分為四種類型。(1) 傳入模塊:傳入模塊的功能是取得數(shù)據(jù)或輸入數(shù)據(jù),經(jīng)過(guò)某些處理,再將其傳送給其他模塊。(2) 傳出模塊:傳出模塊的功能是輸出數(shù)據(jù),在輸出之前可能進(jìn)行某些處理,數(shù)據(jù)可能被輸出到系統(tǒng)的外部,也可能會(huì)輸出到其他模塊進(jìn)行進(jìn)一步的處理,但最終的目標(biāo)是輸出到系統(tǒng)的外部。(3) 變換模塊:也叫加工模塊,從上級(jí)調(diào)用模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其他形式,再將加工結(jié)果返回給調(diào)用模塊。(4) 協(xié)調(diào)模塊:協(xié)調(diào)模塊本身一般不對(duì)數(shù)據(jù)進(jìn)行加工,
8、如數(shù)據(jù)X和Y,其主要功能是通過(guò)調(diào)用、協(xié)調(diào)和管理其他模塊來(lái)完成特定的功能,如結(jié)構(gòu)化程序設(shè)計(jì)中的主程序。1.3.2模塊結(jié)構(gòu)模塊結(jié)構(gòu)表明了程序各個(gè)部件的組織情況,通常是樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。是軟件的過(guò)程的表示,并沒(méi)有表明軟件的某些過(guò)程性特征。(1) 樹狀結(jié)構(gòu)。位于最上層的的根部是頂層模塊,他是程序的主模版。與其聯(lián)系的有若干下屬模塊,各下屬模塊還可以進(jìn)一步引出更下一層的下屬模塊。由下圖可知,樹狀結(jié)構(gòu)的特點(diǎn)是:整個(gè)結(jié)構(gòu)只有一個(gè)頂層模塊,上層模塊調(diào)用下層模塊,同一層模塊之間不可相互調(diào)用。(2) 網(wǎng)狀結(jié)構(gòu)。網(wǎng)狀結(jié)構(gòu)中,任意的兩個(gè)模塊間都可以有調(diào)用關(guān)系。不存在上下級(jí)模塊關(guān)系,分不出層次;任何兩個(gè)模塊都是平等的,
9、沒(méi)有從屬關(guān)系。ADCBHIGABCEFD圖4網(wǎng)狀結(jié)構(gòu)圖3樹狀結(jié)構(gòu)1.3.3結(jié)構(gòu)圖結(jié)構(gòu)圖是精確表達(dá)模塊結(jié)構(gòu)的圖形標(biāo)識(shí)工具,可以清楚的反映軟件模塊之間的層次調(diào)用關(guān)系和聯(lián)系。嚴(yán)格定義了各個(gè)模塊的名字、功能和接口,集中反映了設(shè)計(jì)思想。(1) 模塊的調(diào)用關(guān)系接口:在結(jié)構(gòu)圖中,兩個(gè)模塊之間用單向箭頭連接。箭頭從調(diào)用模塊指向被調(diào)用模塊,表示調(diào)用模塊調(diào)用了被調(diào)用模塊。被調(diào)用模塊執(zhí)行完成后,控制又返回到調(diào)用模塊。(2) 模塊間的信息傳遞:當(dāng)一個(gè)模塊調(diào)用另一個(gè)模塊時(shí),調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運(yùn)行。而被調(diào)用模塊在執(zhí)行過(guò)程中又把它產(chǎn)生的數(shù)據(jù)或控制信息送給調(diào)用模塊。為了表示在模塊之間
10、傳遞的數(shù)據(jù)或控制信息,在連接模塊的箭頭旁邊給出短箭頭,并且用尾端帶有空心園的短箭頭表示數(shù)據(jù)信息,用尾端帶有實(shí)心園的短箭頭表示控制信息。(3) 兩個(gè)輔助符號(hào):如圖所示,當(dāng)模塊A有條件的調(diào)用另一個(gè)模塊B時(shí),在模塊A的箭頭尾部標(biāo)以一個(gè)菱形符號(hào);當(dāng)一個(gè)模塊A反復(fù)的調(diào)用模塊C和模塊D時(shí),在調(diào)用箭頭尾部則標(biāo)一個(gè)菱形符號(hào)。ABCD圖5 條件調(diào)用和循環(huán)調(diào)用的表示(4) 結(jié)構(gòu)圖的狀態(tài)特征。圖所表示的是一個(gè)軟件系統(tǒng)的分層模塊結(jié)構(gòu)圖。上級(jí)模塊調(diào)用下級(jí)模塊,他們之間存在著主從關(guān)系,同一層模塊之間并沒(méi)有這種主從關(guān)系。模塊間的連線:模塊之間的調(diào)用箭頭也可用沒(méi)有箭頭方向的直線表示,在用直線表示時(shí),用模塊所處的位置表示他們之
11、間的調(diào)用關(guān)系,位于上面的模塊調(diào)用位于下面的模塊。結(jié)構(gòu)圖的深度:在多層次的結(jié)構(gòu)圖中,模塊結(jié)構(gòu)的層次數(shù)稱為結(jié)構(gòu)圖的深度。結(jié)構(gòu)圖的深度在一定程度上反映了程序結(jié)構(gòu)的規(guī)模和復(fù)雜程度。結(jié)構(gòu)圖的寬度:結(jié)構(gòu)圖中同一層模塊的最大模塊數(shù)稱為結(jié)構(gòu)圖的寬度。模塊的扇入和扇出:扇出表示一個(gè)模塊直接調(diào)用的下屬模塊數(shù)目,扇入則定義為調(diào)用一個(gè)給定的模塊的調(diào)用模塊的數(shù)目。1.3.4數(shù)據(jù)結(jié)構(gòu)的表示數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的各個(gè)元素之間的邏輯關(guān)系的一種表示。數(shù)據(jù)與程序是密不可分的,實(shí)現(xiàn)相同的功能,采用的數(shù)據(jù)結(jié)構(gòu)不同,底層的算法也不相同。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)應(yīng)先確定數(shù)據(jù)的組織、存取方式、相關(guān)程度,以及信息的不同處理方法,典型的數(shù)據(jù)結(jié)構(gòu)種類是有限的。所
12、謂的標(biāo)量項(xiàng)就是單個(gè)的數(shù)據(jù)元素,如一個(gè)布爾量、整數(shù)、實(shí)數(shù)或一個(gè)字符串,可以通過(guò)名字對(duì)他們進(jìn)行存取?;緮?shù)據(jù)結(jié)構(gòu)可以構(gòu)成其他數(shù)據(jù)結(jié)構(gòu)可以用包含標(biāo)量項(xiàng)、向量或N維空間的多重鏈表來(lái)建立分層樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu),并實(shí)現(xiàn)多種集合的存儲(chǔ)。1.4創(chuàng)建良好的設(shè)計(jì)的原則1.4.1分而治之和模塊化 分而治之就是將大型復(fù)雜的問(wèn)題分解為許多容易解決的小問(wèn)題。模塊化是將整體軟件劃分成獨(dú)立訪問(wèn)的模塊,不同的模塊通常是具有不同功能或職責(zé)。每個(gè)模塊可以獨(dú)立的開發(fā)、測(cè)試,最后組裝成完整的軟件。一個(gè)模塊的規(guī)模應(yīng)該由它的功能和用途決定,并不是分解的越小越好。存在一個(gè)模塊個(gè)數(shù)M,使得開發(fā)成本達(dá)到最小。M總的軟件成本連接成本最小成本范圍成
13、本/模塊模塊個(gè)數(shù)模塊數(shù)圖6 模塊大小、模塊數(shù)目與成本的關(guān)系1.4.2 模塊獨(dú)立性 模塊獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體子功能,而和軟件系統(tǒng)中其他的模塊接口都是簡(jiǎn)單的。一般采用兩個(gè)準(zhǔn)則度量模塊的獨(dú)立性,即模塊間的耦合和模塊的內(nèi)聚。 耦合是模塊間的相對(duì)獨(dú)立性的度量,模塊之間連接的越緊密,聯(lián)系越多,耦合性就越高,而模塊獨(dú)立性就越弱。內(nèi)聚是模塊功能強(qiáng)度的度量。一個(gè)模塊內(nèi)部各個(gè)元素之間的聯(lián)系越緊密,它的內(nèi)聚性就越高,相對(duì)的,其他模塊之間的耦合性就會(huì)降低。因此,模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)該是高度內(nèi)聚、松散耦合的模塊。1. 松散耦合耦合性是程序結(jié)構(gòu)中各個(gè)模塊之間相互關(guān)聯(lián)的度量。取決于各個(gè)模塊之
14、間的接口復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過(guò)接口。(1) 非直接耦合。兩個(gè)模塊之間沒(méi)有直接關(guān)系,他們之間的聯(lián)系完全是通過(guò)主模塊的控制和調(diào)用來(lái)實(shí)現(xiàn)的。模塊之間的獨(dú)立性最強(qiáng)(2) 數(shù)據(jù)耦合。一個(gè)模塊訪問(wèn)里一個(gè)模塊時(shí),彼此之間是通過(guò)數(shù)據(jù)參數(shù)來(lái)交換輸入、輸出信息的。(3) 標(biāo)記耦合。如果一組模塊通過(guò)參數(shù)表達(dá)傳遞記錄信息,就是標(biāo)記耦合。(4) 控制耦合。一個(gè)模塊通過(guò)傳送開關(guān),標(biāo)志,名字等控制信息,明顯的控制選擇另一個(gè)模塊的功能。(5) 外部耦合。一組模塊都訪問(wèn)同意全局變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過(guò)參數(shù)表傳遞該全局變量的信息。(6) 公共耦合。一組模塊都訪問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境。(7) 內(nèi)容耦
15、合。一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)。一個(gè)模塊不通過(guò)正常入口轉(zhuǎn)到另一模塊內(nèi)部。兩個(gè)模塊有一部分代碼重疊。一個(gè)模塊有多個(gè)入口。2高度內(nèi)聚 一個(gè)內(nèi)聚程度高的模塊應(yīng)當(dāng)只完成軟件過(guò)程中的一個(gè)單一的任務(wù),而不與程序其他的部分進(jìn)程發(fā)生關(guān)系。(1) 巧合內(nèi)聚。模塊內(nèi)各部分之間沒(méi)有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散。(2) 邏輯內(nèi)聚。模塊把幾種相關(guān)功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的判定參數(shù)來(lái)確定該模塊應(yīng)該執(zhí)行哪一種功能。(3) 時(shí)間內(nèi)聚。模塊為多功能模塊,各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。(4) 過(guò)程內(nèi)聚。一個(gè)模塊內(nèi)的處理是相關(guān)的,必須以特定程序執(zhí)行。(5)
16、通信內(nèi)聚。一個(gè)模塊內(nèi)各功能部分都使用了相同的數(shù)據(jù),或產(chǎn)生了相同數(shù)據(jù)。(6) 信息內(nèi)聚。模塊完成多個(gè)功能,各個(gè)功能都在同一個(gè)數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能都有一個(gè)唯一的入口點(diǎn)。(7) 功能內(nèi)聚。一個(gè)模塊中各個(gè)部分都是完成某一種具體功能必不可缺少的組成部分。1.4.3提高抽象層次 抽象是指忽視一個(gè)主題與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便充分的注意與當(dāng)前目標(biāo)相關(guān)的方面。設(shè)計(jì)軟件時(shí),設(shè)計(jì)開始時(shí)應(yīng)該盡量提高軟件的抽象層次。按抽象級(jí)別由高到低進(jìn)行軟件設(shè)計(jì)。1.4.4復(fù)用性設(shè)計(jì) 復(fù)用是指同一實(shí)體不做修改或者稍加修改就可以多次重復(fù)使用,將復(fù)用的思想用于軟件開發(fā)。復(fù)用的范圍包括軟件開發(fā)的各個(gè)階段,包括需求模型和規(guī)格說(shuō)明、
17、設(shè)計(jì)模型、文檔、測(cè)試用例的復(fù)用。1.4.5靈活性設(shè)計(jì) 保證軟件靈活性的關(guān)鍵是抽象。在設(shè)計(jì)中引入靈活性的方法如下。(1) 降低耦合并提高內(nèi)聚。易于提高替換能力。(2) 建立抽象。創(chuàng)建有多態(tài)操作的接口和父類。(3) 不要將代碼寫死。消除代碼中的常數(shù)。(4) 拋出異常。由操作的調(diào)用者處理異常。(5) 使用并創(chuàng)建可復(fù)用的代碼。1.4.6預(yù)防過(guò)期 預(yù)防過(guò)期的規(guī)則如下。(1) 避免使用早期發(fā)布技術(shù)。(2) 避免使用針對(duì)特定環(huán)境的軟件庫(kù)。(3) 避免使用軟件庫(kù)中文檔不全或很少使用的功能。(4) 避免使用小公司提供的可復(fù)用構(gòu)件和特殊硬件。(5) 使用眾多廠商支持的標(biāo)準(zhǔn)語(yǔ)言和技術(shù)。1.4.7可測(cè)試性設(shè)計(jì) 進(jìn)行可
18、測(cè)試性設(shè)計(jì)時(shí),堅(jiān)持以下原則。(1) 堅(jiān)持測(cè)試驅(qū)動(dòng)設(shè)計(jì)的方法。(2) 函數(shù)小型化。盡量做到一個(gè)函數(shù)一個(gè)操作。(3) 數(shù)據(jù)的顯示與控制分離,使修改程序功能而不影響視圖變得容易。1.5面向數(shù)據(jù)流的設(shè)計(jì)方法 面向數(shù)據(jù)流的設(shè)計(jì)方法也稱為過(guò)程驅(qū)動(dòng)的設(shè)計(jì)方法,與軟件需求分析階段的結(jié)構(gòu)化分析方法相銜接,可以與編碼階段的“結(jié)構(gòu)化程序設(shè)計(jì)方法”相適應(yīng),成為常用的結(jié)構(gòu)化設(shè)計(jì)方法。1.5.1設(shè)計(jì)過(guò)程(1)復(fù)查并精化數(shù)據(jù)流圖。對(duì)需求分析階段得出的數(shù)據(jù)流圖進(jìn)行認(rèn)真復(fù)查,并在必要時(shí)精化。(2)確定數(shù)據(jù)流圖中數(shù)據(jù)流的類型。(3)導(dǎo)出初始的軟件結(jié)構(gòu)圖。根據(jù)數(shù)據(jù)流類型,應(yīng)用變換型映射方法或事務(wù)型映射方法得到初始的軟件結(jié)構(gòu)圖。(4
19、)逐級(jí)分解。需要進(jìn)行一級(jí)分解和二級(jí)分解。(5)精化軟件結(jié)構(gòu)。使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)得到軟件結(jié)構(gòu)進(jìn)一步精化。(6)導(dǎo)出接口描述和全局?jǐn)?shù)據(jù)結(jié)構(gòu)。對(duì)每一個(gè)模塊,給出進(jìn)出該模塊的信息,即該模塊的接口描述。詳細(xì)設(shè)計(jì)復(fù)讀用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全局?jǐn)?shù)據(jù)結(jié)構(gòu)區(qū)分事務(wù)中心和數(shù)據(jù)接收通路區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)映射成變換結(jié)構(gòu)精化數(shù)據(jù)流圖數(shù)據(jù)流類型圖7 基于數(shù)據(jù)流方法的設(shè)計(jì)過(guò)程1.5.2典型的數(shù)據(jù)流類型和系統(tǒng)結(jié)構(gòu) 典型的數(shù)據(jù)流類型有變換型數(shù)據(jù)流和事務(wù)型數(shù)據(jù)流,數(shù)據(jù)流的類型不同,得到的系統(tǒng)結(jié)構(gòu)也不同。1. 變換型數(shù)據(jù)流與交換型系統(tǒng)結(jié)構(gòu)圖取得CC變換成D取得AA變換成B取得BB變換成CD
20、變換成E給出EDC主模塊給出DCDD圖8 變換型的系統(tǒng)結(jié)構(gòu)圖2事務(wù)型數(shù)據(jù)流與事務(wù)型系統(tǒng)結(jié)構(gòu)圖結(jié)果結(jié)果作業(yè)作業(yè)已分析的作業(yè)內(nèi)部表示的作業(yè)事務(wù)中心輸入已分析的作業(yè)輸出結(jié)果調(diào) 度讀入作業(yè)分析作業(yè)事務(wù)1事務(wù)2事務(wù)3操作1操作2操作3操作4操作5圖8 事務(wù)性系統(tǒng)結(jié)構(gòu)圖1.5.3變換型映射方法 變換型映射方法是一系列設(shè)計(jì)步驟的總稱,將具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。先運(yùn)用變換型映射方法建立初始的變換型系統(tǒng)結(jié)構(gòu)圖,然后對(duì)他做進(jìn)一步改進(jìn),最后得到系統(tǒng)的最終結(jié)構(gòu)圖。 變換分析方法分為四步組成:重畫數(shù)據(jù)流圖;區(qū)分有效輸入,有效輸出和中心變換部分;進(jìn)行一級(jí)分解,設(shè)計(jì)上層模版;進(jìn)行二級(jí)分解,設(shè)
21、計(jì)輸入,輸出和中心變換部分的中、下層模版。1.5.4事務(wù)型映射方法 一種數(shù)據(jù)流可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。事務(wù)分析方法的步驟如下。(1) 識(shí)別事務(wù)源。從問(wèn)題定義和需求分析的結(jié)果中,找出各種需要處理的事務(wù)。(2) 規(guī)定適當(dāng)?shù)氖聞?wù)型結(jié)構(gòu)。在確定了該數(shù)據(jù)流圖具有事務(wù)型特征之后,根據(jù)模塊化分理論,建立適當(dāng)?shù)氖聞?wù)型結(jié)構(gòu)。(3) 識(shí)別各種事務(wù)和它們定義的操作。(4) 注意利用公共模塊。如果不同事務(wù)的一些中間模塊可由具有累死的語(yǔ)法和語(yǔ)義的若干個(gè)低層模塊組成,可以把這些模塊構(gòu)造成低級(jí)模塊。(5) 對(duì)每一事務(wù),或?qū)β?lián)系密切的一組事務(wù)處理模塊。(6) 對(duì)事務(wù)處理
22、模塊規(guī)定他們?nèi)康南聦硬僮髂K。(7) 對(duì)操作模塊規(guī)定他們的全部操作細(xì)節(jié)。對(duì)于大型系統(tǒng)的復(fù)雜事務(wù)處理,可能有若干層細(xì)模塊。1.5.5軟件模塊結(jié)構(gòu)的改進(jìn)方法(1)模塊功能的完善化。一個(gè)完整的功能模塊,不僅能夠完成指定的功能,而且還能告訴使用者完成任務(wù)的狀態(tài),以及不能完成的原因。(2)消除重復(fù)功能,改善軟件結(jié)構(gòu)。如果發(fā)現(xiàn)幾個(gè)模塊的功能之間有相似之處,可以加以改進(jìn)。(3)模塊的作用范圍應(yīng)在控制范圍之內(nèi)。模塊的控制范圍包括它本身及其所有的從屬模塊。(4)盡可能的減少高扇出結(jié)構(gòu),隨著深度增大扇入。(5)避免或減少使用病態(tài)連接,限制使用直接病態(tài)連接。公共數(shù)據(jù)域病態(tài)連接。通信模塊連接。為了避免病態(tài)連接,防止內(nèi)容耦合,設(shè)計(jì)應(yīng)盡量達(dá)到單入口和單出口,便于閱讀程序、理解程序,并且不易出錯(cuò)。(6)模塊的大小要適中。1.6接口設(shè)計(jì)1.6.1接口設(shè)計(jì)概述 接口設(shè)計(jì)的依據(jù)是數(shù)據(jù)流圖中的自動(dòng)化系統(tǒng)邊界。自動(dòng)化系統(tǒng)邊界將數(shù)據(jù)流圖中的處理劃分為手工處理部分和系統(tǒng)處理部分,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)簽約帶貨主播產(chǎn)品試用與評(píng)測(cè)合同3篇
- 2025年度教育科技公司干股分紅與在線教育合作協(xié)議3篇
- 2025年企業(yè)法人變更合同審查與員工權(quán)益保障協(xié)議3篇
- 2025年度金融資產(chǎn)重組收購(gòu)協(xié)議3篇
- 2025年度公對(duì)公交易合同模板:金融衍生品交易合作協(xié)議2篇
- 二零二五年度教育培訓(xùn)機(jī)構(gòu)教師職務(wù)聘任與教育教學(xué)改革合同3篇
- 2025年度會(huì)展兼職工作人員勞務(wù)合同樣本3篇
- 二零二五年度軍事訓(xùn)練基地保密協(xié)議及設(shè)施管理合同2篇
- 二零二五年度物流行業(yè)創(chuàng)新技術(shù)研究承包合同3篇
- 二零二五年度內(nèi)墻膩?zhàn)邮┕づc室內(nèi)環(huán)境檢測(cè)及優(yōu)化合同3篇
- 石油英語(yǔ)詞匯
- 《夜宿山寺》-完整版課件
- 滬教牛津版八年級(jí)上冊(cè)初二英語(yǔ)期末測(cè)試卷(5套)
- 北京市海淀區(qū)2020-2021學(xué)年度第一學(xué)期期末初三物理檢測(cè)試卷及答案
- 《潔凈工程項(xiàng)目定額》(征求意見(jiàn)稿)
- 家庭室內(nèi)裝飾裝修工程保修單
- 小學(xué)語(yǔ)文課堂提問(wèn)有效性策略研究方案
- 物業(yè)上門維修收費(fèi)標(biāo)準(zhǔn)
- ATS技術(shù)交流(新型發(fā)動(dòng)機(jī)智能恒溫節(jié)能冷卻系統(tǒng))100318
- 手術(shù)區(qū)皮膚的消毒和鋪巾ppt課件
- 2022年度培訓(xùn)工作總結(jié)
評(píng)論
0/150
提交評(píng)論