個定義軟件生存期.ppt_第1頁
個定義軟件生存期.ppt_第2頁
個定義軟件生存期.ppt_第3頁
個定義軟件生存期.ppt_第4頁
個定義軟件生存期.ppt_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Software Engineering Review,張磊 2007.10,2,Review,一個定義:軟件生存期 如同任何其他事物一樣,軟件也有一個孕育、誕生、成長、成熟、衰亡的生存過程,一般稱之為計算機軟件的生存期。 一般說來,軟件生命期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又可進一步劃分成若干個階段。,3,軟件生存期,1軟件定義時期 (1)問題定義:這是軟件生存期的第一個階段,主要任務(wù)是弄清用戶要計算機解決的問題是什么。 (2)可行性研究:任務(wù)是為前一階段提出的問題尋求一種至數(shù)種在技術(shù)上可行、且在經(jīng)濟上有較高效益的解決方案。,4,軟件生存期,2軟件開發(fā)時期 (1)需求分析

2、:弄清用戶對軟件系統(tǒng)的全部需求,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。 (2)總體設(shè)計:設(shè)計軟件的結(jié)構(gòu),即確定程序由哪些模塊組成以及模塊間的關(guān)系。 (3)詳細(xì)設(shè)計:針對單個模塊的設(shè)計。 (4)編碼:按照選定的語言,把模塊的過程性描述翻譯為源程序。 (5)測試:通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。,5,軟件生存期,3軟件運行時期 是軟件生存周期的最后一個時期。軟件人員在這一時期的工作,主要是做好軟件維護。維護的目的,是使軟件在整個生存周期內(nèi)保證滿足用戶的需求和延長軟件的使用壽命。,6,需求分析,需求分析的過程 需求分析階段可分為四個過程:調(diào)查研究、分析與綜合、書寫需求分析的文檔

3、和需求評審。,7,需求分析,(1) 問題識別 從系統(tǒng)的角度來理解軟件并評審軟件范圍是否恰當(dāng) 確定對目標(biāo)系統(tǒng)的綜合要求,即軟件的需求 提出這些需求實現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn),8,需求分析,(2) 分析與綜合 從信息流和信息結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計上的約束,分析它們是否滿足功能要求,是否合理。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型.,9,需求分析,(3) 編制需求分析階段的文檔 軟件需求說明書 數(shù)據(jù)要求說明書 初步的用戶手冊 修改、完善與確定軟件開發(fā)實施計劃,10,需求分析,(4) 需求分析評審 作為需求分析階段工作的復(fù)查手段,應(yīng)

4、該對功能的正確性、文檔的一致性、完備性、準(zhǔn)確性和清晰性,以及其它需求給予評價。 為保證軟件需求定義的質(zhì)量,評審應(yīng)以專門指定的人員負(fù)責(zé),并按規(guī)程嚴(yán)格進行。評審結(jié)束應(yīng)有評審負(fù)責(zé)人的結(jié)論意見及簽字。除分析員之外,用戶需求者,開發(fā)部門的管理者,軟件設(shè)計、實現(xiàn)、測試的人員都應(yīng)當(dāng)參加評審工作。,11,需求分析,需求分析的原則 (1)能夠表達(dá)和理解問題的信息域和功能域。 (2)能夠?qū)栴}進行分解和不斷細(xì)化,建立問題的層次結(jié)構(gòu)。 (3)能夠給出系統(tǒng)的邏輯視圖和物理視圖。,12,需求分析,13,需求分析,結(jié)構(gòu)化分析方法中使用的工具主要包括:數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化英語、判定表和判定樹。 其中數(shù)據(jù)流圖用以表達(dá)系

5、統(tǒng)內(nèi)數(shù)據(jù)的運動情況;數(shù)據(jù)詞典用以定義系統(tǒng)中的數(shù)據(jù);結(jié)構(gòu)化語言、判定表和判定樹都是用以描述數(shù)據(jù)流的加工的工具。,14,概要設(shè)計,概要設(shè)計又稱為總體設(shè)計或初步設(shè)計,它的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如何實現(xiàn)?”這個問題。在總體設(shè)計階段,應(yīng)劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等,并確定系統(tǒng)中每個程序由哪些模塊組成以及這些模塊相互間的關(guān)系。,15,16,概要設(shè)計,實施總體設(shè)計的過程如下: 1設(shè)想供選擇的方案 2選取合理的方案 3推薦最佳方案 4功能分解 5設(shè)計軟件結(jié)構(gòu)6數(shù)據(jù)庫設(shè)計7制定測試計劃 8書寫文檔 9審查和復(fù)審,17,概要設(shè)計,總體設(shè)計的圖形工具 一、層次圖 層次圖

