軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)課件_第1頁
軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)課件_第2頁
軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)課件_第3頁
軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)課件_第4頁
軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程學(xué)概述可行性分析與需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)維護(hù)面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)復(fù)習(xí)8/10/20231上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述復(fù)習(xí)8/3/20231上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件危機(jī)定義:指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。典型表現(xiàn):開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;用戶對(duì)“已完成的”軟件系統(tǒng)不滿意;“閉門造車”;軟件質(zhì)量不可靠;軟件常常是不可維護(hù)的;軟件成本的比例逐年上升;軟件產(chǎn)品“供不應(yīng)求”;產(chǎn)生軟件危機(jī)的原因軟件的規(guī)模加大、復(fù)雜性提高、性能增強(qiáng);軟件是邏輯產(chǎn)品,尚未完全認(rèn)識(shí)其本質(zhì)和特點(diǎn);缺乏系統(tǒng)的開發(fā)、維護(hù)大型軟件項(xiàng)目的技術(shù)手段和管理方法;用戶和軟件開發(fā)人員的理解鴻溝;錯(cuò)誤的認(rèn)識(shí)和作法8/10/20232上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件危機(jī)8/3/20232上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件工程定義軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。本質(zhì)特性軟件工程的中心課題是控制復(fù)雜性和諧地合作是開發(fā)軟件的關(guān)鍵……8/10/20233上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件工程8/3/20233上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件工程的7條基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性8/10/20234上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件工程的7條基本原理8/3/20234上海大軟件工程學(xué)概述軟件生命周期是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動(dòng)的全周期。軟件生命周期的3個(gè)大階段軟件定義:

確定軟件開發(fā)總目標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)策略及系統(tǒng)功能;估計(jì)資源和成本,并且制定工程進(jìn)度表。問題定義、可行性研究、需求分析軟件開發(fā):具體設(shè)計(jì)和實(shí)現(xiàn)在前一個(gè)時(shí)期定義的軟件總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試軟件維護(hù):使軟件持久地滿足用戶的需要8/10/20235上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述軟件生命周期是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動(dòng)的全軟件工程學(xué)概述生命周期中各階段的任務(wù)1.問題定義:

“要解決的問題是什么?”;確定用戶要求解決的性質(zhì)、工程的目標(biāo)和規(guī)模。2.可行性研究:

“對(duì)于上一個(gè)階段所確定的問題有行得通的解決辦法嗎?”,經(jīng)濟(jì)可行性、技術(shù)可行性、法律可行性、不同的方案3.需求分析:

“為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么”,確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運(yùn)行環(huán)境,并且預(yù)測(cè)系統(tǒng)發(fā)展的前景。4.總體設(shè)計(jì)(概要設(shè)計(jì)):

“概括地說,應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”;設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。推薦一個(gè)最佳方案。5.詳細(xì)設(shè)計(jì):

“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”;設(shè)計(jì)出程序的詳細(xì)規(guī)格說明。6.編碼和單元測(cè)試:

寫出正確的容易理解、容易維護(hù)的程序模塊;仔細(xì)測(cè)試編寫出的每一個(gè)模塊。7.綜合測(cè)試:

集成測(cè)試和驗(yàn)收測(cè)試,現(xiàn)場(chǎng)測(cè)試或平行運(yùn)行8.軟件維護(hù):

使系統(tǒng)持久地滿足用戶的需要。包括:改正性維護(hù),適應(yīng)性維護(hù),完善性維護(hù),預(yù)防性維護(hù)。8/10/20236上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述生命周期中各階段的任務(wù)8/3/20236上海大軟件工程學(xué)概述

