大連理工大學(xué)軟件工程導(dǎo)論復(fù)習(xí)_第1頁(yè)
大連理工大學(xué)軟件工程導(dǎo)論復(fù)習(xí)_第2頁(yè)
大連理工大學(xué)軟件工程導(dǎo)論復(fù)習(xí)_第3頁(yè)
大連理工大學(xué)軟件工程導(dǎo)論復(fù)習(xí)_第4頁(yè)
大連理工大學(xué)軟件工程導(dǎo)論復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩130頁(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、大連理工大學(xué)軟件學(xué)院軟件工程復(fù)習(xí)軟件工程復(fù)習(xí)2021-10-14大連理工大學(xué)軟件學(xué)院2第第1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 2021-10-14大連理工大學(xué)軟件學(xué)院3什么是軟件什么是軟件 軟件的定義軟件的定義軟件由三部分組成:軟件由三部分組成: 程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集令集 數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù)數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù) 文檔:描述程序研制過(guò)程、方法及使用文檔:描述程序研制過(guò)程、方法及使用的文檔的文檔 軟件處理的是信息和邏輯軟件處理的是信息和邏輯 軟件的開(kāi)發(fā),絕不僅僅是編寫程序軟件的開(kāi)發(fā),絕不僅僅是編寫程序 軟件圍繞著邏

2、輯進(jìn)行軟件圍繞著邏輯進(jìn)行 軟件就是一個(gè)信息交換器軟件就是一個(gè)信息交換器 產(chǎn)生、管理、獲取、修改、顯示或傳送信息產(chǎn)生、管理、獲取、修改、顯示或傳送信息2021-10-14大連理工大學(xué)軟件學(xué)院4 什么是軟件危機(jī)什么是軟件危機(jī) 軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。到的一系列嚴(yán)重問(wèn)題。 軟件工程(軟件工程(IEEE) 1993年,提出軟件工程年,提出軟件工程 1) 將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。 2) 對(duì)對(duì)1)中方

3、法的理論研究。中方法的理論研究。2021-10-14大連理工大學(xué)軟件學(xué)院5軟件工程基本原理軟件工程基本原理 (開(kāi)發(fā)與維護(hù)的指導(dǎo)開(kāi)發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精開(kāi)發(fā)小組的人員應(yīng)該少而精1.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2021-10-14大連理工大學(xué)軟件學(xué)院6 軟件工程方法學(xué)軟件工程方法學(xué) 把在軟件生命周期全過(guò)程中使用的一整套把在軟件生命周期全過(guò)程中使

4、用的一整套技術(shù)的集合技術(shù)的集合稱為稱為方法學(xué)方法學(xué)(methodology),也稱范型,也稱范型(paradigm)。 軟件工程方法學(xué)三個(gè)要素:軟件工程方法學(xué)三個(gè)要素:方法、工具和過(guò)程方法、工具和過(guò)程。 方法是完成軟件開(kāi)發(fā)各項(xiàng)任務(wù)的技術(shù),回答方法是完成軟件開(kāi)發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做如何做”; 工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什用什么做么做”; 過(guò)程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成過(guò)程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答各項(xiàng)任務(wù)步驟,回答“如何控制、協(xié)調(diào)、保

5、證質(zhì)量如何控制、協(xié)調(diào)、保證質(zhì)量”。管理方法管理方法2021-10-14大連理工大學(xué)軟件學(xué)院7 目前使用得最廣泛的軟件工程方法學(xué)。目前使用得最廣泛的軟件工程方法學(xué)。 傳統(tǒng)方法學(xué)也稱為傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)生命周期方法學(xué)或或結(jié)構(gòu)化范型結(jié)構(gòu)化范型。 當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫钱?dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄::幕螂S時(shí)間的或隨時(shí)間變化變化的時(shí)的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。 結(jié)構(gòu)化靜態(tài)分析,面向?qū)ο髣?dòng)態(tài)分析結(jié)構(gòu)化靜態(tài)分析,面

6、向?qū)ο髣?dòng)態(tài)分析世界萬(wàn)物是變化的世界萬(wàn)物是變化的傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)2021-10-14大連理工大學(xué)軟件學(xué)院8傳統(tǒng)方法的特點(diǎn)傳統(tǒng)方法的特點(diǎn)生命周期模型生命周期模型軟件過(guò)程劃分為若干個(gè)階軟件過(guò)程劃分為若干個(gè)階段段每個(gè)階段有各自的任務(wù)每個(gè)階段有各自的任務(wù)階段之間有某種順序性階段之間有某種順序性2021-10-14大連理工大學(xué)軟件學(xué)院9面向?qū)ο蠓椒ǎ好嫦驅(qū)ο蠓椒ǎ簩?duì)象作為融合數(shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件對(duì)象作為融合數(shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件構(gòu)件。構(gòu)件。把所有對(duì)象都劃分成把所有對(duì)象都劃分成類類(Class)。每個(gè)類都定義了一組。每個(gè)類都定義了一組數(shù)據(jù)

7、數(shù)據(jù)和一組和一組操作操作。按照父類按照父類(或稱為基類或稱為基類)與子類與子類(或稱為派生類或稱為派生類)的關(guān)系,把的關(guān)系,把若干個(gè)相關(guān)類組成一個(gè)若干個(gè)相關(guān)類組成一個(gè)層次結(jié)構(gòu)層次結(jié)構(gòu)的系統(tǒng)的系統(tǒng)(也稱為類等級(jí)也稱為類等級(jí))。在類等級(jí)中,下層派生類自動(dòng)擁有上層基類中定義的數(shù)據(jù)在類等級(jí)中,下層派生類自動(dòng)擁有上層基類中定義的數(shù)據(jù)和操作,稱為和操作,稱為繼承繼承。1. 對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系封裝性封裝性。數(shù)據(jù):靜態(tài)數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)操作:動(dòng)態(tài)Everything is Object.2021-10-14大連理工大學(xué)軟件學(xué)院101.3 軟件生命周期軟件生命

8、周期 軟件生命周期由軟件生命周期由軟件定義、軟件開(kāi)發(fā)軟件定義、軟件開(kāi)發(fā)和和運(yùn)行維護(hù)運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段,每個(gè)階段有各自的任務(wù)。個(gè)階段,每個(gè)階段有各自的任務(wù)。1軟件定義軟件定義2軟件開(kāi)發(fā)軟件開(kāi)發(fā)3運(yùn)行維護(hù)運(yùn)行維護(hù)2021-10-14大連理工大學(xué)軟件學(xué)院11 問(wèn)題定義問(wèn)題定義 可行性研究可行性研究 需求分析需求分析 概要設(shè)計(jì)概要設(shè)計(jì) 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 編碼和單元測(cè)試編碼和單元測(cè)試 綜合測(cè)試綜合測(cè)試 軟件維護(hù)軟件維護(hù)2021-10-14大連理工大學(xué)軟件學(xué)院12實(shí)際的瀑布模型實(shí)際的瀑布模型軟件過(guò)程模型(生命周期模型)軟件過(guò)程

9、模型(生命周期模型)2021-10-14大連理工大學(xué)軟件學(xué)院13快速原型模型快速原型模型2021-10-14大連理工大學(xué)軟件學(xué)院14增量模型增量模型瀑布模型:力求一次性瀑布模型:力求一次性給用戶完整的系統(tǒng)。給用戶完整的系統(tǒng)。增量模型:逐步增加系增量模型:逐步增加系統(tǒng)功能。統(tǒng)功能。需要開(kāi)放的架構(gòu)設(shè)計(jì)。需要開(kāi)放的架構(gòu)設(shè)計(jì)。2021-10-14大連理工大學(xué)軟件學(xué)院15完整的螺旋模型完整的螺旋模型2021-10-14大連理工大學(xué)軟件學(xué)院16噴泉模型噴泉模型 迭代迭代是是OO開(kāi)發(fā)過(guò)程的主要特性。開(kāi)發(fā)過(guò)程的主要特性。 噴泉模型是典型的面向?qū)ο笊芷谀P?。噴泉模型是典型的面向?qū)ο笊芷谀P汀?“噴泉噴泉

