版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、填空題(每空1分,共25分)
1.軟件生存周期一般可以劃分為,問(wèn)題定義、、、設(shè)計(jì)、
編碼、測(cè)試和。
2.基于軟件的功能劃分,軟件可以劃分成、、________三種。
3.可行性研究,應(yīng)從、技術(shù)可行性、運(yùn)行可行性、和開(kāi)放方案可行性等方面研究。
4.系統(tǒng)流程圖是描繪的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以
描繪系統(tǒng)里面的每個(gè)部件。
5.數(shù)據(jù)流圖的基本四種成分:數(shù)據(jù)輸入的源點(diǎn)和數(shù)據(jù)輸出匯點(diǎn)、、
和。
6.結(jié)構(gòu)化分析方法是面向進(jìn)行需求分析的方法。結(jié)構(gòu)化分析方法使
用與來(lái)描述。
7.是自動(dòng)地共享類(lèi)、子類(lèi)和對(duì)象中的方法和數(shù)據(jù)的機(jī)制。
8.軟件詳細(xì)設(shè)計(jì)工具可分為3類(lèi),即、和
9.為了在軟件開(kāi)發(fā)過(guò)程中保證軟件的質(zhì)量,主要采取下述措施:
復(fù)查和管理復(fù)審、O
10.大型軟件測(cè)試包括、、確認(rèn)測(cè)試和
四個(gè)步驟。
1、可行性研究需求分析運(yùn)行與維護(hù)
2、系統(tǒng)軟件支撐軟件應(yīng)用軟件
3、經(jīng)濟(jì)可行性法律可行性
4、物理系統(tǒng)黑盒子形式
5、加工數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)文件
6、數(shù)據(jù)流數(shù)據(jù)流圖DFD數(shù)據(jù)字典DD
7、繼承性
8、圖示工具、設(shè)計(jì)語(yǔ)言表格工具
9、審查測(cè)試
10、單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試
二、單項(xiàng)選擇題(每小題2分,共20分)
12345
CCCAC
678910
DDACB
1.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()o
A、低內(nèi)聚低耦合
B、低內(nèi)聚高耦合
C、高內(nèi)聚低耦合
D、高內(nèi)聚高耦合
2.Jackson設(shè)計(jì)方法是由英國(guó)的M.Jackson提出的,它是一種面向()的軟件
設(shè)計(jì)方法。
A、對(duì)象
B、數(shù)據(jù)流
C、數(shù)據(jù)結(jié)構(gòu)
D、控制結(jié)構(gòu)
3.試判斷下列敘述中,哪個(gè)(些)是正確的()。
a、軟件系統(tǒng)中所有的信息流都可以認(rèn)為是事務(wù)流
b、軟件系統(tǒng)中所有的信息流都可以認(rèn)為是變換流
c、事務(wù)分析和變換分析的設(shè)計(jì)步驟是基本相似的
A、aB、bC、cD、b和c
4.()是用戶和設(shè)計(jì)交換最頻繁的方法。
A、原型化方法B、瀑布模型方法
C、螺旋模型方法D、構(gòu)件組裝模型
5.軟件工程方法學(xué)的目的是:使軟件生產(chǎn)規(guī)范化和工程化,而軟件工程方法得以實(shí)施
的主要保證是(兀
A、硬件環(huán)境B、軟件開(kāi)發(fā)的
環(huán)境
C、軟件開(kāi)發(fā)工具和軟件開(kāi)發(fā)的環(huán)境D、開(kāi)發(fā)人員的素質(zhì)
6.20世紀(jì)50年代以來(lái),出現(xiàn)了許多不同的程序設(shè)計(jì)語(yǔ)言,下列語(yǔ)言中哪個(gè)語(yǔ)言是低
級(jí)語(yǔ)言()。
A、PASCALB、VISUALBASIC
C、C++D、匯編語(yǔ)言
7.軟件測(cè)試的目的是?()
A、證明軟件的正確性
B、找出軟件系統(tǒng)中存在的所有錯(cuò)誤
C、證明軟件系統(tǒng)中存在錯(cuò)誤
D、盡可能多的發(fā)現(xiàn)軟件系統(tǒng)中的錯(cuò)誤
8.使用白盒測(cè)試方法時(shí),確定測(cè)試數(shù)據(jù)應(yīng)根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。
A、程序的內(nèi)部邏輯B、程序的復(fù)雜程度
C、該軟件的編輯人員D、程序的功能
9.軟件維護(hù)工作的最主要部分是(兀
A、校正性維護(hù)B、適應(yīng)性維護(hù)
C、完善性維護(hù)I)、預(yù)防性維護(hù)
10.PDL是()語(yǔ)言。
A、高級(jí)程序設(shè)計(jì)語(yǔ)言B、偽碼式
C、中級(jí)程序設(shè)計(jì)語(yǔ)言D、低級(jí)程序設(shè)計(jì)語(yǔ)言
三、判斷題(正確的在括號(hào)內(nèi)打上“J”,錯(cuò)誤的打上“X”。每題2分,共20分)
1.用黑盒法測(cè)試時(shí),測(cè)試用例是根據(jù)程序內(nèi)部邏輯設(shè)計(jì)的。(X)
2.發(fā)現(xiàn)錯(cuò)誤多的程序模塊,殘留在模塊中的錯(cuò)誤也多。(V)
3.為了加快軟件維護(hù)作業(yè)的進(jìn)度,應(yīng)盡可能增加維護(hù)人員的數(shù)目。(X)
4.軟件維護(hù)就是改正軟件中的錯(cuò)誤。(X)
5.質(zhì)量保證是為了保證產(chǎn)品和服務(wù)充分滿足消費(fèi)者要求的質(zhì)量而進(jìn)行的有計(jì)劃,有組
織的活動(dòng)。(V)
6.軟件開(kāi)發(fā)的主要任務(wù)是寫(xiě)程序。(X)
7.測(cè)試只能證明程序有錯(cuò)誤,不能證明程序沒(méi)有錯(cuò)誤。(V)
8.模塊化程序設(shè)計(jì)中,模塊越小,模塊化的優(yōu)點(diǎn)越明顯。一般來(lái)說(shuō),模塊的大小都
在10行以下。(X)
9.在編制程序時(shí),首先應(yīng)該對(duì)程序的結(jié)構(gòu)充分考慮,不要急于開(kāi)始編碼,而要像寫(xiě)軟
件文檔那樣,很好地琢磨程序具有什么樣的功能,這些功能如何安排,等等。
(X)
10.程序設(shè)計(jì)風(fēng)格指導(dǎo)原則提出,盡量多使用臨時(shí)變量。(X)
四、簡(jiǎn)答題(每題5分,共20分)
1.什么是軟件工程?
軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)
和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到
的最好的技術(shù)方法結(jié)合起來(lái)。
2.耦合性和內(nèi)聚性有幾種類(lèi)型?其耦合度、內(nèi)聚強(qiáng)度的順序如何?
低:非直接耦合f數(shù)據(jù)耦合f標(biāo)記耦合一控制耦合-外部耦合->公共耦合一內(nèi)
容耦合:高
強(qiáng):功能內(nèi)聚-信息內(nèi)聚一通信內(nèi)聚一過(guò)程內(nèi)聚f時(shí)間內(nèi)聚一邏輯內(nèi)聚-
巧合內(nèi)聚:弱
3.簡(jiǎn)述需求分析工作可以分成哪四個(gè)方面?軟件需求分析的有哪三個(gè)基本原則?
:需求分析階段分成四個(gè)方面:對(duì)問(wèn)題的識(shí)別、分析與綜合、制定規(guī)格說(shuō)明和評(píng)審。
三個(gè)基本原則:必須能夠表達(dá)和理解問(wèn)題的數(shù)據(jù)域和功能域;必須按自頂向下、逐
步分解的方式對(duì)問(wèn)題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。
4.什么是黑盒測(cè)試法?
黑盒測(cè)試法把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程,
它只檢查程序功能是否能按照規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮?/p>
輸入數(shù)據(jù),產(chǎn)生正確地輸出信息。
五、程序設(shè)計(jì)與算法描述題(共15分)
1.根據(jù)下面的偽代碼程序,完成相應(yīng)要求。(8分)
START
IFC1
THEN
WHILEC2DO
f
ENDDO
ELSE
BLOCK
g
P
ENDBLOCK
ENDIF
REPEATUNTILC3
q
ENDREP
STOP
1)畫(huà)出程序流程圖(4分)
2.有下列偽碼程序:
START
INPUT(M,N)
IFM>=10
THENX=10
ELSEX=l
ENDIF
IFN>=20
THENY=20
ELSEY=2
ENDIF
PRINT(X,Y)
STOP
設(shè)計(jì)該程序的語(yǔ)句覆蓋和路徑覆蓋測(cè)試用例。(7分)
M=9(或<10),N=19(或〈20);
M=10(或>二10),N=20(或>:20)
路徑覆蓋的測(cè)試用例為
M=9,N=19;
M=9、N=20;
M=10,N=19;
M=10,N=20
要目標(biāo)是提高軟件質(zhì)量,減少軟件維護(hù)代價(jià)。
~問(wèn)題定義(確定題目)
,軟件定義V可行性研究
、需求分析
一概要設(shè)計(jì)
-系統(tǒng)設(shè)計(jì)-
一詳細(xì)設(shè)計(jì)
軟件生命周期:<軟件開(kāi)發(fā)一
一編碼和單元測(cè)試
、系統(tǒng)實(shí)現(xiàn)一
J綜合測(cè)試
I運(yùn)行維護(hù):主要任務(wù)是使軟件持久地滿足用戶的需要
軟件過(guò)程五個(gè)模型對(duì)比(瀑布模型、快速原型、增量、螺旋、噴泉模型)
可行性研究:
1、任務(wù):用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。
2、四個(gè)方面:技術(shù)、經(jīng)濟(jì)、操作可行性
3、數(shù)據(jù)流圖四種成分:1、源點(diǎn)/終點(diǎn)2、處理3、數(shù)據(jù)存儲(chǔ)4、數(shù)據(jù)流
需求分析:
1、任務(wù):確定系統(tǒng)必須完成哪些工作,對(duì)目標(biāo)系統(tǒng)提出完整、清晰、具體的要求。
2、結(jié)構(gòu)化方法就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。
3、實(shí)體聯(lián)系圖:1、數(shù)據(jù)對(duì)象2、屬性3、聯(lián)系(1:1、1:N、M:N)
總體設(shè)計(jì):
任務(wù):回答''概括的說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)",用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)
定的任務(wù),也就是說(shuō)應(yīng)該確定系統(tǒng)的物理配置方案,并且進(jìn)而確定組成系統(tǒng)的每個(gè)程序結(jié)構(gòu)。
系統(tǒng)設(shè)計(jì)階段(確定系統(tǒng)具體實(shí)施方案)、結(jié)構(gòu)設(shè)計(jì)階段(確定軟件結(jié)構(gòu))
模塊獨(dú)立:內(nèi)聚和耦合
耦合表示一個(gè)軟件結(jié)構(gòu)內(nèi)各個(gè)模塊之間的互連程度,應(yīng)盡量選用松散耦合的系統(tǒng)
低耦合性高
非直接耦合數(shù)據(jù)耦合標(biāo)記耦臺(tái)控制耦合外部耦合公共耦合內(nèi)容耦合
強(qiáng)^---------------------模塊獨(dú)立性--------------------------弱
內(nèi)聚(Cohesion):一個(gè)模塊內(nèi)各元素結(jié)合的緊密程度
高-------------------------內(nèi)聚性---------------------------低
功能內(nèi)聚信息內(nèi)聚通信內(nèi)聚過(guò)程內(nèi)聚時(shí)間內(nèi)聚邏輯內(nèi)聚巧合內(nèi)聚
強(qiáng)------------------------模塊獨(dú)立性-------------------------弱
功能單一功能分散
面向數(shù)據(jù)流的設(shè)計(jì)方法:變換流和事務(wù)流
詳細(xì)設(shè)計(jì):
任務(wù):確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō)經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作應(yīng)該得出
對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書(shū)
寫(xiě)的程序。
過(guò)程設(shè)計(jì)的工具(程序流程圖、盒圖、PAD圖、判定表、判定樹(shù))
面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(jackson方法):
程序復(fù)雜程度的定量(McCabe方法):1、V(G)=E-N+2(E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù))
2、V(G)=P+1(P是流圖中判定結(jié)點(diǎn)的個(gè)數(shù))3、流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。
編碼
單元測(cè)試:又稱(chēng)模塊測(cè)試。每個(gè)程序模塊完成一個(gè)相對(duì)獨(dú)立的子功能,所以可以對(duì)該模塊進(jìn)
行單獨(dú)的測(cè)試。由于每個(gè)模塊都有清晰定義的功能,所以通常比較容易設(shè)計(jì)相應(yīng)的測(cè)試方案,
以檢驗(yàn)每個(gè)模塊的正確性。
集成測(cè)試:
在單元測(cè)試完成后,要考慮將模塊集成為系統(tǒng)的過(guò)程中可能出現(xiàn)的問(wèn)題,例如,模塊之間的
通信和協(xié)調(diào)問(wèn)題,所以在單元測(cè)試結(jié)束之后還要進(jìn)行集成測(cè)試。這個(gè)步驟著重測(cè)試模塊間的
接口,子功能的組合是否達(dá)到了預(yù)期要求的功能,全程數(shù)據(jù)結(jié)構(gòu)是否有問(wèn)題等。
白盒測(cè)試技術(shù)(邏輯覆蓋、基本路經(jīng)測(cè)試)
白盒測(cè)試時(shí)將程序看作是一個(gè)透明的盒子,也就是說(shuō)測(cè)試人員完全了解程序的內(nèi)部結(jié)構(gòu)和處
理過(guò)程。所以測(cè)試時(shí)按照程序內(nèi)部的邏輯測(cè)試程序、檢驗(yàn)程序中的每條通路是否都能按預(yù)定
的要求正確工作。白盒測(cè)試又稱(chēng)為結(jié)構(gòu)測(cè)試。
語(yǔ)句覆蓋就是設(shè)計(jì)足夠的調(diào)試用例,使得程序中的每個(gè)語(yǔ)句至少執(zhí)行一次。
判定覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得程序中每個(gè)判定的取“真'’分支和取"假’'分支至少都
執(zhí)行一次,判定覆蓋又稱(chēng)分支覆蓋
條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得程序判定中的每個(gè)條件能獲得各種可能的結(jié)果。
判定/條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判定中的每個(gè)條件都取到各種可能的值,而
且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。
條件組合覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得每個(gè)判定中的條件的各種可能組合都至少出現(xiàn)
一次。
基本路經(jīng)測(cè)試:
黑盒測(cè)試技術(shù)(等價(jià)劃分)
黑盒測(cè)試時(shí)完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過(guò)程,只按照規(guī)格說(shuō)明書(shū)的規(guī)定來(lái)檢查程序是
否符合它的功能要求。黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,又稱(chēng)為功能測(cè)試。
1、黑盒測(cè)試檢查的主要方面有:
程序的功能是否正確或完善;
數(shù)據(jù)的輸入能否正確接收,輸出是否正確;
是否能保證外部信息(如數(shù)據(jù)文件)的完整性等。
用黑盒法設(shè)計(jì)測(cè)試用例時(shí),必須用所有可能的輸入數(shù)據(jù)來(lái)檢查程序是否都能產(chǎn)生正確的輸出
2、等價(jià)類(lèi)劃分
等價(jià)類(lèi)的劃分在很大程度上依靠的是測(cè)試人員的經(jīng)驗(yàn),下面給出幾條基本原則:
(1)如果輸入條件規(guī)定了取值范圍,則可劃分出一個(gè)有效的等價(jià)類(lèi)(輸入值在此范圍內(nèi))
和兩個(gè)無(wú)效的等價(jià)類(lèi)(輸入值小于最小值、輸入值大于最大值)。
(2)如果輸入條件規(guī)定了輸入數(shù)據(jù)的個(gè)數(shù),則可相應(yīng)地劃分出一個(gè)有效的等價(jià)類(lèi)(輸入數(shù)
據(jù)的個(gè)數(shù)等于給定的個(gè)數(shù)要求)和兩個(gè)無(wú)效的等價(jià)類(lèi)(輸入數(shù)據(jù)的個(gè)數(shù)少于給定的個(gè)數(shù)要求、
輸入數(shù)據(jù)的個(gè)數(shù)多于給定的個(gè)數(shù)要求)。
(3)如果輸入條件規(guī)定了輸入數(shù)據(jù)的一組可能的值,而且程序?qū)@組可能的值做相同的處
理,則可將這組可能的值劃分為一個(gè)有效的等價(jià)類(lèi),而這些值以外的值劃分成無(wú)效的等價(jià)類(lèi)。
(4)如果輸入條件規(guī)定了輸入數(shù)據(jù)的一組可能的值,但是程序?qū)Σ煌妮斎胫底霾煌奶?/p>
理,則每個(gè)輸入值是一個(gè)有效的等價(jià)類(lèi),此外還有一個(gè)無(wú)效的等價(jià)類(lèi)(所有不允許值的集合)。
(5)如果輸入條件規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可以劃分一個(gè)有效的等價(jià)類(lèi)(符合
規(guī)則)和若干個(gè)無(wú)效的等價(jià)類(lèi)(從各種角度違反規(guī)則)。
維護(hù)(改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù))
決定軟件可維護(hù)性因素(可理解性、可測(cè)試性、可修改性、可移植性、可重用性)
面向?qū)ο蠓椒▽W(xué)優(yōu)點(diǎn):1、與人類(lèi)習(xí)慣的思維方法一致2、穩(wěn)定性好3、可重用性好4、較易
開(kāi)發(fā)大型軟件產(chǎn)品5、可維護(hù)性好
對(duì)象模型1、關(guān)聯(lián)2、聚集3、泛化4、依賴(lài)和細(xì)化
貳軟件工程
1.1軟件危機(jī)
I、軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。
(熟記)
2、了解軟件危機(jī)主要的一些典型表現(xiàn)。(P2)
3、出現(xiàn)軟件危機(jī)的原因:
4、消除軟件危機(jī)的途徑:首先,我們要對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí);更重
要的是,必須充分認(rèn)識(shí)到軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種
組織良好、管理嚴(yán)格、各類(lèi)人員協(xié)同配合、共同完成的工程項(xiàng)目;最后,應(yīng)該開(kāi)
發(fā)和使用更好的軟件工具。
總之,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織
管理措施。
1.2軟件工程
I、軟件工程:采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)和維護(hù)軟件,把經(jīng)過(guò)
時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以
經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。(熟記)
2、了解軟件工程的本質(zhì)特征:
1)、軟件工程關(guān)注于大型程序的構(gòu)造
2)、軟件工程的中心課題是控制復(fù)雜性
3)、軟件經(jīng)常變化
4)、開(kāi)發(fā)軟件的效率非常重要
5)、和諧的合作是開(kāi)發(fā)軟件的關(guān)鍵
6)、軟件必須有效地支持它的用戶
7)、在軟件工程的領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背
景的人創(chuàng)造產(chǎn)品
3、缺乏應(yīng)用領(lǐng)域地相關(guān)知識(shí),是軟件開(kāi)發(fā)項(xiàng)目出現(xiàn)問(wèn)題的常見(jiàn)原因。
4、軟件工程的基本原理:
1)、用分階段的生命周期計(jì)劃嚴(yán)格管理
2)、堅(jiān)持進(jìn)行階段審評(píng)
3)、實(shí)行嚴(yán)格的產(chǎn)品控制
4)、采用現(xiàn)代程序設(shè)計(jì)技術(shù)
5)、結(jié)果應(yīng)能清楚地審查
6)、開(kāi)發(fā)小組的人員應(yīng)該少而精
7)、承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性
5、方法學(xué)(范型):在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合。
6、軟件工程方法學(xué)3要素:方法、工具和過(guò)程。
7、目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)
8、傳統(tǒng)方法學(xué)也成為生命周期方法學(xué)或結(jié)構(gòu)化范型。
9、面向?qū)ο蠓椒▽W(xué)具有的4個(gè)要點(diǎn)。(P10)
1.3軟件生命周期
1、概括地說(shuō),軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)(也稱(chēng)為軟件維
護(hù))3個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。
2、軟件定義時(shí)期的任務(wù)
3、軟件定義時(shí)期通常進(jìn)一步劃分成3個(gè)階段:?jiǎn)栴}定義、可行性研究、需求分
析
4、維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。
5、軟件開(kāi)發(fā)時(shí)期通常分成4個(gè)階段:總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、
綜合測(cè)試。前兩個(gè)階段又稱(chēng)為系統(tǒng)設(shè)計(jì),后兩個(gè)階段又稱(chēng)為系統(tǒng)實(shí)現(xiàn)。
6、軟件生命周期每個(gè)階段的基本任務(wù):?jiǎn)栴}定義、可行性研究、需求分析、總
體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試.
1.4軟件工程
生命周期模型(過(guò)程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、
噴泉模型。
(對(duì)各種模型要了解)
1.5小結(jié)(熟讀,對(duì)本章系統(tǒng)地了解)
可行性分析
可行性分析的目的:用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。
2.1可行性研究的任務(wù)
研究解法的可行性的三個(gè)方面:技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性。
可行性研究最根本的任務(wù):對(duì)以后的行動(dòng)方針提出建議。
可行性研究需要的時(shí)間長(zhǎng)短取決于工程的規(guī)模。
2.2可行性研究過(guò)程
復(fù)查系統(tǒng)規(guī)模和目標(biāo)
研究目前正在試用的系統(tǒng)
導(dǎo)出新系統(tǒng)的高層邏輯模型
進(jìn)一步定義問(wèn)題
導(dǎo)出和評(píng)價(jià)供選擇的解法
推薦行動(dòng)方針
草擬開(kāi)發(fā)計(jì)劃
書(shū)寫(xiě)文檔提交審查
2.3系統(tǒng)流程圖
1、系統(tǒng)流程圖:概括地描繪物理系統(tǒng)的工具。
2、系統(tǒng)流程圖的基本思想:用圖形符號(hào)以黑盒子形式描繪組系統(tǒng)的每個(gè)部件(程
序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程等)。
3、P39符號(hào)
4、系統(tǒng)流程圖的習(xí)慣畫(huà)法:使信息在圖中從頂向下或從左向右流動(dòng)。
5、面對(duì)復(fù)雜的系統(tǒng)時(shí),一個(gè)比較好的方法時(shí)分層次地描繪這個(gè)系統(tǒng)。
2.4數(shù)據(jù)流圖
數(shù)據(jù)流圖(DFD):一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的
過(guò)程中所經(jīng)受的變換。
數(shù)據(jù)流圖的四種基本符號(hào)P41
數(shù)據(jù)存儲(chǔ)(靜止?fàn)顟B(tài))和數(shù)據(jù)流(運(yùn)動(dòng))都是數(shù)據(jù)。
數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”,而不是考慮“怎么做”。
星號(hào)(*)是數(shù)據(jù)流之間的“與”關(guān)系;加號(hào)(+)表示“或”關(guān)系;十號(hào)表示只
能從中選一個(gè)(互斥關(guān)系)。
畫(huà)數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。
2.5數(shù)據(jù)字典
數(shù)據(jù)字典應(yīng)由對(duì)下列4類(lèi)元素的定義組成:數(shù)據(jù)流、數(shù)據(jù)流分量(即數(shù)據(jù)元素)、
數(shù)據(jù)存儲(chǔ)、處理。
由數(shù)據(jù)元素組成數(shù)據(jù)的方式的三種基本類(lèi)型:順序、選擇、重復(fù)。+可選
用以下符號(hào)描述由數(shù)據(jù)元素組成數(shù)據(jù)的關(guān)系:=意思是等價(jià)于(或定義為)、+意
思是和(即連接兩個(gè)分量)、[}意思是或(通常用號(hào)隔開(kāi)供選擇的分量)、
{}意思是重復(fù)、()意思是可選。
數(shù)據(jù)字典最重要的用途是作為分析階段的工具。
2.6成本/效益分析
成本/效益分析的目的:從經(jīng)濟(jì)角度分析開(kāi)發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而
幫助客戶組織的負(fù)責(zé)人正確地作出是否投資于這項(xiàng)開(kāi)發(fā)工程的決定。
軟件開(kāi)發(fā)成本:主要表現(xiàn)為人力消耗。
成本估算技術(shù):代碼行技術(shù)、任務(wù)分解技術(shù)、自動(dòng)估計(jì)成本技術(shù)。
貨幣的時(shí)間價(jià)值:用利率的形式。
假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后的價(jià)值:F=P(l+i)'n
衡量一項(xiàng)開(kāi)發(fā)工程的價(jià)值:投資回收期。
純收入
投資回收率
2.7小結(jié)
三需求分析
需求分析是軟件定義時(shí)期的最后一個(gè)階段。
基本任務(wù):準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問(wèn)題。
用于需求分析的結(jié)構(gòu)化分析方法必須遵守下述準(zhǔn)則:
(1)、必須理解并描述問(wèn)題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該應(yīng)該建立數(shù)據(jù)模型。
E-R圖
(2)、必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。數(shù)據(jù)流圖
(3)、必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。
狀態(tài)圖
(4)、必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展開(kāi)細(xì)
節(jié)。
3.1需求分析的任務(wù)
對(duì)軟件系統(tǒng)的綜合要求:功能需求、性能需求、可靠性和可用性需求、出錯(cuò)處理
需求、接口需求、約束、逆向需求、將來(lái)可能提出的要求。
需求分析的任務(wù):確定對(duì)系統(tǒng)的綜合要求
分析系統(tǒng)的數(shù)據(jù)要求
導(dǎo)出系統(tǒng)的邏輯模型
修正系統(tǒng)開(kāi)發(fā)計(jì)劃
3.2與用戶溝通獲取需求的方法
訪談、面向數(shù)據(jù)流自頂向下求精、簡(jiǎn)易地應(yīng)用規(guī)格說(shuō)明技術(shù),快速建立軟件原型。
結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下求精進(jìn)行需求分析的方法。
快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)。
3.3分析建模與規(guī)格說(shuō)明
需求分析過(guò)程應(yīng)建立3種模型:數(shù)據(jù)模型、功能模型、行為模型。
數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)。
狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)。
3.4實(shí)體-聯(lián)系圖(E-R)
E-R圖中包含著實(shí)體(即數(shù)據(jù)對(duì)象)、關(guān)系和屬性3種基本成分。
3.5數(shù)據(jù)規(guī)范化
第一范式:每個(gè)屬性值都必須是原子值,即僅僅是一個(gè)簡(jiǎn)單值而不含內(nèi)部結(jié)構(gòu)。
第二范式:滿足第一范式的條件,而且每個(gè)非關(guān)鍵字都由整個(gè)關(guān)鍵字決定(而不
第三范式:符合%二范式的,件,每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一
個(gè)非關(guān)鍵字屬性不能僅僅是對(duì)另一個(gè)非關(guān)鍵字屬性的進(jìn)一步描述(即一個(gè)非關(guān)鍵
字屬性值不依賴(lài)于另一個(gè)非關(guān)鍵字屬性值)。
3.6狀態(tài)轉(zhuǎn)換圖
狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱(chēng)狀態(tài)圖):通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,
來(lái)表示系統(tǒng)的行為。
在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即初始狀態(tài))、終態(tài)(即最終狀態(tài))和中
間狀態(tài)。在狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有o至多個(gè)。
事件就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。
在狀態(tài)圖中,初態(tài)用一對(duì)同心圓(內(nèi)圓為實(shí)心圓)表示。中間狀態(tài)用圓角矩形表
示。如圖:
活動(dòng)方件名(參數(shù)表)/動(dòng)作表達(dá)式
狀態(tài)名1
在活漫3種標(biāo)準(zhǔn)事件:
注入該狀態(tài)的動(dòng)作
狀態(tài)變量的
出該狀態(tài)的動(dòng)作
名字和值
亥狀態(tài)下的動(dòng)作
活動(dòng)表
狀態(tài)轉(zhuǎn)轉(zhuǎn)換方向。
事件表、直的有法:1:件說(shuō)明【守衛(wèi)條件】/動(dòng)作表達(dá)式
事件說(shuō)明與守衛(wèi)條件同時(shí)使用時(shí),則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式為真時(shí),
狀態(tài)轉(zhuǎn)換才發(fā)生;如果只有守衛(wèi)條件沒(méi)有事件說(shuō)明則只要守衛(wèi)條件為真,狀態(tài)轉(zhuǎn)
換就發(fā)生。
守衛(wèi)條件是一個(gè)布爾表達(dá)式。
動(dòng)作表達(dá)式是一個(gè)過(guò)程表達(dá)式,當(dāng)狀態(tài)表達(dá)式開(kāi)始時(shí)執(zhí)行該表達(dá)式。
3.7其他圖形
層次方框圖、warnier圖、IPO圖(輸入、處理、輸出圖的簡(jiǎn)稱(chēng))
3.8驗(yàn)證軟件需求
從四個(gè)方面進(jìn)行驗(yàn)證:一致性、完整新、現(xiàn)實(shí)性、有效性
3.9小結(jié)
五總體設(shè)計(jì)
5.1設(shè)計(jì)過(guò)程
總體設(shè)計(jì)過(guò)程通常有兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方
案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件的結(jié)構(gòu)。
典型的總體設(shè)計(jì)過(guò)程包括下述9個(gè)步驟:
1)、設(shè)想宮選擇的方案
需求分析階段得出的數(shù)據(jù)流程圖是總體設(shè)計(jì)的極好的出發(fā)點(diǎn)。
2)、選擇合理的方案
對(duì)每個(gè)合理的方案,分析員都應(yīng)準(zhǔn)備下列四份材料:
A.系統(tǒng)流程圖
B.組成系統(tǒng)的物理元素清單
C.成本/效益分析
D.實(shí)現(xiàn)各個(gè)系統(tǒng)的進(jìn)度計(jì)劃
3)、推薦最佳方案
4)、功能分解
5)、設(shè)計(jì)軟件結(jié)構(gòu)
軟件結(jié)構(gòu)可以用層次圖或結(jié)構(gòu)圖來(lái)描繪。
6)、設(shè)計(jì)數(shù)據(jù)庫(kù)
7)、制定測(cè)試計(jì)劃
8)、書(shū)寫(xiě)文檔
這個(gè)階段完成的文檔有:系統(tǒng)說(shuō)明、用戶手冊(cè)、測(cè)試計(jì)劃、詳細(xì)的實(shí)現(xiàn)
計(jì)劃、數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果。
9)、審查和復(fù)查
5.2設(shè)計(jì)原理
模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨(dú)立
模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。
模塊是構(gòu)成程序的基本構(gòu)件。
模塊化就是把程序分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功
能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。
抽象:把相似的方面集中和概括起來(lái),暫時(shí)忽略它們之間的差異,或者說(shuō),抽出
事物的本質(zhì)特性而暫時(shí)不考慮它們之間的細(xì)節(jié)。
逐步求精是人類(lèi)解決復(fù)雜問(wèn)題時(shí)采用的基本方法,也是許多軟件工程技術(shù)的基
礎(chǔ)。定義:為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。
信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過(guò)
程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。
局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。
模塊獨(dú)立的概念是模塊化,抽象,信息隱藏和局部化概念的直接結(jié)果。
模塊獨(dú)立化重要性的原因:第一,有效地模塊化的軟件比較容易開(kāi)發(fā)出來(lái);第二,
獨(dú)立的模塊化比較容易測(cè)試和維護(hù)。
模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量,這兩個(gè)標(biāo)準(zhǔn)分別稱(chēng)為內(nèi)聚和耦合。
耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。
耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,進(jìn)入或訪問(wèn)一個(gè)模塊的點(diǎn),以及通過(guò)
接口的數(shù)據(jù)。
如果兩個(gè)模塊彼此間通過(guò)參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種
耦合稱(chēng)為數(shù)據(jù)耦合。
如果傳遞的信息中有控制信息(盡管有時(shí)這種控制信息以數(shù)據(jù)的形式出現(xiàn)),則
這種耦合稱(chēng)為控制耦合。
數(shù)據(jù)耦合是低耦合。
公共環(huán)境耦合、
晶宮樂(lè)里度的理A#內(nèi)去圭里人
內(nèi)最標(biāo)志著一木模塊內(nèi)各X:素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概
念的自然擴(kuò)展。
偶然內(nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚
低內(nèi)聚、中內(nèi)聚、高內(nèi)聚的分類(lèi)。
5.3啟發(fā)規(guī)則
/軟件結(jié)構(gòu)提高模塊獨(dú)立性
模塊規(guī)模應(yīng)該適中
深度、寬度、扇出和扇入都應(yīng)適當(dāng)
模塊的應(yīng)用域應(yīng)該在控制域之內(nèi)
力爭(zhēng)降低模塊接口的復(fù)雜程度
設(shè)計(jì)單入口單出口的模塊
模塊功能應(yīng)該可以預(yù)測(cè)
5.4描繪軟件結(jié)構(gòu)的圖形工具
層次圖和HIPO圖
結(jié)構(gòu)圖
5.5面向數(shù)據(jù)流的設(shè)計(jì)方法
面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射成軟件結(jié)構(gòu),信息流的類(lèi)型決定了映射的方
法。
信息流分成兩種類(lèi)型:變化流、事物流(概念)
變換分析是一系列設(shè)計(jì)步驟的總稱(chēng),經(jīng)過(guò)這些步驟吧具有變換流特點(diǎn)的數(shù)據(jù)流圖
按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。
變換分析的設(shè)計(jì)步驟。
5.6小結(jié)
第6章詳細(xì)設(shè)計(jì)
目標(biāo):1.確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng)
2.設(shè)計(jì)出程序的“藍(lán)圖”
3.詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終的程序代碼的質(zhì)量
6.1結(jié)構(gòu)程序設(shè)計(jì)
1.概念:結(jié)果程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向
下逐步求精的的設(shè)計(jì)方法和單入口但出口的控制結(jié)構(gòu)。
2.三種基本控制結(jié)構(gòu):
1)順序結(jié)構(gòu):相當(dāng)于“A、B”
2)選擇結(jié)構(gòu):相當(dāng)于"IfexpthenAelseBendif;"
3)循環(huán)結(jié)構(gòu):相當(dāng)于"WhileexpdoA”
3.擴(kuò)充的兩種控制結(jié)構(gòu):
1)多分支結(jié)構(gòu):相當(dāng)于“CaseIofI=l:Cl;.......I=n:Cn;w
2)UNTIL循環(huán)結(jié)構(gòu):相當(dāng)于"RepeatAuntilexp;"
4.結(jié)構(gòu)程序設(shè)計(jì)的種類(lèi):
1)經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):只允許使用順序、IF_THEN
_ELSE型分支和DO_WHILE型循環(huán);
2)擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):除了三種基本控制結(jié)構(gòu),還使用
DO_CASE型多分支結(jié)構(gòu)和DO_WHILE型循環(huán)結(jié)構(gòu);
3)修正的結(jié)構(gòu)程序設(shè)計(jì):除了三種基本控制結(jié)構(gòu)和兩種擴(kuò)
充結(jié)構(gòu),還使用LEAVE(或BREAK)結(jié)構(gòu)。
6.2人機(jī)界面設(shè)計(jì)
6.2.1設(shè)計(jì)問(wèn)題
1.系統(tǒng)響應(yīng)時(shí)間
2.用戶幫助設(shè)施
3.出錯(cuò)信息處理
4.命令交互
6.2.2設(shè)計(jì)過(guò)程
6.2.3人機(jī)界面設(shè)計(jì)指南
1.一般交互指南
2.信息顯示指南
3.數(shù)據(jù)輸入指南
6.3過(guò)程設(shè)計(jì)的工具
6.3.1程序流程圖
程序流程圖:是一種描述程序的控制結(jié)構(gòu)流程和指令執(zhí)行情況的有向
圖。程序流程圖的主要缺點(diǎn):
程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮
程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。
程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完
全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。
程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。
6.3.2盒圖
盒圖特點(diǎn):
功能域明確,可以從盒圖上一眼就看出來(lái)。
不可能任意轉(zhuǎn)移控制。
很容易確定局部和全程數(shù)據(jù)的作用域。
很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。
PAD圖
是一種問(wèn)題分析圖。
PAD圖優(yōu)點(diǎn):
使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)
化程序
PAD圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左面的豎線是程序的主
線,即第一層結(jié)構(gòu)。隨著德程序?qū)哟蔚脑黾?,PAD圖逐漸向右延伸,
每次增加一個(gè)層次,圖形向右擴(kuò)展豎線。PAD圖中豎線的總條數(shù)就
是程序的層次數(shù)。
用PAD圖表現(xiàn)程序邏輯,易懂、易讀、易記。PAD圖是二維樹(shù)形結(jié)
構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點(diǎn)開(kāi)始執(zhí)行,自上而下,從
左向右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。
容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)
完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生
產(chǎn)率。
即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。
PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。開(kāi)始時(shí)設(shè)計(jì)者
可以定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用def符號(hào)逐步
增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì)。
判定表
判定表由四部分組成:
左上部列出所有條件
左下部是所有可能做的動(dòng)作
右上部是表示各種條件組合的一個(gè)矩陣
右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作
6.3.5判定樹(shù)
判定樹(shù)是判定表的變種。
過(guò)程設(shè)計(jì)語(yǔ)言
過(guò)程設(shè)計(jì)語(yǔ)言(PDL)也稱(chēng)為偽碼。
PDL的優(yōu)點(diǎn):
可以作為注釋的直接插在源程序中間
可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PD1
的書(shū)寫(xiě)和編輯工作
已經(jīng)有自動(dòng)處理PDL的程序存在,而且可以自動(dòng)由PDL生成程序代
碼。
PDL缺點(diǎn):不如圖形工具形象直觀。
面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法
Jackson圖
順序結(jié)構(gòu)
選擇結(jié)構(gòu)
重復(fù)結(jié)構(gòu)
改進(jìn)的Jackson圖
Jackson方法
Jackson結(jié)構(gòu)程序設(shè)計(jì)方法基本上由5個(gè)步驟組成:
分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描繪這
些數(shù)據(jù)結(jié)構(gòu)。
找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。
用下述3條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的
Jackson圖。
為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程
序結(jié)構(gòu)圖的相應(yīng)層次畫(huà)一個(gè)處理框。
根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖
的相應(yīng)層次分別為它們畫(huà)上對(duì)應(yīng)的處理框。
根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖
的相應(yīng)層次分別為它們畫(huà)上對(duì)應(yīng)的處理框。
列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。
用偽碼表示程序。
程序復(fù)雜程度的定量度量
McCabe方法
1.流圖
“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)
對(duì)數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。
2.計(jì)算環(huán)形復(fù)雜度的方法
環(huán)形復(fù)雜度等于流圖中的區(qū)域數(shù)。
流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù)的,
N是結(jié)點(diǎn)數(shù)。
流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。
3.環(huán)形復(fù)雜度的用途
它是對(duì)測(cè)試難度的一種定量度量,也能對(duì)軟件最終的可靠性給出某
種預(yù)測(cè)。
實(shí)踐表明,模塊規(guī)模以V(G)<=10為宜。
6.5.2Halstead
根據(jù)程序中運(yùn)算符和操作數(shù)的總數(shù)來(lái)度量程序的復(fù)雜程度。
N=NI+N2
程序總長(zhǎng)度:N
運(yùn)算符出現(xiàn)的總次數(shù):Ni
操作數(shù)出現(xiàn)的總次數(shù):N2
Halstead給出的預(yù)測(cè)程序長(zhǎng)度的公式:
H=n1Iog2n1+n2Iog2n2
預(yù)測(cè)程序中包含錯(cuò)誤的個(gè)數(shù)的公式:
E=Nlog2(n1+n2)/3000
第七章實(shí)現(xiàn)
概念:編碼和測(cè)試統(tǒng)稱(chēng)為實(shí)現(xiàn)。
編碼:把軟件設(shè)計(jì)結(jié)果翻譯成程序。
測(cè)試:檢測(cè)程序并改正錯(cuò)誤的過(guò)程。
編碼
選擇程序設(shè)計(jì)語(yǔ)言
1.計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言基本上可以分為兩大類(lèi):
1):匯編語(yǔ)言
2):高級(jí)語(yǔ)言
2.選擇語(yǔ)言時(shí)應(yīng)考慮的實(shí)用標(biāo)準(zhǔn):
系統(tǒng)用戶要求
可以使用的編譯程序
可以得到的軟件工具
工程規(guī)模
程序員的知識(shí)
軟件可移植性要求
軟件的應(yīng)用領(lǐng)域
編碼風(fēng)格
程序內(nèi)部的文檔
數(shù)據(jù)說(shuō)明
語(yǔ)句構(gòu)造
輸入輸出
效率
軟件測(cè)試基礎(chǔ)
7.2.1軟件測(cè)試的目標(biāo)
1.有關(guān)測(cè)試的一些規(guī)則:
測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程
好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試
成功的測(cè)試是發(fā)現(xiàn)多了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試
軟件測(cè)試準(zhǔn)則
所有測(cè)試都應(yīng)該追溯到用戶要求
應(yīng)該遠(yuǎn)在測(cè)試開(kāi)始之前就制定出側(cè)是計(jì)劃
把Pareto原理應(yīng)用到軟件測(cè)試中
應(yīng)該從“小規(guī)?!睖y(cè)試開(kāi)始,并逐步進(jìn)行“大規(guī)模”測(cè)試
窮舉測(cè)試是不可能的
為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作
測(cè)試方法
黑盒測(cè)試
白盒測(cè)試
測(cè)試步驟
模塊測(cè)試
子系統(tǒng)測(cè)試
系統(tǒng)測(cè)試
驗(yàn)收測(cè)試
平行運(yùn)行
測(cè)試階段的信息流
單元測(cè)試
測(cè)試重點(diǎn):
模塊接口
局部數(shù)據(jù)結(jié)構(gòu)
重要的執(zhí)行通路
出錯(cuò)處理通路
邊界條件
代碼審查
計(jì)算機(jī)測(cè)試
集成測(cè)試
自頂向下集成
自頂向下集成是一種遞增的裝配軟件結(jié)構(gòu)的方法,這種應(yīng)用方法非常
廣泛。它需要存根程序,不需要驅(qū)動(dòng)程序。
自底向上集成
自底向上集成是從軟件結(jié)構(gòu)最底層模塊開(kāi)始進(jìn)行組裝和測(cè)試,它與自
頂向下結(jié)合方法相反,需要驅(qū)動(dòng)程序,但是不需要存根程序。
不同集成測(cè)試策略的比較
回歸測(cè)試
包括3類(lèi)不同的測(cè)試用例
檢測(cè)軟件全部功
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課練我們的中華文化測(cè)試題
- “入學(xué)教育、漢語(yǔ)拼音、識(shí)字、課文、語(yǔ)文園地、口語(yǔ)交際”六個(gè)部分全冊(cè)備課
- 液壓與氣動(dòng)技術(shù)智慧樹(shù)知到答案2024年陜西工業(yè)職業(yè)技術(shù)學(xué)院
- 25高中數(shù)學(xué)新教材課堂導(dǎo)學(xué)案(通項(xiàng)與前和前積)
- 第十七章勾股定理 單元練習(xí) 2023-2024學(xué)年人教版數(shù)學(xué)八年級(jí)下冊(cè)
- 井下波速測(cè)量?jī)x行業(yè)相關(guān)投資計(jì)劃提議范本
- 第十一章三角形練習(xí)卷2024-2025學(xué)年人教版八年級(jí)數(shù)學(xué)上冊(cè)
- 光刻膠配套試劑行業(yè)相關(guān)投資計(jì)劃提議范本
- 第四單元 經(jīng)濟(jì)大危機(jī)和第二次世界大戰(zhàn) 單元檢測(cè)- 2023-2024學(xué)年統(tǒng)編版歷史九年級(jí)下冊(cè)
- 納米復(fù)合材料性質(zhì)研究
- 深度營(yíng)養(yǎng)(傳統(tǒng)飲食)
- 售后服務(wù)方案及運(yùn)維方案
- 《短視頻拍攝與制作》課件-3短視頻中期拍攝
- 天文科普知識(shí)競(jìng)賽
- Unit1What'sthematter單元整體設(shè)計(jì)人教版八年級(jí)英語(yǔ)下冊(cè)
- 唯恒農(nóng)業(yè)-云南省中藥產(chǎn)業(yè)研究報(bào)告
- 碳排放相關(guān)知識(shí)講座
- 小學(xué)生普及憲法知識(shí)課件
- 《養(yǎng)老護(hù)理員》-課件:老年人安全防范及相關(guān)知識(shí)
- 2024心房顫動(dòng)的治療
- 試驗(yàn)設(shè)計(jì)DOE課件
評(píng)論
0/150
提交評(píng)論