數(shù)據(jù)庫(kù)與軟件工程-軟件工程概述_第1頁(yè)
數(shù)據(jù)庫(kù)與軟件工程-軟件工程概述_第2頁(yè)
數(shù)據(jù)庫(kù)與軟件工程-軟件工程概述_第3頁(yè)
數(shù)據(jù)庫(kù)與軟件工程-軟件工程概述_第4頁(yè)
數(shù)據(jù)庫(kù)與軟件工程-軟件工程概述_第5頁(yè)
已閱讀5頁(yè),還剩178頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程概述數(shù)據(jù)庫(kù)與軟件工程第二部分12軟件工程程綜述軟件生存存周期軟件質(zhì)量量與質(zhì)量量保證軟件工程程管理軟件開(kāi)發(fā)發(fā)環(huán)境目錄錄3軟件發(fā)展展的三個(gè)個(gè)階段軟件工程程相關(guān)概概念軟件工程程目標(biāo)軟件工程程三要素素軟件工程程綜述什么是計(jì)計(jì)算機(jī)軟軟件?計(jì)算機(jī)軟軟件指計(jì)計(jì)算機(jī)系系統(tǒng)中的的程序及其其文檔程序是計(jì)計(jì)算任務(wù)務(wù)的處理理對(duì)象和和處理規(guī)規(guī)則的描描述計(jì)算任務(wù)務(wù):任何何以計(jì)算算機(jī)為處處理工具具的任務(wù)務(wù)處理對(duì)象象:數(shù)據(jù)據(jù)(如數(shù)數(shù)據(jù)、文文字、圖圖形、圖圖像、聲聲音等,它們只只是表示示,而無(wú)無(wú)含義)或信息息(數(shù)據(jù)據(jù)及有關(guān)關(guān)的含義義)處理規(guī)則則一般指指處理的的動(dòng)作和和步驟。程序必必須裝入入計(jì)算機(jī)機(jī)內(nèi)才能能工作文檔是為為

2、了便于于了解程程序所需需的闡明性資料,文文檔一般般是給人人看的,不一定定裝入計(jì)計(jì)算機(jī)45軟件的特特點(diǎn):抽象性不是實(shí)物物。嚴(yán)密性是邏輯產(chǎn)產(chǎn)品。智力性思維過(guò)程程。持久性無(wú)時(shí)間損損壞。一次性創(chuàng)造性的的產(chǎn)物。難以度量量難定量測(cè)測(cè)量。易出錯(cuò)信息轉(zhuǎn)移移造成。必須維護(hù)護(hù)糾錯(cuò)和變變更。6軟件發(fā)展展的三個(gè)個(gè)階段程序設(shè)計(jì)計(jì)時(shí)代(50-60年代)軟件指程程序,軟軟件開(kāi)發(fā)發(fā)關(guān)注程程序編寫(xiě)寫(xiě),用匯匯編及機(jī)機(jī)器語(yǔ)言言程序系統(tǒng)統(tǒng)時(shí)代(60-70年代)軟件指程程序及說(shuō)說(shuō)明書(shū),軟件開(kāi)開(kāi)發(fā)包括括程序設(shè)設(shè)計(jì)和測(cè)測(cè)試,用用高級(jí)語(yǔ)語(yǔ)言軟件工程程時(shí)代(70年代以后后)軟件開(kāi)發(fā)發(fā)包括軟軟件生命命期,用用軟件語(yǔ)語(yǔ)言(包包括需求求定義語(yǔ)語(yǔ)言、

3、軟軟件功能能語(yǔ)言、軟件設(shè)設(shè)計(jì)語(yǔ)言言、程序序設(shè)計(jì)語(yǔ)語(yǔ)言等)7軟件工程程相關(guān)概概念軟件危機(jī)機(jī):在軟件開(kāi)開(kāi)發(fā)過(guò)程程中遇到到的問(wèn)題題找不到到解決的的辦法,致使問(wèn)問(wèn)題積累累起來(lái)形形成了日日益尖銳銳的矛盾盾。危機(jī)實(shí)例例(1):1963年美國(guó)飛飛往火星星的火箭箭探測(cè)器器爆炸,造成1000萬(wàn)美元(數(shù)億美元元)的損失。原因是是用于控控制火星星探測(cè)器器的計(jì)算算機(jī)軟件件FORTRAN程序:DO5I=1,3誤寫(xiě)為:DO5I=1.3危機(jī)實(shí)例例(2):1967年蘇聯(lián)“聯(lián)盟一號(hào)號(hào)”載人宇宙宙飛船在在返航時(shí)時(shí),由于于軟件忽忽略一個(gè)個(gè)小數(shù)點(diǎn)點(diǎn),在進(jìn)進(jìn)入大氣氣層時(shí)因因打不開(kāi)開(kāi)降落傘傘而燒毀毀。宇航員:弗拉迪迪米爾科馬洛夫夫8軟件

4、工程程相關(guān)概概念軟件危機(jī)機(jī):危機(jī)實(shí)例例(3):人員傷亡亡:由于于計(jì)算機(jī)機(jī)軟件被被廣泛應(yīng)應(yīng)用于包包括醫(yī)院院等與生生命息息息相關(guān)的的行業(yè)。這也使使得軟件件的錯(cuò)誤誤導(dǎo)致人人員傷亡亡成為了了可能。Therac-25的意外:(在軟件工工程界被被大量引引用的案案例)在1985年六月到1987年一月之間間,六個(gè)已知知的醫(yī)療療事故來(lái)來(lái)自于Therac-25錯(cuò)誤地超超過(guò)劑量量,導(dǎo)致患者者死亡或或嚴(yán)重輻輻射灼傷傷9軟件工程程相關(guān)概概念軟件危機(jī)機(jī):危機(jī)實(shí)例例(4):IBM公司1963-1966年開(kāi)發(fā)IBM360操作系統(tǒng)統(tǒng),項(xiàng)目目花了5000人-年的工作作量,最最多時(shí)有有1000人投入開(kāi)開(kāi)發(fā)工作作,寫(xiě)出出100萬(wàn)行源

5、程程序,但但發(fā)行的的每一新新版本都都是上一一版1000個(gè)錯(cuò)誤的的修正。事后負(fù)責(zé)責(zé)人F.D.Brooks總結(jié)教訓(xùn)訓(xùn)時(shí)說(shuō):“正象一只只逃亡的的野獸落落到泥潭潭中做垂垂死的掙掙扎,越越是掙扎扎,陷的的越深。最后無(wú)無(wú)法逃脫脫滅頂?shù)牡臑?zāi)難。程序設(shè)設(shè)計(jì)工作作正像這這樣一個(gè)個(gè)泥潭,一批批批程序員員被迫在在泥潭中中拼命掙掙扎,誰(shuí)也沒(méi)料料到問(wèn)題題竟會(huì)陷陷入這樣樣的困境境”10軟件危機(jī)機(jī)的表現(xiàn)現(xiàn)對(duì)軟件開(kāi)開(kāi)發(fā)成本本和進(jìn)度度的估計(jì)計(jì)常常很很不正確確用戶對(duì)“已完成成的”軟軟件系統(tǒng)統(tǒng)不滿意意的現(xiàn)象象經(jīng)常發(fā)發(fā)生軟件產(chǎn)品品的質(zhì)量量往往靠靠不住軟件常常常是不可可維護(hù)的的軟件通常常沒(méi)有適適當(dāng)?shù)奈奈臋n資料料軟件成本本在計(jì)算算機(jī)系統(tǒng)

6、統(tǒng)總成本本中所占占的比例例逐年上上升軟件開(kāi)發(fā)發(fā)生產(chǎn)率率提高的的速度遠(yuǎn)遠(yuǎn)遠(yuǎn)跟不不上計(jì)算算機(jī)應(yīng)用用迅速普普及深入入的趨勢(shì)勢(shì)11軟件危機(jī)機(jī)的原因因軟件是邏邏輯產(chǎn)品品,開(kāi)發(fā)發(fā)進(jìn)度、成本難難以估計(jì)計(jì)缺乏或不不完整、不一致致的文檔檔給維護(hù)護(hù)帶來(lái)困困難用戶對(duì)軟軟件需求求的描述述往往不不夠精確確,有遺遺漏,有有二義軟件開(kāi)發(fā)發(fā)人員對(duì)對(duì)需求的的理解與與用戶的的本來(lái)愿愿望有差差異大型軟件件項(xiàng)目需需多人協(xié)協(xié)同完成成,缺乏乏管理經(jīng)經(jīng)驗(yàn)開(kāi)發(fā)人員員不能有有效地、獨(dú)立自自主地處處理大型型軟件的的全部關(guān)關(guān)系缺乏有力力的方法法學(xué)和工工具的支支持軟件項(xiàng)目目的特殊殊性和人人類智力力的局限限性12克服軟件件危機(jī)的的途徑消除錯(cuò)誤的概概念

7、和做做法推廣使用成功功的開(kāi)發(fā)發(fā)技術(shù)和和方法使用軟件工具具和軟件件工程支支持環(huán)境境加強(qiáng)軟件件管理擺脫軟件件危機(jī)的的出路:軟件開(kāi)發(fā)發(fā)的工程化和標(biāo)準(zhǔn)化13軟件工程程相關(guān)概概念軟件工程程:軟件工程程是用科科學(xué)知識(shí)識(shí)和技術(shù)術(shù)原理來(lái)來(lái)定義、開(kāi)發(fā)、維護(hù)軟軟件的一一門綜合合性的交交叉學(xué)科科,軟件件工程是是開(kāi)發(fā)與與維護(hù)軟軟件的規(guī)規(guī)范化系系統(tǒng)方法法。它綜合應(yīng)應(yīng)用計(jì)算算機(jī)科學(xué)學(xué)、數(shù)學(xué)學(xué)及管理理科學(xué)等等原理開(kāi)開(kāi)發(fā)軟件件的工程程。計(jì)算機(jī)科科學(xué)、數(shù)數(shù)學(xué)用于于構(gòu)造模模型與算算法;工程科學(xué)學(xué)用于制制定規(guī)范范、設(shè)計(jì)計(jì)范型、評(píng)估成成本及確確定權(quán)衡衡;管理科學(xué)學(xué)用于用用于計(jì)劃劃、資源源、質(zhì)量量、成本本等管理理。14軟件工程程的目標(biāo)