10、” 體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫迭代和無(wú)縫的特性。的特性。 為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)線性過(guò)程線性過(guò)程作為總目標(biāo)。作為總目標(biāo)。迭代迭代 2021-10-14大連理工大學(xué)軟件學(xué)院17噴泉模型噴泉模型 迭代:逐步求精迭代:逐步求精 階段間沒(méi)有明顯的界限階段間沒(méi)有明顯的界限面向?qū)ο蟮乃枷氡WC了面向?qū)ο蟮乃枷氡WC了各個(gè)階段開(kāi)發(fā)的一致性。各個(gè)階段開(kāi)發(fā)的一致性。迭代迭代是是OO開(kāi)發(fā)過(guò)程開(kāi)發(fā)過(guò)程的主要特性。的主要特性。噴泉模型是典型的噴泉模型是典型的面向?qū)ο笊芷诿嫦驅(qū)ο笊芷谀P汀DP??!皣娙獓娙?體現(xiàn)了面體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)

11、過(guò)向?qū)ο筌浖_(kāi)發(fā)過(guò)程程迭代和無(wú)縫迭代和無(wú)縫的特的特性。性。可行性與需求分析可行性與需求分析2021-10-14大連理工大學(xué)軟件學(xué)院19 可行性研究可行性研究 不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決 較高層次的系統(tǒng)分析和設(shè)計(jì)過(guò)程較高層次的系統(tǒng)分析和設(shè)計(jì)過(guò)程 需求分析需求分析 發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程反復(fù)求精多次細(xì)化,得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和反復(fù)求精多次細(xì)化,得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的要求。具體的要求。 建立數(shù)據(jù)模型、功能模型和行為模型等三種模型。建立數(shù)據(jù)模型、功能模型和行為模型等三種模型。

12、還要寫出準(zhǔn)確的軟件需求規(guī)格說(shuō)明。還要寫出準(zhǔn)確的軟件需求規(guī)格說(shuō)明。2021-10-14大連理工大學(xué)軟件學(xué)院20系統(tǒng)流程圖系統(tǒng)流程圖 系統(tǒng)流程圖系統(tǒng)流程圖 概括描繪物理系統(tǒng)的傳統(tǒng)工具概括描繪物理系統(tǒng)的傳統(tǒng)工具 用圖形符號(hào),以黑盒子形式描述組成系統(tǒng)的每用圖形符號(hào),以黑盒子形式描述組成系統(tǒng)的每個(gè)部件個(gè)部件 程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程2021-10-14大連理工大學(xué)軟件學(xué)院21系統(tǒng)流程圖例子系統(tǒng)流程圖例子 例子例子 每個(gè)符號(hào)用黑盒每個(gè)符號(hào)用黑盒子形式定義了組子形式定義了組成系統(tǒng)的一個(gè)部成系統(tǒng)的一個(gè)部件。件。 沒(méi)有部件內(nèi)部的沒(méi)有部件內(nèi)部的具體工作過(guò)程具體工作過(guò)程 箭頭確定通過(guò)

13、系箭頭確定通過(guò)系統(tǒng)的邏輯路徑統(tǒng)的邏輯路徑(信息流動(dòng)路徑)(信息流動(dòng)路徑)2021-10-14大連理工大學(xué)軟件學(xué)院22 數(shù)據(jù)流圖數(shù)據(jù)流圖 數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD) 描繪信息流和數(shù)據(jù)從輸入描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。2021-10-14大連理工大學(xué)軟件學(xué)院23T*T*T+T+TT2021-10-14大連理工大學(xué)軟件學(xué)院242021-10-14大連理工大學(xué)軟件學(xué)院25把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖2021-10-14大連理工大學(xué)軟件學(xué)院26數(shù)據(jù)字典數(shù)據(jù)字典 數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,即對(duì)數(shù)

14、據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,即對(duì)DFD圖圖中包含的元素的定義的集合。中包含的元素的定義的集合。 數(shù)據(jù)字典的用途是供人查閱不了解的條目的解釋。數(shù)據(jù)字典的用途是供人查閱不了解的條目的解釋。提供分析設(shè)計(jì)過(guò)程中關(guān)于數(shù)據(jù)的描述。提供分析設(shè)計(jì)過(guò)程中關(guān)于數(shù)據(jù)的描述。 數(shù)據(jù)字典與數(shù)據(jù)字典與DFD相輔相成。相輔相成。 只有只有DFD和對(duì)應(yīng)的元素的精確定義放在一起,才和對(duì)應(yīng)的元素的精確定義放在一起,才能構(gòu)成系統(tǒng)的規(guī)格說(shuō)明。能構(gòu)成系統(tǒng)的規(guī)格說(shuō)明。2021-10-14大連理工大學(xué)軟件學(xué)院27定義數(shù)據(jù)的方法定義數(shù)據(jù)的方法 意思是等價(jià)于意思是等價(jià)于(或定義為或定義為); 意思是和意思是和(即,連接兩個(gè)分量即,連接兩個(gè)分

15、量); 意思是或意思是或(即,從方括弧內(nèi)列出的若干個(gè)分即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)量中選擇一個(gè)),用,用“”號(hào)分開(kāi)供選擇的分量;號(hào)分開(kāi)供選擇的分量; 意思是重復(fù)意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量即,重復(fù)花括弧內(nèi)的分量); ( )意思是可選)意思是可選(即,圓括弧里的分量可有可無(wú)即,圓括弧里的分量可有可無(wú))。 使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。 左邊用上角標(biāo)和下角標(biāo)分別表明重復(fù)的上限和下限;左邊用上角標(biāo)和下角標(biāo)分別表明重復(fù)的上限和下限; 左側(cè)標(biāo)明重復(fù)的下限,在閉括弧的右側(cè)標(biāo)明上限。左側(cè)標(biāo)明重復(fù)的下限,在閉括弧的右側(cè)標(biāo)明上限。 例如:例

16、如: A和和1A5 含義相同。含義相同。 152021-10-14大連理工大學(xué)軟件學(xué)院28數(shù)據(jù)字典的實(shí)現(xiàn)數(shù)據(jù)字典的實(shí)現(xiàn) CASE工具工具 人工卡片人工卡片2021-10-14大連理工大學(xué)軟件學(xué)院29 實(shí)體實(shí)體關(guān)系圖關(guān)系圖 數(shù)據(jù)模型包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)模型包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)數(shù)據(jù)對(duì)象對(duì)象、描述數(shù)據(jù)對(duì)象、描述數(shù)據(jù)對(duì)象屬性屬性及數(shù)據(jù)對(duì)象彼此及數(shù)據(jù)對(duì)象彼此間相互連接的間相互連接的關(guān)系關(guān)系。2021-10-14大連理工大學(xué)軟件學(xué)院30某校教學(xué)管理 ER 圖2021-10-14大連理工大學(xué)軟件學(xué)院31選課mn學(xué)號(hào)專業(yè)年級(jí)課名課號(hào)學(xué)時(shí)1n學(xué)號(hào)專業(yè)課名課號(hào)學(xué)時(shí)學(xué)號(hào)課號(hào)n1姓名課程學(xué)生姓名課程學(xué)

