不可不看-軟件工程導(dǎo)論課件_第1頁(yè)
不可不看-軟件工程導(dǎo)論課件_第2頁(yè)
不可不看-軟件工程導(dǎo)論課件_第3頁(yè)
不可不看-軟件工程導(dǎo)論課件_第4頁(yè)
不可不看-軟件工程導(dǎo)論課件_第5頁(yè)
已閱讀5頁(yè),還剩161頁(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)介

軟件工程導(dǎo)論白城師范學(xué)院計(jì)算機(jī)系2005年3月軟件工程導(dǎo)論白城師范學(xué)院計(jì)算機(jī)系1第一章軟件危機(jī)和軟件工程(3)軟件危機(jī)的表現(xiàn)開(kāi)發(fā)成本難以控制,進(jìn)度不可預(yù)計(jì);軟件系統(tǒng)的質(zhì)量和可靠性很差,難以滿意;軟件文檔相當(dāng)缺乏,軟件系統(tǒng)不可維護(hù);軟件開(kāi)發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應(yīng)求。軟件產(chǎn)品成本十分昂貴。軟件危機(jī)產(chǎn)生的原因軟件本身的特點(diǎn):

--軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,具有高度的抽象性;--軟件是一個(gè)邏輯上復(fù)雜而規(guī)模上龐大的系統(tǒng),涉及技術(shù)、管理等多方面的問(wèn)題;--軟件的生產(chǎn)方式與硬件明顯不同:產(chǎn)品的質(zhì)量控制在設(shè)計(jì)和制造階段的不同;產(chǎn)品的生產(chǎn)方式不同;設(shè)計(jì)和制造階段的資金和人力投入、技術(shù)復(fù)雜度不同;--軟件的運(yùn)行和維護(hù)階段,沒(méi)有傳統(tǒng)意義上的機(jī)械磨損、老化問(wèn)題。--軟件與硬件有關(guān),對(duì)軟件有可移植性的要求。--軟件工作涉及許多社會(huì)因素。對(duì)軟件開(kāi)發(fā)與維護(hù)存在許多錯(cuò)誤認(rèn)識(shí)和做法:忽視軟件需求分析的重要性;對(duì)軟件與程序的概念不清;輕視軟件維護(hù)。軟件開(kāi)發(fā)與維護(hù)的方法不正確:對(duì)系統(tǒng)需求沒(méi)有清楚和準(zhǔn)確的認(rèn)識(shí)就進(jìn)入開(kāi)發(fā)階段,忽視對(duì)軟件開(kāi)發(fā)過(guò)程的管理;……1.1軟件危機(jī)磨合調(diào)整磨損用壞t失效率硬、軟件產(chǎn)品失效率曲線第一章軟件危機(jī)和軟件工程(3)軟件危機(jī)的表現(xiàn)軟件危機(jī)產(chǎn)生2第一章軟件危機(jī)和軟件工程(4)軟件的定義(Boehm):軟件是程序以及開(kāi)發(fā)、使用和維護(hù)程序需要的所有文檔。早中晚引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)改正一個(gè)問(wèn)題的估計(jì)費(fèi)用(美元)改正一個(gè)問(wèn)題的估計(jì)工作量(人·天)20200100020000.050.52.55.0RASDDDCDITSTRTBell實(shí)驗(yàn)室統(tǒng)計(jì)結(jié)果(US)軟件產(chǎn)品需要分階段的定義、設(shè)計(jì)和開(kāi)發(fā),嚴(yán)格的產(chǎn)品質(zhì)量控制,完整的文檔記錄。5060708090硬件軟件第一章軟件危機(jī)和軟件工程(4)軟件的定義(Boehm):3第一章軟件危機(jī)和軟件工程(5)解決軟件危機(jī)的途徑將軟件開(kāi)發(fā)看成是一種組織嚴(yán)密、管理嚴(yán)格、各類人員協(xié)同配合共同完成的工程項(xiàng)目。研究和推廣成功的軟件開(kāi)發(fā)技術(shù)和方法。開(kāi)發(fā)和使用好的軟件工具?;靖拍睿很浖芷冢很浖?jīng)歷的定義、開(kāi)發(fā)、使用和維護(hù)直到廢棄所經(jīng)歷的時(shí)期。程序設(shè)計(jì)環(huán)境:源程序編輯,編譯或解釋,鏈接,調(diào)試和運(yùn)行工具的集合。軟件工程環(huán)境:軟件定義,設(shè)計(jì)和實(shí)現(xiàn),測(cè)試和維護(hù)等各個(gè)階段所使用的軟件工具的集合。第一章軟件危機(jī)和軟件工程(5)解決軟件危機(jī)的途徑41.2軟件工程軟件工程的基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理6類計(jì)劃–項(xiàng)目概要計(jì)劃,里程碑計(jì)劃,項(xiàng)目控制計(jì)劃,產(chǎn)品控制計(jì)劃,驗(yàn)證計(jì)劃,運(yùn)行維護(hù)計(jì)劃。堅(jiān)持進(jìn)行階段評(píng)審1)經(jīng)驗(yàn)數(shù)據(jù)說(shuō)明,大部分錯(cuò)誤是在編碼之前造成的,在整個(gè)軟件設(shè)計(jì)錯(cuò)誤中,設(shè)計(jì)錯(cuò)誤占63%,而編碼錯(cuò)誤占37%。2)錯(cuò)誤發(fā)現(xiàn)和改正得越晚,所需付出的代價(jià)就越高。實(shí)行嚴(yán)格的產(chǎn)品控制主要實(shí)行基準(zhǔn)配置管理。軟件配置成分:軟件開(kāi)發(fā)各個(gè)階段產(chǎn)生的文檔和代碼?;鶞?zhǔn)配置:經(jīng)過(guò)評(píng)審后的軟件配置成分。采用現(xiàn)代程序設(shè)計(jì)技術(shù)

提高開(kāi)發(fā)和維護(hù)的效率,如結(jié)構(gòu)化分析SA和結(jié)構(gòu)化設(shè)計(jì)SD技術(shù)。結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)少而精

1)軟件開(kāi)發(fā)的進(jìn)度并非與參與開(kāi)發(fā)人員的數(shù)量成正比,有時(shí)恰恰相反。2)軟件產(chǎn)品的質(zhì)量絕對(duì)與開(kāi)發(fā)人員的素質(zhì)相關(guān)。承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性

1.2軟件工程軟件工程的基本原理51.2軟件工程(續(xù)1)2.軟件工程的傳統(tǒng)途徑—生命周期方法學(xué)

生命周期方法學(xué)的基本內(nèi)容從時(shí)間角度對(duì)軟件開(kāi)發(fā)和維護(hù)的復(fù)雜問(wèn)題進(jìn)行分解,把軟件生命的漫長(zhǎng)周期依次劃分為若干個(gè)階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),然后逐步完成每個(gè)階段的任務(wù)。

生命周期方法學(xué)的應(yīng)用方法從對(duì)任務(wù)的抽象邏輯分析開(kāi)始,一個(gè)階段一個(gè)階段地進(jìn)行開(kāi)發(fā);前一個(gè)階段任務(wù)的完成是后一個(gè)階段工作的前提和基礎(chǔ),而后一個(gè)階段任務(wù)通常是使前一階段提出的解法更進(jìn)一步的具體化,加進(jìn)了更多的實(shí)現(xiàn)細(xì)節(jié)。

階段過(guò)渡方法每一個(gè)階段的開(kāi)始和結(jié)束都有嚴(yán)格標(biāo)準(zhǔn),前一階段結(jié)束的標(biāo)準(zhǔn)是后一階段工作開(kāi)始的標(biāo)準(zhǔn)。技術(shù)審查和管理復(fù)審?;靖拍?/p>

文檔及其作用。生命周期各階段的基本任務(wù)

問(wèn)題定義→可行性研究→需求分析→總體設(shè)計(jì)(概要設(shè)計(jì))→詳細(xì)設(shè)計(jì)→編碼和單元測(cè)試→綜合測(cè)試→軟件維護(hù)。

1.2軟件工程(續(xù)1)2.軟件工程的傳統(tǒng)途徑—生命61.2軟件工程(續(xù)2)4.瀑布模型

問(wèn)題定義特點(diǎn):1)階段間具有順序性和依賴性2)推遲實(shí)現(xiàn)的觀點(diǎn)3)質(zhì)量保證的觀點(diǎn)??尚行匝芯啃枨蠓治隹傮w設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與單元測(cè)試綜合測(cè)試軟件維護(hù)軟件定義時(shí)期軟件開(kāi)發(fā)時(shí)期軟件維護(hù)時(shí)期1.2軟件工程(續(xù)2)4.瀑布模型問(wèn)題定義特點(diǎn):1)71.2軟件工程(續(xù)3—生命周期各階段的基本任務(wù))問(wèn)題定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與單元測(cè)試綜合測(cè)試軟件維護(hù)要解決的問(wèn)題是什么?問(wèn)題性質(zhì)、工程目標(biāo)和規(guī)模的報(bào)告分析員:實(shí)際用戶+負(fù)責(zé)人是否有解決辦法?分析員高層邏輯模型,準(zhǔn)確和具體的工程規(guī)模和目標(biāo),成本/效益分析等可行性報(bào)告為了解決的問(wèn)題,目標(biāo)系統(tǒng)必須做什么?準(zhǔn)確確定系統(tǒng)的功能系統(tǒng)的邏輯模型(數(shù)據(jù)流圖+數(shù)據(jù)字典+簡(jiǎn)要算法)如何解決這些問(wèn)題模塊劃分軟件結(jié)構(gòu)如何具體地實(shí)現(xiàn)系統(tǒng):每個(gè)模塊的流程圖(程序的詳細(xì)規(guī)格說(shuō)明)通過(guò)各種類型的測(cè)試,使軟件達(dá)到預(yù)定的要求寫出正確的容易理解和容易維護(hù)的程序模塊通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要1.2軟件工程(續(xù)3—生命周期各階段的基本任務(wù))問(wèn)題定義81.3技術(shù)審查和管理復(fù)審必要性管理復(fù)審和技術(shù)復(fù)審錯(cuò)誤傳播模型原始要求正確的規(guī)格說(shuō)明

