版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
(建筑工程管理)軟件工程
筆記整理
2020年4月
多年的企業(yè)咨詢顧問經(jīng)驗(yàn),經(jīng)過實(shí)戰(zhàn)險(xiǎn)證可以落地執(zhí)行的卓越管理方案,值得您下載擁有!
軟件工程概論
1、軟件危機(jī)
11軟件工程的目的:倡導(dǎo)以工程的原理、原則和方法進(jìn)行軟件開發(fā),以解決當(dāng)時(shí)出現(xiàn)的軟
件危機(jī)。
21軟件危機(jī):指在計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中所遇到的一系列問題。
A、如何開發(fā)軟件以滿足對(duì)軟件日益增長的需求。
B、如何維護(hù)數(shù)量不斷增長的已有軟件。
3I軟件危機(jī)的主要表現(xiàn)形式
A、軟件開發(fā)成本高,研制進(jìn)度無法準(zhǔn)確估計(jì),用戶不滿意。
B、軟件產(chǎn)品的可靠性得不到保證。
C、軟件產(chǎn)品難以維護(hù)。
D、軟件發(fā)展跟不上硬件的發(fā)展和用戶的要求,硬件成本逐年下降,軟件成本越來越昂貴。
2、軟件工程概念
11軟件:計(jì)算機(jī)系統(tǒng)中的程序及其文檔。程序是計(jì)算任務(wù)的處理對(duì)象和處理規(guī)則的描述;
文檔是為了便于理解程序所需的闡明性資料。細(xì)言之,軟件有三層含義:
A、個(gè)體含義:即指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。
B、整體含義:即指在特定計(jì)算機(jī)系統(tǒng)中所有上述個(gè)體含義下的軟件的總稱。
C、學(xué)科含義:即指在研究、開發(fā)、維護(hù)以及使用前述含義下的軟件所涉及的理論、方法、
技術(shù)所構(gòu)成的學(xué)科。21工程:將理論和所學(xué)的知識(shí)應(yīng)用于實(shí)踐的科學(xué)。
3X軟件工程:應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。它借鑒傳統(tǒng)工
程的原則、方法,以提高質(zhì)量,降低成本為目的。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)造模型與
算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、
質(zhì)量、成本等管理。
3、軟件工程框架(參見附圖軟件工程框架示意圖)
1X軟件工程目標(biāo):生產(chǎn)具有正確性、可用性和開銷合宜的產(chǎn)品。
A、正確性:是指軟件產(chǎn)品達(dá)到預(yù)期功能的程度。
B、可用性:是指軟件基本結(jié)構(gòu)、實(shí)現(xiàn)以及文檔為用戶可用的程度。
C、開銷合宜:是指軟件開發(fā)、運(yùn)行的整個(gè)開銷滿足用戶要求的程度。
21軟件開發(fā)活動(dòng):生產(chǎn)一個(gè)最終滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的活動(dòng)。軟件
開發(fā)的基本活動(dòng)包括:需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)、和支持。
A、需求:就是定義問題。
B、設(shè)計(jì):在需求的基礎(chǔ)上,給出被建系統(tǒng)的軟件設(shè)計(jì)方案。
C、實(shí)現(xiàn):在軟件設(shè)計(jì)的基礎(chǔ)上,編碼被建系統(tǒng)軟件體系結(jié)構(gòu)中的每一模塊或構(gòu)件。
D、確認(rèn):需求復(fù)審、設(shè)計(jì)復(fù)審及程序測(cè)試。
E、支持:為系統(tǒng)的運(yùn)行提供糾錯(cuò)性維護(hù)和完善性維護(hù)。
3\軟件工程原則:圍繞軟件開發(fā),提出了以下基本原則。
A、選取適宜的開發(fā)范型:在系統(tǒng)設(shè)計(jì)中,經(jīng)常需要權(quán)衡軟件需求、硬件需求以及其它因素
之間的相互制約和影響,適應(yīng)需求的易變性。選用適宜的開發(fā)范型,以保證軟件開發(fā)的可持
續(xù)性,并使最終的軟件產(chǎn)品滿足客戶的要求。
B、采用好的設(shè)計(jì)方法:在軟件設(shè)計(jì)中,通常需要考慮軟件的模塊化、信息隱蔽、局部化、
一致性以及適應(yīng)性等問題。采用合適的設(shè)計(jì)方法,支持這些問題的解決和實(shí)現(xiàn)。
C、提供高質(zhì)量的工程支持:如其它工程一樣,需要提供高質(zhì)量的工程支持,例如配置管理、
質(zhì)量保證等,才能按期交付高質(zhì)量的軟件產(chǎn)品。
D、有效的軟件工程管理:軟件工程的管理,直接影響可用資源的有效利用,提高軟件組織
的生產(chǎn)能力。僅當(dāng)對(duì)軟件過程實(shí)施有效管理時(shí),才能實(shí)現(xiàn)有效的軟件工程。
4X軟件工程學(xué)科研究的內(nèi)容:軟件開發(fā)模型、軟件開發(fā)方法、軟件過程、軟件工具、軟件
開發(fā)環(huán)境、計(jì)算機(jī)輔助軟件工程以及軟件經(jīng)濟(jì)學(xué)等。
51軟件開發(fā)方法學(xué):是一種已定義好的技術(shù)集和符號(hào)表示習(xí)慣,來組織軟件開發(fā)的過程,
一般表示為一系列步驟,包括結(jié)構(gòu)化方法、面向?qū)ο蠓椒?、Jackson方法、Warnier方法、
PAM方法、可視化方法等。
軟件開發(fā)模型
1、軟件開發(fā)模型:軟件開發(fā)全部過程、活動(dòng)、任務(wù)的結(jié)構(gòu)框架。
2、軟件生存周期:軟件產(chǎn)品從定義開始,經(jīng)過開發(fā)、使用和維護(hù),直到最后被淘汰的整個(gè)
過程。
3、軟件過程:是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各
項(xiàng)任務(wù)的工作步驟。
4、瀑布模型(參見瀑布模型示意圖)
1\概述:將軟件生存周期的各項(xiàng)活動(dòng)規(guī)定為依固定順序連接的若干階段工作,形如瀑布流
水,最終得到軟件產(chǎn)品,是一種線性模型。
2X各階段活動(dòng):提出系統(tǒng)需求、提出軟件需求、需求分析、設(shè)計(jì)、編碼、測(cè)試和運(yùn)行。
3X每一階段的特征
A、從上一階段接受本階段工作的對(duì)象,作為輸入。
B、對(duì)上述輸入實(shí)施本階段的活動(dòng)。
C、給出本階段的工作成果,作為輸出傳入下一階段。
D、對(duì)本階段工作進(jìn)行評(píng)審,若本階段工作得到確認(rèn),則繼續(xù)下階段工作;否則返回前一階
段,甚至更前階段。
4X優(yōu)缺點(diǎn)
A、優(yōu)點(diǎn):在支持結(jié)構(gòu)化軟件開發(fā)、控制軟件開發(fā)的復(fù)雜性、促進(jìn)軟件開發(fā)工程化等方面起
著顯著作用。
B、缺點(diǎn):缺乏靈活性,無法通過開發(fā)活動(dòng)澄清本來不夠確切的軟件需求。
5、演化模型(參見演化模型示意圖)
1)概述:演化模型主要針對(duì)事先不能完整定義需求的軟件開發(fā)。
2X開發(fā)過程:首先開發(fā)核心系統(tǒng),當(dāng)核心系統(tǒng)投入運(yùn)行后,開發(fā)人員根據(jù)用戶的反饋,實(shí)
施開發(fā)的迭代過程。每一迭代過程均由需求、設(shè)計(jì)、編碼、測(cè)試、集成等階段組成,直到軟
件開發(fā)結(jié)束。
3X優(yōu)點(diǎn):一定程度上減少了軟件開發(fā)活動(dòng)的盲目性。
6、螺旋模型(參見螺旋模型示意圖)
1)概述:在瀑布模型和演化模型的基礎(chǔ)上,加入兩者所忽略的風(fēng)險(xiǎn)分析所建立的一種軟件
開發(fā)模型。
21特點(diǎn):沿螺旋模型順時(shí)針方向,依次表達(dá)了四個(gè)方面的活動(dòng),制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)
施工程、客戶評(píng)估。
7、噴泉模型:它體現(xiàn)了軟件創(chuàng)建所固有的迭代和無間隙特征。主要用于面向?qū)ο箝_發(fā)過程。
(參見噴泉模型示意圖)
8、增量模型:在設(shè)計(jì)了軟件系統(tǒng)整體體系結(jié)構(gòu)之后,首先完整的開發(fā)系統(tǒng)的一個(gè)初始子集,
繼之,根據(jù)這一子集,建造一個(gè)更加精細(xì)的版本,如些不斷地進(jìn)行系統(tǒng)的增量開發(fā)。(參見
增量模型示意圖)
9、各種模型之間的區(qū)別與聯(lián)系
IX瀑布模型、演化模型、螺旋模型之間的異同。
A、相同點(diǎn):都分為多個(gè)階段。
B、不同點(diǎn):瀑布模型一次完成軟件;演化模型分為多次完成,每次迭代完成軟件的一個(gè)部
分;螺旋模型也分為多次完成,每次完成軟件的一個(gè)新原型,并考慮風(fēng)險(xiǎn)分析。
2X演化模型和增量模型的區(qū)別
A、演化模型:首先開發(fā)核心系統(tǒng),每次迭代為系統(tǒng)增加一個(gè)子集,整個(gè)系統(tǒng)是增量開發(fā)和
增量提交。
B、增量模型:首先完整的開發(fā)系統(tǒng)的一個(gè)初始子集,然后不斷的建造更精細(xì)的版本。
3X需要完整定義需求的模型:瀑布模型、增量模型。
4X屬于迭代風(fēng)范的模型:演化模型、增量模型、噴泉模型、螺旋模型。
第三章結(jié)構(gòu)化需求分析
L需求分析
1)、基本任務(wù):準(zhǔn)確定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需要系統(tǒng)必須
做什么。
2)、承擔(dān)者:系統(tǒng)分析員。
3)、兩個(gè)階段:需求獲取和需求規(guī)約。
2、需求獲取
1)、目的:清楚地理解所要解決的問題,完整地獲取用戶需求。2)、主要活動(dòng):
通過學(xué)習(xí)、請(qǐng)教領(lǐng)域?qū)<摇⑾蛴脩籼釂柕取?/p>
3)、三大挑戰(zhàn):問題空間理解;人與人之間的通信;需求的不斷變化。
4)、分類及內(nèi)容
A、功能性需求:定義系統(tǒng)做什么。
B、非功能性需求:定義系統(tǒng)工作時(shí)的特性。
5)、原則
A、劃分:捕獲問題空間的"整體/部分"關(guān)系。
B、抽象:捕獲問題空間的"一般/特殊"或"特例"關(guān)系。
C、投影:捕獲問題空間的多維"視圖"。
6)、技術(shù)
A、一種好的需求獲取技術(shù)應(yīng)具備的基本特征。
①提供方便的通信;
②提供定義系統(tǒng)邊界的方法;
③提供支持抽象的基本機(jī)制;
④鼓勵(lì)分析員使用問題空間的術(shù)語思考問題,編寫文檔;
⑤為分析員提供多種可供選擇的設(shè)計(jì)方案;
⑥適應(yīng)需求的變化。
B、Jacobson提出的用況法基本符合以上特征,詳見"第五章面向?qū)ο蠓椒?的
“用況圖"。
3、需求規(guī)約:對(duì)需求陳述進(jìn)行分析,解決其中存在的二義性和不一致性,并以
一種系統(tǒng)化的形式準(zhǔn)確地表達(dá)用戶的需求,形成所謂的需求規(guī)格說明書。
4、結(jié)構(gòu)化方法:是一種系統(tǒng)化開發(fā)軟件的方法,該方法基于模塊化的思想,采
用"自頂向下,逐步求精”的技術(shù)對(duì)系統(tǒng)進(jìn)行劃分,分解和抽象是它的兩個(gè)基本
手段,結(jié)構(gòu)化方法是結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化編程的總稱。
6、結(jié)構(gòu)化分析
1)、基本步驟
A、通過對(duì)現(xiàn)實(shí)系統(tǒng)的了解和分析,或基于需求陳述,建立該系統(tǒng)的數(shù)據(jù)流圖;
B、基于得到的數(shù)據(jù)流圖,建立該系統(tǒng)的數(shù)據(jù)字典;
C、基于得到的數(shù)據(jù)流圖,對(duì)最低層的加工給出其控制結(jié)構(gòu)描述;
D、依據(jù)需求,建立人機(jī)接口和其他性能描述;
E、通過分析和驗(yàn)證,建立系統(tǒng)完整的需求規(guī)約。
2)、結(jié)構(gòu)化分析模型:數(shù)據(jù)流圖(DFD)是一種描述數(shù)據(jù)變換的圖形工具,是
結(jié)構(gòu)化分析方法最普遍采用的表示手段,數(shù)據(jù)字典和小說明為數(shù)據(jù)流圖提供了補(bǔ)
充,并用以驗(yàn)證圖形表示的正確性、一致性和完整性,以上三者構(gòu)成了結(jié)構(gòu)化分
析的模型。
A、數(shù)據(jù)流圖:是一種描述數(shù)據(jù)變換的圖形工具,系統(tǒng)接受輸入的數(shù)據(jù),經(jīng)過一
系列的變換(或稱加工),最后輸出結(jié)果數(shù)據(jù)。包括加工、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、
數(shù)據(jù)源和數(shù)據(jù)潭。
①加工:是對(duì)數(shù)據(jù)進(jìn)行處理的單元;用圓圈表示;頂層的加工名就是軟件系統(tǒng)的
名字,加工的名字最好使用動(dòng)賓詞組(e.g.計(jì)算費(fèi)用),也可用主謂詞組(e.g.
費(fèi)用計(jì)算),不要使用意義空洞的動(dòng)詞作為加工名(e.g.計(jì)算)。
②數(shù)據(jù)流:表示數(shù)據(jù)(由一組數(shù)據(jù)項(xiàng)組成)和數(shù)據(jù)流向(三種流向:從加工流向
加工;從數(shù)據(jù)源流向加工或從加工流向數(shù)據(jù)潭;從加工流向數(shù)據(jù)存儲(chǔ)或從數(shù)據(jù)存
儲(chǔ)流向加工。兩個(gè)加工之間可以有多個(gè)數(shù)據(jù)流,這些數(shù)據(jù)流之間沒有任何聯(lián)系,
數(shù)據(jù)流圖不表明它們的先后次序);用箭頭表示;用名詞或名詞詞組命名,盡量
選用現(xiàn)實(shí)系統(tǒng)中已有的名字。
③數(shù)據(jù)存儲(chǔ):表示信息的靜態(tài)存儲(chǔ);用兩條平行線表示;其命名方法同數(shù)據(jù)流。
④數(shù)據(jù)源:數(shù)據(jù)的來源;用矩形表示;
⑤數(shù)據(jù)潭:數(shù)據(jù)的最終目的地;用矩形表示。
B、數(shù)據(jù)字典:以一種準(zhǔn)確的和無二義的方式定義所有被加工引用的數(shù)據(jù)流和數(shù)
據(jù)存儲(chǔ)。包括數(shù)據(jù)流條目、數(shù)據(jù)存儲(chǔ)條目、數(shù)據(jù)項(xiàng)條目。常用邏輯操作符:"="
等價(jià)于(定義為)、"+"與(順序結(jié)構(gòu))、"{}"重復(fù)(循環(huán)結(jié)構(gòu))、"[『或
(選擇結(jié)構(gòu))、"()"任選、界域。
C、小說明:用于描述底層加工,集中描述一個(gè)加工的輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏
輯關(guān)系,即加工邏輯,并不描述具體的加工過程。一般用自然語言、結(jié)構(gòu)化自然
語言、判定表和判定樹等描述。
①結(jié)構(gòu)化自然語言:分為內(nèi)外兩層,外層語法描述操作的控制結(jié)構(gòu),內(nèi)層語法用
自然語言描述。如:在飛機(jī)票預(yù)訂系統(tǒng)中
在旅游旺季的7~9,12月
如果訂票超過20張
優(yōu)惠票價(jià)的15%
如果訂票20張以下
優(yōu)惠票價(jià)的5%
在旅游淡季的1~6,10,11月份
如果訂票超過20張
優(yōu)惠30%
如果訂票20張以下
優(yōu)惠20%
②判定表:分四個(gè)區(qū),一區(qū)列出所有的條件類別,二區(qū)列出所有的條件組合,三
區(qū)列出所有的操作,四區(qū)列出在相應(yīng)的組合條件下某個(gè)操作是否執(zhí)行或執(zhí)行情
況。如:
旅游時(shí)間7~9,12月1~6,10,U月
訂票量<=20>20<=20>20
折扣量5%15%20%30%
③判定樹:用圖形形式描述加工邏輯。
3)、建立結(jié)構(gòu)化分析模型的步驟(附實(shí)例)
A、確定系統(tǒng)邊界,畫出系統(tǒng)環(huán)境圖(參見系統(tǒng)環(huán)境示意圖)
B、自頂向下,畫出各層數(shù)據(jù)流圖
①功能分解(參見功能分解示意圖)
②數(shù)據(jù)流的分派(參見數(shù)據(jù)流分派示意圖)
③文件引入與精化(參見精化示意圖)
④如果有必要,從①開始對(duì)分解后的加工再次進(jìn)行分解,建立更下一層的數(shù)據(jù)流
圖
C、定義數(shù)據(jù)字典
D、定義小說明
E、匯總前面各步驟的結(jié)果
4)、注意事項(xiàng)
A、模型平衡原則
①數(shù)據(jù)流圖中所有的圖形元素必須根據(jù)它們的用法規(guī)則正確使用;
②每個(gè)數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)都要在數(shù)據(jù)字典中有定義,數(shù)據(jù)字典將包括各層數(shù)據(jù)流
圖中數(shù)據(jù)元素的定義;
③數(shù)據(jù)字典中的定義使用合法的邏輯構(gòu)造符號(hào);
④數(shù)據(jù)流圖中最底層的加工必須在小說明中有定義;
⑤父圖和子圖必須平衡,即父圖中某加工的輸入輸出(數(shù)據(jù)流)和分解這個(gè)加工
的子圖的輸入輸出(數(shù)據(jù)流)必須完全一致;
⑥小說明和數(shù)據(jù)流圖的圖形表示必須一致。
B、控制復(fù)雜性的一些規(guī)則
①上層數(shù)據(jù)流可以打包,上、下層數(shù)據(jù)流的對(duì)應(yīng)關(guān)系用數(shù)據(jù)字典描述,同層的數(shù)
據(jù)流也可編號(hào)對(duì)應(yīng)在,包內(nèi)流的性質(zhì)(輸入/輸出)必須一致;
②為便于理解,一幅圖中的圖元個(gè)數(shù)控制在7±2以內(nèi);
③檢查同每個(gè)加工相關(guān)的數(shù)據(jù)流,并尋找是否有其他可降低界面復(fù)雜性的劃分方
法;
④分析數(shù)據(jù)內(nèi)容,確定是否所有輸入信息都用于產(chǎn)生輸出信息;相應(yīng)地,由一個(gè)
加工產(chǎn)生的所有信息是否都能由進(jìn)入該加工的信息導(dǎo)出。
7、需求驗(yàn)證:就是對(duì)軟件需求規(guī)格說明書(SRS)加以驗(yàn)證,需要從以下方面進(jìn)
行:正確性,無二義性,完整性,可驗(yàn)證性,一致性,可理解性,可修改性,可
被跟蹤性,可跟蹤性,設(shè)計(jì)無關(guān)性,注釋。
8、需求規(guī)格說明書
1)、概述:是需求分析階段產(chǎn)生的一份最重要的文檔,它以一種一致的、無二
義的方式準(zhǔn)確的表達(dá)用戶的需求。
2)、作用
A、作為軟件開發(fā)機(jī)構(gòu)和用戶之間一份事實(shí)上的技術(shù)合同書;
B、作為軟件開發(fā)機(jī)構(gòu)下一步進(jìn)行設(shè)計(jì)和編碼的基礎(chǔ);
C、作為測(cè)試和驗(yàn)收目標(biāo)系統(tǒng)的依據(jù)。
3)、基本結(jié)構(gòu):引言、概述、數(shù)據(jù)流圖與數(shù)據(jù)字典、接口、性能需求、屬性、
其他需求。
9、需求分析階段的另外兩份文檔:初步測(cè)試計(jì)劃和用戶系統(tǒng)描述。
結(jié)構(gòu)化設(shè)計(jì)
1、軟件設(shè)計(jì)階段:需求分析階段的主要任務(wù)是確定系統(tǒng)必須"做什么",形成軟件的需求
規(guī)格說明書,軟件設(shè)計(jì)階段主要任務(wù)是確定系統(tǒng)"怎么做",從軟件需求規(guī)格說明書出發(fā),
形成軟件的具體設(shè)計(jì)方案,軟件設(shè)計(jì)可以采用多種方法,如結(jié)構(gòu)化設(shè)計(jì)方法、面向數(shù)據(jù)結(jié)構(gòu)
的設(shè)計(jì)方法、面向?qū)ο蟮脑O(shè)計(jì)方法等,結(jié)構(gòu)化軟件設(shè)計(jì)可以分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階
段。
2、數(shù)據(jù)流圖的類型
1X變換型數(shù)據(jù)流圖:具有較明顯的輸入、變換、輸出界面的數(shù)據(jù)流圖。(參見變換型數(shù)據(jù)
流圖示意圖)
2X事務(wù)型數(shù)據(jù)流圖:當(dāng)數(shù)據(jù)到達(dá)一個(gè)處理T后,該處理T根據(jù)輸入數(shù)據(jù)的類型或數(shù)據(jù)值,
在其后的若干動(dòng)作序列(稱為一個(gè)事務(wù))中選出一個(gè)來執(zhí)行。(參見事務(wù)型數(shù)據(jù)流圖示意圖)
3、設(shè)計(jì)類型(以上面兩圖為實(shí)例)
1X變換設(shè)計(jì):對(duì)應(yīng)于變換型數(shù)據(jù)流圖。其步驟如下:
A、確定輸入、變換、輸出的邊界:邏輯輸入就是離物理輸入端最遠(yuǎn)的,但仍被看作是系統(tǒng)
輸入的數(shù)據(jù)流;邏輯輸出就是離物理輸出端最遠(yuǎn)的,但仍被看作是系統(tǒng)輸出的數(shù)據(jù)流。
B、"第一級(jí)分解"-系統(tǒng)模塊結(jié)構(gòu)圖頂層和第一層的設(shè)計(jì):主模塊位于最頂層,一般以所建
系統(tǒng)的名字命名;輸入模塊部分,一般有幾個(gè)不同的邏輯輸入,就設(shè)計(jì)幾個(gè)輸入模塊;變換
模塊部分;輸出模塊部分,一般有幾個(gè)不同的邏輯輸出,就設(shè)計(jì)幾個(gè)輸出模塊。(參見變換
設(shè)計(jì)之第一級(jí)分解示意圖)
C、"第二級(jí)分解"-自頂向下,逐步求精:輸入模塊部分,通常可分解為兩個(gè)下屬模塊:一
個(gè)是接收數(shù)據(jù)模塊,另一個(gè)是把接收的數(shù)據(jù)變換成它的上級(jí)模塊所需的數(shù)據(jù)的模塊,繼之,
對(duì)下屬的輸入模塊以同樣方式進(jìn)行分解,直到一個(gè)輸入模塊為物理輸入為止;輸出模塊部分,
通常也可分解為兩個(gè)下屬模塊:一個(gè)將得到的數(shù)據(jù)向輸出形式轉(zhuǎn)換的模塊,另一個(gè)將轉(zhuǎn)換后
的數(shù)據(jù)輸出,對(duì)下屬的模塊以同樣方式進(jìn)行分解,直到一個(gè)輸出模塊為物理輸出為止;中心
變換模塊,通常依據(jù)數(shù)據(jù)流圖的具體情況,并以功能分解的原則,考慮如何對(duì)中心變換模塊
進(jìn)行分解。這樣就得到了初始模塊結(jié)構(gòu)圖。(參見變換設(shè)計(jì)之第二級(jí)分解示意圖)
D、使用設(shè)計(jì)度量和啟發(fā)式規(guī)則,對(duì)初始模塊結(jié)構(gòu)圖進(jìn)行精化。(參見變換設(shè)計(jì)之精化示意圖)
2X事務(wù)設(shè)計(jì):對(duì)應(yīng)于事務(wù)型數(shù)據(jù)流圖,其步驟如下:
A、確定事務(wù)處理中心。
B、"第一級(jí)分解"-系統(tǒng)模塊結(jié)構(gòu)圖頂層和第一層的設(shè)計(jì):首先為事務(wù)中心設(shè)計(jì)一個(gè)主模塊;
然后,為每一條活動(dòng)路徑設(shè)計(jì)一個(gè)事務(wù)處理模塊;一般來說,事務(wù)型數(shù)據(jù)流圖都有輸入部分,
對(duì)其輸入部分設(shè)計(jì)一個(gè)輸入模塊;如果一個(gè)事務(wù)型數(shù)據(jù)流圖的各活動(dòng)路徑又集中于一個(gè)加
工,則為此設(shè)計(jì)一個(gè)輸出模塊;如果各活動(dòng)路徑是發(fā)散的,則在第一層設(shè)計(jì)中就不必為其設(shè)
計(jì)輸出模塊。(參見事務(wù)設(shè)計(jì)之第一級(jí)分解示意圖)
C、"第二級(jí)分解"-自頂向下,逐步求精:關(guān)于輸入模塊、輸出模塊的細(xì)化,如同變換設(shè)計(jì)
對(duì)輸入模塊、輸出模塊的細(xì)化。關(guān)于各條活動(dòng)路徑的細(xì)化,則要根據(jù)具體情況進(jìn)行。
D、使用設(shè)計(jì)度量和啟發(fā)式規(guī)則,對(duì)初始的模塊結(jié)構(gòu)圖進(jìn)行精化。
4、設(shè)計(jì)評(píng)價(jià)準(zhǔn)則
1X模塊化:把一個(gè)待開發(fā)的軟件分解成若干簡單的模塊,即為模塊化。
2X信息隱蔽:在自頂向下逐步求精時(shí),其較低層的設(shè)計(jì)細(xì)節(jié)都被“隱蔽"起來,只給出模
塊的接口,這樣不僅使功能的執(zhí)行機(jī)制被隱蔽起來,而且控制流程的細(xì)節(jié)和一些數(shù)據(jù)也被隱
蔽起來。
31模塊:是執(zhí)行一個(gè)特殊任務(wù)或?qū)崿F(xiàn)一個(gè)特殊的抽象數(shù)據(jù)類型的一組例程和數(shù)據(jù)結(jié)構(gòu)。通
常由兩部分組成:接口和實(shí)現(xiàn)模塊功能的執(zhí)行機(jī)制。
4X評(píng)價(jià)軟件設(shè)計(jì)的基本準(zhǔn)則是“高內(nèi)聚"、"低耦合"。
51耦合:是對(duì)不同模塊之間相互依賴程度的度量。緊密耦合是指兩個(gè)模塊之間存在著很強(qiáng)
的依賴關(guān)系;松散耦合是指兩個(gè)模塊之間存在一些依賴關(guān)系,但它們之間的連接比較弱;無
耦合是指模塊之間根本沒有任何連接。
A、耦合的強(qiáng)度依賴的因素
①一個(gè)模塊對(duì)另一個(gè)模塊的引用。
②一個(gè)模塊向另一個(gè)模塊傳遞的數(shù)據(jù)量。
③一個(gè)模塊施加到另一個(gè)模塊的控制的數(shù)量。
④模塊之間接口的復(fù)雜程度。
B、耦合從強(qiáng)到弱分類
①內(nèi)容耦合:一個(gè)模塊直接修改或操作另一個(gè)模塊的數(shù)據(jù),就發(fā)生了內(nèi)容耦合,被修改的模
塊完全依賴于修改它的模塊。
②公共耦合:兩個(gè)以上的模塊共同引用一個(gè)全局?jǐn)?shù)據(jù)項(xiàng)就稱為公共耦合,對(duì)全局?jǐn)?shù)據(jù)項(xiàng)的修
改作用于所有訪問該數(shù)據(jù)項(xiàng)的模塊,所以模塊間的依賴關(guān)系依舊存在。
③控制耦合:一個(gè)模塊在界面上傳遞一個(gè)信號(hào)控制另一個(gè)模塊,接收信號(hào)的模塊的動(dòng)作根據(jù)
信號(hào)值進(jìn)行調(diào)整,稱為控制耦合。
④標(biāo)記耦合:若兩個(gè)模塊至少有一個(gè)通過界面?zhèn)鬟f的公共參數(shù)包含內(nèi)部結(jié)構(gòu),則為標(biāo)記耦合。
⑤數(shù)據(jù)耦合:模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù)。
C、原則:如果模塊間必須存在耦合,就盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合
的范圍,堅(jiān)決避免使用內(nèi)容耦合。
61內(nèi)聚:度量的是一個(gè)模塊內(nèi)部各成分之間相互關(guān)聯(lián)的強(qiáng)度。
A、從低到高分類
①偶然內(nèi)聚:一個(gè)模塊的各成分之間毫無關(guān)系。
②邏輯內(nèi)聚:幾個(gè)邏輯上相關(guān)的功能被放在同一模塊中。
③時(shí)間內(nèi)聚:如果一個(gè)模塊完成的功能必須在同一時(shí)間內(nèi)執(zhí)行(如初始化系統(tǒng)或一組變量),
但這些功能只是因?yàn)闀r(shí)間因素關(guān)聯(lián)在一起。
④過程內(nèi)聚:如果一個(gè)模塊內(nèi)部的處理成分是相關(guān)的,而且這些處理必須以特定的次序進(jìn)行。
⑤通信內(nèi)聚:如果一個(gè)模塊的所有成分都操作同一數(shù)據(jù)集或生成同一數(shù)據(jù)集。
⑥順序內(nèi)聚:如果一個(gè)模塊的各個(gè)成分和同一個(gè)功能密切相關(guān),而且一個(gè)成分的輸出作為另
一個(gè)成分的輸入,則稱為順序內(nèi)聚。
⑦功能內(nèi)聚:模塊的所有成分對(duì)于完成單一的功能都是基本的。
5、啟發(fā)式規(guī)則
IX改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性。
2X模塊規(guī)模應(yīng)該適中。
3\深度、寬度、扇出和扇入應(yīng)適中。
A、深度:表示軟件結(jié)構(gòu)中控制的層數(shù)。
B、寬度:軟件結(jié)構(gòu)同一個(gè)層次上的模塊總數(shù)的最大值。
C、扇出:一個(gè)模塊直接控制(調(diào)用)的下級(jí)模塊數(shù)目。
D、扇入:表明有多少個(gè)上級(jí)模塊直接調(diào)用它。
4\模塊的作用域應(yīng)該在控制域之內(nèi)。
A、作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。
B、控制域:這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的集合。
5\力爭(zhēng)降低模塊接口的復(fù)雜性。
6X模塊功能應(yīng)該可以預(yù)測(cè)。
6、總體設(shè)計(jì)
11主要任務(wù):把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的模塊結(jié)構(gòu)圖(MSD\
2\表示工具
A、層次圖:用來描繪軟件的層次結(jié)構(gòu),很適合于在自頂向下設(shè)計(jì)軟件的過程中使用。
B、HIPO圖:由H圖(層次圖)和IPO圖(輸入/處理/輸出圖)兩部分組成。
C、結(jié)構(gòu)圖:通常用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息,尾部是空心圓表示
傳遞的是數(shù)據(jù),實(shí)心圓表示傳遞的是控制信息。
3\方法:首先對(duì)需求規(guī)約所產(chǎn)生的DFD分類,然后將不同類型的DFD,采用不同方法進(jìn)
行映射M各DFD轉(zhuǎn)換為初始模塊結(jié)構(gòu)圖,再根據(jù)基本的模塊化設(shè)計(jì)原則高內(nèi)聚,低耦合”,
精化初始模塊結(jié)構(gòu)圖,使之成為最終可供詳細(xì)設(shè)計(jì)使用的模塊結(jié)構(gòu)圖。
7、結(jié)構(gòu)化程序設(shè)計(jì):結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出
口的控制結(jié)構(gòu),并且只包含順序、選擇和循環(huán)三種結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì)的目標(biāo)之一是使程
序的控制流程線性化,即程序的動(dòng)態(tài)執(zhí)行順序符合靜態(tài)書寫結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì)的觀點(diǎn)是
要求設(shè)計(jì)好結(jié)構(gòu)的程序。
8、詳細(xì)設(shè)計(jì)
IX目標(biāo):確定怎樣具體實(shí)現(xiàn)所要求的系統(tǒng)。
2X詳細(xì)設(shè)計(jì)包含實(shí)現(xiàn)對(duì)應(yīng)的總體設(shè)計(jì)的模塊所需要的處理邏輯,主要有,詳細(xì)的算法;數(shù)
據(jù)表示和數(shù)據(jù)結(jié)構(gòu),實(shí)施的功能和使用的數(shù)據(jù)之間的關(guān)系。
3X工具
A、程序流程圖(程序框圖,參見程序流程圖示意圖)
B、盒圖(N-S圖,參見盒圖示意圖)
C、PAD圖(參見PAD圖示意圖)
D、類程序設(shè)計(jì)語言(PDL)(偽碼)
9、軟件方法學(xué):是以軟件方法為研究對(duì)象的學(xué)科。主要涉及指導(dǎo)軟件設(shè)計(jì)的原理和原則,
以及基于這些原理、原則的方法和技術(shù)。狹義的軟件方法學(xué)也指某種特定的軟件設(shè)計(jì)指導(dǎo)原
則和方法體系。
面向?qū)ο蠓椒?/p>
1、構(gòu)造模塊的四種基本觀點(diǎn)
1\以"過程"或"函數(shù)"為基點(diǎn),使每一模塊實(shí)現(xiàn)一項(xiàng)功能;
2X以一個(gè)“數(shù)據(jù)結(jié)構(gòu)”為基點(diǎn),使每一模塊實(shí)現(xiàn)該數(shù)據(jù)結(jié)構(gòu)上的操作功能;
3\以"事件驅(qū)動(dòng)”為基點(diǎn),使每一模塊識(shí)別一個(gè)事件并對(duì)該事件作出響應(yīng);
41以"問題域中的一個(gè)成分"為基點(diǎn),使每一模塊對(duì)應(yīng)現(xiàn)實(shí)世界中的一個(gè)事物。
2、用況圖
1\概述:就是由參與者、用況以及它們之間的關(guān)系所構(gòu)成的圖。作用:主要用來明確需求;
用來輔助分析;用來輔助設(shè)計(jì),特別是用戶界面的設(shè)計(jì);用來指導(dǎo)測(cè)試。
2\概念
A、系統(tǒng)邊界:一個(gè)系統(tǒng)所包含的所有系統(tǒng)成分與系統(tǒng)以外各種事物的分界線。
B、參與者:在系統(tǒng)邊界以外,與系統(tǒng)進(jìn)行交互的事物-人員、設(shè)備、外系統(tǒng)。一個(gè)參與者定
義了一組功能上密切相關(guān)的角色,當(dāng)一個(gè)事物與系統(tǒng)交互時(shí),該事物可以扮演這樣的角色。
C、用況:對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過程的描述。
31關(guān)系
A、參與者之間的關(guān)系
①泛化(繼承):如果一組參與者具有共同的性質(zhì),可以把這些性質(zhì)抽取出來放在另一個(gè)參
與者中,它們?cè)購闹欣^承。
B、用況之間的關(guān)系
①泛化(繼承):子用況繼承父用況的行為和含義;子用況可以增加或覆蓋父用況的行為;
子用況可以出現(xiàn)在父用況出現(xiàn)的任何位置。
②擴(kuò)展:從用況A到用況B的擴(kuò)展關(guān)系是指,用況B的實(shí)例是可以被用況A指定的行為擴(kuò)
充(服從于在擴(kuò)展中指定的特定條件),行為被插入到由B中的擴(kuò)展點(diǎn)定義的位置。
③包含:從用況A到用況B的包含關(guān)系表明,用況A的一個(gè)實(shí)例也包含了用況B所指定的
行為,在用況A中定義的位置包含該行為。
④擴(kuò)展與包含的異同
同:都是不完整的;都離不開基本用況;都可實(shí)現(xiàn)為子程序。
異:方向不同;1對(duì)多選包含關(guān)系;多對(duì)1選擴(kuò)展;包含處理一般的情況;擴(kuò)展處理特殊的
情況。
C、參與者與用況之間的關(guān)系
①關(guān)聯(lián):連接參與者與用況之間的線段,表示參與者實(shí)例與用況實(shí)例之間的交互。
4X實(shí)例(參見用況圖實(shí)例)
3、類圖
1\概述:類圖用以表示模型的靜態(tài)結(jié)構(gòu),即表示靜態(tài)元素及其之間各種靜態(tài)關(guān)系。為了控
制信息組織的復(fù)雜性,可以把類圖組織成包,但這并不表示對(duì)構(gòu)成模型的基本元素的劃分。
2\概念
A、類:是具有相同結(jié)構(gòu)、行為和關(guān)系的一組對(duì)象的描述符。
B、屬性:是一些有著確定值的、用于描述對(duì)象狀態(tài)信息的數(shù)據(jù)。
C、服務(wù):為了完成某一任務(wù),一個(gè)對(duì)象所提供的、并體現(xiàn)其責(zé)任的操作。
D、對(duì)象:在系統(tǒng)分析和系統(tǒng)構(gòu)造中,對(duì)象是對(duì)客觀世界事物的一種抽象,是由數(shù)據(jù)(屬性)
和其上操作(行為)組成的封裝體,是類的一個(gè)實(shí)例。對(duì)象的特點(diǎn):自治性,對(duì)象具有一定
的獨(dú)立計(jì)算能力;封閉性,對(duì)象具有信息隱蔽的能力;通信性,對(duì)象具有與其他對(duì)象通信的
能力。
E、接口:是指描述類中提供給另一個(gè)類使用的一組操作。
總結(jié):上述五個(gè)概念圍繞一個(gè)問題,即如何描述客觀事物對(duì)象"展開的:如何抽象對(duì)象
的"結(jié)構(gòu)":屬性,操作;如何描述一組具有相似性質(zhì)的對(duì)象:類;如何抽象并描述在特定
環(huán)境中對(duì)象的功能:接口。
F、關(guān)聯(lián):把對(duì)一組具有相同結(jié)構(gòu)特性、行為特性和語義的鏈的描述稱為關(guān)聯(lián)。
G、聚合:是一種特殊的關(guān)聯(lián),表示整體類和部分類之間的"整體-部分"關(guān)系,其中的整體
類稱為聚集。
H、組合:是一種關(guān)聯(lián),是聚合的一種形式,其部分和整體之間具有很強(qiáng)的“屬于"關(guān)系,
并且他們的生存期是一致的。這種聚集稱為組成。
I、鏈:是對(duì)象引用的元組(列表),是關(guān)聯(lián)的一個(gè)實(shí)例。
J、泛化:是一般元素(父親)和特殊元素(兒子)之間的一種分類關(guān)系,其中特殊元素的結(jié)
構(gòu)完全與一般元素一致,并附加了一些信息。
K、依賴:一個(gè)依賴規(guī)約了兩個(gè)模型元素(或兩個(gè)模型元素集合)之間的一種語義關(guān)系,即:
對(duì)目標(biāo)元素的改變可能需要改變?cè)撘蕾囍械脑丛亍?/p>
總結(jié):給出了表達(dá)客觀事物之間關(guān)系的基本概念:鏈;給出了關(guān)聯(lián)的語義;還給出了一些特
定的關(guān)聯(lián)(分類),主要包括:二元關(guān)聯(lián)與N元關(guān)聯(lián)、聚合與組合、泛化、依賴。
L、包:模型元素的一個(gè)分組。
M、訪問依賴:目標(biāo)包的內(nèi)容可以被客戶包引用,或被遞歸嵌套在客戶包中的其它包引用。
N、引入依賴:一個(gè)引入依賴獲得訪問,并將目標(biāo)名字空間中的那些具有合適可見性的名字
引入到客戶包(即對(duì)它們的引用可不需要一個(gè)路徑名X
總結(jié):包是控制文檔組織復(fù)雜性的機(jī)制;包也可以作為"模塊化"、"構(gòu)件化"機(jī)制;包之
間(在包的層次上)存在兩種依賴:訪問和引入。
0、注釋:是一個(gè)符號(hào)項(xiàng),用以表示某一語義元素的一些文本信息。
3\表示法
A、類(參見類的表示法)
B、屬性:可見性名稱[多重性]:類型表達(dá)式=初始值{性質(zhì)串}。
C、服務(wù):可見性名字(參數(shù)列表):返回類型表達(dá)式{性質(zhì)字符串}。
D、對(duì)象(參見對(duì)象的表示法)
E、接口(參見接口的表示法)
F、關(guān)聯(lián)
①二元關(guān)聯(lián)(參見二元關(guān)聯(lián)的表示法)
②N元關(guān)聯(lián)(參見N元關(guān)聯(lián)的表示法)
G、聚合(參見聚合的表示法)
H、組合(參見組合的表示法)
I、鏈(參見鏈的表示法)
J、泛化(參見泛化的表示法)
K、依賴(參見依賴的表示法)
L、包(參見包的表示法)
4、順序圖
1\概述:是一種表達(dá)對(duì)象間交互的圖,由一組對(duì)象(參與者)以及其間順序發(fā)送的消息組
成。
2\概念和表示法
A、對(duì)象生命線:在順序圖中,對(duì)象生命線表示扮演特定角色的對(duì)象。”對(duì)象生命線”表示
為垂直虛線。
B、激活(控制焦點(diǎn)):表示一個(gè)對(duì)象直接或者通過從屬例程執(zhí)行一個(gè)行為的時(shí)期。它既表示
了行為執(zhí)行的持續(xù)時(shí)間,也表示了活動(dòng)和它的調(diào)用者之間的控制關(guān)系。用一個(gè)窄長的矩形表
示激活(活化1
C、消息:是兩個(gè)對(duì)象間的通訊,這樣的通訊用于傳輸將產(chǎn)生的動(dòng)作所需要的信息。一個(gè)消
息會(huì)引起一個(gè)被調(diào)用的操作,產(chǎn)生一個(gè)信號(hào),或者引起一個(gè)對(duì)象被創(chuàng)建或者被消除。在順序
圖中,把消息表示為從一個(gè)對(duì)象生命線到另一個(gè)對(duì)象生命線的一個(gè)水平實(shí)線箭頭。
D、轉(zhuǎn)換時(shí)間:消息可以指定幾個(gè)不同的時(shí)間(例如,發(fā)出時(shí)間和接受時(shí)間X這些時(shí)間可以
用在約束表達(dá)式中。用戶可以按需要為特定的目的給出時(shí)間表達(dá),如elapsedTime(占用時(shí)
間)和startExecutionTime(開始執(zhí)行時(shí)間\可以在約束中使用這些表達(dá)式,以給消息指
派有效的具體時(shí)間約束??梢再x予消息一個(gè)名字。把時(shí)間約束寫成為一個(gè)基于消息名字的表
達(dá)式。例如,如果消息的名字是stim,用stim.sendTime()表示發(fā)送時(shí)間,用
stim.receiveTime()表達(dá)接收時(shí)間??梢园褧r(shí)間約束表示在與箭頭對(duì)齊的圖的左邊上,也
可以通過把布爾表達(dá)式(可能包括時(shí)間表達(dá)式)放在括號(hào)中表示約束。
3X實(shí)例(參見順序圖實(shí)例)
5、狀態(tài)圖
1X概述:通過描述對(duì)事件實(shí)例接收的響應(yīng),狀態(tài)圖描述了具有動(dòng)態(tài)行為能力的實(shí)體之行為。
通常用狀態(tài)圖描述類的行為,也可以用它描述其它模型實(shí)體(如用況、參與者、子系統(tǒng)、操
作或方法)的行為。
2\概念與表示法
A、狀態(tài):一個(gè)狀態(tài)是對(duì)象(類)生命期的一個(gè)階段,在該階段中該對(duì)象要滿足一些特定的
條件,并可從事特定的活動(dòng)。把一個(gè)狀態(tài)表示成一個(gè)四角均為圓角的矩形。
B、事件:是指可以引發(fā)狀態(tài)轉(zhuǎn)換的所發(fā)生的事情。事件有信號(hào)事件、調(diào)用事件、時(shí)間事件、
條件事件。
C、轉(zhuǎn)換:是兩個(gè)狀態(tài)之間的關(guān)系,表示當(dāng)一個(gè)特定事件出現(xiàn)時(shí),如果滿足一定的條件,對(duì)
象就從第一個(gè)狀態(tài)進(jìn)入第二個(gè)狀態(tài),并執(zhí)行一定的動(dòng)作。把轉(zhuǎn)換表示成從源狀態(tài)出發(fā)并在目
標(biāo)狀態(tài)上終止的帶箭頭的實(shí)線。
3\舉例(參見狀態(tài)圖實(shí)例)
6、面對(duì)對(duì)象方法
11派別
A、”方法驅(qū)動(dòng)的方法”:在給出符號(hào)體系的基礎(chǔ)上,明確規(guī)定進(jìn)行的"步驟",并在每一
步中給出"實(shí)現(xiàn)策略"。如Coad-Yourdon方法。
B、"模型驅(qū)動(dòng)的方法":給出模型化概念,即符號(hào)體系以及目標(biāo)模型;而不明確規(guī)定實(shí)現(xiàn)
目標(biāo)的"步驟",但給出一些必要的指導(dǎo)。如D.W.Embley的OSA方法和J.Rumbaugh的
OMT方法。
2\同結(jié)構(gòu)化方法的比較
A、結(jié)構(gòu)化方法:強(qiáng)調(diào)過程抽象和模塊化,將現(xiàn)實(shí)世界映射為數(shù)據(jù)流和加工,加工之間通過
數(shù)據(jù)流進(jìn)行通信,數(shù)據(jù)作為被動(dòng)的實(shí)體被主動(dòng)地操作所加工,是以過程(或操作)為中心來
構(gòu)造系統(tǒng)和設(shè)計(jì)程序的。
B、面向?qū)ο蠓椒ǎ喊咽澜缈闯墒仟?dú)立對(duì)象的集合,對(duì)象將數(shù)據(jù)和操作封裝在一起,提供有
限的接口,其內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)、數(shù)據(jù)結(jié)構(gòu)及對(duì)它們的操作是外部不可見的。能較好的適應(yīng)復(fù)
雜大系統(tǒng)不斷發(fā)展和變化的要求。優(yōu)點(diǎn):更好的刻畫問題域,減少映射誤差,控制變化性,
便于同用戶交流,消除或減少了軟件開發(fā)各個(gè)階段的鴻溝,便于復(fù)用。
7、Coad-Yourdon方法
1\概述:該方法認(rèn)為,人類在認(rèn)識(shí)和理解現(xiàn)實(shí)世界的過程中,普遍運(yùn)用著下面三個(gè)構(gòu)造法
則:區(qū)分對(duì)象及其屬性;區(qū)分整體對(duì)象及其組成部分;不同對(duì)象類的形成及區(qū)分。
2X00A:利用五個(gè)層次和活動(dòng)定義和記錄系統(tǒng)行為,輸入和輸出。
A、發(fā)現(xiàn)類及對(duì)象:描述如何發(fā)現(xiàn)類及對(duì)象。從應(yīng)用領(lǐng)域開始識(shí)別類及對(duì)象,形成整個(gè)應(yīng)用
的基礎(chǔ),然后,據(jù)此分析系統(tǒng)的責(zé)任。兩層矩形表示類及對(duì)象:內(nèi)層矩形表示類,分為三部
分,類名、屬性名、服務(wù)名,外層矩形表示該類的對(duì)象。
B、識(shí)別結(jié)構(gòu):該階段分為兩個(gè)步驟。第一,識(shí)別一般/特殊結(jié)構(gòu),該結(jié)構(gòu)捕獲了識(shí)別出的類
的層次結(jié)構(gòu);第二,識(shí)別整體/部分結(jié)構(gòu),該結(jié)構(gòu)用來表示一個(gè)對(duì)象如何成為另一個(gè)對(duì)象的
一部分,以及多個(gè)對(duì)象如何組裝成更大的對(duì)象。
C、定義主題:主題由一組類及對(duì)象組成,用于將類及對(duì)象模型劃分為更大的單位,便于理
解。精煉主題可以從問題域和接口復(fù)雜性入手。
D、定義屬性:其中包括定義類的實(shí)例(對(duì)象)之間的實(shí)例連接??梢詮乃姆矫鏄?biāo)識(shí)屬性:
原子概念,規(guī)范化,標(biāo)識(shí)機(jī)制,保持一個(gè)可導(dǎo)出的屬性。
E、定義服務(wù):其中包括定義對(duì)象之間的消息連接。
總結(jié):在面向?qū)ο蠓治鲭A段,經(jīng)過五個(gè)層次的活動(dòng)后的結(jié)果是一個(gè)分成五個(gè)層次的問題域
模型,包括主題、類及對(duì)象、結(jié)構(gòu)、屬性和服務(wù)五個(gè)層次,由類及對(duì)象圖表示。五個(gè)層次活
動(dòng)的順序并不重要。
3100D:面向?qū)ο笤O(shè)計(jì)模型需要進(jìn)一步區(qū)分以下四個(gè)部分。
A、問題域部分(PDC):面向?qū)ο蠓治龅慕Y(jié)果直接放入該部分。
B、人機(jī)交互部分(HIC):這部分的活動(dòng)包括對(duì)用戶分類,描述人機(jī)交互的腳本,設(shè)計(jì)命令
層次結(jié)構(gòu),設(shè)計(jì)詳細(xì)的交互,生成用戶界面的原型,定義HIC類。
C、任務(wù)管理部分(TMC):這部分的活動(dòng)包括識(shí)別任務(wù)(進(jìn)程X任務(wù)所提供的服務(wù)、任務(wù)
的優(yōu)先級(jí)、進(jìn)程是事件驅(qū)動(dòng)還是時(shí)鐘驅(qū)動(dòng)、以及任務(wù)與其它進(jìn)程和外界如何通信。
D、數(shù)據(jù)管理部分(DMC):這一部分依賴于存儲(chǔ)技術(shù),是文件系統(tǒng),還是關(guān)系數(shù)據(jù)庫管理
系統(tǒng),還是面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)。
8、OSA方法
IXOSA模型
A、對(duì)象關(guān)系模型:對(duì)象、關(guān)系、對(duì)象類、關(guān)系集合、約束。
B、對(duì)象行為模型:狀態(tài)、觸發(fā)與轉(zhuǎn)換、動(dòng)作。
C、對(duì)象相互作用模型。
2X特殊的關(guān)系集合
A、一般關(guān)系(isa):一個(gè)對(duì)象類中的每一個(gè)對(duì)象是另一對(duì)象類的一個(gè)對(duì)象。
B、聚合關(guān)系(ispartof):由一些稱之為成分的對(duì)象構(gòu)成稱之為聚合的對(duì)象。
C、聯(lián)合關(guān)系(ismemberof):該關(guān)系用于生成一個(gè)由對(duì)象構(gòu)成的集合,并把該集合看作是
一個(gè)對(duì)象。
9、UML
IXUML簡介:UML是一種通用的可視化建模語言,用于對(duì)軟件進(jìn)行描述、可視化處理、
構(gòu)造和建立軟件系統(tǒng)的文檔。UML融合了許多面向?qū)ο箝_發(fā)方法的基本概念和優(yōu)點(diǎn),具有
一致的圖形表示法和語義,同時(shí)也出現(xiàn)了許多UML工具,能夠很好地支持軟件開發(fā),例如
UML的開發(fā)工具RationalRose提供了面向?qū)ο蟮姆治龊驮O(shè)計(jì)(00A和00D)到面向?qū)ο?/p>
編程(OOP)的平滑過渡機(jī)制,完整地體現(xiàn)了面向?qū)ο蟮能浖こ趟枷搿?/p>
2XUML的靜態(tài)建模機(jī)制和動(dòng)態(tài)建模機(jī)制:靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中重要對(duì)象的屬性和操作
以及這些對(duì)象之間的相互關(guān)系;動(dòng)態(tài)行為定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)任務(wù)而相
互進(jìn)行通信的機(jī)制。UML定義了9種圖用于系統(tǒng)建模,分為兩類:靜態(tài)結(jié)構(gòu)圖和動(dòng)態(tài)行為
圖。
A、靜態(tài)結(jié)構(gòu)圖:可用于對(duì)系統(tǒng)的靜態(tài)方面進(jìn)行可視化、詳述、構(gòu)造和文檔化??梢园严到y(tǒng)
的靜態(tài)方面看作是對(duì)系統(tǒng)的相對(duì)穩(wěn)定的骨架的表示,它由類、接口、協(xié)作、構(gòu)件和節(jié)點(diǎn)等事
物的布局組成。結(jié)構(gòu)圖包括:
類圖(Classdiagram)描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),它定義了系統(tǒng)中類的內(nèi)部結(jié)構(gòu)以及類之間
的聯(lián)系,用來捕獲信息和事件中的對(duì)象;對(duì)象圖(Objectdiagram)是類的實(shí)例化圖;構(gòu)件
圖(Componentdiagram)描述程序代碼的物理結(jié)構(gòu);部署圖(Deploymentdiagram)
描述系統(tǒng)中軟、硬件的物理體系結(jié)構(gòu),用于捕獲系統(tǒng)硬件和軟件構(gòu)件的部署關(guān)系。
B、動(dòng)態(tài)行為圖:用于對(duì)系統(tǒng)的動(dòng)態(tài)方面進(jìn)行可視化、詳述、構(gòu)造和文檔化。可以把系統(tǒng)的
動(dòng)態(tài)方面看作是對(duì)系統(tǒng)變化部分的表示,它由諸如隨時(shí)間變化的信息流和在網(wǎng)絡(luò)上構(gòu)件的物
理運(yùn)動(dòng)之類的事物組成。行為圖包括:
用例圖(UseCasediagram)從用戶的角度描述系統(tǒng)的功能,并指出各功能的執(zhí)行者,說明
執(zhí)行者與提供的用例之間的某種聯(lián)系;順序圖(Sequencediagram)描述幾個(gè)對(duì)象之間的
動(dòng)作協(xié)作關(guān)系;協(xié)作圖(Collaborationdiagram)從另一個(gè)角度展示對(duì)象之間的動(dòng)作協(xié)作
關(guān)系。它可以和順序圖相互轉(zhuǎn)換。在RationalRose中可以由順序圖生成協(xié)作圖;狀態(tài)圖
(Statediagram)描述一類對(duì)象具有的所有可能的狀態(tài)以及狀態(tài)轉(zhuǎn)移關(guān)系;活動(dòng)圖
(Activediagram)描述系統(tǒng)中各種活動(dòng)的執(zhí)行順序。
10、RUP(參見RUP示意圖)
1\概述:RUP,即Rational統(tǒng)一過程,是一種適應(yīng)UML的軟件生命周期方法,是一個(gè)通
用的過程框架,可用于各種不同類型的軟件系統(tǒng)、各種不同的應(yīng)用領(lǐng)域、各種不同類型的組
織、各種不同的功能級(jí)別以及各種不同的項(xiàng)目規(guī)模。它是UseCase驅(qū)動(dòng)的、以體系結(jié)構(gòu)為
中心的、迭代、增量的開發(fā)。
2X階段:初始、細(xì)化、構(gòu)造、移交。
3X核心工作流:捕獲需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試。
軟件測(cè)試
1、軟件測(cè)試
1X軟件產(chǎn)品與其他產(chǎn)品不同,其最大的成本是檢測(cè)軟件錯(cuò)誤、修正錯(cuò)誤的成本,以及為了
發(fā)現(xiàn)這些錯(cuò)誤所進(jìn)行的設(shè)計(jì)測(cè)試程序和運(yùn)行測(cè)試程序的成本。
2X軟件測(cè)試可定義為:按照特定規(guī)程,發(fā)現(xiàn)軟件錯(cuò)誤的過程。
3X軟件測(cè)試的目標(biāo):一是預(yù)防錯(cuò)誤;二是發(fā)現(xiàn)錯(cuò)誤。
2、軟件測(cè)試和軟件調(diào)試的區(qū)別
1X測(cè)試從一個(gè)側(cè)面證明程序員的"失敗",而調(diào)試是為了證明程序員的正確。
21測(cè)試以已知條件開始,使用預(yù)先定義的程序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序是
否通過測(cè)試。調(diào)試一般是以不可知的內(nèi)部條件開始,除統(tǒng)計(jì)性調(diào)試外,結(jié)果是不可預(yù)見的。
3X測(cè)試是有計(jì)劃的,并要進(jìn)行測(cè)試設(shè)計(jì),而調(diào)試是不受時(shí)間約束的。
4X測(cè)試是一個(gè)發(fā)現(xiàn)錯(cuò)誤、改正錯(cuò)誤、重新測(cè)試的過程,而調(diào)試是一個(gè)推理過程。
5\測(cè)試的執(zhí)行是有規(guī)程的,而調(diào)試的執(zhí)行往往要求程序員進(jìn)行必要推理以至知覺的“飛
躍"。
61測(cè)試經(jīng)常是由獨(dú)立的測(cè)試組在不了解軟件設(shè)計(jì)的條件下完成的,而調(diào)試必須由了解詳細(xì)
設(shè)計(jì)的程序員完成。
7X大多數(shù)測(cè)試的執(zhí)行和設(shè)計(jì)可由工具支持,而調(diào)試時(shí),程序員能利用的工具主要是調(diào)試器。
3、測(cè)試過程模型(參見測(cè)試過程模型示意圖)
1X程序環(huán)境包括支持其運(yùn)行的硬件、固件和軟件。一般來說,程序環(huán)境經(jīng)過了生產(chǎn)廠家的
嚴(yán)格測(cè)試,出現(xiàn)錯(cuò)誤的概率比較小,軟件可靠性較好。因此,對(duì)環(huán)境的抽象——環(huán)境模型,
只考慮計(jì)算機(jī)指令系統(tǒng)、操作系統(tǒng)宏指令、操作系統(tǒng)命令以及高級(jí)語言語句等。
2\另外,為了測(cè)試,必須簡化程序概念,形成被測(cè)試對(duì)象的簡化版本,即程序模型。不同
測(cè)試技術(shù),對(duì)同一被測(cè)對(duì)象一一程序,可產(chǎn)生不同的程序模型。這一簡化或著重于程序的控
制結(jié)構(gòu),或著重于處理過程,于是形成了所謂的“白盒"測(cè)試和"黑盒"測(cè)試。如果程序的
簡單模型不能解釋未料到的行為,則必須修改程序模型,使其包含更多的事實(shí)和細(xì)節(jié)。如果
還有問題,則要考慮是否修改程序。
3X由于參與軟件開發(fā)的人員眾多,且各有各的側(cè)重面,因此,他們對(duì)"什么是錯(cuò)誤"往往
在認(rèn)識(shí)上是不一致的。為了統(tǒng)一認(rèn)識(shí),必須定義"什么是錯(cuò)誤",即給出"錯(cuò)誤模型"。
41在建立了環(huán)境模型、程序模型、以及錯(cuò)誤模型的基礎(chǔ)上,才能執(zhí)行測(cè)試及測(cè)試結(jié)果的比
較。如果預(yù)料結(jié)果與實(shí)際結(jié)果不符,就要考慮是否是環(huán)境模型、程序、程序模型和錯(cuò)誤模型
的問題。
4、軟件測(cè)試技術(shù)
1X軟件測(cè)試技術(shù)大體上可分為兩大類:一類是白盒測(cè)試技術(shù),典型的是路徑測(cè)試技術(shù);一
類是黑盒測(cè)試技術(shù),又稱為功能測(cè)試技術(shù),包括事務(wù)處理流程技術(shù)、狀態(tài)測(cè)試技術(shù)、定義域
測(cè)試技術(shù)等。
2X白盒測(cè)試技術(shù)依據(jù)的是程序的邏輯結(jié)構(gòu),而黑盒測(cè)試技術(shù)依據(jù)的是軟件行為的描述。
3X軟件錯(cuò)誤可分為結(jié)構(gòu)錯(cuò)誤、數(shù)據(jù)錯(cuò)誤、編程錯(cuò)誤和接口錯(cuò)誤。
4X測(cè)試用例指的是為了發(fā)現(xiàn)程序中的故障而專門設(shè)計(jì)的一組或多組數(shù)據(jù)。
5、路徑測(cè)試技術(shù)
IX基本概念
A、控制流程圖:是程序控制結(jié)構(gòu)的圖形表示,其基本元素是過程塊、結(jié)點(diǎn)、判定。過程塊
是既不能由判定,也不能由結(jié)點(diǎn)分開的一組程序語句,其基本屬性是:如果過程塊中的某個(gè)
語句被執(zhí)行,那么塊中的所有語句都被執(zhí)行。判定是一個(gè)程序點(diǎn),此處控制流可以分叉。結(jié)
點(diǎn)是程序中的一個(gè)點(diǎn),此處控制流可以結(jié)合??刂屏鞒虉D與程序流程圖之間的差異是在控制
流程圖中,不顯示過程塊的細(xì)節(jié),而在程序流程圖中,著重于過程屬性的描述。
B、路徑:是一串指令或語句。它在一個(gè)入口、結(jié)點(diǎn)、判定處開始,在另一入口(或同一入
口X結(jié)點(diǎn)、判定或出口處結(jié)束。顯然一條路徑可一次或多次地穿過幾個(gè)結(jié)點(diǎn)、過程塊或判
定。
2\基本策略
A、路徑測(cè)試(PX)和100%路徑覆蓋率:執(zhí)行所有可能的穿過程序的控制流程路徑。該策
略最強(qiáng),但一般不可實(shí)現(xiàn)。
B、語句測(cè)試(P1)和100%語句覆蓋率(C1):至少執(zhí)行程序中所有語句一次。最弱的邏
輯覆蓋準(zhǔn)則。
C、分支測(cè)試(P2)和100%分支覆蓋率(C2):至少執(zhí)行程序中每一分支一次。
D、條件組合測(cè)試:設(shè)計(jì)足夠的用例,使每個(gè)判定的所有可能的條件取值組合至少執(zhí)行一次。
3\路徑測(cè)試的目標(biāo):執(zhí)行足夠的測(cè)試,以確保最小的C1+C2覆蓋率。
4\路徑選取的一般規(guī)則
A、選擇最簡單的、具有一定功能含義的入口/出口路徑;
B、對(duì)已選的路徑進(jìn)行演化,選取無循環(huán)的路徑;選取短路徑、簡單路徑;
C、選取沒有明顯功能含義的路徑,此時(shí)要研究這樣的路徑為什么存在,為什么沒有通過功
能上合理的路徑得到覆蓋。
5)、對(duì)于循環(huán)的路徑選取
A、單循環(huán)
最小循環(huán)次數(shù)為0,最大次數(shù)為N,且無"跳躍"值:選取"旁通循環(huán)"(零次循環(huán))的
路徑;對(duì)循環(huán)控制變量指定為負(fù)數(shù);一次通過循環(huán);典型的重復(fù)次數(shù);重復(fù)次數(shù)為N-1;重
復(fù)次數(shù)為N;重復(fù)次數(shù)為N+L
非零最小循環(huán)次數(shù),且無"跳躍"值:重復(fù)次數(shù)為最小次數(shù)減1;重復(fù)次數(shù)為最小次數(shù);
重復(fù)次數(shù)為最小次數(shù)加1;一次通過循環(huán),除非已覆蓋;二次通過循環(huán),除非已覆蓋;典型
的重復(fù)次數(shù);重復(fù)次數(shù)為最大次數(shù)減1;重復(fù)次數(shù)為最大次數(shù);重復(fù)次數(shù)為最大次數(shù)加1?
具有跳躍的單循環(huán):除把每"跳躍"邊界,按"最小循環(huán)次數(shù)"和"最大循環(huán)次數(shù)"處理
外,其他均同前兩種循環(huán)的路徑選取規(guī)則。
B、嵌套循環(huán)
在最深層的循環(huán)開始,設(shè)定所有外層循環(huán)取它的最小值;
測(cè)試最小值,最小值加1,典型值,最大值減1,最大值,與此同時(shí),測(cè)試最小值減1,
最大值加1以及“跳躍值"邊界;
設(shè)定內(nèi)循環(huán)在典型值處,按測(cè)試處層循環(huán),直到覆蓋所有循環(huán)。
C、級(jí)聯(lián)循環(huán):如果在退出某個(gè)循環(huán)以后,到達(dá)另一個(gè)循環(huán),目還在同一入口/出口路徑上,
則稱這兩個(gè)循環(huán)是級(jí)聯(lián)的。其中,如果在退出某個(gè)循環(huán)以后,到達(dá)另一個(gè)循環(huán),且循環(huán)的重
復(fù)值與另一個(gè)循環(huán)的重復(fù)值相關(guān),該循環(huán)還在同一入口/出口路徑上,則可認(rèn)為是嵌套循環(huán)。
如果兩個(gè)循環(huán)不在同一入口/出口路徑上,則可認(rèn)為它們是單循環(huán)。
6X舉例
例如:以下為一個(gè)程序流程圖(參見程序流程圖實(shí)例),其中該例子中有兩個(gè)判斷,每個(gè)判
斷都包含復(fù)合條件的邏輯表達(dá)式。
其控制流程圖為:(參見控制流程圖實(shí)例)
A、路徑測(cè)試
該控制流程圖有4條不同的路徑。4條路徑可表示為:
LI(a—c—e)簡寫ace、L2(a—b—d)簡寫abd
L3(a—b—e)簡寫abe、L4(a—Ld)簡寫acd
要想實(shí)現(xiàn)路徑覆蓋,可選擇以下一組測(cè)試用例(規(guī)定測(cè)試用例的設(shè)計(jì)格式為:【輸入的(A,
B,X),輸出的(A,B,X)]):
測(cè)試用例覆蓋路徑
[(2,0,4),(2,0,3)]L1
[(1,1,1),(1,1,1)]L2
[(1,1,2),(1,1,3)]L3
[(3,0,3),(3,0,1)]L4
B、語句測(cè)試(P1):
[(2,0,4),(2,0,3)]L1
C、分支測(cè)試(P2):
如果選擇路徑L1和L2,就可得到實(shí)現(xiàn)分支覆蓋的測(cè)試用例:
[(2,0,4),(2,0,3)]L1
[(1,1,1),(1,1,1)]L2
如果選擇路徑L3和L4,還可得另一組可用的測(cè)試用例:
[(2,1,1),(2,1,2)]L3
[(3,0,3),(3,1,1)]L4
D、條件組合測(cè)試:
要滿足條件組合覆蓋,設(shè)計(jì)的測(cè)試用例必須滿足以下16種條件組合:
(1)(A>1),(B=O),(A=2),(X>1),可標(biāo)記為Tl、T2、T3、T4;
(2)(A>l),(B=0),(A=2),(X41),可標(biāo)記為Tl、T2、T3、F4;
(3)(A>1),(B=O),(A/2),(X>1),可標(biāo)記為Tl、T2、F3、T4
(4)(A>1),(B=O),(A,2),(XW1),可標(biāo)記為Tl、T2、F3、F4。
(5)(A>1),(B/O),(A=2),(X>1),可標(biāo)記為Tl、F2、T3、T4;
(6)(A>l),(B/0),(A=2),(X41),可標(biāo)記為Tl、F2、T3、F4;
(7)(A>1),(BWO),(A,2),(X>1),可標(biāo)記為Tl、F2、F3、T4;
(8)(A>1),(BWO),(A,2),(XW1),可標(biāo)記為Tl、F2、F3、F4O
(9)(A41),(B=O),(A=2),(X>1),可標(biāo)記為Fl、T2、T3、T4;
(10)(A41),(B=0),(A=2),(X41),可標(biāo)記為Fl、T2、T3、F4;
(11)(A41),(B=O),(AH2),(X>1),可標(biāo)記為Fl、T2、F3、T4;
(12)(A41),(B=0),(AH2),(X41),可標(biāo)記為Fl、T2、F3、F4O
(13)(A41),(BHO),(A=2),(X>1),可標(biāo)記為Fl、F2、T3、T4;
(14)(A41),(BH0),(A=2),(X41),可標(biāo)記為Fl、F2、T3、F4;
(15)(A41),(BHO),(AH2),(X>1),可標(biāo)記為Fl、F2、F3、T4;
(16)(A41),(B/0),(AH2),(X41),可標(biāo)記為Fl、F2、F3、F40
可以采用以下四組測(cè)試數(shù)據(jù),從而實(shí)現(xiàn)條件組合覆蓋:
測(cè)試用例覆蓋條件覆蓋組合號(hào)通過路徑
[(2,0,4),(2,0,3)]T1T2T3T41,5L1
[(2,1,1),(2,1,2)]T1F2T3F42.6L3
[(1,0,3),(1,0,4)]F1T2F3T43,7L3
[(1,1,1),(1,1,1)]F1F2F3F44,8L2
6、事務(wù)處理流程測(cè)試技術(shù)
IX基本概念
A、事務(wù):是從系統(tǒng)用戶的角度出發(fā)所見到的一個(gè)工作單元。
B、事務(wù)處理流程:是系統(tǒng)行為的一種表示方法,為功能測(cè)試建立了程序的動(dòng)作模式。
C、事務(wù)處理流程圖:一個(gè)系統(tǒng)的行為表現(xiàn)為多個(gè)事務(wù)的執(zhí)行,這一行為可抽象為事務(wù)處理
流程圖。
2\事務(wù)處理流程圖與控制流程圖的異同
A、相同之處:兩者使用了相同的概念成分,例如處理(對(duì)應(yīng)于過程塊)、分支、結(jié)點(diǎn)。
B、不同之處:事務(wù)流程圖是一種數(shù)據(jù)流程圖,即從操作應(yīng)用的歷史,觀察數(shù)據(jù)對(duì)象;事務(wù)
流程圖中的判定"抽象”了一個(gè)復(fù)雜的過程;事務(wù)流程圖存在“中斷",把一個(gè)過程等價(jià)地
變換為具有繁多出口的鏈支。
3)、測(cè)試步驟
A、獲取事務(wù)流程圖,即建立被測(cè)對(duì)象模型;
B、瀏覽與復(fù)審,主要對(duì)事務(wù)進(jìn)行分類,為設(shè)計(jì)用例奠定基礎(chǔ);
B、用例設(shè)計(jì)
4X要解決的問題:路徑選?。患せ?;測(cè)試設(shè)備;測(cè)試數(shù)據(jù)庫。
7、其他功能測(cè)試技術(shù)
1X等價(jià)類劃分
A、等價(jià)類劃分是把所有可能的輸入數(shù)據(jù)即程序的輸入域劃分成若干(即若干等價(jià)類),然后
從每一部分中選取數(shù)據(jù)作為測(cè)試用例。
B、有效等價(jià)類:指對(duì)于程序的規(guī)格說明來說,是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合;
無效等價(jià)類:指對(duì)于程序規(guī)格說明來說,是不合理的、無意義的輸入數(shù)據(jù)構(gòu)成的集合。
C、測(cè)試步驟:首先劃分等價(jià)類,然后確定測(cè)試用例。
D、確定等價(jià)類的參考原則
①如果某個(gè)輸入條件規(guī)定了輸入數(shù)據(jù)的取值范圍,則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等
價(jià)類;
②如果某個(gè)輸入條件規(guī)定了輸入數(shù)據(jù)的個(gè)數(shù),則可劃分一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。
③如果輸入條件規(guī)定了輸入數(shù)據(jù)的一組可能取的值,而且程序可以對(duì)每個(gè)輸入值分別進(jìn)行處
理,則可為每一個(gè)輸入值確立一個(gè)有效等價(jià)類,而針對(duì)這組值確定一個(gè)無效等價(jià)類。
④如果輸入條件是一個(gè)布爾量,則可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。
⑤如果某個(gè)輸入條件規(guī)定了必須符合的條件,則可劃分一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。
⑥若在已劃分的某一等價(jià)類中各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分
為更小的等價(jià)類。
E、確立測(cè)試用例
①為每一個(gè)等價(jià)類規(guī)定一個(gè)惟一的編號(hào);
②設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直
到所有的有效等價(jià)類都被覆蓋為止;
③設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所
有的無效等價(jià)類都被覆蓋為止。
2X邊界值分析
A、主要思想:經(jīng)驗(yàn)表明,大量的錯(cuò)誤經(jīng)常發(fā)生在輸入或輸出范圍的邊界上。因此,使用等
于、小于或大于邊界值的數(shù)據(jù)對(duì)程序進(jìn)行測(cè)試,發(fā)現(xiàn)錯(cuò)誤的概率較大。
B、測(cè)試原則
①如果某個(gè)輸入條件規(guī)定了輸入值的范圍,則應(yīng)選擇正好等于邊界值的數(shù)據(jù),以及剛剛超過
邊界值的數(shù)據(jù)作為測(cè)試數(shù)據(jù)。
②如果某個(gè)輸入條件規(guī)定了值的個(gè)數(shù),則可用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多1、比最
小個(gè)數(shù)少1的數(shù)作為測(cè)試數(shù)據(jù)。
③根據(jù)規(guī)格說明的每個(gè)輸出條件,使用前面的原則①。
④根據(jù)規(guī)格說明的每個(gè)輸出條件,使用前面的原則②。
⑤如果程序的規(guī)格說明中,輸入域或輸出域是有序集合,則選取集合的第一個(gè)元素,最后一
個(gè)元素以及典型元素作為測(cè)試用例。
⑥如果程序中使用了內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用
例。
⑦分析規(guī)格說明,找出其他可能的邊界條件。
3X因果圖:是設(shè)計(jì)測(cè)試用例的一種工具,它著重檢查各種輸入條件的組合。
8、軟件測(cè)試步驟
1)、合理的測(cè)試序列:單元測(cè)試、集成測(cè)試、有效性測(cè)試和系統(tǒng)測(cè)試。
2X單元測(cè)試:主要檢驗(yàn)軟件設(shè)計(jì)的最小單位——模塊。一般采用白盒測(cè)試技術(shù)。在單元測(cè)
試期間,通??紤]模塊的四個(gè)特征:模塊接口;局部數(shù)據(jù)結(jié)構(gòu);"重要的"執(zhí)行路徑;錯(cuò)誤
執(zhí)行路徑。單元測(cè)試步驟分四部分:首先測(cè)試穿過模塊接口的數(shù)據(jù)流;繼之進(jìn)行數(shù)據(jù)結(jié)構(gòu)的
測(cè)試;還要進(jìn)行執(zhí)行路徑的選擇測(cè)試;邊界測(cè)試是單元測(cè)試中的最后工作,也是最重要的工
作。
3X集成測(cè)試:是軟件組裝的一個(gè)系統(tǒng)化技術(shù),其目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤,將經(jīng)過單
元測(cè)試的模塊構(gòu)成一個(gè)滿足設(shè)計(jì)要求的軟件結(jié)構(gòu)。分為自頂向下的集成測(cè)試和自底向上的集
成測(cè)試。
4X有效性測(cè)試:目標(biāo)是發(fā)現(xiàn)軟件實(shí)現(xiàn)的功能與需求規(guī)格說明書不一致的錯(cuò)誤,有效性測(cè)試
通常采取黑盒測(cè)試技術(shù)。
軟件過程與改善
1、軟件過程
1X軟件過程是軟件生存周期中的一系列相關(guān)過程,又稱為軟件生存周期過程。過程是活動(dòng)
的集合,活動(dòng)是任務(wù)的集合,任務(wù)是將輸入變換為輸出的操作?;顒?dòng)的執(zhí)行可以是順序的,
可以是重復(fù)的,可以是并行的,也可以是嵌套的。
2X按照不同人員的工作內(nèi)容來分,軟件過程可分為三類:基本過程、支持過程和組織過程。
2、基本過程
1X指那些與軟件生產(chǎn)直接相關(guān)的過程,包括獲取過程、供應(yīng)過程、開發(fā)過程、運(yùn)行過程和
維護(hù)過程。
2X獲取過程:是獲取者為了得到一個(gè)軟件系統(tǒng)或軟件產(chǎn)品所進(jìn)行的一系列活動(dòng)。它從確定
獲取該系統(tǒng)或軟件產(chǎn)品的需求定義開始,經(jīng)過招標(biāo)準(zhǔn)備,合同的準(zhǔn)備和修改,對(duì)供應(yīng)方的監(jiān)
督,直到驗(yàn)收完成方告結(jié)束。
3X供應(yīng)過程:是供應(yīng)者為獲取者提供軟件產(chǎn)品的一系列活動(dòng)。它從理解系統(tǒng)或軟件產(chǎn)品的
需求開始,經(jīng)過投標(biāo)準(zhǔn)備,簽訂合同,制定計(jì)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版國際金融風(fēng)險(xiǎn)管理合同范本3篇
- 二零二五版建筑工地勞務(wù)用工及社會(huì)保障服務(wù)合同范本3篇
- 二零二五年酒店客房協(xié)議價(jià)優(yōu)惠合作合同3篇
- 2024政府采購合同環(huán)境與安全監(jiān)督協(xié)議3篇
- 2025年新型城鎮(zhèn)化項(xiàng)目水電設(shè)施安裝施工合同3篇
- 二零二五版板房租賃與租賃期滿資產(chǎn)評(píng)估與轉(zhuǎn)讓合同3篇
- 二零二五年度出租車司機(jī)服務(wù)規(guī)范與客戶滿意度提升合同3篇
- 二零二五年透水混凝土工程驗(yàn)收與評(píng)估合同2篇
- 二零二五年智能交通管理系統(tǒng)采購合同3篇
- 二零二五版房屋代理租賃資產(chǎn)評(píng)估合同3篇
- 蓋洛普Q12解讀和實(shí)施完整版
- 2023年Web前端技術(shù)試題
- GB/T 20840.8-2007互感器第8部分:電子式電流互感器
- GB/T 14864-2013實(shí)心聚乙烯絕緣柔軟射頻電纜
- 品牌策劃與推廣-項(xiàng)目5-品牌推廣課件
- 信息學(xué)奧賽-計(jì)算機(jī)基礎(chǔ)知識(shí)(完整版)資料
- 發(fā)煙硫酸(CAS:8014-95-7)理化性質(zhì)及危險(xiǎn)特性表
- 數(shù)字信號(hào)處理(課件)
- 公路自然災(zāi)害防治對(duì)策課件
- 耳鳴中醫(yī)臨床路徑
- 安徽身份證號(hào)碼前6位
評(píng)論
0/150
提交評(píng)論