17、分學(xué)生年級(jí)選課學(xué)分(a)(b)2021-10-14大連理工大學(xué)軟件學(xué)院32 其他圖形工具其他圖形工具 Warnier圖圖2021-10-14大連理工大學(xué)軟件學(xué)院33其他圖形工具其他圖形工具(3) IPO圖圖2021-10-14大連理工大學(xué)軟件學(xué)院34其他圖形工具其他圖形工具(2) IPO圖圖 IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱圖是輸入、處理、輸出圖的簡(jiǎn)稱 左邊框中列出有關(guān)的輸入左邊框中列出有關(guān)的輸入 中間框中列出主要的處理中間框中列出主要的處理 右邊框中列出產(chǎn)生的輸出右邊框中列出產(chǎn)生的輸出 處理的順序暗示了執(zhí)行的順序處理的順序暗示了執(zhí)行的順序 箭頭指出數(shù)據(jù)通信的情況箭頭指出數(shù)據(jù)通信的情況總體設(shè)

18、計(jì)總體設(shè)計(jì)2021-10-14大連理工大學(xué)軟件學(xué)院36總體設(shè)計(jì)總體設(shè)計(jì) 概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。 概要設(shè)計(jì)主要任務(wù)是通過(guò)仔細(xì)分析軟件規(guī)格說(shuō)明,概要設(shè)計(jì)主要任務(wù)是通過(guò)仔細(xì)分析軟件規(guī)格說(shuō)明,適當(dāng)?shù)貙?duì)軟件進(jìn)行功能分解,從而把軟件適當(dāng)?shù)貙?duì)軟件進(jìn)行功能分解,從而把軟件劃分為劃分為模塊模塊,并且設(shè)計(jì)出完成預(yù)定功能的,并且設(shè)計(jì)出完成預(yù)定功能的模塊結(jié)構(gòu)模塊結(jié)構(gòu)。 詳細(xì)設(shè)計(jì)階段詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定完成每詳細(xì)設(shè)計(jì)階段詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定完成每個(gè)模塊功能所需要的個(gè)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)算法和數(shù)據(jù)結(jié)構(gòu)。2021-10-14大連理工大學(xué)軟件學(xué)院37模塊化:就是把程序劃分成獨(dú)立命名且可模塊化

19、:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。可以完成指定的功能滿足用戶的需求。 可以由許多程序員分工編寫不同的模塊可以由許多程序員分工編寫不同的模塊 可以使軟件結(jié)構(gòu)清晰,便于擴(kuò)展可以使軟件結(jié)構(gòu)清晰,便于擴(kuò)展 使軟件容易測(cè)試和調(diào)試,因而有助于提高軟使軟件容易測(cè)試和調(diào)試,因而有助于提高軟件的可靠性。件的可靠性。 模塊大小要適中,不過(guò)分細(xì)。模塊大小要適中,不過(guò)分細(xì)。2021-10-14大連理工大學(xué)軟件學(xué)院38模塊獨(dú)立模塊獨(dú)立 模塊的獨(dú)立程

20、度可以由兩個(gè)定性標(biāo)準(zhǔn)來(lái)度量,模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)來(lái)度量,分別稱為分別稱為內(nèi)聚和耦合內(nèi)聚和耦合。耦合:衡量不同模塊彼此間互相依賴耦合:衡量不同模塊彼此間互相依賴( (連接連接) )緊緊密程度;密程度;內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。緊密程度。2021-10-14大連理工大學(xué)軟件學(xué)院39 耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。連程度的度量。 盡可能盡可能松散耦合松散耦合2021-10-14大連理工大學(xué)軟件學(xué)院40 數(shù)據(jù)耦合:數(shù)據(jù)耦合: 特征耦合:特征耦合: 控制耦合:控制耦合: 外

21、部耦合:外部耦合: 公共耦合:公共耦合: 內(nèi)容耦合:內(nèi)容耦合:弱弱強(qiáng)強(qiáng)盡量使用數(shù)據(jù)耦合,少用控制耦合,盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。內(nèi)容耦合。2021-10-14大連理工大學(xué)軟件學(xué)院41 內(nèi)聚:標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合內(nèi)聚:標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的緊密程度,它是信息隱蔽和局部化概念的自然擴(kuò)展。的自然擴(kuò)展。 簡(jiǎn)單地說(shuō),簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情理想內(nèi)聚的模塊只做一件事情。 2021-10-14大連理工大學(xué)軟件學(xué)院42 功能內(nèi)聚:功能內(nèi)聚: 信息內(nèi)聚:信息內(nèi)聚:

22、通信內(nèi)聚:通信內(nèi)聚: 過(guò)程內(nèi)聚:過(guò)程內(nèi)聚: 時(shí)間內(nèi)聚:時(shí)間內(nèi)聚: 邏輯內(nèi)聚:邏輯內(nèi)聚: 巧合內(nèi)聚:巧合內(nèi)聚:強(qiáng)強(qiáng)弱弱設(shè)計(jì)時(shí)應(yīng)該力求做到設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚高內(nèi)聚。2021-10-14大連理工大學(xué)軟件學(xué)院43 改進(jìn)改進(jìn)軟件結(jié)構(gòu)軟件結(jié)構(gòu)提高模塊獨(dú)立性提高模塊獨(dú)立性 模塊模塊規(guī)模規(guī)模應(yīng)該適中應(yīng)該適中 深度、寬度、扇出和扇入深度、寬度、扇出和扇入都應(yīng)適當(dāng)都應(yīng)適當(dāng) 模塊的模塊的作用域作用域應(yīng)該在應(yīng)該在控制域控制域之內(nèi)之內(nèi) 力爭(zhēng)降低力爭(zhēng)降低模塊接口模塊接口的復(fù)雜程度的復(fù)雜程度 設(shè)計(jì)設(shè)計(jì)單入口單出口單入口單出口的模塊的模塊 模塊功能模塊功能應(yīng)該可以預(yù)測(cè)應(yīng)該可以預(yù)測(cè)2021-10-14大連理工大學(xué)軟件學(xué)院

23、44描繪軟件結(jié)構(gòu)的圖形工具描繪軟件結(jié)構(gòu)的圖形工具 層次圖和層次圖和HIPO圖圖 結(jié)構(gòu)圖結(jié)構(gòu)圖2021-10-14大連理工大學(xué)軟件學(xué)院45正文加工系統(tǒng)的層次圖2021-10-14大連理工大學(xué)軟件學(xué)院46正文加工系統(tǒng)的H圖2021-10-14大連理工大學(xué)軟件學(xué)院47結(jié)構(gòu)圖的例子產(chǎn)生最佳解的一般結(jié)構(gòu)2021-10-14大連理工大學(xué)軟件學(xué)院48軟件結(jié)構(gòu)設(shè)計(jì)方法軟件結(jié)構(gòu)設(shè)計(jì)方法 面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法的目標(biāo)是給出設(shè)計(jì)的目標(biāo)是給出設(shè)計(jì)軟軟件結(jié)構(gòu)件結(jié)構(gòu)的一個(gè)系統(tǒng)化的途徑。的一個(gè)系統(tǒng)化的途徑。 利用數(shù)據(jù)流圖中的利用數(shù)據(jù)流圖中的“映射映射“,把數(shù)據(jù)流圖變,把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)。換成軟件結(jié)構(gòu)