錯(cuò)誤的規(guī)格說(shuō)明正確的設(shè)計(jì)

錯(cuò)誤的設(shè)計(jì)

對(duì)錯(cuò)誤說(shuō)明的設(shè)計(jì)正確編碼

錯(cuò)誤編碼

對(duì)錯(cuò)誤設(shè)計(jì)的編碼對(duì)錯(cuò)誤說(shuō)明的編碼正確功能

可改正的錯(cuò)誤不可改正的錯(cuò)誤潛伏的錯(cuò)誤需求分析設(shè)計(jì)編碼測(cè)試錯(cuò)誤的扇形傳播模型1.3技術(shù)審查和管理復(fù)審必要性原始要求正確的規(guī)格說(shuō)明9第二章可行性研究2.1可行性研究的任務(wù)用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。問(wèn)題定義

可行性研究問(wèn)題定義正確?問(wèn)題定義階段審查系統(tǒng)的邏輯模型技術(shù)可行性經(jīng)濟(jì)可行性操作可行性實(shí)際的物理系統(tǒng)否是系統(tǒng)實(shí)現(xiàn)方案若干可行性研究需要的時(shí)間長(zhǎng)短取決于工程的規(guī)模,一般來(lái)說(shuō),其成本只能占預(yù)期的工程總成本的5%~10%.可行性研究的結(jié)論可行性研究階段任務(wù)(示意圖)第二章可行性研究2.1可行性研究的任務(wù)用最小的代價(jià)在盡102.2可行性研究的步驟復(fù)查系統(tǒng)的規(guī)模和目標(biāo)研究現(xiàn)正在使用的系統(tǒng)新系統(tǒng)的高層邏輯模型重新定義問(wèn)題

導(dǎo)出和評(píng)價(jià)供選擇的解法推薦行動(dòng)方針草擬開(kāi)發(fā)計(jì)劃書寫文檔提交審查用戶分析員是否符合系統(tǒng)目標(biāo)

邏輯模型表達(dá)了系統(tǒng)分析員對(duì)新系統(tǒng)必須作什么工作、完成什么任務(wù)的理解.1.是否繼續(xù)該工程的開(kāi)發(fā)的建議2.所選擇解決方案的解法的說(shuō)明3.比較仔細(xì)的成本/效益分析2.2可行性研究的步驟復(fù)查系統(tǒng)的規(guī)模和目標(biāo)研究現(xiàn)正在112.2可行性研究的步驟(續(xù))

進(jìn)廠載重汽車進(jìn)廠后至稱重計(jì)量點(diǎn)稱出貨物毛重。計(jì)量人員讀出稱重儀表上的重量指示,數(shù)據(jù),開(kāi)具相應(yīng)的流轉(zhuǎn)單(貨物、毛重、車號(hào)、收發(fā)貨單位名稱等的憑據(jù))。貨主持此流轉(zhuǎn)單將貨物送到接收單位,驗(yàn)收合格后簽章以示有效,卸空后空車返回稱重計(jì)量點(diǎn)稱出皮重,計(jì)量人員。計(jì)算出凈重以后收回流轉(zhuǎn)單,出具計(jì)量單作為正式結(jié)帳憑據(jù),貨主即可開(kāi)車離廠。結(jié)帳付款一般在財(cái)務(wù)處定期核對(duì)進(jìn)行。研究目前正在使用的系統(tǒng)

這個(gè)計(jì)量流程存在以下問(wèn)題:1該計(jì)量點(diǎn)日平均過(guò)車(僅進(jìn)廠)1500多輛,如果每車都要返回稱重去皮,則稱重工作量成倍增加,經(jīng)常引起嚴(yán)重的交通堵塞問(wèn)題。2由于是用汽車衡稱量,人工看表讀數(shù),手工驗(yàn)車開(kāi)票,所以工作效率十分低,有時(shí)竟引起長(zhǎng)達(dá)1公里的堵車現(xiàn)象,難以滿足日車流量的要求。3為了克服車流量大而引起的工作量繁重的問(wèn)題,對(duì)一部分送貨單位的車型、車號(hào)相對(duì)固定的車實(shí)行定期稱量空車,這樣雖然減少了一定的稱重工作量,但易引起車型車號(hào)不符、皮重不實(shí)的問(wèn)題,在管理上也有漏洞存在。

4在驗(yàn)票、開(kāi)票等過(guò)程中大量存在人工干預(yù),往往會(huì)出現(xiàn)計(jì)量差錯(cuò)、人情重量、違法亂紀(jì)乃至犯罪的情況,給企業(yè)造成非常嚴(yán)重的經(jīng)濟(jì)損失。原系統(tǒng)的工作流程如圖2。2.2可行性研究的步驟(續(xù))進(jìn)廠載重汽車進(jìn)廠后至稱重122.2可行性研究的步驟(續(xù))系統(tǒng)要求自動(dòng)稱量,提高工作效率;自動(dòng)除皮;自動(dòng)去雜和去水;數(shù)據(jù)自動(dòng)匯總;任意點(diǎn)均可稱量;2.2可行性研究的步驟(續(xù))系統(tǒng)要求自動(dòng)稱量,提高工作效132.2可行性研究的步驟(續(xù))財(cái)務(wù)處計(jì)量點(diǎn)整個(gè)稱重點(diǎn)采用兩臺(tái)汽車衡、分布在公路兩側(cè),物理上將進(jìn)廠和出廠的車流分開(kāi),實(shí)行一側(cè)稱重,而另一側(cè)回皮。實(shí)現(xiàn)稱重過(guò)程微機(jī)全過(guò)程自動(dòng)化處理(免除人工操作),保證稱重?cái)?shù)據(jù)的客觀公正和有效準(zhǔn)確性,稱重重量,車號(hào)等數(shù)據(jù)自動(dòng)存儲(chǔ),實(shí)現(xiàn)多個(gè)稱重點(diǎn)按權(quán)限共享和引用。能對(duì)稱重,計(jì)量數(shù)據(jù)的物資品種,供貨單位,接收單位,供貨車號(hào)均可分工作班次,日,旬,月進(jìn)行分類查詢和統(tǒng)計(jì)處理。一方面進(jìn)一步減輕工作人員的負(fù)擔(dān),另一方面也使管理人員時(shí)時(shí)可掌握各種有關(guān)數(shù)據(jù)。如果一側(cè)稱重點(diǎn)出現(xiàn)故障,另一側(cè)稱重點(diǎn)也可用微機(jī)稱重和計(jì)量,進(jìn)行以上工作。可以隨時(shí)將計(jì)量數(shù)據(jù)轉(zhuǎn)發(fā)到計(jì)控處管理機(jī),進(jìn)入企業(yè)管理計(jì)算機(jī)網(wǎng)。技術(shù)問(wèn)題稱量自動(dòng)化的程度:車號(hào)識(shí)別,雜質(zhì)處理數(shù)據(jù)通信方式:有線,無(wú)線開(kāi)票處理:2.2可行性研究的步驟(續(xù))財(cái)務(wù)處計(jì)量點(diǎn)整個(gè)稱重點(diǎn)142.2可行性研究的步驟(續(xù))2.2可行性研究的步驟(續(xù))152.3系統(tǒng)流程圖系統(tǒng)流程圖:描繪物理系統(tǒng)的工具,其基本思想是用圖形符號(hào)以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件(程序、文件、數(shù)據(jù)庫(kù)、表格、人工過(guò)程等),表達(dá)的是信息在系統(tǒng)各部件之間流動(dòng)的情況。常用符號(hào)處理輸入/輸出連接換頁(yè)連接數(shù)據(jù)流文檔磁帶聯(lián)機(jī)存儲(chǔ)磁盤顯示人工輸入人工操作2.例子事務(wù)庫(kù)存清單程序定貨信息報(bào)告生成程序定貨報(bào)告某裝配廠有一座存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有各種零件的數(shù)量和每種零件的庫(kù)存臨界值等數(shù)據(jù)存放在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量有變化時(shí),應(yīng)及時(shí)修改庫(kù)存清單主文件,如果哪種零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)該報(bào)告給采購(gòu)部門以便定貨,規(guī)定每天向采購(gòu)部門送一次定貨報(bào)告。3.分層(略)庫(kù)存清單主文件(復(fù)雜系統(tǒng))2.3系統(tǒng)流程圖系統(tǒng)流程圖:描繪物理系統(tǒng)的工具,其基本思想162.4數(shù)據(jù)流圖數(shù)據(jù)流程圖:描繪系統(tǒng)的邏輯模型,圖中沒(méi)有具體的物理元素,只是描繪信息在系統(tǒng)中流動(dòng)和處理的情況。設(shè)計(jì)數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體的實(shí)現(xiàn)這些功能。1.符號(hào)(四種基本符號(hào))數(shù)據(jù)的源點(diǎn)或終點(diǎn)數(shù)據(jù)處理數(shù)據(jù)存儲(chǔ)數(shù)據(jù)流一些附加符號(hào)(略)倉(cāng)庫(kù)管理員定貨系統(tǒng)采購(gòu)員D1:庫(kù)存清單倉(cāng)庫(kù)管理員1處理事務(wù)2產(chǎn)生報(bào)表采購(gòu)員D2:定貨信息2.例子基本系統(tǒng)模型功能級(jí)數(shù)據(jù)流圖事務(wù)定貨報(bào)表事務(wù)定貨報(bào)表定貨信息定貨信息庫(kù)存清單2.4數(shù)據(jù)流圖數(shù)據(jù)流程圖:描繪系統(tǒng)的邏輯模型,圖中沒(méi)有具172.4數(shù)據(jù)流圖(續(xù)1)倉(cāng)庫(kù)管理員1.1接收事務(wù)1.2更新庫(kù)存清單1.3處理定貨2產(chǎn)生報(bào)表采購(gòu)員D1:庫(kù)存清單D2:定貨信息事務(wù)事務(wù)庫(kù)存信息定貨信息定貨信息定貨報(bào)表3.命名為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名為處理命名4.用途交流信息的工具分析和設(shè)計(jì)的工具進(jìn)一步設(shè)計(jì)的依據(jù)庫(kù)存清單2.4數(shù)據(jù)流圖(續(xù)1)倉(cāng)庫(kù)1.11.21.32采購(gòu)員182.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合1.數(shù)據(jù)字典的內(nèi)容