生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,因此,也稱為過程模型。典型的過程模型瀑布模型(Waterfallmodel)快速原型開發(fā)模型(RapidPrototypingmodel)增量模型(Incrementalmodel)螺旋模型(Spiralmodel)噴泉模型其它模型極限編程XP(eXtremeProgramming)RUP(RationalUnifiedProcess)建造—修補(bǔ)模型(Build-and-fixmodel)8/10/20237上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述 生命周期模型規(guī)定了把生命周期劃分成哪些階段及軟件工程學(xué)概述瀑布模型特點(diǎn)階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)。質(zhì)量保證的觀點(diǎn)(文檔驅(qū)動(dòng))每個(gè)階段都必須完成規(guī)定的文檔每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審缺點(diǎn)開發(fā)過程一般不能逆轉(zhuǎn),否則代價(jià)太大。規(guī)格說明很難理解:“我知道這是按我的要求做的,但不是我想要的樣子。”軟件的實(shí)際情況必須到項(xiàng)目開發(fā)的后期客戶才能看到。8/10/20238上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述瀑布模型8/3/20238上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述增量模型把軟件產(chǎn)品作為一系列增量構(gòu)件來設(shè)計(jì)、編碼、集成和測(cè)試。優(yōu)點(diǎn)每個(gè)階段交付一個(gè)可用的產(chǎn)品。減少一個(gè)全新產(chǎn)品給客戶帶來的心理上的影響。分階段地交付產(chǎn)品不需要大的資金支出。需求經(jīng)常變化,增量模型的靈活性使其具有更加優(yōu)越的適用性。缺點(diǎn)需要一個(gè)開放的結(jié)構(gòu),方便構(gòu)件的加入。8/10/20239上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述增量模型8/3/20239上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述生命周期模型優(yōu)點(diǎn)缺點(diǎn)瀑布模型文檔驅(qū)動(dòng)的有序方法交付產(chǎn)品可能不符合客戶的要求快速原型模型確保交付的產(chǎn)品符合客戶的要求還沒有證明無懈可擊增量模型增大投資的早期回報(bào)要求開放的結(jié)構(gòu),可能退化為建造-修補(bǔ)模型螺旋模型結(jié)合上述所有模型的特性只能用于大型的內(nèi)部軟件產(chǎn)品,開發(fā)者必須精通風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)排除8/10/202310上海大學(xué)計(jì)算機(jī)學(xué)院軟件工程學(xué)概述生命周期模型優(yōu)點(diǎn)缺點(diǎn)瀑布模型文檔驅(qū)動(dòng)的有序方法可行性分析與需求分析需求分析的任務(wù)準(zhǔn)確地回答“系統(tǒng)必須做什么?”“分析軟件需求和書寫軟件需求規(guī)格說明書”軟件需求用戶解決問題或達(dá)到目標(biāo)所需要的條件或能力;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其他正式規(guī)定文檔所需具有的條件或能力反映上述兩個(gè)定義中所描述的條件或能力的文檔說明需求層次:業(yè)務(wù)需求用戶需求功能與非功能需求具體任務(wù)確定對(duì)系統(tǒng)的綜合要求

