全程軟件測(cè)試(七):軟件開(kāi)發(fā)流程—概要設(shè)計(jì)——讀書(shū)筆記(軟件的開(kāi)發(fā)流程和測(cè)試流程)
概要設(shè)計(jì)是軟件分析師或架構(gòu)師通過(guò)分析需求規(guī)格說(shuō)明書(shū),對(duì)軟件產(chǎn)品的結(jié)構(gòu)、邏輯進(jìn)行規(guī)劃,并給出設(shè)計(jì)說(shuō)明書(shū)的過(guò)程。
概要設(shè)計(jì)的任務(wù)
(1)系統(tǒng)分析員審查軟件計(jì)劃、軟件需求分析提供的文檔,提出候選的最佳推薦方案,提交系統(tǒng)流程圖、系統(tǒng)物理元素清單、成本效益分析、系統(tǒng)的進(jìn)度計(jì)劃,供專家審定,審定后進(jìn)入設(shè)計(jì)。
(2)確定模塊結(jié)構(gòu),劃分功能模塊,將軟件功能需求分配給所劃分的最小單元模塊。確定模塊間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫(kù)模式,確定測(cè)試方法與策略。
(3)編寫(xiě)概要設(shè)計(jì)說(shuō)明書(shū)、用戶手冊(cè)、測(cè)試計(jì)劃,選用相關(guān)的軟件工具來(lái)描述軟件結(jié)構(gòu)。結(jié)構(gòu)圖是經(jīng)常使用的軟件描述工具。
概要設(shè)計(jì)的過(guò)程
在概要設(shè)計(jì)過(guò)程中要先進(jìn)行系統(tǒng)設(shè)計(jì),復(fù)審系統(tǒng)計(jì)劃與需求分析,確定系統(tǒng)具體的實(shí)施方案;然后進(jìn)行結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)構(gòu)。一般步驟如下所示:
1.設(shè)計(jì)系統(tǒng)方案;
2.選取一組合理的方案;
3.推薦最佳實(shí)施方案;
4.功能分解;
5.軟件結(jié)構(gòu)設(shè)計(jì);
6.數(shù)據(jù)庫(kù)設(shè)計(jì)、文件結(jié)構(gòu)的設(shè)計(jì);
7.制訂測(cè)試計(jì)劃;
8.編寫(xiě)概要設(shè)計(jì)文檔;
9.審查與復(fù)審概要設(shè)計(jì)文檔。
模塊化與模塊獨(dú)立性
1.模塊化
模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮募?。模塊可以單獨(dú)被命名,而且可通過(guò)名字來(lái)訪問(wèn),例如,過(guò)程、函數(shù)、子程序、宏等都可作為模塊。
2.抽象與逐步求精
軟件工程的每一步都是對(duì)軟件解法的抽象層次的一次精化。抽象與逐步求精是緊密相關(guān)的。
3.信息隱蔽和局部化
信息隱蔽是指一個(gè)模塊將自身的內(nèi)部信息向其他模塊隱藏,以避免其他模塊不恰當(dāng)?shù)脑L問(wèn)和修改。只有那些為了完成系統(tǒng)功能不可或缺的數(shù)據(jù)交換才被允許在模塊間進(jìn)行。
4.模塊獨(dú)立性
模塊獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體子功能。它具有如下優(yōu)點(diǎn):
具有獨(dú)立模塊的軟件比較容易開(kāi)發(fā)。這是由于能夠分割功能而且接口可以簡(jiǎn)化。當(dāng)許多人分工合作開(kāi)發(fā)同一個(gè)軟件時(shí),這個(gè)優(yōu)點(diǎn)尤其重要。
獨(dú)立的模塊比較容易測(cè)試和維護(hù)。這是因?yàn)樾薷脑O(shè)計(jì)和程序的工作量相對(duì)較小,錯(cuò)誤傳播范圍小,需要擴(kuò)充功能時(shí)只需調(diào)用模塊。
模塊的獨(dú)立程度可以由耦合和內(nèi)聚兩個(gè)定性標(biāo)準(zhǔn)度量,具體如下所示。
(1)耦合
耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)各個(gè)模塊之間互連程度的度量。耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度、調(diào)用模塊的方式,以及通過(guò)接口的信息。
根據(jù)耦合程度由弱到強(qiáng),可以將耦合分為以下幾種:
非直接耦合;
數(shù)據(jù)耦合;
控制耦合;
公共環(huán)境耦合;
內(nèi)容耦合;
標(biāo)記耦合;
外部耦合。
總之,耦合是影響軟件復(fù)雜程度的一個(gè)重要因素。通常采用的原則是:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。
(2)內(nèi)聚
內(nèi)聚標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴(kuò)展。理想內(nèi)聚的模塊只做一件事情。
根據(jù)內(nèi)聚程度由低到高,可以將內(nèi)聚分為以下幾種:
偶然內(nèi)聚;
邏輯內(nèi)聚;
時(shí)間內(nèi)聚;
過(guò)程內(nèi)聚;
通信內(nèi)聚;
信息內(nèi)聚;
功能內(nèi)聚。
概要設(shè)計(jì)的原則
軟件概要設(shè)計(jì)包括規(guī)劃模塊構(gòu)成的程序結(jié)構(gòu)和輸入輸出數(shù)據(jù)結(jié)構(gòu)。其目標(biāo)是產(chǎn)生一個(gè)模塊化的程序結(jié)構(gòu),并明確模塊間的控制關(guān)系,以及定義界面、說(shuō)明程序的數(shù)據(jù),進(jìn)一步調(diào)整程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。
改進(jìn)概要設(shè)計(jì)、提高軟件質(zhì)量的原則如下:
顯著改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性;
模塊規(guī)模應(yīng)該適中;
適當(dāng)選擇深度、寬度、扇出和扇入;
模塊的作用域應(yīng)該在控制域之內(nèi);
力爭(zhēng)降低模塊接口的復(fù)雜程度;
設(shè)計(jì)單入口單出口的模塊;
模塊功能應(yīng)該可以預(yù)測(cè)。
概要設(shè)計(jì)文檔
在概要設(shè)計(jì)階段,設(shè)計(jì)人員完成的主要文檔是概要設(shè)計(jì)說(shuō)明書(shū),它主要規(guī)定軟件的結(jié)構(gòu)。概要設(shè)計(jì)說(shuō)明書(shū)的主要內(nèi)容及結(jié)構(gòu)如下:
1.引言;
2.任務(wù)概述;
3.總體設(shè)計(jì);
4.接口設(shè)計(jì);
5.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);
6.運(yùn)行設(shè)計(jì);
7.出錯(cuò)處理設(shè)計(jì);
8.安全保密設(shè)計(jì);
9.維護(hù)設(shè)計(jì)。