數(shù)據(jù)流數(shù)據(jù)流分量數(shù)據(jù)存儲(chǔ)處理數(shù)據(jù)處理:用IPO圖或PDL描述比較方便直觀。數(shù)據(jù)元素的別名:~2.定義數(shù)據(jù)的方法

由數(shù)據(jù)元素組成數(shù)據(jù)的方式的三種基本類型順序+:以確定次序連接兩個(gè)或多個(gè)分量a+b+c選擇|,[]:從兩個(gè)或多個(gè)可能的元素中選取一個(gè)[a|b|c]重復(fù){}:把指定的分量重復(fù)零次或多次{a}可選:一個(gè)分量是可有可無(wú)的(重復(fù)零次或一次),(a)3.例子

定貨報(bào)表={零件編號(hào)+零件名稱+定貨數(shù)量+目前價(jià)格+主要供應(yīng)者+次要供應(yīng)者}零件編號(hào)=8{字符}8定貨數(shù)量=1{數(shù)字}52.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的19需求分析示例—教材購(gòu)銷管理系統(tǒng)(1)問(wèn)題描述:學(xué)校教材科根據(jù)業(yè)務(wù)的需要,建立一個(gè)學(xué)校教材購(gòu)銷管理系統(tǒng),提高教材采購(gòu)、銷售和信息管理的效率。學(xué)生張秘書購(gòu)書申請(qǐng)王會(huì)計(jì)李出納趙保管學(xué)生購(gòu)書證明購(gòu)書申請(qǐng)購(gòu)書申請(qǐng)書學(xué)生審查有效性購(gòu)書單開(kāi)發(fā)票開(kāi)領(lǐng)書單發(fā)書學(xué)生有效購(gòu)書單發(fā)票領(lǐng)書單書學(xué)生審查并開(kāi)發(fā)票購(gòu)書單開(kāi)領(lǐng)書單發(fā)書學(xué)生發(fā)票領(lǐng)書單書2)去掉具體模型中的非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型1)通過(guò)對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查研究,獲得當(dāng)前系統(tǒng)的具體模型3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型。需求分析示例—教材購(gòu)銷管理系統(tǒng)(1)問(wèn)題描述:學(xué)校教材科根20需求分析示例—教材購(gòu)銷管理系統(tǒng)(2)學(xué)生審查并開(kāi)發(fā)票購(gòu)書單開(kāi)領(lǐng)書單學(xué)生發(fā)票領(lǐng)書單無(wú)效書單4)對(duì)目標(biāo)系統(tǒng)進(jìn)行補(bǔ)充和完善,并寫出完整的需求說(shuō)明。學(xué)生1審查并開(kāi)發(fā)票購(gòu)書單2開(kāi)領(lǐng)書單學(xué)生發(fā)票領(lǐng)書單無(wú)效書單各班學(xué)生用書表教材存量表5)對(duì)需求說(shuō)明進(jìn)行復(fù)審,直到確認(rèn)文檔齊全,并且符合用戶的全部需求為止需求分析示例—教材購(gòu)銷管理系統(tǒng)(2)學(xué)生審查并開(kāi)發(fā)票購(gòu)書單開(kāi)21需求分析示例—教材購(gòu)銷管理系統(tǒng)(3)學(xué)生教材購(gòu)銷管理系統(tǒng)書庫(kù)保管員1.教材購(gòu)銷管理系統(tǒng)的頂層DFD學(xué)生書庫(kù)保管員2.第二層DFD圖—教材購(gòu)銷系統(tǒng)購(gòu)書單領(lǐng)書單缺書單進(jìn)書通知購(gòu)書單領(lǐng)書單1銷售2采購(gòu)進(jìn)書通知F2:缺書登記表F1:教材存量表缺書單進(jìn)書通知需求分析示例—教材購(gòu)銷管理系統(tǒng)(3)學(xué)生教材購(gòu)銷管理系統(tǒng)書22需求分析示例—教材購(gòu)銷管理系統(tǒng)(4)1.1審查有效性1.2開(kāi)發(fā)票有效購(gòu)書單1.3領(lǐng)書并開(kāi)領(lǐng)書單發(fā)票1.4登記缺書1.5補(bǔ)售教材F2:缺書登記表學(xué)生學(xué)生無(wú)效書單領(lǐng)書單領(lǐng)書單F3:各班學(xué)生用書表F4:售書登記表補(bǔ)售書單暫缺書單采購(gòu)3.第三層DFD圖—銷售子系統(tǒng)F1:教材存量表需求分析示例—教材購(gòu)銷管理系統(tǒng)(4)1.1審查有效23需求分析示例—教材購(gòu)銷管理系統(tǒng)(5)2.3修改教材庫(kù)存和待購(gòu)量2.1按書號(hào)匯總?cè)睍鳩2:缺書登記表銷售子系統(tǒng)書庫(kù)保管員F1:教材存量表進(jìn)書通知3.第三層DFD圖—采購(gòu)子系統(tǒng)2.2按出版社統(tǒng)計(jì)缺書F5:待購(gòu)教材表F6:教材一覽表進(jìn)書通知需求分析示例—教材購(gòu)銷管理系統(tǒng)(5)2.324需求分析示例—教材購(gòu)銷管理系統(tǒng)(6)數(shù)據(jù)字典(DataDirectory-DD)領(lǐng)書單=學(xué)院+專業(yè)+班級(jí)+學(xué)號(hào)+姓名+{書號(hào)+[書名]+數(shù)量}+日期有效購(gòu)書單=領(lǐng)書單發(fā)票=學(xué)號(hào)+姓名+{書號(hào)+[書名]+單價(jià)+數(shù)量+總價(jià)}+書費(fèi)合計(jì)教材存量表={書號(hào)+單價(jià)+數(shù)量}暫缺書單=學(xué)號(hào)+姓名+{書號(hào)+數(shù)量}補(bǔ)售書單=學(xué)號(hào)+姓名+{書號(hào)+數(shù)量}需求分析示例—教材購(gòu)銷管理系統(tǒng)(6)數(shù)據(jù)字典(DataDi252.5成本效益分析1.成本估計(jì)

代碼行技術(shù)。自動(dòng)估計(jì)成本技術(shù)任務(wù)分解技術(shù)典型環(huán)境下各個(gè)開(kāi)發(fā)階段需要使用的人力的百分比2.5成本效益分析1.成本估計(jì)代碼行技術(shù)26第三章需求分析1.需求分析的任務(wù)需求分析是軟件定義的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問(wèn)題。對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。

確定對(duì)系統(tǒng)的綜合要求(四個(gè)方面)系統(tǒng)功能要求系統(tǒng)性能要求—響應(yīng)時(shí)間,所需存儲(chǔ)容量及后援存儲(chǔ),安全性和簡(jiǎn)便性。運(yùn)行要求---------系統(tǒng)運(yùn)行環(huán)境將來(lái)可能提出的要求

分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型(數(shù)據(jù)流圖+數(shù)據(jù)字典+主要的處理算法)修正系統(tǒng)開(kāi)發(fā)計(jì)劃開(kāi)發(fā)原型系統(tǒng)2.分析過(guò)程結(jié)構(gòu)化分析方法(SA方法)--面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。沿?cái)?shù)據(jù)流圖回朔用戶復(fù)查細(xì)化數(shù)據(jù)流圖修正開(kāi)發(fā)計(jì)劃書寫文檔審查和復(fù)審第三章需求分析1.需求分析的任務(wù)需求分273.概念模型和規(guī)范化用戶的數(shù)據(jù)要求----需要哪些數(shù)據(jù),數(shù)據(jù)之間有哪些聯(lián)系,數(shù)據(jù)本身有哪些性質(zhì),數(shù)據(jù)的結(jié)構(gòu)等)。用戶的處理要求---對(duì)數(shù)據(jù)進(jìn)行哪些處理,每個(gè)處理的邏輯功能。

概念性模型(信息模型)---一種面向問(wèn)題的數(shù)據(jù)模型,是按照用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模。表示概念性數(shù)據(jù)模型的最常用方法是實(shí)體-聯(lián)系方法,采用用ER圖的方式,這種表示又稱為ER模型。ER模型

實(shí)體:客觀世界中存在的且可區(qū)分的事物。聯(lián)系:客觀事物之間的聯(lián)系(三類--1:1,1:N,M:N)屬性:實(shí)體或聯(lián)系所具有的性質(zhì)。教師姓名性別職稱職務(wù)教師號(hào)教1課程N(yùn)課程號(hào)課名學(xué)時(shí)學(xué)分學(xué)M學(xué)生N學(xué)號(hào)姓名性別系年級(jí)成績(jī)范式通常用范式定義消除數(shù)據(jù)的冗余度(略)3.概念模型和規(guī)范化用戶的數(shù)據(jù)要求---284.圖形工具層次方框圖:用樹(shù)形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。產(chǎn)品硬件軟件服務(wù)處理機(jī)存儲(chǔ)器外部設(shè)備系統(tǒng)軟件應(yīng)用軟件軟件服務(wù)硬件維修培訓(xùn)操作系統(tǒng)編譯程序軟件工具層次方框圖的一個(gè)例子注意:層次方框圖即可以表示數(shù)據(jù)的層次結(jié)構(gòu),也可以表示程序的層次結(jié)構(gòu)4.圖形工具層次方框圖:用樹(shù)形結(jié)構(gòu)的一系列多層次的294.圖形工具(續(xù))