8、能按時(shí)完完成開(kāi)發(fā)發(fā)任務(wù),及時(shí)交交付使用用;付出較低低的開(kāi)發(fā)發(fā)成本,達(dá)到要要求的軟軟件功能能;取得較好好的軟件件性能;開(kāi)發(fā)的軟軟件易于于移植;需要較低低的維護(hù)護(hù)費(fèi)用;開(kāi)發(fā)的軟軟件可靠靠性高。15軟件工程程三要素素軟件工程程方法軟件工具具軟件工程程過(guò)程為軟件開(kāi)開(kāi)發(fā)提供供“如何何做”的的技術(shù)。如怎樣樣定項(xiàng)目目計(jì)劃、怎樣實(shí)實(shí)施需求求分析、如何測(cè)測(cè)試等。為軟件工工程方法法提供自自動(dòng)或半半自動(dòng)軟軟件支撐撐環(huán)境。如軟件件開(kāi)發(fā)工工具、測(cè)測(cè)試工具具等。軟軟件開(kāi)發(fā)發(fā)的不同同階段可可使用不不同的工工具。將軟件工工程劃分分為若干干階段,分配方方法和工工具,定定義每個(gè)個(gè)階段的的先后順順序和完完成標(biāo)志志。16軟件生存存周

9、期生存周期期概念生存周期期各階段段生存周期期模型17軟件生存存周期軟件生存存周期(softwarelife cycle)又稱為為軟件生生命期。是指從形形成開(kāi)發(fā)發(fā)軟件概概念起,所開(kāi)發(fā)發(fā)的軟件件使用以以后,直直到失去去使用價(jià)價(jià)值消亡亡為止的的整個(gè)過(guò)過(guò)程。一般來(lái)說(shuō)說(shuō),整個(gè)個(gè)生存周周期包括括計(jì)劃、開(kāi)開(kāi)發(fā)、運(yùn)運(yùn)行三個(gè)時(shí)期期,每一個(gè)時(shí)時(shí)期又劃劃分為若若干階段段。每個(gè)階階段有明明確的任任務(wù),這這樣使規(guī)規(guī)模大、結(jié)構(gòu)復(fù)復(fù)雜和管管理復(fù)雜雜的軟件件開(kāi)發(fā)變變得容易易控制和和管理。軟件生存存周期概概念18軟件生命命周期軟件生命命期各階階段軟件計(jì)劃劃與可行行性研究究軟件系統(tǒng)統(tǒng)需求分分析軟件設(shè)計(jì)計(jì)軟件編碼碼軟件測(cè)試試與調(diào)試

10、試軟件運(yùn)行行與維護(hù)護(hù)軟件生命命期一般般包括以以下各階階段:19軟件-建筑計(jì)劃與可可行性研研究系統(tǒng)需求求分析軟件設(shè)計(jì)計(jì)軟件編碼碼軟件測(cè)試試與調(diào)試試軟件運(yùn)行行與維護(hù)護(hù)20一、軟軟件計(jì)劃劃與可行行性研究究目的確定軟件件項(xiàng)目是是否能夠夠開(kāi)發(fā)?是否值值得去開(kāi)開(kāi)發(fā)?輸出:可可行性研研究報(bào)告告成本效益分析析項(xiàng)目開(kāi)發(fā)發(fā)計(jì)劃21一、軟件件計(jì)劃與與可行性性研究初步確定定項(xiàng)目的的規(guī)模和和目標(biāo),確定項(xiàng)項(xiàng)目的約約束和限限制。分析員進(jìn)進(jìn)行簡(jiǎn)要要的需求求分析,抽象出出邏輯結(jié)結(jié)構(gòu),建建立邏輯輯模型。從邏輯模模型出發(fā)發(fā),經(jīng)過(guò)過(guò)壓縮的的設(shè)計(jì),找出幾幾種可供供選擇的的解決辦辦法。過(guò)程22一、軟件件計(jì)劃與與可行性性研究對(duì)每種解解決方

11、法法,可從從以下三三個(gè)方面面分析研研究每種種解決方方法的可可行性。1技術(shù)可可行性2經(jīng)濟(jì)可可行性3社會(huì)可可行性內(nèi)容23軟件可行行性研究究1技術(shù)可可行性對(duì)要開(kāi)發(fā)發(fā)項(xiàng)目的的功能、性能、限制條條件進(jìn)行行分析,確定在在現(xiàn)有的的資源條條件下,技術(shù)風(fēng)風(fēng)險(xiǎn)有多多大,項(xiàng)項(xiàng)目是否否能實(shí)現(xiàn)現(xiàn)。資源:已已有的或或可以獲獲得的硬硬件、軟軟件資源源現(xiàn)有技術(shù)術(shù)人員的的技術(shù)水水平已有的工工作基礎(chǔ)礎(chǔ)。技術(shù)可行行性分析析通常包包括風(fēng)險(xiǎn)險(xiǎn)分析、資源分分析和技技術(shù)分析析三個(gè)方面面的可行行性24風(fēng)險(xiǎn)分析析:分析在在給定的的約束條條件下設(shè)設(shè)計(jì)和實(shí)實(shí)現(xiàn)系統(tǒng)統(tǒng)的風(fēng)險(xiǎn)險(xiǎn)。采用不成成熟的技技術(shù)可能能造成技技術(shù)風(fēng)險(xiǎn)險(xiǎn)人員流動(dòng)動(dòng)可能給給項(xiàng)目帶帶來(lái)風(fēng)

12、險(xiǎn)險(xiǎn)成本和人人員估算算不合理理造成的的預(yù)算風(fēng)風(fēng)險(xiǎn)風(fēng)險(xiǎn)分析析的目的的是找出出風(fēng)險(xiǎn),評(píng)價(jià)風(fēng)風(fēng)險(xiǎn)的大大小,并并有效地地控制和和緩解風(fēng)風(fēng)險(xiǎn)。25資源分析析:論證是是否具備備系統(tǒng)開(kāi)開(kāi)發(fā)所需需的各類類人員、軟件、硬件等等資源和和相應(yīng)的的工作環(huán)環(huán)境。例如,有有一支開(kāi)開(kāi)發(fā)過(guò)類類似項(xiàng)目目的開(kāi)發(fā)發(fā)和管理理的團(tuán)隊(duì)隊(duì),或者者開(kāi)發(fā)人人員比較較熟悉系系統(tǒng)所處處的領(lǐng)域域,并有有足夠的的人員保保證,所所需的硬硬件和支支撐軟件件能通過(guò)過(guò)合法的的手段獲獲取,那那么從技技術(shù)角度度看,可可以認(rèn)為為具備設(shè)設(shè)計(jì)和實(shí)實(shí)現(xiàn)系統(tǒng)統(tǒng)的條件件。26技術(shù)分析析:分析當(dāng)當(dāng)前的科科學(xué)技術(shù)術(shù)是否支支持系統(tǒng)統(tǒng)開(kāi)發(fā)的的各項(xiàng)活活動(dòng)。在技術(shù)分分析過(guò)程程中,分分析

13、員收集系統(tǒng)統(tǒng)的性能能、可靠靠性、可可維護(hù)性性和生產(chǎn)產(chǎn)率方面面的信息息,分析實(shí)現(xiàn)現(xiàn)系統(tǒng)功功能、性性能所需需的技術(shù)術(shù)、方法法、算法法或過(guò)程程,從技術(shù)術(shù)角度分分析可能能存在的的風(fēng)險(xiǎn),以及這這些技術(shù)術(shù)問(wèn)題對(duì)對(duì)成本的的影響。技術(shù)可行行性分析析時(shí)通常常需進(jìn)行行系統(tǒng)建建模,必必要時(shí)可可建造原原型和進(jìn)進(jìn)行系統(tǒng)統(tǒng)模擬27軟件可行行性研究究2經(jīng)濟(jì)可可行性進(jìn)行開(kāi)發(fā)發(fā)成本的的估算以以及了解解取得效效益的評(píng)評(píng)估,確確定要開(kāi)開(kāi)發(fā)的項(xiàng)項(xiàng)目是否否值得投投資開(kāi)發(fā)發(fā)?經(jīng)濟(jì)可行行性:成本效益分析析公司經(jīng)營(yíng)營(yíng)長(zhǎng)期策策略開(kāi)發(fā)所需需的成本本和資源源潛在的市市場(chǎng)前景景三個(gè)方面面的可行行性28基于計(jì)算算機(jī)的系系統(tǒng)的成本主要包括括:購(gòu)置硬件件

14、、軟件件(如數(shù)數(shù)據(jù)庫(kù)管管理系統(tǒng)統(tǒng)、第三三方開(kāi)發(fā)發(fā)的構(gòu)件件等)和和設(shè)備(如傳感感器等)的費(fèi)用用系統(tǒng)的開(kāi)開(kāi)發(fā)費(fèi)用用系統(tǒng)安裝裝、運(yùn)行行和維護(hù)護(hù)費(fèi)用人員培訓(xùn)訓(xùn)費(fèi)用29效益經(jīng)濟(jì)效益益使用基于于計(jì)算機(jī)機(jī)的系統(tǒng)統(tǒng)后可增增加的收收入和可可節(jié)省的的運(yùn)行費(fèi)費(fèi)用(如如操作人人員數(shù)、工作時(shí)時(shí)間、消消耗的物物資等)。社會(huì)效益益使用基于于計(jì)算機(jī)機(jī)的系統(tǒng)統(tǒng)后對(duì)社社會(huì)產(chǎn)生生的影響響(如提提高了辦辦事效益益,使用用戶滿意意等),通常社社會(huì)效益益只能定定性地估估計(jì)。在進(jìn)行成成本效益益分析時(shí)時(shí)通常只只統(tǒng)計(jì)五五年內(nèi)的的經(jīng)濟(jì)效效益。經(jīng)濟(jì)效益益通??煽捎秘泿艓诺臅r(shí)間間價(jià)值、投資回回收期和和純收入入來(lái)度量量。30貨幣的時(shí)時(shí)間價(jià)值值(以利率

15、計(jì)計(jì)算的機(jī)機(jī)會(huì)成本本)設(shè):當(dāng)前前金額為為P,年利率率為i,n年后的金金額為F,則計(jì)算時(shí),累計(jì)經(jīng)經(jīng)濟(jì)效益益應(yīng)折合合成當(dāng)前前金額例如,一一個(gè)基于于計(jì)算機(jī)機(jī)的系統(tǒng)統(tǒng)使用后后,每年年產(chǎn)生的的經(jīng)濟(jì)效效益為10萬(wàn),如果果年利率率為5%,那么,五年內(nèi)內(nèi)該系統(tǒng)統(tǒng)的累計(jì)計(jì)經(jīng)濟(jì)效效益是432948萬(wàn),而不不是50萬(wàn)。31投資回收收期:累計(jì)的經(jīng)經(jīng)濟(jì)效益益正好等等于投資資數(shù)(成成本)所所需的時(shí)時(shí)間純收入:累計(jì)經(jīng)經(jīng)濟(jì)效益益投資數(shù)當(dāng)純收入入大于零零時(shí),該該工程值值得投資資開(kāi)發(fā)當(dāng)純收入入小于零零時(shí),該該工程不不值得投投資(除除非它有有明顯的的社會(huì)效效益)當(dāng)純收入入等于零零時(shí),通通常也不不值得投投資顯然,純純收入越越大越好好

