版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件開發(fā)與軟件維護(hù)第十一章軟件開發(fā)與軟件維護(hù)11.1軟件工程概述11.2軟件生存周期11.3軟件需求11.4軟件設(shè)計(jì)11.5軟件構(gòu)造11.6軟件測試11.7軟件維護(hù)大學(xué)計(jì)信院自動(dòng)化系11.1軟件工程概述11.1.1程序開發(fā)與軟件工程11.1.2軟件工程概述南大學(xué)計(jì)信院自動(dòng)化系11.1.1程序開發(fā)和軟件工程程序開發(fā)是軟件開發(fā)的核心,建立計(jì)算模型、設(shè)計(jì)程序、編寫代碼、測試程序四個(gè)步驟統(tǒng)稱程序設(shè)計(jì),簡稱編程?!败浖C(jī)”的產(chǎn)生。軟件工程思想,以系統(tǒng)工程的方法高效、快速地生產(chǎn)大量合格的軟件。南大學(xué)計(jì)信院自動(dòng)化系
Windows95有1000萬行代碼
Windows2000有5000萬行代碼例:Exchange2000和Windows2000開發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項(xiàng)目經(jīng)理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人南大學(xué)計(jì)信院自動(dòng)化系軟件危機(jī)的主要特征軟件開發(fā)周期大大超過規(guī)定日期;軟件開發(fā)成本嚴(yán)重超標(biāo);軟件質(zhì)量難于保證。南大學(xué)計(jì)信院自動(dòng)化系軟件工程的產(chǎn)生1968年由NATO(北大西洋公約組織)在德國的學(xué)術(shù)會(huì)議上,首先提出了“軟件工程”概念?!叭魏诬浖紤?yīng)當(dāng)和其它產(chǎn)業(yè)的產(chǎn)品一樣,由專業(yè)人員制作(軟件中是系統(tǒng)分析員、高級(jí)程序員、程序員),以系統(tǒng)的、工程的方法開發(fā)制作,并提供全方位的售后服務(wù)管理(不能因開發(fā)者離開、調(diào)走而無人管理)?!蹦洗髮W(xué)計(jì)信院自動(dòng)化系軟件工程的定義IEEE【IEE93】給出了一個(gè)更加綜合的定義:
“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中?!蹦洗髮W(xué)計(jì)信院自動(dòng)化系系統(tǒng)方法是任何產(chǎn)品都有其創(chuàng)意、開發(fā)、生產(chǎn)、調(diào)試、使用、維護(hù)、退役的全過程,而不是只考慮其中的一部分。如果按照系統(tǒng)的規(guī)范和標(biāo)準(zhǔn)進(jìn)行開發(fā),就可能大幅度提高軟件生產(chǎn)力,就如同工業(yè)生產(chǎn)取代手工作坊。 南大學(xué)計(jì)信院自動(dòng)化系工程方法指要有工程規(guī)范和工程管理。工程產(chǎn)品 不要求絕對完善,只要求在給定時(shí)間、給定的經(jīng)費(fèi)和當(dāng)前技術(shù)條件下符合規(guī)范的要求的最佳。工程管理要考慮到可行性、計(jì)劃性、投入/產(chǎn)出、費(fèi)用/效益。南大學(xué)計(jì)信院自動(dòng)化系軟件工程以系統(tǒng)工程的方法制作軟件產(chǎn)品軟件的系統(tǒng)(生存期)模型與此模型相對應(yīng)的各種規(guī)范和標(biāo)準(zhǔn)為達(dá)到這些規(guī)范、標(biāo)準(zhǔn)的方法和工具軟件生產(chǎn)、交付、使用、維護(hù)的全面管理南大學(xué)計(jì)信院自動(dòng)化系軟件開發(fā)方法學(xué)軟件開發(fā)方法學(xué)的研究是軟件技術(shù)發(fā)展最活躍的因素。所謂的方法學(xué),是一組規(guī)范了的方法,按這組方法執(zhí)行,可以得到較為理想的結(jié)果。把這組方法標(biāo)準(zhǔn)化就是軟件開發(fā)標(biāo)準(zhǔn)。南大學(xué)計(jì)信院自動(dòng)化系軟件工程技術(shù)的兩個(gè)特點(diǎn)
強(qiáng)調(diào)規(guī)范化強(qiáng)調(diào)文檔化南大學(xué)計(jì)信院自動(dòng)化系軟件的工業(yè)化生產(chǎn)過程應(yīng)具備的特點(diǎn):明確的工作步驟詳細(xì)具體的規(guī)范化文檔明確的質(zhì)量評價(jià)標(biāo)準(zhǔn)“一個(gè)好的工業(yè),應(yīng)有一套良好的標(biāo)準(zhǔn)來配套”南大學(xué)計(jì)信院自動(dòng)化系軟件產(chǎn)品的標(biāo)準(zhǔn)化軟件開發(fā)過程的標(biāo)準(zhǔn)化南大學(xué)計(jì)信院自動(dòng)化系軟件工程與編程軟件工程是一門學(xué)科,一種科學(xué)理論來指導(dǎo)軟件系統(tǒng)開發(fā),標(biāo)準(zhǔn)化,自動(dòng)化的過程考慮如何分解一個(gè)系統(tǒng),以便各人分工開發(fā);考慮如何說明每個(gè)部分的規(guī)格要求;怎樣才能易于維護(hù)單純的代碼編寫是軟件工程發(fā)展的前身是軟件工程中占據(jù)很少時(shí)間和空間的一部分南大學(xué)計(jì)信院自動(dòng)化系軟件工作的范圍只考慮編寫程序
涉及整個(gè)軟件生存周期擴(kuò)展到南大學(xué)計(jì)信院自動(dòng)化系開發(fā)軟件不僅僅是編程南大學(xué)計(jì)信院自動(dòng)化系11.1.2軟件工程概述軟件工程是一門交叉學(xué)科軟件工程與一般工程的差異軟件工程知識(shí)結(jié)構(gòu)軟件工程教學(xué)課程目標(biāo)南大學(xué)計(jì)信院自動(dòng)化系軟件工程是一門交叉學(xué)科軟件開發(fā)技術(shù):軟件開發(fā)方法學(xué)軟件開發(fā)過程軟件工具和軟件工程環(huán)境軟件工程管理:軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件心理學(xué)
軟件工程所包含的內(nèi)容不是一成不變的,隨著人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。應(yīng)用發(fā)展的眼光看待它。南大學(xué)計(jì)信院自動(dòng)化系軟件工程與一般工程的差異軟件是邏輯產(chǎn)品而不是實(shí)物產(chǎn)品軟件的功能依賴于硬件和軟件的運(yùn)行環(huán)境以及對它的操作軟件設(shè)計(jì)的復(fù)雜性軟件特征:功能的多樣性實(shí)現(xiàn)的多樣性能見度低軟件結(jié)構(gòu)合理性差智力密集及知識(shí)產(chǎn)權(quán)保護(hù)南大學(xué)計(jì)信院自動(dòng)化系軟件工程知識(shí)結(jié)構(gòu)軟件需求軟件設(shè)計(jì)軟件構(gòu)造軟件測試軟件維護(hù)軟件配置管理軟件工程管理軟件工程過程軟件工程工具和方法軟件質(zhì)量南大學(xué)計(jì)信院自動(dòng)化系“軟件工程”課程與其它軟件專業(yè)課的區(qū)別(1)立足于系統(tǒng)的整體。(2)講授系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、測試及維護(hù)的理論和方法。(3)構(gòu)筑一個(gè)軟件系統(tǒng),實(shí)踐軟件開發(fā)全過程。南大學(xué)計(jì)信院自動(dòng)化系“軟件工程”課程教學(xué)的目標(biāo)轉(zhuǎn)變對軟件的認(rèn)識(shí):上升程序系統(tǒng)轉(zhuǎn)變思維定式:上升程序員系統(tǒng)工程師(系統(tǒng)分析員)南大學(xué)計(jì)信院自動(dòng)化系軟件開發(fā)模型是軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。它能直觀表達(dá)軟件開發(fā)全過程,明確規(guī)定要完成的主要活動(dòng)、任務(wù)和開發(fā)策略。軟件開發(fā)模型也常稱為:軟件過程模型、軟件生存周期模型、軟件工程范型。11.1.3軟件開發(fā)模型南大學(xué)計(jì)信院自動(dòng)化系可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試定義階段開發(fā)階段維護(hù)階段1瀑布模型(WaterfallModel)南大學(xué)計(jì)信院自動(dòng)化系早期的瀑布模型即為線性順序模型。它一次走完分析、設(shè)計(jì)、編碼測試這些框架活動(dòng)質(zhì)量保證、文檔制作、正式技術(shù)評審、配置管理等傘形活動(dòng)穿插其中特點(diǎn)是嚴(yán)格把關(guān)、錯(cuò)誤盡早發(fā)現(xiàn)并消滅在前一階段南大學(xué)計(jì)信院自動(dòng)化系2原型模型(快速原型模型)原型范型用戶測試運(yùn)行原型建造/修改原型
聽取用戶意見南大學(xué)計(jì)信院自動(dòng)化系基本思想是盡早拿出樣板讓用戶試用,修改或補(bǔ)充了需求再接著開發(fā)它基本上按瀑布模型劃分階段:分析—>設(shè)計(jì)—>編碼—>測試—>交付,設(shè)計(jì)注重上層,找一個(gè)或幾個(gè)最有代表性的子系統(tǒng)快速編碼測試,所以也叫快速原型(rapidprototyping)原型增加了開發(fā)的工作量,增加了管理上的困難。特別是原型過程步驟事先難于計(jì)劃,不知道應(yīng)反復(fù)幾次,從哪里開始反復(fù),預(yù)算進(jìn)度均難于控制。但它具有切合實(shí)際,成功率較高的優(yōu)點(diǎn),故至今仍在使用。南大學(xué)計(jì)信院自動(dòng)化系采用原型模型的軟件生存周期分析定義系統(tǒng)需求生成原型系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)編碼測試運(yùn)行和維護(hù)原型化含原型化的軟件生存期南大學(xué)計(jì)信院自動(dòng)化系3螺旋模型南大學(xué)計(jì)信院自動(dòng)化系把軟件過程描繪為用戶通信->計(jì)劃->風(fēng)險(xiǎn)分析->做工程(原型)->構(gòu)造與發(fā)布->用戶評審六種活動(dòng)。對大型新產(chǎn)品特別有效,從概念開發(fā)->最初產(chǎn)品開發(fā)->產(chǎn)品增強(qiáng)開發(fā)->產(chǎn)品維護(hù)改進(jìn)。南大學(xué)計(jì)信院自動(dòng)化系4構(gòu)件組裝模型這類軟件的開發(fā)過程也采用螺旋模型,只是把作工程和構(gòu)造及發(fā)布合成一個(gè)步驟。風(fēng)險(xiǎn)分析后,轉(zhuǎn)入客戶評價(jià)。步驟如下:(1)先標(biāo)識(shí)本項(xiàng)目需要什么構(gòu)件;(2)庫中查找構(gòu)件或相似的構(gòu)件;(3)如果可用轉(zhuǎn)[4]否則自行開發(fā)或修改,確認(rèn)后入庫;(4)構(gòu)造為新系統(tǒng)作第m次迭代;(5)測試、確認(rèn)。南大學(xué)計(jì)信院自動(dòng)化系5快速應(yīng)用開發(fā)模型RAD有以下步驟:(1)業(yè)務(wù)模型:以什么信息驅(qū)動(dòng)業(yè)務(wù)過程運(yùn)作?要生成什么信息?誰生成它?信息流的去向?由誰處理?可以輔之以數(shù)據(jù)流圖(2)數(shù)據(jù)模型:為支持業(yè)務(wù)過程的數(shù)據(jù)流,找數(shù)據(jù)對象集合,定義數(shù)據(jù)對象屬性,與其它數(shù)據(jù)對象的關(guān)系構(gòu)成數(shù)據(jù)模型,可輔之以E-R圖。(3)做處理模型:如何使數(shù)據(jù)對象在信息流中完成各業(yè)務(wù)功能。描述數(shù)據(jù)對象的增加、修改、刪除、查找。即細(xì)化數(shù)據(jù)流圖中的處理框。南大學(xué)計(jì)信院自動(dòng)化系(4)應(yīng)用程序生成:利用第四代語言(4GL)寫出處理程序,重用已有構(gòu)件或創(chuàng)建新的可重用構(gòu)件,利用環(huán)境提供的工具,自動(dòng)生成,構(gòu)造出整個(gè)的應(yīng)用系統(tǒng)。(5)測試與交付,由于大量重用,一般只作總體測試,但新創(chuàng)建的構(gòu)件還是要測試的南大學(xué)計(jì)信院自動(dòng)化系6其它模型 除了上述五種模型而外,還有并發(fā)開發(fā)模型和形式方法模型,分別針對并發(fā)程序系統(tǒng)和需要作數(shù)學(xué)驗(yàn)證或函數(shù)式,邏輯式程序系統(tǒng)而設(shè)的。南大學(xué)計(jì)信院自動(dòng)化系11.2軟件生存周期南大學(xué)計(jì)信院自動(dòng)化系11.3軟件需求11.3.1需求工程11.3.2導(dǎo)出需求11.3.3分析模型南大學(xué)計(jì)信院自動(dòng)化系(維護(hù)報(bào)告)問題定義編碼需求分析設(shè)計(jì)可行性研究運(yùn)行與維護(hù)測試開發(fā)時(shí)期運(yùn)行時(shí)期計(jì)劃時(shí)期(目標(biāo)與范圍說明書)(可行性論證論告)(測試報(bào)告)(程序)(設(shè)計(jì)文檔)(需求說明書)軟件需求分析是軟件生命期中重要的一步,也是決定性的一步。南大學(xué)計(jì)信院自動(dòng)化系11.3.1需求工程
對系統(tǒng)應(yīng)該提供的服務(wù)和所受到的約束進(jìn)行理解、分析、建立文檔、檢驗(yàn)的過程——需求工程。需求工程過程定義:過程模型(按什么步驟得到需求文檔)、過程執(zhí)行者、過程支持和管理(需要的設(shè)備條件、資金、計(jì)劃)、過程質(zhì)量和改進(jìn)(本過程的質(zhì)量目標(biāo),改進(jìn)措施)。南大學(xué)計(jì)信院自動(dòng)化系導(dǎo)出需求:需求來源、導(dǎo)出技術(shù)。需求分析:需求分類、概念建模、體系結(jié)構(gòu)的初步設(shè)計(jì)、需求分配(按設(shè)想的體系機(jī)構(gòu)為子系統(tǒng),大模塊寫出需求,把總的需求分配到各個(gè)子部分)、需求磋商。對于風(fēng)險(xiǎn)較大的新技術(shù)要做關(guān)鍵機(jī)制的原型開發(fā)。寫出需求規(guī)格說明。數(shù)據(jù)需求、功能需求、質(zhì)量需求、管理需求、交付物需求。需求確認(rèn)。模型確認(rèn)、原型確認(rèn)、需求確認(rèn)。需求管理:需求追蹤、需求變更管理。南大學(xué)計(jì)信院自動(dòng)化系需求工程過程南大學(xué)計(jì)信院自動(dòng)化系11.3.2導(dǎo)出需求(1)問題識(shí)別(2)分析與綜合(3)編制需求分析文檔(4)需求分析評審南大學(xué)計(jì)信院自動(dòng)化系需求分析流程需求分析流程南大學(xué)計(jì)信院自動(dòng)化系(1)問題識(shí)別從系統(tǒng)的角度來理解軟件并評審軟件范圍是否恰當(dāng)確定對目標(biāo)系統(tǒng)的綜合要求,即軟件的需求提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)南大學(xué)計(jì)信院自動(dòng)化系軟件的需求包括:功能需求性能需求環(huán)境需求可靠性需求安全保密要求用戶界面需求資源使用需求成本消耗需求開發(fā)進(jìn)度需求預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)南大學(xué)計(jì)信院自動(dòng)化系問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利地對問題進(jìn)行分析。南大學(xué)計(jì)信院自動(dòng)化系(2)分析與綜合從信息流和信息結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。南大學(xué)計(jì)信院自動(dòng)化系(3)編制需求分析階段的文檔軟件需求說明書數(shù)據(jù)要求說明書初步的用戶手冊修改、完善與確定軟件開發(fā)實(shí)施計(jì)劃南大學(xué)計(jì)信院自動(dòng)化系南大學(xué)計(jì)信院自動(dòng)化系南大學(xué)計(jì)信院自動(dòng)化系(4)需求分析評審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準(zhǔn)確反映用戶要求;與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述;被開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;所有圖表是否清楚,在不補(bǔ)充說明時(shí)能否理解;主要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說明;設(shè)計(jì)的約束條件或限制條件是否符合實(shí)際;開發(fā)的技術(shù)風(fēng)險(xiǎn)是什么;是否考慮過軟件需求的其它方案;是否考慮過將來可能會(huì)提出的軟件需求;是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對系統(tǒng)定義是否成功進(jìn)行確認(rèn)。南大學(xué)計(jì)信院自動(dòng)化系11.3.3分析模型分析階段最重要的工作就是建模。系統(tǒng)模型的建立是對現(xiàn)實(shí)世界中存在的有關(guān)實(shí)體和活動(dòng)的抽象和精化,包括觀察分析、模型表示和模型檢查三個(gè)階段。南大學(xué)計(jì)信院自動(dòng)化系11.4軟件設(shè)計(jì)軟件設(shè)計(jì)分為兩部分:
1、頂層(總體、概要)設(shè)計(jì)
確定系統(tǒng)的整體體系結(jié)構(gòu)、模塊結(jié)構(gòu)
2、詳細(xì)設(shè)計(jì)
給出軟件模塊結(jié)構(gòu)中各模塊的內(nèi)部過程描述(算法)南大學(xué)計(jì)信院自動(dòng)化系11.4.1軟件設(shè)計(jì)的基本原則抽象:類是實(shí)例的抽象,過程是程序的抽象,類型是變量的抽象。求精:為抽象增加具體的細(xì)節(jié)。分解/模塊化:將系統(tǒng)分解為相對獨(dú)立的模塊化。數(shù)據(jù)隱藏:接口中數(shù)據(jù)傳遞越少越好,不是必須的數(shù)據(jù)盡量放在模塊內(nèi)部。南大學(xué)計(jì)信院自動(dòng)化系模塊化模塊化:就是把系統(tǒng)劃分為若干個(gè)模塊,從而獲得滿足問題需要的一個(gè)解的過程。模塊:是指整個(gè)軟件被劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊。這些模塊可以被組裝起來以滿足整個(gè)問題的需求。把問題/子問題的分解與軟件開發(fā)中的系統(tǒng)/子系統(tǒng)或系統(tǒng)/模塊對應(yīng)起來,就能夠把一個(gè)大而復(fù)雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結(jié)構(gòu)。南大學(xué)計(jì)信院自動(dòng)化系11.4.2設(shè)計(jì)模型系統(tǒng)設(shè)計(jì)的四方面內(nèi)容:體系結(jié)構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)、用戶界面設(shè)計(jì)。如果將軟件系統(tǒng)比喻為人體,那么:(1)體系結(jié)構(gòu)就如同人的骨架。(2)模塊就如同人的器官,具有特定的功能。(3)數(shù)據(jù)結(jié)構(gòu)與算法就如同人的血脈和神經(jīng),它讓器官具有生命并能發(fā)揮功能。數(shù)據(jù)結(jié)構(gòu)與算法分布在體系結(jié)構(gòu)和模塊中,它將協(xié)調(diào)系統(tǒng)的各個(gè)功能。(4)用戶界面就如同人的外表。南大學(xué)計(jì)信院自動(dòng)化系體系結(jié)構(gòu)是軟件系統(tǒng)中最本質(zhì)的東西:(1)體系結(jié)構(gòu)是對復(fù)雜事物的一種抽象。良好的體系結(jié)構(gòu)是普遍適用的,它可以高效地處理多種多樣的個(gè)體需求。(2)體系結(jié)構(gòu)在一定的時(shí)間內(nèi)保持穩(wěn)定。良好的體系結(jié)構(gòu)意味著普適、高效和穩(wěn)定。南大學(xué)計(jì)信院自動(dòng)化系模塊設(shè)計(jì)在設(shè)計(jì)好軟件的體系結(jié)構(gòu)后,就已經(jīng)在宏觀上明確了各個(gè)模塊應(yīng)具有什么功能,應(yīng)放在體系結(jié)構(gòu)的哪個(gè)位置。習(xí)慣地從功能上劃分模塊,保持“功能獨(dú)立”是模塊化設(shè)計(jì)的基本原則。因?yàn)椋肮δ塥?dú)立”的模塊可以降低開發(fā)、測試、維護(hù)等階段的代價(jià)。但是“功能獨(dú)立”并不意味著模塊之間保持絕對的孤立。一個(gè)系統(tǒng)要完成某項(xiàng)任務(wù),需要各個(gè)模塊相互配合才能實(shí)現(xiàn),此時(shí)模塊之間就要進(jìn)行信息交流。南大學(xué)計(jì)信院自動(dòng)化系界面設(shè)計(jì)管理輸入設(shè)備(鼠標(biāo)、鍵盤);確認(rèn)用戶輸入;處理錯(cuò)誤和顯示錯(cuò)誤消息;提供輸入反饋(如輸入自動(dòng)回聲);提供提示和幫助開發(fā)(開發(fā)者只要規(guī)定符號(hào)和提供幫助內(nèi)容);窗口、域的顯示,重疊和內(nèi)容滾展;提供和應(yīng)用程序的接口;界面管理功能和應(yīng)用程序隔離;允許用戶定制界面。南大學(xué)計(jì)信院自動(dòng)化系數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)(過程設(shè)計(jì))
完成數(shù)據(jù)、體系結(jié)構(gòu)、界面設(shè)計(jì)之后,就按處理規(guī)格說明,或控制規(guī)格說明,或狀態(tài)轉(zhuǎn)移圖,一一寫出過程程序,也就是詳細(xì)設(shè)計(jì)。選定或設(shè)計(jì)相應(yīng)的算法作出設(shè)計(jì)。此時(shí)并非用某種程序設(shè)計(jì)語言,而是類_xxx語言、PDL、細(xì)化圖形(設(shè)計(jì)詳細(xì)的結(jié)構(gòu)化流程圖)南大學(xué)計(jì)信院自動(dòng)化系詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的任務(wù)為軟件結(jié)構(gòu)圖中的每一個(gè)模塊確定采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具給出清晰的描述。經(jīng)過整個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把整個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。詳細(xì)設(shè)計(jì)的描述工具程序流程圖方框圖(N-S圖)問題分析圖(PDA)偽碼(PDL語言)南大學(xué)計(jì)信院自動(dòng)化系程序流程圖也稱為程序框圖,獨(dú)立于任何一種程序設(shè)計(jì)語言,比較直觀、清晰、易于掌握。任何復(fù)雜的程序流程圖都可以由以下不同類型的基本結(jié)構(gòu)組合或嵌套而成:順序結(jié)構(gòu)選擇結(jié)構(gòu)(IF-THEN-ELSE)多分支選擇結(jié)構(gòu)(CASE)先判定循環(huán)結(jié)構(gòu)(WHILE)后判定循環(huán)結(jié)構(gòu)(UNTIL)南大學(xué)計(jì)信院自動(dòng)化系程序流程圖程序流程圖中常用的符號(hào)南大學(xué)計(jì)信院自動(dòng)化系方框圖(N-S圖)圖形描述工具。限制了隨意的控制轉(zhuǎn)移。N-S圖的基本符號(hào)南大學(xué)計(jì)信院自動(dòng)化系11.5軟件構(gòu)造軟件構(gòu)造是將設(shè)計(jì)的結(jié)果轉(zhuǎn)變?yōu)檎鎸?shí)軟件(代碼塊集合或源程序)的過程。早期構(gòu)造軟件只能編碼(寫源程序),叫軟件編碼階段。當(dāng)今軟件大量重用,對于簡單應(yīng)用,利用配置語言寫幾條命令,把庫中模塊/對象調(diào)出、連接就完成了構(gòu)造。南大學(xué)計(jì)信院自動(dòng)化系軟件構(gòu)造與設(shè)計(jì)的關(guān)系軟件設(shè)計(jì)把復(fù)雜的解分解為一個(gè)程序員能完全處理的塊,原則上設(shè)計(jì)重點(diǎn)在于“可能”實(shí)現(xiàn)該產(chǎn)品的“功能、性能”,構(gòu)造重點(diǎn)在于“必須可執(zhí)行”。南大學(xué)計(jì)信院自動(dòng)化系工具的作用軟件構(gòu)造工具分兩類。一類是軟件構(gòu)造過程中所用的工具,如編譯器、代碼生成器、文檔編寫器等。另一類是自動(dòng)構(gòu)造工具。專用工具箱(輔助Java開發(fā)的JDK)以解決與OS、數(shù)據(jù)庫連接的細(xì)節(jié)問題,使用戶集中構(gòu)造應(yīng)用邏輯的實(shí)現(xiàn)。高層的體系結(jié)構(gòu)規(guī)范工具有利于快速構(gòu)造復(fù)雜系統(tǒng)的體系結(jié)構(gòu)。南大學(xué)計(jì)信院自動(dòng)化系標(biāo)準(zhǔn)的作用設(shè)計(jì)時(shí)常常是參照標(biāo)準(zhǔn),構(gòu)造則必須按照標(biāo)準(zhǔn)實(shí)施才能成為產(chǎn)品。嚴(yán)格遵守標(biāo)準(zhǔn)所支持的資源才能使用。語言、數(shù)據(jù)庫、平臺(tái)采用什么標(biāo)準(zhǔn)是需求定義時(shí)定義的,此時(shí)要嚴(yán)格執(zhí)行。南大學(xué)計(jì)信院自動(dòng)化系構(gòu)造語言配置語言:從預(yù)定義選項(xiàng)中選出部件,定制安裝成新的應(yīng)用。工具箱語言:將專用的可重用件放在工具箱中,以工具箱界面上的一組命令調(diào)用。專用域語言編程語言南大學(xué)計(jì)信院自動(dòng)化系結(jié)構(gòu)化編碼方法對源程序的編碼要求:最基本要求是源程序的正確性,同時(shí)還要考慮其可讀性、可理解性、可測試性和可維護(hù)性。寫程序的風(fēng)格:一個(gè)好的源程序意味著源程序代碼邏輯簡明清晰,易讀易懂。南大學(xué)計(jì)信院自動(dòng)化系編碼原則程序內(nèi)部文檔應(yīng)選取含義鮮明的名字,注解正確,程序清單層次清晰,布局合理。數(shù)據(jù)說明和次序應(yīng)該標(biāo)準(zhǔn)化,個(gè)別復(fù)雜的數(shù)據(jù)結(jié)構(gòu)應(yīng)加注釋。每個(gè)語句應(yīng)該簡單直接,不能為提高效率而使程序變得過份復(fù)雜。對輸入數(shù)據(jù)應(yīng)進(jìn)行合法性檢查;對輸出數(shù)據(jù)要加輸出數(shù)據(jù)的標(biāo)志。在程序編碼階段以不影響程序的清晰度和可讀性為前提,盡可能提高效率。南大學(xué)計(jì)信院自動(dòng)化系11.6軟件測試1基本概念軟件測試定義:軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。軟件測試分為:單元測試和綜合測試。軟件測試在軟件生存周期中橫跨了兩個(gè)階段:通常在編寫出第一個(gè)模塊之后就對它做必要的測試(稱作單元測試)。編碼與單元測試屬于軟件生存周期中的同一階段。在結(jié)束這個(gè)階段之后,對軟件系統(tǒng)還要進(jìn)行各種綜合測試,這是軟件生存周期的另一個(gè)獨(dú)立的階段,即測試階段。南大學(xué)計(jì)信院自動(dòng)化系2軟件測試的目標(biāo)和原則測試的目的是為了發(fā)現(xiàn)盡可能多的缺陷,并期望通過改錯(cuò)來把缺陷統(tǒng)統(tǒng)消滅,以期提高軟件的質(zhì)量。好的測試方案是盡可能地發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試方案。南大學(xué)計(jì)信院自動(dòng)化系測試的目的想以最少的時(shí)間和人力,系統(tǒng)地找出軟件中潛在的各種錯(cuò)誤和缺陷。如果我們成功地實(shí)施了測試,我們就能夠發(fā)現(xiàn)軟件中的錯(cuò)誤。測試的附帶收獲是,它能夠證明軟件的功能和性能與需求說明相符合。實(shí)施測試收集到的測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。測試不能表明軟件中不存在錯(cuò)誤。南大學(xué)計(jì)信院自動(dòng)化系軟件測試的原則應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測試”作為軟件開發(fā)者的座右銘。測試用例應(yīng)由測試輸入數(shù)據(jù)和對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。程序員應(yīng)避免檢查自己的程序。在設(shè)計(jì)測試用例時(shí),應(yīng)包括合理的輸入條件和不合理的輸入條件。充分注意測試中的群集現(xiàn)象。經(jīng)驗(yàn)表明,測試后程序中殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目成正比。嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性。應(yīng)當(dāng)對每一個(gè)測試結(jié)果做全面檢查。妥善保存測試計(jì)劃,測試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。南大學(xué)計(jì)信院自動(dòng)化系11.6.1軟件測試策略測試過程是按單元測試、組裝測試、確認(rèn)測試和系統(tǒng)測試四個(gè)步驟進(jìn)行的。單元測試單元測試單元測試…組裝測試確認(rèn)測試系統(tǒng)測試被測模塊被測模塊被測模塊已測試的模塊設(shè)計(jì)信息軟件要求系統(tǒng)其它元素已集成的軟件已確認(rèn)的軟件可交付的軟件南大學(xué)計(jì)信院自動(dòng)化系軟件測試與軟件開發(fā)過程的關(guān)系需求分析設(shè)計(jì)編程單元測試集成測試有效性測試需求分析說明書總體設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書源程序代碼單元測試集成測試確認(rèn)測試南大學(xué)計(jì)信院自動(dòng)化系1)單元測試(模塊測試UnitTesting)單元測試又稱模塊測試,是針對軟件設(shè)計(jì)的最小單位——程序模塊,進(jìn)行正確性檢驗(yàn)的測試工作。目的:是發(fā)現(xiàn)模塊的子程序或過程的實(shí)際功能與該模塊的功能和接口描述是否相符,以及是否有編碼錯(cuò)誤存在。主要內(nèi)容:模塊接口測試;局部數(shù)據(jù)結(jié)構(gòu)測試;重要路徑測試;出錯(cuò)處理能力測試;邊界條件測試。南大學(xué)計(jì)信院自動(dòng)化系2)組裝測試(IntegratedTesting)組裝測試(集成測試或聯(lián)合測試)目的:為了發(fā)現(xiàn)程序結(jié)構(gòu)的錯(cuò)誤。南大學(xué)計(jì)信院自動(dòng)化系3)確認(rèn)測試(ValidationTesting)確認(rèn)測試(有效性測試)又稱有效性測試。組裝測試結(jié)束后,得到的是一個(gè)完整的軟件系統(tǒng)。這時(shí)需要進(jìn)行最后的測試,即有效性測試。南大學(xué)計(jì)信院自動(dòng)化系確認(rèn)測試的步驟選擇測試人員構(gòu)造測試用例實(shí)際運(yùn)行測試軟件計(jì)劃用戶文檔開發(fā)文檔源程序文本支持環(huán)境有效性測試軟件配置審查管理機(jī)構(gòu)裁決專家鑒定會(huì)測試報(bào)告軟件配置交用戶運(yùn)行維護(hù)南大學(xué)計(jì)信院自動(dòng)化系4)系統(tǒng)測試(SystemTesting)系統(tǒng)測試,是將通過確認(rèn)測試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測試和確認(rèn)測試。南大學(xué)計(jì)信院自動(dòng)化系11.6.2.測試技術(shù)選擇測試用例是軟件測試員最重要的一項(xiàng)工作。測試用例的屬性:屬性描述name測試用例的名稱
location可執(zhí)行的完全路徑名
input輸入數(shù)據(jù)或命令oracle與測試輸入相比較的期待測試結(jié)果log測試生產(chǎn)的輸出南大學(xué)計(jì)信院自動(dòng)化系動(dòng)態(tài)黑盒測試—閉著眼睛測試軟件不深入代碼細(xì)節(jié)的測試方法稱為動(dòng)態(tài)黑盒測試。軟件測試員充當(dāng)客戶來使用它。軟件輸入輸出南大學(xué)計(jì)信院自動(dòng)化系動(dòng)態(tài)白盒測試—帶上X光眼鏡測試??????????????3581322.293419985680302829734315250*(1+0.015)*((1+0.015)^360-1)/0.015250*(1+0.015)*((1+0.015)^360-1)/0.015
假如知道一個(gè)盒子包含一臺(tái)計(jì)算機(jī),而另一個(gè)盒子是人用紙筆計(jì)算,就會(huì)選擇不同的測試用例。了解軟件的運(yùn)作方式會(huì)影響測試手段南大學(xué)計(jì)信院自動(dòng)化系黑盒測試黑盒測試又稱功能測試或數(shù)據(jù)驅(qū)動(dòng)測試。在這種測試方法中,程序?qū)y試者是完全透明的。測試者不考慮程序的內(nèi)部結(jié)構(gòu)和特性,就好像把程序看作一個(gè)不能打開的盒子,只根據(jù)程序的需求規(guī)格說明中的程序功能或程序的外部特性來設(shè)計(jì)測試用例。黑盒測試的方法包括:等價(jià)分類法、邊緣值分析法。一般來講,通常用黑盒法設(shè)計(jì)基本的測試方案,再利用白盒法做必要的補(bǔ)充。南大學(xué)計(jì)信院自動(dòng)化系例:某報(bào)表處理系統(tǒng)要求用戶輸入處理報(bào)表的日期,日期限制在2001年1月至2005年12月,即系統(tǒng)只能對該段期間內(nèi)的報(bào)表進(jìn)行處理,如日期不在此范圍內(nèi),則顯示輸入錯(cuò)誤信息。系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。如何用等價(jià)類劃分法設(shè)計(jì)測試用例,來測試程序的日期檢查功能?南大學(xué)計(jì)信院自動(dòng)化系用等價(jià)類劃分法設(shè)計(jì)測試用例步驟(1)形成等價(jià)類表,每一等價(jià)類規(guī)定一個(gè)唯一的編號(hào);(2)設(shè)計(jì)一測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類,重復(fù)這一步驟,直到所有有效等價(jià)類均被測試用例所覆蓋;(3)設(shè)計(jì)一新測試用例,使其只覆蓋一個(gè)無效等價(jià)類,重復(fù)這一步驟直到所有無效等價(jià)類均被覆蓋;南大學(xué)計(jì)信院自動(dòng)化系第一步:等價(jià)類劃分
輸入等價(jià)類有效等價(jià)類無效等價(jià)類報(bào)表日期的類型及長度6個(gè)數(shù)字字符(1)有非數(shù)字字符(4)少于6個(gè)數(shù)字字符(5)多于6個(gè)數(shù)字字符(6)年份范圍在2001~2005之間(2)小于2001(7)大于2005(8)月份范圍在1~12之間(3)“報(bào)表日期”輸入條件的等價(jià)類表小于1(9)大于12(10)南大學(xué)計(jì)信院自動(dòng)化系第二步:為有效等價(jià)類設(shè)計(jì)測試用例對表中編號(hào)為1,2,3的3個(gè)有效等價(jià)類用一個(gè)測試用例覆蓋:
測試數(shù)據(jù)期望結(jié)果覆蓋范圍200105等價(jià)類(1)(2)(3)輸入有效南大學(xué)計(jì)信院自動(dòng)化系
測試數(shù)據(jù)期望結(jié)果覆蓋范圍001MAY等價(jià)類(4)輸入無效20015等價(jià)類(5)輸入無效2001005等價(jià)類(6)輸入無效200005等價(jià)類(7)輸入無效200805等價(jià)類(8)輸入無效200100等價(jià)類(9)輸入無效200113等價(jià)類(10)輸入無效不能出現(xiàn)相同的測試用例本例的10個(gè)等價(jià)類至少需要8個(gè)測試用例第三步:為每一個(gè)無效等價(jià)類設(shè)至少設(shè)計(jì)一個(gè)測試用例南大學(xué)計(jì)信院自動(dòng)化系白盒測試白盒測試又稱結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試。所謂“白盒”是指將對象看作一個(gè)打開的盒子,測試人員可利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)的信息來設(shè)計(jì)或選擇測試用例。白盒測試主要考慮的是測試用例對程序內(nèi)部邏輯的覆蓋程度,而不考慮程序的功能。對程序模塊的所有獨(dú)立的執(zhí)行路徑至少測試一次;對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。南大學(xué)計(jì)信院自動(dòng)化系2.白盒測試的測試用例設(shè)計(jì)邏輯覆蓋法(1)語句覆蓋(2)判定覆蓋(3)條件覆蓋(4)判定/條件覆蓋(5)條件組合覆蓋需要說明的是,上述各種覆蓋準(zhǔn)則的側(cè)重點(diǎn)不同,覆蓋程度也不同。但它們共同的是:任何一種覆蓋都不能做到完全測試。南大學(xué)計(jì)信院自動(dòng)化系舉例:例:PROCEDURESAMPAL(A,B,X:REAL);BEGINIF(A>1)AND(B=0)THENX=X/AIF(A=2)OR(X>1)THENX=X+1END;南大學(xué)計(jì)信院自動(dòng)化系開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce南大學(xué)計(jì)信院自動(dòng)化系(1)語句覆蓋使程序中每個(gè)語句至少執(zhí)行一次開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce只需設(shè)計(jì)一個(gè)測試用例:輸入數(shù)據(jù):A=2,B=0,X=4即達(dá)到了語句覆蓋;語句覆蓋是最弱的邏輯覆蓋南大學(xué)計(jì)信院自動(dòng)化系(2)判定覆蓋(分支覆蓋)
使每個(gè)判定的真假分支都至少執(zhí)行一次開始(A>1)AND(B=0)(A=2)OR(X>1)返回X=X/AX=X+1FFTTabdce例:可設(shè)計(jì)兩組測試用例:A=3,B=0,X=3可覆蓋c、d分支
A=2,B=1,X=2可覆蓋b、e分支判定覆蓋仍是弱的邏輯覆蓋南大學(xué)計(jì)信院自動(dòng)化系(3)條件覆蓋使每個(gè)判定的每個(gè)條件的可能取值至少執(zhí)行一次。測試用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地使用權(quán)出讓居間合同規(guī)范文本-城市綜合體開發(fā)3篇
- 二零二五版住宅小區(qū)車位產(chǎn)權(quán)轉(zhuǎn)移及使用權(quán)購買合同3篇
- 2025版住宅小區(qū)消防設(shè)備設(shè)施定期檢查與維護(hù)合同范本2篇
- 2025年度木門行業(yè)環(huán)保認(rèn)證與推廣合同3篇
- 2025年度國際物流合作解約及責(zé)任分擔(dān)協(xié)議書
- 二零二五年度美容店轉(zhuǎn)讓合同包括美容院品牌授權(quán)及區(qū)域代理權(quán)
- 2025年度二零二五年度大型活動(dòng)臨時(shí)工人搬運(yùn)服務(wù)承包協(xié)議
- 2025年度私人承包廠房租賃合同安全責(zé)任追究協(xié)議
- 二零二五板材行業(yè)數(shù)據(jù)分析與市場預(yù)測合同3篇
- 二零二五年度鏟車清雪作業(yè)安全責(zé)任保險(xiǎn)合同
- 中考模擬考試化學(xué)試卷與答案解析(共三套)
- 新人教版五年級(jí)小學(xué)數(shù)學(xué)全冊奧數(shù)(含答案)
- 風(fēng)電場升壓站培訓(xùn)課件
- 收納盒注塑模具設(shè)計(jì)(論文-任務(wù)書-開題報(bào)告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號(hào)處理與特征提取
- 高中數(shù)學(xué)知識(shí)點(diǎn)全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點(diǎn)詞組歸納總結(jié)
- 蘇教版四年級(jí)數(shù)學(xué)下冊第3單元第2課時(shí)“常見的數(shù)量關(guān)系”教案
評論
0/150
提交評論