24、。2021-10-14大連理工大學(xué)軟件學(xué)院49變換流和事務(wù)流2021-10-14大連理工大學(xué)軟件學(xué)院50設(shè)計(jì)步驟設(shè)計(jì)步驟 復(fù)查基本系統(tǒng)模型。復(fù)查基本系統(tǒng)模型。 復(fù)查并精化數(shù)據(jù)流圖。復(fù)查并精化數(shù)據(jù)流圖。 確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。 確定輸入流和輸出流的邊界,從而孤立出變換確定輸入流和輸出流的邊界,從而孤立出變換中心。中心。 完成完成“第一級(jí)分解第一級(jí)分解”。 完成完成“第二級(jí)分解第二級(jí)分解”。1. 使用設(shè)計(jì)度量和啟發(fā)規(guī)則對(duì)第一次分割得到的使用設(shè)計(jì)度量和啟發(fā)規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化。軟件結(jié)構(gòu)進(jìn)一步精化。2021-10-14大連理工大

25、學(xué)軟件學(xué)院51數(shù)字儀表數(shù)字儀表板系統(tǒng)的板系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)流圖精化數(shù)據(jù)流精化數(shù)據(jù)流圖圖數(shù)據(jù)流圖具數(shù)據(jù)流圖具有變換特性還有變換特性還是事務(wù)特性是事務(wù)特性2021-10-14大連理工大學(xué)軟件學(xué)院52具有邊具有邊界的數(shù)界的數(shù)據(jù)流圖據(jù)流圖確定輸入流和輸確定輸入流和輸出流的邊界,從出流的邊界,從而孤立出變換中而孤立出變換中心心2021-10-14大連理工大學(xué)軟件學(xué)院53第一級(jí)分解的方法2021-10-14大連理工大學(xué)軟件學(xué)院54數(shù)字儀表板系統(tǒng)的第一級(jí)分解完成完成“第一級(jí)分解第一級(jí)分解”2021-10-14大連理工大學(xué)軟件學(xué)院55第二級(jí)分解的方法2021-10-14大連理工大學(xué)軟件學(xué)院56未經(jīng)精化的輸入結(jié)

26、構(gòu)未經(jīng)精化的輸入結(jié)構(gòu)完成完成“第二級(jí)分解第二級(jí)分解”2021-10-14大連理工大學(xué)軟件學(xué)院57精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)軟件結(jié)構(gòu)進(jìn)一步精化軟件結(jié)構(gòu)進(jìn)一步精化2021-10-14大連理工大學(xué)軟件學(xué)院58事務(wù)分析的映射方法事務(wù)分析的映射方法詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)2021-10-14大連理工大學(xué)軟件學(xué)院60 詳細(xì)設(shè)計(jì)階段主要完成界面和程序過(guò)程設(shè)計(jì)詳細(xì)設(shè)計(jì)階段主要完成界面和程序過(guò)程設(shè)計(jì) 過(guò)程設(shè)計(jì)過(guò)程設(shè)計(jì)應(yīng)該在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接應(yīng)該在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)完成之后進(jìn)行口設(shè)計(jì)完成之后進(jìn)行 程序員將根據(jù)程序員將根據(jù)過(guò)程設(shè)計(jì)過(guò)程設(shè)計(jì)寫出實(shí)際的程序代碼。寫出實(shí)際的程序代碼。2021-10-1

27、4大連理工大學(xué)軟件學(xué)院61 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:的經(jīng)典定義如下所述: 如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這三種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只環(huán)這三種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的。的。2021-10-14大連理工大學(xué)軟件學(xué)院62過(guò)程設(shè)計(jì)的工具過(guò)程設(shè)計(jì)的工具 程序流程圖程序流程圖 2021-10-14大連理工大學(xué)軟件學(xué)院63 盒圖盒圖(N-S圖圖)2021-10-14大連理工大學(xué)軟件學(xué)院64 PAD圖圖2021-10-14大連理

28、工大學(xué)軟件學(xué)院65判定表判定表2021-10-14大連理工大學(xué)軟件學(xué)院66用判定樹(shù)表示計(jì)算行李費(fèi)的算法判定樹(shù)判定樹(shù)2021-10-14大連理工大學(xué)軟件學(xué)院67 偽碼偽碼測(cè)試測(cè)試2021-10-14大連理工大學(xué)軟件學(xué)院692021-10-14大連理工大學(xué)軟件學(xué)院70 回歸測(cè)試回歸測(cè)試 ( (已執(zhí)行過(guò)的測(cè)試用例的子集已執(zhí)行過(guò)的測(cè)試用例的子集) )包括下述三種不同的測(cè)試用例。包括下述三種不同的測(cè)試用例。檢測(cè)軟件全部功能的代表性測(cè)試用例。檢測(cè)軟件全部功能的代表性測(cè)試用例。專門針對(duì)可能受修改影響的軟件功能的附加專門針對(duì)可能受修改影響的軟件功能的附加測(cè)試。測(cè)試。針對(duì)被修改過(guò)的軟件成分的測(cè)試。針對(duì)被修改過(guò)的

29、軟件成分的測(cè)試。2021-10-14大連理工大學(xué)軟件學(xué)院71白盒測(cè)試技術(shù)白盒測(cè)試技術(shù) 邏輯覆蓋邏輯覆蓋是設(shè)計(jì)白盒測(cè)試方案的技術(shù)。設(shè)計(jì)是設(shè)計(jì)白盒測(cè)試方案的技術(shù)。設(shè)計(jì)測(cè)試方案是測(cè)試階段的關(guān)鍵技術(shù)問(wèn)題。測(cè)試方案是測(cè)試階段的關(guān)鍵技術(shù)問(wèn)題。2021-10-14大連理工大學(xué)軟件學(xué)院72 語(yǔ)句覆蓋語(yǔ)句覆蓋為暴露程序的錯(cuò)誤,至少每個(gè)語(yǔ)句應(yīng)該執(zhí)行為暴露程序的錯(cuò)誤,至少每個(gè)語(yǔ)句應(yīng)該執(zhí)行一次。一次。含義是,選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程含義是,選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次。序中每個(gè)語(yǔ)句至少執(zhí)行一次。2021-10-14大連理工大學(xué)軟件學(xué)院73 判定覆蓋判定覆蓋又叫分支覆蓋又叫分支覆蓋不僅每

30、個(gè)語(yǔ)句必須至少執(zhí)行一次,不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次,而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個(gè)判定的每個(gè)分支都至少執(zhí)行一次,也就是每個(gè)判定的每個(gè)分支都至少執(zhí)行一次。行一次。 條件覆蓋條件覆蓋 不僅每個(gè)語(yǔ)句至少執(zhí)行一次,而且判定表不僅每個(gè)語(yǔ)句至少執(zhí)行一次,而且判定表達(dá)式中每個(gè)條件都取到各達(dá)式中每個(gè)條件都取到各種可能的結(jié)果。種可能的結(jié)果。2021-10-14大連理工大學(xué)軟件學(xué)院74 判定判定/條件覆蓋條件覆蓋判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋,判定包含判定覆蓋,判定/條件覆蓋

31、能同時(shí)滿足這兩種覆條件覆蓋能同時(shí)滿足這兩種覆蓋標(biāo)準(zhǔn)。蓋標(biāo)準(zhǔn)。選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式也條件都取到各種可能的值,而且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。都取到各種可能的結(jié)果。 條件組合覆蓋條件組合覆蓋 要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式中中條件的各種可能組合都至少出現(xiàn)一次。條件的各種可能組合都至少出現(xiàn)一次。2021-10-14大連理工大學(xué)軟件學(xué)院75路徑測(cè)試路徑測(cè)試Tom McCabe提出的一種白盒測(cè)試技術(shù)。提出的一種白盒測(cè)試技術(shù)。首先計(jì)算