16、32軟件可行行性研究究3社會(huì)可可行性要開(kāi)發(fā)的的項(xiàng)目是是否存在在任何侵侵犯、妨妨礙等責(zé)責(zé)任問(wèn)題題?要開(kāi)發(fā)項(xiàng)項(xiàng)目的運(yùn)運(yùn)行方式式在用戶戶組織內(nèi)內(nèi)是否行行得通?現(xiàn)有管理理制度、人員素素質(zhì)、操操作方式式是否可可行?三個(gè)方面面的可行行性33中華人民民共和國(guó)國(guó)著作權(quán)權(quán)法計(jì)算機(jī)軟軟件保護(hù)護(hù)條例保密法等34可行性分分析的結(jié)結(jié)論可以立即即開(kāi)始進(jìn)進(jìn)行需要推遲遲到某些些條件(例如資資金、人人力、設(shè)設(shè)備等)落實(shí)之之后才能能開(kāi)始進(jìn)進(jìn)行需要對(duì)開(kāi)開(kāi)發(fā)目標(biāo)標(biāo)進(jìn)行某某些修改改之后才才能開(kāi)始始進(jìn)行因?yàn)槟撤N種原因(如,技技術(shù)不成成熟、經(jīng)經(jīng)濟(jì)上不不合算等等)不能能進(jìn)行35軟件可行行性研究究1復(fù)查項(xiàng)項(xiàng)目規(guī)模模和目標(biāo)標(biāo)2研究正正在使用用的

17、系統(tǒng)統(tǒng)3得到新新系統(tǒng)的的概括的的邏輯模模型4導(dǎo)出和和評(píng)價(jià)各各種方案案5推薦可可行的方方案6編寫(xiě)可可行性研研究報(bào)告告可行性研研究的具具體步驟驟36軟件可行行性研究究可行性研研究報(bào)告告內(nèi)容1引言。2可行性性研究前前提。3對(duì)現(xiàn)有有系統(tǒng)的的分析。4所建議議系統(tǒng)的的技術(shù)可可行性分分析。5所建議議系統(tǒng)的的經(jīng)濟(jì)可可行性分分析。6社會(huì)因因素的可可行性分分析。7其他可可供選擇擇方案。8結(jié)論意意見(jiàn)。37二、軟軟件系統(tǒng)統(tǒng)需求分分析需求分析析概念需求分析析的基本本任務(wù)結(jié)構(gòu)化分分析方法法BDS38數(shù)據(jù)庫(kù)建建設(shè)的基基本規(guī)律律三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)據(jù)管理 數(shù)據(jù)庫(kù)建建設(shè)項(xiàng)目目管理企業(yè)(即即應(yīng)用部部門)的的業(yè)務(wù)管管

18、理基礎(chǔ)數(shù)據(jù)據(jù)收集、入入庫(kù)更新新的的數(shù)據(jù)39二、軟軟件系統(tǒng)統(tǒng)需求分分析需求分析析概念需求分析析的基本本任務(wù)結(jié)構(gòu)化分分析方法法40需求的定定義IEEE Standard Glossary of Software Engineering Terminology用戶解決決一個(gè)問(wèn)問(wèn)題或達(dá)達(dá)到一個(gè)個(gè)目標(biāo)所所需要的的一種狀狀況或能能力系統(tǒng)為了了滿足一一種約定定、標(biāo)準(zhǔn)準(zhǔn)、規(guī)格格說(shuō)明或或其它正正式文件件而必須須滿足或或擁有的的一種狀狀況或能能力以上兩種種狀態(tài)或或能力的的文檔化化表示主觀需求求客觀需求求需求文檔檔41功能性需需求和非非功能性性需求功能性需需求系統(tǒng)需要要提供的的服務(wù)或或功能:如圖書(shū)書(shū)檢索系統(tǒng)對(duì)特特定

19、輸入入的處理理方式:如對(duì)非非法輸入入的提示示系統(tǒng)在特特定環(huán)境境下的行行為:如如長(zhǎng)時(shí)間間無(wú)操作作時(shí)的屏屏保非功能性性需求對(duì)系統(tǒng)功功能或服服務(wù)附加加的質(zhì)量量約束,例如響響應(yīng)時(shí)間間、容錯(cuò)錯(cuò)性、安安全性等等客戶所關(guān)關(guān)心的(外部質(zhì)量量)從系統(tǒng)開(kāi)開(kāi)發(fā)和維維護(hù)角度度出發(fā)的的質(zhì)量屬屬性,例例如可理理解性、可擴(kuò)展展性、可可配置性性等軟件開(kāi)發(fā)發(fā)或維護(hù)護(hù)者所關(guān)關(guān)心的(內(nèi)部質(zhì)量量、軟件件所特有有)42二、軟軟件系統(tǒng)統(tǒng)需求分分析是指開(kāi)發(fā)發(fā)人員要要準(zhǔn)確理理解用戶戶的要求求,進(jìn)行行細(xì)致的的調(diào)查分分析,將將用戶非非形式的的需求陳陳述轉(zhuǎn)化化為完整整的需求求定義,再由需需求定義義轉(zhuǎn)換到到相應(yīng)的的形式功功能規(guī)約約(需求求規(guī)格說(shuō)說(shuō)明

20、)的的過(guò)程。結(jié)構(gòu)化分分析方法法和面向?qū)ο笙蠓治龇椒椒?.需求分析析概念43是要準(zhǔn)確確地定義義新系統(tǒng)統(tǒng)的目標(biāo)標(biāo),滿足足用戶需需要?;鼗卮鹣到y(tǒng)統(tǒng)必須“做什么么”的問(wèn)問(wèn)題。本本階段要要進(jìn)行以以下幾方方面的工工作:(1)分析人人員和用用戶對(duì)問(wèn)問(wèn)題識(shí)別別,雙方方商定對(duì)對(duì)問(wèn)題的的綜合需需求。包括:功功能需求求、性能能需求、環(huán)境需需求和用用戶界面面需求。另外還有有可靠性性、安全全性、保保密性、可移植植性、可可維護(hù)性性等方面面的需求求.這些需求求一般通通過(guò)雙方方交流、調(diào)查研研究來(lái)獲獲取,并并達(dá)到共共同的理理解。2.需求分析析的基本本任務(wù)44(2)分析與與綜合,導(dǎo)出軟軟件的邏邏輯模型型。分析人員員對(duì)獲取取的需求

21、求,進(jìn)行行一致性性的分析析檢查,在分析析、綜合合中逐步步細(xì)化軟軟件功能能,劃分分成各個(gè)個(gè)子功能能。包括:對(duì)對(duì)數(shù)據(jù)域域進(jìn)行分分解,并并分配到到各個(gè)子子功能上上,以確確定系統(tǒng)統(tǒng)的構(gòu)成成及主要要成分,并用圖圖文結(jié)合合的形式式,建立立起新系系統(tǒng)的邏邏輯模型型。(3)編寫(xiě)文文檔。文檔:需需求規(guī)格格說(shuō)明書(shū)書(shū)初步用戶戶使用手手冊(cè)確認(rèn)測(cè)試試計(jì)劃2.需求分析析的基本本任務(wù)453.結(jié)構(gòu)化分分析方法法SA方法利用圖形形等半形形式化的的描述方方式表達(dá)達(dá)需求,用它們們形成需需求說(shuō)明明書(shū)中的的主要部部分。描述工具具是:(1)數(shù)據(jù)流流圖(DFD)(2)描述加加工邏輯輯的工具具:結(jié)構(gòu)化語(yǔ)語(yǔ)言、判判定表、判定樹(shù)樹(shù)(3)數(shù)據(jù)字字

22、典結(jié)構(gòu)化分分析(Structured Analysis,簡(jiǎn)稱SA),是面面向數(shù)據(jù)據(jù)流進(jìn)行行需求分分析的方方法。SA是一種建建?;顒?dòng)動(dòng),該方方法使用用簡(jiǎn)單易易讀符號(hào)號(hào),根據(jù)據(jù)軟件內(nèi)部部數(shù)據(jù)傳傳遞、變變換的關(guān)關(guān)系,自頂向向下逐層層分解,描繪出出滿足功功能需求求的軟件件模型。463.結(jié)構(gòu)化分分析方法法(1)數(shù)據(jù)流流圖(DFD)數(shù)據(jù)流圖圖(Data FlowDiam),是SA方法中用用于表示示系統(tǒng)邏邏輯模型型的一種種工具,它以圖圖形的方方式描繪繪數(shù)據(jù)在在系統(tǒng)中中流動(dòng)和和處理的的過(guò)程,由于它它只反映映系統(tǒng)必必須完成成的邏輯輯功能,所以它它是一種種功能模模型。數(shù)據(jù)流圖圖的作用用:需求分析析時(shí),作作為自頂頂