6、是在總體設(shè)計階段最常使用的圖形工具之一,它常用于描繪軟件的層次結(jié)構(gòu)。層次圖中的每個方框代表一個模塊,方框間的連線表示模塊間的調(diào)用關(guān)系。,18,概要設(shè)計,二、HIPO圖 HIPO圖實際上由H圖和IPO圖兩部分組成。H圖即層次圖,為了能使HIPO圖具有可跟蹤性,在H圖里除了最頂層的方框之外,每個方框都加了編號;和H圖中的每個方框相對應(yīng),有一張IPO圖描述這個方框代表的模塊的處理過程。IPO圖能夠方便地描述數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出之間的關(guān)系。它的基本形式是:在左邊的框中列出有關(guān)的輸入數(shù)據(jù),在中間的框中列出主要的處理處理框中列出的處理次序暗示了執(zhí)行的次序,在右邊的框中列出產(chǎn)生的輸出數(shù)據(jù)。另外,還用

7、類似向量符號的粗大箭頭清楚地指出數(shù)據(jù)通信的情況。,19,概要設(shè)計,三、結(jié)構(gòu)圖 結(jié)構(gòu)圖中的每個方框代表一個模塊,框內(nèi)注明模塊的名字或主要功能;方框之間的箭頭(或直線)表示模塊間的調(diào)用關(guān)系。 在結(jié)構(gòu)圖中通常還用帶注釋的箭頭表示模塊調(diào)用過程中模塊之間傳遞的信息??梢岳米⑨尲^尾部的不同形狀來區(qū)分:尾部是空心圓表示傳遞的是數(shù)據(jù),尾部是實心圓則表示傳遞的是控制信息。,20,詳細(xì)設(shè)計,詳細(xì)設(shè)計以總體設(shè)計階段的工作為基礎(chǔ)的,但又不同于總體設(shè)計,主要表現(xiàn)為以下兩個方面: (1)在總體設(shè)計階段,數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以比較抽象的方式描述,而詳細(xì)設(shè)計階段則應(yīng)在此基礎(chǔ)上給出足夠詳細(xì)描述。 (2)詳細(xì)設(shè)計要提供關(guān)于算法的

8、更多的細(xì)節(jié),例如:總體設(shè)計可以聲明一個模塊的作用是對一個表進行排序,詳細(xì)設(shè)計則要確定使用哪種排序算法。在詳細(xì)設(shè)計階段為每個模塊增加了足夠的細(xì)節(jié)后,程序員才能夠以相當(dāng)直接的方式進行下一階段的編碼工作。,21,詳細(xì)設(shè)計,詳細(xì)設(shè)計的任務(wù) (1)確定每個模塊的算法。(2)確定每一個模塊的數(shù)據(jù)組織。(3)為每個模塊設(shè)計一組測試用例。(4)編寫詳細(xì)設(shè)計說明書。,22,詳細(xì)設(shè)計,詳細(xì)設(shè)計的原則 (1)模塊的邏輯描述正確可靠、清晰易讀。 (2)采用結(jié)構(gòu)化程序設(shè)計方法,改善控制結(jié)構(gòu),降低程序復(fù)雜度,提高程序的可讀性、可測試性和可維護性。,23,詳細(xì)設(shè)計,詳細(xì)設(shè)計的工具 一、程序流程圖 二、N-S圖 三、PAD圖

9、(問題分析圖) 四、PDL語言,24,軟件測試,軟件測試是保證軟件質(zhì)量的關(guān)鍵步驟,它是對軟件系統(tǒng)規(guī)格說明、設(shè)計和編碼的最后復(fù)審。 廣義上講,測試是指軟件產(chǎn)品生存周期內(nèi)所有的檢查、評審和確認(rèn)活動。如:設(shè)計評審、系統(tǒng)測試。 狹義上講,測試是對軟件產(chǎn)品質(zhì)量的檢驗和評價。它一方面檢查軟件產(chǎn)品質(zhì)量中存在的質(zhì)量問題,同時對產(chǎn)品質(zhì)量進行客觀的評價。,25,軟件測試,單元測試 集成測試 系統(tǒng)測試 安全測試 配置測試 負(fù)載測試 自動化回歸測試貫穿整個測試過程,26,單元測試,單元測試的相關(guān)概念 什么是JUnit 一個簡單的例子,27,單元測試,什么是單元測試? 單元測試(模塊測試)是開發(fā)者編寫的一小段代碼,用于