Warnier圖:用樹(shù)形結(jié)構(gòu)描繪數(shù)據(jù)的層次結(jié)構(gòu)。軟件產(chǎn)品系統(tǒng)軟件操作系統(tǒng)(P1)編譯程序(P2)軟件工具編輯程序(P3)測(cè)試驅(qū)動(dòng)程序(P4)設(shè)計(jì)輔助程序(P5)應(yīng)用軟件⊕4.圖形工具(續(xù))Warnier圖:用樹(shù)形結(jié)構(gòu)描304.圖形工具(續(xù))

IPO圖:輸入/處理/輸出圖的簡(jiǎn)稱-IBM。舊的主文件事務(wù)文件1、校驗(yàn)主記錄2、校驗(yàn)事務(wù)記錄3、更新主記錄1、校驗(yàn)主記錄2、有效的事務(wù)記錄3、更新后的主文件改進(jìn)的IPO圖的形式(P47)4.圖形工具(續(xù))IPO圖:輸入/處理/輸出圖的315.驗(yàn)證軟件需求

從哪幾個(gè)方面驗(yàn)證軟件需求的正確性(四個(gè)方面)一致性:任何一條需求不能和其他需求互相矛盾。完整性:規(guī)格說(shuō)明書應(yīng)該包括用戶需要的每一個(gè)功能和性能?,F(xiàn)實(shí)性:指定的需求是用現(xiàn)有的硬件、軟件技術(shù)可以實(shí)現(xiàn)的。有效性:需求是正確有效的,確實(shí)能解決用戶面對(duì)的問(wèn)題。

驗(yàn)證軟件需求的方法一致性:人工審查---》形式化描述軟件需求,軟件工具自動(dòng)驗(yàn)證。現(xiàn)實(shí)性:參考以往的開(kāi)發(fā)經(jīng)驗(yàn),分析,仿真或模擬完整性和一致性:原型系統(tǒng)5.驗(yàn)證軟件需求從哪幾個(gè)方面驗(yàn)證軟件需求的正確性(四個(gè)32第四章總體設(shè)計(jì)0總體設(shè)計(jì)的兩項(xiàng)任務(wù):

劃分出組成系統(tǒng)的物理元素----程序、文件、數(shù)據(jù)庫(kù)、人工過(guò)程和文檔設(shè)計(jì)軟件的結(jié)構(gòu)----確定每個(gè)程序的模塊組成及模塊之間的相互關(guān)系。1總體設(shè)計(jì)的過(guò)程(兩個(gè)主要階段):

系統(tǒng)設(shè)計(jì):確定系統(tǒng)的具體實(shí)現(xiàn)方案。結(jié)構(gòu)設(shè)計(jì):確定軟件結(jié)構(gòu)。設(shè)想供選擇的方案選取合理的方案推薦最佳方案功能分解設(shè)計(jì)軟件結(jié)構(gòu)數(shù)據(jù)庫(kù)設(shè)計(jì)制訂測(cè)試計(jì)劃書寫文檔數(shù)據(jù)流圖系統(tǒng)流程圖組成系統(tǒng)的物理元素清單成本/效益分析實(shí)現(xiàn)系統(tǒng)的進(jìn)度計(jì)劃

系統(tǒng)說(shuō)明用戶手冊(cè)測(cè)試計(jì)劃詳細(xì)的實(shí)現(xiàn)計(jì)劃數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果審查和復(fù)審第四章總體設(shè)計(jì)0總體設(shè)計(jì)的兩項(xiàng)任務(wù):劃分出組成系統(tǒng)的332軟件設(shè)計(jì)的概念和原理模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮恼f(shuō)明。模塊化:把程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集總起來(lái)組成一個(gè)整體,可以完成指定的功能,滿足問(wèn)題的功能。C(P1+P2)>C(P1)+C(P2)E(P1+P2)>E(P1)+E(P2)成本模塊數(shù)目成本/模塊接口成本最小成本區(qū)抽象信息隱蔽和局部化模塊獨(dú)立----每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能,并且和其他模塊之間的關(guān)系很簡(jiǎn)單。耦合:一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。數(shù)據(jù)耦合:模塊之間通過(guò)參數(shù)交換數(shù)據(jù)信息??刂岂詈希耗K之間傳遞的參數(shù)含有控制信息。公共環(huán)境耦合:兩個(gè)或多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用。內(nèi)容耦合:。。。。。。設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合,完全不用內(nèi)容耦合。模塊化和軟件成本數(shù)據(jù)耦合控制耦合公共環(huán)境耦合內(nèi)容耦合低高2軟件設(shè)計(jì)的概念和原理模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο?42軟件設(shè)計(jì)的概念和原理----耦合非直接耦合數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內(nèi)容耦合弱耦合中耦合較強(qiáng)耦合強(qiáng)耦合模塊1模塊2模塊3模塊4數(shù)據(jù)耦合通過(guò)簡(jiǎn)單變量交換數(shù)據(jù)特征耦合通過(guò)數(shù)據(jù)結(jié)構(gòu)交換數(shù)據(jù)非直接耦合模塊之間沒(méi)有信息傳遞模塊A模塊B模塊C模塊D模塊L模塊N全局性數(shù)據(jù)結(jié)構(gòu)公共耦合Flag=1?S1S2模塊1控制耦合模塊之間傳遞的是控制信息TF全局性簡(jiǎn)單變量外部耦合模塊A模塊B內(nèi)容耦合

訪問(wèn)其它模塊的內(nèi)部數(shù)據(jù)直接跳到其他模塊內(nèi)部執(zhí)行2軟件設(shè)計(jì)的概念和原理----耦合非直接耦合弱耦合中耦352軟件設(shè)計(jì)的概念和原理(續(xù)1)內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。偶然內(nèi)聚:一個(gè)模塊完成一組任務(wù),任務(wù)之間的關(guān)系很松散。公共語(yǔ)句。邏輯內(nèi)聚:若干個(gè)邏輯功能類似的任務(wù)組成一個(gè)模塊。時(shí)間內(nèi)聚:若干個(gè)任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行。如初始化工作。低內(nèi)聚中內(nèi)聚高內(nèi)聚過(guò)程內(nèi)聚:模塊內(nèi)的處理元素是相關(guān)的,且必須以特定次序執(zhí)行。通信內(nèi)聚:模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù),和/或產(chǎn)生同一個(gè)輸出數(shù)據(jù)。順序內(nèi)聚:模塊中所有處理元素和同一個(gè)功能密切相關(guān),且這些處理必須順序執(zhí)行。功能內(nèi)聚:所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能。模塊A模塊B模塊CS1;S2;模塊A模塊B模塊C模塊A模塊B模塊C模塊D2軟件設(shè)計(jì)的概念和原理(續(xù)1)內(nèi)聚:一個(gè)模塊內(nèi)各個(gè)元素362軟件設(shè)計(jì)的概念和原理(續(xù)2)改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇入、扇出都應(yīng)適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)力爭(zhēng)降低模塊接口的復(fù)雜程度設(shè)計(jì)單入口單出口的模塊模塊的功能應(yīng)該可以預(yù)測(cè)3啟發(fā)式規(guī)則2軟件設(shè)計(jì)的概念和原理(續(xù)2)改進(jìn)軟件結(jié)構(gòu)提高模塊374圖形工具

層次圖和HIPO圖層次圖用來(lái)描述軟件結(jié)構(gòu),層次圖+IPO圖=HIPO圖正文加工系統(tǒng)輸入輸出編輯加標(biāo)題存儲(chǔ)檢索編目錄格式化添加刪除插入修改合并列表

