軟件工程理論與實(shí)踐 課件全套 廉龍穎 第1-11章 軟件工程概述 - 軟件項(xiàng)目管理_第1頁
軟件工程理論與實(shí)踐 課件全套 廉龍穎 第1-11章 軟件工程概述 - 軟件項(xiàng)目管理_第2頁
軟件工程理論與實(shí)踐 課件全套 廉龍穎 第1-11章 軟件工程概述 - 軟件項(xiàng)目管理_第3頁
軟件工程理論與實(shí)踐 課件全套 廉龍穎 第1-11章 軟件工程概述 - 軟件項(xiàng)目管理_第4頁
軟件工程理論與實(shí)踐 課件全套 廉龍穎 第1-11章 軟件工程概述 - 軟件項(xiàng)目管理_第5頁
已閱讀5頁,還剩283頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)理解軟件和軟件工程的相關(guān)概念;(2)了解軟件工程的發(fā)展歷程;(3)理解軟件的生命周期及階段任務(wù);(4)掌握常用的軟件過程模型,能夠根據(jù)實(shí)際軟件項(xiàng)目選擇較合適的開發(fā)模型。第1章軟件工程概述1.1軟件

1.1.1軟件的概念程序軟件產(chǎn)品程序文檔數(shù)據(jù)是能夠完成預(yù)定功能的可執(zhí)行的指令序列。是程序能夠適當(dāng)操作的信息。是開發(fā)、使用和維護(hù)程序所需要的闡明性資料。程序數(shù)據(jù)文檔軟件可以形式化地表示如下:軟件=程序+數(shù)據(jù)+文檔1.1.1軟件的概念軟件是一種抽象的邏輯實(shí)體。1.1.2軟件的特點(diǎn)軟件是一種智力產(chǎn)品。軟件開發(fā)至今尚未擺脫手工開發(fā)方式。軟件需要維護(hù)。軟件產(chǎn)品010203按照軟件功能分類系統(tǒng)軟件支撐軟件應(yīng)用軟件按照軟件規(guī)模分類微型軟件小型軟件中型軟件大型軟件超大型軟件按照服務(wù)對(duì)象分類通用軟件定制軟件1.1.3軟件的分類1.2軟件工程的產(chǎn)生1.2.1軟件生產(chǎn)的發(fā)展個(gè)人程序時(shí)代軟件是為某種特定型號(hào)的計(jì)算機(jī)設(shè)備而專門配置的程序。20世紀(jì)50年代201620世紀(jì)60年代軟件工程時(shí)代1968年首次提出了“軟件工程”這一概念。軟件作坊時(shí)代出現(xiàn)了若干高級(jí)程序設(shè)計(jì)語言,“軟件危機(jī)”現(xiàn)象爆發(fā)。20世紀(jì)70年代至今軟件產(chǎn)品不能滿足用戶的需求。軟件產(chǎn)品成本高,開發(fā)進(jìn)度難以準(zhǔn)確估計(jì)。軟件產(chǎn)品可維護(hù)性差。軟件產(chǎn)品質(zhì)量差,可靠性得不到保證。軟件產(chǎn)品文檔不完備。軟件危機(jī)定義:軟件危機(jī)是指在軟件開發(fā)和軟件維護(hù)過程中所遇到的一系列問題。1.2.2軟件危機(jī)“軟件工程軟件工程是將系統(tǒng)化的、規(guī)范化的、可度量的途徑應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件的方法的研究。1.3軟件工程1.3.1軟件工程概念工具方法過程

軟件工程方法學(xué)有三個(gè)要素:方法、工具和過程。方法是指完成軟件開發(fā)任務(wù)的技術(shù)方法;工具是指為方法的運(yùn)用提供自動(dòng)或半自動(dòng)的軟件支撐環(huán)境;過程是指規(guī)定了完成任務(wù)的工作階段、工作內(nèi)容、產(chǎn)品、驗(yàn)收的步驟和完成準(zhǔn)則。1.3.2軟件工程方法學(xué)結(jié)構(gòu)化方法結(jié)構(gòu)化方法采用自上向下、逐步求精的指導(dǎo)思想,把軟件開發(fā)工作劃分成若干個(gè)階段,每個(gè)階段相對(duì)獨(dú)立。面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ú捎米缘紫蛏虾妥皂斚蛳孪嘟Y(jié)合的方法,以對(duì)象建模為基礎(chǔ),運(yùn)用對(duì)象、類、消息傳遞、繼承、封裝等概念來構(gòu)造軟件產(chǎn)品。1.3.2軟件工程方法學(xué)1.4軟件過程

國際標(biāo)準(zhǔn)化組織ISO將軟件過程定義為:“把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)”。1.4.1軟件生命周期軟件生命周期是指一個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。1.可行性研究:可行性研究是對(duì)準(zhǔn)備開發(fā)的軟件項(xiàng)目的可行性進(jìn)行風(fēng)險(xiǎn)評(píng)估。一般從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性等方面進(jìn)行分析,并形成可行性研究報(bào)告,由此決定軟件項(xiàng)目是否繼續(xù)進(jìn)行下去。2.需求分析:需求分析是一個(gè)復(fù)雜的過程,其成功與否直接關(guān)系到軟件開發(fā)的成敗。需求分析以用戶需求為基本依據(jù),從功能、性能、操作等多個(gè)方面,給出軟件完整的和準(zhǔn)確的描述,從而形成軟件需求規(guī)格說明書。3.軟件設(shè)計(jì):軟件設(shè)計(jì)就是把需求規(guī)格說明書中描述的功能可操作化,它可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。概要設(shè)計(jì)旨在建立系統(tǒng)的總體結(jié)構(gòu),主要體現(xiàn)在模塊的構(gòu)成與模塊接口兩個(gè)方面,形成概要設(shè)計(jì)說明書。詳細(xì)設(shè)計(jì)以概要設(shè)計(jì)為依據(jù),確定每個(gè)模塊的內(nèi)部細(xì)節(jié),并形成詳細(xì)設(shè)計(jì)說明書,為編碼實(shí)現(xiàn)階段提供最直接的依據(jù)。4.編碼實(shí)現(xiàn):編碼實(shí)現(xiàn)就是把詳細(xì)設(shè)計(jì)文檔中對(duì)每個(gè)模塊的算法描述轉(zhuǎn)換為使用某種程序設(shè)計(jì)語言實(shí)現(xiàn)的程序。在編碼實(shí)現(xiàn)過程中,必須遵守一定的標(biāo)準(zhǔn)和規(guī)范,這樣可以提高代碼的質(zhì)量,并且便于后期維護(hù)。5.軟件測試:

軟件測試一般可以分為單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試和驗(yàn)收測試等。通過軟件測試可以發(fā)現(xiàn)軟件中存在的缺陷,保證軟件產(chǎn)品的質(zhì)量。6.軟件維護(hù):

軟件產(chǎn)品交付后,還需要進(jìn)行長期的軟件維護(hù)。軟件的維護(hù)過程,也是軟件的功能更新、版本升級(jí)的過程。通常情況下,軟件產(chǎn)品的質(zhì)量越高,進(jìn)行維護(hù)的工作量越小。1.4.1軟件生命周期1.4.2軟件過程模型定義:過程模型是一個(gè)包括軟件產(chǎn)品開發(fā)、運(yùn)行和維護(hù)中有關(guān)過程、活動(dòng)和任務(wù)的框架,這些過程、活動(dòng)和任務(wù)覆蓋了從該軟件的需求定義到軟件使用終止的全過程。瀑布模型增量模型螺旋模型噴泉模型演化模型原型模型

瀑布模型是20世紀(jì)80年代之前最受推崇的軟件開發(fā)模型。瀑布模型的適用范圍:(1)適用于項(xiàng)目開始時(shí)需求已確定的情況;(2)開發(fā)人員對(duì)軟件的應(yīng)用領(lǐng)域很熟悉。1.4.2軟件過程模型增量模型也稱為漸增模型。增量模型的適用范圍:(1)進(jìn)行已有產(chǎn)品升級(jí)或新版本開發(fā);(2)對(duì)所開發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng)。增量模型示意圖1.4.2軟件過程模型演化模型是一種有彈性的過程模式。演化模型示意圖1.4.2軟件過程模型

螺旋模型將瀑布模型與演化模型結(jié)合起來,加入了兩種模型均忽略了的風(fēng)險(xiǎn)分析。螺旋模型示意圖1.4.2軟件過程模型噴泉模型是典型的面向?qū)ο筌浖_發(fā)模型,著重強(qiáng)調(diào)不同階段之間的重疊。噴泉模型示意圖1.4.2軟件過程模型

原型模型也稱為快速原型模型,它是指快速開發(fā)一個(gè)可以運(yùn)行的原型系統(tǒng)。原型模型示意圖1.4.2軟件過程模型本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)了解可行性研究的內(nèi)容和步驟;(2)理解操作可行性研究與法律可行性研究的任務(wù);(3)掌握技術(shù)可行性研究和經(jīng)濟(jì)可行性研究的方法;(4)能夠編寫小型項(xiàng)目的可行性研究報(bào)告。第2章可行性研究基本可行,需要對(duì)解決方案做出修改。不可行,終止項(xiàng)目。程序可行,按計(jì)劃進(jìn)行。可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi),確定該軟件的開發(fā)問題是否能解決,最終決定“做還是不做”的問題。2.1可行性研究內(nèi)容

可行性研究的結(jié)論有以下3種情況。2.1可行性研究內(nèi)容請(qǐng)輸入標(biāo)題請(qǐng)輸入標(biāo)題可行性研究技術(shù)可行性操作可行性經(jīng)濟(jì)可行性法律可行性請(qǐng)輸入標(biāo)題請(qǐng)輸入您的標(biāo)題請(qǐng)輸入您的標(biāo)題請(qǐng)請(qǐng)輸入您的標(biāo)題2.2可行性研究步驟步驟1步驟2步驟3步驟5步驟4明確系統(tǒng)目標(biāo)分析研究現(xiàn)有系統(tǒng)設(shè)計(jì)新系統(tǒng)的高層邏輯模型獲得并比較可行的方案撰寫可行性研究報(bào)告2.3技術(shù)可行性技術(shù)可行性一般要考慮的情況如下:(1)技術(shù)。通過調(diào)查了解當(dāng)前最先進(jìn)的技術(shù),分析相關(guān)技術(shù)的發(fā)展是否支持系統(tǒng)開發(fā)。(2)資源有效性??紤]是否具備用于建立系統(tǒng)的硬件設(shè)備、軟件、開發(fā)環(huán)境等資源,以及用于開發(fā)項(xiàng)目的人員在技術(shù)和時(shí)間上是否存在問題。2.4經(jīng)濟(jì)可行性1.成本估算方法(1)代碼行技術(shù):這是最簡單的定量估算方法,它把開發(fā)每個(gè)軟件功能的成本和實(shí)現(xiàn)這個(gè)功能需要的源代碼行數(shù)聯(lián)系起來,一旦估算出源代碼行數(shù)以后,用每行代碼的平均成本乘以行數(shù)就可以確定軟件的成本。(2)任務(wù)分解技術(shù):這種方法首先把軟件開發(fā)過程分解為若干個(gè)獨(dú)立的任務(wù),再分別估算每個(gè)單獨(dú)任務(wù)的成本,最后累加起來得出軟件開發(fā)的總成本。(3)自動(dòng)估算成本技術(shù):這種方法可以減輕人的勞動(dòng),但是要有大量的經(jīng)驗(yàn)數(shù)據(jù)和專家系統(tǒng)知識(shí)庫作為支持。任務(wù)估計(jì)人力(人月)人力成本(元/人月)成本(元)需求分析51020051000設(shè)計(jì)159600144000編碼和單元測試8795063600綜合測試16.587001435502.4經(jīng)濟(jì)可行性2.度量效益方法有形效益可以使用貨幣的時(shí)間價(jià)值、投資回收期、純收入等指標(biāo)進(jìn)行度量。無形效益很難直接進(jìn)行度量,主要是從性質(zhì)上、心理上進(jìn)行衡量。有形效益無形效益(1)貨幣的時(shí)間價(jià)值:軟件項(xiàng)目投資是現(xiàn)在的,效益是將來獲得的,因此需要考慮貨幣的時(shí)間價(jià)值。通常用利率表示貨幣的時(shí)間價(jià)值。假設(shè)年利率為i,投資額P在n年后的價(jià)值F為這就是P元錢存到銀行n年后的價(jià)值。反之,如果n年后收入F元,那么這些錢現(xiàn)在的價(jià)值P為【例2-1】某企業(yè)引入某軟件系統(tǒng)來代替人工作業(yè),每年可節(jié)省5萬元。若軟件可使用7年,開發(fā)系統(tǒng)需要花費(fèi)16萬元。時(shí)間/年第n年產(chǎn)生的效益(萬元)(1+i)n