功能需求、性能需求、可靠性和可用性需求、出錯(cuò)處理需求、接口需求、約束、逆向需求、擴(kuò)展需求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型書寫軟件需求規(guī)格說明書修正系統(tǒng)開發(fā)計(jì)劃8/10/202311上海大學(xué)計(jì)算機(jī)學(xué)院可行性分析與需求分析需求分析的任務(wù)8/3/202311上海大需求分析數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)符號(hào)數(shù)據(jù)源點(diǎn)/數(shù)據(jù)終點(diǎn)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)加工/處理根據(jù)描述畫數(shù)據(jù)流圖8/10/202312上海大學(xué)計(jì)算機(jī)學(xué)院需求分析數(shù)據(jù)流圖8/3/202312上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)總體設(shè)計(jì)的任務(wù)“概括地說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”系統(tǒng)劃分:即確定組成系統(tǒng)的程序、文件、數(shù)據(jù)庫、人工過程和文檔等設(shè)計(jì)軟件的結(jié)構(gòu):即確定每個(gè)程序是由哪些模塊組成,以及這些模塊相互間的關(guān)系。8/10/202313上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)總體設(shè)計(jì)的任務(wù)8/3/202313上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)設(shè)計(jì)原理模塊化模塊化的根據(jù)C(P1+P2)>C(P1)+C(P2)E(P1+P2)>E(P1)+E(P2)抽象抽象就是抽出事物的本質(zhì)特性而暫不考慮它們的細(xì)節(jié)逐步求精為了能集中精力解決主要問題而盡量推遲對(duì)問題細(xì)節(jié)的考慮。信息隱藏和局部化信息隱藏原理:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來說,是不能訪問的。局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。模塊獨(dú)立每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能,并且與其它模塊間的接口簡(jiǎn)單。模塊獨(dú)立性的衡量標(biāo)準(zhǔn)模塊內(nèi)聚(Cohension):模塊內(nèi)各元素交互的程度模塊耦合(Coupling):模塊間交互程度8/10/202314上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)設(shè)計(jì)原理8/3/202314上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)各種耦合的含義設(shè)計(jì)時(shí)力爭(zhēng)做到低耦合。應(yīng)該采取的設(shè)計(jì)原則是:盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公用耦合的范圍,完全不用內(nèi)容耦合。耦合程度高低耦合內(nèi)容耦合共用耦合控制耦合印記(特征)耦合數(shù)據(jù)耦合8/10/202315上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)各種耦合的含義耦高低耦合8/3/202315上海大學(xué)總體設(shè)計(jì)各種內(nèi)聚的含義設(shè)計(jì)時(shí)力爭(zhēng)做到高內(nèi)聚,并且能夠辨認(rèn)出低內(nèi)聚的模塊,通過修改設(shè)計(jì)提高模塊的內(nèi)聚程度。內(nèi)聚程度低高內(nèi)聚偶然性內(nèi)聚邏輯性內(nèi)聚時(shí)間性內(nèi)聚過程性內(nèi)聚通信性內(nèi)聚順序內(nèi)聚功能性內(nèi)聚信息性內(nèi)聚8/10/202316上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)各種內(nèi)聚的含義內(nèi)低高內(nèi)聚8/3/202316上海大學(xué)總體設(shè)計(jì)啟發(fā)規(guī)則改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入都應(yīng)適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)模塊的作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。模塊的控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合。所有受判定影響的模塊應(yīng)該都從屬于做出判定的那個(gè)模塊,最好局限于做出判定的那個(gè)模塊本身及它的直屬下級(jí)模塊。力爭(zhēng)降低模塊接口的復(fù)雜程度設(shè)計(jì)單入口單出口的模塊模塊功能應(yīng)該可以預(yù)測(cè)8/10/202317上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)啟發(fā)規(guī)則8/3/202317上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)模塊的判定作用范圍(a)差的結(jié)構(gòu)圖;(b)不理想的結(jié)構(gòu)圖;(c)理想的結(jié)構(gòu)圖TOPABCDEF(b)TOPABCDEF(a)TOPABCDEF(c)8/10/202318上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)模塊的判定作用范圍TOPABCDEF(b)TOPA總體設(shè)計(jì)結(jié)構(gòu)圖描述軟件系統(tǒng)的模塊層次結(jié)構(gòu),清楚地反映出程序中各模塊之間的調(diào)用關(guān)系和數(shù)據(jù)傳遞。AB輸入數(shù)據(jù)輸出數(shù)據(jù)調(diào)用模塊被調(diào)用模塊選擇調(diào)用循環(huán)調(diào)用8/10/202319上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)結(jié)構(gòu)圖AB輸入數(shù)據(jù)輸出數(shù)據(jù)調(diào)用模塊被調(diào)用模塊選擇調(diào)用總體設(shè)計(jì)面向數(shù)據(jù)流的設(shè)計(jì)方法基本思想:DFD結(jié)構(gòu)圖兩種信息流類型變換流:掌握從變換流到初始結(jié)構(gòu)圖的轉(zhuǎn)換事務(wù)流8/10/202320上海大學(xué)計(jì)算機(jī)學(xué)院總體設(shè)計(jì)面向數(shù)據(jù)流的設(shè)計(jì)方法8/3/202320上海大學(xué)計(jì)算詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的任務(wù)不是具體地編寫程序,而是設(shè)計(jì)程序的“藍(lán)圖”,確定每個(gè)模塊的處理過程。結(jié)構(gòu)程序設(shè)計(jì)自頂向下逐步求精;具有單入、單出的控制結(jié)構(gòu)(取消GOTO語句);結(jié)構(gòu)化定理:任何單入口單出口的程序都可以由“順序”、“選擇”和“循環(huán)”三種基本結(jié)構(gòu)實(shí)現(xiàn)。過程設(shè)計(jì)的工具(重點(diǎn)是畫圖)程序流程圖盒圖PAD圖判定表8/10/202321上海大學(xué)計(jì)算機(jī)學(xué)院詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的任務(wù)8/3/202321上海大學(xué)計(jì)算機(jī)學(xué)院詳細(xì)設(shè)計(jì)程序流程圖的基本符號(hào)(1)順序結(jié)構(gòu)AB(2)選擇結(jié)構(gòu)PBAFT(3)先判定型循環(huán)結(jié)構(gòu)TPSF(4)后判定型循環(huán)結(jié)構(gòu)FSTP(5)多情況選擇(casestructure)8/10/202322上海大學(xué)計(jì)算機(jī)學(xué)院詳細(xì)設(shè)計(jì)程序流程圖的基本符號(hào)(1)順序結(jié)構(gòu)AB(2)選擇詳細(xì)設(shè)計(jì)PAD圖的基本符號(hào)8/10/202323上海大學(xué)計(jì)算機(jī)學(xué)院詳細(xì)設(shè)計(jì)PAD圖的基本符號(hào)8/3/202323上海大學(xué)計(jì)算機(jī)詳細(xì)設(shè)計(jì)判定表8/10/202324上海大學(xué)計(jì)算機(jī)學(xué)院詳細(xì)設(shè)計(jì)判定表8/3/202324上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)編碼風(fēng)格編碼風(fēng)格的作用就是使代碼容易讀;風(fēng)格良好的代碼更容易閱讀和理解,錯(cuò)誤更少;使用一致和有意義的標(biāo)識(shí)符名用縮進(jìn)顯示程序結(jié)構(gòu)用加括號(hào)的方式排除二義性避免大量使用循環(huán)嵌套和條件嵌套當(dāng)心運(yùn)算符的副作用把數(shù)定義稱常量利用sizeof()計(jì)算對(duì)象的大小清晰的代碼,而非最巧妙的代碼程序的注釋序言性注釋和功能性注釋對(duì)一段程序注釋,而不是每一個(gè)語句使用數(shù)據(jù)結(jié)束標(biāo)記(EOF、BOF),不要指定數(shù)據(jù)的數(shù)目來判斷文件的結(jié)束。8/10/202325上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)編碼風(fēng)格8/3/202325上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)測(cè)試測(cè)試的目的就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。調(diào)試的目的是診斷并改正錯(cuò)誤。對(duì)軟件規(guī)格說明、設(shè)計(jì)和編碼的最后復(fù)審。開發(fā)總工作量的40%以上,極端情況下,其他開發(fā)步驟總成本的3倍到5倍。好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案。成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。測(cè)試只能查找出程序中的錯(cuò)誤,不能證明程序中沒有錯(cuò)誤。Pareto原理:80%的錯(cuò)誤很可能是20%的模塊造成的。從“小規(guī)?!睖y(cè)試逐步到“大規(guī)?!睖y(cè)試。窮舉測(cè)試是不可能的。為了達(dá)到最佳的測(cè)試效果,應(yīng)該由獨(dú)立的第三方從事測(cè)試工作。8/10/202326上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)測(cè)試8/3/202326上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)測(cè)試方法黑盒測(cè)試:又稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試白盒測(cè)試:又稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試測(cè)試步驟模塊測(cè)試(單元測(cè)試)在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤子系統(tǒng)測(cè)試模塊放在一起形成一個(gè)子系統(tǒng)來測(cè)試著重測(cè)試模塊的接口系統(tǒng)測(cè)試經(jīng)過測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來測(cè)試發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤驗(yàn)收測(cè)試(確認(rèn)測(cè)試)它的目標(biāo)是驗(yàn)證軟件的有效性(如果軟件的功能和性能如同用戶所合理期待的那樣,軟件就是有效的)用戶積極參與,可能主要使用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯(cuò)誤平行運(yùn)行集成測(cè)試8/10/202327上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)測(cè)試方法集成測(cè)試8/3/202327上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)回歸測(cè)試回歸測(cè)試是指重新執(zhí)行已經(jīng)做過的測(cè)試的某個(gè)子集,以保證變化(程序改錯(cuò)、新模塊加入等)沒有帶來非預(yù)期的副作用。(

)Alpha測(cè)試Alpha測(cè)試由用戶在開發(fā)者的場(chǎng)所進(jìn)行,并且在開發(fā)者對(duì)用戶的“指導(dǎo)”下進(jìn)行測(cè)試。開發(fā)者負(fù)責(zé)記錄發(fā)現(xiàn)的錯(cuò)誤和使用中遇到的問題??傊珹lpha測(cè)試是在受控的環(huán)境中進(jìn)行的。(

)Beta測(cè)試軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。開發(fā)者通常不在測(cè)試現(xiàn)場(chǎng),是在開發(fā)者無法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。8/10/202328上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)回歸測(cè)試8/3/202328上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)集成測(cè)試方法非漸增式集成先分別測(cè)試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序。先進(jìn)行單元測(cè)試,再進(jìn)行集成測(cè)試漸增式集成 將單元測(cè)試與集成測(cè)試結(jié)合在一起,把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試好的那些模塊結(jié)合起來進(jìn)行測(cè)試,測(cè)試完以后再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來測(cè)試。自頂向下(Top-Down)集成自底往上(Bottom-Up)集成三明治式(Sandwich)集成8/10/202329上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)集成測(cè)試方法8/3/202329上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)方法優(yōu)點(diǎn)不足非漸增式集成自頂向下集成自底往上集成三明治式集成錯(cuò)誤隔離較早發(fā)現(xiàn)主要設(shè)計(jì)錯(cuò)誤錯(cuò)誤隔離可復(fù)用模塊得到充分測(cè)試錯(cuò)誤隔離較早發(fā)現(xiàn)主要設(shè)計(jì)錯(cuò)誤可復(fù)用模塊得到充分測(cè)試沒有錯(cuò)誤隔離手段主要設(shè)計(jì)錯(cuò)誤發(fā)現(xiàn)遲可復(fù)用模塊得不到充分測(cè)試主要設(shè)計(jì)錯(cuò)誤發(fā)現(xiàn)遲幾種集成測(cè)試方法的優(yōu)缺點(diǎn)8/10/202330上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)方法優(yōu)點(diǎn)不足非漸增式集成自頂向下集成自底往上集成三明治式實(shí)現(xiàn)白盒測(cè)試技術(shù):邏輯覆蓋定義:以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)類型語句覆蓋:選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每個(gè)語句至少執(zhí)行一次。