32、過(guò)程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以該首先計(jì)算過(guò)程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以該復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從該復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從該基本集合導(dǎo)出的測(cè)試用例可以保證程序中每條基本集合導(dǎo)出的測(cè)試用例可以保證程序中每條語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取將分別取true(真真)和和false(假假)值。值。2021-10-14大連理工大學(xué)軟件學(xué)院76求平均值過(guò)程的流圖使用基本路徑測(cè)試技術(shù)設(shè)計(jì)使用基本路徑測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例步驟如下。測(cè)試用例步驟如下。1. 根據(jù)過(guò)程設(shè)計(jì)結(jié)果畫根據(jù)過(guò)程設(shè)計(jì)結(jié)果畫出相應(yīng)的流圖出相應(yīng)的流圖2021-10

33、-14大連理工大學(xué)軟件學(xué)院77 PROCEDURE average;/*這個(gè)過(guò)程計(jì)算不超過(guò)這個(gè)過(guò)程計(jì)算不超過(guò)100個(gè)在規(guī)定值域內(nèi)的有效個(gè)在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時(shí)計(jì)算有效數(shù)字的總和及個(gè)數(shù)字的平均值;同時(shí)計(jì)算有效數(shù)字的總和及個(gè)數(shù)。數(shù)。*/INTERFACE RETURNS average, total_input, total_valid;INTERFACE ACCEPTS value, minimum, maximum;TYPE value 1.100 IS SCALAR ARRAY;TYPE average, total_input, total_valid, minimum, m

34、aximum, sum IS SCALAR;2021-10-14大連理工大學(xué)軟件學(xué)院78TYPE i IS INTEGER;1: i1; total_inputtotal_valid0; sum0;2: DO WHILE valuei -999 3: AND total_input 1004: increment total_input by 1;5: IF valuei = minimum6: AND valuei 011: THEN average = sum/total_valid;12: ELSE average = -999;13: END IFEND average2021-10-

35、14大連理工大學(xué)軟件學(xué)院80計(jì)算流圖的計(jì)算流圖的環(huán)形復(fù)雜度環(huán)形復(fù)雜度環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。三環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。三種方法來(lái)計(jì)算環(huán)形復(fù)雜度。種方法來(lái)計(jì)算環(huán)形復(fù)雜度。流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。流圖流圖G的環(huán)形復(fù)雜度的環(huán)形復(fù)雜度V(G)E-N+2,其中,其中E是流是流圖中邊的條數(shù),圖中邊的條數(shù),N是流圖中節(jié)點(diǎn)數(shù)。是流圖中節(jié)點(diǎn)數(shù)。流圖流圖G的環(huán)形復(fù)雜度的環(huán)形復(fù)雜度V(G)P+1,其中,其中P是流圖中是流圖中判定節(jié)點(diǎn)的數(shù)目。判定節(jié)點(diǎn)的數(shù)目。使用上述任何一種方法,都可以計(jì)算出流圖使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為的環(huán)形復(fù)雜度

36、為6。2021-10-14大連理工大學(xué)軟件學(xué)院81 確定確定線性獨(dú)立路徑線性獨(dú)立路徑的基本集合的基本集合對(duì)于所描述的求平均值過(guò)程來(lái)說(shuō),由于環(huán)形復(fù)雜度為對(duì)于所描述的求平均值過(guò)程來(lái)說(shuō),由于環(huán)形復(fù)雜度為6,因此,因此共有共有6條獨(dú)立路徑。例如,下面列出了條獨(dú)立路徑。例如,下面列出了6條獨(dú)立路徑:條獨(dú)立路徑:路徑路徑1:1-2-10-11-13路徑路徑2:1-2-10-12-13路徑路徑3:1-2-3-10-11-13路徑路徑4:1-2-3-4-5-8-9-2-路徑路徑5:1-2-3-4-5-6-8-9-2-路徑路徑6:1-2-3-4-5-6-7-8-9-2-2021-10-14大連理工大學(xué)軟件學(xué)院8

37、2 設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑測(cè)試用例設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑測(cè)試用例選取數(shù)據(jù)使得在測(cè)試每條路徑時(shí)都適當(dāng)設(shè)置好選取數(shù)據(jù)使得在測(cè)試每條路徑時(shí)都適當(dāng)設(shè)置好了各個(gè)判定節(jié)點(diǎn)的條件。了各個(gè)判定節(jié)點(diǎn)的條件。路徑路徑1的測(cè)試用例:的測(cè)試用例:valuek有效輸入值,其中有效輸入值,其中ki (i的定義在下的定義在下)valuei-999,其中,其中2i100預(yù)期結(jié)果:基于預(yù)期結(jié)果:基于k的正確平均值和總數(shù)的正確平均值和總數(shù)注意,路徑注意,路徑1無(wú)法獨(dú)立測(cè)試,必須作為路徑無(wú)法獨(dú)立測(cè)試,必須作為路徑4、5和和6的的一部分來(lái)測(cè)試。一部分來(lái)測(cè)試。路徑路徑2的測(cè)試用例:的測(cè)試用例:value1 -999

38、預(yù)期結(jié)果:預(yù)期結(jié)果:average-999,其他都保持初始值,其他都保持初始值2021-10-14大連理工大學(xué)軟件學(xué)院83 路徑路徑4的測(cè)試用例:的測(cè)試用例:valuei有效輸入值,其中有效輸入值,其中i100valuek minimum,其中,其中ki預(yù)期結(jié)果:其于預(yù)期結(jié)果:其于k的正確平均值和總數(shù)的正確平均值和總數(shù) 路徑路徑5的測(cè)試用例:的測(cè)試用例:valuei有效輸入值,其中有效輸入值,其中i100valuekmaximum,其中,其中ki預(yù)期結(jié)果:其于預(yù)期結(jié)果:其于k的正確平均值和總數(shù)的正確平均值和總數(shù) 路徑路徑6的測(cè)試用例:的測(cè)試用例:valuei=有效輸入值,其中有效輸入值,其中i

39、100預(yù)期結(jié)果:正確的平均值和總數(shù)預(yù)期結(jié)果:正確的平均值和總數(shù)2021-10-14大連理工大學(xué)軟件學(xué)院84黑盒測(cè)試技術(shù)黑盒測(cè)試技術(shù) 黑盒測(cè)試著重測(cè)試軟件的黑盒測(cè)試著重測(cè)試軟件的功能需求功能需求,讓軟件工程,讓軟件工程師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條件集。件集。 黑盒測(cè)試并不能取代白盒測(cè)試技術(shù),它是與白盒黑盒測(cè)試并不能取代白盒測(cè)試技術(shù),它是與白盒測(cè)試互補(bǔ)的測(cè)試互補(bǔ)的方法,它很可能發(fā)現(xiàn)白盒測(cè)試不易發(fā)方法,它很可能發(fā)現(xiàn)白盒測(cè)試不易發(fā)現(xiàn)的其他不同類型的錯(cuò)誤。現(xiàn)的其他不同類型的錯(cuò)誤。2021-10-14大連理工大學(xué)軟件學(xué)院85 黑盒測(cè)試力圖發(fā)現(xiàn)下述類型