23、向下的的工具描述系統(tǒng)統(tǒng)組成部部分為技術(shù)員員、用戶戶間交流流提供有有力方法法473.結(jié)構(gòu)化分分析方法法(1)數(shù)據(jù)流流圖(DFD)數(shù)據(jù)流圖圖由數(shù)據(jù)據(jù)流、加加工(又又稱為數(shù)數(shù)據(jù)處理理)、數(shù)數(shù)據(jù)存儲(chǔ)儲(chǔ)(又稱稱為文件件)、數(shù)數(shù)據(jù)源點(diǎn)點(diǎn)或終點(diǎn)點(diǎn)四種基基本成分分組成。數(shù)據(jù)流圖圖實(shí)例:銀行取取款過(guò)程程數(shù)據(jù)流:加加工:數(shù)據(jù)存儲(chǔ)儲(chǔ):數(shù)數(shù)據(jù)源點(diǎn)點(diǎn)、終點(diǎn)點(diǎn):48描述銀行行取款過(guò)過(guò)程的數(shù)數(shù)據(jù)流圖圖49基本加工工邏輯說(shuō)說(shuō)明 對(duì)數(shù)據(jù)流流圖的每每一個(gè)基基本加工工,必須須有一個(gè)個(gè)基本加加工邏輯輯說(shuō)明描述基本本加工如如何把輸輸入數(shù)據(jù)據(jù)流變換換為輸出出數(shù)據(jù)流流的加工工規(guī)則描述實(shí)現(xiàn)現(xiàn)加工的的策略而而不是實(shí)實(shí)現(xiàn)加工工的細(xì)節(jié)節(jié)包含的信信

24、息應(yīng)是是充足的的,完備備的,有有用的,無(wú)冗余余的50(2)用于寫(xiě)加加工邏輯輯說(shuō)明的的工具結(jié)構(gòu)化英英語(yǔ)判定表判定樹(shù)3.結(jié)構(gòu)化分分析方法法511)結(jié)構(gòu)化化英語(yǔ)結(jié)構(gòu)化英英語(yǔ)的詞詞匯表由由英語(yǔ)命令令動(dòng)詞數(shù)據(jù)詞典典中定義義的名字字有限的自自定義詞詞邏輯關(guān)系系詞IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等組成。52是一種介介于自然然語(yǔ)言和和形式化化語(yǔ)言之之間的語(yǔ)語(yǔ)言語(yǔ)言的正文用基基本控制制結(jié)構(gòu)進(jìn)進(jìn)行分割割,加工中中的操作用自自然語(yǔ)言言短語(yǔ)來(lái)來(lái)表示其基本控控制結(jié)構(gòu)構(gòu)有三種種:簡(jiǎn)單陳述述句結(jié)構(gòu)構(gòu):避免復(fù)合合語(yǔ)句;重復(fù)結(jié)構(gòu)構(gòu):while_do或repeat_until結(jié)

25、構(gòu)。判定結(jié)構(gòu)構(gòu):if_then_else或case_of結(jié)構(gòu);53商店業(yè)務(wù)務(wù)處理系系統(tǒng)中“檢查發(fā)發(fā)貨單”if發(fā)貨單金金額超過(guò)過(guò)$500thenif欠款超過(guò)過(guò)了60天then在償還欠欠款前不不予批準(zhǔn)準(zhǔn)else(欠款未未超期)發(fā)批準(zhǔn)書(shū)書(shū),發(fā)貨貨單else(發(fā)貨單單金額未未超過(guò)$500)if欠款超過(guò)過(guò)60天then發(fā)批準(zhǔn)書(shū)書(shū),發(fā)貨貨單及賒賒欠報(bào)告告else(欠款未未超期)發(fā)批準(zhǔn)書(shū)書(shū),發(fā)貨貨單542)判定表表如果數(shù)據(jù)據(jù)流圖的的加工需需要依賴賴于多個(gè)邏輯輯條件的的取值,使用判判定表來(lái)來(lái)描述比比較合適適條件定義條件取值的組合動(dòng)作定義在各種取值的組合下應(yīng)執(zhí)行的動(dòng)作55以“檢查查發(fā)貨單單”為例例563)判定樹(shù)

26、樹(shù)判定樹(shù)也也是用來(lái)來(lái)表達(dá)加加工邏輯輯的一種種工具。有時(shí)侯侯它比判判定表更更直觀。檢查發(fā)貨單金額$500金額$500 欠款60天不發(fā)出批準(zhǔn)書(shū) 欠款60天發(fā)貨單發(fā)出批準(zhǔn)書(shū)、 欠款60天發(fā)出批準(zhǔn)書(shū)、發(fā)貨單及賒欠報(bào)告 欠款60天發(fā)出批準(zhǔn)書(shū)、發(fā)貨單57(3)數(shù)據(jù)字典典數(shù)據(jù)詞典典(Data Dictionary,簡(jiǎn)稱DD)就是用用來(lái)定義義數(shù)據(jù)流流圖中的的各個(gè)成成分的具具體含義義的。對(duì)數(shù)據(jù)流流圖中出出現(xiàn)的每每一個(gè)數(shù)數(shù)據(jù)流、文件、加工給給出詳細(xì)細(xì)定義。3.結(jié)構(gòu)化分分析方法法數(shù)據(jù)字典典主要有有四類條條目:數(shù)據(jù)流、數(shù)據(jù)項(xiàng)項(xiàng)、數(shù)據(jù)據(jù)存儲(chǔ)、基本加加工。數(shù)據(jù)項(xiàng)是是組成數(shù)數(shù)據(jù)流和和數(shù)據(jù)存存儲(chǔ)的最最小元素素。58(3)數(shù)據(jù)

27、字典典數(shù)據(jù)字典典詞條內(nèi)內(nèi)容表3.結(jié)構(gòu)化分分析方法法數(shù)據(jù)項(xiàng)/數(shù)據(jù)流/數(shù)據(jù)文件件名稱:別名:取消及定定義:組成:組織:備注:59實(shí)例:計(jì)計(jì)算機(jī)售售書(shū)系統(tǒng)統(tǒng)模型(3)數(shù)據(jù)字典典3.結(jié)構(gòu)化分分析方法法60售書(shū)系統(tǒng)統(tǒng)數(shù)據(jù)流流詞條實(shí)實(shí)例:發(fā)票數(shù)據(jù)流名名:發(fā)票別名:購(gòu)書(shū)發(fā)票票組成:學(xué)號(hào)+姓名+書(shū)號(hào)+單價(jià)+數(shù)量+總價(jià)+書(shū)費(fèi)合計(jì)計(jì)備注:(3)數(shù)據(jù)字典典3.結(jié)構(gòu)化分分析方法法61數(shù)據(jù)文件件詞條實(shí)實(shí)例:各班學(xué)生生用書(shū)表表文件名:各班學(xué)生生用書(shū)表表別名名:組成成:系編號(hào)+專業(yè)和班班級(jí)編號(hào)號(hào)+年級(jí)+書(shū)號(hào)組織織:按系、專專業(yè)和班班編號(hào)從從小到大大排列備注注:(3)數(shù)據(jù)字典典3.結(jié)構(gòu)化分分析方法法62三、軟件件設(shè)計(jì)軟件概要

28、要設(shè)計(jì)2.軟件詳細(xì)細(xì)設(shè)計(jì)主要完成成軟件系系統(tǒng)結(jié)構(gòu)構(gòu)設(shè)計(jì)和確定各各組成部部分之間間的相互互關(guān)系。主要確定定每個(gè)模模塊的具具體執(zhí)行行過(guò)程,也稱為為過(guò)程設(shè)設(shè)計(jì)。631.軟件概要要設(shè)計(jì)概要設(shè)計(jì)計(jì)基本任任務(wù)概要設(shè)計(jì)計(jì)基本原原理64(1)概要設(shè)設(shè)計(jì)基本本任務(wù)進(jìn)行軟件件系統(tǒng)總總體結(jié)構(gòu)構(gòu)設(shè)計(jì)進(jìn)行軟件件中所使使用的數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)及數(shù)據(jù)據(jù)庫(kù)的設(shè)設(shè)計(jì)編寫(xiě)概要要設(shè)計(jì)文文檔進(jìn)行概要要設(shè)計(jì)的的評(píng)審65(1)概要設(shè)設(shè)計(jì)基本本任務(wù)1)軟件系統(tǒng)統(tǒng)總體結(jié)結(jié)構(gòu)設(shè)計(jì)計(jì)采用某種種設(shè)計(jì)方方法,將將一個(gè)復(fù)復(fù)雜的系系統(tǒng)按功功能劃分分成模塊塊。確定每個(gè)個(gè)模塊的的功能。確定模塊塊之間的的調(diào)用關(guān)關(guān)系。確定模塊塊之間的的接口,即模塊塊之間傳傳遞的信信

29、息。評(píng)價(jià)模塊塊結(jié)構(gòu)的的質(zhì)量。66(1)概要設(shè)設(shè)計(jì)基本本任務(wù)2)數(shù)據(jù)結(jié)構(gòu)構(gòu)及數(shù)據(jù)據(jù)庫(kù)的設(shè)設(shè)計(jì)。對(duì)數(shù)據(jù)結(jié)結(jié)構(gòu)的設(shè)設(shè)計(jì),采采用逐步步細(xì)化的的方法,對(duì)需求求分析階階段獲得得的數(shù)據(jù)據(jù)字典中中的數(shù)據(jù)據(jù)的結(jié)構(gòu)構(gòu)特性等等加以細(xì)細(xì)化。對(duì)數(shù)據(jù)庫(kù)庫(kù)的設(shè)計(jì)計(jì)是指數(shù)數(shù)據(jù)存儲(chǔ)儲(chǔ)文件的的設(shè)計(jì),主要進(jìn)進(jìn)行概念念設(shè)計(jì)、邏輯設(shè)設(shè)計(jì)、物物理設(shè)計(jì)計(jì)三方面面設(shè)計(jì)。67(1)概要設(shè)設(shè)計(jì)基本本任務(wù)3)概要設(shè)計(jì)計(jì)文檔主主要包括括:概要設(shè)計(jì)計(jì)說(shuō)明書(shū)書(shū)。數(shù)據(jù)庫(kù)設(shè)設(shè)計(jì)說(shuō)明明書(shū)。進(jìn)一步補(bǔ)補(bǔ)充需求求分析階階段編寫(xiě)寫(xiě)的用戶戶手冊(cè)。修訂測(cè)試試計(jì)劃,對(duì)測(cè)試試策略、方法、步驟提提出明確確要求。68(1)概要設(shè)設(shè)計(jì)基本本任務(wù)4)進(jìn)行概要要設(shè)計(jì)的的評(píng)審:對(duì)設(shè)計(jì)部

