




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、朱建凱 何海江 汪祥 毛偉 編軟件工程(導(dǎo)論)實驗指導(dǎo)書長沙學(xué)院計算機科學(xué)與技術(shù)系2013年9月41前 言軟件工程(導(dǎo)論)是計算機類本科專業(yè)的重要專業(yè)基礎(chǔ)課程,它是指導(dǎo)計算機軟件開發(fā)和維護的一門科學(xué),包含技術(shù)和管理兩方面內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。同時軟件工程對實踐經(jīng)驗要求非常高的,中間的很多經(jīng)驗都需要在實踐中去體會和認識。該實驗指導(dǎo)書內(nèi)容是在指導(dǎo)08、09、10三屆學(xué)生的實驗課程中不斷總結(jié)完善,并按照2011版計科專業(yè)和軟件工程專業(yè)的培養(yǎng)方案以及實驗(實訓(xùn))大綱重新對內(nèi)容進行了組織和編排。整個實驗按照六個實驗來設(shè)計,全部完成需要32學(xué)時,在具體的教學(xué)過程中,可以靈活調(diào)整。在這
2、六個實驗中,全部以一個航空售票點售票軟件的程序設(shè)計作為主線來貫穿全部設(shè)計過程,按照軟件項目開發(fā)的自然過程安排實驗(實訓(xùn)),首先從需求分析、再到系統(tǒng)分析設(shè)計、編碼和單元測試,其中顧及到結(jié)構(gòu)化程序設(shè)計方法和面向?qū)ο蟪绦蛟O(shè)計方法,在需求建模和程序設(shè)計方面安排學(xué)生分別用這兩個方法對這個開發(fā)任務(wù)分析和設(shè)計各進行了一次。通過這六個實驗,基本了解和熟悉軟件工程管理的幾個主要過程,達到熟悉教材,理會軟件工程管理理論的目的。該實驗指導(dǎo)書是根據(jù)2011版計算機科學(xué)與技術(shù)專業(yè)培養(yǎng)方案對軟件工程課程的教學(xué)要求,以及軟件工程專業(yè)培養(yǎng)方案對軟件工程導(dǎo)論實訓(xùn)課程的要求編寫的實驗指導(dǎo)書,其中計科專業(yè)實驗課時數(shù)是20學(xué)時,軟工
3、專業(yè)實訓(xùn)課時是32學(xué)時,因此本指導(dǎo)書只能按照32學(xué)時來設(shè)計,計科專業(yè)采用本實驗指導(dǎo)書時必須適當(dāng)調(diào)整內(nèi)容。計算機專業(yè)實驗室從2013年下學(xué)期開始所有的實驗(實訓(xùn))課程都不再提交紙質(zhì)的實驗報告而全部在網(wǎng)絡(luò)實驗平臺上提交實驗報告。報告的網(wǎng)址是:8:8888/login.aspx。特別請同學(xué)們注意,每個實驗之后都必須由指導(dǎo)教師現(xiàn)場在計算機上檢查打分并錄入系統(tǒng)之后,學(xué)生才能提交實驗報告,然后老師再綜合實驗報告和現(xiàn)場檢查的打分給每個實驗項目打分。必須全部實驗項目都及格,才會有實驗分數(shù),否則實驗分數(shù)計零分,且必須補考或重新。本實驗指導(dǎo)書中,實驗一和實驗二由朱建凱老師編寫,
4、實驗三和實驗五由汪祥老師編寫,實驗四由毛偉老師編寫,實驗六由何海江老師編寫。編者2013年9月目 錄第一部分 實驗內(nèi)容設(shè)計任務(wù) 2實驗1:需求分析3實驗2:程序設(shè)計4實驗3:用例分析5實驗4:面向?qū)ο笤O(shè)計6實驗5:程序?qū)崿F(xiàn) 7實驗6:軟件測試8第二部分 實驗指導(dǎo)實驗1:需求分析實驗指導(dǎo)10實驗2:程序設(shè)計實驗指導(dǎo)15實驗3:用例分析實驗指導(dǎo)25實驗4:面向?qū)ο笤O(shè)計實驗指導(dǎo)31實驗5:程序?qū)崿F(xiàn)實驗指導(dǎo) 34實驗6:軟件測試實驗指導(dǎo)35第一部分實驗內(nèi)容設(shè)計任務(wù)題目:機票預(yù)定系統(tǒng)1基本功能要求航空公司售票點為給旅客乘機提供方便,需要開發(fā)一個機票預(yù)定系統(tǒng)。各個訂票點把預(yù)定機票的旅客信息(姓名、性別、工
5、作單位、身份證號碼(護照號碼)、旅行時間、旅行始發(fā)地和目的地,航班艙位要求)輸入到聯(lián)網(wǎng)的系統(tǒng)中,系統(tǒng)為旅客安排航班。當(dāng)旅客確認航班并交付了預(yù)訂金后,系統(tǒng)打印出取票通知和帳單給旅客,旅客在飛機起飛前一天憑取票通知和帳單交款取票,系統(tǒng)核對無誤即打印出機票給旅客。此外航空公司為隨時掌握各個航班飛機的乘載情況,需要定期進行查詢統(tǒng)計,以便適當(dāng)調(diào)整。2技術(shù)要求和限制條件(1)在分析系統(tǒng)功能時要考慮有關(guān)證件的合法性驗證(如身份證、取票通知和交款發(fā)票)等。(2)對于本系統(tǒng)還應(yīng)補充一下功能:1旅客延誤了取票時間的處理2航班取消后的處理3旅客臨時更改航班的處理(3)系統(tǒng)的外部輸入項至少包括:旅客、旅行社和航空公司
6、。(4)系統(tǒng)支持現(xiàn)金支付和信用卡以及銀行卡支付,不支持網(wǎng)上訂票和網(wǎng)上付款。實驗1:需求分析1、 實驗?zāi)康膶W(xué)習(xí)結(jié)構(gòu)化軟件需求分析方法,掌握軟件需求的表達方式和方法2、 實驗類型 綜合性實驗3、 實驗學(xué)時 4學(xué)時4、 實驗原理及知識點數(shù)據(jù)流圖;數(shù)據(jù)字典;數(shù)據(jù)加工說明需求規(guī)格說明書5、 實驗環(huán)境(硬件環(huán)境、軟件環(huán)境)硬件平臺:普通個人計算機;軟件:Windows XP,Microsoft Visio6、 實驗內(nèi)容及步驟認真分析第1頁的用戶需求并整理,逐條列出需求要求并對需求要求進行歸類,設(shè)計需求編碼規(guī)則對需求要求進行編號;設(shè)計數(shù)據(jù)流程圖;設(shè)計數(shù)據(jù)字典;設(shè)計數(shù)據(jù)加工說明;根據(jù)設(shè)計出來的模型,重新調(diào)整前
7、面整理的需求初稿,最后按照軟件需求規(guī)格說明書的格式寫一份需求規(guī)格說明書。第一步:研究需求的內(nèi)容,用自然語言逐條描述;第二步:逐條對需求分類并編號;第三步:繪制數(shù)據(jù)流程圖;第四步:編寫數(shù)據(jù)字典和數(shù)據(jù)加工說明;第五步:重新修訂需求規(guī)格說明書7、 思考與練習(xí)需求規(guī)格說明書中,為什么要將需求逐條編上號,而且要對需求的描述非常準確,這樣操作主要是為了什么?實驗2:程序設(shè)計1、 實驗?zāi)康膶W(xué)習(xí)軟件的結(jié)構(gòu)化設(shè)計方法,練習(xí)采用結(jié)構(gòu)化設(shè)計方法完成程序設(shè)計任務(wù)的過程。2、 實驗類型 綜合性實驗3、 實驗學(xué)時 6學(xué)時4、 實驗原理及知識點模塊化程序設(shè)計理論;信息隱藏和局部化;面向數(shù)據(jù)流圖的設(shè)計方法;PAD圖5、 實驗
8、環(huán)境(硬件環(huán)境、軟件環(huán)境)硬件平臺:普通個人計算機;軟件:Windows XP,Microsoft Visio6、 實驗內(nèi)容及步驟以上一次實驗課完成的數(shù)據(jù)流圖為基礎(chǔ),按照數(shù)據(jù)流圖的設(shè)計方法,選用事務(wù)流或者變換流的分析方法,設(shè)計出系統(tǒng)的總體結(jié)構(gòu),要求:l 完成從數(shù)據(jù)流圖到模塊結(jié)構(gòu)圖的轉(zhuǎn)化,標(biāo)記出各模塊的輸入數(shù)據(jù)和輸出數(shù)據(jù)以及要完成的數(shù)據(jù)處理任務(wù);l 畫出層次圖和HIPO圖;l 從數(shù)據(jù)字典出發(fā)設(shè)計出數(shù)據(jù)的ER圖,并把ER圖轉(zhuǎn)化為關(guān)系數(shù)據(jù)庫模式;l 用PAD圖和過程設(shè)計語言(偽碼)來描述上面完成的各模塊的設(shè)計任務(wù);l 最后將上面完成的工作,以設(shè)計說明書的形式展現(xiàn)出來。第一步:復(fù)查并細化數(shù)據(jù)流圖確定數(shù)
9、據(jù)流圖具有變換特性還是事務(wù)特性;第二步:確定輸入流和輸出流的業(yè)務(wù)邊界;第三步:設(shè)計出初步的模塊分解圖; 第四步:從初步的模塊結(jié)構(gòu)圖得到最終的模塊結(jié)構(gòu)圖(MSD);第五步:編寫模塊的輸入數(shù)據(jù),處理過程,輸出數(shù)據(jù)(IPO);第六步:設(shè)計模塊的PAD圖以及過程設(shè)計語言描述;第七步:完成程序的設(shè)計說明書。7、 思考與練習(xí)用事務(wù)流分析方法和變換流分析方法,差別主要在什么地方。什么情況下用事務(wù)流分析法,什么情況下用變換流?軟件系統(tǒng)設(shè)計過程中,如果能用過程設(shè)計語言先期設(shè)計好詳細設(shè)計再進一步編程序有什么好處。和不搞詳細設(shè)計直接到機器上寫程序代碼相比,感覺到會有什么差異,有什么好處。實驗3:用例分析1、 實驗?zāi)?/p>
10、的學(xué)習(xí)和掌握如何分析需求并繪制UML用例圖,編寫用例規(guī)約。2、 實驗類型綜合性實驗3、 實驗學(xué)時4學(xué)時4、 實驗原理及知識點用例;參與者;包含關(guān)系;擴展關(guān)系;泛化關(guān)系;用例規(guī)約說明5、 實驗環(huán)境(硬件環(huán)境、軟件環(huán)境)硬件平臺:普通個人計算機;軟件:Windows XP,StarUML6、 實驗內(nèi)容及步驟研究最初的用戶需求,找出系統(tǒng)的參與者;繪制出用例圖;寫用例規(guī)約;改造實驗一編寫的需求規(guī)格說明書。第一步:找出系統(tǒng)的參與者;第二步:找出系統(tǒng)的具體用例;第三步:確定參與者和用利,以及用例和用例之間的關(guān)系;第四步:編寫每個用例的用例規(guī)約;第五步:改造實驗一編寫的軟件需求規(guī)格說明書。7、 思考與練習(xí)結(jié)
11、合本實驗說說面向?qū)ο笮枨蠓治龊徒Y(jié)構(gòu)化需求分析的方法差異,優(yōu)缺點。實驗4:面向?qū)ο笤O(shè)計1、 實驗?zāi)康脑谇懊婊A(chǔ)上按照課堂教學(xué)中要求完成系統(tǒng)的UML類圖設(shè)計,繪制活動圖、構(gòu)件圖、部分順序圖和部分狀態(tài)圖。2、 實驗類型綜合性試驗3、 實驗學(xué)時6學(xué)時4、 實驗原理及知識點設(shè)計活動圖,進一步理解需求;設(shè)計類圖確定實現(xiàn)的操作和屬性;設(shè)計構(gòu)件圖確定系統(tǒng)的整體結(jié)構(gòu);部分順序圖進一步確定詳細設(shè)計;部分狀態(tài)圖進一步確定類的操作。5、 實驗環(huán)境(硬件環(huán)境、軟件環(huán)境)硬件平臺:普通個人計算機;軟件:Windows XP,StarUML6、 實驗內(nèi)容及步驟設(shè)計活動圖、類圖、構(gòu)件圖;設(shè)計部分順序圖、部分狀態(tài)圖修改實驗二編
12、寫的程序設(shè)計說明,變成一個面向?qū)ο蟮某绦蛟O(shè)計說明。第一步:設(shè)計活動圖,進一步理解系統(tǒng)需求;第二步:初步設(shè)計類模型,確定屬性和基本操作;第三步:設(shè)計構(gòu)件圖,初步確定系統(tǒng)的最終結(jié)構(gòu);第四步:設(shè)計部分關(guān)鍵業(yè)務(wù)的順序圖,機票和訂單的狀態(tài)圖;第五步:修改和完善類模型和構(gòu)件圖;第六步:修編實驗二已經(jīng)完成的程序設(shè)計說明書。7、 思考與練習(xí)結(jié)合本機票預(yù)定系統(tǒng),說明結(jié)構(gòu)化設(shè)計和面向?qū)ο笤O(shè)計的差異,評價其優(yōu)劣。順序圖和狀態(tài)圖設(shè)計什么情況下才需求,才最有利于未來的程序編碼?實驗5:程序?qū)崿F(xiàn)1、 實驗?zāi)康氖煜ぐ凑哲浖O(shè)計說明書來編寫軟件代碼,鍛煉學(xué)生編寫程序的同時,必須嚴格按照設(shè)計說明來編碼。2、 實驗類型綜合性試驗
13、3、 實驗學(xué)時6學(xué)時4、 實驗原理及知識點數(shù)據(jù)庫表結(jié)構(gòu)的實現(xiàn);程序界面的實現(xiàn);出錯處理界面的設(shè)計;程序和數(shù)據(jù)庫的連接;軟件開發(fā)卷宗的編寫。5、 實驗環(huán)境(硬件環(huán)境、軟件環(huán)境)硬件平臺:普通個人計算機;軟件:Windows XP,MyEclipse6、 實驗內(nèi)容及步驟1、設(shè)計人機界面風(fēng)格,出錯處理;數(shù)據(jù)庫表結(jié)構(gòu);2、設(shè)計所有的程序界面,編寫和數(shù)據(jù)庫連接的代碼;3、設(shè)計代碼實現(xiàn)程序界面之間的驅(qū)動和調(diào)用;4、編寫程序代碼說明書。第一步:在數(shù)據(jù)庫中設(shè)計數(shù)據(jù)庫表結(jié)構(gòu);第二步:確定界面設(shè)計風(fēng)格,出錯處理設(shè)計,變量定義規(guī)則,將其寫入程序代碼說明書;第三步:設(shè)計出所有需要的JSP靜態(tài)頁面;第四步:完成MyEc
14、lise中代碼與底層數(shù)據(jù)庫的連接和調(diào)用編程;第五步:修改設(shè)計好的JSP靜態(tài)頁面為動態(tài)頁面,以展示數(shù)據(jù)庫中的數(shù)據(jù);第六步:實現(xiàn)各頁面之間的調(diào)用和底層數(shù)據(jù)處理;第七步:完善程序代碼說明書。7、 思考與練習(xí)結(jié)合設(shè)計過程,說說實驗四設(shè)計的程序設(shè)計說明書是否在代碼設(shè)計中起到了作用?你認為自己寫的程序設(shè)計說明書還有哪些方面應(yīng)該改進,以更對這個程序的編程有指導(dǎo)意義。實驗6:軟件測試1、 實驗?zāi)康恼莆蘸诤袦y試技術(shù)、白盒測試技術(shù),了解集成測試的策略,掌握測試用例的設(shè)計方法,提高文檔撰寫能力。通過機票預(yù)訂系統(tǒng)的測試實例,使同學(xué)們熟悉軟件測試的一般流程。2、 實驗類型綜合性實驗3、 實驗學(xué)時6學(xué)時4、 實驗原理及知
15、識點單元測試;系統(tǒng)測試;驗收測試;白盒測試;黑盒測試;測試報告5、 實驗環(huán)境(硬件環(huán)境、軟件環(huán)境)硬件平臺:普通個人計算機;軟件:Windows XP,Office,MyEclipse6、 實驗內(nèi)容及步驟采用白盒測試技術(shù)完成一個程序單元的單元測試;采用黑盒測試技術(shù)完成程序的系統(tǒng)集成測試;編寫單元測試報告, 編寫系統(tǒng)測試報告。第一步:研究由指導(dǎo)教師制定的單元模塊的程序結(jié)構(gòu),確定白盒測試的測試策略;第二步:以該單元模塊的順序圖為線索,設(shè)計單元的測試用例;第三步:執(zhí)行單元測試過程,編寫單元測試報告;第四步:以前面設(shè)計的活動圖為線索,設(shè)計系統(tǒng)的測試用例;第五步:執(zhí)行系統(tǒng)測試過程,編寫系統(tǒng)測試報告。7、
16、 思考與練習(xí)單元測試通常由代碼設(shè)計編寫人員自己來完成,如何來保證單元測試過程的質(zhì)量和效果呢?測試報告中存在有測試用例沒有通過的情況,那么是否結(jié)論就是程序沒通過測試?測試過程中的測試用例出現(xiàn)和期望的結(jié)果不一致情況,是否就是測試用例不通過?第二部分實驗指導(dǎo)實驗1: 需求分析實驗指導(dǎo)需求編碼應(yīng)該完成對所有需求的整理,并對每項需求建立編號。需求編號示例:Srs-fun-1: 系統(tǒng)須能夠錄入旅客的訂票信息;(表示“需求規(guī)約-功能需求-1”)Srs-fun-2:系統(tǒng)須能夠提供給旅客可選的航班信息;(表示“需求規(guī)約-功能需求-2”)Srs-int-1:系統(tǒng)能從航空公司獲取最新的航班信息及其票源信息;(表示“
17、需求規(guī)約-接口需求-1”)需求分類需求分為:功能性需求,性能需求,接口需求,設(shè)計約束,質(zhì)量需求。數(shù)據(jù)流圖數(shù)據(jù)流圖反映數(shù)據(jù)的流動和處理過程,是和用戶交流的極好交流工具。1 符號數(shù)據(jù)流圖有四種基本符號:正方形(或立方體)表示數(shù)據(jù)的源點或終點;圓角矩形(或圓形)代表變換數(shù)據(jù)的處理;開口矩形(或兩條平行橫線)代表數(shù)據(jù)存儲;箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。2 例子假設(shè)一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應(yīng)者,次要供應(yīng)者。零件入庫或出庫稱為事務(wù),通過放在倉庫
18、中的CRT終端把事務(wù)報告給定貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。圖1.1 定貨系統(tǒng)的基本系統(tǒng)模型圖1.2 定貨系統(tǒng)的功能級數(shù)據(jù)流圖圖1.3 把處理事務(wù)的功能進一步分解后的數(shù)據(jù)流圖3 命名1) 為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名(1) 名字應(yīng)代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)的內(nèi)容,而不是僅僅反映它的某些成分。(2) 不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”之類)。(3) 起名字時遇到了困難,則很可能是因為對數(shù)據(jù)流圖分解不恰當(dāng)造成的。2) 為處理命名(1) 通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。(2) 名字應(yīng)該反映整個處理的功能。(3) 名字最好
19、由一個具體的及物動詞加上一個具體的賓語組成。(4) 通常名字中僅包括一個動詞。(5) 如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解。4 用途畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。數(shù)據(jù)流圖應(yīng)該分層,并且在把功能級數(shù)據(jù)流圖細化后得到的處理超過9個時,應(yīng)該采用畫分圖的辦法,也就是把每個主要功能都細化為一張數(shù)據(jù)流分圖。數(shù)據(jù)流圖的另一個主要用途是作為分析和設(shè)計的工具。數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用
20、。1 數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應(yīng)該由對下列4類元素的定義組成:(1) 數(shù)據(jù)流(2) 數(shù)據(jù)流分量(即數(shù)據(jù)元素)(3) 數(shù)據(jù)存儲(4) 處理2 定義數(shù)據(jù)的方法由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述三種基本類型:(1) 順序 即以確定次序連接兩個或多個分量;(2) 選擇 即從兩個或多個可能的元素中選取一個;(3) 重復(fù) 即把指定的分量重復(fù)零次或多次。(4) 可選 即一個分量是可有可無的(重復(fù)零次或一次)。=意思是等價于(或定義為);+意思是和(即,連接兩個分量); 意思是或(即,從方括弧內(nèi)列出的若干個分量中選擇一個),通常用“|”號隔開供選擇的分量; 意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量);( )意
21、思是可選(即,圓括弧里的分量可有可無)。舉例:某程序設(shè)計語言規(guī)定,用戶說明的標(biāo)識符是長度不超過8個字符的字符串,其中第一個字符必須是字母字符,隨后的字符既可以是字母字符也可以是數(shù)字字符。使用上面講過的符號,我們可以像下面那樣定義標(biāo)識符:標(biāo)識符=字母字符+字母數(shù)字串字母數(shù)字串=0字母或數(shù)字7字母或數(shù)字=字母字符數(shù)字字符3 數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階段的工具。在數(shù)據(jù)字典中建立的一組嚴密一致的定義很有助于改進分析員和用戶之間的通信,因此將消除許多可能的誤解。對數(shù)據(jù)的這一系列嚴密一致的定義也有助于改進在不同的開發(fā)人員或不同的開發(fā)小組之間的通信。要求所有開發(fā)人員都根據(jù)公共的數(shù)據(jù)字典描
22、述數(shù)據(jù)和設(shè)計模塊,則能避免許多麻煩的接口問題。加工說明對每一個數(shù)據(jù)流圖中的加工給出一個加工說明。由于需求分析的目的是定義問題,因此對數(shù)據(jù)流圖中的每一個加工只需給出加工的輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的關(guān)系,即從外部來“視察”一個加工的邏輯。這個加工說明非常類似于面向?qū)ο蠓治鲋械挠美?guī)約,但這里的不同是僅僅需要考慮和描述數(shù)據(jù)間的相關(guān)性。需求規(guī)格說明書1引言1.1編寫目的說明編寫這份軟件需求說明書的目的,指出預(yù)期的讀者。1.2背景說明待開發(fā)的軟件系統(tǒng)的名稱;本項目的任務(wù)提出者、開發(fā)者、用戶及實現(xiàn)該軟件的計算中心或計算機網(wǎng)絡(luò);該軟件系統(tǒng)同其他系統(tǒng)或其他機構(gòu)的基本的相互來往關(guān)系。 2任務(wù)概述2.1目標(biāo)敘述該項
23、軟件開發(fā)的意圖、應(yīng)用目標(biāo)、作用范圍以及其他應(yīng)向讀者說明的有關(guān)該軟件開發(fā)的背景材料。解釋被開發(fā)軟件與其他有關(guān)軟件之間的關(guān)系。如果本軟件產(chǎn)品是一項獨立的軟件,而且全部內(nèi)容自含,則說明這一點。如果所定義的產(chǎn)品是一個更大的系統(tǒng)的一個組成部分,則應(yīng)說明本產(chǎn)品與該系統(tǒng)中其他各組成部分之間的關(guān)系,為此可使用一張方框圖來說明該系統(tǒng)的組成和本產(chǎn)品同其他各部分的聯(lián)系和接口。|2.2用戶的特點列出本軟件的最終用戶的特點,充分說明操作人員、維護人員的教育水平和技術(shù)專長,以及本軟件的預(yù)期使甩頻度。這些是軟件設(shè)計工作的重要約束3功能需求 3.1 功能需求描述列出編了號的功能需求。3.2 數(shù)據(jù)流圖3.2.1數(shù)據(jù)流圖一畫出數(shù)
24、據(jù)流圖。加工說明:編號,加工名,輸入流,輸出流,加工邏輯3.2.2數(shù)據(jù)流圖二畫出數(shù)據(jù)流圖。加工說明:編號,加工名,輸入流,輸出流,加工邏輯3.3輸人輸出要求數(shù)據(jù)字典放在這里。解釋各輸入輸出數(shù)據(jù)類型,并逐項說明其媒體、格式、數(shù)值范圍、精度等。對軟件的數(shù)據(jù)輸出及必須標(biāo)明的控制輸出量進行解釋并舉例,包括對硬拷貝報告(正常結(jié)果輸出、狀態(tài)輸出及異常輸出)以及圖形或顯示報告的描述。3.4故障處理要求列出可能的軟件、硬件故障以及對各項性能而言所產(chǎn)生的后果和對故障處理的要求。4其他非功能性需求4.1設(shè)備環(huán)境要求(略)4.2設(shè)計約束要求列出支持軟件,包括要用到的操作系統(tǒng)、編譯(或匯編)程序、測試支持軟件等。4.
25、3接口要求說明該軟件同其他軟件之間的接口、數(shù)據(jù)通信協(xié)議等。4.4程序性能要求說明需要管理的文卷和記錄的個數(shù)、表和文卷的大小規(guī)模,要按可預(yù)見的增長對數(shù)據(jù)及其分量的存儲要求作出估算。4.5軟件質(zhì)量要求如用戶單位對安全保密的要求,對使用方便的要求,對可維護性、可補充性、易讀性、可靠性、運行環(huán)境可轉(zhuǎn)換性的特殊要求等。實驗2: 程序設(shè)計實驗指導(dǎo)層次結(jié)構(gòu)圖層次結(jié)構(gòu)圖用來描繪軟件的層次結(jié)構(gòu)。層次結(jié)構(gòu)圖中的一個矩形框代表一個模塊,方框間的連線表示調(diào)用關(guān)系而不像層次方框圖那樣表示組成關(guān)系。圖2.1是層次結(jié)構(gòu)圖的一個例子。圖2.1 正文加工系統(tǒng)的層次結(jié)構(gòu)圖和H圖中每個方框相對應(yīng),應(yīng)該有一張IPO圖描繪這個方框代表
26、的模塊的處理過程。HIPO圖中的每張IPO圖內(nèi)都應(yīng)該明顯地標(biāo)出它所描繪的模塊在H圖中的編號,以便追蹤了解這個模塊在軟件結(jié)構(gòu)中的位置。圖2.2 帶編號的層次結(jié)構(gòu)圖(H圖)結(jié)構(gòu)分解圖結(jié)構(gòu)分解圖是進行軟件結(jié)構(gòu)設(shè)計的另一個有力工具。結(jié)構(gòu)分解圖和層次結(jié)構(gòu)圖類似,也是描繪軟件結(jié)構(gòu)的圖形工具,圖中一個方框代表一個模塊,框內(nèi)注明模塊的名字或主要功能;方框之間的箭頭(或直線)表示模塊的調(diào)用關(guān)系。在結(jié)構(gòu)圖中通常還用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。如果希望進一步標(biāo)明傳遞的信息是數(shù)據(jù)還是控制信息,則可以利用注釋箭頭尾部的形狀來區(qū)分:尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息。圖2.3 結(jié)構(gòu)
27、圖的例子產(chǎn)生最佳解的一般結(jié)構(gòu)數(shù)據(jù)流圖轉(zhuǎn)變?yōu)閷哟谓Y(jié)構(gòu)圖過程變換分析第1步 復(fù)查基本系統(tǒng)模型。第2步 復(fù)查并精化數(shù)據(jù)流圖。應(yīng)該對需求分析階段得出的數(shù)據(jù)流圖認真復(fù)查,并且在必要時進行精化。第3步 確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。一般地說,一個系統(tǒng)中的所有信息流都可以認為是變換流,但是,當(dāng)遇到有明顯事務(wù)特性的信息流時,建議采用事務(wù)分析方法進行設(shè)計。第4步 確定輸入流和輸出流的邊界,從而孤立出變換中心。輸入流和輸出流的邊界和對它們的解釋有關(guān),也就是說,不同設(shè)計人員可能會在流內(nèi)選取稍微不同的點作為邊界的位置。圖2.4 具有邊界的數(shù)據(jù)流圖第5步 完成“第一級分解”。對于變換流的情況,數(shù)據(jù)流圖被映射成一
28、個特殊的軟件結(jié)構(gòu)。圖2.4說明了第一級分解的方法。位于軟件結(jié)構(gòu)最頂層的控制模塊Cm協(xié)調(diào)下述從屬的控制功能:輸入信息處理控制模塊Ca,協(xié)調(diào)對所有輸入數(shù)據(jù)的接收;變換中心控制模塊Ct,管理對內(nèi)部形式的數(shù)據(jù)的所有操作;輸出信息處理控制模塊Ce,協(xié)調(diào)輸出信息的產(chǎn)生過程。對于數(shù)字儀表板的例子,第一級分解得出的結(jié)構(gòu)如圖2.5所示。每個控制模塊的名字表明了為它所控制的那些模塊的功能。圖2.5 第一級分解的方法圖2. 6 數(shù)字儀表板系統(tǒng)的第一級分解第6步 完成“第二級分解”。所謂第二級分解就是把數(shù)據(jù)流圖中的每個處理映射成軟件結(jié)構(gòu)中一個適當(dāng)?shù)哪K。完成第二級分解的方法是,從變換中心的邊界開始沿著輸入通路向外移動
29、,把輸入通路中每個處理映射成軟件結(jié)構(gòu)中Ca控制下的一個低層模塊;然后沿輸出通路向外移動,把輸出通路中每個處理映射成直接或間接受模塊Ce控制的一個低層模塊;最后把變換中心內(nèi)的每個處理映射成受Ct控制的一個模塊。圖2.7表示進行第二級分解的普遍途徑。圖2.7 第二級分解的方法雖然圖中每個模塊的名字表明了它的基本功能,但是仍然應(yīng)該為每個模塊寫一個簡要說明,描述:進出該模塊的信息(接口描述);模塊內(nèi)部的信息;過程陳述,包括主要判定點及任務(wù)等;對約束和特殊特點的簡短討論。這些描述是第一代的設(shè)計規(guī)格說明,在這個設(shè)計時期進一步的精化和補充是經(jīng)常發(fā)生的。第7步 使用設(shè)計度量和啟發(fā)式規(guī)則對第一次分割得到的軟件結(jié)
30、構(gòu)進一步精化。圖2.8 未經(jīng)精化的輸入結(jié)構(gòu)圖2.9 未經(jīng)精化的變換結(jié)構(gòu)圖2.10 未經(jīng)精化的輸出結(jié)構(gòu)對第一次分割得到的軟件結(jié)構(gòu),總可以根據(jù)模塊獨立原理進行精化。得到盡可能高的內(nèi)聚、盡可能松散的耦合,最重要的是,為了得到一個易于實現(xiàn)、易于測試和易于維護的軟件結(jié)構(gòu)。下面是某些可能的修改:輸入結(jié)構(gòu)中的模塊“轉(zhuǎn)換成rpm”和“收集sps”可以合并;模塊“確定加速/減速”可以放在模塊“計算mph”下面,以減少耦合;模塊“加速/減速顯示”可以相應(yīng)地放在模塊“顯示mph”的下面。在這個時期進行修改只需要很少的附加工作,但是卻能夠?qū)浖馁|(zhì)量特別是軟件的可維護性產(chǎn)生深遠的影響。圖2.11精化后的數(shù)字儀表板系統(tǒng)
31、的軟件結(jié)構(gòu)事務(wù)分析雖然在任何情況下都可以使用變換分析方法設(shè)計軟件結(jié)構(gòu),但是在數(shù)據(jù)流具有明顯的事務(wù)特點時,也就是有一個明顯的“發(fā)射中心”(事務(wù)中心)時,還是以采用事務(wù)分析方法為宜。由事務(wù)流映射成的軟件結(jié)構(gòu)包括一個接收分支和一個發(fā)送分支。映射出接收分支結(jié)構(gòu)的方法和變換分析映射出輸入結(jié)構(gòu)的方法很相像,即從事務(wù)中心的邊界開始,把沿著接收流通路的處理映射成模塊。對于一個大系統(tǒng),常常把變換分析和事務(wù)分析應(yīng)用到同一個數(shù)據(jù)流圖的不同部分,由此得到的子結(jié)構(gòu)形成“構(gòu)件”,可以利用它們構(gòu)造完整的軟件結(jié)構(gòu)。圖2.12 事務(wù)分析的映射方法PAD圖PAD是問題分析圖(problem analysis diagram)的英
32、文縮寫,自1973年由日本日立公司發(fā)明以后,已得到一定程度的推廣。它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。圖5.10給出PAD圖的基本符號。PAD圖的主要優(yōu)點如下:(1) 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號所設(shè)計出來的程序必然是結(jié)構(gòu)化程序。圖2.13 PAD圖的基本符號(2) PAD圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著程序?qū)哟蔚脑黾?,PAD圖逐漸向右延伸,每增加一個層次,圖形向右擴展一條豎線。PAD圖中豎線的總條數(shù)就是程序的層次數(shù)。(3) 用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。PAD圖是二維樹形結(jié)構(gòu)的圖形,程序從圖中最
33、左豎線上端的結(jié)點開始執(zhí)行,自上而下,從左向右順序執(zhí)行,遍歷所有結(jié)點。(4) 容易將PAD圖轉(zhuǎn)換成高級語言源程序,這種轉(zhuǎn)換可用軟件工具自動完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產(chǎn)率。(5) 即可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。(6) PAD圖的符號支持自頂向下、逐步求精方法的使用。開始時設(shè)計者可以定義一個抽象的程序,隨著設(shè)計工作的深入而使用def符號逐步增加細節(jié),直至完成詳細設(shè)計,如圖6.6所示。PAD圖是面向高級程序設(shè)計語言的,為FORTRAN,COBOL和PASCAL等每種常用的高級程序設(shè)計語言都提供了一整套相應(yīng)的圖形符號。由于每種控制語句都有一個圖形符號與之對
34、應(yīng),顯然將PAD圖轉(zhuǎn)換成與之對應(yīng)的高級語言程序比較容易。圖2.14 使用PAD圖提供的定義功能來逐步求精的例子程序設(shè)計說明書1引言1.1編寫目的說明編寫這份概要設(shè)計說明書的目的,指出預(yù)期的讀者。1.2背景說明:待開發(fā)軟件系統(tǒng)的名稱;列出此項目的任務(wù)提出者、開發(fā)者、用戶以及將運行該軟件的計算站(中心)。2程序設(shè)計說明2.1需求規(guī)定簡要說明對本系統(tǒng)的主要的輸入輸出項目、處理的功能性能要求。2.2運行環(huán)境(略)2.3程序結(jié)構(gòu)說明用層次結(jié)構(gòu)圖的形式說明本系統(tǒng)的系統(tǒng)元素(各層模塊、子程序、公用程序等)的劃分,扼要說明每個模塊元素的標(biāo)識符和功能,分層次地給出各元素之間的控制與被控制關(guān)系.2.5功能需求與程
35、序的關(guān)系本條用一張如下的矩陣圖說明各項功能需求的實現(xiàn)同各塊程序的分配關(guān)系:程序1程序2程序n功能需求1功能需求2功能需求n3接口設(shè)計3.1外部接口說明本系統(tǒng)同外界的所有接口的安排包括軟件與硬件之間的接口、本系統(tǒng)與各支持軟件之間的接口關(guān)系。3.2內(nèi)部接口說明本系統(tǒng)之內(nèi)的各個系統(tǒng)元素之間的接口的安排。4程序模塊1(標(biāo)識符)設(shè)計說明從本章開始,逐個地給出各個層次中的每個程序的設(shè)計考慮。以下給出的提綱是針對一般情況的。對于一個具體的模塊,尤其是層次比較低的模塊或子程序,其很多條目的內(nèi)容往往與它所隸屬的上一層 模塊的對應(yīng)條目的內(nèi)容相同,在這種情況下,只要簡單地說明這一點即可。4.1程序模塊描述給出對該程
36、序的簡要描述,主要說明安排設(shè)計本程序的目的意義,并且,還要說明本程序的特點(如 是常駐內(nèi)存還是非常駐?是否子程序?是可重人的還是不可重人的?有無覆蓋要求?是順序處理還是并發(fā)處理等)。4.2功能說明該程序應(yīng)具有的功能,可采用IPO圖(即輸入一處理一輸出圖)的形式。4.3輸人項給出對每一個輸入項的特性,包括名稱、標(biāo)識、數(shù)據(jù)的類型和格式、數(shù)據(jù)值的有效范圍、輸入的方式。數(shù)量和頻度、輸入媒體、輸入數(shù)據(jù)的來源和安全保密條件等等。4.4輸出項給出對每一個輸出項的特性,包括名稱、標(biāo)識、數(shù)據(jù)的類型和格式,數(shù)據(jù)值的有效范圍,輸出的形式、數(shù)量和頻度,輸出媒體、對輸出圖形及符號的說明、安全保密條件等等。4.5算法詳細
37、說明本程序所選用的算法,具體的計算公式和計算步驟。4.6注釋設(shè)計說明準備在本程序中安排的注釋,如:加在模塊首部的注釋;加在各分枝點處的注釋;對各變量的功能、范圍、缺省條件等所加的注釋;對使用的邏輯所加的注釋等等。5系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計5.1邏輯結(jié)構(gòu)設(shè)計要點給出本系統(tǒng)內(nèi)所使用的每個數(shù)據(jù)結(jié)構(gòu)的名稱、標(biāo)識符以及它們之中每個數(shù)據(jù)項、記錄、文卷和系的標(biāo)識、定義、長度及它們之間的層次的或表格的相互關(guān)系。5.2物理結(jié)構(gòu)設(shè)計要點給出本系統(tǒng)內(nèi)所使用的每個數(shù)據(jù)結(jié)構(gòu)中的每個數(shù)據(jù)項的存儲要求,訪問方法、存取單位、存取的物理關(guān)系(索引、設(shè)備、存儲區(qū)域)、設(shè)計考慮和保密條件。5.3數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系說明各個數(shù)據(jù)結(jié)構(gòu)與訪問這
38、些數(shù)據(jù)結(jié)構(gòu)的形式。6系統(tǒng)出錯處理設(shè)計6.1出錯信息用一覽表的方式說朗每種可能的出錯或故障情況出現(xiàn)時,系統(tǒng)輸出信息的形式、含意及處理方法。實驗3: 用例分析實驗指導(dǎo)1 UML用例圖的組成:1)系統(tǒng)邊界(主體)n 系統(tǒng)邊界是定義由誰或什么(即,參與者)使用系統(tǒng),系統(tǒng)能夠為哪些參與者提供什么特定利益(即,用例)。n 系統(tǒng)邊界在UML中繪制為方框,用系統(tǒng)的名稱作為標(biāo)簽,參與者繪制在邊界外部,用例繪制在邊界內(nèi)部。例如:2)參與者-Actorn 參與者是系統(tǒng)外部的一個實體;n 參與用例的執(zhí)行過程;n 通過向系統(tǒng)輸入或請求系統(tǒng)輸入某些事件來觸發(fā)系統(tǒng)的執(zhí)行;n 由參與用例時所擔(dān)當(dāng)?shù)慕巧珌肀硎荆籲 每個參與者可
39、以參與一個或多個用例。 (1) 參與者的表示強調(diào):n Actor不是指人,而是指參與用例時所擔(dān)當(dāng)?shù)慕巧 如果一個角色的操作是由另一個角色代理完成的,請建立該角色到另外角色之間的依賴。 (2)參與者間的關(guān)系 超類參與者特殊化參與者特殊化參與者 客戶 電話客戶網(wǎng)上客戶)用例-Use Case (1)用例的表示n 系統(tǒng)、子系統(tǒng)或類與外部的參與者(actor)交互的動作序列的說明,包括各種序列及出錯序列。n 用例分析可以認為是對系統(tǒng)功能的分解。例如存款用例存款(2)怎樣確定用例的粒度?n 用例的粒度(用例的大?。┛纱罂尚。话阋粋€系統(tǒng)易控制在20個用例左右。n 用例是系統(tǒng)級的、抽象的描述,不是細化
40、的(是做什么,非怎樣做)n 對復(fù)雜的系統(tǒng)可以劃分為若干個子系統(tǒng)處理。(3)怎樣獲取用例?n 參與者希望系統(tǒng)執(zhí)行什么任務(wù)?n 參與者在系統(tǒng)中訪問哪些信息(創(chuàng)建、存儲、修改、刪除等)?n 需要將外界的哪些信息提供給系統(tǒng)?n 需要將系統(tǒng)的哪個事件告訴參與者?n 如何維護系統(tǒng)?)關(guān)系-Relationship四種基本關(guān)系:n 關(guān)聯(lián)(association)n 包含(include)n 擴展(extend)n 泛化(generalization)(1)關(guān)聯(lián)n 描述參與者與用例之間的關(guān)系;n 用單向箭頭,表示誰啟動用例;n 每個用例都有角色啟動,除包含和擴展用例;(2)包含n 是指兩個用例之間的關(guān)系。其中
41、一個用例(基本用例,base use case)的行為包含了另一個用例(包含用例,inclusion use case)的行為。例如:(3)擴展n 也是指兩個用例之間的關(guān)系。n 一個用例可以被定義為基礎(chǔ)用例的增量擴展,稱作擴展關(guān)系,可以類比面向?qū)ο缶幊汤锏睦^承.n 擴展關(guān)系是把新的行為插入到已有用例中的方法。n 基礎(chǔ)用例即使沒有擴展用例也是完整的。一般情況下基礎(chǔ)用例的執(zhí)行不會涉及擴展用例,只有特定條件發(fā)生,擴展用例才被執(zhí)行。(4)泛化n 一個用例和其幾種情形的用例間構(gòu)成泛化關(guān)系。n 往往父用例表示為抽象用例。n 任何父用例出現(xiàn)的地方子用例也可出現(xiàn)。2. uml用例描述: 用例圖:只能描述系統(tǒng)的
42、大概功能,是一種視圖;用例描述:更詳細地描述用例的功能。1)用例描述的組成n 用例名稱n 簡要說明/描述n 優(yōu)先級n 參與者n 前置條件n 基本事件流n 其他事件流n 擴展點n 后置條件2)示例:用例名稱:借書描述:圖書管理員使用借書用例完成讀者的借書活動,把圖書從圖書館中借給讀者需求編號:uc001優(yōu)先級:A(高)角色:圖書管理員,讀者前置條件:圖書館員已成功登錄系統(tǒng)并具有借書的權(quán)限主事件流:1.管理員選擇“借書”選項,用例開始2.打開借書窗體3.讀者輸入讀者證號,系統(tǒng)根據(jù)借閱規(guī)則檢查讀者借書有效性A1:讀者無效4. 管理員輸入待借閱的圖書條碼號,檢查圖書有效性A2:圖書無效5系統(tǒng)登記一條新
43、的借書信息6系統(tǒng)檢查讀者預(yù)定信息A3:有預(yù)定7用例結(jié)束異常和分支事件流:A1:讀者無效 (1).系統(tǒng)顯示讀者無效的提示信息 (2).返回主事件流第3步A2:圖書無效 (1). 系統(tǒng)顯示圖書無效提示信息 (2). 返回主事件流第4步A3:有預(yù)定 (1). 系統(tǒng)提示預(yù)定信息,并取消預(yù)定 (2). 返回主事件流第7步后置條件:系統(tǒng)成功寫入一條借書信息,讀者當(dāng)前的借書數(shù)量加1特殊需求:支持使用條碼掃描儀輸入讀者證號和圖書條碼,借一本書時間不超過30秒實驗4: 面向?qū)ο笤O(shè)計實驗指導(dǎo)1 客戶端UML類圖設(shè)計分析分析客戶端幾點需求:1) 旅行社必須登錄系統(tǒng)后才能使用系統(tǒng)功能2) 旅行社能根據(jù)始發(fā)地和目的地查
44、詢近期航班3) 輸入旅客預(yù)訂信息(姓名、性別、工作單位、身份證號碼(護照號碼)旅行時間、旅行始發(fā)地和目的地,航班艙位要求)預(yù)定機票,預(yù)定機票時要交預(yù)定金,機票預(yù)定成功系統(tǒng)打印出取票通知和賬單給旅客1) 旅行社必須登錄系統(tǒng)后才能使用系統(tǒng)功能涉及的相關(guān)類及關(guān)系如下:2) 旅行社能根據(jù)始發(fā)地和目的地查詢近期航班。這一功能點涉及到的類有,系統(tǒng)主界面,航班查詢界面,航班等。涉及到的方法為查詢航班,我們可以把查詢航班方法放入航班預(yù)定類中,總體類圖如下:3)輸入旅客預(yù)訂信息(姓名、性別、工作單位、身份證號碼(護照號碼)旅行時間、旅行始發(fā)地和目的地,航班艙位要求)預(yù)定機票,預(yù)定機票時要交預(yù)定金,機票預(yù)定成功系
45、統(tǒng)打印出取票通知和賬單給旅客。此處涉及到的類有旅客、預(yù)定界面、機票訂單、航班預(yù)定類、取票通知、賬單,涉及到的方法有用戶信息驗證方法,預(yù)定方法,打印通知,打印賬單方法。旅客的信息包括姓名、性別、工作單位、身份證號碼(護照號碼);機票訂單包括航班、旅客、座位號、預(yù)定狀態(tài)。剛開始填寫預(yù)定信息時為準備預(yù)定狀態(tài)取票通知包括下機票訂單時間、預(yù)定機票旅行社、預(yù)定旅客、取票有效時間和機票訂單。賬單包括機票訂單、已交預(yù)定金賬單中不需要出現(xiàn)旅客信息,旅客信息在機票訂單中有。2 順序圖查詢航班順序圖如下:3 狀態(tài)圖航班狀態(tài)圖如下:實驗5:程序?qū)崿F(xiàn)實驗指導(dǎo) 參見相關(guān)編程書籍模塊開發(fā)卷宗是在模塊開發(fā)過程中逐步編寫出來的
46、,每完成一個模塊或一級密切相關(guān)的模塊的復(fù)審時編寫一份,應(yīng)該把所有的模塊開發(fā)卷宗匯集在一起。編寫的目的是記錄和匯總低層次開發(fā)的進度和結(jié)果,以便于對整個模塊開發(fā)工作的管理和復(fù)審,并為將來的維護提供非常有用的技術(shù)信息。具體的內(nèi)容要求如下:1標(biāo)題2模塊開發(fā)情況表3功能說明4設(shè)計說明5源代碼清單6單元測試說明(略)7復(fù)審的結(jié)論模塊開發(fā)卷宗是軟件開發(fā)過程中最重要的技術(shù)文檔之一,可惜在現(xiàn)實生活中很多中小型軟件企業(yè)都不重視開發(fā)卷宗的撰寫、收集和管理工作。編寫開發(fā)卷宗非常重要的一點就是要注意收集平時開發(fā)過程中任何一點點與模塊設(shè)計相關(guān)的思想火花,越是原始的資料越顯得彌足珍貴。同學(xué)們通過這個實驗了解開發(fā)卷宗的編寫方
47、法,養(yǎng)成收集原始信息的好習(xí)慣。實驗6: 軟件測試實驗指導(dǎo)白盒測試,又稱為結(jié)構(gòu)測試,被測對象基本上是源程序,以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計測試用例。()邏輯覆蓋追求程序內(nèi)部的邏輯覆蓋程度,當(dāng)程序中有循環(huán)時,覆蓋每條路徑是不可能的,要設(shè)計使覆蓋程度較高的或覆蓋最有代表性的路徑的測試用例。語句覆蓋。設(shè)計足夠的測試用例,使被測程序中每個語句至少執(zhí)行一次。判定覆蓋。設(shè)計足夠的測試用例,使得被測程序中每個判定表達式至少獲得一次“真”值和“假”值,從而使程序的每一個分支至少都通過一次,因此判定覆蓋也稱為分支覆蓋。條件覆蓋。設(shè)計足夠的測試用例,使得判定表達式中每個條件的各種可能的值至少出現(xiàn)一次。判定條件覆蓋。設(shè)計
48、足夠的測試用例,使得判定表達式中的每個條件的所有可能取值至少出現(xiàn)一次,并使每個判定表達式所有可能的結(jié)果也至少出現(xiàn)一次。條件組合覆蓋。比較強的覆蓋標(biāo)準,它是指設(shè)計足夠的測試用例,使得每個判定表達式中條件的各種可能的值的組合都至少出現(xiàn)一次。路徑覆蓋。設(shè)計足夠的測試用例,覆蓋被測程序中所有可能的路徑。黑盒測試,又稱為功能測試,因此設(shè)計測試用例時,需要研究需求規(guī)格說明和概要設(shè)計說明中有關(guān)程序功能或輸入、輸出之間的關(guān)系等信息,從而與測試后的結(jié)果進行分析比較。用黑盒技術(shù)設(shè)計測試用例的方法一般有以下介紹的四種,但沒有一種方法能提供一組完整的測試用例,以檢查程序的全部功能,在實際測試中應(yīng)該把各種方法結(jié)合起來使
49、用。()等價類劃分將輸入數(shù)據(jù)域按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試。也就是說,如果從某個等價類中任選一個測試用例未發(fā)現(xiàn)程序錯誤,該類中其他測試用例也不會發(fā)現(xiàn)程序的錯誤。()邊界值分析實踐經(jīng)驗表明,程序往往在處理邊界情況時發(fā)生錯誤。邊界情況指輸入等價類和輸出等價類邊界上的情況。()錯誤推測在測試程序時,人們可能根據(jù)經(jīng)驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例。錯誤推測法沒有確定的步驟,憑經(jīng)驗進行。它的基本思想是列出程序中可能發(fā)生錯誤的情況,根據(jù)這些情況選擇測試用例。()因果圖因果圖能有效地檢
50、測輸入條件的各種組合可能會引起的錯誤。因果圖的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計一個測試用例。附錄2 測試用例說明書1 引言1.1 編寫的目的說明編寫這份測試用例說明書的目的,指出預(yù)期的讀者。1.2 背景a.待開發(fā)的系統(tǒng)的名稱;b.本項目的任務(wù)提出者、開發(fā)者、用戶;c.該系統(tǒng)同其他系統(tǒng)或其他機構(gòu)的基本的相互來往關(guān)系。1.3 定義列出本文件中用到的專門術(shù)語的定義和外文首字母組詞的原詞組。1.4 參考資料列出參考資料。2 測試用例注:用例應(yīng)側(cè)重于測試可直接追蹤到的系統(tǒng)需求功能,目的是核實需求功能與實現(xiàn)功能是否一致。即,只要求說明功能測試用例。2
51、.1用例1(標(biāo)識符)詳細說明每個用例應(yīng)說明下列內(nèi)容:(1)測試用例名稱(2)測試項:規(guī)定并簡要說明本測試用例所要涉及的項和特性、對于每一項、可考慮引用需求說明書和設(shè)計說明書。(3)輸入說明:規(guī)定執(zhí)行測試用例所需的各個輸入。有些輸入可以用值(允許適當(dāng)?shù)恼`差)來規(guī)定。而另一些輸入,如常數(shù)表或事務(wù)文件可以用名來規(guī)定。規(guī)定所有合適的數(shù)據(jù)庫、文件、終端信息、內(nèi)存常駐區(qū)域和由操作系統(tǒng)傳送的值。規(guī)定各輸入間所需的所有關(guān)系(如時序關(guān)系等)。(4)輸出說明:規(guī)定測試項的所有輸出和特性(如:響應(yīng)時間)。提供各個輸出或特性的正確值(在適當(dāng)?shù)恼`差范圍內(nèi))。(5)環(huán)境要求:規(guī)定執(zhí)行本測試用例所需的硬件特征和配置、系統(tǒng)軟
52、件和應(yīng)用軟件。(6)規(guī)程說明:描述對執(zhí)行本測試用例的測試規(guī)程的一切特殊限制。這些限制可以包括特定的準備、操作人員干預(yù)、確定特殊的輸出和清除過程。(7)用例間的依賴關(guān)系:列出必須在本測試用例之前執(zhí)行的測試用例名稱,歸納依賴性質(zhì)。建議采用表格描述每個用例。2.2用例2(標(biāo)識符)詳細說明更多用例,仿照2.1格式說明。3 測試結(jié)果對存在差異的測試結(jié)果進行分析, 并給出最終的測試結(jié)論.附錄3 多體制信號源用戶姿態(tài)建模系統(tǒng) 測試用例說明書1 引言1.1 編寫目的本文檔根據(jù)軟件多體制信號源用戶姿態(tài)建模系統(tǒng)的需求說明書與設(shè)計說明書編寫,用于系統(tǒng)功能、性能測試。文檔包含了各功能模塊的測試用例,提供了針對系統(tǒng)進行完整測試的解決方案。文檔預(yù)期讀者有多體制信號源用戶姿態(tài)建模系統(tǒng)的軟件開發(fā)人員、項目主管和后期維護人員、系統(tǒng)測試人員等。1.2 背景網(wǎng)站的名稱是華服如昔服飾網(wǎng)站,屬于獨立系統(tǒng)。華服如昔服飾網(wǎng)站需要進行系統(tǒng)測試,測試功能是否實現(xiàn),功能的結(jié)果是否正確。本文檔提供測試的指導(dǎo)。1.3 定義CGS2000:BD系統(tǒng)使用的大地坐標(biāo)系。ECEF:地心地固坐標(biāo)系。ECI:地心慣性坐標(biāo)系。衛(wèi)星導(dǎo)航系統(tǒng):通過衛(wèi)星信號為定位導(dǎo)航的系統(tǒng),如:COMPASS、GPS、GLONAS
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 被貓抓傷免責(zé)協(xié)議書
- 酒吧部門承包協(xié)議書
- 車輛內(nèi)部通信協(xié)議書
- 項目分包免責(zé)協(xié)議書
- 車間員工承包協(xié)議書
- 出租房裝修合同協(xié)議書
- 運營中心授權(quán)協(xié)議書
- 防疫卡口接車協(xié)議書
- 遼寧畢業(yè)三方協(xié)議書
- 車輛糾紛解決協(xié)議書
- 承包荒地治沙合同范例
- 心血管內(nèi)科降低患者橈動脈止血器壓迫不適發(fā)生率品管圈PDCA成果匯報書
- 第11課 近代職業(yè)教育的興起和發(fā)展
- 軟著設(shè)計說明書
- 第二單元《踐行職業(yè)道德》測試卷-高二思想政治課《職業(yè)道德與法治》附答案
- 三年合同到期不續(xù)簽勞動仲裁申請書
- 申請銀行減免利息的申請書
- 員工培訓(xùn)與開發(fā)
- 維修協(xié)議勞務(wù)合同
- 《長大以后做什么》繪本省公開課獲獎?wù)n件說課比賽一等獎?wù)n件
- 文明考風(fēng) 誠信考試
評論
0/150
提交評論