第n年產(chǎn)生的效益折合成現(xiàn)在價(jià)值(萬元)

累計(jì)(萬元)

151.05004.76194.7619251.10254.53519.2970351.15764.319313.6163451.21554.113517.7298551.27633.917621.6474651.34013.731125.3785751.40713.553428.9319(2)投資回收期:投資回收期是衡量工程價(jià)值的一個(gè)經(jīng)濟(jì)指標(biāo)。投資回收期是指軟件項(xiàng)目累計(jì)的經(jīng)濟(jì)效益等于最初投資成本時(shí)所需要的時(shí)間。投資回收期越短,說明利潤獲取越快,軟件項(xiàng)目越值得投資。例2-1中引入某軟件系統(tǒng)4年后企業(yè)可節(jié)省17.7298萬元,投資已全部回收,并產(chǎn)生贏利1.7298萬元,那么1.7298/4.1135=0.42因此,投資回收期是4-0.42=3.58年。(3)純收入:純收入是衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)。純收入指在軟件的使用壽命期內(nèi)累計(jì)產(chǎn)生的經(jīng)濟(jì)效益(折合成現(xiàn)在價(jià)值)與投資成本之差。若某項(xiàng)目的純收入小于0,則該項(xiàng)目是不值得投資的。例2-1中引入某軟件系統(tǒng)7年后,項(xiàng)目的純收入預(yù)計(jì)是28.9319-16=12.9319萬元

很明顯,這個(gè)軟件項(xiàng)目是值得開發(fā)的。【例2-2】

本實(shí)例要求實(shí)現(xiàn)某高校財(cái)務(wù)問答系統(tǒng),分為用戶端和管理端。用戶端是手機(jī)端子系統(tǒng),主要用于用戶問答,主要包括查詢問題、查看答案、反饋問題等功能。管理端是PC端子系統(tǒng),主要用于財(cái)務(wù)問答相關(guān)數(shù)據(jù)的后臺(tái)管理,主要包括用戶管理、教職工管理、類別管理、問題管理、統(tǒng)計(jì)管理和反饋管理等功能。2.4可行性研究實(shí)例本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)理解軟件需求分析的概念和特點(diǎn);(2)掌握需求分析的具體任務(wù)及過程;(3)掌握需求獲取的方法;(4)能夠編寫小型項(xiàng)目的需求規(guī)格說明書。第3章軟件需求工程3.1.1軟件需求1.什么是需求IEEE軟件工程標(biāo)準(zhǔn)詞匯表中對(duì)需求的定義是:(1)用戶解決問題或達(dá)到目標(biāo)所需的條件或能力;(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力;(3)一種反映上面(1)或(2)所描述的條件或能力的文檔說明。3.1

需求工程概述

3.1

需求工程概述功能性需求

功能性需求主要描述軟件應(yīng)該做什么,即為用戶或其他系統(tǒng)完成的功能、提供的服務(wù)。功能性需求是軟件的一項(xiàng)基本需求,但并不是唯一的需求。非功能性需求

非功能性需求主要描述軟件質(zhì)量屬性的特性,包括易用性、可靠性、執(zhí)行速度以及異常處理能力等。

3.1

需求工程概述軟件產(chǎn)品要滿足用戶所需就要?jiǎng)?chuàng)建良好的需求,一般良好的需求應(yīng)該包含以下9個(gè)特性:(1)正確性:技術(shù)可行,內(nèi)容合法,符合軟件設(shè)計(jì)實(shí)際要求;(2)完整性:能夠表達(dá)一個(gè)完整的想法;(3)清晰性:不易被錯(cuò)誤理解,不模棱兩可;(4)一致性:不與其它需求相沖突;(5)可追蹤性:可以唯一識(shí)別并進(jìn)行跟蹤;(6)可驗(yàn)證性:可驗(yàn)證軟件能夠滿足用戶需求;(7)可行性:可以在預(yù)期成本和計(jì)劃進(jìn)度內(nèi)完成;(8)模塊化:可單獨(dú)變更而不影響其它需求,或不會(huì)造成較大影響;(9)獨(dú)立于設(shè)計(jì):不包括項(xiàng)目設(shè)計(jì)和實(shí)現(xiàn)的細(xì)節(jié)、計(jì)劃信息等。3.1.2需求分析需求分析是研究用戶要求,以得到目標(biāo)系統(tǒng)的需求定義的過程,即理解、分析和表達(dá)“系統(tǒng)必須做什么”的過程。

客戶需求的模糊性對(duì)問題空間理解的不完備性與不一致性客戶需求的動(dòng)態(tài)性需求分析過程需求獲取需求提煉需求描述需求驗(yàn)證角色名稱描述用戶直接操作軟件的人員客戶軟件開發(fā)的委托方或軟件市場的目標(biāo)客戶需求分析人員負(fù)責(zé)進(jìn)行需求搜集,并進(jìn)行分析形成軟件需求規(guī)格說明書3.2

需求獲取3.2.2需求獲取存在問題(1)分析人員與用戶的溝通問題(2)誤解客戶需求問題(3)需求的不確定性問題(4)獲取方法問題(5)時(shí)間問題3.2.3需求獲取方法1.訪談2.問卷調(diào)查3.實(shí)地考查4.情景分析5.構(gòu)造原型3.2.4提高獲取的效率

1.主動(dòng)了解客戶業(yè)務(wù)和相關(guān)知識(shí)2.及時(shí)整理記錄3.對(duì)客戶進(jìn)行正確分類4.引導(dǎo)客戶,使其充分表達(dá)自己的想法5.充分利用需求確認(rèn)會(huì)議6.需求是變動(dòng)的7.及時(shí)交流3.2.5需求獲取實(shí)例

【例3-1】高校財(cái)務(wù)問答系統(tǒng)需求獲取實(shí)例1.確定用戶類型2.確定場景3.3需求提煉3.3.1需求分析模型所謂模型,就是為了理解事物而對(duì)該事物做出的一種抽象,在軟件工程中的模型由一組圖形符號(hào)和組織這些符號(hào)的規(guī)則組成。3.3.2需求分析模型分類1.域建模2.用例建模3.組件和服務(wù)建模4.性能建模3.3.3需求分析建模方法