30、部分是否否完整地地實(shí)現(xiàn)了了需求中中規(guī)定的的功能、性能等等要求設(shè)計(jì)方案案的可行行性內(nèi)外部接接口定義義的正確確性、有有效性各部分之之間的一一致性69(2)概要設(shè)計(jì)計(jì)的基本本原理l)模塊化2)抽象3)信息隱藏藏4)模塊獨(dú)立立性70(2)概要設(shè)計(jì)計(jì)的基本本原理l)模塊化在軟件的的體系結(jié)結(jié)構(gòu)中,模塊是是可組合合、分解解和更換換的單元元。模塊具有有以下幾幾種基本本屬性:接口、功功能、狀狀態(tài)、邏邏輯。其中:功功能、狀狀態(tài)與接接口反映映模塊的的外部特特性,邏邏輯反映映它的內(nèi)內(nèi)部特性性。模塊化是指解決決一個(gè)復(fù)復(fù)雜問(wèn)題題時(shí)自頂頂向下逐逐層把軟軟件系統(tǒng)統(tǒng)劃分成成若干模模塊的過(guò)過(guò)程。每每個(gè)模塊塊完成一一個(gè)特定定的子功

31、功能,所所有的模模塊按某某種方法法組裝起起來(lái),成成為一個(gè)個(gè)整體,完成整整個(gè)系統(tǒng)統(tǒng)所要求求的功能能。71(2)概要設(shè)計(jì)計(jì)的基本本原理2)抽象抽象是指獲取取事物本本質(zhì)的共共同的特特性而暫暫不考慮慮它的細(xì)細(xì)節(jié),不不考慮其其他因素素。抽象是認(rèn)識(shí)復(fù)復(fù)雜現(xiàn)象象過(guò)程中中使用的的思維工工具軟件工程程過(guò)程中中的每一一步部可可以看作作是對(duì)軟軟件解決決方法的的抽象層層次的一一次細(xì)化化。72(2)概要設(shè)計(jì)計(jì)的基本本原理3)抽象信息息隱藏信息隱藏藏指在設(shè)計(jì)計(jì)和確定定模塊時(shí)時(shí),使得得一個(gè)模模塊內(nèi)包包含的信信息(過(guò)過(guò)程或數(shù)數(shù)據(jù)),對(duì)于不不需要這這些信息息的其他他模塊來(lái)來(lái)說(shuō),是是不能訪訪問(wèn)的?!半[藏”:模塊塊化是通通過(guò)定義義

32、一組相相互獨(dú)立立的模塊塊來(lái)實(shí)現(xiàn)現(xiàn)系統(tǒng),這些獨(dú)獨(dú)立的模塊彼此此之間僅僅僅交換換那些為為了完成成系統(tǒng)功功能所必必需的信信息,而將那些些自身的的實(shí)現(xiàn)細(xì)細(xì)節(jié)與數(shù)數(shù)據(jù)“隱隱藏”起起來(lái)。通過(guò)抽象象,可以以確定組組成軟件件的過(guò)程程實(shí)體。通過(guò)信息息隱藏,可以定定義模塊塊的過(guò)程程細(xì)節(jié)和和局部數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)的存取取限制。73(2)概要設(shè)計(jì)計(jì)的基本本原理4)模塊獨(dú)立立性模塊獨(dú)立立性是指指每個(gè)模模塊只完完成系統(tǒng)統(tǒng)要求的的獨(dú)立的的子功能能,并且且與其他他模塊的的聯(lián)系最最少且接接口簡(jiǎn)單單。如何衡量量軟件的的獨(dú)立性性呢?根據(jù)模塊塊的外部部特征和和內(nèi)部特特征,提提出了兩兩個(gè)定性性的度量量標(biāo)準(zhǔn)耦合性和和內(nèi)聚性性。將軟件系系統(tǒng)劃分

33、分模塊時(shí)時(shí),盡量量做到高內(nèi)內(nèi)聚低耦耦合,提提高模塊塊的獨(dú)立立性,為設(shè)計(jì)計(jì)高質(zhì)量量的軟件件結(jié)構(gòu)奠奠定基礎(chǔ)礎(chǔ)。74(2)概要設(shè)計(jì)計(jì)的基本本原理4)模塊獨(dú)立立性_耦合性耦合性也也稱塊間間聯(lián)系。指軟件件系統(tǒng)結(jié)結(jié)構(gòu)中各各模塊間間相互聯(lián)聯(lián)系緊密密程度的的一種度度量。模塊之間間聯(lián)系越越緊密,其耦合合性就越越強(qiáng),模模塊的獨(dú)獨(dú)立性則則越差。模塊間間耦合高高低取決決于模塊塊間接口口的復(fù)雜雜性、調(diào)調(diào)用的方方式及傳傳遞的信信息。模塊的耦耦合性有有以下七七種類型型:非直接耦耦合、數(shù)數(shù)據(jù)耦合合、標(biāo)記記耦合、控制耦耦合、外外部耦合合、公共共耦合、內(nèi)容耦耦合,它們的耦耦合程度度由低到到高。75(2)概要設(shè)計(jì)計(jì)的基本本原理4)

34、模塊獨(dú)立立性_內(nèi)聚性又稱塊內(nèi)內(nèi)聯(lián)系。指模塊塊的功能能強(qiáng)度的的度量,即一個(gè)個(gè)模塊內(nèi)內(nèi)部各個(gè)個(gè)元素彼彼此結(jié)合合的緊密密程度的的度量。若一個(gè)模模塊內(nèi)各各元素(語(yǔ)句之之間、程程序段之之間)聯(lián)聯(lián)系的越越緊密,則它的的內(nèi)聚性性就很高高。內(nèi)聚性有有以下七七類類型型:偶然內(nèi)聚聚、邏輯輯內(nèi)聚、時(shí)間內(nèi)內(nèi)聚、過(guò)過(guò)程內(nèi)聚聚、通信信內(nèi)聚、順序內(nèi)內(nèi)聚、功功能內(nèi)聚聚,它們的內(nèi)內(nèi)聚程度度由低到到高。762.概要設(shè)計(jì)計(jì)軟件結(jié)構(gòu)構(gòu):表示示程序的的總體結(jié)結(jié)構(gòu),指指程序的的控制層層次體系系(多少少模塊,多少層層次,調(diào)調(diào)用關(guān)系系)77一個(gè)問(wèn)題題可以有有多種結(jié)結(jié)構(gòu)來(lái)表表示78軟件結(jié)構(gòu)構(gòu)的術(shù)語(yǔ)語(yǔ)深度:控控制的層層次數(shù)寬度:控控制的總總跨度

35、,即最多多模塊一一層的模模塊數(shù)扇出:一一個(gè)模塊塊直接控控制的模模塊數(shù)扇入:一一個(gè)模塊塊被幾個(gè)個(gè)模塊直直接控制制79軟件結(jié)構(gòu)構(gòu)的術(shù)語(yǔ)語(yǔ)從屬:A模塊控制制B模塊,則則B從屬A統(tǒng)率:A模塊控制制B模塊,則則A統(tǒng)率B80C1和C2中,C1和C,C2和C,可能是是偶然性性塊內(nèi)聯(lián)聯(lián)系,把把它們從從各自的的模塊分分離出來(lái)來(lái),C1,C2和和C的塊塊內(nèi)聯(lián)系系增大,模塊獨(dú)獨(dú)立性增增強(qiáng),塊塊間聯(lián)系系看起來(lái)來(lái)增大一一些,又又通過(guò)模模塊的合合并,得得到圖(c)(d)塊塊內(nèi)聯(lián)系系大,塊塊間聯(lián)系系相應(yīng)小小些(模模塊個(gè)數(shù)數(shù)少)。81模塊調(diào)用用個(gè)數(shù)最最好不要要超過(guò)五五個(gè)一個(gè)模塊塊具有過(guò)過(guò)多的調(diào)調(diào)用模塊塊或被調(diào)調(diào)用模塊塊,那么么

36、它往往往包含過(guò)過(guò)多的功功能,這這就是這這個(gè)模塊塊太復(fù)雜雜除特殊情情況外(case,開(kāi)開(kāi)關(guān)),應(yīng)避免免這種結(jié)結(jié)構(gòu),用用增加層層次以減減少調(diào)用用個(gè)數(shù)。五個(gè)是經(jīng)經(jīng)驗(yàn)得來(lái)來(lái)的82結(jié)構(gòu)化設(shè)設(shè)計(jì)技術(shù)術(shù)()是公公司提出出的,是是長(zhǎng)期程程序設(shè)計(jì)計(jì)的經(jīng)驗(yàn)驗(yàn)總結(jié)。下面將介介紹如何何建立系系統(tǒng)的模模塊結(jié)構(gòu)構(gòu)。數(shù)據(jù)流圖圖的類型型是以以數(shù)據(jù)流流為基礎(chǔ)礎(chǔ)來(lái)設(shè)計(jì)計(jì)軟件的的模塊結(jié)結(jié)構(gòu),那那么我們們首先要要找出數(shù)數(shù)據(jù)流圖圖的一些些規(guī)律,從而導(dǎo)導(dǎo)出軟件件的初始始結(jié)構(gòu)。831、變換類類型數(shù)據(jù)據(jù)流圖定義:具具體較明明顯的輸輸入,變變換(或或稱主加加工)和和輸出界界面的數(shù)數(shù)據(jù)流圖圖。842、事務(wù)型數(shù)數(shù)據(jù)流圖圖定義:圖圖中某個(gè)個(gè)加工將將

37、它的輸輸入數(shù)據(jù)據(jù)流分離離成一串串發(fā)散的的數(shù)據(jù)流流,形成成許多活活動(dòng)的路路徑(分分支),并根據(jù)據(jù)輸入的的值選擇擇其中的的一個(gè)路路徑,具具有這樣樣特征的的數(shù)據(jù)流流圖。事務(wù)中心心:把輸輸入數(shù)據(jù)據(jù)流分離離成一串串發(fā)散數(shù)數(shù)據(jù)流的的加工。853、設(shè)計(jì)步驟驟:總述述模模型實(shí)例第一步:復(fù)查基基本系統(tǒng)統(tǒng)模型這一步將將看到軟軟件的原型,傳統(tǒng)方方法往往往是從這這一步開(kāi)開(kāi)始的。在做這一一步時(shí),要對(duì)以前前建立的的基本數(shù)數(shù)據(jù)模型型,再作最最后的審審查,是是否有遺遺漏的輸輸入或輸輸出。第二步:復(fù)查并并精化數(shù)數(shù)據(jù)流圖圖對(duì)數(shù)據(jù)流流圖的最最后復(fù)審審求精要要慎重,一定要要保證數(shù)數(shù)據(jù)流圖圖的正確確性。不同的的選擇導(dǎo)出的軟軟件初始始模

