計(jì)算機(jī)軟件技術(shù)基礎(chǔ)教程課件-3第三章-結(jié)構(gòu)化開發(fā)方法_第1頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)教程課件-3第三章-結(jié)構(gòu)化開發(fā)方法_第2頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)教程課件-3第三章-結(jié)構(gòu)化開發(fā)方法_第3頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)教程課件-3第三章-結(jié)構(gòu)化開發(fā)方法_第4頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)教程課件-3第三章-結(jié)構(gòu)化開發(fā)方法_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章結(jié)構(gòu)化開發(fā)方法3.1問題定義和可行性研究軟件開發(fā)一般涉及用戶和開發(fā)人員,即先由用戶提出問題,然后由軟件開發(fā)人員給出問題的解答。

但是,雙方交流時(shí)存在著隔閡。更有甚者,用戶本身也不知道他究竟要計(jì)算機(jī)做些什么。3.2需求分析在可行性研究的基礎(chǔ)上,就必須明確軟件系統(tǒng)必須“做什么”,并形成有關(guān)目標(biāo)系統(tǒng)的需求說明書,這就是需求分析(RequirementAnalysis)。在軟件工程中,所謂“用戶要求”(或稱“需求”)是指軟件系統(tǒng)必須滿足的所有性質(zhì)和限制。用戶要求通常包括功能要求、性能要求、可靠性要求、安全保密要求、開發(fā)費(fèi)用、開發(fā)周期以及可使用的資源等方面的限制,其中功能要求是最基本的,它又包括數(shù)據(jù)要求和加工要求兩方面。3.2需求分析

需求說明書主要有以下三個(gè)作用:(1)作為用戶和軟件人員之間的合同,為雙方相互了解提供基礎(chǔ)。(2)反映出問題的結(jié)構(gòu),可以作為軟件人員進(jìn)行設(shè)計(jì)和編程的基礎(chǔ)。(3)作為驗(yàn)收的依據(jù),即作為選取測(cè)試用例(如進(jìn)行形式驗(yàn)證)的依據(jù)。3.2需求分析3.2.1結(jié)構(gòu)化分析(SA方法)

由頂向下逐層分解3.2需求分析

用SA方法獲得的需求說明書由以下幾部分組成: (1)一套分層的數(shù)據(jù)流圖; (2)一本數(shù)據(jù)詞典; (3)一組小說明; (4)補(bǔ)充材料。3.2需求分析3.2.2數(shù)據(jù)流程圖

數(shù)據(jù)流圖主要用來描述目標(biāo)系統(tǒng)的邏輯模型。SA方法采用“分解”的方式來理解一個(gè)復(fù)雜的系統(tǒng),“分解”需要有描述的手段,數(shù)據(jù)流圖(DataFlowDiagram)就是作為描述“分解”的手段而引進(jìn)的。3.2需求分析

數(shù)據(jù)流圖有四種基本成分:(1)數(shù)據(jù)流(用箭頭表示);(2)加工(用圓表示);(3)文件(用直線段表示);(4)數(shù)據(jù)流的源點(diǎn)或終點(diǎn)(用方框表示)。3.2需求分析數(shù)據(jù)流

數(shù)據(jù)流“報(bào)名請(qǐng)求”由“姓名”、“年齡”、“性別”、“單位名”、“課程名”等成分組成,數(shù)據(jù)流“發(fā)票”由“姓名”、“單位名”、“金額”組成,它們的組成成分都是確定的。3.2需求分析

應(yīng)該注意的是:數(shù)據(jù)流圖中描述的是數(shù)據(jù)流而不是控制流。下圖中“取下一張卡片”是一個(gè)控制流而不是數(shù)據(jù)流,因?yàn)椴]有任何數(shù)據(jù)沿著這個(gè)箭頭流動(dòng),所以這個(gè)箭頭應(yīng)該從圖中刪去。習(xí)慣使用框圖(程序流程圖)的軟件人員特別應(yīng)該注意不要犯這種錯(cuò)誤。3.2需求分析2.加工

加工是對(duì)數(shù)據(jù)進(jìn)行的操作。3.文件

文件是暫時(shí)存儲(chǔ)的數(shù)據(jù)。4.源點(diǎn)和終點(diǎn)

一個(gè)數(shù)據(jù)處理系統(tǒng)的內(nèi)部用數(shù)據(jù)流、文件和加工三種成分表示一般已足夠了,然而為了便于理解,有時(shí)還可以畫出數(shù)據(jù)流的源點(diǎn)和終點(diǎn)來說明它的來龍去脈。3.2需求分析3.2.3數(shù)據(jù)詞典1.數(shù)據(jù)詞典與數(shù)據(jù)流圖的聯(lián)系2.數(shù)據(jù)詞典條目的各種類型3.2需求分析3.2.4需求分析階段的其他工作

除了前面討論的工作之外,需求分析階段還應(yīng)完成下列工作:1)確定設(shè)計(jì)限制2)確定驗(yàn)收準(zhǔn)則3)編寫“初步用戶手冊(cè)”4)復(fù)查需求說明書3.3總體設(shè)計(jì)軟件工程的分析階段的工作結(jié)果是需求說明書,它明確地描述了用戶要求軟件系統(tǒng)“做什么”。既然明確了“問題”,我們就可以著手尋求“問題的答案”,即建立一個(gè)符合用戶要求的軟件系統(tǒng)??傮w設(shè)計(jì)是決定軟件的結(jié)構(gòu),包括數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)(本章節(jié)只討論程序結(jié)構(gòu))。3.3總體設(shè)計(jì)3.3.1模塊化概念3.3.2模塊化設(shè)計(jì)方法3.3.3總體設(shè)計(jì)的其它工作3.4詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的主要任務(wù)1)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì);2)對(duì)模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì);3)對(duì)數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫的物理結(jié)構(gòu);4)其他可能的設(shè)計(jì),即代碼設(shè)計(jì)、輸入輸出格式設(shè)計(jì)和人機(jī)對(duì)話設(shè)計(jì);5)編寫詳細(xì)的設(shè)計(jì)說明書;6)評(píng)審3.4詳細(xì)設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)建立在BohmJacopini證明的結(jié)構(gòu)定理之上的,基本要點(diǎn)是:

1)采用自頂向下、逐步求精的程序設(shè)計(jì)方法;2)使用三種基本控制結(jié)構(gòu)構(gòu)造程序,避免使用GOTO語句。3.5軟件編程軟件編程(Coding)的任務(wù)是為每個(gè)模塊編寫程序,也就是說,將詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)換為用某種程序設(shè)計(jì)語言編寫的程序,這個(gè)程序必須是無錯(cuò)的,并且應(yīng)有必要的內(nèi)部文檔和外部文檔。考慮到讀者已經(jīng)具備了編程的知識(shí)和經(jīng)驗(yàn),本節(jié)不再討論怎樣編程,而是討論在軟件工程的背景下,怎樣編寫“良好的”程序。3.5軟件編程隨著軟件系統(tǒng)規(guī)模和復(fù)雜性的增加,人們逐步認(rèn)識(shí)到程序經(jīng)常需要被人閱讀,而且閱讀程序是軟件開發(fā)工作中的一個(gè)重要環(huán)節(jié)。有人認(rèn)為讀程序的時(shí)間恐怕比編寫程序的時(shí)間還要多。在這種背景下,人們開始認(rèn)識(shí)到:程序?qū)嶋H上也是一種供人閱讀的“文章”,只不過它不是用自然語言而是用程序設(shè)計(jì)語言編寫而已。一個(gè)邏輯上雜亂無章的程序是沒有什么價(jià)值的,因?yàn)樗鼰o法供人閱讀,無法再利用。3.5軟件檢驗(yàn)1.軟件測(cè)試的目的及原則軟件測(cè)試的主要手段有動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。軟件測(cè)試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;一個(gè)好的測(cè)試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤;一次成功的測(cè)試應(yīng)該是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤。

3.5軟件檢驗(yàn)在軟件測(cè)試中應(yīng)注意以下原則:1)測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)兩部分組成。2)測(cè)試用例不僅選用合理的輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。3)除了檢查程序是否做了它應(yīng)該做的事,還應(yīng)該檢查程序是否做了他不應(yīng)該做的事。4)應(yīng)制定測(cè)試計(jì)劃并嚴(yán)格執(zhí)行,排除隨意性。5)長(zhǎng)期保留測(cè)試用例。6)對(duì)發(fā)現(xiàn)較多錯(cuò)誤的程序段,應(yīng)進(jìn)行更深入的測(cè)試。7)程序員避免測(cè)試自己的程序。3.5軟件檢驗(yàn)2.動(dòng)態(tài)測(cè)試動(dòng)態(tài)測(cè)試是指通過運(yùn)行程序發(fā)現(xiàn)錯(cuò)誤。傳統(tǒng)的測(cè)試大多是動(dòng)態(tài)測(cè)試。動(dòng)態(tài)測(cè)試方法中根據(jù)測(cè)試用例的設(shè)計(jì)方法不同,分為黑盒測(cè)試和白盒測(cè)試兩類。

1)黑盒法。該方法把被測(cè)試對(duì)象看成一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程,只在軟件的接口處進(jìn)行測(cè)試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。因此,黑盒測(cè)試又稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。3.5軟件檢驗(yàn)2)白盒法。

該方法把測(cè)試對(duì)象看作一個(gè)打開的盒子,測(cè)試人員須了解程序的內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細(xì)節(jié)為基礎(chǔ),對(duì)程序中盡可能多的邏輯路徑進(jìn)行測(cè)試,檢驗(yàn)內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯(cuò),實(shí)際的運(yùn)行狀態(tài)和預(yù)期的狀態(tài)是否一致。白盒測(cè)試是結(jié)構(gòu)測(cè)試,被測(cè)對(duì)象基本上是源程序,以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計(jì)測(cè)試用例。3.5軟件檢驗(yàn)3.靜態(tài)測(cè)試靜態(tài)測(cè)試指被測(cè)試程序不在機(jī)器上運(yùn)行,而是采用人工檢測(cè)和計(jì)算機(jī)輔助靜態(tài)分析的手段對(duì)程序進(jìn)行檢測(cè),這種技術(shù)也稱評(píng)審。將評(píng)審過程與開發(fā)過程結(jié)合起來,是評(píng)審成為前一階段之后必須進(jìn)行的步驟是一種評(píng)審方式。程序走查是另一種有效的評(píng)審方式。評(píng)審的目的是盡量快、盡量多地發(fā)現(xiàn)錯(cuò)誤。3.5軟件檢驗(yàn)4.正確性證明程序正確性證明是用某種方法確切地證明程序是沒有錯(cuò)誤的,其最常用的方法是歸納斷言法。程序的正確性證明距離實(shí)用還有一段路要走。3.5軟件檢驗(yàn)5.測(cè)試步驟測(cè)試過程通常分三步進(jìn)行:

1)模塊測(cè)試(ModuleTesting)。又稱單元測(cè)試,指對(duì)源程序中每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)模塊是否正確實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤。

2)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論