結(jié)構(gòu)化分析建模方法是從數(shù)據(jù)流進(jìn)行分析,用數(shù)據(jù)流程圖把要開發(fā)的軟件功能結(jié)構(gòu)表示出來,這種圖形是軟件的功能模型,所以它是一種建?;顒?dòng)。面向?qū)ο蠓治鼋2粌H僅是新的編程語言的匯總。它是一種新的思維方式,一種關(guān)于計(jì)算和信息結(jié)構(gòu)化的新思維。面向?qū)ο蟮姆治鼋?梢砸暈槭且粋€(gè)包含抽象、封裝、模塊化、層次、分類、并行、穩(wěn)定、可重用和可擴(kuò)展性等元素概念的框架。3.4需求描述3.4.1需求描述方法通常有三種方法進(jìn)行需求描述:(1)用好的結(jié)構(gòu)化和自然語言編寫文本型文檔;(2)建立圖形化模型,這些模型可以描繪轉(zhuǎn)換過程、系統(tǒng)狀態(tài)和它們之間的變化、數(shù)據(jù)關(guān)系、邏輯流或?qū)ο箢惡退鼈兊年P(guān)系;(3)編寫形式化規(guī)模說明,可以通過使用數(shù)學(xué)上精確的形式化邏輯語言來定義需求。盡管形式化規(guī)格說明具有很強(qiáng)的嚴(yán)密性和精確度,但由于其所使用的形式化語言只有極少數(shù)專業(yè)人員才熟悉,所以,這一方法一直沒有在工業(yè)界得到普遍使用。3.4.2軟件需求規(guī)格說明軟件需求規(guī)格說明書(SoftwareRequirementSpecification,SRS)是需求分析的結(jié)果,它具有廣泛的使用范圍,并成為客戶、分析人員和設(shè)計(jì)人員之間進(jìn)行理解和交流的手段。客戶通過需求規(guī)格說明書指定需求,檢查需求描述是否滿足原來的期望;設(shè)計(jì)人員通過需求規(guī)格說明書了解軟件需要開發(fā)的內(nèi)容,將其作為軟件設(shè)計(jì)的基本出發(fā)點(diǎn);測試人員根據(jù)軟件需求規(guī)格說明書中對(duì)產(chǎn)品行為的描述,制定測試計(jì)劃、測試用例和測試過程;產(chǎn)品發(fā)布人員根據(jù)軟件需求規(guī)格說明書和用戶界面設(shè)計(jì)編寫用戶手冊(cè)等文檔。3.4.3需求描述的編寫原則(1)句子和段落要短。使用正確的語法、拼寫、標(biāo)點(diǎn)。使用術(shù)語,要保持一致性,并在術(shù)語表或數(shù)據(jù)字典中定義它們。(2)要檢查需求是否被有效地定義。換句話說,作為軟件需求規(guī)格說明的編寫者,是否需要說明書以外的解釋,來幫助開發(fā)人員很好地理解需求,以便于設(shè)計(jì)和實(shí)現(xiàn)?如果是的話,說明書需求還需要精化。(3)需求編寫者還要努力正確地把握細(xì)化程度。要避免包含多個(gè)需求的冗長的敘述段落。盡量編寫?yīng)毩⒌目蓽y試的需求,如果一小部分測試就可以驗(yàn)證一個(gè)需求的正確性,那么它已經(jīng)正確地被細(xì)化了。如果預(yù)想到多種不同的測試,則幾個(gè)需求可能已關(guān)聯(lián)在一起,需要拆分開。(4)密切關(guān)注合成了多個(gè)需求的單個(gè)需求。一個(gè)需求中的連接詞“和”與“或”表示了幾個(gè)需求的合并。盡量避免在一個(gè)需求中使用“和”與“或”。(5)通篇文檔細(xì)節(jié)上要保持一致。在多處包含相同的需求可以使文檔更易于閱讀,但也會(huì)給文檔的維護(hù)增加困難。文檔涉及的多份文本要在同一時(shí)間內(nèi)全部更新,避免不一致性。3.5需求驗(yàn)證需求分析的最后一步是驗(yàn)證以上需求分析成果。需求分析階段的工作成果是后續(xù)軟件開發(fā)的基礎(chǔ),為了提高軟件開發(fā)質(zhì)量,降低軟件開發(fā)的成本,必須對(duì)需求的正確性進(jìn)行嚴(yán)格的驗(yàn)證,確定需求的一致性、完整性和有效性。確保設(shè)計(jì)與實(shí)現(xiàn)過程中的需求可回溯,并進(jìn)行需求變更管理。3.5.1需求驗(yàn)證標(biāo)準(zhǔn)1.正確性2.無歧義性3.完整性4.可驗(yàn)證性5.一致性6.可修改性7.可追蹤性3.5.2如何做好需求驗(yàn)證1.分層次和分階段評(píng)審用戶的需求可以分層次,一般而言可以分成如下的層次:(1)目標(biāo)性需求:定義了整個(gè)系統(tǒng)需要達(dá)到的目標(biāo);(2)功能性需求:定義了整個(gè)系統(tǒng)必須完成的任務(wù);(3)操作性需求:定義了完成每個(gè)任務(wù)時(shí)具體的人機(jī)交互。2.正式評(píng)審與非正式評(píng)審結(jié)合3.精心挑選和培訓(xùn)評(píng)審員4.建立標(biāo)準(zhǔn)的評(píng)審流程和充分準(zhǔn)備評(píng)審5.做好評(píng)審后的跟蹤工作3.6需求管理3.6.1需求變更控制1.需求變更的原因(1)對(duì)需求的理解存在分歧(2)系統(tǒng)實(shí)施時(shí)間過長(3)用戶業(yè)務(wù)需求改變(4)系統(tǒng)正常升級(jí)2.需求變更流程變更控制是在一定的流程下有效地實(shí)施整個(gè)變更過程,需求變更流程如圖3-3所示,應(yīng)該包括以下4個(gè)部分:(1)仔細(xì)評(píng)估已建議的變更;(2)挑選合適的人選對(duì)變更做出決定;(3)變更應(yīng)及時(shí)通知所涉及的人員;(4)項(xiàng)目要按一定的流程實(shí)施需求變更。3.6.2需求跟蹤一個(gè)管理系統(tǒng)的需求跟蹤通常應(yīng)該滿足,第一,能夠完整地定義需求之間的各種關(guān)系,并提供可視化表示方式;第二,在需求變更時(shí),系統(tǒng)能夠按照所定義的需求跟蹤鏈,跟蹤到所有受影響的需求。同時(shí),管理人員也需要進(jìn)行需求狀態(tài)跟蹤,以了解項(xiàng)目工程進(jìn)行到了何種程度,從而對(duì)項(xiàng)目進(jìn)度進(jìn)行控制。3.7應(yīng)用案例——高校財(cái)務(wù)問答系統(tǒng)需求描述3.7.1引言本文檔是軟件開發(fā)者和客戶之間簽訂的一份契約,保證客戶需求的穩(wěn)定性,為軟件開發(fā)者提供軟件開發(fā)過程的憑據(jù)。1.項(xiàng)目目的和目標(biāo)本系統(tǒng)的目的在于創(chuàng)建一個(gè)財(cái)務(wù)問答平臺(tái),有助于解決大部分教職工的常見財(cái)務(wù)相關(guān)問題,減少財(cái)務(wù)部門工作人員回答咨詢問題的工作量。2.用戶簡介本系統(tǒng)面向的是各類高校,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,需要為一些工作開發(fā)管理系統(tǒng)幫助減輕工作人員工作量。3.參考文獻(xiàn)略4.版本更新信息3.7.2綜合描述1.組織結(jié)構(gòu)與職責(zé)本系統(tǒng)用戶的組織結(jié)構(gòu)與角色。2.角色定義組織結(jié)構(gòu)圖中各用戶類型的職責(zé)說明。3.7.3目標(biāo)系統(tǒng)功能需求3.7.4目標(biāo)系統(tǒng)性能需求1.時(shí)間需求(1)檢查輸入資料合法性的時(shí)間應(yīng)少于1秒;(2)查詢的最長等待時(shí)間應(yīng)少于5秒;(3)更新信息的時(shí)間應(yīng)少于3秒;(4)信息上傳和下載的時(shí)間應(yīng)少于10秒。2.空間需求(1)支持的終端數(shù):<=1500;(2)支持的并行操作的使用者數(shù):<=300。3.7.5目標(biāo)系統(tǒng)界面與接口需求1.界面需求本系統(tǒng)的界面遵循風(fēng)格統(tǒng)一,兼容常用移動(dòng)端系統(tǒng)和管理端瀏覽器。2.接口需求點(diǎn)列表/接口模型無接口。3.7.6目標(biāo)系統(tǒng)其他需求1.安全性(1)用戶端和管理端必須登錄后才可以使用。(2)任何等級(jí)的用戶登錄時(shí)需要填寫正確的驗(yàn)證碼。2.可靠性(1)不會(huì)因?yàn)橐恍╁e(cuò)誤而導(dǎo)致系統(tǒng)崩潰或數(shù)據(jù)丟失,保證系統(tǒng)長時(shí)間運(yùn)行不會(huì)出現(xiàn)任何錯(cuò)誤。(2)設(shè)計(jì)過程充分考慮惡意代碼等非法入侵行為,盡量達(dá)到安全性最高。3.培訓(xùn)需求鑒于本系統(tǒng)使用比較簡單、方便,僅提供用戶端和管理端操作視頻和用戶使用手冊(cè),無需培訓(xùn)服務(wù)。本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)理解結(jié)構(gòu)化分析過程;(2)掌握數(shù)據(jù)模型、功能模型和行為模型的建模方法;(3)能夠利用結(jié)構(gòu)化分析描述工具編寫軟件需求文檔。第4章結(jié)構(gòu)化分析4.1結(jié)構(gòu)化分析概述4.1.1結(jié)構(gòu)化分析過程要對(duì)一個(gè)系統(tǒng)進(jìn)行結(jié)構(gòu)化分析,首先要明確這一階段的任務(wù)是要搞清楚“做什么”。結(jié)構(gòu)化分析的過程可以分為如下4個(gè)步驟。1.建立當(dāng)前系統(tǒng)的物理模型2.抽象出當(dāng)前系統(tǒng)的邏輯模型3.建立目標(biāo)系統(tǒng)的邏輯模型4.進(jìn)一步補(bǔ)充和優(yōu)化4.1.2結(jié)構(gòu)化分析模型結(jié)構(gòu)化分析方法用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞和變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能需求的所有可實(shí)現(xiàn)的軟件元素為止。結(jié)構(gòu)化分析模型,如圖4-1所示,分為數(shù)據(jù)模型、功能模型和行為模型。為了定義軟件的功能,建立功能模型;為了理解和表示問題的信息域,建立數(shù)據(jù)模型;為了表示軟件的行為,建立行為模型。結(jié)構(gòu)化分析模型的核心是數(shù)據(jù)字典,用來描述軟件使用或產(chǎn)生的所有數(shù)據(jù)對(duì)象。功能模型使用數(shù)據(jù)流圖進(jìn)行描述;數(shù)據(jù)模型使用實(shí)體-關(guān)系圖進(jìn)行描述;行為模型使用狀態(tài)轉(zhuǎn)換圖進(jìn)行描述。4.2數(shù)據(jù)流圖4.2.1數(shù)據(jù)流圖的基本成分1.?dāng)?shù)據(jù)的源點(diǎn)/終點(diǎn)2.加工3.文件4.?dāng)?shù)據(jù)流4.2.2數(shù)據(jù)流圖的實(shí)現(xiàn)1.?dāng)?shù)據(jù)流圖表示2.?dāng)?shù)據(jù)流圖實(shí)現(xiàn)方法(1)找出系統(tǒng)的輸入和輸出(2)繪制系統(tǒng)的內(nèi)部(3)繪制加工的內(nèi)部3.數(shù)據(jù)流圖實(shí)例【例4-1】某高校教材管理系統(tǒng)。某高校教材管理系統(tǒng)工作過程如下:教師填寫領(lǐng)書單,經(jīng)主管審查簽名批準(zhǔn)后,教師到教材科領(lǐng)取教材;教材科管理員檢查領(lǐng)書單是否符合審批手續(xù),不合格的領(lǐng)書單退還教師,領(lǐng)書單合格則辦理領(lǐng)書手續(xù),進(jìn)行登記,修改庫存量并發(fā)放教材;當(dāng)某種教材的庫存量低于事先規(guī)定的臨界值時(shí),登記需求采購教材的訂貨信息,為教材科采購員提供一張訂書單。(1)繪制數(shù)據(jù)流圖頂層把整個(gè)系統(tǒng)視為一個(gè)大的加工,然后根據(jù)數(shù)據(jù)系統(tǒng)從哪些外部實(shí)體接收數(shù)據(jù)流,以及系統(tǒng)發(fā)送數(shù)據(jù)流到哪些外部實(shí)體,就可以繪制出輸入輸出圖,這張圖也就是數(shù)據(jù)流圖頂層圖。列出教材管理系統(tǒng)的全部數(shù)據(jù)源點(diǎn)和數(shù)據(jù)終點(diǎn)。源點(diǎn)包括教師;終點(diǎn)包括教材科管理員和教材科采購員。然后將系統(tǒng)加工處理過程作為一個(gè)整體,可以得到頂層數(shù)據(jù)流圖。教材管理系統(tǒng)頂層數(shù)據(jù)流圖。(2)繪制各層數(shù)據(jù)流圖

把頂層圖的加工分解成若干個(gè)加工,并用數(shù)據(jù)流將這些加工連接起來,使得頂層圖的輸入數(shù)據(jù)經(jīng)過若干加工處理后,變成頂層圖的輸出數(shù)據(jù)流。這張圖被稱為第1層數(shù)據(jù)流圖。從輸入端開始,根據(jù)教材科業(yè)務(wù)工作流程,繪制出數(shù)據(jù)流流經(jīng)的各加工框,逐步繪制出輸出端,得到1層數(shù)據(jù)流圖。教材管理系統(tǒng)1層數(shù)據(jù)流圖。