結(jié)構(gòu)圖方框之間的箭頭表示模塊的調(diào)用關(guān)系,帶注釋的箭頭表示模塊間來(lái)回傳遞的信息:空心圓—數(shù)據(jù),實(shí)心圓—控制信息。結(jié)構(gòu)圖還可以表示模塊的選擇調(diào)用或循環(huán)調(diào)用參見(jiàn):P644圖形工具層次圖和HIPO圖正文加工系統(tǒng)輸入輸出編輯加385面向數(shù)據(jù)流的設(shè)計(jì)方法概念1)變換流2)事務(wù)流3)設(shè)計(jì)過(guò)程時(shí)間輸入流輸出流變換流事務(wù)外部表示內(nèi)部表示信息T事務(wù)中心活動(dòng)通路事務(wù)中心T完成下述任務(wù):接受輸入數(shù)據(jù)(事務(wù))分析每個(gè)事務(wù)以確定它的類型根據(jù)事務(wù)類型選取一條活動(dòng)通路5面向數(shù)據(jù)流的設(shè)計(jì)方法概念時(shí)間輸入流輸出流變換流事務(wù)395面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))精化數(shù)據(jù)流圖流類型區(qū)分事務(wù)中心和數(shù)據(jù)接收通路映射成事務(wù)結(jié)構(gòu)區(qū)分輸入和輸出分支映射成變換結(jié)構(gòu)用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細(xì)設(shè)計(jì)事務(wù)分析變換分析5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))精化數(shù)據(jù)流圖流類型區(qū)分事務(wù)中405面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))變換分析:汽車數(shù)字儀表板功能:1)通過(guò)A/D轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理器接口,2)在發(fā)光二極管面板上顯示數(shù)據(jù),3)指示每小時(shí)英里數(shù)(mph),行駛的里程,每加倫油行駛的英里數(shù)(mpg)等等。4)指示加速或減速;5)超速警告:如果車速超過(guò)55英里/小時(shí),則發(fā)出超速警告鈴聲。A/D轉(zhuǎn)數(shù)計(jì)數(shù)器流量傳感器微處理機(jī)里程表車速表油效表油管系統(tǒng)加速/減速指示超速報(bào)警5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))變換分析:汽車數(shù)字儀表415面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))讀旋轉(zhuǎn)信號(hào)收集和求平均轉(zhuǎn)換成轉(zhuǎn)/分(rpm)計(jì)算里程確定加速/減速產(chǎn)生加速/減速顯示產(chǎn)生里程顯示計(jì)算mph和超速值計(jì)算燃料消耗發(fā)出鈴聲產(chǎn)生mph顯示產(chǎn)生mpg顯示讀和校核計(jì)算gph旋轉(zhuǎn)信號(hào)信號(hào)/秒SPS△SPSSPSrpmrpm箭頭指示上箭頭⊕⊕水平線下箭頭英里超速值顯示鈴聲mphmphmpggph燃料流燃料流傳感器信號(hào)Mpg顯示數(shù)字儀表板控制接受傳感器信號(hào)數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動(dòng)儀表板輸入控制變換控制輸入控制5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))讀旋轉(zhuǎn)信號(hào)收集和求平均轉(zhuǎn)換成425面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))設(shè)計(jì)步驟:復(fù)查基本系統(tǒng)模型復(fù)查并精化數(shù)據(jù)流圖確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性確定輸入流和輸出流的邊界,劃分變換或事務(wù)中心完成“第一級(jí)分解”CmCaCtCe第一級(jí)分解的方法5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))設(shè)計(jì)步驟:復(fù)查基本系統(tǒng)模型復(fù)435面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))ADBCCmCaCBDA接受傳感器信號(hào)轉(zhuǎn)換成rpm收集SPS讀旋轉(zhuǎn)信號(hào)計(jì)算gph讀燃料流數(shù)字儀表板控制確定加/減速計(jì)算mph計(jì)算gpg計(jì)算里程驅(qū)動(dòng)儀表板加速/減速顯示顯示mpg顯示mph顯示里程發(fā)出鈴聲發(fā)光二極管顯示5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))ADBCCmCaCBDA接受445面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))數(shù)字儀表板控制接受傳感器信號(hào)轉(zhuǎn)換成rpm讀旋轉(zhuǎn)信號(hào)計(jì)算gph讀燃料流數(shù)字儀表板控制確定加/減速計(jì)算mph計(jì)算gpg計(jì)算里程驅(qū)動(dòng)儀表板加速/減速顯示顯示mpg顯示mph顯示里程發(fā)出鈴聲發(fā)光二極管顯示數(shù)字儀表板軟件系統(tǒng)經(jīng)過(guò)調(diào)整后的結(jié)構(gòu)圖注意:紅色模塊的位置有所調(diào)整5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))數(shù)字儀表板控455面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))事務(wù)分析432總控接收通路C通路B通路A通路調(diào)度A_CTL142+1321B_CTLC_CTL設(shè)計(jì)優(yōu)化先使系統(tǒng)工作起來(lái),然后使它快起來(lái)。數(shù)據(jù)流圖軟件結(jié)構(gòu)5面向數(shù)據(jù)流的設(shè)計(jì)方法(續(xù))事務(wù)分析432總46第五章詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的目標(biāo):確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)。精確地描述整個(gè)目標(biāo)系統(tǒng),從而在編碼階段可以把這個(gè)描述翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。結(jié)構(gòu)程序設(shè)計(jì)E.W.Dijstra與Goto語(yǔ)句,1966,Bohm和Jacobini證明了只要順序、選擇、循環(huán)這三種基本結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口的程序。BexpAABexpAAexpTFTTFF順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)1)“當(dāng)”型循環(huán)2)直到型循環(huán)

結(jié)構(gòu)程序設(shè)計(jì):一種程序設(shè)計(jì)技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。第五章詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的目標(biāo):確定應(yīng)該怎樣具體地實(shí)471結(jié)構(gòu)程序設(shè)計(jì)經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇,當(dāng)型循環(huán)擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇+多分支,當(dāng)型循環(huán)+直到型循環(huán)修正的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇+多分支,當(dāng)型循環(huán)+直到型循環(huán),break結(jié)構(gòu)詳細(xì)設(shè)計(jì)的工具程序流程圖開(kāi)始或停止準(zhǔn)備選擇多分支選擇注釋預(yù)先定義的處理,子程序循環(huán)下界循環(huán)上界處理控制流1結(jié)構(gòu)程序設(shè)計(jì)經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇,當(dāng)型循482詳細(xì)設(shè)計(jì)的工具----盒圖(N_S圖)S1S2S3條件FTElse部分Then部分Case條件值1值2。。。值nCase1部分Case2部分Casen部分循環(huán)條件Do-While部分循環(huán)條件Do-Until部分A特點(diǎn):1)功能域(既一個(gè)特定控制結(jié)構(gòu)的作用域)明確2)不可能任意轉(zhuǎn)移控制3)很容易確定局部和全程數(shù)據(jù)的作用域4)很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)Nassi&Shneiderman2詳細(xì)設(shè)計(jì)的工具----盒圖(N_S圖)S1S2S3條件492詳細(xì)設(shè)計(jì)的工具----PAD圖P1P2P1P2條件CPnP2P1WHILECPUNTILCPdef順序選擇Case型多分支選擇當(dāng)型循環(huán)直到型循環(huán)語(yǔ)句標(biāo)號(hào)定義2詳細(xì)設(shè)計(jì)的工具----PAD圖P1P2P1P2條502詳細(xì)設(shè)計(jì)的工具----PAD圖P1P2P3P4CP5P2defP6P3P8CUntilC3UNTILC2P9P10PAD圖的主要優(yōu)點(diǎn):使用PAD符號(hào)設(shè)計(jì)的程序必然是結(jié)構(gòu)化的程序.PAD圖所描繪的程序結(jié)構(gòu)十分清晰.用PAD圖表現(xiàn)程序邏輯,易讀,易記,易懂.容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序.可用軟件工具實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換.即可以表示程序邏輯,也可以描繪數(shù)據(jù)結(jié)構(gòu).支持自頂向下,逐步求精方法的使用.2詳細(xì)設(shè)計(jì)的工具----PAD圖P1P2P3P4C512詳細(xì)設(shè)計(jì)的工具----判定表程序流程圖、N-S圖、PAD圖或過(guò)程設(shè)計(jì)語(yǔ)言(PDL)都不易清楚的描述含有多重嵌套的條件選擇。判定表可以清晰的表示復(fù)雜的條件組合與其對(duì)應(yīng)的處理之間的關(guān)系。例子假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)30公斤的行李。當(dāng)行李重量超過(guò)30公斤時(shí),對(duì)頭等艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其它艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判定表來(lái)表示與上述每種條件組合相對(duì)應(yīng)的動(dòng)作。所有條件條件組合矩陣與每種條件組合所對(duì)應(yīng)的動(dòng)作表所有可能的動(dòng)作列表國(guó)內(nèi)乘客頭等艙殘疾乘客行李≤30kg免費(fèi)(W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*8(W-30)*2TTTFTTTTTTTTTTFFFFFFFFFFFFFFFFFFF×××××××××2詳細(xì)設(shè)計(jì)的工具----判定表程序流程圖、N-S圖、522詳細(xì)設(shè)計(jì)的工具----判定樹(shù)行李費(fèi)算法行李重量W>30國(guó)內(nèi)乘客外國(guó)乘客頭等艙其它艙殘疾乘客----(W-30)*2正常乘客----(W-30)*4殘疾乘客----(W-30)*3正常乘客----(W-30)*6頭等艙其它艙殘疾乘客----(W-30)*4正常乘客----(W-30)*8殘疾乘客----(W-30)*6正常乘客----(W-30)*12行李重量W≤30免費(fèi)2詳細(xì)設(shè)計(jì)的工具----判定樹(shù)行李費(fèi)行李重量國(guó)內(nèi)乘客535詳細(xì)設(shè)計(jì)的工具----程序復(fù)雜度的定量度量利用軟件設(shè)計(jì)的基本原理和概念可以定性的衡量軟件模塊的質(zhì)量。但定量的度量程序復(fù)雜程度的方法很有價(jià)值:估算程序中軟件故障的數(shù)量;估算軟件開(kāi)發(fā)的工作量;比較兩個(gè)不同的設(shè)計(jì)或兩個(gè)不同算法的友劣;作為模塊規(guī)模的精確上限。程序定量度量方法是一個(gè)有待進(jìn)一步研究的重要領(lǐng)域。1)McCabe方法程序圖–把程序流程圖中每個(gè)處理符號(hào)都退化成一個(gè)點(diǎn),原來(lái)連接不同處理符號(hào)的箭頭變成連接不同點(diǎn)的有向弧,這樣得到的有向圖就稱為程序圖。程序圖僅僅描述程序內(nèi)部的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。入口點(diǎn):程序圖中開(kāi)始點(diǎn)后面的那個(gè)節(jié)點(diǎn)。出口點(diǎn):程序圖中停止點(diǎn)前面的那個(gè)節(jié)點(diǎn)。用McCabe方法度量得出的結(jié)果稱為程序的環(huán)形復(fù)雜度。程序的環(huán)形復(fù)雜度=強(qiáng)連通圖中線性無(wú)關(guān)的有向環(huán)的個(gè)數(shù)。5詳細(xì)設(shè)計(jì)的工具----程序復(fù)雜度的定量度量545詳細(xì)設(shè)計(jì)的工具----程序復(fù)雜度的定量度量2)環(huán)形復(fù)雜度的計(jì)算方法在一個(gè)強(qiáng)連通的有向圖中,線性無(wú)關(guān)環(huán)的個(gè)數(shù)由以下公式確定:V(G)=m–n+p其中:V(G)----有向圖G中的環(huán)數(shù)。m----有向圖G中的弧數(shù)。n----有向圖G中的節(jié)點(diǎn)數(shù)。p----有向圖G中的分離部分的數(shù)目。(對(duì)于正常的程序,p=1)一般來(lái)說(shuō),由于程序圖不是強(qiáng)連通的,要直接應(yīng)用以上結(jié)論到程序圖中還不行,因此要對(duì)程序圖進(jìn)行擴(kuò)展,從其出口點(diǎn)到入口點(diǎn)增畫一條虛弧,則原程序圖必然成為強(qiáng)連通圖。這樣就可以應(yīng)用以上公式來(lái)計(jì)算環(huán)形復(fù)雜度。3)環(huán)形復(fù)雜度的用途:程序的環(huán)形復(fù)雜度與程序控制流的復(fù)雜程度,也就是與程序結(jié)構(gòu)的復(fù)雜程度有關(guān)。程序內(nèi)分支數(shù)或循環(huán)個(gè)數(shù)增加時(shí),環(huán)形復(fù)雜度就增加,因此它是對(duì)測(cè)試難度的一種度量,也能對(duì)軟件最終的可靠性給出某種預(yù)測(cè)。McCabe發(fā)現(xiàn):環(huán)形復(fù)雜度高的程序往往是最困難、最容易出問(wèn)題的程序。實(shí)踐表明:模塊規(guī)模以V(G)≤10為宜。也就是說(shuō),V(G)=10是模塊規(guī)模的一個(gè)更科學(xué)更精確的上限。5詳細(xì)設(shè)計(jì)的工具----程序復(fù)雜度的定量度量2)環(huán)形555詳細(xì)設(shè)計(jì)的工具----程序復(fù)雜度的定量度量開(kāi)始K=0L=0TOTAL=0輸入ADowhileTOTAL≤1000andA≠0A>0TOTAL=TOTAL+AK=K+1輸入AL=L+1輸出K,L,TOTAL停止abcdefghijkabcdefghjikV(G)=13-11+1=313條弧11個(gè)節(jié)點(diǎn)1個(gè)獨(dú)立部分5詳細(xì)設(shè)計(jì)的工具----程序復(fù)雜度的定量度量開(kāi)始K=56第六章編碼程序設(shè)計(jì)語(yǔ)言:人與計(jì)算機(jī)通信的基本工具,指揮計(jì)算機(jī)按人的意志工作。1946—1954:機(jī)器語(yǔ)言和匯編語(yǔ)言,與計(jì)算機(jī)硬件操作一一對(duì)應(yīng)。1954:第一個(gè)高級(jí)語(yǔ)言FORTRAN語(yǔ)言。