40、的錯(cuò)誤:黑盒測(cè)試力圖發(fā)現(xiàn)下述類型的錯(cuò)誤: 功能不功能不正確或遺漏了功能;正確或遺漏了功能; 界面錯(cuò)誤;界面錯(cuò)誤; 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤;錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤; 性能錯(cuò)誤;性能錯(cuò)誤; 初始化和終止錯(cuò)誤。初始化和終止錯(cuò)誤。 白盒測(cè)試在測(cè)試過(guò)程的早期階段進(jìn)行,而黑盒測(cè)白盒測(cè)試在測(cè)試過(guò)程的早期階段進(jìn)行,而黑盒測(cè)試主要用于測(cè)試過(guò)程的后期。試主要用于測(cè)試過(guò)程的后期。 黑盒測(cè)試故意黑盒測(cè)試故意不考慮程序的控制結(jié)構(gòu),而把注意不考慮程序的控制結(jié)構(gòu),而把注意力集中于力集中于信息域信息域。2021-10-14大連理工大學(xué)軟件學(xué)院86 等價(jià)劃分等價(jià)劃分:確定確定輸入數(shù)據(jù)的有效等價(jià)類和無(wú)效輸入數(shù)

41、據(jù)的有效等價(jià)類和無(wú)效等價(jià)類等價(jià)類。 邊界值分析邊界值分析 錯(cuò)誤推測(cè)錯(cuò)誤推測(cè)面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)2021-10-14大連理工大學(xué)軟件學(xué)院88什么是對(duì)象技術(shù)什么是對(duì)象技術(shù) 基于對(duì)象概念的軟件開(kāi)發(fā)方法基于對(duì)象概念的軟件開(kāi)發(fā)方法 對(duì)象包含有數(shù)據(jù)及處理數(shù)據(jù)的功能函數(shù)對(duì)象包含有數(shù)據(jù)及處理數(shù)據(jù)的功能函數(shù) 在分析、設(shè)計(jì)和實(shí)現(xiàn)的整個(gè)過(guò)程中只使用在分析、設(shè)計(jì)和實(shí)現(xiàn)的整個(gè)過(guò)程中只使用一個(gè)概念對(duì)象的開(kāi)發(fā)方法一個(gè)概念對(duì)象的開(kāi)發(fā)方法 能夠解決軟件危機(jī)中大多數(shù)問(wèn)題的方法能夠解決軟件危機(jī)中大多數(shù)問(wèn)題的方法對(duì)象對(duì)象 = = 數(shù)據(jù)數(shù)據(jù) + + 功能功能2021-10-14大連理工大學(xué)軟件學(xué)院89對(duì)象技術(shù)的優(yōu)勢(shì)對(duì)象技術(shù)的優(yōu)勢(shì)

42、穩(wěn)定穩(wěn)定: 較小的需求變化不會(huì)導(dǎo)致系統(tǒng)結(jié)構(gòu)大較小的需求變化不會(huì)導(dǎo)致系統(tǒng)結(jié)構(gòu)大的改變的改變 舉例:某公司的銷售處理系統(tǒng)舉例:某公司的銷售處理系統(tǒng)定單定單合同合同出費(fèi)出費(fèi)2021-10-14大連理工大學(xué)軟件學(xué)院90對(duì)象技術(shù)的優(yōu)勢(shì)對(duì)象技術(shù)的優(yōu)勢(shì) 穩(wěn)定穩(wěn)定:數(shù)據(jù)和功能都打包在一起,從而改善軟件數(shù)據(jù)和功能都打包在一起,從而改善軟件的再重用性的再重用性 軟件重用能提高質(zhì)量,減少由于編制新的系統(tǒng)代軟件重用能提高質(zhì)量,減少由于編制新的系統(tǒng)代碼而產(chǎn)生的成本碼而產(chǎn)生的成本FileMgrMacroEditorMathUtilitiesTextEditorPrintUtilitiesFormatEditorMenus

43、StringUtilitiesSpreadsheetWord ProcessorReusable-Component Repository2021-10-14大連理工大學(xué)軟件學(xué)院91對(duì)象技術(shù)的優(yōu)勢(shì)對(duì)象技術(shù)的優(yōu)勢(shì) 面向?qū)ο蟮哪P透淤N切地反映了現(xiàn)實(shí)世面向?qū)ο蟮哪P透淤N切地反映了現(xiàn)實(shí)世界界 更加準(zhǔn)確地描述公共數(shù)據(jù)和過(guò)程更加準(zhǔn)確地描述公共數(shù)據(jù)和過(guò)程 易于理解,尤其對(duì)于使用者易于理解,尤其對(duì)于使用者現(xiàn)實(shí)世界現(xiàn)實(shí)世界Laser PrinterExternal DriveComputer對(duì)象圖對(duì)象圖2021-10-14大連理工大學(xué)軟件學(xué)院92對(duì)象技術(shù)的優(yōu)勢(shì)對(duì)象技術(shù)的優(yōu)勢(shì) 面向?qū)ο蟮姆椒ㄖС执笠?guī)模開(kāi)發(fā)面向

44、對(duì)象的方法支持大規(guī)模開(kāi)發(fā) 可以嚴(yán)格定義各個(gè)組件之間的交互可以嚴(yán)格定義各個(gè)組件之間的交互 減少內(nèi)部的依賴關(guān)系減少內(nèi)部的依賴關(guān)系 減少集成的問(wèn)題減少集成的問(wèn)題 支持并行開(kāi)發(fā)支持并行開(kāi)發(fā)2021-10-14大連理工大學(xué)軟件學(xué)院93對(duì)象技術(shù)的優(yōu)勢(shì)對(duì)象技術(shù)的優(yōu)勢(shì) 幫助開(kāi)發(fā)多層結(jié)構(gòu)幫助開(kāi)發(fā)多層結(jié)構(gòu) Equipment and Customer specific CodeProcesses and other application code Major abstractions, classes, etc. MechanismsH/W specific code, O/S specific code ge

45、neral-purpose code12345ApplicationSpecificApplicationIndependentLess ReuseMore Reuse2021-10-14大連理工大學(xué)軟件學(xué)院94面向?qū)ο蟾拍蠲嫦驅(qū)ο蟾拍?Object 對(duì)象對(duì)象 Class 類類 Instance 實(shí)例實(shí)例 State 狀態(tài)狀態(tài) Behavior 行為行為 Attribute 屬性屬性 Operation 操作操作 (Method方法方法) Inheritance 繼承繼承 Subclasses 子類子類 Superclasses 父類父類 Generalization 普遍化普遍化 Polym

46、orphism 多態(tài)多態(tài)2021-10-14大連理工大學(xué)軟件學(xué)院95面向?qū)ο蟾拍蠲嫦驅(qū)ο蟾拍?Abstraction 抽象抽象 Encapsulation 封裝封裝 Association 關(guān)聯(lián)關(guān)聯(lián) Role 角色角色 Multiplicity 多重性多重性 Aggregation 聚合聚合 Dependency association 依賴依賴 Package 包包 Use Case 用例用例 Scenario 腳本腳本 Actor2021-10-14大連理工大學(xué)軟件學(xué)院96什么是對(duì)象什么是對(duì)象 一個(gè)對(duì)象代表了一個(gè)現(xiàn)實(shí)的或虛構(gòu)的實(shí)體一個(gè)對(duì)象代表了一個(gè)現(xiàn)實(shí)的或虛構(gòu)的實(shí)體 自然實(shí)體自然實(shí)體 概念