然后需要分解和細(xì)化各加處理過程,可以得到分解數(shù)據(jù)流圖。教材管理系統(tǒng)加工1分解數(shù)據(jù)流圖。(3)繪制總體數(shù)據(jù)流圖將各層數(shù)據(jù)流圖進(jìn)行合并,形成總體數(shù)據(jù)流圖。教材管理系統(tǒng)總體數(shù)據(jù)流圖。4.3實(shí)體-關(guān)系圖4.3.1數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象是對(duì)軟件必須理解的復(fù)合信息的表示。所謂復(fù)合信息是指具有一系列不同性質(zhì)或?qū)傩缘氖聞?wù),僅有單個(gè)值的事務(wù)不是數(shù)據(jù)對(duì)象,例如長度、寬度等。數(shù)據(jù)對(duì)象只封裝了數(shù)據(jù)而沒有對(duì)作用于數(shù)據(jù)上的操作的引用,這是數(shù)據(jù)對(duì)象與面向?qū)ο蠓椒ㄖ兴枋龅摹邦悺被颉皩?duì)象”的顯著區(qū)別。數(shù)據(jù)對(duì)象可以是外部實(shí)體、事物、行為、事件、角色、單位、地點(diǎn)、結(jié)構(gòu)等。例如,學(xué)生成績管理系統(tǒng)中的教師、學(xué)生和課程都可以認(rèn)為是數(shù)據(jù)對(duì)象,它們都可以由一組屬性來定義?!皵?shù)據(jù)對(duì)象描述”中包含了數(shù)據(jù)對(duì)象及它們的所有屬性,數(shù)據(jù)對(duì)象彼此之間是有關(guān)聯(lián)的。4.3.2屬性屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。一個(gè)數(shù)據(jù)對(duì)象往往具有很多屬性,應(yīng)該根據(jù)對(duì)所要解決問題的理解,來確定數(shù)據(jù)對(duì)象的一組合適的屬性。例如,教材管理系統(tǒng)中描述數(shù)據(jù)對(duì)象“教師”的屬性包括工號(hào)、姓名和密碼等。但如果在教師信息管理系統(tǒng)中,同樣的“教師”這個(gè)數(shù)據(jù)對(duì)象,但是用上述這些屬性描述就不滿足系統(tǒng)需求了,應(yīng)該添加一些屬性,例如職稱、年齡、籍貫、身份證號(hào)等。4.3.3關(guān)系數(shù)據(jù)對(duì)象彼此之間是有關(guān)聯(lián)的,也被稱為關(guān)系。例如,數(shù)據(jù)對(duì)象“教師”和“教材”之間的連接關(guān)系是“領(lǐng)用”。這種關(guān)聯(lián)的形態(tài)有以下3種:(1)一對(duì)一關(guān)聯(lián)。例如,一個(gè)高校只有一個(gè)教材科,而一個(gè)教材科只能屬于某一所高校,所以高校與教材科的聯(lián)系是一對(duì)一的。(2)一對(duì)多關(guān)聯(lián)。例如,一個(gè)出版社可以出版多本教材,但某一本教材只能由一個(gè)出版社出版發(fā)行,所以出版社與教材之間的聯(lián)系是一對(duì)多的。(3)多對(duì)多關(guān)聯(lián)。例如,一名教師可以領(lǐng)用多門課程的教材,一門課程的教材也可以被多名教師領(lǐng)用,所以教師與教材之間的聯(lián)系是多對(duì)多的。4.3.4實(shí)體-關(guān)系圖的實(shí)現(xiàn)1.實(shí)體-關(guān)系圖表示E-R圖有以下3個(gè)要素:(1)實(shí)體:就是現(xiàn)實(shí)世界的事物,用矩形表示。(2)屬性:定義了實(shí)體的性質(zhì),用橢圓形表示。(3)關(guān)系:是實(shí)體之間相互連接的方式,用菱形表示。實(shí)體之間存在著三種關(guān)系類型,分別是一對(duì)一、一對(duì)多、多對(duì)多,它們反映到E-R圖中就是相應(yīng)的關(guān)系類型,即1:1、1:n和m:n。2.實(shí)體-關(guān)系圖實(shí)現(xiàn)方法實(shí)體關(guān)系圖是以迭代的方式構(gòu)造出來的,可以采用以下步驟實(shí)現(xiàn)。(1)在需求獲取的過程中,要求用戶列出業(yè)務(wù)流程中涉及的“事物”,將這些“事物”演化為一組輸入和輸出的數(shù)據(jù)對(duì)象,以及生產(chǎn)和消費(fèi)信息的外部實(shí)體。(2)一次考慮一個(gè)對(duì)象,檢查這個(gè)對(duì)象和其他對(duì)象間是否存在連接。(3)當(dāng)連接存在時(shí),應(yīng)創(chuàng)建一個(gè)或多個(gè)實(shí)體-關(guān)系對(duì)。(4)對(duì)每個(gè)實(shí)體-關(guān)系對(duì)考察其基數(shù),并將基數(shù)改成關(guān)聯(lián)的形態(tài)。(5)迭代地進(jìn)行步驟(2)到步驟(4),直到定義了所有的實(shí)體-關(guān)系對(duì)。在這個(gè)過程中發(fā)現(xiàn)遺漏是正常的。進(jìn)行若干次迭代時(shí),將會(huì)不斷地增加新的實(shí)體和關(guān)系。(6)定義每個(gè)實(shí)體的屬性。(7)繪制并審核實(shí)體-關(guān)系圖。(8)重復(fù)步驟(1)到步驟(7),直到數(shù)據(jù)建模完成。3.實(shí)體-關(guān)系圖實(shí)例【例4-2】高校教材績管理系統(tǒng)實(shí)體-關(guān)系設(shè)計(jì)。通過對(duì)某高校教材管理系統(tǒng)進(jìn)行調(diào)研分析,其中共有教師、管理員、教材、課程、專業(yè)共5個(gè)實(shí)體。教師實(shí)體的屬性包括工號(hào)、密碼和姓名;管理員實(shí)體的屬性包括編號(hào)、密碼和用戶名;教材實(shí)體的屬性包括教材編號(hào)、教材名稱、出版社編號(hào)、出版社名稱和庫存量;課程實(shí)體的屬性包括課程編號(hào)和課程名稱;專業(yè)實(shí)體的屬性包括專業(yè)編號(hào)和專業(yè)名稱;領(lǐng)用關(guān)系有時(shí)間和領(lǐng)書數(shù)量屬性,訂購關(guān)系具有訂書數(shù)量屬性。教師與教材是領(lǐng)用關(guān)系,每種教材可以由多位教師領(lǐng)用,每位教師可以領(lǐng)用多本教材,因此領(lǐng)用是多對(duì)多關(guān)系;管理員與教材是訂購關(guān)系,每種教材允許多位管理員訂購,且每位管理員可以訂購多種教材,因此訂購是多對(duì)多關(guān)系;專業(yè)與課程是開設(shè)關(guān)系,每個(gè)專業(yè)可以開設(shè)多門課程;課程與教材是選用關(guān)系,每門課程只可以選用一本教材。高校教材管理系統(tǒng)實(shí)體-關(guān)系圖。4.4狀態(tài)轉(zhuǎn)換圖行為模型可用狀態(tài)轉(zhuǎn)換圖(StatusTransferDiagram,STD)描述。狀態(tài)轉(zhuǎn)換圖是一種描述系統(tǒng)對(duì)內(nèi)部或外部事件響應(yīng)的行為模型。并不是所有的實(shí)體都需要繪制狀態(tài)轉(zhuǎn)換圖,有些實(shí)體有一些意義明確的狀態(tài),并且其行為在不同的狀態(tài)時(shí)有所改變,此時(shí)才需要繪制狀態(tài)轉(zhuǎn)換圖。例4-1中,教材管理系統(tǒng)領(lǐng)書過程狀態(tài)轉(zhuǎn)換圖。首先找出教師領(lǐng)書過程的所有狀態(tài),然后分析引起每種狀態(tài)轉(zhuǎn)換的具體行為,最后繪制出狀態(tài)轉(zhuǎn)換圖。4.5數(shù)據(jù)字典4.5.1數(shù)據(jù)字典的定義與用途數(shù)據(jù)字典(DataDictionary,DD)是結(jié)構(gòu)化分析的一個(gè)有力工具。數(shù)據(jù)字典是對(duì)數(shù)據(jù)流圖中出現(xiàn)的所有數(shù)據(jù)元素、數(shù)據(jù)流、文件、加工的定義的集合,其中對(duì)于加工的描述被稱為“加工邏輯說明”。1.?dāng)?shù)據(jù)字典的定義數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集合,是數(shù)據(jù)流圖中所有元素嚴(yán)格定義的場所,每個(gè)元素要對(duì)應(yīng)數(shù)據(jù)字典中的一個(gè)條目。數(shù)據(jù)字典中的條目應(yīng)按一定次序排列,以方便查閱。2.?dāng)?shù)據(jù)字典的用途數(shù)據(jù)字典的作用是在軟件分析和設(shè)計(jì)過程中提供數(shù)據(jù)描述,是數(shù)據(jù)流圖必不可少的輔助資料。數(shù)據(jù)流圖和數(shù)據(jù)字典一起構(gòu)成了系統(tǒng)的邏輯模型。沒有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴(yán)格;沒有數(shù)據(jù)流圖,數(shù)據(jù)字典就沒有作用。數(shù)據(jù)字典的重要用途就是作為分析階段的工具。在數(shù)據(jù)字典中建立嚴(yán)密一致的定義有助于分析人員和用戶之間的交流。同樣,將數(shù)據(jù)流圖中的每個(gè)元素的精確定義放在一起,就構(gòu)成了系統(tǒng)的、完整的需求規(guī)格說明的主體。在軟件設(shè)計(jì)階段,數(shù)據(jù)字典是存儲(chǔ)文件或數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ)。在實(shí)施階段,還可參照數(shù)據(jù)字典描述數(shù)據(jù)。隨著系統(tǒng)的改進(jìn),字典中的信息也會(huì)發(fā)生變化,新的信息會(huì)隨時(shí)加入進(jìn)來。4.5.2數(shù)據(jù)字典的內(nèi)容和格式1.數(shù)據(jù)流詞條