高級(jí)語(yǔ)言的種類:基礎(chǔ)語(yǔ)言----Fortran,Basic,Cobol,Algol結(jié)構(gòu)化語(yǔ)言----Pl/1,Pascal,C,Ada專用語(yǔ)言-------特殊應(yīng)用如LISP,Prolog.

程序設(shè)計(jì)語(yǔ)言的特點(diǎn):名字說(shuō)明:類型說(shuō)明:初始化:程序?qū)ο螅ㄕZ(yǔ)句,存儲(chǔ),過(guò)程)的局部性:程序模塊:循環(huán)控制結(jié)構(gòu):分支選擇結(jié)構(gòu):異常處理:獨(dú)立編譯:選擇程序設(shè)計(jì)語(yǔ)言的原則:系統(tǒng)用戶的要求;可以使用的編譯程序;可以使用的軟件工具;工程規(guī)模;程序員的知識(shí);軟件可移植要求;軟件的應(yīng)用領(lǐng)域。在這個(gè)階段的任務(wù)是:把軟件設(shè)計(jì)的結(jié)果翻譯成計(jì)算機(jī)可以“理解”的形式—用計(jì)算機(jī)語(yǔ)言表示的程序。第六章編碼程序設(shè)計(jì)語(yǔ)言:人與計(jì)算機(jī)通信的基本工具,指57第六章編碼(續(xù))程序設(shè)計(jì)途徑寫程序的風(fēng)格程序內(nèi)部的文檔----恰當(dāng)?shù)囊饬x明確的標(biāo)識(shí)符,注解,程序的視覺(jué)組織(語(yǔ)句布局).數(shù)據(jù)說(shuō)明----次序標(biāo)準(zhǔn)化,歸類化.語(yǔ)句構(gòu)造----每個(gè)語(yǔ)句的構(gòu)造應(yīng)該簡(jiǎn)單、直接和易于理解。一般不要為了節(jié)省紙張多個(gè)語(yǔ)句寫在一行;避免復(fù)雜的條件測(cè)試;減少對(duì)“非”條件的測(cè)試;避免大量使用循環(huán)嵌套和條件嵌套;利用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀。輸入/輸出----效率----程序運(yùn)行時(shí)間、存儲(chǔ)器效率、輸入和輸出的效率。程序設(shè)計(jì)方法論程序設(shè)計(jì)自動(dòng)化----三種途徑(用戶需求形式化精確定義,組件技術(shù),范型)程序設(shè)計(jì)工具----編譯程序代碼管理系統(tǒng)第六章編碼(續(xù))程序設(shè)計(jì)途徑58第七章測(cè)試基本概念軟件測(cè)試的目標(biāo)或定義(G.Myers):1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案。3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。黑盒測(cè)試和白盒測(cè)試黑盒測(cè)試:已經(jīng)知道了軟件產(chǎn)品應(yīng)該具有的功能,通過(guò)測(cè)試來(lái)檢驗(yàn)是否每個(gè)功能都能正常使用。這種測(cè)試方法又稱功能測(cè)試。白盒測(cè)試:知道軟件產(chǎn)品內(nèi)部的工作過(guò)程,通過(guò)測(cè)試來(lái)檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行。這種測(cè)試方法又稱結(jié)構(gòu)測(cè)試。不論是每個(gè)功能或每個(gè)邏輯控制通路,如果對(duì)所有的情況都進(jìn)行測(cè)試,這樣的測(cè)試成為窮盡測(cè)試。窮盡測(cè)試在一般情況下是實(shí)際不可行的。例一、Sum(inta,intb,intc){return(a+b+c);}假定int類型為16位整數(shù)。需要測(cè)試216*216*216次。每次1ms,約要1萬(wàn)年循環(huán)20次各種組合,約520種例二:白盒測(cè)試第七章測(cè)試基本概念例一、Sum(inta597.1基本概念(1)軟件測(cè)試的步驟:模塊測(cè)試子系統(tǒng)測(cè)試系統(tǒng)測(cè)試平行運(yùn)行目的:保證每個(gè)模塊作為一個(gè)單元能夠正確運(yùn)行,又稱為單元測(cè)試集成測(cè)試、組裝測(cè)試、聯(lián)合測(cè)試;重點(diǎn)在于測(cè)試模塊之間的接口;將經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試;發(fā)現(xiàn)設(shè)計(jì)和編碼的錯(cuò)誤,驗(yàn)證系統(tǒng)是否滿足需求說(shuō)明所定義的功能及其動(dòng)態(tài)特性;也稱為集成測(cè)試。同時(shí)運(yùn)行新舊兩個(gè)系統(tǒng),并且對(duì)處理的結(jié)果進(jìn)行比較,以確定新系統(tǒng)是否滿足相關(guān)性能指標(biāo)。驗(yàn)收測(cè)試有用戶參加的系統(tǒng)測(cè)試;驗(yàn)證是否滿足用戶的需要。7.1基本概念(1)軟件測(cè)試的步驟:模塊測(cè)試子系統(tǒng)測(cè)試系統(tǒng)607.1基本概念(2)測(cè)試階段的信息流:測(cè)試軟件配置測(cè)試配置測(cè)試結(jié)果預(yù)期結(jié)果評(píng)價(jià)錯(cuò)誤錯(cuò)誤率數(shù)據(jù)調(diào)試可靠性模型正確可靠性預(yù)測(cè)測(cè)試與軟件開(kāi)發(fā)各個(gè)階段的關(guān)系軟件開(kāi)發(fā)過(guò)程是一個(gè)自頂向下,逐步細(xì)化的過(guò)程軟件計(jì)劃階段定義軟件作用域軟件需求分析建立軟件信息域、功能和性能需求、約束等軟件設(shè)計(jì)把設(shè)計(jì)用某種程序設(shè)計(jì)語(yǔ)言轉(zhuǎn)換成程序代碼測(cè)試過(guò)程是依相反順序安排的自底向上,逐步集成的過(guò)程。包括需求說(shuō)明書、設(shè)計(jì)說(shuō)明書、源程序清單等包括測(cè)試計(jì)劃和測(cè)試方案7.1基本概念(2)測(cè)試階段的信息流:測(cè)試軟件配置測(cè)試配置617.1基本概念(3)測(cè)試與軟件開(kāi)發(fā)各個(gè)階段的關(guān)系(示意圖)7.1基本概念(3)測(cè)試與軟件開(kāi)發(fā)各個(gè)階段的關(guān)系627.2單元測(cè)試(1)單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位─程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。1.單元測(cè)試的內(nèi)容在單元測(cè)試時(shí),測(cè)試者需要依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書和源程序清單,了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測(cè)試的測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。(1)模塊接口測(cè)試在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。測(cè)試項(xiàng)目包括:調(diào)用本模塊的輸入?yún)?shù)是否正確;本模塊調(diào)用子模塊時(shí)輸入給子模塊的參數(shù)是否正確;全局量的定義在各模塊中是否一致;

模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行通路出錯(cuò)處理通路影響上述各方面特性的邊界條件7.2單元測(cè)試(1)單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的637.2單元測(cè)試(2)

