版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程(第二版)
齊治昌、譚慶平、寧洪編著
高等教育出版社
主講:陳明銳教授★省級(jí)精品課程★軟件工程(第二版)
齊治昌、譚慶平、寧洪編著
1第三章軟件需求分析在軟件的整個(gè)生命周期中,首先是軟件計(jì)劃期,接著是軟件開發(fā)期,軟件需求分析是軟件開發(fā)的第一個(gè)階段,也是關(guān)系到軟件開發(fā)成功與否的關(guān)鍵一步。本章的學(xué)習(xí)是基于已完成軟件計(jì)劃的基礎(chǔ)上進(jìn)行的,軟件計(jì)劃安排到第十二章講。
3.1需求分析的任務(wù)與步驟3.2需求獲取的常用方法3.3分析建模3.4軟件需求說明3.5結(jié)構(gòu)化分析方法3.6面向?qū)ο蠓治龇椒ǖ谌萝浖枨蠓治鲈谲浖恼麄€(gè)生命2第三章軟件需求分析軟件在需求分析和設(shè)計(jì)階段占用的工作量達(dá)到總工作量的40%~50%,說明軟件開發(fā)前期的活動(dòng)多么重要。當(dāng)然這也包括分階段開發(fā)原型的開銷。大家熟悉的編碼工作只占全部工作量的10%~20%,而軟件測(cè)試和調(diào)試的工作量占到總工作量的30%~40%,甚至≥50%。第三章軟件需求分析軟件在需求分析和設(shè)計(jì)階段占用的工33.1需求分析的任務(wù)與步驟3.1.1需求分析的任務(wù) 需求分析的任務(wù)就是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題,是通過系統(tǒng)分析員與用戶一起商定,清晰、準(zhǔn)確、具體地描述軟件產(chǎn)品必須具有的功能、性能、運(yùn)行規(guī)格等要求。軟件需求分析階段的目的是澄清用戶的要求,并把雙方共同的理解明確地表達(dá)成一份書面文檔——軟件需求規(guī)格說明書。3.1需求分析的任務(wù)與步驟3.1.1需求分43.1需求分析的任務(wù)與步驟
需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型。主要有兩個(gè)任務(wù):1、建立分析模型——數(shù)據(jù)、功能和行為模型2、編寫需求說明書。
其實(shí)現(xiàn)模型如下圖所示:3.1需求分析的任務(wù)與步驟需求分析的任務(wù)就是5系統(tǒng)實(shí)現(xiàn)模型目標(biāo)系統(tǒng)當(dāng)前系統(tǒng)物理模型邏輯模型邏輯模型物理模型模型化抽象化實(shí)例化具體化理解需求表達(dá)需求導(dǎo)出做什么怎么做系統(tǒng)實(shí)現(xiàn)模型目標(biāo)系統(tǒng)當(dāng)前系統(tǒng)物理模型邏輯模型邏輯模型物理模型61.分析建模導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子:
找出當(dāng)前系統(tǒng)的物理模型學(xué)生張秘書王會(huì)計(jì)李出納趙保管學(xué)生學(xué)生購買教材的物理模型購書申請(qǐng)購書證明購書發(fā)票領(lǐng)書單書1.分析建模導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子:學(xué)張王李趙學(xué)學(xué)生購買7導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子把當(dāng)前系統(tǒng)的物理模型轉(zhuǎn)換為邏輯模型學(xué)生審查有效性開發(fā)票開領(lǐng)書單發(fā)書學(xué)生購書單有效購書單領(lǐng)書單書發(fā)票學(xué)生購買教材的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子把當(dāng)前系統(tǒng)的物理模型轉(zhuǎn)換為邏輯模型8導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子把舊系統(tǒng)的邏輯模型轉(zhuǎn)換為目標(biāo)系統(tǒng)邏輯模型學(xué)生審查并開發(fā)票開領(lǐng)書單發(fā)書學(xué)生購書單發(fā)票領(lǐng)書單書計(jì)算機(jī)售書系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子把舊系統(tǒng)的邏輯模型轉(zhuǎn)換為目標(biāo)系統(tǒng)邏9導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子改進(jìn)(優(yōu)化)目標(biāo)系統(tǒng)邏輯模型學(xué)生審查并開發(fā)票開領(lǐng)書單學(xué)生購書單發(fā)票領(lǐng)書單改進(jìn)了的計(jì)算機(jī)售書系統(tǒng)模型無效書單導(dǎo)出目標(biāo)系統(tǒng)邏輯模型的例子改進(jìn)(優(yōu)化)目標(biāo)系統(tǒng)邏輯模型學(xué)審查10分析階段中常用的模型(邏輯模型)數(shù)據(jù)流圖(DFD)實(shí)體―聯(lián)系圖(ERD)層次方框圖、IPO圖、Warnier圖類圖、實(shí)例圖、時(shí)序圖狀態(tài)圖、協(xié)作圖、活動(dòng)圖事件列表數(shù)據(jù)流定義數(shù)據(jù)元素定義……分析階段中常用的模型(邏輯模型)數(shù)據(jù)流圖(DFD)113.1需求分析的任務(wù)與步驟2.編寫軟件需求規(guī)格說明:主要包括描述目標(biāo)系統(tǒng)概貌、功能要求、性能要求、運(yùn)行要求和將來可能提出的要求。數(shù)據(jù)流圖、用IPO圖或其他工具簡(jiǎn)要描述的系統(tǒng)主要算法都是該份文擋的重要組成部分。此外,該份文檔還應(yīng)包括用戶需求與系統(tǒng)功能之間的關(guān)系、設(shè)計(jì)約束等等文字描述。軟件需求規(guī)格說明是需求分析階段的最終成果。3.1需求分析的任務(wù)與步驟2.編寫軟件需求規(guī)格說明123.1需求分析的任務(wù)與步驟準(zhǔn)確、完整和規(guī)范的軟件需求是軟件開發(fā)成功的關(guān)鍵!需求分析的任務(wù)建立分析模型
描述軟件需求的一組模型精確記錄用于對(duì)原始問題和目標(biāo)系統(tǒng)的描述幫助分析人員發(fā)現(xiàn)用戶需求中的不一致性,排除不合理的部分,挖掘潛在的用戶需求編寫需求說明應(yīng)做到準(zhǔn)確性和一致性清晰性和沒有二義性直觀、易讀和易于修改3.1需求分析的任務(wù)與步驟準(zhǔn)確、完整和規(guī)范的軟件需求是軟件13案例分析一個(gè)具有n部電梯的電梯系統(tǒng)要安裝在一座m層的大樓上。電梯和控制機(jī)構(gòu)已造好。每個(gè)電梯的內(nèi)部機(jī)構(gòu)也已給定。問題涉及電梯在樓層間移動(dòng)的邏輯:(1)每座電梯有一套按鈕,每層一個(gè)。按鈕按下時(shí)使鈕燈變亮,并使電梯達(dá)到相應(yīng)的樓層。當(dāng)電梯到達(dá)相應(yīng)的樓層時(shí)按鈕燈熄滅。案例分析一個(gè)具有n部電梯的電梯系統(tǒng)要安裝在一座m層的大樓上。14案例分析(2)除了底層和頂層外,每層都有兩個(gè)按鈕,一個(gè)按鈕請(qǐng)求電梯上升,另一個(gè)按鈕請(qǐng)求電梯下降。這些按鈕在按下時(shí)按鈕燈亮。電梯到達(dá)指定樓層后按鈕燈熄滅,然后要么朝期望的方向移動(dòng),要么請(qǐng)求等待。在后一種情況下,如果一個(gè)樓層上的兩個(gè)請(qǐng)求按鈕都按下,則只取消其中一個(gè)按鈕。決定先服務(wù)哪一層的算法應(yīng)當(dāng)使兩個(gè)請(qǐng)求的等待時(shí)間最小。案例分析(2)除了底層和頂層外,每層都有兩個(gè)按鈕,一個(gè)按鈕請(qǐng)15案例分析(3)當(dāng)一個(gè)電梯沒有服務(wù)請(qǐng)求時(shí),應(yīng)當(dāng)停留在最終的目的地,關(guān)上電梯門,并等待后面的請(qǐng)求。(4)樓層上所有電梯請(qǐng)求必須最終得到服務(wù),并且所以樓層具有相同的優(yōu)先權(quán)。(5)電梯內(nèi)所有樓層的請(qǐng)求必須最終得到服務(wù),各層按電梯移動(dòng)方向先后得到服務(wù)。(6)每個(gè)電梯有一個(gè)緊急按鈕。按下該按鈕時(shí),將使一個(gè)報(bào)警信號(hào)發(fā)送到現(xiàn)場(chǎng)管理人員,然后強(qiáng)制電梯“停止服務(wù)”。每一個(gè)電梯有一個(gè)取消其“停止服務(wù)”狀態(tài)的機(jī)制。案例分析(3)當(dāng)一個(gè)電梯沒有服務(wù)請(qǐng)求時(shí),應(yīng)當(dāng)停留在最終的目的16電梯狀態(tài)轉(zhuǎn)換圖舉例在一樓上升停滯下降回到一樓回一樓想要到達(dá)樓層想要到達(dá)樓層電梯行程開始向上向上向下電梯狀態(tài)轉(zhuǎn)換圖舉例在一樓上升停滯下降回到一樓回一樓想要到17案例分析需求分析的步驟1.需求獲取目的:清楚地理解所要解決的問題;完整地獲取用戶需求2.需求提煉任務(wù):分析建模3.需求描述結(jié)果:軟件需求說明書4.需求驗(yàn)證改善需求說明的完整性,確保他可作為軟件設(shè)計(jì)和系統(tǒng)驗(yàn)收的依據(jù)。案例分析需求分析的步驟183.2需求獲取的常用方法聯(lián)合分析小組
用戶代表、領(lǐng)域?qū)<液拖到y(tǒng)分析員客戶訪談
充分準(zhǔn)備,尋找共同語言
循循序漸進(jìn)、逐步逼近
問題分析與確認(rèn)
多個(gè)來回3.2需求獲取的常用方法聯(lián)合分析小組19調(diào)研問卷部分的名稱、人員數(shù)量和結(jié)構(gòu)部分發(fā)展或變化簡(jiǎn)單介紹部分的主要任務(wù)業(yè)務(wù)處理流程業(yè)務(wù)處理過程中涉及哪些專業(yè)領(lǐng)域的知識(shí)工作需要的審批流程是什么?主要算法描述哪些業(yè)務(wù)需要實(shí)時(shí)處理?哪些業(yè)務(wù)需要交互操作?調(diào)研問卷部分的名稱、人員數(shù)量和結(jié)構(gòu)20部門各崗位的職責(zé)部門接受哪些部門或外界的信息?信息的內(nèi)容和格式是什么?部門產(chǎn)生哪些信息?部門產(chǎn)生的信息送到哪些其他部門?格式要求是什么?對(duì)信息的輸入和輸出方式有要求嗎?輸入輸出設(shè)備是什么?數(shù)據(jù)要求實(shí)時(shí)備份嗎?備份的設(shè)備是什么?時(shí)間策略?業(yè)務(wù)處理有高峰期嗎?高峰時(shí)間是什么?時(shí)間策略?現(xiàn)有的哪些設(shè)備要繼續(xù)使用?部門各崗位的職責(zé)21對(duì)產(chǎn)品的運(yùn)行環(huán)境有要求嗎?對(duì)界面風(fēng)格和操作方式有要求嗎?在系統(tǒng)運(yùn)行過程中允許停機(jī)嗎?操作方式要根據(jù)操作環(huán)境和使用人員素質(zhì)分類嗎?需要的操作權(quán)限有哪些?需要記錄系統(tǒng)操作運(yùn)行日志嗎?用戶有能力進(jìn)行系統(tǒng)維護(hù)嗎?需要分布式處理嗎?需要什么方式的用戶操作培訓(xùn)。需要制作聯(lián)機(jī)幫助嗎?對(duì)產(chǎn)品的運(yùn)行環(huán)境有要求嗎?22案例用戶提出某種需求:水的質(zhì)量信息必須立即能夠顯示出來。分析員更準(zhǔn)確的描述:水的質(zhì)量記錄必須在接到請(qǐng)求信號(hào)的5秒內(nèi)顯示出來。案例用戶提出某種需求:23需求獲取的三大挑戰(zhàn)問題空間的理解人與人之間的通信需求的不斷變化需求獲取的三大挑戰(zhàn)問題空間的理解24某出版社系統(tǒng)調(diào)查表編號(hào)提出問題1您在哪個(gè)部門工作?2出版業(yè)務(wù)流程是什么?3您每日都處理那些文件、數(shù)據(jù)、報(bào)表?4工作中手工處理特別麻煩的事情是什么?5工作中手工處理什么問題解決不了?影響效率的問題有哪些?6您認(rèn)為提高工作效率,節(jié)省工作時(shí)間,減輕工作強(qiáng)度可采取哪些辦法?某出版社系統(tǒng)調(diào)查表編號(hào)提出問題1您在哪個(gè)部門工作?2出版業(yè)務(wù)25某出版社系統(tǒng)調(diào)查表編號(hào)提出問題7您的部門需要成本核算和統(tǒng)計(jì)的內(nèi)容有哪些?8您的部門采用計(jì)算機(jī)管理工作情況如何?9如何改進(jìn)業(yè)務(wù)流程使之更合理?10哪些問題是目前傳統(tǒng)手工方法根本無法解決的?11出版社計(jì)算機(jī)管理信息系統(tǒng)需要解決什么問題?某出版社系統(tǒng)調(diào)查表編號(hào)提出問題7您的部門需要成本核算和統(tǒng)計(jì)的26需求獲取的內(nèi)容1.用戶需求分類
(1)功能性需求:定義了系統(tǒng)做什么(描述系統(tǒng)必須支持的功能和過程)
(2)非功能性需求(技術(shù)需求):
定義了系統(tǒng)工作時(shí)的特性(描述操作環(huán)境和性能目標(biāo))需求獲取的內(nèi)容1.用戶需求分類272.兩類需求包括的內(nèi)容(1)功能(2)性能(3)環(huán)境(4)界面(5)用戶或人的因素(6)文檔(7)數(shù)據(jù)(8)資源(9)安全保密(10)軟件成本消耗與開發(fā)進(jìn)度(11)質(zhì)量保證2.兩類需求包括的內(nèi)容(1)功能28(1)功能需求
系統(tǒng)做什么?系統(tǒng)何時(shí)做什么?系統(tǒng)何時(shí)及如何修改或升級(jí)?(1)功能需求系統(tǒng)做什么?29(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)例如:存儲(chǔ)容量限制執(zhí)行速度、相應(yīng)時(shí)間吞吐量(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)30(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、地點(diǎn)、分布、溫度、濕度、磁場(chǎng)干擾等軟件:操作系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、31(4)界面需求
有來自其它系統(tǒng)的輸入嗎?到自其它系統(tǒng)的輸出嗎?對(duì)數(shù)據(jù)格式有規(guī)定嗎?對(duì)數(shù)據(jù)存儲(chǔ)介質(zhì)有規(guī)定嗎?(4)界面需求有來自其它系統(tǒng)的輸入嗎?32(5)用戶或人的因素
用戶類型?各種用戶熟練程度?需受何種訓(xùn)練?用戶理解、使用系統(tǒng)的難度?用戶錯(cuò)誤操作系統(tǒng)的可能性?(5)用戶或人的因素用戶類型?33(6)文檔需求
需哪些文檔?文檔針對(duì)哪些讀者?(6)文檔需求需哪些文檔?34(7)數(shù)據(jù)需求
輸入、輸出數(shù)據(jù)的格式?接收、發(fā)送數(shù)據(jù)的頻率?數(shù)據(jù)的準(zhǔn)確性和精度?數(shù)據(jù)流量?數(shù)據(jù)需保持的時(shí)間?(7)數(shù)據(jù)需求輸入、輸出數(shù)據(jù)的格式?35(8)資源需求
軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資源。軟件開發(fā)、維護(hù)所需的人力、支撐軟件、開發(fā)設(shè)備等。(8)資源需求軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。36(9)安全保密要求需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?如何隔離用戶之間的數(shù)據(jù)?用戶程序如何與其它程序和操作系統(tǒng)隔離?系統(tǒng)備份要求?(9)安全保密要求需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控37(10)軟件成本消耗與開發(fā)進(jìn)度需求開發(fā)有規(guī)定的時(shí)間表嗎?軟硬件投資有無限制?(10)軟件成本消耗與開發(fā)進(jìn)度需求開發(fā)有規(guī)定的時(shí)間表嗎?38(11)質(zhì)量保證
系統(tǒng)的可靠性要求?系統(tǒng)必須監(jiān)測(cè)和隔離錯(cuò)誤嗎?規(guī)定系統(tǒng)平均出錯(cuò)時(shí)間?出錯(cuò)后,重啟系統(tǒng)允許的時(shí)間?系統(tǒng)變化如何反映到設(shè)計(jì)中?維護(hù)是否包括對(duì)系統(tǒng)的改進(jìn)?系統(tǒng)的可移植性?(11)質(zhì)量保證系統(tǒng)的可靠性要求?393.3分析建模所謂模型,就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種無歧義的書面描述。簡(jiǎn)單地說,模型就是某一事物的抽象表示方式。經(jīng)過軟件的需求分析建立起來的模型可以稱之為分析模型或者需求模型。3.3分析建模所謂模型,就是為了理解事物而對(duì)事物做出的一403.3分析建模需求分析模型:數(shù)據(jù)字典數(shù)據(jù)模型功能模型行為模型3.3分析建模需求分析模型:數(shù)據(jù)字典數(shù)據(jù)模型功能模型行為41功能模型功能模型可以用數(shù)據(jù)流圖(DFD)描述,所以又稱為數(shù)據(jù)流模型。下面是數(shù)據(jù)流圖的基本形式:3變換4變換1變換2變換外部實(shí)體外部實(shí)體外部實(shí)體外部實(shí)體數(shù)據(jù)文件輸入數(shù)據(jù)中間數(shù)據(jù)輸出數(shù)據(jù)功能模型功能模型可以用數(shù)據(jù)流圖(DFD)描述,所以又稱為數(shù)據(jù)42學(xué)生1審查開發(fā)票2開領(lǐng)書單學(xué)生購書單發(fā)票領(lǐng)書單計(jì)算機(jī)售書系統(tǒng)的數(shù)據(jù)流圖無效書單各班學(xué)生用書表教材存量表學(xué)12學(xué)購書單發(fā)票領(lǐng)書單計(jì)算機(jī)售書系統(tǒng)的數(shù)據(jù)流圖無效書單各班43數(shù)據(jù)模型包含有3種相關(guān)的信息:(1)數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象是幾乎所有必須被軟件理解的復(fù)合信息的表示。它只封裝數(shù)據(jù),不包含作用于對(duì)象的操作。(2)屬性屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。(3)關(guān)系數(shù)據(jù)對(duì)象彼此之間是有關(guān)聯(lián)的,也稱為關(guān)系。數(shù)據(jù)模型包含有3種相關(guān)的信息:44數(shù)據(jù)模型數(shù)據(jù)模型常常用“實(shí)體-關(guān)系圖(ERD)”來描述。ERD包含3種基本元素,即實(shí)體、屬性和關(guān)系。通常,用矩形表示即數(shù)據(jù)對(duì)象,用圓角矩形或橢圓形表示實(shí)體的屬性,用菱形連接相關(guān)實(shí)體表示關(guān)系。下圖是一個(gè)簡(jiǎn)化的教學(xué)管理ERD:數(shù)據(jù)模型數(shù)據(jù)模型常常用“實(shí)體-關(guān)系圖(ERD)45性別職稱姓名教工號(hào)姓名性別系學(xué)號(hào)年級(jí)課程號(hào)課程名學(xué)時(shí)學(xué)分課程教師學(xué)生教學(xué)性別職稱姓名教工號(hào)姓名性別系學(xué)號(hào)年級(jí)課程號(hào)課程名學(xué)時(shí)學(xué)分課程46行為模型行為模型常用狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖)來描述,它又稱為狀態(tài)機(jī)模型。狀態(tài)圖中的基本元素有事件、狀態(tài)和行為等。
系統(tǒng)的狀態(tài)機(jī)模型可以理解為在任一個(gè)時(shí)刻,系統(tǒng)處于有限可能的狀態(tài)中的一個(gè)狀態(tài),當(dāng)某一個(gè)激勵(lì)(條件)到達(dá)時(shí),它激發(fā)系統(tǒng)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)新狀態(tài)。下面是電話系統(tǒng)的狀態(tài)圖:行為模型行為模型常用狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖)來描述,它又稱為47閑置撥號(hào)音do:響撥號(hào)音超時(shí)do:響蜂鳴音存儲(chǔ)的信息do:播放信息接通中do:試接通振鈴do:振鈴撥號(hào)通話斷線忙音do:響忙音掛斷電話掛斷電話拿起話筒超時(shí)無效號(hào)碼有效號(hào)碼超時(shí)數(shù)字?jǐn)?shù)字占線已接通受話人回話受話人掛斷電話信息播完閑置撥號(hào)音超時(shí)存儲(chǔ)的信息接通中振鈴撥號(hào)通話斷線忙音掛斷電話掛48數(shù)據(jù)字典數(shù)據(jù)字典(DataDictionary)用于描述軟件系統(tǒng)中使用或者產(chǎn)生的每一個(gè)數(shù)據(jù)元素,是系統(tǒng)數(shù)據(jù)信息定義的集合。數(shù)據(jù)字典的作用,就是對(duì)軟件中的每個(gè)數(shù)據(jù)規(guī)定一個(gè)定義條目,以保持?jǐn)?shù)據(jù)在系統(tǒng)中的一致性。軟件中的數(shù)據(jù),可分為三種情況:①只含一個(gè)數(shù)據(jù)的數(shù)據(jù)項(xiàng)(或數(shù)據(jù)元素);②由多個(gè)相關(guān)數(shù)據(jù)項(xiàng)組成的數(shù)據(jù)流;③數(shù)據(jù)文件或數(shù)據(jù)庫。數(shù)據(jù)字典數(shù)據(jù)字典(DataDictionary)用于描述軟49數(shù)據(jù)流“發(fā)票”的字典條目數(shù)據(jù)流名:發(fā)票別名:購書發(fā)票組成:學(xué)號(hào)+姓名+{書號(hào)+單價(jià)+數(shù)量+總價(jià)}+書費(fèi)合計(jì)備注:數(shù)據(jù)字典的例子數(shù)據(jù)流“發(fā)票”的字典條目數(shù)據(jù)流名:發(fā)票別名:購503.3分析建模下面介紹兩種需求模型:結(jié)構(gòu)化分析模型和面向?qū)ο蠓治瞿P头治瞿P兔枋龉ぞ逥FD、DD和PSPECCFD、CSPEC和STDE-R圖用例圖對(duì)象-關(guān)系圖:類、對(duì)象、構(gòu)建等圖對(duì)象-行為圖:狀態(tài)、時(shí)序、協(xié)作、活動(dòng)等圖3.3分析建模下面介紹兩種需求模型:結(jié)構(gòu)化分析模型和面向51結(jié)構(gòu)化分析模型數(shù)據(jù)對(duì)加工象說明說明
控制說明E-R圖DFD圖STD圖DD數(shù)據(jù)模型功能模型行為模型結(jié)構(gòu)化分析模型數(shù)據(jù)對(duì)加工E52面向?qū)ο蠓治瞿P蛯傩?、操作、協(xié)作者類/對(duì)象對(duì)象-關(guān)模型系模型對(duì)象-行為模型使用實(shí)例功能模型行為模型數(shù)據(jù)模型(靜態(tài))(靜態(tài))(動(dòng)態(tài))面向?qū)ο蠓治瞿P蛯傩?、操作、協(xié)作者類/對(duì)象對(duì)象-關(guān)53分析模型描述工具結(jié)構(gòu)化分析工具DFD、DD和PSPEC(加工說明)——基本組成CFD、CSPEC(控制說明)和STD——擴(kuò)展E-R圖——擴(kuò)展(復(fù)雜數(shù)據(jù)結(jié)構(gòu)可以使用)面向?qū)ο蠓治龉ぞ哂美龍D,類對(duì)象圖對(duì)象-關(guān)系圖對(duì)象-行為圖分析模型描述工具結(jié)構(gòu)化分析工具541.數(shù)據(jù)流圖(DFD)飛機(jī)票預(yù)訂系統(tǒng)數(shù)據(jù)流圖1.數(shù)據(jù)流圖(DFD)飛機(jī)票預(yù)訂系統(tǒng)數(shù)據(jù)流圖551.數(shù)據(jù)流圖(DFD)數(shù)據(jù)流圖——他以圖形的方式反映系統(tǒng)的數(shù)據(jù)流程由四種基本元素組成,代表符號(hào)和名稱:加工名編號(hào)加工名編號(hào)文件名文件名數(shù)據(jù)流加工、處理或變換數(shù)據(jù)文件或數(shù)據(jù)庫數(shù)據(jù)原點(diǎn)或終點(diǎn)文件名實(shí)體名1.數(shù)據(jù)流圖(DFD)數(shù)據(jù)流圖——他以圖形的方式反映系統(tǒng)56顧客出版社驗(yàn)證訂單匯總訂單訂單出版社訂單圖書目錄文件顧客檔案待處理訂單文件正確訂單一批訂單出版社檔案文件訂貨存根文件DFD圖的例子顧客出版社驗(yàn)證匯總訂單出版社圖書目錄文件顧客檔案待處理訂單文571.數(shù)據(jù)流圖(DFD)描述系統(tǒng)邏輯模型信息在系統(tǒng)中的流動(dòng)和處理用途交流信息的工具結(jié)構(gòu)化分析和設(shè)計(jì)的工具
1.數(shù)據(jù)流圖(DFD)描述系統(tǒng)邏輯模型
58一家工廠的采購部每天需要一張訂貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次訂貨的零件。對(duì)于每個(gè)需要再次訂貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件入庫或出庫稱為事務(wù),通過放在倉庫中的CRT終端把事務(wù)報(bào)告結(jié)訂貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再次訂貨。案例由文字描述畫出數(shù)據(jù)流圖一家工廠的采購部每天需要一張訂貨報(bào)表,報(bào)表按零件編59由文字描述畫出數(shù)據(jù)流圖采購員訂貨系統(tǒng)事務(wù)訂貨報(bào)表訂貨系統(tǒng)數(shù)據(jù)流程圖倉庫保管員由文字描述畫出數(shù)據(jù)流圖采購員訂貨事務(wù)訂貨報(bào)表訂貨系統(tǒng)數(shù)據(jù)流程60由系統(tǒng)調(diào)查畫出數(shù)據(jù)流圖會(huì)計(jì)處理原始數(shù)據(jù)賬簿、報(bào)表會(huì)計(jì)信息系統(tǒng)數(shù)據(jù)流程圖由系統(tǒng)調(diào)查畫出數(shù)據(jù)流圖會(huì)計(jì)原始賬簿、報(bào)表會(huì)計(jì)信息系統(tǒng)數(shù)據(jù)流程61領(lǐng)書單
進(jìn)書通知
購書單
缺書單
DFD練習(xí)—售書系統(tǒng)學(xué)生教材購銷系統(tǒng)書庫保管員領(lǐng)書單進(jìn)書通知購書單62領(lǐng)書單進(jìn)書通知
進(jìn)書通知
購書單缺書單
DFD練習(xí)—售書系統(tǒng)1銷售2采購書庫保管員學(xué)生F1教材存量表
F2缺書登記表
領(lǐng)書單進(jìn)書通知進(jìn)書通632.數(shù)據(jù)字典(DD)定義:數(shù)據(jù)詞典——是描述數(shù)據(jù)信息的集合,它對(duì)數(shù)據(jù)流圖中的各個(gè)元素按規(guī)定格式進(jìn)行詳細(xì)的描述和確切的解釋,是數(shù)據(jù)流圖的補(bǔ)充工具。數(shù)據(jù)流圖與數(shù)據(jù)字典構(gòu)成了系統(tǒng)邏輯模型的主體。2.數(shù)據(jù)字典(DD)定義:642.數(shù)據(jù)字典(DD)數(shù)據(jù)字典的作用,就是對(duì)軟件中的每個(gè)數(shù)據(jù)規(guī)定一個(gè)定義條目,以保持?jǐn)?shù)據(jù)在系統(tǒng)中的一致性。軟件中的數(shù)據(jù),可分為三種情況:①由多個(gè)相關(guān)數(shù)據(jù)項(xiàng)組成的數(shù)據(jù)流;②數(shù)據(jù)文件或數(shù)據(jù)庫;③只含一個(gè)數(shù)據(jù)的數(shù)據(jù)項(xiàng)(或數(shù)據(jù)元素)。DFD中所有數(shù)據(jù)元素的定義集合2.數(shù)據(jù)字典(DD)數(shù)據(jù)字典的作用,就是對(duì)軟65①數(shù)據(jù)流——例:發(fā)票②數(shù)據(jù)文件——例:各班學(xué)生用書表③學(xué)生購書數(shù)量數(shù)據(jù)項(xiàng)——例:數(shù)量三種數(shù)據(jù)字典分別表達(dá)如下:學(xué)生1審查開發(fā)票2開領(lǐng)書單學(xué)生購書單發(fā)票領(lǐng)書單計(jì)算機(jī)售書系統(tǒng)的數(shù)據(jù)流圖:無效書單各班學(xué)生用書表教材存量表①數(shù)據(jù)流——例:發(fā)票學(xué)12學(xué)購書單發(fā)票領(lǐng)書單計(jì)算機(jī)售書系統(tǒng)的66數(shù)據(jù)流“發(fā)票”的字典條目數(shù)據(jù)流名:發(fā)票別名:購書發(fā)票組成:學(xué)號(hào)+姓名+{書號(hào)+單價(jià)+數(shù)量+總價(jià)}+書費(fèi)合計(jì)備注:數(shù)據(jù)字典——數(shù)據(jù)流數(shù)據(jù)流“發(fā)票”的字典條目數(shù)據(jù)流名:發(fā)票別名:購67數(shù)據(jù)文件“各班學(xué)生用書表”的字典條目文件名:各班學(xué)生用書表別名:組成:{系編號(hào)+專業(yè)和班編號(hào)+年級(jí)+{書號(hào)}}組織:按系、專業(yè)和班編號(hào)從小到大排列備注:數(shù)據(jù)字典——數(shù)據(jù)文件數(shù)據(jù)文件“各班學(xué)生用書表”的字典條目文件名:各班學(xué)生用書表別68數(shù)據(jù)項(xiàng)“數(shù)量”的字典條目數(shù)據(jù)項(xiàng)名:數(shù)量別名:購書量取值:正整數(shù)備注:數(shù)據(jù)字典——數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)“數(shù)量”的字典條目數(shù)據(jù)項(xiàng)名:數(shù)量別名:購69一般的“數(shù)據(jù)流”字典條目應(yīng)包含以下內(nèi)容:數(shù)據(jù)流名:別名(編號(hào)):描述:組成(定義):來源與去處:頻率、數(shù)據(jù)量、取值范圍等:…備注:數(shù)據(jù)字典——數(shù)據(jù)流應(yīng)包含的內(nèi)容一般的“數(shù)據(jù)流”字典條目應(yīng)包含以下內(nèi)容:數(shù)據(jù)流名:別名(編號(hào)70數(shù)據(jù)字典——數(shù)據(jù)文件應(yīng)包含的內(nèi)容一般的“數(shù)據(jù)文件”字典條目應(yīng)包含以下內(nèi)容:數(shù)據(jù)文件名:關(guān)鍵碼:描述:組成(定義):存儲(chǔ)方式:存儲(chǔ)頻率、數(shù)據(jù)量、取值范圍等:…(如安全要求等)備注:數(shù)據(jù)字典——數(shù)據(jù)文件應(yīng)包含的內(nèi)容一般的“數(shù)據(jù)文件”字典條目應(yīng)71數(shù)據(jù)字典——數(shù)據(jù)項(xiàng)應(yīng)包含的內(nèi)容一般的“數(shù)據(jù)項(xiàng)”字典條目應(yīng)包含以下內(nèi)容:數(shù)據(jù)項(xiàng)名:別名:描述:數(shù)據(jù)類型:長(zhǎng)度(精度):取值范圍、缺省值等:…(如計(jì)量單位等)備注:數(shù)據(jù)字典——數(shù)據(jù)項(xiàng)應(yīng)包含的內(nèi)容一般的“數(shù)據(jù)項(xiàng)”字典條目應(yīng)包含72還可以采用類似公式定義式,(似P41例3.6)例如:航班信息文件={航空公司名稱+航班號(hào)+起點(diǎn)+終點(diǎn)+日期+起飛時(shí)間+降落時(shí)間}航空公司名稱=2{字母}4航班號(hào)=3{十進(jìn)制數(shù)字}3字母=“A”…“Z”十進(jìn)制數(shù)字=“0”…“9”起點(diǎn)=終點(diǎn)=1{漢字}10起飛時(shí)間=降落時(shí)間=時(shí)+分時(shí)=“00”…“23”分=“00”…“59”日期=年+月+日年=[2000|2001|2002|2004]月=“01”…“12”日=“01”…“31”還可以采用類似公式定義式,(似P41例3.6)例如:航班信息73對(duì)數(shù)據(jù)項(xiàng)的數(shù)據(jù)描述還可以采用以下的方式:名稱別名類型長(zhǎng)度備注姓名XM字符8存款日期CKRQ日期金額JE數(shù)字8,2身份證號(hào)SFZH字符16類別LB字符2取款日期QKRQ日期利息LX數(shù)字8,2利息稅LXS數(shù)字8,2數(shù)據(jù)字典對(duì)數(shù)據(jù)項(xiàng)的數(shù)據(jù)描述還可以采用以下的方式:名稱別名類型長(zhǎng)度備注74實(shí)現(xiàn)數(shù)據(jù)字典的途徑目前實(shí)現(xiàn)數(shù)據(jù)字典有三種途徑:全人工過程利用數(shù)據(jù)字典處理程序的全自動(dòng)化過程用正文編輯程序報(bào)告生成程序等已有的實(shí)用程序幫助人工過程的混合過程。實(shí)現(xiàn)數(shù)據(jù)字典的途徑目前實(shí)現(xiàn)數(shù)據(jù)字典有三種途徑:753.加工說明加工說明(PSPEC)說明DFD中的每個(gè)加工,加工邏輯說明描述實(shí)現(xiàn)加工的策略,是加工說明的主體。在需求分析階段,策略僅需要指出“做什么”,而不管“怎么做”!3.加工說明加工說明(PSPEC)763.加工說明加工說明(PSPEC)的描述工具有:結(jié)構(gòu)化語言判定表或判定樹層次方框圖Warnier圖IPO圖等等3.加工說明加工說明(PSPEC)的描述工具有:77(1)結(jié)構(gòu)化語言自然語言加上結(jié)構(gòu)化的形式,就是結(jié)構(gòu)化語言。借用結(jié)構(gòu)化語言的控制結(jié)構(gòu)描述加工。結(jié)構(gòu)化語言的特點(diǎn):無確定語法可分層、嵌套(1)結(jié)構(gòu)化語言自然語言加上結(jié)構(gòu)化的形式,就是結(jié)78加工名:核實(shí)訂票處理編號(hào):3.2激活條件:收到取訂票信息處理邏輯:1讀訂票旅客信息文件2搜索此文件中是否有與輸入信息中姓名及身份證號(hào)相符的項(xiàng)
IF有
THEN判斷余項(xiàng)是否與文件中信息相符
IF是THEN輸出已訂票信息
ELSE輸出未訂票信息
ELSE輸出未訂票信息執(zhí)行頻率:實(shí)時(shí)例:用結(jié)構(gòu)化語言描述加工加工名:核實(shí)訂票處理編號(hào):3.2例:用結(jié)構(gòu)79(2)判定表或判定樹判定表采用表格的形式描述加工邏輯,他適合于描述包含復(fù)雜判斷的加工處理。判定樹采用樹形圖的形式描述加工邏輯,他同樣適合于描述包含復(fù)雜判斷的加工處理。他是判定表的圖形表示。
一般情況下,兩者選用其一。(2)判定表或判定樹判定表采用表格的形式描述加工邏輯,他適合80判定(決策)樹實(shí)例判定樹描述有多個(gè)行為需要選擇的過程。判定樹由一組表示條件的節(jié)點(diǎn),和無標(biāo)記邊組成。判定樹示意圖
邏輯功能名
條件1
條件2
條件1.2
條件1.1
行為1
行為2
條件2.1
條件2.2
行為3
行為4
條件2.2.2
條件2.2.1
行為5判定樹實(shí)例豪華型選擇包裝箱中速車高速車豪華型標(biāo)準(zhǔn)型標(biāo)準(zhǔn)型使用1號(hào)包裝箱使用2號(hào)包裝箱使用3號(hào)包裝箱使用4號(hào)包裝箱判定(決策)樹實(shí)例判定樹描述有多個(gè)行為需要選擇的過81判定(決策)樹實(shí)例判定樹還有另一種形式:“T”表示“真”,條件成立;“F”表示“假”,條件不成立。判定樹的另一種形式?jīng)Q策樹形式簡(jiǎn)單,易于掌握和使用,并適合于與用戶討論。豪華型
中速車T標(biāo)準(zhǔn)型
使用1號(hào)包裝箱
使用2號(hào)包裝箱
使用4號(hào)包裝箱
使用3號(hào)包裝箱TTFFF判定(決策)樹實(shí)例判定樹還有另一種形式:“T”表示“真”,條82判定(決策)表實(shí)例判定表(1)豪華型中速車T
使用1號(hào)包裝箱
使用2號(hào)包裝箱
使用3號(hào)包裝箱
使用4號(hào)包裝箱TTFFFFT√√√√判定(決策)表實(shí)例判定表(1)豪華型中速車T使用1號(hào)包裝83判定(決策)表實(shí)例判定表(2)判定(決策)表實(shí)例判定表(2)84層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素(不能再分割的元素)。
例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖2.15中的層次方框圖表示。層次方框圖的一個(gè)例子(3)層次方框圖層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪85(4)Warnier圖法國計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層次結(jié)構(gòu)的另外一種圖形工具。和層次方框圖類似,Warnier圖也用樹形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。用Warnier圖可以表明信息的邏輯組織,也就是說,它可以指出一類信息或一個(gè)信息量是重復(fù)出現(xiàn)的,也可以表示特定信息在某一類信息中是有條件地出現(xiàn)的。因?yàn)橹貜?fù)和條件約束是說明軟件處理過程的基礎(chǔ),所以很容易把Warnier圖轉(zhuǎn)變成軟件設(shè)計(jì)的工具。
(4)Warnier圖法國計(jì)算機(jī)科學(xué)家Warnier86(4)Warnier圖下圖是用Warnier圖描繪一類軟件產(chǎn)品的例子,它說明了這種圖形工具的用法。Warnier圖的一個(gè)例子(4)Warnier圖下圖是用Warnier圖描87IPO(Input-Process-OutputChatr)圖IPO圖是輸入/處理/輸出圖的簡(jiǎn)稱,它是美國IBM公司發(fā)展完善起來的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。用IPO圖描繪主文件更新功能右圖是一個(gè)主文件更新的例子,通過這個(gè)例子不難了解IPO圖的用法。IPO(Input-Process-OutputChatr88建議使用一種改進(jìn)的IPO圖(也稱為IPO表),這種圖中包含某些附加信息,在軟件設(shè)計(jì)過程中將比原始的IPO圖更有用。如下圖所示,改進(jìn)的IPO圖中包含的附加信息,主要有系統(tǒng)名稱,圖的作者,完成本圖的日期,本圖描述的模塊的名字,模塊在層次圖中的編號(hào),調(diào)用本模塊的模塊清單,本模塊調(diào)用的模塊的清單,注釋,以及本模塊使用的局部數(shù)據(jù)元素等。在需求分析階段可以使用IPO圖簡(jiǎn)略地描述數(shù)據(jù)流圖中各個(gè)處理的基本算法(著重說明處理功能而不是具體實(shí)現(xiàn)功能的算法)。當(dāng)然,在需求分析階段,IPO表中的許多附加信息暫時(shí)還不具備。但是,在軟件設(shè)計(jì)階段可以進(jìn)一步補(bǔ)充、修正這些表,繼續(xù)作為設(shè)計(jì)階段的文檔。這正是在需求分析階段用IPO表作為描述基本算法的工具的重要優(yōu)點(diǎn)。建議使用一種改進(jìn)的IPO圖(也稱為IPO表),這89改進(jìn)的IPO圖的形式改進(jìn)的IPO圖的形式90改進(jìn)的IPO圖的例子財(cái)務(wù)管理系統(tǒng)2.1客房帳目管理2.1.1客人入住登記查詢處理2.1.1.1.1退房登記查詢處理2.1.1.1.2客房結(jié)算處理2.1.1.2客房帳目查詢2.1.1.1客人客房結(jié)算2.1.1.2.1客房日結(jié)算2.1.1.2.2改進(jìn)的IPO圖的例子財(cái)務(wù)管理系統(tǒng)客房帳目管理客人入住登記查詢91改進(jìn)的IPO圖的例子系統(tǒng):財(cái)務(wù)管理系統(tǒng)作者:XXX模塊:客房帳目管理
日期:2006/03/15編號(hào):2.1.1注釋:被調(diào)用:財(cái)務(wù)管理系統(tǒng)調(diào)用:客房結(jié)算管理有效性檢驗(yàn)、客人入住信息查詢處理、客人退房信息查詢處理輸入:系統(tǒng)當(dāng)前時(shí)間、客人入住信息、客人退房信息、客人入住登記查詢請(qǐng)求、。退房登記查詢請(qǐng)求。輸出:非法信息、客人入住登記查詢結(jié)果、退房登記查詢結(jié)果、客人住宿結(jié)算表、客房日結(jié)算表局部數(shù)據(jù)元素:改進(jìn)的IPO圖的例子系統(tǒng):財(cái)務(wù)管理系統(tǒng)924.CFD和CSPEC適合實(shí)時(shí)系統(tǒng)的分析與DFD和PSPEC類似和DFD與PSPEC配合使用表示控制流和控制加工控制流圖與控制說明通常與DFD配合使用描述模型。4.CFD和CSPEC適合實(shí)時(shí)系統(tǒng)的分析93CFD和DFD的關(guān)系
數(shù)據(jù)條件加工激活信號(hào)控制輸出輸入數(shù)據(jù)
加工模型PSPEC
控制模型CSPEC輸出數(shù)據(jù)
控制輸入CFD和DFD的關(guān)系
數(shù)據(jù)條件加工激活信號(hào)控制輸出輸入數(shù)94(1)CFD的符號(hào)組成與表示控制信息或事件引用控制說明(1)CFD的符號(hào)組成與表示控制信息或事件引用控制說明95(2)CFD的建立對(duì)于那些由事件驅(qū)動(dòng)而不是數(shù)據(jù)驅(qū)動(dòng),產(chǎn)生的是控制信息而不是數(shù)據(jù)值,以及處理信息時(shí)必須依賴于時(shí)間的應(yīng)用,只建立數(shù)據(jù)流模型是不夠的,還需要使用控制流圖來建模,才能清楚地描述系統(tǒng)。下面看課本P46——例3.10(2)CFD的建立對(duì)于那些由事件驅(qū)動(dòng)而不是數(shù)96DFD和CFD例子---DFD信號(hào)半分鐘數(shù)據(jù)光電管采集計(jì)數(shù)傳送工控機(jī)處理實(shí)時(shí)數(shù)據(jù)顯示班數(shù)據(jù)處理半小時(shí)數(shù)據(jù)班數(shù)據(jù)DFD和CFD例子---DFD信號(hào)半分鐘數(shù)據(jù)光電管計(jì)數(shù)工控機(jī)97DFD和CFD例子---CFD翻屏人工驅(qū)動(dòng)信息時(shí)鐘半小時(shí)半分鐘某型號(hào)累加物品經(jīng)過信號(hào)半分鐘數(shù)據(jù)光電管采集計(jì)數(shù)傳送工控機(jī)處理實(shí)時(shí)數(shù)據(jù)顯示班數(shù)據(jù)處理半小時(shí)數(shù)據(jù)班數(shù)據(jù)DFD和CFD例子---CFD翻屏人工驅(qū)動(dòng)信息時(shí)鐘半小時(shí)半分98(3)控制說明當(dāng)某個(gè)事件發(fā)生時(shí),會(huì)出現(xiàn)什么事情呢?這時(shí)就需要看控制說明了??刂普f明用于指明會(huì)激活哪些加工,它主要用于描述:當(dāng)事件或控制信息被感知時(shí)軟件如何行動(dòng);作為事件發(fā)生的結(jié)果,那些加工將被激活。
例3.11課后自己看(P47)(3)控制說明當(dāng)某個(gè)事件發(fā)生時(shí),會(huì)出現(xiàn)什么事情呢?995.狀態(tài)轉(zhuǎn)換圖(STD)描述軟件狀態(tài)變遷符號(hào)表示矩形---系統(tǒng)狀態(tài)箭頭---狀態(tài)轉(zhuǎn)變方向規(guī)則表達(dá)式---事件/觸發(fā)行為狀態(tài)1狀態(tài)2事件/觸發(fā)行為5.狀態(tài)轉(zhuǎn)換圖(STD)描述軟件狀態(tài)變遷狀態(tài)1狀態(tài)2事件100STD例子20秒到/翻屏生成最新數(shù)據(jù)/翻屏半小時(shí)到/工控處理半分鐘到/傳送空閑/采集物品經(jīng)過/計(jì)數(shù)采集PLC計(jì)數(shù)傳送工控處理實(shí)時(shí)翻屏STD例子20秒到/翻屏生成最新數(shù)據(jù)/翻屏半小時(shí)到/工控處理101STD例子“自動(dòng)柜員機(jī)終端”狀態(tài)轉(zhuǎn)換圖請(qǐng)求驗(yàn)證帳戶主屏do:顯示主屏幕do:要求密碼帳戶有效do:驗(yàn)證密碼輸入密碼密碼正確處理結(jié)束結(jié)束do:打印帳單do:驗(yàn)證帳戶do:顯示無效帳戶帳戶無效密碼錯(cuò)取款額無效do:要求取款額do:檢驗(yàn)取款額取款額有效do:取款事務(wù)do:顯示取消信息do:要求類型輸入類型輸入取款額do:顯示失敗信息事務(wù)失敗等待5秒鐘取消取消取消取消STD例子“自動(dòng)柜員機(jī)終端”狀態(tài)轉(zhuǎn)換圖請(qǐng)求驗(yàn)證帳戶主屏do:102E-R圖(1)有三個(gè)相互關(guān)聯(lián)的部分構(gòu)成:①實(shí)體——事物、事件、角色、機(jī)構(gòu)等②屬性——名稱、描述、參考屬性、含有一個(gè)標(biāo)識(shí)屬性(關(guān)鍵字)③關(guān)系——事物、事件、角色、機(jī)構(gòu)等用于對(duì)復(fù)雜數(shù)據(jù)的用作數(shù)據(jù)分析和建模(2)組成符號(hào):0:11:10:m1:mE-R圖(1)有三個(gè)相互關(guān)聯(lián)的部分構(gòu)成:0:11:10:m1103E-R圖例子電話機(jī)生產(chǎn)廠商經(jīng)銷商用戶生產(chǎn)購買使用經(jīng)銷E-R圖例子電話機(jī)生產(chǎn)廠商經(jīng)銷商用戶生產(chǎn)購買使用經(jīng)銷1047.用例圖主要用于面向?qū)ο蠓治鲇美合到y(tǒng)和外部(相對(duì))角色的交互符號(hào)表示:系統(tǒng)名稱系統(tǒng)用例名用例角色關(guān)聯(lián)7.用例圖主要用于面向?qū)ο蠓治鱿到y(tǒng)名稱系統(tǒng)用例名用例角色105UseCase圖例子簽定保險(xiǎn)單銷售統(tǒng)計(jì)客戶統(tǒng)計(jì)客戶保險(xiǎn)銷售員保險(xiǎn)商務(wù)系統(tǒng)的用例圖保險(xiǎn)商務(wù)系統(tǒng)UseCase圖例子簽定保險(xiǎn)單銷售統(tǒng)計(jì)客戶統(tǒng)計(jì)客戶保險(xiǎn)銷售106UseCase圖例子UseCase圖例子107用例之間的關(guān)系擴(kuò)展關(guān)系使用關(guān)系組合關(guān)系《擴(kuò)展》簽保險(xiǎn)單簽汽車購買契約《使用》《使用》簽保險(xiǎn)單簽汽車保險(xiǎn)單簽房屋保險(xiǎn)單用例之間的關(guān)系擴(kuò)展關(guān)系《擴(kuò)展》簽保險(xiǎn)單簽汽車購買契約《使用》108定義用例——1回答問題—發(fā)現(xiàn)角色使用系統(tǒng)主要功能的人是誰?需要借助于系統(tǒng)完成日常工作的人是誰?誰來維護(hù)、管理系統(tǒng),保證系統(tǒng)正常工作?系統(tǒng)控制的硬件設(shè)備有哪些?系統(tǒng)需要和哪些其它系統(tǒng)接口?對(duì)系統(tǒng)產(chǎn)生的結(jié)果感興趣的人和事是哪些?定義用例——1回答問題—發(fā)現(xiàn)角色109定義用例——2回答問題—發(fā)現(xiàn)用例角色需要從系統(tǒng)中獲得哪種功能?需要角色做什么?角色需要讀取、產(chǎn)生、刪除、修改或存儲(chǔ)系統(tǒng)中的某種信息嗎?系統(tǒng)中發(fā)生的事件需要通知角色嗎?角色需要通知系統(tǒng)某件事嗎?這些事件能干什么?系統(tǒng)需要輸入/輸出的是什么信息?這些輸入/輸出信息從哪兒來?到哪兒去?當(dāng)前運(yùn)行系統(tǒng)(也許是一些手工操作而不是計(jì)算機(jī)系統(tǒng))的主要問題?定義用例——2回答問題—發(fā)現(xiàn)用例1108.對(duì)象-關(guān)系圖從E-R(實(shí)體關(guān)系)圖演變而來描述對(duì)象間關(guān)系學(xué)生書出版商購買來自1:10:m1:11:18.對(duì)象-關(guān)系圖從E-R(實(shí)體關(guān)系)圖演變而來學(xué)生書出版商111對(duì)象關(guān)系圖例子儲(chǔ)蓄系統(tǒng)對(duì)象關(guān)系圖(模型)儲(chǔ)戶姓名地址帳戶帳戶號(hào)余額事務(wù)日期金額柜員號(hào)1+1+取款事務(wù)取款總行名稱柜員柜員號(hào)儲(chǔ)蓄所所號(hào)地址1+分行分行號(hào)驗(yàn)證帳號(hào)驗(yàn)證密碼更新帳戶1+1+1+存款事務(wù)存款1+1+終端終端號(hào)驗(yàn)證帳號(hào)驗(yàn)證密碼打印帳單一般與特殊整體與部分注意:對(duì)象關(guān)系而非實(shí)體關(guān)系對(duì)象關(guān)系圖例子儲(chǔ)蓄系統(tǒng)對(duì)象關(guān)系圖(模型)儲(chǔ)戶帳戶事務(wù)1+1+112對(duì)象關(guān)系圖例子對(duì)象關(guān)系圖例子1139.對(duì)象-行為圖描述對(duì)象的動(dòng)態(tài)行為對(duì)象狀態(tài)轉(zhuǎn)換圖(就是5.狀態(tài)轉(zhuǎn)換圖)事件軌跡圖(也稱時(shí)序圖、順序圖)事件流圖9.對(duì)象-行為圖描述對(duì)象的動(dòng)態(tài)行為114對(duì)象狀態(tài)轉(zhuǎn)換圖例子加紙紙用完故障修復(fù)打印故障打印完成接到打印命令就緒打印缺紙故障對(duì)象狀態(tài)轉(zhuǎn)換圖例子加紙紙用完故障修復(fù)打印故障打印完成接到打印115事件軌跡圖例子刪除會(huì)議事件軌跡圖事件軌跡圖例子刪除會(huì)議事件軌跡圖116事件流圖例子[打印機(jī)忙]保存文件[打印機(jī)就緒]打印文件打印文件計(jì)算機(jī)打印隊(duì)列打印服務(wù)器打印機(jī)事件流圖例子[打印機(jī)忙][打印機(jī)就緒]打印文件計(jì)算機(jī)打印隊(duì)列1173.4軟件需求說明(SRS)按美國IEEE830-1998號(hào)標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn)GB856D-88,規(guī)格說明應(yīng)有如下內(nèi)容:軟件需求規(guī)格說明書模板3.4軟件需求說明(SRS)按美國IEEE830-1183.5結(jié)構(gòu)化分析方法定義:使用DFD、DD、結(jié)構(gòu)化語言、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化說明書的目標(biāo)文檔?;静襟E自頂向下,功能分解分層DFD由后向前,定義數(shù)據(jù)和加工DD,PSPEC根據(jù)需要,分析復(fù)雜數(shù)據(jù)和動(dòng)態(tài)模型E-R圖,CFD,CSPEC,STD編寫SRS3.5結(jié)構(gòu)化分析方法定義:使用DFD、DD、結(jié)構(gòu)化語言、119數(shù)據(jù)字典數(shù)據(jù)流圖E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數(shù)據(jù)對(duì)象描述分析模型的結(jié)構(gòu)數(shù)據(jù)數(shù)據(jù)E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數(shù)據(jù)對(duì)描分析模型的1203.5.1畫數(shù)據(jù)流圖的原則找出數(shù)據(jù)的源點(diǎn)與終點(diǎn)把軟件系統(tǒng)看成一個(gè)大的加工,根據(jù)外部實(shí)體的輸出數(shù)據(jù)流和輸入數(shù)據(jù)流,劃出系統(tǒng)的輸入和輸出圖,即頂層圖根據(jù)系統(tǒng)的邏輯要求,從外部實(shí)體的輸出數(shù)據(jù)流出發(fā),把頂層圖中的加工分解成若干個(gè)子加工,并用數(shù)據(jù)流把這些加工連接起來,此時(shí)的系統(tǒng)內(nèi)部圖稱為0層圖進(jìn)行檢查和修改按照上述步驟,再從各加工出發(fā),畫出所需的子圖3.5.1畫數(shù)據(jù)流圖的原則找出數(shù)據(jù)的源點(diǎn)與終點(diǎn)121實(shí)例
考務(wù)處理系統(tǒng)功能
(1)對(duì)考生送來的報(bào)名單進(jìn)行檢查;(2)對(duì)合格的報(bào)名單編好準(zhǔn)考證號(hào)后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站;(3)對(duì)閱卷站送來的成績(jī)單進(jìn)行檢查,并根據(jù)考試中心制定的合格標(biāo)準(zhǔn)審定合格者;(4)制作考生通知單(含成績(jī)及合格/不合格標(biāo)志)送給考生;(5)按地區(qū)進(jìn)行成績(jī)分類統(tǒng)計(jì)和試題難度分析,產(chǎn)生統(tǒng)計(jì)分析表。實(shí)例考務(wù)處理系統(tǒng)功能(1)對(duì)考生送來的報(bào)名單進(jìn)行檢查122考務(wù)處理系統(tǒng)的分層DFD——頂層數(shù)據(jù)流圖考生考務(wù)處理系統(tǒng)考試中心閱卷站不合格報(bào)名單報(bào)名單準(zhǔn)考證考生通知單成績(jī)清單合格標(biāo)準(zhǔn)錯(cuò)誤成績(jī)清單考生名單統(tǒng)計(jì)分析表考務(wù)處理系統(tǒng)的分層DFD——頂層數(shù)據(jù)流圖考考務(wù)考閱卷站不合格123登記報(bào)名單報(bào)名單準(zhǔn)考證1統(tǒng)計(jì)成績(jī)2不合格報(bào)名單考生通知單成統(tǒng)計(jì)分析表0層數(shù)據(jù)流圖考生名冊(cè)績(jī)清單合格標(biāo)準(zhǔn)考生名單成績(jī)清單錯(cuò)誤登記報(bào)名單準(zhǔn)考證1統(tǒng)計(jì)成績(jī)2不合格考生通知單成統(tǒng)計(jì)分析表0層124一層數(shù)據(jù)流圖(a)檢查報(bào)名單報(bào)名單準(zhǔn)考證1.1編準(zhǔn)考證號(hào)1.2不合格報(bào)名單考生名冊(cè)考生名單合格報(bào)名單登記考生1.3一層數(shù)據(jù)流圖(a)檢查報(bào)名單準(zhǔn)考證1.1編準(zhǔn)考證號(hào)1.2不125一層數(shù)據(jù)流圖(b)檢查成績(jī)清單2.1審定合格者2.2考生名冊(cè)正確成績(jī)清單制作通知單2.3分析統(tǒng)計(jì)成績(jī)2.4分析試題難度2.5試題得分清單考生通知單難度分析表合格標(biāo)準(zhǔn)分類統(tǒng)計(jì)表成績(jī)清單錯(cuò)誤成績(jī)清單經(jīng)審定的成績(jī)清單一層數(shù)據(jù)流圖(b)檢查2.1審定2.2考生名冊(cè)正確制作2.126
DFD可以用來表示一個(gè)系統(tǒng)或軟件在任何層次上的抽象。
較大型軟件系統(tǒng)DFD分成多層(子圖、父圖概念),可以表示數(shù)據(jù)流和功能的進(jìn)一步的細(xì)節(jié)。軟件工程——原理、方法與應(yīng)用127S2132.22.12.33.13.2頂層(不編號(hào))0層1層S2132.22.12.33.13.2頂層0層1層1283.5.2確定數(shù)據(jù)定義與加工策略最低一層DFD圖包含了系統(tǒng)的全部數(shù)據(jù)和加工,從哪里開始分析呢?一般應(yīng)該從數(shù)據(jù)的終點(diǎn)開始,因?yàn)榻K點(diǎn)的數(shù)據(jù)代表系統(tǒng)的書櫥,其要求是明確的。從這里沿著DFD圖一步一步向數(shù)據(jù)源點(diǎn)回溯,這樣容易看清數(shù)據(jù)流中每一數(shù)據(jù)項(xiàng)的來龍去脈,有利于減少錯(cuò)誤和遺漏。可后看書P57-583.5.2確定數(shù)據(jù)定義與加工策略最低一層DFD圖包含了系統(tǒng)的129確定數(shù)據(jù)定義與加工策略——例名字:定貨報(bào)表別名:定貨信息描述:每天一次送給采購員的需要定貨的零件表組成:{零件編號(hào)+零件名稱+定貨數(shù)量+目前價(jià)格+主要供應(yīng)者+次要供應(yīng)者}組織:按零件標(biāo)號(hào)排序位置:輸出到打印機(jī)訂貨系統(tǒng)案例分析(本章幻燈片58、59)的數(shù)據(jù)定義,從重點(diǎn)開始,即訂貨報(bào)表:確定數(shù)據(jù)定義與加工策略——例名字:定貨報(bào)表訂貨系統(tǒng)案130結(jié)構(gòu)化分析的整個(gè)流程畫DFD定義加工和數(shù)據(jù)再修改產(chǎn)生SRS復(fù)審結(jié)構(gòu)化分析的整個(gè)流程畫DFD定義加工和數(shù)據(jù)再修改產(chǎn)生SRS復(fù)1313.5.3DFD的復(fù)審父圖和子圖不平衡未區(qū)分局部文件和局部外部項(xiàng)分解的速度太快不遵守加工編號(hào)規(guī)則3.5.3DFD的復(fù)審父圖和子圖不平衡132結(jié)構(gòu)化分析方法實(shí)踐為方便儲(chǔ)戶,某銀行擬開發(fā)計(jì)算機(jī)儲(chǔ)蓄管理系統(tǒng)。儲(chǔ)戶填寫的存款單或取款單由銀行柜臺(tái)業(yè)務(wù)員鍵入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利息等信息,并印出存款單給儲(chǔ)戶;如果是取款,系統(tǒng)進(jìn)行取款處理并印出結(jié)算單給儲(chǔ)戶。請(qǐng)用結(jié)構(gòu)化方法描述系統(tǒng)的邏輯模型。(對(duì)系統(tǒng)的功能需求)結(jié)構(gòu)化分析方法實(shí)踐為方便儲(chǔ)戶,某銀行擬開發(fā)計(jì)算機(jī)儲(chǔ)蓄管理系統(tǒng)1333.6面向?qū)ο蠓治龇椒ㄓ美龍D:視圖功能模型:模型分析模型:模型類圖:視圖對(duì)象模型:模型順序圖:視圖狀態(tài)圖:視圖活動(dòng)圖:視圖動(dòng)態(tài)模型:模型面向?qū)ο蠓治瞿P偷臉?gòu)成面向?qū)ο蠓治龅哪繕?biāo)就是要建立這些圖!??!3.6面向?qū)ο蠓治龇椒ㄓ美龍D:視圖功能模型:模型分析模型1343.6面向?qū)ο蠓治龇椒?0世紀(jì)80年代以來,出現(xiàn)了幾十種面向?qū)ο筌浖_發(fā)方法。每一種都有自己的符號(hào)體系和開發(fā)過程,都支持以下基本活動(dòng):?標(biāo)識(shí)類及對(duì)象?描述類及對(duì)象之間的關(guān)系?定義類的屬性和操作在學(xué)習(xí)面向?qū)ο蠓治龇椒ㄖ?,先了解一下目前較為流行的幾種面向?qū)ο笙到y(tǒng)開發(fā)方法:3.6面向?qū)ο蠓治龇椒?0世紀(jì)8135流行的幾種面向?qū)ο笙到y(tǒng)開發(fā)方法Booch方法Coad-Yourdon方法Rumbaugh
方法(簡(jiǎn)稱OMT)(ObjectModelingTechnology)
Jacobson(雅各布森)方法(簡(jiǎn)稱OOSE)由Rumbaugh、Booch、Jacobson提出的統(tǒng)一建模語言(UnifiedModelingLanguage簡(jiǎn)稱UML)流行的幾種面向?qū)ο笙到y(tǒng)開發(fā)方法Booch方法136目前流行的OOA方法概述①Booch方法Booch的OOA宏觀開發(fā)過程概述:標(biāo)識(shí)類和對(duì)象標(biāo)識(shí)類和對(duì)象的語義標(biāo)識(shí)類和對(duì)象間的關(guān)系進(jìn)行精化
目前流行的OOA方法概述①Booch方法137目前流行的OOA方法概述②Coad-Yourdon方法Coad-Yourdon的OOA過程概述:使用“尋找什么”標(biāo)準(zhǔn)來標(biāo)識(shí)對(duì)象定義一般/特殊結(jié)構(gòu)定義整體/部分結(jié)構(gòu)標(biāo)識(shí)主題(子系統(tǒng)構(gòu)件的表示)定義屬性定義服務(wù)
目前流行的OOA方法概述②Coad-Yourdon方法138目前流行的OOA方法概述③Rumbaugh方法(簡(jiǎn)稱OMT)Rumbaugh的OOA過程概述:開發(fā)對(duì)問題的范圍陳述建造對(duì)象模型開發(fā)動(dòng)態(tài)模型構(gòu)造系統(tǒng)的功能模型目前流行的OOA方法概述③Rumbaugh方法(簡(jiǎn)稱OMT)139目前流行的OOA方法概述④Jacobson方法也稱OOSE方法。最大特點(diǎn)是強(qiáng)調(diào)使用實(shí)例(Use-Case),每一個(gè)用例就是一個(gè)使用系統(tǒng)的方式,用例的執(zhí)行將引發(fā)執(zhí)行一系列與行為相關(guān)的事務(wù)。該方法將用例貫穿于整個(gè)開發(fā)階段,并在用例描述中引入了角色或參與者(Actor)的概念。角色指使用系統(tǒng)的人以及與系統(tǒng)相互作用的軟硬件環(huán)境。該方法還將對(duì)象區(qū)分為實(shí)體對(duì)象(業(yè)務(wù)對(duì)象)、接口對(duì)象(界面對(duì)象)和控制對(duì)象。需求分析階段活動(dòng):定義潛在的角色、識(shí)別問題域中的對(duì)象和關(guān)系、基于需求規(guī)格說明和角色的需要描述用例。目前流行的OOA方法概述④Jacobson方法140目前流行的OOA方法概述不同面向?qū)ο蠓治龇椒ǖ南嗨撇襟E:(1)使用基本需求作為指南選擇類和對(duì)象;(2)為對(duì)象標(biāo)識(shí)屬性和操作;(3)定義組織類的結(jié)構(gòu)和層次;(4)建造對(duì)象-關(guān)系模型的;(5)建造對(duì)象-行為模型。目前流行的OOA方法概述不同面向?qū)ο蠓治龇椒ǖ南嗨撇襟E:141⑤統(tǒng)一的OOA方法由Rumbaugh、Booch、Jacobson提出的統(tǒng)一建模語言:UML(UnifyModeingLanguage簡(jiǎn)稱UML)UML是一種定義良好,易于表達(dá),功能強(qiáng)大且普遍實(shí)用的建模語言。在第七章詳細(xì)講
⑤統(tǒng)一的OOA方法UML是一種定義良好,易1423.6面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治瞿P偷慕哪睦锶胧帜兀恳话銇碚f總是從理解系統(tǒng)的“使用實(shí)例開始”回顧面向?qū)ο蠓治瞿P偷臉?gòu)成(幻燈片134)基本步驟定義系統(tǒng)的用例領(lǐng)域分析,建立類對(duì)象模型建立對(duì)象-關(guān)系模型建立對(duì)象-行為模型功能模型對(duì)象模型動(dòng)態(tài)模型靜態(tài)模型3.6面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治瞿P偷慕哪睦锶胧帜?433.6.1定義用例靜態(tài)建?!δ苣P停河美陀美龍D用例模型的基本組成:用例、角色和系統(tǒng)用例圖:取飲料顧客酒店系統(tǒng)投幣退幣找錢選擇燈金額累計(jì)數(shù)各種飲料存量屏幕系統(tǒng)維護(hù)員放置各種飲料收錢系統(tǒng)數(shù)據(jù)維護(hù)各種飲料存量及單價(jià)設(shè)定3.6.1定義用例靜態(tài)建?!δ苣P停河美陀美龍D取飲144發(fā)現(xiàn)角色通過回答下列問題,可以幫助建模者發(fā)現(xiàn)角色:使用系統(tǒng)主要功能的人是誰?需要借助于系統(tǒng)完成日常工作的人是誰?誰來維護(hù)、管理系統(tǒng),保證系統(tǒng)正常工作?系統(tǒng)控制的硬件設(shè)備有哪些?系統(tǒng)需要與哪些其它系統(tǒng)交互?對(duì)系統(tǒng)產(chǎn)生的結(jié)果感興趣的人或事是哪些?發(fā)現(xiàn)角色通過回答下列問題,可以幫助建模者發(fā)現(xiàn)角色:145發(fā)現(xiàn)用例詢問以下問題角色需要從系統(tǒng)中獲得哪種功能?角色需要做什么?角色需要讀取、產(chǎn)生、刪除、修改或存儲(chǔ)系統(tǒng)中的信息嗎?系統(tǒng)中發(fā)生的事件需要通知角色嗎?如果用系統(tǒng)的新功能處理角色的日常工作是簡(jiǎn)化了還是提高了工作效率?發(fā)現(xiàn)用例詢問以下問題146用例——案例會(huì)議管理系統(tǒng)用例圖用例——案例會(huì)議管理系統(tǒng)用例圖1473.6.2領(lǐng)域分析1、領(lǐng)域分析的概念
面向?qū)ο蟮南到y(tǒng)分析可以發(fā)生在許多不同的抽象層次。在業(yè)務(wù)或企業(yè)級(jí)層次,可定義模擬整個(gè)業(yè)務(wù)的類、對(duì)象、關(guān)系和行為。在業(yè)務(wù)域?qū)哟?,可定義描述某特殊的業(yè)務(wù)域的工作的對(duì)象模型和行為模型;在應(yīng)用層次,建模著重于特定的用戶需求。Firesmith對(duì)軟件領(lǐng)域分析的定義是:領(lǐng)域分析(DomainAnalysis)指特定應(yīng)用領(lǐng)域中公共需求的標(biāo)識(shí)、分析和規(guī)約,即發(fā)現(xiàn)或創(chuàng)建那些可廣泛應(yīng)用的類,其目的使它們?cè)趹?yīng)用域中多個(gè)項(xiàng)目間能被復(fù)用。領(lǐng)域分析的角色是設(shè)計(jì)和建造可復(fù)用構(gòu)件(類似于制造環(huán)境中工具制造者的角色),它們被很多相似但不一定是相同的應(yīng)用開發(fā)的人所使用。3.6.2領(lǐng)域分析1、領(lǐng)域分析的概念148Lethbridge的定義是:領(lǐng)域分析是軟件工程師了解背景信息的過程。為了理解問題并在需求分析和軟件工程過程的其他階段作出合理的決策,軟件工程師必須了解使用該類軟件的一般性商業(yè)和技術(shù)領(lǐng)域中足夠的信息。2、領(lǐng)域分析過程的活動(dòng)(1)定義將被調(diào)查的領(lǐng)域分離感興趣的業(yè)務(wù)域、系統(tǒng)類型或產(chǎn)品范疇,抽取OO和非OO的“項(xiàng)”。OO項(xiàng)包括:現(xiàn)存OO應(yīng)用的類的規(guī)約、設(shè)計(jì)和代碼,支持類(如GUI類或數(shù)據(jù)庫訪問類),和領(lǐng)域相關(guān)的構(gòu)件庫以及測(cè)試案例。非OO項(xiàng)包括:政策、規(guī)程、計(jì)劃、標(biāo)準(zhǔn),非OO應(yīng)用文檔和構(gòu)件。Lethbridge的定義是:領(lǐng)域149(2)對(duì)從領(lǐng)域中抽取出來的項(xiàng)進(jìn)行分類并建立分類層次。(3)收集領(lǐng)域中應(yīng)用的代表性樣本。(4)分析樣本中的每個(gè)應(yīng)用?標(biāo)識(shí)候選的每個(gè)可復(fù)用對(duì)象。
?
指明對(duì)象被標(biāo)識(shí)為可復(fù)用的理由。?定義對(duì)象的適應(yīng)性。?估算在領(lǐng)域中復(fù)用這些對(duì)象的應(yīng)用的百分率。?使用配置管理技術(shù)控制這些對(duì)象。(5)為對(duì)象開發(fā)分析模型。(2)對(duì)從領(lǐng)域中抽取出來的項(xiàng)進(jìn)行分類并建立分類層次。150
3、領(lǐng)域分析的價(jià)值領(lǐng)域分析除了為軟件復(fù)用奠定基礎(chǔ)外,還為較低抽象層次的一般的面向?qū)ο蠓治鰩砣缦潞锰帲?快速開發(fā)。有助于集中精力關(guān)注最重要的問題,更有效地與相關(guān)人員進(jìn)行交流,可以更快的確定需求。?優(yōu)化系統(tǒng)。了解領(lǐng)域的細(xì)節(jié)有助于保證所采納的解決方案更有效地解決用戶的問題。會(huì)少犯錯(cuò)誤,知道應(yīng)該遵循那些規(guī)程和標(biāo)準(zhǔn)。領(lǐng)域分析給出一個(gè)應(yīng)用領(lǐng)域的總體視圖,會(huì)引導(dǎo)出更好的抽象從而改進(jìn)設(shè)計(jì)。?有了領(lǐng)域知識(shí),就可以洞察新興趨勢(shì)及進(jìn)一步開發(fā)的機(jī)會(huì),有助于創(chuàng)建適應(yīng)性更強(qiáng)的系統(tǒng)。?了解通用性和特殊性,有助于創(chuàng)建出具有更好的可重用性和更寬的銷售市場(chǎng)的軟件。
151專家提出,沒有堅(jiān)實(shí)的領(lǐng)域分析,任何重大的軟件項(xiàng)目都不應(yīng)該不進(jìn)行。對(duì)應(yīng)用領(lǐng)域的深入理解能極大的提高成功的幾率。許多非常成功的軟件產(chǎn)品的開發(fā)人員以前都在業(yè)務(wù)領(lǐng)域工作過-段時(shí)間,對(duì)實(shí)際需要有著深切的感受。一旦對(duì)領(lǐng)域有了真正的理解,就可進(jìn)行某一個(gè)項(xiàng)目(或產(chǎn)品)的需求分析,包括定義待解決的問題以及開發(fā)什么軟件來解決它。然而,領(lǐng)域分析永遠(yuǎn)也不應(yīng)該結(jié)束:開發(fā)人員有責(zé)任在開發(fā)過程中不斷增進(jìn)他們的理解,后續(xù)版本的系統(tǒng)擴(kuò)充通常需要對(duì)子領(lǐng)域進(jìn)行進(jìn)一步的領(lǐng)域分析。專家提出,沒有堅(jiān)實(shí)的領(lǐng)域分析,任何重大的軟件項(xiàng)1523.6.3類對(duì)象建模(一)靜態(tài)建模——對(duì)象模型:類/對(duì)象模型確定分析模型中的類/對(duì)象考察系統(tǒng)用例,得到候選對(duì)象進(jìn)一步考察候選對(duì)象,確定正式對(duì)象確定對(duì)象的名稱表示、屬性和操作類和對(duì)象的圖形表示3.6.3類對(duì)象建模(一)靜態(tài)建模——對(duì)象模型:類/對(duì)象模153無論是面向?qū)ο蠓治鲞€是面向?qū)ο笤O(shè)計(jì)與實(shí)現(xiàn),建立類圖都是核心技術(shù)。類圖是定義其他圖的基礎(chǔ),在該基礎(chǔ)上用交互圖、狀態(tài)圖等進(jìn)一步描述系統(tǒng)其他方面的特性。如何識(shí)別對(duì)象?對(duì)象以一系列不同形式展示自身:外部實(shí)體、事物、發(fā)生的事件、角色、組織單位、位置或結(jié)構(gòu)。一種最簡(jiǎn)單的方法是從系統(tǒng)處理說明中找出名詞。1.考察系統(tǒng)用例,得到候選對(duì)象無論是面向?qū)ο蠓治鲞€是面向?qū)ο笤O(shè)計(jì)與實(shí)現(xiàn),建1541.考察系統(tǒng)用例,得到候選對(duì)象1.考察系統(tǒng)用例,得到候選對(duì)象1551.考察系統(tǒng)用例,得到候選對(duì)象
例如,考察“家庭保安系統(tǒng)用例圖”或在系統(tǒng)的需求陳述中,找出相關(guān)的名詞是:用戶、傳感器、控制面板、系統(tǒng)(安全系統(tǒng))、傳感器編號(hào)、傳感器類型、密碼、電話號(hào)碼、傳感器事件、警報(bào)器等。這些候選的對(duì)象是否都可作為在系統(tǒng)中承擔(dān)責(zé)任的有用對(duì)象?要根據(jù)一定原則篩選。見下表:1.考察系統(tǒng)用例,得到候選對(duì)象例如,考察“家156
幾條篩選特征:
例:家庭保安系統(tǒng)中潛在的對(duì)象及篩選理由
(1)保留的信息潛在對(duì)象選取理由篩選理由
(2)需要的服務(wù)用戶角色或外部實(shí)體不符合1/2
(3)多個(gè)屬性
傳感器外部實(shí)體符合1-6
(4)公共屬性
控制面板外部實(shí)體符合1-6
(5)公共操作
系統(tǒng)(安全系統(tǒng))事物或聚集對(duì)象符合1-6
(6)基本的需求傳感器編號(hào)事物或概念實(shí)體不符合3
傳感器類型事物或概念實(shí)體不符合3
密碼事物或概念實(shí)體不符合3
電話號(hào)碼事物或概念實(shí)體不符合3
傳感器事件事件符合1-6
警報(bào)器外部實(shí)體符合1-6
幾乎滿足所有特征的對(duì)象才會(huì)被考慮為分析模型中的合法對(duì)象.2.進(jìn)一步考察候選對(duì)象,確定正式對(duì)象幾條篩選特征:例:家庭保安系統(tǒng)中潛在1573.確定對(duì)象的名稱表示、屬性和操作
(1)根據(jù)系統(tǒng)的描述給對(duì)象確定一個(gè)唯一的名稱(2)定義類/對(duì)象的屬性:
類的屬性與操作和該類在系統(tǒng)中承擔(dān)的責(zé)任有關(guān)。屬性表示了類的特性,即類必須保持的以完成軟件目標(biāo)的信息。屬性的取值決定了對(duì)象可能的狀態(tài)。傳感器有類型、編號(hào)、位置、顏色、重量、工作狀態(tài)(關(guān)閉、待機(jī)、監(jiān)控)、采樣頻率、報(bào)警閾值等特性,哪些與系統(tǒng)責(zé)任有關(guān)呢?定義屬性的一些經(jīng)驗(yàn):?一般常識(shí);?分析問題域,檢查與對(duì)象相聯(lián)系的形容詞或名詞短語;?責(zé)任;?保存管理信息;?有些屬性在對(duì)象模型穩(wěn)定之前可暫不考慮。
3.確定對(duì)象的名稱表示、屬性和操作(1)根據(jù)系統(tǒng)的描述1583.確定對(duì)象的名稱表示、屬性和操作(3)定義操作
操作反映對(duì)象的行為并以某種方式修改對(duì)象的屬性。對(duì)象行為可理解為對(duì)象應(yīng)展現(xiàn)的外部服務(wù)的總和。對(duì)象的行為分為三類:?對(duì)象生命周期中的創(chuàng)建、維護(hù)、刪除行為。?計(jì)算行為?監(jiān)控行為通過這些行為體現(xiàn)對(duì)象的責(zé)任。對(duì)象以兩種方式完成它們的責(zé)任:?使用它自己的操作去操作自己的屬性,?對(duì)象和其他對(duì)象協(xié)作。因此對(duì)象的操作可以有以下幾種類型:
①實(shí)現(xiàn)功能的操作:可追溯到用戶需求。3.確定對(duì)象的名稱表示、屬性和操作(3)定義操作159②管理對(duì)象創(chuàng)建和刪除的操作。在分析階段,這些操作可暫緩定義。③訪問屬性的操作。一個(gè)類的屬性通常是私有的或受保護(hù)的,只有通過該類提供的操作來訪問。④輔助一個(gè)類完成其任務(wù)的操作,即協(xié)作操作。
如何定義操作呢??分析問題域:有哪些行為,找有關(guān)動(dòng)詞。如“傳感器被賦予一個(gè)編號(hào)和類型”。?系統(tǒng)的責(zé)任:找與責(zé)任有關(guān)的對(duì)象,這些對(duì)象為承擔(dān)責(zé)任應(yīng)提供哪些服務(wù)。?分析類的狀態(tài)轉(zhuǎn)換,引起類狀態(tài)轉(zhuǎn)換的動(dòng)作。?追蹤一個(gè)用例的執(zhí)行路線,如順序圖,通過對(duì)象間通信發(fā)現(xiàn)操作。因此類的有些操作是在對(duì)象-行為模型建立后才補(bǔ)充進(jìn)來。下圖是傳感器類的較為詳細(xì)的定義及它的STD:②管理對(duì)象創(chuàng)建和刪除的操作。在分析階段,這些操作可暫緩定義160傳感器類類型;編號(hào);位置;工作狀態(tài);采樣頻率;警報(bào)閾值;初始化;關(guān)閉;監(jiān)視;待機(jī);顯示;振鈴;撥號(hào);關(guān)閉狀態(tài)待機(jī)狀態(tài)監(jiān)視狀態(tài)初始化命令關(guān)閉命令監(jiān)視命令待機(jī)命令關(guān)閉命令超越閾值/激活顯示、振鈴、撥號(hào)傳感器類的STD……例子傳感器類類型;編號(hào);位置;工作狀態(tài);采樣頻率;警報(bào)閾值;初始1614.類和對(duì)象的圖形表示對(duì)象和類的描述
對(duì)象和類一般采用“對(duì)象圖”和“類圖”來描述。幾何對(duì)象顏色位置移動(dòng)(delta:矢量)選擇(P:指針型):布爾型旋轉(zhuǎn)(角度)類的描述圖人姓名:字符串年齡:整型改換工作改換地址文件文件名文件大小最近更新日期打印對(duì)象的描述圖類名屬性操作
對(duì)象
類(人)李軍24程序員無(人)張紅兵28繪圖員人民路58號(hào)4.類和對(duì)象的圖形表示對(duì)象和類的描述幾何對(duì)象類的描述圖人文件1624.類和對(duì)象的圖形表示類名屬性操作/服務(wù)/運(yùn)算類名(a)(b)類名屬性(c)通常類與對(duì)象的表示符號(hào)有以上幾種4.類和對(duì)象的圖形表示類名屬性操作/服務(wù)/運(yùn)算類名(a)(b1634.類和對(duì)象的圖形表示(a)(b)一般類特殊類1特殊類2部分1部分2整體類的結(jié)構(gòu)與層次表示符號(hào)4.類和對(duì)象的圖形表示(a)(b)一般類特殊類1特殊類2部分1643.6.3類對(duì)象建模(二)定義主題和子系統(tǒng)為了便于分析和理解大(復(fù)雜)的系統(tǒng),可以將大系統(tǒng)分解為幾個(gè)主題。當(dāng)然在開發(fā)很小的系統(tǒng)時(shí),可能無須引入主題層。主題層的劃分原則是:應(yīng)該按問題域而不是用功能分解方法來確定主題,組合結(jié)構(gòu)常常可以形成一個(gè)主題。下圖表示儲(chǔ)蓄系統(tǒng)的主題層,將儲(chǔ)蓄系統(tǒng)分解為三個(gè)主題:儲(chǔ)戶、事務(wù)、銀行,分別用三個(gè)粗黑框封閉起來,右下角是主題名。3.6.3類對(duì)象建模(二)定義主題和子系統(tǒng)165儲(chǔ)戶帳戶取款事務(wù)總行分行中央計(jì)算機(jī)儲(chǔ)蓄所分行計(jì)算機(jī)終端柜員儲(chǔ)戶事務(wù)銀行儲(chǔ)蓄系統(tǒng)對(duì)象模型主題層圖存款事務(wù)1+1+1+1+例子儲(chǔ)戶帳戶取款事務(wù)總行分行中央儲(chǔ)蓄所分行終端柜員儲(chǔ)戶事務(wù)銀行儲(chǔ)1663.6.4建立對(duì)象—關(guān)系模型靜態(tài)建?!獙?duì)象模型:對(duì)象—關(guān)系模型步驟復(fù)審需求描述和用例陳述找出表示關(guān)系的動(dòng)詞或動(dòng)詞短語用線連接起來,箭頭表示方向給連接命名,標(biāo)上基數(shù)3.6.4建立對(duì)象—關(guān)系模型靜態(tài)建?!獙?duì)象模型:對(duì)象167對(duì)象-關(guān)系圖例子1:10:11:11:10:11:m1:11:11:m0:m1:11:10:m1:11:11:m1:11:m1:11:m1:1部門流水線工序材料在制品1:m不良品指標(biāo)數(shù)據(jù)1:m1:1規(guī)格實(shí)時(shí)數(shù)據(jù)簡(jiǎn)略的對(duì)象(類)關(guān)系圖對(duì)象-關(guān)系圖例子1:10:11:11:10:11:m1:11168對(duì)象-關(guān)系圖例子儲(chǔ)戶姓名地址帳戶帳戶號(hào)余額事務(wù)日期金額柜員號(hào)1+1+取款事務(wù)
總行名稱柜員柜員號(hào)1+分行分行號(hào)1+1+1+儲(chǔ)蓄系統(tǒng)對(duì)象模型屬性層存款事務(wù)
終端終端號(hào)1+1+1+存儲(chǔ)要求擁有處理存儲(chǔ)儲(chǔ)蓄所所號(hào)地址對(duì)象-關(guān)系圖例子儲(chǔ)戶姓名帳戶帳戶號(hào)事務(wù)日期1+1+取款事務(wù)169例子:
詳細(xì)的對(duì)象(類)關(guān)系圖
例子:
詳細(xì)的對(duì)象(類)關(guān)系圖
1703.6.5建立對(duì)象行為模型動(dòng)態(tài)建?!獙?duì)象行為模型:狀態(tài)轉(zhuǎn)換圖、事件軌跡圖基本過程評(píng)估用例,理解系統(tǒng)中的交互序列找出驅(qū)動(dòng)交互序列的事件為每個(gè)用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- IT綜合服務(wù)外包協(xié)議模板(2024年版)版B版
- 專業(yè)消防系統(tǒng)施工責(zé)任協(xié)議書樣本版B版
- 2025年度消防設(shè)施安裝及驗(yàn)收服務(wù)合同2篇
- 專業(yè)銀杏樹苗交易協(xié)議2024年版
- 自控原理實(shí)例課程設(shè)計(jì)
- 2024版附條件委托借款合同書
- 2025年度石材運(yùn)輸車輛運(yùn)輸責(zé)任保險(xiǎn)合同范本3篇
- 通信協(xié)議課程設(shè)計(jì)
- 語文講字詞句的課程設(shè)計(jì)
- 饅頭蛋糕課程設(shè)計(jì)理念
- 化工公司安全知識(shí)競(jìng)賽題庫(共1000題)
- 2024家清產(chǎn)業(yè)帶趨勢(shì)洞察
- 市消化內(nèi)科質(zhì)量控制分中心業(yè)務(wù)指導(dǎo)工作總結(jié)
- 青島版(五年制)四年級(jí)下冊(cè)小學(xué)數(shù)學(xué)全冊(cè)導(dǎo)學(xué)案(學(xué)前預(yù)習(xí)單)
- 退學(xué)費(fèi)和解協(xié)議書模板
- 課程評(píng)價(jià)與持續(xù)改進(jìn)計(jì)劃
- 2024年版美國結(jié)直腸外科醫(yī)師協(xié)會(huì)《肛周膿腫、肛瘺、直腸陰道瘺的臨床實(shí)踐指南》解讀
- 2024至2030年中國對(duì)氯甲苯行業(yè)市場(chǎng)全景調(diào)研及發(fā)展趨勢(shì)分析報(bào)告
- 智能教育輔助系統(tǒng)運(yùn)營(yíng)服務(wù)合同
- 心功能分級(jí)及護(hù)理
- 事業(yè)單位招錄公共基礎(chǔ)知識(shí)(政治)模擬試卷10(共258題)
評(píng)論
0/150
提交評(píng)論