10、檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。,28,單元測試,單元測試的執(zhí)行者 程序員有責(zé)任編寫功能代碼,同時也就有責(zé)任為自己的代碼編寫單元測試 單元測試的重要 進行充分的單元測試,是提高軟件質(zhì)量,降低開發(fā)成本的必由之路。,29,單元測試,單元測試對象 單元測試,應(yīng)專門編寫測試代碼,并與產(chǎn)品代碼隔離在結(jié)構(gòu)化程序時代,單元測試所說的單元是指函數(shù),在當(dāng)今的面向?qū)ο髸r代,單元測試所說的單元是指類。 單元測試時間 單元測試越早越好 !,30,單元測試,單元測試一般方法 編寫產(chǎn)品函數(shù)的框架然后編寫測試函數(shù),針對產(chǎn)品函數(shù)的功

11、能編寫測試用例,然后編寫產(chǎn)品函數(shù)的代碼,每寫一個功能點都運行測試,隨時補充測試用例。,31,The Testing Problems,programmers,Should write,few,Do,Why?,I am so busy,It is difficult,32,單元測試,為什么單元測試難以真正實施: 代碼“難以”編寫單元測試 項目進度要求和時間限制 不想編寫單元測試 帶來的后果: 項目后期質(zhì)量問題 代碼逐漸”腐爛”,33,JUnit Tutorial,單元測試的相關(guān)概念 什么是JUnit 一個簡單的例子,34,JUnit,JUnit基于面向?qū)ο髽?gòu)建的java單元測試框架.方便開發(fā)者編

12、寫單元測試并運行 它也是第一個單元測試框架. JUnit測試可以通過多種方式運行: Swing GUI Eclipse Plugin Command Line Ant Script,35,JUNIT,JUnit的架構(gòu): TestCase: 由開發(fā)者編寫 TestSuite: 一組TestCase的集合 TestRunner: 運行TestCase/TestSuite TestResult: 收集測試結(jié)果 TestListener: 測試運行過程中監(jiān)聽事件,36,JUnit Tutorial,單元測試的相關(guān)概念 什么是JUnit 一個簡單的例子,37,More Reading,http:/www

13、./index.htm /se/tutorials/junit/ http:/www.cs.umanitoba.ca/eclipse/10-JUnit.pdf http:/supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/junit/junit.pdf ,38,軟件自動化測試,軟件自動化測試工具標(biāo)準(zhǔn)流程提供了一套完整的測試流程框架,軟件測試團隊可以以它為基礎(chǔ),根據(jù)業(yè)務(wù)發(fā)展的實際要求,定制符合團隊使用的軟件測試流程,39,當(dāng)前軟件過程普遍存在

14、的測試問題,手工過多,缺少測試工具,自動化測試方式缺失 缺乏文檔測試、檢查 測試在開發(fā)基本完成時才啟動 測試案例、測試方案的重用率低下 測試人員素質(zhì)低,缺乏相關(guān)知識培訓(xùn) 測試進度的錯誤估算,40,自動化測試的好處,執(zhí)行一遍測試的速度大約是人工測試的1/10 每次測試正確執(zhí)行相同的動作,避免人工測試的錯誤 重復(fù)執(zhí)行相同的測試 可以撰寫復(fù)雜測試腳本,以帶出隱藏在應(yīng)用程序中的信息 建立廣泛的測試腳本,涵蓋應(yīng)用程序所有功能,41,自動化測試應(yīng)該做的,測試應(yīng)用程序做期望要做的事情(建設(shè)性或積極的測試) 測試應(yīng)用程序不做不期望做的任何事情(破壞性或消極的測試) 測試應(yīng)用程序是健壯的(如:能夠處理假的數(shù)據(jù)而不崩潰),42,主要的自動化測試工具,Rational Robot: 業(yè)界最頂尖的功能測試工具,集成在測試人員的桌面 IBM Rational TestManager 上,測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論