數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳播的路徑。一個(gè)數(shù)據(jù)流詞條應(yīng)有以下幾項(xiàng)內(nèi)容。數(shù)據(jù)流名稱:要求與數(shù)據(jù)流圖中出現(xiàn)的名稱一致;描述:簡要介紹該數(shù)據(jù)流在系統(tǒng)中的作用;數(shù)據(jù)流來源:數(shù)據(jù)流來自哪個(gè)加工或哪個(gè)外部實(shí)體;數(shù)據(jù)流去向:數(shù)據(jù)流流向哪個(gè)加工或哪個(gè)外部實(shí)體;數(shù)據(jù)流組成(定義):描述該數(shù)據(jù)流的數(shù)據(jù)結(jié)構(gòu);注釋:相關(guān)事項(xiàng)。例如,“教材管理系統(tǒng)”中對(duì)數(shù)據(jù)流“訂書單”可用以下詞條進(jìn)行定義和描述。2.數(shù)據(jù)存儲(chǔ)詞條數(shù)據(jù)存儲(chǔ)文件是保存數(shù)據(jù)的地方,一個(gè)數(shù)據(jù)存儲(chǔ)詞條應(yīng)有以下幾項(xiàng)內(nèi)容。數(shù)據(jù)存儲(chǔ)名稱:要求與數(shù)據(jù)流圖中出現(xiàn)的名稱一致;編號(hào):該數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)流圖中的編號(hào);描述:簡要介紹該數(shù)據(jù)存儲(chǔ)存放的是什么數(shù)據(jù);數(shù)據(jù)存儲(chǔ)組成(定義):描述該數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)存儲(chǔ)方式:索引文件。例如,“教材管理系統(tǒng)”中對(duì)數(shù)據(jù)存儲(chǔ)文件“庫存信息”可用以下詞條進(jìn)行定義和描述。3.數(shù)據(jù)元素詞條數(shù)據(jù)流圖中每一個(gè)數(shù)據(jù)結(jié)構(gòu)都是由數(shù)據(jù)元素構(gòu)成的,數(shù)據(jù)元素是數(shù)據(jù)處理中最小的、不可再分的單位,它直接反映事物的某一特征。組成數(shù)據(jù)結(jié)構(gòu)的這些數(shù)據(jù)元素也必須在數(shù)據(jù)字典中給出描述,一個(gè)數(shù)據(jù)元素詞條應(yīng)有以下幾項(xiàng)內(nèi)容。數(shù)據(jù)元素名稱;描述:簡要介紹該數(shù)據(jù)元素的含義;數(shù)據(jù)元素類型:字符型、數(shù)值型、布爾型等;數(shù)據(jù)元素長度(或精度):數(shù)據(jù)元素的大?。粩?shù)據(jù)元素取值范圍:例如取值范圍定義為1至60,表示為1..60;數(shù)據(jù)元素缺省值:例如定義數(shù)據(jù)元素“領(lǐng)書日期”的初始值默認(rèn)為系統(tǒng)的當(dāng)前日期;數(shù)據(jù)元素組成(定義):描述該數(shù)據(jù)元素的相關(guān)數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu)。例如,“教材管理系統(tǒng)”中對(duì)數(shù)據(jù)元素“教材編號(hào)”可用以下詞條進(jìn)行定義和描述。4.數(shù)據(jù)加工詞條加工可以使用諸如判斷表、判定樹和結(jié)構(gòu)化語言等形式表達(dá),一個(gè)數(shù)據(jù)加工詞條應(yīng)有以下幾項(xiàng)內(nèi)容。加工名稱:要求與數(shù)據(jù)流圖中出現(xiàn)的名稱一致;加工編號(hào):要求與數(shù)據(jù)流圖中出現(xiàn)的編號(hào)一致;描述:簡要介紹該加工的處理功能;輸入:指明該加工的輸入數(shù)據(jù)流;輸出:指明該加工的輸出數(shù)據(jù)流;加工邏輯:簡述該數(shù)據(jù)加工的處理邏輯(此項(xiàng)描述也可以單獨(dú)形成一份“數(shù)據(jù)加工邏輯說明”。例如,“教材管理系統(tǒng)”中對(duì)數(shù)據(jù)加工“處理合格領(lǐng)書單”可用以下詞條進(jìn)行定義和描述。

4.6數(shù)據(jù)加工邏輯說明4.6.1結(jié)構(gòu)化語言【例4-3】某系統(tǒng)教師津貼費(fèi)處理。某校對(duì)不同職稱的教師,根據(jù)其是本校專職教師還是外聘兼職教師,決定其課時(shí)津貼費(fèi)用。本校專職教師每課時(shí)津貼費(fèi):教授100元,副教授80元,講師60元,助教50元。外聘兼職教師每課時(shí)津貼費(fèi):教授120元,副教授100元,講師80元,助教60元。4.6.2判定表4.6.3判定樹4.7應(yīng)用案例——高校財(cái)務(wù)問答系統(tǒng)結(jié)構(gòu)化分析4.7.1功能需求4.7.2高校財(cái)務(wù)問答系統(tǒng)數(shù)據(jù)流圖4.7.3高校財(cái)務(wù)問答系統(tǒng)數(shù)據(jù)字典1.數(shù)據(jù)流(1)數(shù)據(jù)流名稱:教職工信息描述:用戶端用戶信息定義:教職工信息=工號(hào)+用戶名+密碼(2)數(shù)據(jù)流名稱:問題信息描述:用于傳遞問題及答案信息定義:問題信息=問題類型+問題內(nèi)容+答案內(nèi)容+文件名+文件路徑+視頻路徑(3)數(shù)據(jù)流名稱:類別信息描述:用于傳遞問題類別信息定義:類別信息=類型名稱(4)數(shù)據(jù)流名稱:反饋信息描述:用于傳遞教職工在用戶端提交的反饋信息定義:反饋信息=姓名+單位+電話+問題+時(shí)間(5)數(shù)據(jù)流名稱:統(tǒng)計(jì)信息描述:用于統(tǒng)計(jì)教職工在用戶端查詢某問題的次數(shù)定義:統(tǒng)計(jì)信息=問題內(nèi)容+查詢次數(shù)2.?dāng)?shù)據(jù)存儲(chǔ)(1)數(shù)據(jù)存儲(chǔ)名稱:教職工信息編號(hào):D01描述:用于存儲(chǔ)教職工數(shù)據(jù)定義:教職工信息=ID+工號(hào)+用戶名+密碼存儲(chǔ)方式:數(shù)據(jù)庫表,以“ID”為主鍵(2)數(shù)據(jù)存儲(chǔ)名稱:問題信息編號(hào):D02描述:用于存儲(chǔ)問題及答案數(shù)據(jù)定義:問題信息=ID+問題類型+問題內(nèi)容+答案內(nèi)容+文件名+文件路徑+視頻路徑+查詢次數(shù)存儲(chǔ)方式:數(shù)據(jù)庫表,以“ID”為主鍵(3)數(shù)據(jù)存儲(chǔ)名稱:類別信息編號(hào):D03描述:用于存儲(chǔ)問題類別數(shù)據(jù)定義:類別信息=ID+類別名稱存儲(chǔ)方式:數(shù)據(jù)庫表,以“ID”為主鍵(4)數(shù)據(jù)存儲(chǔ)名稱:反饋信息編號(hào):D04描述:用于存儲(chǔ)教職工反饋的問題數(shù)據(jù)定義:反饋信息=ID+姓名+單位+電話+問題+時(shí)間+工號(hào)存儲(chǔ)方式:數(shù)據(jù)庫表,以“ID”為主鍵3.?dāng)?shù)據(jù)項(xiàng)(1)數(shù)據(jù)項(xiàng)名稱:工號(hào)描述:用于唯一標(biāo)識(shí)教職工類型:整型長度:10定義:工號(hào)=10{數(shù)字字符}10(2)數(shù)據(jù)項(xiàng)名稱:時(shí)間描述:用于表示提交反饋信息的當(dāng)前系統(tǒng)時(shí)間類型:日期時(shí)間型定義:時(shí)間=年+月+日+時(shí)4.7.4高校財(cái)務(wù)問答系統(tǒng)E-R圖本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)了解結(jié)構(gòu)化的設(shè)計(jì)原則;(2)掌握數(shù)據(jù)設(shè)計(jì)、軟件結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)的方法和過程;(3)能夠利用軟件設(shè)計(jì)工具編寫設(shè)計(jì)文檔。第5章結(jié)構(gòu)化設(shè)計(jì)5.1結(jié)構(gòu)化設(shè)計(jì)任務(wù)(1)數(shù)據(jù)設(shè)計(jì):數(shù)據(jù)設(shè)計(jì)是根據(jù)需求階段所建立的實(shí)體-關(guān)系圖確定軟件涉及的文件系統(tǒng)的結(jié)構(gòu)及數(shù)據(jù)庫表r結(jié)構(gòu)。(2)軟件結(jié)構(gòu)設(shè)計(jì):軟件結(jié)構(gòu)設(shè)計(jì)定義軟件模塊及其之間的關(guān)系,因此通常稱為模塊設(shè)計(jì)。軟件結(jié)構(gòu)設(shè)計(jì)表示可以從數(shù)據(jù)流圖導(dǎo)出。(3)接口設(shè)計(jì):接口設(shè)計(jì)包括外部接口設(shè)計(jì)和內(nèi)部接口設(shè)計(jì)。外部接口設(shè)計(jì)依據(jù)分析模型的頂層數(shù)據(jù)流圖,外部接口包括用戶界面、本系統(tǒng)與其他硬件系統(tǒng)、軟件系統(tǒng)的外部接口;內(nèi)部接口是指系統(tǒng)內(nèi)部各種元素之間的接口。(4)過程設(shè)計(jì):過程設(shè)計(jì)是確定軟件各個(gè)組成部分內(nèi)的算法及內(nèi)部數(shù)據(jù)結(jié)構(gòu),并選取某種表達(dá)形式來描述各種算法。從工程管理的角度來看,軟件設(shè)計(jì)分為兩個(gè)階段。第一階段是概要設(shè)計(jì),將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件結(jié)構(gòu),并建立接口;第二階段是詳細(xì)設(shè)計(jì),即過程設(shè)計(jì),是對(duì)概要設(shè)計(jì)的一個(gè)細(xì)化,詳細(xì)設(shè)計(jì)每個(gè)模塊實(shí)現(xiàn)的算法等。結(jié)構(gòu)化設(shè)計(jì)包含如下7個(gè)具體步驟。(1)從需求分析階段的數(shù)據(jù)流圖出發(fā),制定幾個(gè)方案,從中選擇合理的方案。(2)將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊的層次結(jié)構(gòu)。(3)確定每個(gè)模塊的功能、模塊間的調(diào)用關(guān)系,建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系。(4)系統(tǒng)接口設(shè)計(jì),確定模塊間的接口信息。(5)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì),確定實(shí)現(xiàn)軟件的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫模式。(6)依據(jù)分析模型中的處理(加工)規(guī)格說明、狀態(tài)轉(zhuǎn)換圖等進(jìn)行過程設(shè)計(jì)。(7)確定測試計(jì)劃。(7)撰寫軟件設(shè)計(jì)文檔。5.2數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)就是將需求分析階段定義的數(shù)據(jù)對(duì)象(實(shí)體-關(guān)系圖、數(shù)據(jù)字典)轉(zhuǎn)換為設(shè)計(jì)階段的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫,包括兩個(gè)方面。第一個(gè)方面是數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),采用偽代碼的方式定義數(shù)據(jù)結(jié)構(gòu)。第二個(gè)方面是數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì),包括概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)。

【例5-1】高校教材管理系統(tǒng)的E-R圖如圖5-4所示。根據(jù)以上規(guī)則,某高校教材管理系統(tǒng)E-R模型可以映射為如下數(shù)據(jù)庫的邏輯結(jié)構(gòu)。教師表(工號(hào)、密碼、姓名)管理員表(編號(hào)、密碼、用戶名)教材表(教材編號(hào)、教材名稱、出版社編號(hào)、出版社名稱、庫存量、選用課程編號(hào))課程表(課程編號(hào)、課程名稱、選用教材編號(hào)、開設(shè)專業(yè)編號(hào))專業(yè)表(專業(yè)編號(hào)、專業(yè)名稱)領(lǐng)用表(教師工號(hào)、教材編號(hào)、時(shí)間、領(lǐng)書數(shù)量)訂購表(管理員編號(hào)、教材編號(hào)、訂書數(shù)量)5.3軟件結(jié)構(gòu)設(shè)計(jì)5.3.1軟件結(jié)構(gòu)設(shè)計(jì)基本原理1.模塊模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,是?gòu)成程序的基本構(gòu)件。模塊具有以下幾種基本屬性,其中接口、功能和狀態(tài)反映模塊的外部特性,邏輯反映模塊的內(nèi)部特性。(1)接口:模塊的輸入與輸出。(2)功能:模塊需要完成的任務(wù)。(3)狀態(tài):模塊的運(yùn)行環(huán)境,即模塊的調(diào)用與被調(diào)用關(guān)系。(4)邏輯:描述內(nèi)部功能實(shí)現(xiàn)及所需的數(shù)據(jù)。2.模塊化模塊化是軟件設(shè)計(jì)中的一個(gè)重要屬性,將軟件設(shè)計(jì)模塊化有助于一個(gè)軟件被研發(fā)人員理解、設(shè)計(jì)、測試和維護(hù)。以下論據(jù)可以說明這一點(diǎn)。設(shè)問題M的復(fù)雜性為C(M),解決它所需要的工作量為E(M)。因此,對(duì)于問題M1和M2,如果C(M1)>C(M2)即問題M1和M2復(fù)雜,那么E(M1)>E(M2)即問題越復(fù)雜,所需要的工作量越大。根據(jù)解決一般總是的經(jīng)驗(yàn)可知,C(M1+M2)>C(M1)+C(M2)即一個(gè)問題同另一個(gè)問題組合而成的復(fù)雜性要大于分別考慮每個(gè)問題的復(fù)雜性之和。這樣可以推出E(M1+M2)>C(M1)+C(M2)通過以上得到的結(jié)論可知:如果把軟件模塊進(jìn)行劃分,那么開發(fā)軟件所需要的工作量將降低很多。3.模塊耦合性4.模塊內(nèi)聚性5.軟件結(jié)構(gòu)特征(1)深度:指模塊的層數(shù),圖5-8示例中深度為5。(2)寬度:指一層中最大的模塊個(gè)數(shù),圖5-8示例中寬度為7。(3)扇出:指一個(gè)模塊直接下屬模塊的個(gè)數(shù),圖5-8示例中模塊M的扇出為3。(4)扇入:指一個(gè)模塊直接上屬模塊的個(gè)數(shù),圖5-8示例中模塊T的扇入為4。5.3.2軟件結(jié)構(gòu)設(shè)計(jì)原則1.提高模塊獨(dú)立性2.選擇合適的模塊規(guī)模3.適當(dāng)選擇模塊的深度、寬度、扇入和扇出4.降低模塊接口的復(fù)雜程度5.3.3HIPO圖HIPO圖(HierarchyInputProcessOutput)是層次化的輸入—處理—輸出圖。HIPO圖實(shí)際上是層次圖和IPO圖的結(jié)合。

1.IPO圖2.層次圖3.HIPO圖5.3.4結(jié)構(gòu)圖

1.數(shù)據(jù)流圖分類(1)變換型數(shù)據(jù)流圖根據(jù)信息系統(tǒng)的模型,信息一般是以外部形式進(jìn)入系統(tǒng),通過系統(tǒng)處理后離開系統(tǒng)。從其過程可以得出,變換型的數(shù)據(jù)流圖是一個(gè)線性結(jié)構(gòu)。變換型的數(shù)據(jù)流是由邏輯輸入、變換中心(或稱處理)和邏輯輸出三部分組成。

(2)事務(wù)型數(shù)據(jù)流圖2.結(jié)構(gòu)圖實(shí)施過程結(jié)構(gòu)圖實(shí)施過程,如圖5-15所示,設(shè)計(jì)包括如下4個(gè)步驟。(1)對(duì)數(shù)據(jù)流圖進(jìn)行復(fù)審,必要時(shí)修改或細(xì)化;(2)根據(jù)數(shù)據(jù)流圖確定軟件結(jié)構(gòu)是變換型還是事務(wù)型;(3)將數(shù)據(jù)流圖映射成結(jié)構(gòu)圖;(4)優(yōu)化并調(diào)整結(jié)構(gòu)圖,使設(shè)計(jì)更完善。3.變換型設(shè)計(jì)按照下列步驟設(shè)計(jì):(1)確定數(shù)據(jù)流圖中的變換中心、邏輯輸入和邏輯輸出;(2)設(shè)計(jì)結(jié)構(gòu)圖的頂層和第一層;(3)設(shè)計(jì)輸入模塊、輸出模塊和變換模塊的下屬模塊;(4)根據(jù)設(shè)計(jì)準(zhǔn)則對(duì)初始結(jié)構(gòu)進(jìn)行求精和改進(jìn)。4.事務(wù)型設(shè)計(jì)按照下列3個(gè)步驟設(shè)計(jì)。(1)確定數(shù)據(jù)流圖中的事務(wù)中心和加工路徑;(2)設(shè)計(jì)結(jié)構(gòu)圖的頂層和第一層;(3)進(jìn)行事務(wù)結(jié)構(gòu)中、下層模塊的設(shè)計(jì)和優(yōu)化等工作。5.4接口設(shè)計(jì)概要設(shè)計(jì)中的接口設(shè)計(jì)主要包括以下3個(gè)方面。(1)用戶界面接口。用戶界面接口設(shè)計(jì)即人機(jī)接口的設(shè)計(jì),突出用戶如何操作系統(tǒng)以及系統(tǒng)如何向用戶返回信息。(2)外部接口。用于說明系統(tǒng)同外界的所有接口的安排,包括軟件與硬件之間的接口、系統(tǒng)與各支持軟件之間的接口。(3)內(nèi)部接口。用來說明系統(tǒng)之內(nèi)的各個(gè)系統(tǒng)元素之間的接口。5.4.1用戶界面接口設(shè)計(jì)1.用戶界面設(shè)計(jì)原則