在做內(nèi)外存交換時(shí)要考慮:文件屬性是否正確;OPEN與CLOSE語(yǔ)句是否正確;緩沖區(qū)容量與記錄長(zhǎng)度是否匹配;在進(jìn)行讀寫操作之前是否打開(kāi)了文件;在結(jié)束文件處理時(shí)是否關(guān)閉了文件;正文書寫/輸入錯(cuò)誤,I/O錯(cuò)誤是否檢查并做了處理。

(2)局部數(shù)據(jù)結(jié)構(gòu)測(cè)試不正確或不一致的數(shù)據(jù)類型說(shuō)明使用尚未賦值或尚未初始化的變量錯(cuò)誤的初始值或錯(cuò)誤的缺省值變量名拼寫錯(cuò)或書寫錯(cuò)不一致的數(shù)據(jù)類型全局?jǐn)?shù)據(jù)對(duì)模塊的影響(3)路徑測(cè)試選擇適當(dāng)?shù)臏y(cè)試用例,對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試。應(yīng)當(dāng)設(shè)計(jì)測(cè)試用例查找由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致的錯(cuò)誤。對(duì)基本執(zhí)行路徑和循環(huán)進(jìn)行測(cè)試可以發(fā)現(xiàn)大量的路徑錯(cuò)誤.(4)錯(cuò)誤處理測(cè)試出錯(cuò)的描述是否難以理解出錯(cuò)的描述是否能夠?qū)﹀e(cuò)誤定位顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否相符對(duì)錯(cuò)誤條件的處理正確與否在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等7.2單元測(cè)試(2)在做內(nèi)外存交換時(shí)要考慮:(2)局部647.2單元測(cè)試(3)(5)邊界測(cè)試注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性。對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。如果對(duì)模塊運(yùn)行時(shí)間有要求的話,還要專門進(jìn)行關(guān)鍵路徑測(cè)試,以確定最壞情況下和平均意義下影響模塊運(yùn)行時(shí)間的因素2.單元測(cè)試的步驟代碼審查:組長(zhǎng)+程序設(shè)計(jì)、編寫、測(cè)試者模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其它模塊。

驅(qū)動(dòng)模塊(driver):調(diào)用測(cè)試單元的“主程序”,它接受測(cè)試數(shù)據(jù),把這些數(shù)據(jù)傳送給被測(cè)試的模塊并打印有關(guān)結(jié)果。

樁模塊(stub)──存根模塊:是被測(cè)試模塊單元所調(diào)用模塊的代替模塊,在模塊調(diào)用接口、相關(guān)數(shù)據(jù)處理、控制返回等方面對(duì)被代替模塊進(jìn)行“模擬”。驅(qū)動(dòng)模塊被測(cè)模塊樁模塊樁模塊樁模塊測(cè)試用例測(cè)試結(jié)果單元測(cè)試的測(cè)試環(huán)境7.2單元測(cè)試(3)(5)邊界測(cè)試2.單元測(cè)試的步驟代657.3集成測(cè)試(1)集成測(cè)試是組裝軟件的系統(tǒng)技術(shù);組裝測(cè)試、聯(lián)合測(cè)試通常,在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:在把各個(gè)模塊連接起來(lái)的時(shí)侯,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題;單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。在單元測(cè)試的同時(shí)可進(jìn)行組裝測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問(wèn)題,最終構(gòu)成要求的軟件系統(tǒng)。子系統(tǒng)的組裝測(cè)試特別稱為部件測(cè)試,它所做的工作是要找出組裝后的子系統(tǒng)與系統(tǒng)需求規(guī)格說(shuō)明之間的不一致。通常,把模塊組裝成為系統(tǒng)的方式有兩種一次性組裝方式:又稱為非漸增式測(cè)試;增殖式組裝方式:其中又分為自頂向下、自底向上和兩種方法混合測(cè)試方式。7.3集成測(cè)試(1)集成測(cè)試是組裝軟件的系統(tǒng)技術(shù);組裝測(cè)667.3集成測(cè)試(2)1.一次性組裝方式(bigbang)它是一種非增殖式組裝方式。也叫做整體拼裝。使用這種方式,首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。系統(tǒng)結(jié)構(gòu)圖單元測(cè)試整體組裝7.3集成測(cè)試(2)1.一次性組裝方式(bigbang)677.3集成測(cè)試(3)2.增殖式組裝方式這種組裝方式又稱漸增式組裝首先對(duì)一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng)在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題通過(guò)增殖逐步組裝成為要求的軟件系統(tǒng)。(1)自頂向下的增殖方式這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝。自頂向下的增殖方式在測(cè)試過(guò)程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。選用按深度方向組裝的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能。7.3集成測(cè)試(3)2.增殖式組裝方式這種組裝方式又稱漸687.3集成測(cè)試(4)(2)自底向上的增殖方式這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。在模塊的測(cè)試過(guò)程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。一般來(lái)講,一種方式的優(yōu)點(diǎn)是另一種方式的缺點(diǎn)。7.3集成測(cè)試(4)(2)自底向上的增殖方式這種組裝的697.3集成測(cè)試(5)非漸增式和漸增式測(cè)試方法的優(yōu)缺點(diǎn)比較:非漸增式方法要對(duì)每個(gè)模塊編寫驅(qū)動(dòng)模塊和樁模塊,工作量較大;而漸增式方法可以利用部分已測(cè)試過(guò)的模塊作為測(cè)試軟件;非漸增式方法發(fā)現(xiàn)模塊間的接口錯(cuò)誤較晚,而漸增式方法則要早一些;非漸增式方法發(fā)現(xiàn)錯(cuò)誤后較難定位;而漸增式方法則要容易一些;非漸增式方法可以并行測(cè)試所有模塊,可充分利用人力,加快工程進(jìn)度;漸增式方法接近全真運(yùn)行環(huán)境,需要較多的測(cè)試運(yùn)行時(shí)間,但對(duì)程序模塊的測(cè)試較為徹底。7.4驗(yàn)收測(cè)試—驗(yàn)證軟件的有效性軟件的有效性:如果軟件的功能和性能滿足用戶的需求,則軟件是有效的;

軟件有效性的標(biāo)準(zhǔn):需求分析階段所產(chǎn)生的準(zhǔn)確的系統(tǒng)需求文檔;

測(cè)試方法:一般用黑盒方法;