38、塊圖圖的合理理性有些些差異。863、設(shè)計(jì)步驟驟:總述述模模型實(shí)例第三步:確定數(shù)數(shù)據(jù)流圖圖的類型型:變換型與與事務(wù)型型。變換設(shè)計(jì)計(jì):從變換型型數(shù)據(jù)流流圖導(dǎo)出出軟件模模塊結(jié)構(gòu)構(gòu)的過(guò)程程。如何劃分分輸入、主加工工、輸出出三個(gè)部部分?從兩頭頭向中間間,先找找出邏輯輯輸入和和邏輯輸輸出,找找到它們們即可劃劃分出三三個(gè)部分分。8788第四步:設(shè)計(jì)上上層模塊塊結(jié)構(gòu):自頂向向下的設(shè)設(shè)計(jì)方法法。頂層:主主模塊,對(duì)應(yīng)于于主加工工。一層:標(biāo)標(biāo)準(zhǔn)的一一層,對(duì)對(duì)應(yīng)于變變換數(shù)據(jù)據(jù)流圖的的三個(gè)部部分,三三個(gè)模塊塊89第五步:設(shè)計(jì)軟軟件的中中下層模模塊結(jié)構(gòu)構(gòu)(基于數(shù)數(shù)據(jù)流圖圖)。90第六步:對(duì)初始始模塊求求精,得得到合理理的

39、軟件件結(jié)構(gòu)。912.軟件詳細(xì)細(xì)設(shè)計(jì)(1)詳細(xì)設(shè)設(shè)計(jì)基本本任務(wù)(2)結(jié)構(gòu)化化程序設(shè)設(shè)計(jì)方法法92(1)詳細(xì)設(shè)設(shè)計(jì)基本本任務(wù)為每個(gè)模模塊進(jìn)行行詳細(xì)的算算法設(shè)計(jì)。為模塊內(nèi)內(nèi)的數(shù)據(jù)結(jié)構(gòu)構(gòu)進(jìn)行設(shè)計(jì)計(jì)。對(duì)數(shù)據(jù)庫(kù)庫(kù)進(jìn)行物物理設(shè)計(jì)計(jì),即確確定數(shù)據(jù)庫(kù)的的物理結(jié)結(jié)構(gòu)。其他設(shè)計(jì)計(jì)。根據(jù)據(jù)軟件系系統(tǒng)的類類型,還還可能要要進(jìn)行以以下設(shè)計(jì)計(jì):代碼設(shè)計(jì)計(jì)、輸入入輸出格格式設(shè)計(jì)計(jì)、人機(jī)機(jī)對(duì)話設(shè)設(shè)計(jì)。編寫(xiě)詳細(xì)設(shè)計(jì)計(jì)說(shuō)明書(shū)書(shū)。為每一個(gè)個(gè)模塊設(shè)設(shè)計(jì)一組組測(cè)試用例例。評(píng)審。對(duì)對(duì)處理過(guò)過(guò)程的算算法和數(shù)數(shù)據(jù)庫(kù)的的物理結(jié)結(jié)構(gòu)都要要評(píng)審。93(2)結(jié)構(gòu)化化程序設(shè)設(shè)計(jì)方法法結(jié)構(gòu)化程程序設(shè)計(jì)計(jì)是E.W.Dijikstra在1965年提出的的。它

40、的主要要觀點(diǎn)是是采用自自頂向下下、逐步步求精的的程序設(shè)設(shè)計(jì)方法法;使用用三種基基本控制制結(jié)構(gòu)構(gòu)構(gòu)造程序序,任何何程序都都可由順順序、選選擇、重重復(fù)三種種基本控控制結(jié)構(gòu)構(gòu)構(gòu)造。詳細(xì)描述述處理過(guò)過(guò)程常用用三種工工具:圖形、表表格和語(yǔ)語(yǔ)言。圖形:程序流程程圖、N-S圖、PAD圖表格:判定表語(yǔ)言:過(guò)程設(shè)計(jì)計(jì)語(yǔ)言(PDL)94四、軟軟件編碼碼軟件編碼碼是將詳詳細(xì)設(shè)計(jì)計(jì)得到的的處理過(guò)過(guò)程的描描述轉(zhuǎn)換換為基于于某種計(jì)計(jì)算機(jī)語(yǔ)語(yǔ)言的程程序,即即源程序序代碼。需注意根根據(jù)項(xiàng)目目的應(yīng)用用領(lǐng)域選選擇適當(dāng)當(dāng)?shù)木幊坛陶Z(yǔ)言、編程的的軟硬件件環(huán)境以以及編碼碼的程序序設(shè)計(jì)風(fēng)風(fēng)格等事事項(xiàng)95四、軟軟件編碼碼FourthGene

41、rationLanguages1stgenerationlanguagesmachine languages(binary)2ndgenerationlanguagesassemblers3rdgenerationlanguageshigh-level languagesFORTRAN,COBOL,C,C+each statementindendedtobe 5-10assembler stmts4thgeneration languages(4GLS)each statementindendedtobe30-50assembler stmtseasier/faster to programr

42、educes costsdeclarativesaywhatyouwant,not howtodoit(e.g.,SQLStructured Query Language)success hasbeen mixedpositivesfast response fromDPdept.work wellfor DB appsnegativesslow &inefficient96程序風(fēng)格格程序?qū)嶋H際上也是是一種供供人閱讀讀的文章章,有一一個(gè)文章章的風(fēng)格格問(wèn)題。應(yīng)該使使程序具具有良好好的風(fēng)格格。源程序文文檔化數(shù)據(jù)說(shuō)明明語(yǔ)句結(jié)構(gòu)構(gòu)輸入輸輸出方法法97源程序文文檔化標(biāo)識(shí)符的的命名安排注釋釋程序的視視覺(jué)組

43、織織98標(biāo)識(shí)符的的命名符號(hào)名即即標(biāo)識(shí)符符,包括括模塊名名、變量量名、常常量名、標(biāo)號(hào)名名、子程程序名、 數(shù)據(jù)據(jù)區(qū)名以以及緩沖沖區(qū)名等等。名字應(yīng)能能反映它它所代表表的對(duì)象象,應(yīng)有有一定實(shí)實(shí)際意義義。名字不是是越長(zhǎng)越越好,應(yīng)應(yīng)當(dāng)選擇擇精煉的的意義明明確的名名字。必必要時(shí)可可使用縮縮寫(xiě)名字字,但這這時(shí)要注注意縮寫(xiě)寫(xiě)規(guī)則要要一致,并且要要給每一一個(gè)名字字加注釋釋。在一個(gè)程程序中,一個(gè)變變量只應(yīng)應(yīng)用于一一種用途途。99程序的注注釋夾在程序序中的注注釋是程程序員與與日后的的程序讀讀者之間間通信的的重要手手段。注釋決不不是可有有可無(wú)的的。一些正規(guī)規(guī)的程序序文本中中,注釋釋行的數(shù)數(shù)量占到到整個(gè)源源程序的的13到

44、12,甚至更更多。注釋分為為序言性注注釋和功能性注注釋。100序言性注注釋通常置于于每個(gè)程程序模塊塊的開(kāi)頭頭部分,它應(yīng)當(dāng)當(dāng)給出程程序的整整體說(shuō)明明,對(duì)于于理解程程序本身身具有引引導(dǎo)作用用。有些些軟件開(kāi)開(kāi)發(fā)部門門對(duì)序言言性注釋釋做了明明確而嚴(yán)嚴(yán)格的規(guī)規(guī)定,要要求程序序編制者者逐項(xiàng)列列出。有關(guān)項(xiàng)目目包括:程序標(biāo)題題;有關(guān)本模模塊功能能和目的的的說(shuō)明明;主要算法法;接口說(shuō)明明:包括括調(diào)用形形式,參參數(shù)描述述,子程程序清單單;101序言性注注釋有關(guān)數(shù)據(jù)據(jù)描述:重要的的變量及及其用途途,約束束或限制制條件,以及其其它有關(guān)關(guān)信息;模塊位置置:在哪哪一個(gè)源源文件中中,或隸隸屬于哪哪一個(gè)軟軟件包;開(kāi)發(fā)簡(jiǎn)歷歷:

45、模塊塊設(shè)計(jì)者者,復(fù)審審者,復(fù)復(fù)審日期期,修改改日期及及有關(guān)說(shuō)說(shuō)明等。102功能性注注釋功能性注注釋嵌在在源程序序體中,用以描描述其后后的語(yǔ)句句或程序序段是在在做什么么工作,或是執(zhí)執(zhí)行了下下面的語(yǔ)語(yǔ)句會(huì)怎怎么樣。而不要要解釋下下面怎么么做。要點(diǎn):描述一段段程序,而不是是每一個(gè)個(gè)語(yǔ)句;用縮進(jìn)和和空行,使程序序與注釋釋容易區(qū)區(qū)別;注釋要正正確。103程序的視視覺(jué)組織織恰當(dāng)?shù)乩每崭?,可以突突出運(yùn)算算的優(yōu)先先性,避避免發(fā)生生運(yùn)算的的錯(cuò)誤。自然的程程序段之之間可用用空行隔隔開(kāi);移行也叫叫做向右右縮格。它是指程程序中的的各行不不必都在在左端對(duì)對(duì)齊,都都從第一一格起排排列。這這樣做使使程序完完全分不不清層

46、次次關(guān)系。對(duì)于選擇擇語(yǔ)句和和循環(huán)語(yǔ)語(yǔ)句,把把其中的的程序段段語(yǔ)句向向右做階梯式移移行。使程序序的邏輯輯結(jié)構(gòu)更更加清晰晰。104數(shù)據(jù)說(shuō)明明在設(shè)計(jì)階階段已經(jīng)經(jīng)確定了了數(shù)據(jù)結(jié)結(jié)構(gòu)的組組織及其其復(fù)雜性性。在編編寫(xiě)程序序時(shí),則則需要注注意數(shù)據(jù)據(jù)說(shuō)明的的風(fēng)格。為了使程程序中數(shù)數(shù)據(jù)說(shuō)明明更易于于理解和和維護(hù),必須注注意以下下幾點(diǎn)。1.數(shù)據(jù)說(shuō)明明的次序序應(yīng)當(dāng)規(guī)規(guī)范化2.說(shuō)明語(yǔ)句句中變量量安排有有序化3.使用注釋釋說(shuō)明復(fù)復(fù)雜數(shù)據(jù)據(jù)結(jié)構(gòu)105數(shù)據(jù)說(shuō)明明1.數(shù)據(jù)說(shuō)明明的次序序應(yīng)當(dāng)規(guī)規(guī)范化數(shù)據(jù)說(shuō)明明次序規(guī)規(guī)范化,使數(shù)據(jù)據(jù)屬性容容易查找找,也有有利于測(cè)測(cè)試,排排錯(cuò)和維維護(hù)。原則上,數(shù)據(jù)說(shuō)說(shuō)明的次次序與語(yǔ)語(yǔ)法無(wú)關(guān)關(guān),其次