(1)界面形式應(yīng)力求簡單、友好。(2)界面設(shè)計(jì)應(yīng)提供一定的容錯(cuò)或糾錯(cuò)機(jī)制。用戶在與系統(tǒng)交互的過程中難免會(huì)進(jìn)行錯(cuò)誤操作,因此,應(yīng)該提供友好提示并可以以使用戶撤銷錯(cuò)誤操作。(3)界面設(shè)計(jì)應(yīng)符合用戶的實(shí)際需求和使用習(xí)慣。2.用戶界面設(shè)計(jì)過程5.4.2外部接口設(shè)計(jì)和內(nèi)部接口設(shè)計(jì)外部接口設(shè)計(jì)也稱為部署設(shè)計(jì),描述軟件功能和子系統(tǒng)如何在支持軟件的物理計(jì)算環(huán)境(如系統(tǒng)的硬件環(huán)境、軟件環(huán)境和網(wǎng)絡(luò)環(huán)境)內(nèi)分布,以及系統(tǒng)如何部署。內(nèi)部接口設(shè)計(jì)與模塊設(shè)計(jì)是緊密聯(lián)系的,需要設(shè)計(jì)各個(gè)模塊之間的通信、協(xié)作。5.5過程設(shè)計(jì)5.5.1流程圖1.流程圖表示流程圖表示了程序的操作順序,包括指明實(shí)際處理操作的處理符號(hào)、根據(jù)邏輯條件確定要執(zhí)行的路徑的符號(hào)、指明控制流的流線符號(hào)、便于讀寫程序流程圖的特殊符號(hào)。2.流程圖基本結(jié)構(gòu)【例5-2】輸入數(shù)組A,計(jì)算其最大值MAX并輸出。計(jì)算最大值流程圖,如圖5-27所示。5.5.2盒圖【例5-3】輸入數(shù)組A,計(jì)算其最大值MAX并輸出。計(jì)算最大值N-S圖,如圖5-29所示。5.5.3問題分析圖【例5-4】輸入數(shù)組A,計(jì)算其最大值MAX并輸出,計(jì)算最大值PAD圖,如圖5-31所示。5.6應(yīng)用案例——高校財(cái)務(wù)問答系統(tǒng)結(jié)構(gòu)化設(shè)計(jì)5.6.1概要設(shè)計(jì)1.功能模塊設(shè)計(jì)2.軟件結(jié)構(gòu)設(shè)計(jì)5.6.2詳細(xì)設(shè)計(jì)(1)用戶登錄(2)用戶問答本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)理解面向?qū)ο蠓椒ǖ囊睾蛢?yōu)點(diǎn);(2)掌握面向?qū)ο蠼5幕靖拍?、術(shù)語及其圖形符號(hào)。第6章面向?qū)ο蠓椒▽W(xué)與UML6.1面向?qū)ο蠓椒ǜ攀?.面向?qū)ο蠓椒ǖ囊孛嫦驅(qū)ο缶褪鞘褂脤?duì)象、類和繼承機(jī)制,并且對(duì)象之間僅能通過傳遞消息實(shí)現(xiàn)彼此通信。面向?qū)ο蠓椒ㄓ幸韵滤膫€(gè)要素。(1)對(duì)象對(duì)象是系統(tǒng)中描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成。面向?qū)ο蠓椒ㄕJ(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜對(duì)象由簡單對(duì)象組成。(2)類類是具有相同屬性和服務(wù)的一組對(duì)象的集合。類是一個(gè)抽象的概念,可以把所有對(duì)象劃分成各種類,每個(gè)類都定義了一組數(shù)據(jù)和一組方法。其中,數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,是對(duì)象的狀態(tài)信息。方法是允許用于類上的操作。(3)繼承按照基類與派生類的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。在層次結(jié)構(gòu)中,下層的派生類具有和上層的基類相同的特性,稱為繼承。(4)消息消息是對(duì)象發(fā)出的服務(wù)請(qǐng)求。對(duì)象彼此之間僅能通過傳遞消息相互聯(lián)系。對(duì)象的消息都被封裝在該對(duì)象的類中,必須發(fā)送消息請(qǐng)求它執(zhí)行某個(gè)操作,處理某個(gè)數(shù)據(jù)。2.面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)(1)符合人類的思維習(xí)慣。

(2)穩(wěn)定性好。

(3)可復(fù)用性好。

(4)可維護(hù)性好。

6.2UML概述6.2.1UML的特點(diǎn)(1)統(tǒng)一標(biāo)準(zhǔn)。UML統(tǒng)一了面向?qū)ο蠼5幕靖拍睢⒄Z法以及圖形符號(hào),建立了便于軟件開發(fā)交流的通用語言,已成為面向?qū)ο筌浖5臉?biāo)準(zhǔn)語言。(2)面向?qū)ο?。UML是一種面向?qū)ο蟮臉?biāo)準(zhǔn)建模語言,模型元素的建立以對(duì)象為基礎(chǔ),與人類的思維模式相符,并且易學(xué)易用。(3)圖形建模。UML提供了多種模型圖,以圖形的方式實(shí)現(xiàn)系統(tǒng)建模,建模過程清晰、直觀,可用于復(fù)雜軟件系統(tǒng)的建模。(4)獨(dú)立于程序設(shè)計(jì)語言。UML是一種建模語言,整個(gè)建模過程與程序設(shè)計(jì)語言無關(guān)。UML的建模不依賴于任何程序設(shè)計(jì)語言。6.2.2UML的視圖1.用例視圖2.邏輯視圖3.并發(fā)視圖4.組件視圖5.配置視圖6.2.3UML的建模元素6.2.4UML模型1.用例模型2.靜態(tài)模型3.動(dòng)態(tài)模型4.實(shí)現(xiàn)模型6.3用例建模機(jī)制6.4靜態(tài)建模機(jī)制6.4.1類圖類圖是與面向?qū)ο蠓椒P(guān)系最為密切的一種UML圖形,它的主體就是系統(tǒng)內(nèi)部處理的事物。類圖主要用于描述系統(tǒng)中所包含的類以及這些類相互之間的關(guān)系。當(dāng)描述類之間關(guān)系時(shí),常省略屬性和方法,只保留類名。類圖示例,教師類與教材類之間是關(guān)聯(lián)關(guān)系;教材類依賴課程類。類圖設(shè)計(jì)將在7.3.2中詳細(xì)介紹。6.4.2對(duì)象圖對(duì)象是類的實(shí)例。因此,對(duì)象圖可以看作是類圖的實(shí)例,幫助開發(fā)人員理解比較復(fù)雜的類圖。類圖與對(duì)象圖之間的區(qū)別是對(duì)象圖中對(duì)象的名字下面要加下劃線。對(duì)象圖示例,如圖6-5所示,每個(gè)方框代表一個(gè)對(duì)象實(shí)例,每個(gè)對(duì)象實(shí)例采用“對(duì)象名:類名”的形式標(biāo)識(shí),并在標(biāo)識(shí)的下面添加一條下劃線。如果要表示出該對(duì)象實(shí)例在該時(shí)間點(diǎn)上的狀態(tài),可以通過“屬性=值”的形式給出該對(duì)象當(dāng)時(shí)的屬性值。在對(duì)象圖中,對(duì)象之間的有關(guān)系用一條直線來表示,關(guān)系的名稱直接在直線上面標(biāo)出。如果不需要區(qū)別同類型的對(duì)象,可以省略對(duì)象實(shí)例的名稱,此類對(duì)象稱為匿名對(duì)象。6.4.3包圖一個(gè)系統(tǒng)往往由很多類組成,為了對(duì)類進(jìn)行管理可以對(duì)類進(jìn)行分組。在UML中,對(duì)類進(jìn)行分組的單位就是包。包類似于文件系統(tǒng)中文件夾的概念。包圖示例,包的圖示符號(hào)由兩個(gè)矩形組成,包的名字可以寫在小的矩形內(nèi),也可以寫在大的矩形內(nèi)。包與包之間可以建立依賴、泛化等關(guān)系。6.5動(dòng)態(tài)建模機(jī)制6.5.1順序圖順序圖又被稱為序列圖,主要反映用戶、系統(tǒng)、對(duì)象之間的交互次序。順序圖的重點(diǎn)是顯示對(duì)象之間發(fā)送消息的時(shí)間順序。它也顯示對(duì)象之間的交互,也就是在系統(tǒng)執(zhí)行時(shí)某個(gè)指定時(shí)間點(diǎn)將發(fā)生的事情。順序圖示例,時(shí)間從上到下推移,順序圖顯示對(duì)象之間隨著時(shí)間的推移而交換的消息或函數(shù)。順序圖設(shè)計(jì)將在7.4.1中詳細(xì)介紹。6.5.2通信圖通信圖又稱為協(xié)作圖,用于顯示系統(tǒng)的動(dòng)作協(xié)作,類似順序圖中的交互片段,但通信圖也顯示對(duì)象之間的關(guān)系。實(shí)際建模中,順序圖和通信圖的選擇需要根據(jù)項(xiàng)目實(shí)際需求而定。如果重在時(shí)間或順序,那么選擇順序圖;如果重在對(duì)象之間的關(guān)系,那么選擇通信圖。通信圖示例,如圖6-8所示,通信圖中可以出現(xiàn)角色,用于指明誰是過程的發(fā)起者。消息的名稱及其具體內(nèi)容一般在關(guān)系連線上直接標(biāo)出,并用箭頭注明消息的方向。為了體現(xiàn)出消息之間存在的先后關(guān)系,在消息名稱的前面加上序號(hào)。6.5.3狀態(tài)機(jī)圖狀態(tài)機(jī)圖用來描述對(duì)象對(duì)外部響應(yīng)的歷史狀態(tài)序列,即描述對(duì)象所有可能的狀態(tài),以及哪些事件將導(dǎo)致狀態(tài)的改變,包括對(duì)象在各個(gè)不同狀態(tài)間的跳轉(zhuǎn),以及這些跳轉(zhuǎn)的外部觸發(fā)事件,即從狀態(tài)到狀態(tài)的控制流。狀態(tài)機(jī)圖示例。不是所有的類都需要畫狀態(tài)機(jī)圖,有明確意義的狀態(tài)、在不同狀態(tài)下行為有所不同的類才需要畫狀態(tài)機(jī)圖。6.5.4活動(dòng)圖活動(dòng)圖是狀態(tài)機(jī)圖的一種特殊情況。不需指明任何事件,只要?jiǎng)幼鞅粓?zhí)行,活動(dòng)圖中的狀態(tài)就自動(dòng)開始轉(zhuǎn)換。如果狀態(tài)轉(zhuǎn)換的觸發(fā)事件是內(nèi)部動(dòng)作時(shí),可用活動(dòng)圖描述;當(dāng)狀態(tài)轉(zhuǎn)換的觸發(fā)事件是外部事件時(shí),常用狀態(tài)機(jī)圖來表示?;顒?dòng)圖示例,在活動(dòng)圖中,用例和對(duì)象的行為中的各個(gè)活動(dòng)之間通常具有時(shí)間順序。每個(gè)活動(dòng)用一個(gè)圓角矩形表示,判斷點(diǎn)使用菱形框表示。活動(dòng)圖設(shè)計(jì)將在7.4.2中詳細(xì)介紹。6.6實(shí)現(xiàn)建模機(jī)制6.6.1組件圖組件圖根據(jù)系統(tǒng)的組件顯示系統(tǒng)代碼的物理結(jié)構(gòu)。組件可以是源代碼組件、二進(jìn)制組件或一個(gè)可執(zhí)行的組件。組件圖示例。根據(jù)組件圖中顯示的組件之間的依賴關(guān)系,可以很容易地分析出其中某個(gè)組件的變化將會(huì)對(duì)其他組件產(chǎn)生什么樣的影響。一般來說,組件圖用于實(shí)際的編碼工作中。6.6.2部署圖部署圖用于表示系統(tǒng)中的硬件和軟件的物理結(jié)構(gòu)。部署圖中的表示符號(hào)與組件圖基本一致,不同的是,部署圖將組件放到了表示機(jī)器節(jié)點(diǎn)的立方體內(nèi),可以直觀地表示組件的具體部署方式。部署圖示例。本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)了解面向?qū)ο蠓治雠c設(shè)計(jì)的基本概念;(2)掌握面向?qū)ο蟮挠美!㈧o態(tài)建模和動(dòng)態(tài)建模過程;(3)理解面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì);(4)能夠?qū)π⌒蛙浖到y(tǒng)進(jìn)行用例圖、類圖和順序圖設(shè)計(jì)。第7章面向?qū)ο蠓治雠c設(shè)計(jì)7.1面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鍪侵咐妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?,使用需求逐步精確化、一致化、完全化的分析過程。面向?qū)ο蠓治鲞^程。這個(gè)階段主要是建立用例模型、對(duì)象類靜態(tài)模型和對(duì)象類動(dòng)態(tài)模型。7.2用例建模7.2.1用例建模過程1.確定系統(tǒng)的范圍和邊界2.確定系統(tǒng)的參與者3.確定系統(tǒng)的用例4.確定用例之間的關(guān)系5.建立用例圖并定義用例圖的層次結(jié)構(gòu)6.用例描述7.2.2用例圖設(shè)計(jì)用例圖(usecasediagram)是表示一個(gè)系統(tǒng)中用例與參與者之間關(guān)系的圖。它描述了系統(tǒng)中相關(guān)的用戶和系統(tǒng)對(duì)不同用戶提供的功能和服務(wù)。1.參與者參與者也稱為角色。參與者示例。在用例圖中,參與者有兩種表示方法。參與者的圖標(biāo)表示法是一個(gè)小人圖形,圖標(biāo)下方顯示參與者的名稱。參與者還可以使用帶有<<actor>>構(gòu)造型的類符號(hào),也就是一個(gè)矩形來表示。一般情況下,習(xí)慣用圖標(biāo)表示法來代表人,用類符號(hào)表示法來表示事物。2.用例在用例圖中,用例用一個(gè)包含名稱的橢圓形來表示。用例示例。其中用例的名稱可以顯示在橢圓內(nèi)部或橢圓下方。3.關(guān)系(1)參與者間的泛化關(guān)系(2)參與者與用例的關(guān)聯(lián)關(guān)系(3)用例間的泛化關(guān)系(4)用例間的包含關(guān)系(5)用例間的擴(kuò)展關(guān)系7.2.3用例建模實(shí)例1.情境說明機(jī)票預(yù)訂系統(tǒng)是某航空公司推出的一款網(wǎng)上訂票系統(tǒng)。未實(shí)名認(rèn)證的用戶只能查詢航班信息;已實(shí)名認(rèn)證的用戶登錄后還可以預(yù)訂機(jī)票、退訂機(jī)票和查看訂單。系統(tǒng)管理員可以管理用戶信息和航班信息。用戶在登錄時(shí)如果忘記密碼,可以通過郵箱找回密碼。2.確定參與者在了解系統(tǒng)使用場景后,首先分析需求確定系統(tǒng)中的參與者。根據(jù)分析系統(tǒng)的情境說明可以得出,系統(tǒng)主要有兩類參與者,分別是用戶與管理員。其中用戶包括普通用戶和注冊(cè)用戶,表示為參與者的泛化關(guān)系。因?yàn)橛脩粢欢▽儆诙咂渲兄?,所以用戶?yīng)該是一個(gè)抽象參與者。確定參與者。3.確定用例分析出系統(tǒng)的參與者之后,就可以通過分析每個(gè)參與者是如何使用系統(tǒng)確定系統(tǒng)中的用例。在機(jī)票預(yù)訂系統(tǒng)中,普通用戶可以進(jìn)行實(shí)名認(rèn)證和查詢航班信息;注冊(cè)用戶可以登錄系統(tǒng)、查詢航班信息、預(yù)訂機(jī)票、退訂機(jī)票和查看訂單;管理員可以登錄系統(tǒng)、管理用戶信息和管理航班信息。確定用例。4.確定用例之間的關(guān)系在確定完所有用例之后,需要具體考慮每個(gè)用例的工作流程從而添加用例之間的依賴關(guān)系。在機(jī)票預(yù)訂系統(tǒng)中,用戶在預(yù)訂機(jī)票時(shí)需要先查詢相關(guān)的航班信息,因此預(yù)訂機(jī)票用例與查詢航班信息用例之間可以建立包含關(guān)系。如果用戶在登錄時(shí)忘記密碼,可以使用找回密碼功能,由于這一關(guān)系是有條件的,所以二者構(gòu)成擴(kuò)展關(guān)系。為保證對(duì)用例的粒度控制在同一個(gè)量級(jí)上,可以將管理用戶信息與管理航班信息都