判定覆蓋:判定覆蓋又叫分支覆蓋,選擇足夠多的測(cè)試數(shù)據(jù)使每個(gè)判定的每個(gè)分支都至少執(zhí)行一次。條件覆蓋:選擇足夠多的測(cè)試數(shù)據(jù)使每個(gè)判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果判定/條件覆蓋:選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。條件組合覆蓋:選取足夠多的測(cè)試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。設(shè)計(jì)測(cè)試用例(會(huì)做)8/10/202331上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)白盒測(cè)試技術(shù):邏輯覆蓋8/3/202331上海大學(xué)計(jì)算機(jī)實(shí)現(xiàn)黑盒測(cè)試技術(shù)等價(jià)劃分把程序的輸入域劃分成若干個(gè)數(shù)據(jù)類,每類中的一個(gè)典型值在測(cè)試中的作用與這一類中所有其他值的作用相同。據(jù)此導(dǎo)出測(cè)試用例。設(shè)計(jì)測(cè)試用例(1)設(shè)計(jì)一個(gè)新的測(cè)試方案以盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步驟直到所有有效等價(jià)類都被覆蓋為止;(2)設(shè)計(jì)一個(gè)新的測(cè)試方案,使它覆蓋一個(gè)而且只覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步驟直到所有無效等價(jià)類都被覆蓋為止。邊界值分析著重測(cè)試輸入等價(jià)類和輸出等價(jià)類的邊界,選取的測(cè)試數(shù)據(jù)應(yīng)該剛好等于、剛剛小于和剛剛大于邊界值。會(huì)用等價(jià)劃分和邊界值分析法設(shè)計(jì)測(cè)試用例8/10/202332上海大學(xué)計(jì)算機(jī)學(xué)院實(shí)現(xiàn)黑盒測(cè)試技術(shù)8/3/202332上海大學(xué)計(jì)算機(jī)學(xué)院維護(hù)所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。保證軟件在一個(gè)相當(dāng)長的時(shí)期能夠正常運(yùn)行。60%以上,這個(gè)百分比還在持續(xù)上升。維護(hù)類型改正性維護(hù) 診斷和改正錯(cuò)誤的過程。17%~21%適應(yīng)性維護(hù) 為了適應(yīng)環(huán)境的變化進(jìn)行的修改軟件的活動(dòng)。18%~25%完善性維護(hù) 增加新功能或修改已有功能。50%~66%預(yù)防性維護(hù) 為了改進(jìn)未來的可維護(hù)性或可靠性,或?yàn)榱私o未來的改進(jìn)奠定更好的基礎(chǔ)而修改軟件。4%左右8/10/202333上海大學(xué)計(jì)算機(jī)學(xué)院維護(hù)所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿維護(hù)可維護(hù)性:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程度。提高可維護(hù)性是支配軟件工程方法學(xué)所有步驟的關(guān)鍵目標(biāo)。決定軟件可維護(hù)性的因素1)可理解性2)可測(cè)試性3)可修改性4)可移植性5)可重用性8/10/202334上海大學(xué)計(jì)算機(jī)學(xué)院維護(hù)可維護(hù)性:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)的4個(gè)要點(diǎn)客觀世界是由各種對(duì)象(Object)組成。面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的。對(duì)象組成對(duì)象類(Class)。類是具有相同屬性和行為的對(duì)象的集合。每個(gè)對(duì)象類定義了一組數(shù)據(jù)和一組方法。按照子類(派生類)與父類(基類)的關(guān)系,對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(類等級(jí))。子類繼承(inheritance)父類的數(shù)據(jù)和方法。對(duì)象彼此之間僅能通過傳遞消息(Message)互相聯(lián)系。OO=objects+classes+inheritance+communicationwithmessages面向?qū)ο?對(duì)象+類+繼承+消息通信8/10/202335上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)的4個(gè)要點(diǎn)OO=object面向?qū)ο蠓椒▽W(xué)引論總存在用錯(cuò)誤的數(shù)據(jù)調(diào)用正確的模塊,或用正確的數(shù)據(jù)調(diào)用錯(cuò)誤的模塊的危險(xiǎn)。與人類習(xí)慣的思維方法一致,解空間與問題空間一致以對(duì)象為核心,數(shù)據(jù)以及數(shù)據(jù)上的操作封裝為一個(gè)統(tǒng)一體--對(duì)象軟件系統(tǒng)由對(duì)象組成,以對(duì)象間的消息模擬實(shí)體間的聯(lián)系。抽象思維,歸納思維,演繹思維開發(fā)圍繞建立問題領(lǐng)域的對(duì)象模型,是一個(gè)逐步深化的漸進(jìn)過程解空間與問題空間不一致以算法為核心,數(shù)據(jù)和過程分離。軟件系統(tǒng)由模塊組成,模塊間通過調(diào)用來集成系統(tǒng)。自頂向下按部就班。較差基于功能分解,需求變化大多針對(duì)功能功能變化引起軟件結(jié)構(gòu)的整體修改較好功能需求變化僅需要作一些局部性的修改可派生子類以實(shí)現(xiàn)功能擴(kuò)充或修改較差標(biāo)準(zhǔn)函數(shù)庫不是自含的和獨(dú)立的模塊重用,則相應(yīng)的數(shù)據(jù)也必須重用。較好通過對(duì)象實(shí)例或派生類方便修改和擴(kuò)充,且不影響原有類的使用較易可分解成相互獨(dú)立的小產(chǎn)品較難分而不解較好穩(wěn)定性好,易修改,易理解。較差穩(wěn)定性較差,較難修改,較難理解。思維方法特性面向?qū)ο蠓椒▊鹘y(tǒng)方法穩(wěn)定性開發(fā)大型軟件可維護(hù)性可重用性8/10/202336上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蠓椒▽W(xué)引論總存在用錯(cuò)誤的數(shù)據(jù)調(diào)用正確的模塊,與人類習(xí)面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蟮囊恍└拍顚?duì)象:封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作(服務(wù)或方法)的封裝體。類:具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的集合消息:要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類中所定義的某個(gè)操作的規(guī)格說明。方法:對(duì)象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。(如C++的成員函數(shù))屬性:類中所定義的數(shù)據(jù)(如C++的數(shù)據(jù)成員)封裝:表示對(duì)象狀態(tài)的數(shù)據(jù)和實(shí)現(xiàn)操作的代碼與局部數(shù)據(jù),都被封裝在黑盒子里面,不能從外面直接訪問或修改這些數(shù)據(jù)和代碼。繼承:是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。多態(tài)性:同一方法,不同的子類有不同的實(shí)現(xiàn)。函數(shù)重載:是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。8/10/202337上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蟮囊恍└拍?/3/202337上海面向?qū)ο蠓治雒嫦驅(qū)ο蠓治龌卷樞驅(qū)ふ翌悾?-對(duì)象;識(shí)別結(jié)構(gòu);識(shí)別主題;定義屬性;建立動(dòng)態(tài)模型;建立功能模型;定義服務(wù)。8/10/202338上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蠓治雒嫦驅(qū)ο蠓治龌卷樞?/3/202338上海大學(xué)面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠼HN模型對(duì)象模型:它是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。動(dòng)態(tài)模型:描述系統(tǒng)的控制結(jié)構(gòu)。功能模型:描述系統(tǒng)的功能建模圖形工具(根據(jù)描述畫圖)類圖:類圖描述類及類與類之間的靜態(tài)關(guān)系(關(guān)聯(lián)、聚集、泛化等)。類的狀態(tài)圖:通過描繪對(duì)象的狀態(tài)及引起對(duì)象狀態(tài)轉(zhuǎn)換的事件,來表示對(duì)象的行為。用例圖:描述的是外部行為者所理解的系統(tǒng)功能。系統(tǒng)、行為者、用例及用例之間的關(guān)系。事件跟蹤圖(順序圖)8/10/202339上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠼?/3/202339上海大學(xué)計(jì)算機(jī)面向?qū)ο笤O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)的任務(wù)系統(tǒng)設(shè)計(jì):