47、實(shí)體概念實(shí)體 軟件實(shí)體軟件實(shí)體化學(xué)過(guò)程化學(xué)過(guò)程連接顯示連接顯示2021-10-14大連理工大學(xué)軟件學(xué)院97對(duì)象的屬性對(duì)象的屬性 對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物抽象或事物 一個(gè)對(duì)象有三個(gè)重要屬性一個(gè)對(duì)象有三個(gè)重要屬性: : 狀態(tài)狀態(tài) 行為行為 標(biāo)識(shí)標(biāo)識(shí) 術(shù)語(yǔ)術(shù)語(yǔ)“實(shí)例實(shí)例”是是“對(duì)象對(duì)象”的同義詞的同義詞2021-10-14大連理工大學(xué)軟件學(xué)院98對(duì)象的狀態(tài)對(duì)象的狀態(tài) 一個(gè)對(duì)象的狀態(tài)是它反映于現(xiàn)實(shí)世界的一一個(gè)對(duì)象的狀態(tài)是它反映于現(xiàn)實(shí)世界的一系列屬性:系列屬性: 參數(shù)的數(shù)值參數(shù)的數(shù)值 ( (也就是也就是, ,與對(duì)象有關(guān)系的數(shù)據(jù)與對(duì)象有關(guān)系的數(shù)

48、據(jù)) ) 它與其它對(duì)象的關(guān)系它與其它對(duì)象的關(guān)系 任一時(shí)刻的歷史狀態(tài)任一時(shí)刻的歷史狀態(tài)可能的狀態(tài):可能的狀態(tài):停泊停泊 運(yùn)營(yíng)運(yùn)營(yíng)著陸著陸 終止終止班機(jī)班機(jī) 747 7472021-10-14大連理工大學(xué)軟件學(xué)院99對(duì)象的行為對(duì)象的行為 定義當(dāng)其它對(duì)象發(fā)出請(qǐng)求時(shí),該對(duì)象如何定義當(dāng)其它對(duì)象發(fā)出請(qǐng)求時(shí),該對(duì)象如何反應(yīng)反應(yīng) 由為對(duì)象定義的一系列操作決定由為對(duì)象定義的一系列操作決定班機(jī)班機(jī) 747核對(duì)出發(fā)時(shí)間核對(duì)出發(fā)時(shí)間(返回返回 9:27)機(jī)票代理機(jī)票代理2021-10-14大連理工大學(xué)軟件學(xué)院100對(duì)象的標(biāo)識(shí)對(duì)象的標(biāo)識(shí) 每一個(gè)對(duì)象都有一個(gè)唯一的標(biāo)識(shí)每一個(gè)對(duì)象都有一個(gè)唯一的標(biāo)識(shí), , 即使其即使其狀態(tài)有

49、可能與其它對(duì)象一樣狀態(tài)有可能與其它對(duì)象一樣班機(jī)班機(jī) 747 on 11/10班機(jī)班機(jī) 747 on 11/11班機(jī)班機(jī) 747 on 11/122021-10-14大連理工大學(xué)軟件學(xué)院101什么是類(什么是類(Class) 類是一組具有相同結(jié)構(gòu)和行為的對(duì)象的集類是一組具有相同結(jié)構(gòu)和行為的對(duì)象的集合合 共同的結(jié)構(gòu)通過(guò)屬性表現(xiàn)出來(lái)共同的結(jié)構(gòu)通過(guò)屬性表現(xiàn)出來(lái) (i.e. 數(shù)據(jù)數(shù)據(jù)) 共同的行為通過(guò)操作表現(xiàn)出來(lái)共同的行為通過(guò)操作表現(xiàn)出來(lái) (i.e. 功能功能)班機(jī)班機(jī) 747結(jié)構(gòu)結(jié)構(gòu)班機(jī)號(hào)班機(jī)號(hào)日期日期分配的班分配的班機(jī)機(jī)起點(diǎn)起點(diǎn)終點(diǎn)終點(diǎn)狀態(tài)狀態(tài)行為行為裝載設(shè)備裝載設(shè)備起飛起飛延遲延遲取消取消終止終止

50、2021-10-14大連理工大學(xué)軟件學(xué)院102類的示例類的示例ClassEmployeeStructureNameAddressPositionSalaryStart DateEnd DateBehaviorHireFirePromoteIncrease SalaryRetire2021-10-14大連理工大學(xué)軟件學(xué)院103類圖:用來(lái)表達(dá)類類圖:用來(lái)表達(dá)類 類圖是一種主要的圖形化對(duì)象表示法類圖是一種主要的圖形化對(duì)象表示法 類圖顯示類及類之間的關(guān)系類圖顯示類及類之間的關(guān)系 一個(gè)類通過(guò)在類圖標(biāo)中的類名(唯一的)來(lái)一個(gè)類通過(guò)在類圖標(biāo)中的類名(唯一的)來(lái)代表代表班機(jī)班機(jī)2021-10-14大連理工大學(xué)

51、軟件學(xué)院104屬性屬性 屬性是類的特征或特性屬性是類的特征或特性 屬性的值是某一特定對(duì)象的屬性值屬性的值是某一特定對(duì)象的屬性值 在類中屬性名必須是唯一的在類中屬性名必須是唯一的 每一個(gè)類的實(shí)例都有為這個(gè)類定義的所有每一個(gè)類的實(shí)例都有為這個(gè)類定義的所有屬性的值屬性的值 例如:例如:銀行帳戶類屬性銀行帳戶類屬性帳號(hào)帳號(hào)銀行名稱銀行名稱擁有者擁有者金額金額Mary的銀行帳戶屬性值的銀行帳戶屬性值12345678First National BankMary Smith$1024.482021-10-14大連理工大學(xué)軟件學(xué)院105操作操作 對(duì)象的行為是由為此對(duì)象定義的一系列操對(duì)象的行為是由為此對(duì)象定義

52、的一系列操作決定的作決定的 操作訪問(wèn)或修改對(duì)象的屬性值操作訪問(wèn)或修改對(duì)象的屬性值 一個(gè)類可能同時(shí)存在多個(gè)實(shí)例,也可能在一個(gè)類可能同時(shí)存在多個(gè)實(shí)例,也可能在某一時(shí)刻沒(méi)有實(shí)例某一時(shí)刻沒(méi)有實(shí)例 一個(gè)類的所有實(shí)例都可以使用在這個(gè)類中一個(gè)類的所有實(shí)例都可以使用在這個(gè)類中定義的操作定義的操作2021-10-14大連理工大學(xué)軟件學(xué)院106屬性和操作的標(biāo)記法屬性和操作的標(biāo)記法 在類的圖標(biāo)中描述屬性和操作在類的圖標(biāo)中描述屬性和操作 通常只顯示最重要的屬性和操作,避免圖通常只顯示最重要的屬性和操作,避免圖形混亂形混亂 屬性顯示在操作上方,操作的名字后跟有屬性顯示在操作上方,操作的名字后跟有()()班機(jī)班機(jī)flig

53、htNumberdatedeparturetimestatusrelease( )takeOff( )屬性屬性操作操作2021-10-14大連理工大學(xué)軟件學(xué)院107類是生成對(duì)象的模板類是生成對(duì)象的模板 類是生成對(duì)象的模板類是生成對(duì)象的模板 類的定義中包含有產(chǎn)生和刪除對(duì)象的操作屬性類的定義中包含有產(chǎn)生和刪除對(duì)象的操作屬性顯示在操作上方,操作的名字后跟有顯示在操作上方,操作的名字后跟有() 一個(gè)類定義了使用哪種數(shù)據(jù)表示法來(lái)描述一個(gè)類定義了使用哪種數(shù)據(jù)表示法來(lái)描述屬性屬性 每一個(gè)實(shí)例都采用有屬性值的數(shù)據(jù)表示法每一個(gè)實(shí)例都采用有屬性值的數(shù)據(jù)表示法 一個(gè)類通過(guò)一系列操作來(lái)定義行為一個(gè)類通過(guò)一系列操作來(lái)定

54、義行為 這種操作能在每個(gè)實(shí)例中激活這種操作能在每個(gè)實(shí)例中激活班機(jī)班機(jī)Flight 187Flight 121Flight 7472021-10-14大連理工大學(xué)軟件學(xué)院108類和對(duì)象的關(guān)系類和對(duì)象的關(guān)系 每一個(gè)對(duì)象都是某一個(gè)類的實(shí)例每一個(gè)對(duì)象都是某一個(gè)類的實(shí)例 每一個(gè)類在某一時(shí)刻都有零個(gè)或更多的實(shí)每一個(gè)類在某一時(shí)刻都有零個(gè)或更多的實(shí) 類是靜態(tài)的類是靜態(tài)的; ; 它們的存在、語(yǔ)義和關(guān)系在它們的存在、語(yǔ)義和關(guān)系在 序執(zhí)行前就已經(jīng)定義好了序執(zhí)行前就已經(jīng)定義好了 對(duì)象是動(dòng)態(tài)的對(duì)象是動(dòng)態(tài)的; ; 它們?cè)诔绦驁?zhí)行時(shí)可以被它們?cè)诔绦驁?zhí)行時(shí)可以被 建和刪除建和刪除2021-10-14大連理工大學(xué)軟件學(xué)院109