47、次序是任任意的。但出于于閱讀、理解和和維護(hù)的的需要,最好使使其規(guī)范范化,使使說(shuō)明的的先后次次序固定定。2.說(shuō)明語(yǔ)句句中變量量安排有有序化當(dāng)多個(gè)變變量名在在一個(gè)說(shuō)說(shuō)明語(yǔ)句句中說(shuō)明明時(shí),應(yīng)應(yīng)當(dāng)對(duì)這這些變量量按字母母的順序序排列。帶標(biāo)號(hào)號(hào)的全程程數(shù)據(jù)也也應(yīng)當(dāng)按按字母的的順序排排列。106數(shù)據(jù)說(shuō)明明3.使用注釋釋說(shuō)明復(fù)復(fù)雜數(shù)據(jù)據(jù)結(jié)構(gòu)如果設(shè)計(jì)計(jì)了一個(gè)個(gè)復(fù)雜的的數(shù)據(jù)結(jié)結(jié)構(gòu),應(yīng)應(yīng)當(dāng)使用用注釋來(lái)來(lái)說(shuō)明在在程序?qū)崒?shí)現(xiàn)時(shí)這這個(gè)數(shù)據(jù)據(jù)結(jié)構(gòu)的的固有特特點(diǎn)。107語(yǔ)句結(jié)構(gòu)構(gòu)在設(shè)計(jì)階階段確定定了軟件件的邏輯輯流結(jié)構(gòu)構(gòu),但構(gòu)構(gòu)造單個(gè)個(gè)語(yǔ)句則則是編碼碼階段的的任務(wù)。語(yǔ)句構(gòu)造造力求簡(jiǎn)簡(jiǎn)單,直直接,不能為了了片面追追求效率率而使

48、語(yǔ)語(yǔ)句復(fù)雜雜化。1、在一行行內(nèi)只寫(xiě)寫(xiě)一條語(yǔ)語(yǔ)句2、程序編編寫(xiě)首先先應(yīng)當(dāng)考考慮清晰晰性程序編寫(xiě)寫(xiě)首先應(yīng)應(yīng)當(dāng)考慮慮清晰性性,不要要刻意追追求技巧巧性,使使程序編編寫(xiě)得過(guò)過(guò)于緊湊湊。3、程序要要能直截截了當(dāng)?shù)氐卣f(shuō)明程程序員的的用意。108語(yǔ)句結(jié)構(gòu)構(gòu)4.除非對(duì)效效率有特特殊的要要求,程序編寫(xiě)寫(xiě)要做到到清晰第一一,效率率第二。不要為為了追求求效率而而喪失了了清晰性。事實(shí)上上,程序序效率的的提高主主要應(yīng)通通過(guò)選擇擇高效的的算法來(lái)來(lái)實(shí)現(xiàn)。5.首先要保保證程序序正確,然后才要要求提高高速度。反過(guò)來(lái)來(lái)說(shuō),在在使程序序高速運(yùn)運(yùn)行時(shí),首先要要保證它它是正確確的。6.避免使用用臨時(shí)變變量而使使可讀性性下降。7.讓編譯

49、程程序做簡(jiǎn)簡(jiǎn)單的優(yōu)優(yōu)化。8.盡可能使使用庫(kù)函函數(shù)9.避免不必必要的轉(zhuǎn)轉(zhuǎn)移。109語(yǔ)句結(jié)構(gòu)構(gòu)10.盡量只采采用三種種基本的的控制結(jié)結(jié)構(gòu)來(lái)編編寫(xiě)程序序。11.避免使用用空的ELSE語(yǔ)句和IFTHENIF的語(yǔ)句。12.避免采用用過(guò)于復(fù)復(fù)雜的條條件測(cè)試試。13.盡量減少少使用“否定”條件的的條件語(yǔ)語(yǔ)句14.盡可能用用通俗易易懂的偽偽碼來(lái)描描述程序序的流程程,然后后再翻譯譯成必須須使用的的語(yǔ)言。15.數(shù)據(jù)結(jié)構(gòu)構(gòu)要有利利于程序序的簡(jiǎn)化化。16.要模塊化化,使模模塊功能能盡可能能單一化化,模塊塊間的耦耦合能夠夠清晰可可見(jiàn)。110語(yǔ)句結(jié)構(gòu)構(gòu)17.利用信息息隱蔽,確保每每一個(gè)模模塊的獨(dú)獨(dú)立性。18.從數(shù)據(jù)出出發(fā)

50、去構(gòu)構(gòu)造程序序。19.不要修補(bǔ)補(bǔ)不好的的程序,要重新新編寫(xiě)。也不要要一味地地追求代代碼的復(fù)復(fù)用,要要重新組組織。20.對(duì)太大的的程序,要分塊塊編寫(xiě)、測(cè)試,然后再再集成。21.對(duì)遞歸定定義的數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)盡量使使用遞歸歸過(guò)程。111輸入/輸出在設(shè)計(jì)和和編碼時(shí)時(shí)都應(yīng)考考慮下列列原則:1.對(duì)所有的的輸入數(shù)數(shù)據(jù)都要要進(jìn)行檢檢驗(yàn),識(shí)識(shí)別錯(cuò)誤誤的輸入入,以保保證每個(gè)個(gè)數(shù)據(jù)的的有效性性;2.檢查輸入入項(xiàng)的各各種重要要組合的的合理性性,必要要時(shí)報(bào)告告輸入狀狀態(tài)信息息;3.使得輸入入的步驟驟和操作作盡可能能簡(jiǎn)單,并保持持簡(jiǎn)單的的輸入格格式;112輸入/輸出4.輸入數(shù)據(jù)據(jù)時(shí),應(yīng)應(yīng)允許使使用自由由格式輸輸入;5.應(yīng)允

51、許缺缺省值;6.輸入一批批數(shù)據(jù)時(shí)時(shí),最好好使用輸輸入結(jié)束束標(biāo)志,而不要要由用戶戶指定輸輸入數(shù)據(jù)據(jù)數(shù)目;7.在交互式式輸入輸輸入時(shí),要在屏屏幕上使使用提示示符明確確提示交交互輸入入的請(qǐng)求求,指明明可使用用選擇項(xiàng)項(xiàng)的種類類和取值值范圍。同時(shí),在數(shù)據(jù)據(jù)輸入的的過(guò)程中中和輸入入結(jié)束時(shí)時(shí),也要要在屏幕幕上給出出狀態(tài)信信息;8.當(dāng)程序設(shè)設(shè)計(jì)語(yǔ)言言對(duì)輸入入輸出出格式有有嚴(yán)格要要求時(shí),應(yīng)保持持輸入格格式與輸輸入語(yǔ)句句的要求求的一致致性;9.給所有的的輸出加加注解,并設(shè)計(jì)計(jì)輸出報(bào)報(bào)表格式式。113五、軟件件測(cè)試與與調(diào)試一軟件測(cè)試試軟件測(cè)試試概念及及目的軟件測(cè)試試的原則則軟件測(cè)試試方法軟件測(cè)試試對(duì)象測(cè)試與軟軟件開(kāi)

52、發(fā)發(fā)各階段段的關(guān)系系軟件測(cè)試試過(guò)程測(cè)試用例例設(shè)計(jì)114軟件測(cè)試試1.軟件測(cè)試試概念及及目的測(cè)試階段段的基本本任務(wù):是根據(jù)軟軟件開(kāi)發(fā)發(fā)各階段段的文檔檔資料和和程序的的內(nèi)部結(jié)結(jié)構(gòu),精精心設(shè)計(jì)計(jì)一組“高效”的測(cè)試用用例,利利用這些些實(shí)例執(zhí)執(zhí)行程序序,找出出軟件中中潛在的的各種錯(cuò)錯(cuò)誤和缺缺陷。軟件測(cè)試試是為了了發(fā)現(xiàn)錯(cuò)錯(cuò)誤而執(zhí)執(zhí)行程序序的過(guò)程程。在IEEE提出的軟軟件工程程標(biāo)準(zhǔn)術(shù)術(shù)語(yǔ)中,軟件測(cè)測(cè)試是指指使用人人工或自自動(dòng)手段段,運(yùn)行行或測(cè)試試某個(gè)系系統(tǒng)的過(guò)過(guò)程,其其目的是檢檢驗(yàn)軟件件是否滿滿足規(guī)定定的需求求,或是是清楚預(yù)預(yù)期結(jié)果果與實(shí)際際結(jié)果之之間的差差異。115軟件測(cè)試試2.測(cè)試的原原則在軟件測(cè)測(cè)試中

53、,應(yīng)注意意以下指指導(dǎo)原則則:測(cè)試用例例應(yīng)由輸入數(shù)據(jù)據(jù)和預(yù)期的輸輸出數(shù)據(jù)據(jù)兩部分組組成。測(cè)試用例例不僅選選用合理的輸入數(shù)據(jù)據(jù),還要要選擇不合理的的輸入數(shù)據(jù)據(jù)。除了檢查查程序是是否做了了它應(yīng)該做做的事,還應(yīng)該該檢查程程序是否否做了它不應(yīng)該該做的事事。應(yīng)制定測(cè)試計(jì)劃劃并嚴(yán)格執(zhí)執(zhí)行,排排除隨意意性。長(zhǎng)期保留留測(cè)試用用例。對(duì)發(fā)現(xiàn)錯(cuò)錯(cuò)誤較多多的程序序段,應(yīng)應(yīng)進(jìn)行更更深入的的測(cè)試。程序員避避免測(cè)試試自己的的程序。116軟件測(cè)試試3.測(cè)試方法法一般分為為兩大類類:動(dòng)態(tài)態(tài)測(cè)試方方法與靜靜態(tài)測(cè)試試方法。(1)靜態(tài)測(cè)試試靜態(tài)測(cè)試試指被測(cè)測(cè)試程序序不在機(jī)機(jī)器上運(yùn)運(yùn)行,而而是采用用人工檢檢測(cè)和計(jì)計(jì)算機(jī)輔輔助靜態(tài)態(tài)分析的