定義為抽象用例,并分別創(chuàng)建其非抽象的子用例。將以上關(guān)系添加到用例圖中,形成最終的用例圖。機(jī)票預(yù)訂系統(tǒng)用例圖。5.用例描述用例描述的內(nèi)容可以使用UML中定義的格式,也可以根據(jù)項(xiàng)目實(shí)際情況選擇其它格式。下面以機(jī)票預(yù)訂系統(tǒng)的“機(jī)票預(yù)訂”用例為例,給出一個(gè)用例描述的格式和內(nèi)容作為參考,在實(shí)際建模過程中可以靈活使用。7.3靜態(tài)建模7.3.1靜態(tài)建模過程1.確定類與對(duì)象(1)找出候選的類與對(duì)象(2)篩選出正確的類與對(duì)象2.確定屬性(1)分析(2)選擇3.確定關(guān)聯(lián)(1)初步確定關(guān)聯(lián)(2)篩選(3)完善關(guān)聯(lián)4.優(yōu)化模型7.3.2類圖設(shè)計(jì)類圖(classdiagram)是顯示一組類、接口以及它們之間關(guān)系的圖。一個(gè)類圖主要通過系統(tǒng)中的類以及各個(gè)類之間的關(guān)系來描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。1.類2.接口接口是一個(gè)被命名的操作集合,用于描述類或組件的一個(gè)服務(wù)。接口不同于任何類或類型,它不描述任何結(jié)構(gòu),因此不包含任何屬性;也不描述任何實(shí)現(xiàn),因此不包含任何實(shí)現(xiàn)操作的方法。像類一樣,接口可以有一些操作。接口中沒有對(duì)自身內(nèi)部結(jié)構(gòu)的描述,因此,接口沒有私有特性,它的所有內(nèi)容都是公共的。接口代表了一份契約,實(shí)現(xiàn)接口的類必須縷履行這份契約。3.關(guān)系(1)關(guān)聯(lián)關(guān)系(2)泛化關(guān)系(3)依賴關(guān)系(4)實(shí)現(xiàn)關(guān)系7.3.3靜態(tài)建模實(shí)例1.確定類2.添加類的屬性與操作3.確定類圖中的關(guān)系7.4動(dòng)態(tài)建模7.4.1順序圖設(shè)計(jì)1.對(duì)象與生命線2.激活3.消息7.4.2活動(dòng)圖設(shè)計(jì)1.動(dòng)作2.開始與終止3.控制流4.判斷節(jié)點(diǎn)5.合并節(jié)點(diǎn)6.分叉節(jié)點(diǎn)與結(jié)合節(jié)點(diǎn)7.泳道7.4.3動(dòng)態(tài)建模實(shí)例(1)確定交互對(duì)象創(chuàng)建順序圖的第一步就是要明確參與對(duì)象。“登錄”用例的用戶作為參與者,是交互過程的發(fā)起者。如果機(jī)票預(yù)訂系統(tǒng)采用MVC模式進(jìn)行設(shè)計(jì),參與交互過程的對(duì)象還包括用戶界面、邏輯層和數(shù)據(jù)庫。確定交互對(duì)象。(2)添加消息在確定了參與交互的對(duì)象之后,就要在對(duì)象之間添加消息的傳遞。用戶首先在界面填寫表單并確認(rèn),用戶界面將用戶填寫的表單數(shù)據(jù)發(fā)送給邏輯層,邏輯層向數(shù)據(jù)庫發(fā)送請(qǐng)求來檢查用戶數(shù)據(jù)的合法性,接收到合法的返回消息后,邏輯層再向界面發(fā)送消息顯示出登錄結(jié)果。按照分析的交互過程,向順序圖中添加消息,創(chuàng)建出完整的順序圖。登錄用例順序圖。2.以某機(jī)票預(yù)訂系統(tǒng)的預(yù)訂機(jī)票用例為例,展示活動(dòng)圖的設(shè)計(jì)過程。(1)確定泳道首先確定參與的對(duì)象,即確定活動(dòng)圖中的泳道,通過分析,預(yù)訂機(jī)票用例共有選擇航班、確認(rèn)信息、提示無票、提交、更新機(jī)票信息、產(chǎn)生機(jī)票訂單等動(dòng)作。泳道說明了活動(dòng)的執(zhí)行者,因此,以上動(dòng)作可以分為用戶和系統(tǒng)兩個(gè)泳道。繪制泳道。(2)按邏輯順序完成活動(dòng)圖在確定泳道后,梳理預(yù)訂機(jī)票的業(yè)務(wù)流程。用戶首先選擇航班,如果所選航班已無票,則系統(tǒng)返回提示信息,用戶可以重新選擇航班;如果所選航班有票,則系統(tǒng)請(qǐng)求用戶確認(rèn)訂票信息,此時(shí)用戶可以取消訂票,也可以確認(rèn)訂票信息后進(jìn)行提交,用戶提交后系統(tǒng)將更新機(jī)票信息并同時(shí)生成機(jī)票訂單,然后結(jié)束預(yù)訂機(jī)票流程。7.5面向?qū)ο笤O(shè)計(jì)7.5.1系統(tǒng)設(shè)計(jì)1.問題域子系統(tǒng)設(shè)計(jì)(1)調(diào)整需求。如果需求發(fā)生了變化或是分析人員在理解軟件需求上還不完整,需要簡單修改面向?qū)ο蠓治龅慕Y(jié)果,再把這些修改反映到問題域子系統(tǒng)中。(2)重用已有類。軟件設(shè)計(jì)時(shí),要考慮如何將已有的類增加到問題域部分中。因此,需要在已有類中找到能被問題域重用的類,然后由重用的類派生出問題域的類,再添加定義問題域的類,最后修改與問題域類相關(guān)的關(guān)聯(lián)。(3)組合問題域類。先分析查找一個(gè)能把問題域類組合在一起的類,作為根類,把所有與問題域有關(guān)的類關(guān)聯(lián)到一起,建立類的層次結(jié)構(gòu)。把同一問題域的一些類集合起來存放到類庫中,起到概括每一個(gè)類及對(duì)象的作用。(4)調(diào)整繼承關(guān)系。面向?qū)ο蠓治瞿P椭邪ǘ嘀乩^承,而設(shè)計(jì)語言一般不支持多重繼承,必須對(duì)面向?qū)ο蠓治龅慕Y(jié)果做修改,把多重繼承轉(zhuǎn)換為單繼承。2.人機(jī)交互子系統(tǒng)設(shè)計(jì)人機(jī)交互部分是面向?qū)ο笤O(shè)計(jì)模型的外圍組成部分之一。在面向?qū)ο蠓治鲞^程中,已經(jīng)對(duì)用戶界面需求做了初步分析。在面向?qū)ο笤O(shè)計(jì)過程中,則應(yīng)該對(duì)系統(tǒng)的人機(jī)交互子系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),以確定人機(jī)交互的細(xì)節(jié)。人機(jī)交互設(shè)計(jì)的質(zhì)量,將直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià)。3.任務(wù)管理子系統(tǒng)設(shè)計(jì)任務(wù)是進(jìn)程的別稱,是執(zhí)行一系列活動(dòng)的一段程序。當(dāng)系統(tǒng)中有許多并發(fā)行為時(shí),需要依照各個(gè)行為的協(xié)調(diào)和通信關(guān)系劃分各種任務(wù),以簡化并發(fā)行為的設(shè)計(jì)和編碼。任務(wù)管理的一項(xiàng)重要內(nèi)容是確定哪些是必須同時(shí)進(jìn)行的任務(wù),哪些是相互排斥的任務(wù)。設(shè)計(jì)人員根據(jù)以上任務(wù),最后設(shè)計(jì)出任務(wù)管理子系統(tǒng)。4.數(shù)據(jù)管理子系統(tǒng)設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)為面向?qū)ο笤O(shè)計(jì)模型提供了在特定的數(shù)據(jù)庫管理系統(tǒng)之上,存儲(chǔ)或檢索對(duì)象的基本結(jié)構(gòu)。設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)的目的是將目標(biāo)軟件系統(tǒng)中依賴平臺(tái)開發(fā)的數(shù)據(jù)存取部分與其他功能分離。7.5.2對(duì)象設(shè)計(jì)1.對(duì)象描述對(duì)象是類的一個(gè)實(shí)例,對(duì)象的設(shè)計(jì)描述可以采用以下兩種形式之一。(1)協(xié)議描述通過定義對(duì)象可以接收到的每個(gè)消息和當(dāng)對(duì)象接收到消息后完成的相關(guān)操作來建立對(duì)象的接口。協(xié)議描述是一組消息和對(duì)消息的注釋。(2)實(shí)現(xiàn)描述描述由傳送給對(duì)象的消息所蘊(yùn)含的每個(gè)操作的實(shí)現(xiàn)細(xì)節(jié),包括對(duì)象名字的定義和類的引用、關(guān)于描述對(duì)象的屬性的數(shù)據(jù)結(jié)構(gòu)的定義及操作過程的細(xì)節(jié)。2.設(shè)計(jì)類中的服務(wù)(1)確定類中應(yīng)有的服務(wù)需要綜合考慮設(shè)計(jì)模型才能確定類中應(yīng)有的服務(wù)。(2)設(shè)計(jì)實(shí)現(xiàn)服務(wù)的方法設(shè)計(jì)實(shí)現(xiàn)服務(wù)首先應(yīng)設(shè)計(jì)實(shí)現(xiàn)服務(wù)的算法,考慮算法的復(fù)雜度,如何使算法容易理解、容易實(shí)現(xiàn)并容易修改。其次是選擇數(shù)據(jù)結(jié)構(gòu),要選擇能方便、有效地實(shí)現(xiàn)算法的數(shù)據(jù)結(jié)構(gòu)。最后定義類的內(nèi)部操作,可能需要添加一些用來存放中間結(jié)果的類。3.設(shè)計(jì)類的關(guān)聯(lián)在應(yīng)用系統(tǒng)中,使用關(guān)聯(lián)有兩種可能的方式,即只需單向遍歷的單向關(guān)聯(lián)和需要雙向遍歷的雙向關(guān)聯(lián)。4.鏈屬性的實(shí)現(xiàn)鏈屬性的實(shí)現(xiàn)要根據(jù)具體情況分別處理。如果是一對(duì)一關(guān)聯(lián),鏈屬性可作為其中一個(gè)對(duì)象的屬性而存儲(chǔ)在該對(duì)象中。而一對(duì)多關(guān)系,鏈屬性可作為“多”端對(duì)象的一個(gè)屬性。至于多對(duì)多關(guān)系,使用一個(gè)獨(dú)立的類來實(shí)現(xiàn)鏈屬性。5.設(shè)計(jì)的優(yōu)化設(shè)計(jì)的優(yōu)化需要確定優(yōu)先級(jí),設(shè)計(jì)人員必須確定各項(xiàng)質(zhì)量指標(biāo)的相對(duì)重要性才能確定優(yōu)先級(jí),以便在優(yōu)化設(shè)計(jì)時(shí)制訂折中方案。7.6應(yīng)用案例——高校財(cái)務(wù)問答系統(tǒng)面向?qū)ο蠓治雠c設(shè)計(jì)1.用例模型設(shè)計(jì)2.靜態(tài)模型設(shè)計(jì)3.動(dòng)態(tài)模型設(shè)計(jì)(2)狀態(tài)模型4.系統(tǒng)設(shè)計(jì)本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)理解軟件實(shí)現(xiàn)的概念、目標(biāo)、過程和方法;(2)了解編程語言的發(fā)展歷程和主流編程語言;(3)理解編程語言的基本機(jī)制;(4)能夠根據(jù)待開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域選擇適合的編程語言。第8章軟件實(shí)現(xiàn)8.1軟件實(shí)現(xiàn)概述1.軟件實(shí)現(xiàn)的概念2.軟件實(shí)現(xiàn)的目標(biāo)3.軟件實(shí)現(xiàn)的過程4.軟件實(shí)現(xiàn)的方法8.2編程語言8.2.1編程語言的發(fā)展8.2.2編程語言的基本機(jī)制1.對(duì)象說明2.數(shù)據(jù)類型的定義3.子程序和方法4.控制結(jié)構(gòu)8.2.3編程語言簡介8.3軟件編程標(biāo)準(zhǔn)與規(guī)范1.軟件編程標(biāo)準(zhǔn)軟件工程的目標(biāo)是在規(guī)定的時(shí)間和費(fèi)用內(nèi),開發(fā)出滿足用戶需求的、高質(zhì)量的軟件產(chǎn)品。關(guān)于開發(fā)高質(zhì)量軟件產(chǎn)品的編程標(biāo)準(zhǔn),不同人看法不盡相同。以下是目前公認(rèn)的高質(zhì)量軟件產(chǎn)品應(yīng)達(dá)到的標(biāo)準(zhǔn)。