結(jié)果:功能和性能均與用戶要求一致,軟件是可以接受的;否則軟件是不可接受的。7.3集成測(cè)試(5)非漸增式和漸增式測(cè)試方法的優(yōu)缺點(diǎn)比較:707.5設(shè)計(jì)測(cè)試方案測(cè)試方案:包括預(yù)定要測(cè)試的功能,應(yīng)該輸入的測(cè)試數(shù)據(jù)和預(yù)期的結(jié)果。其中最困難的設(shè)計(jì)測(cè)試用的輸入數(shù)據(jù)(稱為測(cè)試用例)。測(cè)試用例設(shè)計(jì)技術(shù):黑盒測(cè)試的等價(jià)劃分、邊界值分析、錯(cuò)誤推測(cè)法;白盒測(cè)試的邏輯覆蓋法;1.邏輯覆蓋語(yǔ)句覆蓋判定覆蓋條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋。邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。7.5設(shè)計(jì)測(cè)試方案測(cè)試方案:包括預(yù)定要測(cè)試的功能,應(yīng)該輸入71語(yǔ)句覆蓋(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFbcePROCEDUREExample(A,B:real;X:real);BeginIF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR(X>1)THENX:=X+1END;a1Sd234567I.A=2,B=0,X=4----sacbed語(yǔ)句覆蓋所有的語(yǔ)句至少執(zhí)行一次!語(yǔ)句覆蓋(A>1)and(B=0)(A=2)or72判定覆蓋(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFbcea1Sd234567判定覆蓋每個(gè)判定的每種可能都至少執(zhí)行一次!即每個(gè)判定的每個(gè)分支都至少執(zhí)行一次!I:A=3,B=0,X=3:sacbdII:A=2,B=1,X=1:sabed

滿足判定覆蓋的測(cè)試用例一定滿足語(yǔ)句覆蓋:判定覆蓋比語(yǔ)句覆蓋強(qiáng)。判定覆蓋(A>1)and(B=0)(A=2)or73條件覆蓋(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFbcea1Sd234567條件覆蓋每個(gè)語(yǔ)句至少執(zhí)行一次,而且判定表達(dá)式中的每個(gè)條件都要取得各種可能的結(jié)果。(A>1)(A≤1)(B=0)(B≠0)(A=2)(A≠2)(X>1)(X≤1)II:A=1,B=1,X=1:sabd

條件覆蓋一般情況下比判定覆蓋要強(qiáng),但是也有滿足條件覆蓋但不能滿足判定覆蓋的情況。I:A=2,B=0,X=4:sacbedI:A=2,B=0,X=1:sacbedII:A=1,B=1,X=1:sabed條件覆蓋(A>1)and(B=0)(A=2)or74判定/條件覆蓋(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFbcea1234567Sd

判定條件不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋;事實(shí)上同時(shí)滿足這兩種標(biāo)準(zhǔn)的判定/條件覆蓋也不會(huì)比條件覆蓋更強(qiáng)。(A>1)(A≤1)(B=0)(B≠0)(A=2)(A≠2)(X>1)(X≤1)II:A=1,B=1,X=1:sabdI:A=2,B=0,X=4:sacbed測(cè)試用例I,II既滿足判定覆蓋也滿足條件覆蓋的要求。嚴(yán)格來(lái)講,合適的條件覆蓋測(cè)試用例設(shè)計(jì)應(yīng)該作到滿足判定/條件覆蓋的標(biāo)準(zhǔn):判定/條件覆蓋并不比條件覆蓋更強(qiáng)。判定/條件覆蓋(A>1)and(B=0)(A=2)75條件組合覆蓋(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFba1234567Sd條件組合覆蓋要求選取足夠多的測(cè)試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。(A>1)(A≤1)(B=0)(B≠0)(A=2)(A≠2)(X>1)(X≤1)I.A=2,B=0,X=4II.A=2,B=1,X=1III.A=1,B=0,X=2IV.A=1,B=1,X=1

滿足條件組合覆蓋標(biāo)準(zhǔn)的測(cè)試數(shù)據(jù),也一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋標(biāo)準(zhǔn)。I:sacbedII:sabedIII:sabedIV:sabd覆蓋路徑條件組合覆蓋(A>1)and(B=0)(A=2)or76點(diǎn)覆蓋:如果連通圖G的子圖G′是連通的,而且包含G的所有節(jié)點(diǎn),則稱G′是G的點(diǎn)覆蓋。與語(yǔ)句覆蓋標(biāo)準(zhǔn)相同。邊覆蓋:如果連通圖G的子圖G′是連通的,而且包含G的所有邊,則稱G′是G的邊覆蓋。通常與判定覆蓋標(biāo)準(zhǔn)相同。路徑覆蓋:選取足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次(如果程序圖中有環(huán),則要求每個(gè)環(huán)至少經(jīng)過(guò)一次)。路徑覆蓋是較強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn)。I:A=1,B=1,X=1(1-2-3);II:A=1,B=1,X=2(1-2-6-7)III:A=3,B=0,X=1(1-4-5-3);IV:A=2,B=0,X=4(1-4-5-6-7)1234567點(diǎn)覆蓋:如果連通圖G的子圖G′是連通的,而且包含G77設(shè)計(jì)測(cè)試方案—黑盒測(cè)試技術(shù)

測(cè)試人員將程序看成是一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是什么,只要檢查程序是符合它的“功能說(shuō)明”。2等價(jià)劃分(1)

等價(jià)分類法是將輸入數(shù)據(jù)的可能值分成若干“等價(jià)類”,每一類以一個(gè)代表性的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,這個(gè)數(shù)據(jù)就等價(jià)于這一類中的其它數(shù)據(jù)。該法的關(guān)鍵在于如何將輸入數(shù)據(jù)分類。例如:輸入的數(shù)據(jù)范圍是1~999,我們可以劃分三類:x<1,1≦x≦999,x>999N個(gè)等價(jià)類每個(gè)等價(jià)類中的一組具代表性的測(cè)試數(shù)據(jù)設(shè)計(jì)測(cè)試方案—黑盒測(cè)試技術(shù)

測(cè)試人員將程序看成是一個(gè)“782等價(jià)劃分(2)把數(shù)字串轉(zhuǎn)換成整數(shù)TypeShortStr=array[1..6]ofchar;FunctionStrToInt(dstr:ShortStr):integer;

無(wú)效輸入的等價(jià)類非法輸出的等價(jià)類

1—6個(gè)數(shù)字字符組成的數(shù)字串(最高位不是零);最高位是零的數(shù)字串;最高位數(shù)字左鄰是負(fù)號(hào)的數(shù)字串;

空字符串(全是空格);左部填充的字符既不是零也不是空格;最高位數(shù)字右邊由數(shù)字和空格混合組成;最高位數(shù)字右邊由數(shù)字和其他字符混合組成;負(fù)號(hào)與最高位數(shù)字之間有空格。

計(jì)算機(jī)能表示的最小負(fù)整數(shù)和零之間的負(fù)整數(shù);零;計(jì)算機(jī)能表示的最大正整數(shù)和零之間的正整數(shù);有效輸入的等價(jià)類合法輸出的等價(jià)類比計(jì)算機(jī)能表示的最小負(fù)整數(shù)還小的負(fù)整數(shù);計(jì)算機(jī)能表示的最大正整數(shù)還大的正整數(shù);2等價(jià)劃分(2)把數(shù)字串轉(zhuǎn)換成整數(shù)Type792等價(jià)劃分(3)等價(jià)類說(shuō)明測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果備注1-6個(gè)數(shù)字的數(shù)字串11最高位是零的數(shù)字串0000011最高位數(shù)字左鄰是負(fù)號(hào)的數(shù)字串-00001-1最高位是零的數(shù)字串0000000太小的負(fù)整數(shù)-47561錯(cuò)誤—無(wú)效輸入(負(fù)數(shù))太大的正整數(shù)132767錯(cuò)誤—無(wú)效輸入(正數(shù))空字符串----6個(gè)空格

錯(cuò)誤-沒(méi)有數(shù)字字符串左邊字符既不是空格也不是零*+kgh1錯(cuò)誤—填充錯(cuò)最高位數(shù)字后面有空格12錯(cuò)誤—無(wú)效輸入最高位數(shù)字后面有其他字符1****2錯(cuò)誤—無(wú)效輸入負(fù)號(hào)和最高位數(shù)字之間有空格-12錯(cuò)誤—負(fù)號(hào)位置錯(cuò)2等價(jià)劃分(3)等價(jià)類說(shuō)明測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)803邊界值分析經(jīng)驗(yàn)表明:處理邊界情況時(shí)程序最容易發(fā)生錯(cuò)誤;下標(biāo)、數(shù)據(jù)結(jié)構(gòu)、循環(huán)等邊界。對(duì)等價(jià)劃分法中的不同等價(jià)類的邊界情況進(jìn)行重點(diǎn)測(cè)試;等價(jià)類說(shuō)明測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果備注使輸出剛好等于最小的負(fù)整數(shù)-32768-32768使輸出剛好等于最大的正整數(shù)3276732767使輸出剛剛小于最小的負(fù)整數(shù)-32769錯(cuò)誤—無(wú)效輸入(負(fù)數(shù))使輸出剛剛大于最大的正整數(shù)32768錯(cuò)誤—無(wú)效輸入(正數(shù))4錯(cuò)誤推測(cè)不同類型不同特點(diǎn)的程序通常有一些特殊的容易出錯(cuò)的情況;有時(shí)測(cè)試數(shù)據(jù)的組合數(shù)量也是非常多,難于覆蓋所有情況;經(jīng)驗(yàn)數(shù)據(jù)3邊界值分析經(jīng)驗(yàn)表明:處理邊界情況時(shí)程序最容易815.實(shí)用測(cè)試策略(1)例:程序Triangle讀入三個(gè)整數(shù)值,這三個(gè)整數(shù)代表同一個(gè)三角形三條邊的長(zhǎng)度,程序根據(jù)這三個(gè)值判斷三角形屬于不等邊、等腰或等邊三角形中的那一種。abcTrianglea,b,c三角形的類型?黑盒測(cè)試(等價(jià)劃分)

正常的三角形(a,b,c)不等邊三角形(8,10,12);(10,8,12);(10,12,8)等邊三角形(10,10,10)等腰三角形(10,10,17);(10,17,10);(17,10,10)不能構(gòu)成三角形的非法數(shù)據(jù)(a,b,c)a+b<c(10,10,21)b+c<a(21,10,10)c+a<b(10,21,10)退化的三角形(a,b,c)不等邊三角形(10,6,4)等邊三角形(0,0,0)等腰三角形(10,5,5);(5,10,5);(10,5,5)黑盒測(cè)試(邊界值分析)

一條邊長(zhǎng)度為零的情況(0,10,12);(10,0,12);(10,12,0)兩條邊的長(zhǎng)度為零的情況(0,0,17);(0,17,0);(17,0,0)三條邊的長(zhǎng)度為零的情況(0,0,0)輸入數(shù)據(jù)中包含負(fù)整數(shù)(-10,-10,-10)……輸入數(shù)據(jù)不全(不足三個(gè)正整數(shù))(10,-,-)……輸入數(shù)據(jù)中包含非整數(shù)型的數(shù)據(jù)(a,b,c)(1.2,6e-4,7.8)……黑盒測(cè)試(錯(cuò)誤推測(cè))5.實(shí)用測(cè)試策略(1)例:程序Triangle讀入三個(gè)整數(shù)825.實(shí)用測(cè)試策略(2)starta<b+c?b<a+c?c<a+b?a=b?b=c?印出“不是三角形”印出“等邊三角形”印出“等腰三角形”印出“不等邊三角形”a=c?b=c?FTFFTTTTFFFFTTstop程序流程圖程序圖5.實(shí)用測(cè)試策略(2)starta<b+c?b<a+c?c83軟件工程導(dǎo)論白城師范學(xué)院計(jì)算機(jī)系2005年3月軟件工程導(dǎo)論白城師范學(xué)院計(jì)算機(jī)系84第一章軟件危機(jī)和軟件工程(3)軟件危機(jī)的表現(xiàn)開(kāi)發(fā)成本難以控制,進(jìn)度不可預(yù)計(jì);軟件系統(tǒng)的質(zhì)量和可靠性很差,難以滿意;軟件文檔相當(dāng)缺乏,軟件系統(tǒng)不可維護(hù);軟件開(kāi)發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應(yīng)求。軟件產(chǎn)品成本十分昂貴。軟件危機(jī)產(chǎn)生的原因軟件本身的特點(diǎn):

--軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,具有高度的抽象性;--軟件是一個(gè)邏輯上復(fù)雜而規(guī)模上龐大的系統(tǒng),涉及技術(shù)、管理等多方面的問(wèn)題;--軟件的生產(chǎn)方式與硬件明顯不同:產(chǎn)品的質(zhì)量控制在設(shè)計(jì)和制造階段的不同;產(chǎn)品的生產(chǎn)方式不同;設(shè)計(jì)和制造階段的資金和人力投入、技術(shù)復(fù)雜度不同;--軟件的運(yùn)行和維護(hù)階段,沒(méi)有傳統(tǒng)意義上的機(jī)械磨損、老化問(wèn)題。--軟件與硬件有關(guān),對(duì)軟件有可移植性的要求。--軟件工作涉及許多社會(huì)因素。對(duì)軟件開(kāi)發(fā)與維護(hù)存

溫馨提示

  • 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)論