確定實(shí)現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu);對(duì)象設(shè)計(jì):確定解空間中的類、關(guān)聯(lián)、接口形式及實(shí)現(xiàn)服務(wù)的算法。8/10/202340上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο笤O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)的任務(wù)8/3/202340上海大學(xué)計(jì)面向?qū)ο笤O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則模塊化、抽象、信息隱藏耦合(1)交互耦合 對(duì)象之間的耦合通過消息連接來實(shí)現(xiàn),則這種耦合就是交互耦合。應(yīng)該盡量減少消息中包含的參數(shù)個(gè)數(shù),降低參數(shù)的復(fù)雜程度。減少對(duì)象發(fā)送(或接收)的消息數(shù)。(2)繼承耦合 繼承是一般化類與特殊類之間耦合的一種形式。設(shè)計(jì)應(yīng)該使特殊類盡量多繼承并使用其一般化類的屬性和服務(wù)。內(nèi)聚(1)服務(wù)內(nèi)聚 一個(gè)服務(wù)應(yīng)該完成一個(gè)且僅完成一個(gè)功能。(2)類內(nèi)聚 類的屬性和服務(wù)應(yīng)該全都是完成該類對(duì)象的任務(wù)所必需的,其中不包含無用的屬性或服務(wù)。(3)一般-特殊內(nèi)聚一般-特殊結(jié)構(gòu)應(yīng)該是對(duì)相應(yīng)的領(lǐng)域知識(shí)的正確抽取。8/10/202341上海大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο笤O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則8/3/202341上海大學(xué)計(jì)面向?qū)ο笤O(shè)計(jì)重用重用有

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論