(1)功能齊全,能夠達(dá)到用戶的使用要求;(2)界面友好且易于操作;(3)結(jié)構(gòu)簡單,容易理解和使用;(4)高可靠性和高安全性;(5)可重用性強(qiáng),有利于軟件升級(jí);(6)兼容性好;(7)易于維護(hù)。2.軟件編程規(guī)范軟件編程規(guī)范有助于編寫正確、高效、易讀的程序,符合軟件設(shè)計(jì)結(jié)果。軟件編程規(guī)范主要體現(xiàn)在以下幾方面。(1)源程序文檔化。在編寫程序過程中,注意標(biāo)識(shí)符命名、代碼排版和添加注釋等,編寫出易閱讀、易理解的文檔化程序。(2)數(shù)據(jù)說明。為了有利于對(duì)數(shù)據(jù)的理解和維護(hù),數(shù)據(jù)說明時(shí)可以將同一類型的數(shù)據(jù)編寫在同一段落中;當(dāng)一條語句要聲明多個(gè)變量時(shí),將變量名按順序排列。(3)輸入和輸出設(shè)計(jì)。輸入操作步驟和輸入格式應(yīng)盡量簡單,提示信息要明確;對(duì)輸入數(shù)據(jù)的合法性、有效性應(yīng)進(jìn)行檢查,報(bào)告必要的錯(cuò)誤信息;交互式輸入時(shí),提供明確的輸入提示信息;設(shè)計(jì)必要的輸出格式,使輸出信息清晰簡明。本章小節(jié)XXXXXX大學(xué)軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學(xué)目標(biāo):(1)掌握軟件測試的基本概念和測試原則;(2)掌握等價(jià)類劃分法,熟悉黑盒測試的其他方法;(3)掌握邏輯覆蓋法,熟悉白盒測試的其他方法;(4)掌握軟件測試的一般步驟,以及每個(gè)階段性測試的目的;(5)能夠?yàn)樾⌒蛙浖?xiàng)目設(shè)計(jì)測試用例。第9章軟件測試9.1軟件測試概述1.軟件測試概念軟件測試具有廣義和狹義的理解形式。廣義的軟件測試是指在軟件生命周期內(nèi),所有的檢查、評(píng)審、驗(yàn)證和確認(rèn)活動(dòng),如需求評(píng)審、功能驗(yàn)證等;狹義的軟件測試則是指對(duì)軟件的檢查和評(píng)價(jià),檢查軟件的功能、性能是否符合需求,評(píng)價(jià)軟件的可靠性和安全性。2.軟件測試中的術(shù)語(1)錯(cuò)誤。開發(fā)人員在軟件開發(fā)的過程中,通常將某些信息以不正確的形式表示出來或誤解用戶需求,這些稱為錯(cuò)誤。例如,需求分析人員對(duì)一個(gè)軟件功能需求的理解錯(cuò)誤。(2)缺陷。缺陷可以導(dǎo)致軟件不能正常運(yùn)行。當(dāng)開發(fā)人員在開發(fā)過程中出現(xiàn)錯(cuò)誤以后,就會(huì)在軟件中引入一個(gè)或多個(gè)缺陷。例如,合法用戶登錄后不能跳轉(zhuǎn)到主頁面。(3)故障。故障是指軟件沒有按照需求規(guī)格說明運(yùn)行,從而引起軟件行為與用戶需求不一致的現(xiàn)象。故障可能發(fā)生在測試階段,也可能發(fā)生在軟件交付之后的運(yùn)行階段。(4)測試用例。測試用例是在軟件測試的過程中,為了檢查程序功能和性能是否符合設(shè)計(jì)要求,由測試人員設(shè)計(jì)的一組測試序列和數(shù)據(jù)的集合。測試用例通常包括測試的操作序列、輸入數(shù)據(jù)和預(yù)期輸出三個(gè)部分。3.軟件測試對(duì)象軟件測試并不等于程序測試,軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個(gè)期間。因此,需求分析、設(shè)計(jì)、實(shí)現(xiàn)等各階段所得到的文檔都應(yīng)成為軟件測試的對(duì)象。4.軟件測試原則軟件測試的主要任務(wù)是根據(jù)軟件開發(fā)各階段的文檔資料和程序的內(nèi)部結(jié)構(gòu),設(shè)計(jì)測試用例,以發(fā)現(xiàn)軟件系統(tǒng)中不同類型的錯(cuò)誤。在進(jìn)行軟件測試的過程中,需要掌握以下5個(gè)方面的原則。(1)完全測試是不可能的。基于時(shí)間、人員、資金等方面的限制,不可能對(duì)軟件產(chǎn)品進(jìn)行完全的測試,即不可能考慮或測試到軟件產(chǎn)品的所有執(zhí)行情況或路徑。(2)軟件產(chǎn)品中所存在的缺陷與已發(fā)現(xiàn)的缺陷數(shù)成正比。軟件測試所發(fā)現(xiàn)的缺陷越多,說明軟件產(chǎn)品中存在的缺陷越多。一般情況下,潛在的缺陷數(shù)與發(fā)現(xiàn)的缺陷數(shù)存在著正比關(guān)系。(3)80/20原則。在軟件測試工作中,存在著二八定律,即80%的缺陷會(huì)集中存在于20%的代碼中。為了提高測試的工作效率,應(yīng)該將測試的重點(diǎn)放在缺陷聚集出現(xiàn)的軟件模塊中。(4)測試工作應(yīng)該盡早開始,并且貫穿于整個(gè)開發(fā)過程中。測試工作開始的越早,在軟件開發(fā)過程中出現(xiàn)的軟件缺陷就能被及早發(fā)現(xiàn)和糾正。一般來說,越到軟件開發(fā)的后期,糾正同一軟件缺陷所付出的代價(jià)就會(huì)越大。(5)長期保留測試用例。測試不是一次完成的,在測試出缺陷并修復(fù)后,需要

溫馨提示

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