54、的手段對(duì)對(duì)程序進(jìn)進(jìn)行檢測(cè)測(cè)。(2)動(dòng)態(tài)測(cè)試試動(dòng)態(tài)測(cè)試試指通過(guò)過(guò)運(yùn)行程程序發(fā)現(xiàn)現(xiàn)錯(cuò)誤。對(duì)軟件產(chǎn)產(chǎn)品進(jìn)行行動(dòng)態(tài)測(cè)測(cè)試時(shí),根據(jù)測(cè)試試用例的的設(shè)計(jì)方方法不同同一般有兩兩種方法法,分別別稱為黑盒測(cè)試試法和白盒測(cè)試試法。1174.軟件測(cè)試試的對(duì)象象軟件測(cè)試試并不等等于程序序測(cè)試。軟件測(cè)試試應(yīng)貫穿穿于軟件件定義與與開(kāi)發(fā)的的整個(gè)期期間。需求分析析、概要設(shè)計(jì)計(jì)、詳細(xì)設(shè)計(jì)計(jì)以及程程序編碼碼等各階段段所得到到的文檔,包括需需求規(guī)格格說(shuō)明、概要設(shè)設(shè)計(jì)規(guī)格格說(shuō)明、詳細(xì)設(shè)設(shè)計(jì)規(guī)格格說(shuō)明以以及源程程序,都應(yīng)成為為軟件測(cè)測(cè)試的對(duì)對(duì)象。118119測(cè)試信息息流120測(cè)試信息息流軟件配置置:軟件需需求規(guī)格格說(shuō)明、軟件設(shè)設(shè)計(jì)規(guī)格格

55、說(shuō)明、源代碼碼等;測(cè)試配置置:測(cè)試計(jì)計(jì)劃、測(cè)測(cè)試用例例、測(cè)試試程序等等;測(cè)試工具具:測(cè)試數(shù)數(shù)據(jù)自動(dòng)動(dòng)生成程程序、靜靜態(tài)分析析程序、動(dòng)態(tài)分分析程序序、測(cè)試試結(jié)果分分析程序序、以及及驅(qū)動(dòng)測(cè)測(cè)試的測(cè)測(cè)試數(shù)據(jù)據(jù)庫(kù)等等等。121測(cè)試結(jié)果果分析:比較實(shí)實(shí)測(cè)結(jié)果果與預(yù)期期結(jié)果,評(píng)價(jià)錯(cuò)錯(cuò)誤是否否發(fā)生。排錯(cuò)(調(diào)試):對(duì)已經(jīng)經(jīng)發(fā)現(xiàn)的的錯(cuò)誤進(jìn)進(jìn)行錯(cuò)誤誤定位和和確定出出錯(cuò)性質(zhì)質(zhì),并改改正這些些錯(cuò)誤,同時(shí)修修改相關(guān)關(guān)的文檔檔。修正后的的文檔再再測(cè)試:直到通通過(guò)測(cè)試試為止。122通過(guò)收集集和分析析測(cè)試結(jié)結(jié)果數(shù)據(jù)據(jù),對(duì)軟軟件建立立可靠性性模型利用可靠靠性分析析,評(píng)價(jià)價(jià)軟件質(zhì)質(zhì)量:軟件的質(zhì)質(zhì)量和可可靠性達(dá)達(dá)到可以以接受的的程

56、度;所做的測(cè)測(cè)試不足足以發(fā)現(xiàn)現(xiàn)嚴(yán)重的的錯(cuò)誤;如果測(cè)試試發(fā)現(xiàn)不不了錯(cuò)誤誤,可以以肯定,測(cè)試配配置考慮慮得不夠夠細(xì)致充充分,錯(cuò)錯(cuò)誤仍然然潛伏在在軟件中中。1235.測(cè)試與軟軟件開(kāi)發(fā)發(fā)各階段段的關(guān)系系軟件開(kāi)發(fā)發(fā)過(guò)程是是一個(gè)自頂向下下,逐步細(xì)化化的過(guò)程軟件計(jì)劃劃階段定定義軟件件作用域域軟件需求求分析建建立軟件件信息域域、功能能和性能能需求、約束等等軟件設(shè)計(jì)計(jì)編碼是把把設(shè)計(jì)用用某種程程序設(shè)計(jì)計(jì)語(yǔ)言轉(zhuǎn)轉(zhuǎn)換成程程序代碼碼測(cè)試過(guò)程程是依相相反順序序安排的的自底向上上,逐步集成成的過(guò)程。124測(cè)試過(guò)程程是依相相反順序序安排的的自底向向上,逐逐步集成成的過(guò)程程。125軟件測(cè)試試6.軟件測(cè)試試過(guò)程軟件測(cè)試試一般要要

57、經(jīng)過(guò)以以下四步步測(cè)試:(1)單元測(cè)試試主要針對(duì)對(duì)模塊的的五個(gè)基基本特征征進(jìn)行測(cè)測(cè)試:模塊接口口,局部部數(shù)據(jù)結(jié)結(jié)構(gòu),重重要的執(zhí)執(zhí)行路徑徑,錯(cuò)誤誤處理,邊界條條件。(2)集成測(cè)試試也稱組組裝測(cè)試試,是在單單元測(cè)試試的基礎(chǔ)礎(chǔ)上將所所有模塊塊按照設(shè)設(shè)計(jì)要求求組裝成一一個(gè)完整整的系統(tǒng)統(tǒng)進(jìn)行的測(cè)測(cè)試。(3)確認(rèn)測(cè)試試又稱有有效性測(cè)測(cè)試,是檢查查軟件的的功能與與性能是是否與需求規(guī)規(guī)格說(shuō)明明書(shū)中確確定的指指標(biāo)相符符合。(4)系統(tǒng)測(cè)試試是將確認(rèn)認(rèn)通過(guò)的的軟件作作為計(jì)算算機(jī)系統(tǒng)統(tǒng)的一個(gè)個(gè)元素,與計(jì)算算機(jī)硬件件、外設(shè)設(shè)、某些些支持軟軟件、數(shù)數(shù)據(jù)和人人員等其其他元素素結(jié)合在在一起,在實(shí)際的使使用環(huán)境境下,對(duì)計(jì)計(jì)算機(jī)系

58、系統(tǒng)進(jìn)行行一系列列的組裝裝測(cè)試和和確認(rèn)測(cè)測(cè)試。1261277.測(cè)試用例例設(shè)計(jì)兩種常用用的測(cè)試試方法黑盒測(cè)試試白盒測(cè)試試128黑盒測(cè)試試把測(cè)試對(duì)象象看做一個(gè)黑盒盒子,測(cè)試人人員完全全不考慮程序內(nèi)部的邏邏輯結(jié)構(gòu)構(gòu)和內(nèi)部部特性,只依據(jù)程序的需求規(guī)格格說(shuō)明書(shū)書(shū),檢查程程序的功功能是否否符合它它的功能能說(shuō)明。黑盒測(cè)試試又叫做做功能測(cè)試試或數(shù)據(jù)驅(qū)動(dòng)動(dòng)測(cè)試。129黑盒測(cè)試試方法是是在程序序接口上上進(jìn)行測(cè)測(cè)試,主主要是為為了發(fā)現(xiàn)現(xiàn)以下錯(cuò)錯(cuò)誤:是否有不不正確或或遺漏了了的功能能?在接口上上,輸入能否否正確地地接受?能否輸出出正確的的結(jié)果?是否有數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)錯(cuò)誤或或外部信信息(例如數(shù)據(jù)據(jù)文件)訪問(wèn)錯(cuò)誤誤?性能上是

59、是否能夠夠滿足要要求?是否有初初始化或或終止性性錯(cuò)誤?130用黑盒測(cè)測(cè)試發(fā)現(xiàn)現(xiàn)程序中中的錯(cuò)誤誤,必須須在所有可能能的輸入入條件和和輸出條條件中確定測(cè)測(cè)試數(shù)據(jù)據(jù),來(lái)檢檢查程序序是否都都能產(chǎn)生生正確的的輸出。但這是不可能的。131假設(shè)一個(gè)個(gè)程序P有輸入量X和Y及輸出量Z。在字長(zhǎng)長(zhǎng)為32位的計(jì)算算機(jī)上運(yùn)運(yùn)行。若若X、Y取整數(shù),按黑盒盒方法進(jìn)進(jìn)行窮舉舉測(cè)試:可能采用用的測(cè)試數(shù)據(jù)據(jù)組:232232264如果測(cè)試試一組數(shù)數(shù)據(jù)需要要1毫秒,一一年工作作36524小時(shí),完完成所有有測(cè)試需需5億年。132等價(jià)類劃劃分等價(jià)類劃劃分是一一種典型型的黑盒盒測(cè)試方方法,使使用這一一方法時(shí)時(shí),完全不考考慮程序序的內(nèi)部部結(jié)

60、構(gòu),只依據(jù)程程序的規(guī)規(guī)格說(shuō)明明來(lái)設(shè)計(jì)計(jì)測(cè)試用用例。等價(jià)類劃劃分方法法把所有可能能的輸入入數(shù)據(jù),即程序序的輸入入域劃分成若干干部分,然后從從每一部部分中選取少數(shù)數(shù)有代表表性的數(shù)數(shù)據(jù)做為測(cè)試試用例。133等價(jià)類劃劃分使用這一一方法設(shè)設(shè)計(jì)測(cè)試試用例要要經(jīng)歷劃分等價(jià)價(jià)類(列出等等價(jià)類表表)和選取測(cè)試試用例兩步。劃分等價(jià)價(jià)類等價(jià)類是是指某個(gè)個(gè)輸入域域的子集集合。在在該子集集合中,各個(gè)輸入入數(shù)據(jù)對(duì)對(duì)于揭露露程序中中的錯(cuò)誤誤都是等等效的。測(cè)試某某等價(jià)類類的代表表值就等等價(jià)于對(duì)對(duì)這一類類其它值值的測(cè)試試。134等價(jià)類劃劃分等價(jià)類的的劃分有有兩種不不同的情情況:有效等價(jià)價(jià)類:是指對(duì)對(duì)于程序序的規(guī)格格說(shuō)明來(lái)來(lái)說(shuō),

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論