版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章軟件工程基礎(chǔ)6.1軟件工程概述6.2軟件詳細(xì)設(shè)計(jì)6.3結(jié)構(gòu)化分析與設(shè)計(jì)方法6.4測(cè)試與調(diào)試基本技術(shù)1第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.1軟件工程概述6.1.1軟件工程的概念6.1.2軟件生命周期6.1.3軟件支援環(huán)境2第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)軟件工程出現(xiàn)的原因軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題?,F(xiàn)象一:軟件開發(fā)成本和進(jìn)度的估計(jì)不準(zhǔn)確,交付時(shí)間一再拖延,造成開發(fā)成本超出預(yù)算。案例:1995年,新丹佛國(guó)際化機(jī)場(chǎng)自動(dòng)化行李系統(tǒng)的軟件出現(xiàn)故障,導(dǎo)致機(jī)場(chǎng)延期16個(gè)月才正式啟用,并且大部分行李采用人工分揀,系統(tǒng)成本超出預(yù)算32億美元。原因:軟件復(fù)雜程度高,開發(fā)周期長(zhǎng),并且各種變化不斷,因此軟件項(xiàng)目按期完成交付的很少。3第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)現(xiàn)象二:“已完成”的軟件不滿足用戶的需求案例:1984年,經(jīng)過18個(gè)月的開發(fā),一個(gè)耗資2億美元的系統(tǒng)支付給了美國(guó)威斯康星州的一家健康保險(xiǎn)公司。但該系統(tǒng)不能滿足用戶的正常工作需求,只好追加了6千萬美金,又花了3年時(shí)間才解決了問題。原因:軟件開發(fā)人員不是用戶業(yè)務(wù)的專家,用戶不懂計(jì)算機(jī)軟件技術(shù),因此,軟件人員按照自己的理解開發(fā)出得軟件往往不能滿足用戶的業(yè)務(wù)需求。4第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)現(xiàn)象三:軟件產(chǎn)品的質(zhì)量沒有保證案例:1996年6月4日,Ariane5火箭首次發(fā)射,在升空大約40秒且高度不到4千米處,火箭突然發(fā)生爆炸,該事件造成了50億美元的損失。事故原因是在Ariane5中使用了Ariane4火箭的程序代碼,在將64位浮點(diǎn)數(shù)轉(zhuǎn)換為16位帶符號(hào)整數(shù)的程序中,更快的運(yùn)算引擎導(dǎo)致了Ariane5中的64位數(shù)據(jù)要比Ariane4中更長(zhǎng),直接誘發(fā)了溢出條件,最終導(dǎo)致了航天計(jì)算機(jī)的崩潰。原因:軟件質(zhì)量和可靠性的評(píng)估非常困難。這些投資巨大、技術(shù)一流、管理規(guī)范、測(cè)試充分的軟件也難保不出現(xiàn)質(zhì)量問題。5第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)現(xiàn)象四:軟件通常沒有適當(dāng)?shù)奈臋n資料或文檔與最終交付的軟件產(chǎn)品不符。原因:軟件幾乎不可能一版保證成功,而是經(jīng)歷反復(fù)修改,其中的文檔很難與每次的修改保持一致,錯(cuò)誤的文檔就像錯(cuò)誤的地圖一樣危險(xiǎn)?,F(xiàn)象五:軟件的可維護(hù)程度低。原因:軟件開發(fā)過程中,起著重要作用的是開發(fā)者的邏輯思維過程。如果若干年后,由其他人來修改,必須要理解開發(fā)者當(dāng)時(shí)的思維過程,因此說讀懂別人的程序比重新編寫的難度更大。6第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)軟件危機(jī)出現(xiàn)的原因主要有兩個(gè)方面:其一是軟件本事的特點(diǎn);其二是軟件開發(fā)過程不成熟。軟件開發(fā)過程不成熟的主要表現(xiàn)為:忽視軟件開發(fā)前期的調(diào)研與分析工作,沒有統(tǒng)一、規(guī)范的方法論指導(dǎo),輕視文檔管理和質(zhì)量保證工作,缺乏相關(guān)人員之間的溝通。7第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)簡(jiǎn)陋的小屋—太簡(jiǎn)單!不要設(shè)計(jì)8第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)新農(nóng)村別墅造型圖—復(fù)雜!需要設(shè)計(jì)了9第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)別墅的設(shè)計(jì)—設(shè)計(jì)圖紙、施工圖紙10第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)設(shè)計(jì)和施工說明11第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)典型helloworld程序—太簡(jiǎn)單!不要設(shè)計(jì)
#include<stdio.h>
intmain()
{
printf(“helloworld!”);//輸出helloworld!
return0;
}12第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)圖書館圖書信息管理軟件—復(fù)雜!需要設(shè)計(jì)13第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.1.1軟件工程的概念軟件工程學(xué)是研究軟件開發(fā)和維護(hù)的普遍原理與技術(shù)的一門工程學(xué)科。所謂軟件工程是指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù)。把經(jīng)過實(shí)踐考驗(yàn)而證明正確的管理方法和先進(jìn)的軟件開發(fā)技術(shù)結(jié)合起來,運(yùn)用到軟件開發(fā)和維護(hù)過程中,來解決軟件危機(jī)。14第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)軟件定義期:包括問題定義、可行性研究和需求分析三個(gè)階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試四個(gè)階段;軟件維護(hù)期:即運(yùn)行維護(hù)階段。6.1.2軟件生命周期15第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)1.軟件定義期(1)問題定義確定問題的性質(zhì)、工程目標(biāo)以及規(guī)模。分析員應(yīng)提交書面報(bào)告給用戶與使用部門負(fù)責(zé)人進(jìn)行審查。(2)可行性研究進(jìn)一步研究上一階段所定義的問題是否可解。最后還要提交必要的文檔。16第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(3)需求分析①確定對(duì)系統(tǒng)的綜合要求,即功能要求、性能要求、運(yùn)行要求以及將來可能會(huì)提出的一些要求。②對(duì)系統(tǒng)的數(shù)據(jù)要求進(jìn)行分析。主要包括數(shù)據(jù)元素的分類和規(guī)范化,描繪實(shí)體之間的關(guān)系圖,進(jìn)行事務(wù)分析與數(shù)據(jù)庫模型的建立。③在前面分析的基礎(chǔ)上,推導(dǎo)出系統(tǒng)的詳細(xì)模型系統(tǒng)。④修正開發(fā)計(jì)劃,并建立模型系統(tǒng)。文檔內(nèi)容:①系統(tǒng)的功能說明②系統(tǒng)對(duì)數(shù)據(jù)的要求③用戶系統(tǒng)描述17第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)2.軟件開發(fā)期(1)系統(tǒng)設(shè)計(jì)①提出可選擇方案;②選擇合理方案;③推薦最佳方案;④功能分解;⑤設(shè)計(jì)軟件結(jié)構(gòu);⑥制定測(cè)試計(jì)劃;⑦提交文檔。18第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)詳細(xì)設(shè)計(jì)(3)編碼①選擇適當(dāng)?shù)某绦蛟O(shè)計(jì)語言;②使程序內(nèi)部有良好的文檔資料、規(guī)范的數(shù)據(jù)格式說明、簡(jiǎn)單清晰的語句結(jié)構(gòu)和合理的輸入輸出格式,這些都可以大大提高程序的可讀性,而且也可以改進(jìn)程序的可維護(hù)性;③充分利用已有的軟件工具來幫助編碼,以提高編碼的效率和減少程序中的錯(cuò)誤。(4)測(cè)試19第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)3.軟件維護(hù)期
①為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);④為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。20第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.1.3軟件支援環(huán)境一個(gè)完備的軟件支援環(huán)境應(yīng)有功能:
(1)能夠支援軟件生命的全周期。
(2)能夠支援大型軟件工程項(xiàng)目。
(3)能夠支援軟件配置管理。一般的軟件支援環(huán)境由以下幾部分組成。
(1)環(huán)境數(shù)據(jù)庫
(2)接口軟件
(3)工具組21第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.2軟件詳細(xì)設(shè)計(jì)6.2.1程序流程圖6.2.2NS圖6.2.3問題分析圖PAD6.2.4判定表6.2.5過程設(shè)計(jì)語言PDL22第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)也叫過程設(shè)計(jì),應(yīng)該在軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)之后進(jìn)行。主要是設(shè)計(jì)模塊內(nèi)的算法實(shí)現(xiàn)細(xì)節(jié)。詳細(xì)設(shè)計(jì)的任務(wù)不是編寫代碼,而是要為編寫程序代碼設(shè)計(jì)“圖紙”,有程序員按“圖紙”用某種高級(jí)程序設(shè)計(jì)語言編寫程序代碼。詳細(xì)設(shè)計(jì)的目的不僅僅是保證所涉及的模塊功能正確,更重要的是保證所設(shè)計(jì)的處理過程易于理解,具有良好的可靠性和可維護(hù)性。23第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.2.1程序流程圖程序流程圖中常用的圖形符號(hào)24第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)結(jié)構(gòu)化程序設(shè)計(jì)限制五種基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu)反映了若干個(gè)模塊之間連續(xù)執(zhí)行的順序。(2)在選擇結(jié)構(gòu)中,由某個(gè)條件P的取值來決定執(zhí)行兩個(gè)模塊之間的哪一個(gè)。(3)在當(dāng)型循環(huán)結(jié)構(gòu)中,只有當(dāng)某個(gè)條件成立時(shí)才重復(fù)執(zhí)行特定的模塊(稱為循環(huán)體)。(4)在直到型循環(huán)結(jié)構(gòu)中,重復(fù)執(zhí)行一個(gè)特定的模塊,直到某個(gè)條件成立時(shí)才退出該模塊的重復(fù)執(zhí)行。(5)在多情況選擇結(jié)構(gòu)中,根據(jù)某控制變量的取值來決定選擇多個(gè)模塊中的哪一個(gè)。25第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)26第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)程序流程圖的主要缺點(diǎn):(1)程序流程圖本質(zhì)上不是逐步求精的好工具,它會(huì)使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。(2)程序流程圖不易表示層次結(jié)構(gòu)。(3)程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)和模塊調(diào)用關(guān)系等重要信息。(4)程序流程圖中用箭頭代表控制流,因此,程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的思想,隨意進(jìn)行轉(zhuǎn)移控制。27第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.2.2NS圖NS圖基本特點(diǎn):
(1)功能域比較明確,可以從框圖中直接反映出來。
(2)不可能任意轉(zhuǎn)移控制,符合結(jié)構(gòu)化原則。
(3)很容易確定局部和全程數(shù)據(jù)的作用域。
(4)很容易表示嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。28第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)1.順序結(jié)構(gòu)29第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)2.選擇結(jié)構(gòu)(1)兩路分支結(jié)構(gòu)30第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)多路分支結(jié)構(gòu)31第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)3.循環(huán)結(jié)構(gòu)(1)當(dāng)型循環(huán)結(jié)構(gòu)32第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)直到型循環(huán)結(jié)構(gòu)33第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.2.3問題分析圖PAD(ProblemAnalysisDiagram)
PAD圖的五種基本控制結(jié)構(gòu)34第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.2.4判定表一張判定表由以下四部分組成:左上部列出所有條件;左下部是所有可能的動(dòng)作;右上部是表示各種條件組合的一個(gè)矩陣;右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。判定表右半部的每一列實(shí)際上就是一個(gè)規(guī)則,規(guī)定了與特定的條件組合相對(duì)應(yīng)的動(dòng)作。35第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)假設(shè)某大學(xué)要從學(xué)生中挑選男子籃球隊(duì)隊(duì)員,基本條件是各門課程的平均分在70分以上,身高超過1.80米,體重超過75公斤。需要從學(xué)生登記表中挑選出符合上述條件的男同學(xué),并列出他們的姓名和住址,以便進(jìn)一步選拔。36第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)37第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.2.5過程設(shè)計(jì)語言PDLPDL特點(diǎn):(1)關(guān)鍵字的固定語法,提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點(diǎn)。(2)用自然語言的自由語法來描述處理部分。(3)具有數(shù)據(jù)說明的手段。(4)具有模塊定義和調(diào)用的機(jī)制,提供各種接口描述模式。38第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)PDL優(yōu)點(diǎn):(1)可以作為注釋直接插在源程序中間。這樣做的好處是,能促使維護(hù)人員在修改源程序代碼的同時(shí)也修改PDL注釋,有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。(2)可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。(3)利用已有的自動(dòng)處理程序,可以自動(dòng)由PDL生成程序代碼。39第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.3結(jié)構(gòu)化分析與設(shè)計(jì)方法6.3.1應(yīng)用軟件開發(fā)的原則和方法6.3.2結(jié)構(gòu)化分析方法6.3.3結(jié)構(gòu)化設(shè)計(jì)方法40第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.3.1應(yīng)用軟件開發(fā)的原則和方法1.應(yīng)用軟件開發(fā)的基本原則
(1)自頂向下的系統(tǒng)結(jié)構(gòu)開發(fā)原則
(2)模塊化結(jié)構(gòu)開發(fā)原則41第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)2.應(yīng)用軟件的開發(fā)方法(1)非自動(dòng)形式的開發(fā)方法①系統(tǒng)流程圖法(systemflowchart)②結(jié)構(gòu)化分析方法(SA方法)③結(jié)構(gòu)化設(shè)計(jì)方法(SD方法)④數(shù)據(jù)結(jié)構(gòu)法(Jackson法)⑤層次輸入-處理-輸出方法(HIPO方法)42第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)半自動(dòng)形式的開發(fā)方法①SREM方法②PSL/PSA方法
PSL是一種問題說明語言(ProblemStatementLanguage)
PSA是一種問題說明分析器(ProblemStatementAnalyzer)
MICRO_PSL/PSA系統(tǒng)(3)自動(dòng)形式的系統(tǒng)開發(fā)方法主要以HOS(HigherOrderSoftware公司)方法為代表。43第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.3.2結(jié)構(gòu)化分析方法SA(StructualAnalysis)1.SA方法的特點(diǎn)(1)分解和抽象44第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)45第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)文檔的規(guī)范化①一套分層的數(shù)據(jù)流程圖,用于描述系統(tǒng)的邏輯關(guān)系。②一本數(shù)據(jù)字典,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件。③一組小說明,描述各個(gè)加工處理應(yīng)完成的工作。④其他補(bǔ)充材料,描述尚未說明或需要進(jìn)一步交代的問題。(3)面向用戶(4)系統(tǒng)的邏輯設(shè)計(jì)和物理設(shè)計(jì)分開進(jìn)行46第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)2.數(shù)據(jù)流程圖(1)數(shù)據(jù)流程圖的概念①用數(shù)據(jù)流程圖描述系統(tǒng)中信息的變換和傳遞過程,并輔以其他形式的說明,如數(shù)據(jù)字典、判定表和判定樹等。②將數(shù)據(jù)流程圖轉(zhuǎn)換成相應(yīng)的軟件結(jié)構(gòu)。
數(shù)據(jù)流程圖簡(jiǎn)稱DFD(DataFlowDiagram)47第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)研究生業(yè)務(wù)活動(dòng)數(shù)據(jù)流程圖48第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)數(shù)據(jù)流程圖的組成符號(hào)49第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(3)畫數(shù)據(jù)流程圖的方法①自頂向下逐層分解②由外向里逐漸深化50第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)3.數(shù)據(jù)字典在數(shù)據(jù)字典中,通常有四種類型的條目。(1)基本數(shù)據(jù)項(xiàng)條目例如,學(xué)生“年齡”這個(gè)數(shù)據(jù)項(xiàng)的定義如下:數(shù)據(jù)項(xiàng)名稱:學(xué)生年齡數(shù)據(jù)類型:整型數(shù)據(jù)長(zhǎng)度:一個(gè)字節(jié)取值范圍:16~3051第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)數(shù)據(jù)流條目課程目錄=課程名+學(xué)時(shí)+學(xué)分+教員+課表其中“教員”又可以列為一個(gè)子目錄,表示為教員=姓名+年齡+職稱“課表”也可以列為一個(gè)子目錄,表示成課表=星期幾+第幾節(jié)+教室
52第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)數(shù)據(jù)流條目的各數(shù)據(jù)項(xiàng)可以分為以下三種:①必有項(xiàng),即數(shù)據(jù)流條目中必定包含的數(shù)據(jù)項(xiàng);②必選項(xiàng),即在某幾項(xiàng)中必定出現(xiàn)其中一項(xiàng)或幾項(xiàng);③任選項(xiàng),即可選可不選的數(shù)據(jù)項(xiàng)。在表示數(shù)據(jù)流條目時(shí),一般要用到以下一些符號(hào):=含義是“定義為”或“等價(jià)為”+含義是連接,表示幾個(gè)數(shù)據(jù)項(xiàng)的合成
[]表示必選項(xiàng)
()表示任選項(xiàng)
{}表示重復(fù)(有時(shí)用上下標(biāo)表示重復(fù)次數(shù))例如,考試成績(jī)={學(xué)號(hào)+姓名}1100
+[平均分+方差]53第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(3)文件條目(4)加工條目(即數(shù)據(jù)處理?xiàng)l目)54第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.3.3結(jié)構(gòu)化設(shè)計(jì)方法1.結(jié)構(gòu)化設(shè)計(jì)方法的特點(diǎn)結(jié)構(gòu)化設(shè)計(jì)方法簡(jiǎn)稱SD(StructuredDesign)
(1)如何將系統(tǒng)劃分為一個(gè)個(gè)模塊;
(2)模塊之間傳遞什么數(shù)據(jù);
(3)模塊之間如何進(jìn)行調(diào)用;
(4)如何評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量。55第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)2.結(jié)構(gòu)圖結(jié)構(gòu)圖簡(jiǎn)稱SC(StructuredChart)圖56第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)計(jì)算工資的結(jié)構(gòu)圖57第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(1)模塊(2)調(diào)用(3)模塊間信息傳遞(4)輔助符號(hào)58第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)3.由數(shù)據(jù)流程圖導(dǎo)出結(jié)構(gòu)圖(1)變換型從變換型DFD導(dǎo)出結(jié)構(gòu)圖59第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(a)數(shù)據(jù)流程圖60第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(b)結(jié)構(gòu)圖61第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)事務(wù)型從事務(wù)型DFD導(dǎo)出結(jié)構(gòu)圖示意圖62第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(a)數(shù)據(jù)流程圖模型63第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(b)結(jié)構(gòu)圖64第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)4.模塊獨(dú)立性評(píng)價(jià)(1)耦合模塊之間的耦合反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。為了使系統(tǒng)各模塊之間相互影響盡可能地少,使系統(tǒng)簡(jiǎn)單而易理解,應(yīng)減少模塊之間的耦合程度。①數(shù)據(jù)耦合②同構(gòu)耦合③控制耦合④公用耦合⑤內(nèi)容耦合65第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)66第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)內(nèi)聚內(nèi)聚是對(duì)一個(gè)模塊內(nèi)部元素之間功能上相互聯(lián)系強(qiáng)度的測(cè)量。模塊內(nèi)聚度又稱為模塊強(qiáng)度。一個(gè)模塊的內(nèi)聚度越高,與其他模塊之間的耦合程度也就越弱。①功能內(nèi)聚②序列內(nèi)聚③通信內(nèi)聚④過程內(nèi)聚⑤時(shí)間內(nèi)聚⑥邏輯內(nèi)聚⑦偶然內(nèi)聚67第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)邏輯內(nèi)聚模塊的分解68第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)69第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)決定內(nèi)聚程度的判定樹70第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.4測(cè)試與調(diào)試基本技術(shù)6.4.1測(cè)試6.4.2調(diào)試71第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)據(jù)新華社洛杉磯2002年6月報(bào)道,美國(guó)一家研究所公布的調(diào)查結(jié)果表明,軟件錯(cuò)誤使美國(guó)每年損失高達(dá)595億美元。同時(shí)指出,如能做好檢測(cè)工作,即在軟件開發(fā)的早期發(fā)現(xiàn)漏洞并進(jìn)行彌補(bǔ)每年能給美國(guó)企業(yè)節(jié)省成本222億美元。然而,目前軟件中一半以上的錯(cuò)誤是在開發(fā)的后期或者售后使用中才被發(fā)現(xiàn)的。72第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)測(cè)試的工作量一般性軟件其測(cè)試工作量大約占整個(gè)開發(fā)工作量的40%系統(tǒng)軟件或關(guān)系到人的生命財(cái)產(chǎn)安全的重要軟件,其測(cè)試工作量通??赡苓_(dá)到整個(gè)開發(fā)工作量的3—5倍73第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)6.4.1測(cè)試1.測(cè)試的基本概念
測(cè)試具有以下三個(gè)重要特征。(1)測(cè)試的挑剔性測(cè)試不是為了證明程序是正確的,而是在設(shè)想程序有錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷。①測(cè)試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯(cuò)誤;②一個(gè)好的測(cè)試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;③一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤。74第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)完全測(cè)試的不可能性
測(cè)試只能說明程序有錯(cuò),而不能證明程序無錯(cuò),希望通過有限次的測(cè)試就能發(fā)現(xiàn)程序中的所有錯(cuò)誤是不可能的,即完全測(cè)試是不可能的。由于測(cè)試的這一特征,程序也不可能具有百分之百的可靠性。75第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(3)測(cè)試的經(jīng)濟(jì)性①?zèng)]有語法錯(cuò)誤;②運(yùn)行有結(jié)果;③對(duì)典型數(shù)據(jù)能得到正確的結(jié)果;④對(duì)典型的有效數(shù)據(jù)能得到正確的結(jié)果,對(duì)無效數(shù)據(jù)有防范措施;⑤對(duì)一切能出現(xiàn)的數(shù)據(jù)不出錯(cuò)。76第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)2.測(cè)試的過程
(1)程序的靜態(tài)分析
(2)程序的動(dòng)態(tài)分析
(3)自動(dòng)測(cè)試工具77第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)靜態(tài)測(cè)試:主要通過代碼審查和靜態(tài)分析,檢查源代碼中存在的問題。過程:代碼審查由有經(jīng)驗(yàn)的程序設(shè)計(jì)人員根據(jù)軟件詳細(xì)設(shè)計(jì)說明書,閱讀程序來發(fā)現(xiàn)源程序中類型、引用、參數(shù)傳遞、表達(dá)式等不必運(yùn)行程序就能夠發(fā)現(xiàn)的錯(cuò)誤。特點(diǎn):這種方法不需要專門的測(cè)試工具和設(shè)備,一旦發(fā)現(xiàn)錯(cuò)誤就能定位,但是此方法具有一定的局限性。靜態(tài)分析主要對(duì)程序進(jìn)行控制流分析、數(shù)據(jù)流分析、接口分析和表達(dá)式分析等
78第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)動(dòng)態(tài)測(cè)試:在指定的環(huán)境上運(yùn)行被測(cè)程序,輸入測(cè)試數(shù)據(jù),獲得測(cè)試結(jié)果,將獲得的測(cè)試結(jié)果與預(yù)期的結(jié)果進(jìn)行比較,發(fā)現(xiàn)程序的錯(cuò)誤。過程:設(shè)計(jì)測(cè)試用例,運(yùn)行被測(cè)程序。特點(diǎn):需要有程序的運(yùn)行環(huán)境,必要時(shí)要編寫測(cè)試驅(qū)動(dòng)程序和樁程序。79第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)3.測(cè)試的層次(1)模塊測(cè)試①模塊接口②局部數(shù)據(jù)結(jié)構(gòu)③重要路徑④錯(cuò)誤處理的能力⑤I/O錯(cuò)80第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)模塊測(cè)試的結(jié)構(gòu)81第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)整體測(cè)試整體測(cè)試可分為漸增式與非漸增式兩種。非漸增式的整體測(cè)試是將經(jīng)過單獨(dú)測(cè)試的所有模塊連接到一起進(jìn)行測(cè)試。漸增式的整體測(cè)試往往是與模塊測(cè)試同步進(jìn)行的,即在對(duì)模塊逐步裝配的過程中同時(shí)進(jìn)行的。這種測(cè)試方式可以減少模塊測(cè)試時(shí)要設(shè)計(jì)的驅(qū)動(dòng)模塊或承接模塊,又可以及時(shí)、準(zhǔn)確地發(fā)現(xiàn)結(jié)構(gòu)錯(cuò)誤的位置。漸增式的整體測(cè)試一般可以分為“自頂向下”和“自底向上”兩種。①“自頂向下”漸增式測(cè)試②“自底向上”漸增式測(cè)試82第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(3)高級(jí)測(cè)試①功能測(cè)試功能測(cè)試又稱有效性測(cè)試,主要是用黑箱法測(cè)試軟件功能是否與用戶一致。②系統(tǒng)測(cè)試把軟件元素與硬件元素結(jié)合在一起進(jìn)行測(cè)試。③驗(yàn)收測(cè)試主要檢查程序的操作與原設(shè)計(jì)要求以及用戶要求是否一致。這類測(cè)試常以用戶為主體進(jìn)行。④安裝測(cè)試主要檢查軟件在安裝時(shí)產(chǎn)生的問題。83第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)4.測(cè)試的方法
設(shè)計(jì)和使用測(cè)試用例基本原則:①設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)確定程序運(yùn)行的預(yù)期結(jié)果。②測(cè)試用例不僅要選用合理的輸入數(shù)據(jù),也要選用不合理的輸入數(shù)據(jù)。③除了需要檢查程序是否做了應(yīng)該做的事,還要檢查程序是否做了不應(yīng)該做的事。④千萬不要幻想程序是正確的。⑤要保留有用的測(cè)試用例,以便再測(cè)試時(shí)使用。⑥測(cè)試用例要系統(tǒng)地進(jìn)行設(shè)計(jì),不可隨意湊合。84第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(1)白箱法白箱測(cè)試用例的設(shè)計(jì)準(zhǔn)則有:語句覆蓋,分支覆蓋,條件覆蓋和組合條件覆蓋。①語句覆蓋語句覆蓋準(zhǔn)則是企圖用足夠多的測(cè)試用例,使程序中的每個(gè)語句都執(zhí)行一遍,以便盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。這是一個(gè)非常弱的測(cè)試方法。因?yàn)槊織l語句都執(zhí)行一次,仍然會(huì)有許多錯(cuò)誤測(cè)試不出來。85第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)某程序段如下:
…IF(a>1andb=0)THENx=x/aIF(a=2orx>1)THENx=x+1…86第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)每條語句都執(zhí)行一次,程序中第二個(gè)判定OR寫成AND仍然不能被發(fā)現(xiàn)錯(cuò)誤87第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)②分支覆蓋分支覆蓋準(zhǔn)則也稱為判定覆蓋準(zhǔn)則。它要求通過足夠多的測(cè)試用例,使程序中的每個(gè)分支至少通過一次。88第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)89第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)③條件覆蓋條件覆蓋準(zhǔn)則是通過執(zhí)行足夠多的測(cè)試用例,使每個(gè)判定中的每個(gè)條件都能取到兩種不同的結(jié)果(“真”與“假”)。用以下兩個(gè)測(cè)試用例便可以使每個(gè)條件都能取到“真”值和“假”值:
a=2,b=1,x=1(“a>1”為真,“b=0”為假,“a=2”為真,“x>1”為假)
a=1,b=0,x=3(“a>1”為假,“b=0”為真,“a=2”為假,“x>1”為真)90第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)④組合條件覆蓋組合條件覆蓋準(zhǔn)則要求通過足夠多的測(cè)試用例,使每個(gè)判定中各條件的各種可能組合至少出現(xiàn)一次。例如,第一個(gè)判定框中的兩個(gè)條件有以下四種組合:條件組合1a>1,b=0;
條件組合2a>1,b≠0;
條件組合3a≤1,b=0;
條件組合4a≤1,b≠0。第二個(gè)判定框中的兩個(gè)條件也有以下四種組合條件組合5a=2,x>1;
條件組合6a=2,x≤1;
條件組合7a≠2,x>1;
條件組合8a≠2,x≤1.91第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)下面的四個(gè)測(cè)試用例就可以覆蓋上述八種可能的條件組合:
a=2,b=0,x=3(覆蓋條件組合1和5)
a=2,b=1,x=1(覆蓋條件組合2和6)
a=1,b=0,x=3(覆蓋條件組合3和7)
a=1,b=1,x=1(覆蓋條件組合4和8)92第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)93第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(2)黑箱法常用的黑箱測(cè)試有等價(jià)分類法、邊值分析法、因果圖法和錯(cuò)誤推測(cè)法。①等價(jià)分類法等價(jià)分類法是把所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干等價(jià)類,使每一類中的一個(gè)典型數(shù)據(jù)在測(cè)試中的作用與這一類中所有其他數(shù)據(jù)的作用相同。在實(shí)際進(jìn)行測(cè)試時(shí),可以從每個(gè)等價(jià)類中只取一組數(shù)據(jù)作為測(cè)試用例。等價(jià)分類法分為兩步:一是劃分等價(jià)類(包括有效等價(jià)類和無效等價(jià)類);二是從每個(gè)等價(jià)類中選取測(cè)試用例。劃分等價(jià)類的基本方法:根據(jù)程序的功能說明,找出所有的輸入條件,然后為每一個(gè)輸入條件劃分等價(jià)類。94第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)95第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)·如果輸入條件規(guī)定了值的范圍,則可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類;·如果輸入條件規(guī)定了值的個(gè)數(shù),則可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類;·如果輸入條件規(guī)定了一個(gè)輸入值的有窮集,且確信程序?qū)γ總€(gè)輸入值單獨(dú)處理,則可以對(duì)集合中的每一個(gè)輸入值確定一個(gè)有效等價(jià)類,同時(shí)可以確定一個(gè)無效等價(jià)類;·如果輸入條件規(guī)定了“必須如何”的條件,則可以確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類;·如果確信某一等價(jià)類中的各元素在程序中的處理方式是有區(qū)別的,則應(yīng)把這個(gè)等價(jià)類分成更小的等價(jià)類。96第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)②邊值分析法·如果輸入條件規(guī)定了值的范圍,則要對(duì)這個(gè)范圍的邊界情況以及稍超出范圍的無效情況進(jìn)行測(cè)試;例如,輸入范圍是1到10的整數(shù),則測(cè)試用例的取值:
0,1,10,11·如果輸入條件規(guī)定了值的個(gè)數(shù),則要分別對(duì)值的最大個(gè)數(shù)、最小個(gè)數(shù)、稍多于最大個(gè)數(shù)和稍少于最小個(gè)數(shù)的情況進(jìn)行測(cè)試;例如,要求的記錄個(gè)數(shù)是1到255,則設(shè)計(jì)的記錄個(gè)數(shù)分別為:0,1,255,256·對(duì)于輸出條件使用上述兩條;·如果輸入和輸出是有序集,則應(yīng)把注意力集中在第一和最后一個(gè)元素上。97第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)③因果圖法④錯(cuò)誤推測(cè)法例如,要測(cè)試一個(gè)排序程序,特別需要檢查的情況有:
·輸入表為空;
·輸入表只含有一個(gè)元素;
·輸入表中所有元素相同;
·輸入表實(shí)際有序。98第6章應(yīng)用軟件設(shè)計(jì)與開發(fā)技術(shù)(3)綜合策略①如果程序功能說明中包含有輸入條件的組合,便應(yīng)從因果圖開始,以減少組合情況。②在任何情況下都要用邊值分析法,通過分析輸入和輸出條件的邊界值,補(bǔ)充一些測(cè)試用例。③判別輸入/輸出的有效和無效等價(jià)類,進(jìn)一步補(bǔ)充測(cè)試用例。④利用錯(cuò)誤推測(cè)法補(bǔ)充一些測(cè)試用例。⑤查看上述測(cè)試用例的覆蓋程度,對(duì)未滿足的覆蓋標(biāo)準(zhǔn),增加一些測(cè)試用例。99第6章應(yīng)用軟
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師開學(xué)前軍訓(xùn)心得體會(huì)5篇
- 物流設(shè)施與設(shè)備第二章航空管道
- 債務(wù)償付質(zhì)押合同(2篇)
- 公共事業(yè)投資合作協(xié)議書(2篇)
- 河南省安陽市第六十二中學(xué)2022年高三語文下學(xué)期期末試卷含解析
- 2025年Γ-球蛋白三類項(xiàng)目合作計(jì)劃書
- 上海寫字樓租賃合同范本
- 幼兒園房屋租賃合同書范本
- 小吃街?jǐn)偽蛔赓U合同
- 長(zhǎng)期租賃合同范本
- 人防、物防、技防工作措施
- 市場(chǎng)部培訓(xùn)課程課件
- 八年級(jí)歷史上冊(cè)論述題匯總
- 資產(chǎn)評(píng)估學(xué)教程(第八版)習(xí)題及答案 喬志敏
- 《民俗旅游學(xué)》教學(xué)大綱(含課程思政元素)
- 人教版小學(xué)三年級(jí)上學(xué)期期末數(shù)學(xué)試卷(及答案)
- 2021年學(xué)校意識(shí)形態(tài)工作總結(jié)
- 《關(guān)于加強(qiáng)和改進(jìn)新時(shí)代師德師風(fēng)建設(shè)的意見》培訓(xùn)課件
- 天津高考英語詞匯3500
- 2023年智慧電廠垃圾焚燒發(fā)電廠解決方案
- 人資法務(wù)技能指導(dǎo)【紅皮書完整版】
評(píng)論
0/150
提交評(píng)論