55、關(guān)系關(guān)系 所有的系統(tǒng)都包含了大量的類和對(duì)象所有的系統(tǒng)都包含了大量的類和對(duì)象 對(duì)象通過(guò)與其它對(duì)象的協(xié)作完成系統(tǒng)的功對(duì)象通過(guò)與其它對(duì)象的協(xié)作完成系統(tǒng)的功能行為協(xié)作通過(guò)關(guān)系來(lái)實(shí)現(xiàn)能行為協(xié)作通過(guò)關(guān)系來(lái)實(shí)現(xiàn) 幾種重要的關(guān)系類型幾種重要的關(guān)系類型: : 關(guān)聯(lián)關(guān)聯(lián) 聚合聚合 依賴依賴?yán)^承繼承2021-10-14大連理工大學(xué)軟件學(xué)院110示例示例: : 關(guān)聯(lián)關(guān)聯(lián) 在一個(gè)工資系統(tǒng)中有下面兩個(gè)類在一個(gè)工資系統(tǒng)中有下面兩個(gè)類: : 關(guān)聯(lián)表示了雙向的關(guān)系,例如關(guān)聯(lián)表示了雙向的關(guān)系,例如: :給出一個(gè)給出一個(gè)PersonPerson的實(shí)例的實(shí)例, , 我們能夠知道他屬于我們能夠知道他屬于哪家公司哪家公司給出一個(gè)給出一個(gè)

56、 Company Company的實(shí)例的實(shí)例, , 我們能夠知道在其我們能夠知道在其中工作的所有人中工作的所有人PersonCompany2021-10-14大連理工大學(xué)軟件學(xué)院111關(guān)聯(lián)的多重性關(guān)聯(lián)的多重性 多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián)多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián) 多重性通過(guò)位于關(guān)聯(lián)線某一端的一個(gè)表達(dá)多重性通過(guò)位于關(guān)聯(lián)線某一端的一個(gè)表達(dá)式或符號(hào)來(lái)表示式或符號(hào)來(lái)表示 對(duì)于每個(gè)關(guān)聯(lián)關(guān)系對(duì)于每個(gè)關(guān)聯(lián)關(guān)系, 需要做出兩個(gè)多重性的需要做出兩個(gè)多重性的決定決定 例如例如, 在公司和職員的關(guān)聯(lián)中在公司和職員的關(guān)聯(lián)中 每個(gè)公司可以雇用多個(gè)職員每個(gè)公司可以雇用多個(gè)職員 每個(gè)職員只有一個(gè)從屬公司每個(gè)職員只有

57、一個(gè)從屬公司2021-10-14大連理工大學(xué)軟件學(xué)院112示例:關(guān)聯(lián)的多重性示例:關(guān)聯(lián)的多重性 多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題題 職員會(huì)不會(huì)失業(yè)職員會(huì)不會(huì)失業(yè)? ? 公司能不能沒(méi)有職員公司能不能沒(méi)有職員? ? 一個(gè)職員能不能有兩份工作一個(gè)職員能不能有兩份工作? ?職員職員職員職員雇主雇主公司公司1.1.* *1 12021-10-14大連理工大學(xué)軟件學(xué)院113常用的多重性表示法常用的多重性表示法 多重性能解決兩個(gè)問(wèn)題多重性能解決兩個(gè)問(wèn)題 關(guān)聯(lián)是強(qiáng)制的關(guān)聯(lián)是強(qiáng)制的 (不包含零個(gè)不包含零個(gè)) 或隨意的或隨意的 (包含零包含零個(gè)個(gè))? 一個(gè)實(shí)例可以連接的其

58、它實(shí)例的最大數(shù)目一個(gè)實(shí)例可以連接的其它實(shí)例的最大數(shù)目? 常用的多重性表示法常用的多重性表示法: 1只有一個(gè)只有一個(gè) 0.* 零或更多零或更多 1.* 一個(gè)或更多一個(gè)或更多 0.1 零或一個(gè)零或一個(gè) *零或更多零或更多 3.7 指定的范圍指定的范圍 (3 or 4 or 5 or 6 or 7) 1.3,7結(jié)合使用結(jié)合使用 (1 or 2 or 3 or 7)2021-10-14大連理工大學(xué)軟件學(xué)院114自反關(guān)聯(lián)自反關(guān)聯(lián) 自反關(guān)聯(lián)指同一個(gè)類中的對(duì)象的關(guān)系自反關(guān)聯(lián)指同一個(gè)類中的對(duì)象的關(guān)系 表示同一個(gè)類中多個(gè)對(duì)象的協(xié)作表示同一個(gè)類中多個(gè)對(duì)象的協(xié)作A course may have many pre-

59、requisitesA course may be a pre-requisite for many other coursesPre-requisiteCourse0.*0.*2021-10-14大連理工大學(xué)軟件學(xué)院115聚合(包含)聚合(包含) 聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分的關(guān)系的關(guān)系 聚合是一種聚合是一種 “has-a” 或包含的關(guān)系或包含的關(guān)系 同樣可以使用多重性同樣可以使用多重性CompanyDepartment1.*12021-10-14大連理工大學(xué)軟件學(xué)院116依依 賴賴 依賴表示一個(gè)對(duì)象需要其它對(duì)象為其提供依賴表示一個(gè)對(duì)象需要其它對(duì)象

60、為其提供服務(wù)服務(wù) 又可稱為又可稱為client-supplier 關(guān)系關(guān)系 client 使用使用supplier提供的服務(wù)提供的服務(wù) supplier 不需要了解不需要了解 client(s) 單向關(guān)系單向關(guān)系ControllerDisplay Itemcontrols2021-10-14大連理工大學(xué)軟件學(xué)院117繼承繼承 繼承表示一個(gè)類從其它類中獲得結(jié)構(gòu)和行繼承表示一個(gè)類從其它類中獲得結(jié)構(gòu)和行為(子類為(子類/父類)父類) 又名普遍化又名普遍化 交通工具是一個(gè)父類交通工具是一個(gè)父類 地面交通工具和空中交通工具是子類地面交通工具和空中交通工具是子類VehicleGroundVehicleAi

溫馨提示

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