系統(tǒng)分析與設(shè)計(jì)6過程建模_第1頁
系統(tǒng)分析與設(shè)計(jì)6過程建模_第2頁
系統(tǒng)分析與設(shè)計(jì)6過程建模_第3頁
系統(tǒng)分析與設(shè)計(jì)6過程建模_第4頁
系統(tǒng)分析與設(shè)計(jì)6過程建模_第5頁
已閱讀5頁,還剩154頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第六章過程建模5-2PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-2學(xué)習(xí)目標(biāo)過程模型描述了業(yè)務(wù)過程,即人們所做出的活動(dòng),它是為現(xiàn)有系統(tǒng)或待開發(fā)系統(tǒng)而開發(fā)的模型。最常用的過程建模技術(shù)是數(shù)據(jù)流圖。學(xué)習(xí)目標(biāo)理解數(shù)據(jù)流圖的使用規(guī)則和設(shè)計(jì)原則理解創(chuàng)建數(shù)據(jù)流圖的過程能夠創(chuàng)建數(shù)據(jù)流圖掌握UML魯棒圖、時(shí)序圖、通信圖、活動(dòng)圖

3

提綱§6.1引言§6.2數(shù)據(jù)流圖§6.3創(chuàng)建數(shù)據(jù)流圖

§6.4將方案應(yīng)用到CDSelections項(xiàng)目§6.5UML動(dòng)態(tài)建模

4

過程模型過程模型是表示業(yè)務(wù)系統(tǒng)運(yùn)行的一種形式化方法,它演示了系統(tǒng)執(zhí)行的過程或活動(dòng),以及數(shù)據(jù)在它們之間是如何流動(dòng)的,過程模型可以用來描述現(xiàn)有系統(tǒng)或待開發(fā)系統(tǒng),不管它們是否能被計(jì)算機(jī)化。有許多不同的過程建模技術(shù)數(shù)據(jù)流圖是以圖形的方式描述系統(tǒng)業(yè)務(wù)流程以及系統(tǒng)內(nèi)數(shù)據(jù)傳遞的一種技術(shù)。數(shù)據(jù)流圖主要關(guān)注的是過程和所執(zhí)行的活動(dòng)獨(dú)立于任何實(shí)現(xiàn)技術(shù)來描述系統(tǒng)的邏輯過程模型

5

邏輯過程模型和物理過程模型邏輯過程模型描述了在沒有提示的情況下業(yè)務(wù)過程是這樣被執(zhí)行的物理過程模型提供了在建立系統(tǒng)時(shí)所需的必要信息首先通過關(guān)注邏輯過程模型,系統(tǒng)分析員將重點(diǎn)關(guān)注業(yè)務(wù)怎么執(zhí)行

6

提綱§6.1引言§6.2

數(shù)據(jù)流圖§6.3創(chuàng)建數(shù)據(jù)流圖

§6.4將方案應(yīng)用到CDSelections項(xiàng)目§6.5UML動(dòng)態(tài)建模5-7PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-7醫(yī)生辦公系統(tǒng)DFD的一部分5-8PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-86.2.2數(shù)據(jù)流圖的基本元素DFD語言中有4中符號(過程、數(shù)據(jù)流、數(shù)據(jù)存儲、和外部實(shí)體),每個(gè)符號用不同的圖形表示。5-9PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-9數(shù)據(jù)流圖元素的命名和表示圖形ProcessDataflowDatastoreExternalentity5-10PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-10DFD元素---過程是為特定業(yè)務(wù)原因而執(zhí)行的活動(dòng)或功能可以是人工或計(jì)算機(jī)化每個(gè)過程應(yīng)該是以“動(dòng)詞開頭和名詞結(jié)尾”的形式進(jìn)行命名每個(gè)過程一般只執(zhí)行一個(gè)活動(dòng)每個(gè)過程必須至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流復(fù)雜的過程需要用正規(guī)的技術(shù)進(jìn)行描述,例如:結(jié)構(gòu)化語句、決策表或決策樹5-11PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-11DFD元素---數(shù)據(jù)流單個(gè)數(shù)據(jù)或是一些信息的邏輯集合總是和過程一起出現(xiàn),從一個(gè)過程流出或是流入一個(gè)過程,總是在過程開始在過程結(jié)束5-12PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-12DFD元素---數(shù)據(jù)存儲以某種方式存儲的數(shù)據(jù)集合數(shù)據(jù)存儲是數(shù)據(jù)模型的起始點(diǎn),是過程模型和數(shù)據(jù)模型的主要連接點(diǎn)從數(shù)據(jù)存儲流出的數(shù)據(jù)流顯示的是從數(shù)據(jù)存儲檢索信息流入數(shù)據(jù)存儲的數(shù)據(jù)流代表的是把數(shù)據(jù)存儲到數(shù)據(jù)存儲中或是修改在數(shù)據(jù)存儲中的數(shù)據(jù)每個(gè)數(shù)據(jù)存儲必須至少有一個(gè)輸入數(shù)據(jù)流數(shù)據(jù)存儲在某一層的DFD中至少要有一個(gè)輸出數(shù)據(jù)流5-13PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-13DFD元素---外部實(shí)體是位于系統(tǒng)范圍之外與正在被研究的系統(tǒng)交互的人、組織部門或是其他系統(tǒng).對外部實(shí)體理解的關(guān)鍵點(diǎn)是:外部實(shí)體位于系統(tǒng)范圍之外,可能是組織的一部分,也可能不是一個(gè)常犯的錯(cuò)誤是把“過程執(zhí)行人”作為外部實(shí)體對待過程執(zhí)行人通常在過程中描述,而不是在DFD中描述5-14過程執(zhí)行人5-15PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-15DFD的性質(zhì)(1)DFD中的箭頭僅表示系統(tǒng)中數(shù)據(jù)的流動(dòng),不表示實(shí)物,為代表實(shí)物的信息。(2)DFD不能表示程序的控制結(jié)構(gòu),不包含“控制流”、“控制結(jié)構(gòu)”、“激發(fā)條件”之類的信息。(3)DFD表現(xiàn)范圍具有很大的靈活性,常用一組DFD由粗到細(xì)表示一軟件在不同抽象級別上的邏輯性質(zhì)。5-16PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-166.2.3用數(shù)據(jù)流圖定義業(yè)務(wù)過程大部分業(yè)務(wù)過程由于太復(fù)雜而不能在一個(gè)DFD中描述,因此大部分過程模型由一系列的DFD構(gòu)成。第一個(gè)DFD給出了整個(gè)系統(tǒng)的概要,其他DFD對系統(tǒng)的每個(gè)業(yè)務(wù)過程進(jìn)行更為詳細(xì)地描述。用DFD進(jìn)行過程建模最重要的一點(diǎn)就是把業(yè)務(wù)過程分解成一系列的DFD,每個(gè)DFD代表更低層次的細(xì)節(jié)。5-17PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-17上下文圖每個(gè)業(yè)務(wù)過程模型的第一個(gè)數(shù)據(jù)流圖顯示的是整個(gè)系統(tǒng)的交互環(huán)境,所有的過程模型都有一個(gè)上下文圖顯示的是整個(gè)業(yè)務(wù)過程僅僅作為一個(gè)過程并與外部實(shí)體間進(jìn)行的數(shù)據(jù)流入流出的情況圖中不包括數(shù)據(jù)存儲,除非不是系統(tǒng)或過程“自有的”而是外部的。5-18PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-18Level0圖0層DFD顯示第一層數(shù)據(jù)流圖,即過程1~3的所有過程、數(shù)據(jù)存儲、外部實(shí)體及它們之間的數(shù)據(jù)流0層DFD的目的是顯示系統(tǒng)主要的高層過程及它們之間是如何交互的,所有過程模型有且只有一個(gè)0層。在創(chuàng)建一系列DFD時(shí),另外一個(gè)關(guān)鍵原則是平衡。平衡意味著保證在一層數(shù)據(jù)流圖中出現(xiàn)的所有信息都必須準(zhǔn)確地出現(xiàn)在下一層數(shù)據(jù)流圖中,必須都以恰當(dāng)?shù)姆绞斤@示出來。添加數(shù)據(jù)存儲5-19PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-19RelationshipamongLevelsofDFDsContextdiagramLevel0diagramLevel1diagramLevel2diagram5-20層次數(shù)據(jù)流圖5-21PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-21Level1圖每個(gè)0層DFD的過程還能被分解為更加清晰的DFD,即1層DFD或1層圖。通常在所有過程模型中1層DFD數(shù)和0層DFD中的過程數(shù)是一樣的,0層DFD中的每個(gè)過程分解成其自己的1層DFD顯示了信息是怎樣從0層移動(dòng)到1層子過程集和父過程是一樣的,它們僅僅是從不同角度來看待同一事件5-22PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-22Level2圖顯示了在1層中一個(gè)過程被分解成的所有過程顯示了每個(gè)過程之間信息的流入和流出2層圖可以不必是所有1層的過程可以借助DFD過程編號中點(diǎn)的數(shù)量來判斷DFD所處的層。5-23PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-23可選數(shù)據(jù)流根據(jù)不同的條件,一個(gè)過程可以產(chǎn)生不同的數(shù)據(jù)流在DFD中如何表示這些可選的路徑呢?我們將在過程描述里面解釋這些可選的數(shù)據(jù)流DFD本身不能解釋那些互相排斥的數(shù)據(jù)流5-24數(shù)據(jù)流圖TABC*TA*CBTABC+數(shù)據(jù)A和B同時(shí)輸入才能變換成數(shù)據(jù)C數(shù)據(jù)A變換成數(shù)據(jù)B和C數(shù)據(jù)A或B,或數(shù)據(jù)A和B同時(shí)輸入變換成C數(shù)據(jù)A變換成B或C,或B和CTA*CB只有數(shù)據(jù)A或B(但不能A、B同時(shí))輸入變換成C數(shù)據(jù)A變換成B或C,但不能變換成B和CTABCTACB5-25PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-25過程描述過程描述的目的是解釋過程做什么,以及提供數(shù)據(jù)流圖不能提供的附加信息。SDLC中我們所做的其實(shí)就是將常規(guī)的文本需求描述漸漸轉(zhuǎn)化為越來越精確的描述,并最終將其轉(zhuǎn)化為程序代碼。對于特別復(fù)雜的過程,可以通過更為詳盡的過程描述來解釋發(fā)生在過程內(nèi)部的邏輯,有3種技術(shù)結(jié)構(gòu)化英語:使用簡短的句子描述過程的執(zhí)行情況;決策樹:通過一系列節(jié)點(diǎn)和分支顯示決策邏輯;決策表:是連接不同條件和行動(dòng)的復(fù)雜決策規(guī)則這些技術(shù)通常在編碼階段討論5-26PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-26注意1數(shù)據(jù)流程圖上所有圖形符號只限于前述四種基本圖形元素。數(shù)據(jù)流程圖上所有圖形符號只限于前述四種基本圖形元素。數(shù)據(jù)流程圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間。每個(gè)過程至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流。5-27PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-27注意2在數(shù)據(jù)流程圖中,需按層給加工框編號,編號表明該加工所處層次及上下層的親子關(guān)系。一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。數(shù)據(jù)流程圖上每個(gè)元素都必須有名字和編號。數(shù)據(jù)流圖中不可夾帶控制流。

28

提綱§6.1引言§6.2數(shù)據(jù)流圖

§6.3

創(chuàng)建數(shù)據(jù)流圖

§6.4將方案應(yīng)用到CDSelections項(xiàng)目§6.5UML動(dòng)態(tài)建模5-29PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-296.3創(chuàng)建數(shù)據(jù)流圖DFDs始于需求定義和用例信息。盡管用例是由項(xiàng)目團(tuán)隊(duì)和用戶一起來創(chuàng)建,但是DFD通常是由項(xiàng)目團(tuán)隊(duì)創(chuàng)建,然后由用戶查看。通常,構(gòu)成過程模型的DFD集只是簡單地集成獨(dú)立的用例。項(xiàng)目團(tuán)隊(duì)把用例重新將它們轉(zhuǎn)化為DFD,不得不修改用例信息以符合DFD的規(guī)則。最常見的修改規(guī)則是:將用例的名稱改為過程和數(shù)據(jù)流的輸入和輸出。將用例中幾個(gè)小的輸入和輸出合并為數(shù)據(jù)流圖中的大的數(shù)據(jù)流。項(xiàng)目團(tuán)隊(duì)通常使用過程建模工具或CASE工具來構(gòu)建過程模型。5-30PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-30創(chuàng)建數(shù)據(jù)流圖步驟創(chuàng)建上下文圖創(chuàng)建數(shù)據(jù)流圖段創(chuàng)建0層數(shù)據(jù)流圖團(tuán)隊(duì)基于每個(gè)用例的內(nèi)部步驟開發(fā)1層DFD以便更好地解釋它們是如何執(zhí)行的。在某種情況下,1層DFD需要進(jìn)一步分解為2層DFD、3層和4層DFD;etc.團(tuán)隊(duì)驗(yàn)證DFD集以保證它們的完整性和正確性。5-31PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-316.3.1創(chuàng)建上下文圖上下文圖定義了業(yè)務(wù)過程或計(jì)算機(jī)系統(tǒng)是如何與其所處環(huán)境進(jìn)行交互的。(主要是外部實(shí)體)創(chuàng)建上下文圖時(shí)只需要為業(yè)務(wù)過程或建模的系統(tǒng)繪制一個(gè)過程符號(編號為0并為這個(gè)過程或系統(tǒng)命名)通過閱讀用例圖,給上下文圖添加頂層表格列出的輸入和輸出,以及它們的來源和去向。所有的輸入和輸出都來自或流向外部實(shí)體,如人、組織或其他信息系統(tǒng)。如果有輸入輸出與外部系統(tǒng)的數(shù)據(jù)存儲直接相連,那么最佳實(shí)踐的方式是創(chuàng)建一個(gè)外部實(shí)體并將其定義為擁有該數(shù)據(jù)存儲的系統(tǒng)。5-32PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-32創(chuàng)建上下文圖示例5-33PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-336.3.2創(chuàng)建數(shù)據(jù)流圖段DFD度是數(shù)據(jù)流圖的一部分,最終與其他的DFD段一起合并成一個(gè)完整的DFD每個(gè)用例被轉(zhuǎn)化為一個(gè)DFD段。獲得每個(gè)用例并根據(jù)用例頂部提供的信息繪制DFD段,包括:名稱、ID號以及主要的輸入和輸出。在轉(zhuǎn)化過程中還要做兩個(gè)重要的修改——修改過程名稱和增加數(shù)據(jù)流。所有過程的名稱必須是動(dòng)賓格式——必須由動(dòng)詞開頭并包含一個(gè)名稱。5-34PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-34創(chuàng)建數(shù)據(jù)流圖段增加數(shù)據(jù)流——用例沒有描述系統(tǒng)時(shí)怎樣獲取數(shù)據(jù),所以用例經(jīng)常遺漏從數(shù)據(jù)存儲中讀取數(shù)據(jù)的數(shù)據(jù)流。最簡單的做法用用例頂部列出的主要輸入和輸出來創(chuàng)建DFD段驗(yàn)證所有的輸出都具有足夠的輸入來創(chuàng)建它們5-35PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-35創(chuàng)建數(shù)據(jù)流圖段DFD中的布局是沒有正式規(guī)則的DFD段盡量把過程放在中間輸入放在左邊或上面輸出放在右邊或底部數(shù)據(jù)存儲放在過程下面5-36PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-36ADFDFragmentExample5-37PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-37創(chuàng)建0層數(shù)據(jù)流圖一旦有了DFD段集合,只要簡單合并它們便是一個(gè)0層DFD。系統(tǒng)分析員總是把第一個(gè)過程放在圖的左上角并按照過程的順序自頂向下、從左往右排列。減少數(shù)據(jù)流交叉的次數(shù)迭代是設(shè)計(jì)良好DFD的基礎(chǔ)5-38PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-38創(chuàng)建0層數(shù)據(jù)流圖5-39PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-39創(chuàng)建1層數(shù)據(jù)流圖(及下層)為0層DFD中需要1層DFD的每個(gè)過程創(chuàng)建低層DFD。創(chuàng)建1層DFD的過程所采取的步驟與之前所講的將用例轉(zhuǎn)變?yōu)?層DFD的步驟基本是一樣的用例中每個(gè)帶有輸入和輸出的步驟都轉(zhuǎn)變成1層DFD中帶有輸入數(shù)據(jù)流和輸出數(shù)據(jù)流的過程但是有時(shí)需要做細(xì)微的修改才能將用例中描述的非正式信息轉(zhuǎn)變?yōu)楦诱降倪^程模型。也可以包括外部實(shí)體5-40PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-40創(chuàng)建1層數(shù)據(jù)流圖(及下層)何時(shí)停止分解DFDs層次?在每個(gè)DFD中應(yīng)該至少有3個(gè)過程,至多有7~9個(gè)過程.5-415-425-435-445-455-46PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-46驗(yàn)證數(shù)據(jù)流圖語法錯(cuò)誤–指DFD的結(jié)構(gòu)以及DFD是否遵循他的語言規(guī)則。假設(shè)正確DFD結(jié)構(gòu)ForeachDFD:

Checkeachprocessfor:

Auniquename:actionverbphrase;number;descriptionAtleastoneinputdataflowAtleastoneoutputdataflowOutputdataflownamesusuallydifferentthan

inputdataflownamesBetween3and7processesperDFD5-47PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-47驗(yàn)證數(shù)據(jù)流圖ForeachDFD:

Checkeachdataflowfor:

Auniquename:noun;description Connectstoatleastoneprocess Showninonlyonedirection(notwo-headedarrows) Aminimumnumberofcrossedlines

Checkeachdatastorefor: Auniquename:noun;description Atleastoneinputdataflow AtleastoneoutputdataflowCheckeachexternalentityfor: Auniquename:noun;description Atleastoneinputoroutputdataflow5-48PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-48驗(yàn)證數(shù)據(jù)流圖AcrossDFDs:

ContextDiagram:

EverysetofDFDsmusthaveoneContextDiagram

每一組DFD必須有一個(gè)上下文圖

Viewpoint:

ThereisaconsistentviewpointfortheentiresetofDFDs

整個(gè)DFD的實(shí)體名稱必須一致

Decomposition:

Everyprocessiswhollyandcompletedescribedbythe

processesonitschildrenDFDs

每個(gè)過程所對應(yīng)的子DFD中的所有過程應(yīng)能完整描述該過程

Balance:

Everydataflow,datastore,andexternalentityonahigherlevel

DFDisshownonthelowerlevelDFDthatdecomposesit

Nodatastoresordataflowsappearonlower-leverDFDsthatdonotappearontheirparentDFD

在高層DFD中的每個(gè)數(shù)據(jù)流、數(shù)據(jù)存儲和實(shí)體,在分解后的低層DFD中都要被顯示出來

5-49PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-49驗(yàn)證數(shù)據(jù)流圖語義–是指DFD的含義以及它是否準(zhǔn)確描述了創(chuàng)建的業(yè)務(wù)過程建模確保模型表述確切,讓用戶對模型走查驗(yàn)證角色扮演過程確保模型的最底層可以提供一致的細(xì)節(jié)層次保證整個(gè)建模過程中的術(shù)語一致性5-50PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-50常見錯(cuò)誤一個(gè)過程只有輸入,沒有輸出(黑洞錯(cuò)誤)一個(gè)過程只有輸出,沒有輸入(奇跡錯(cuò)誤)數(shù)據(jù)流從實(shí)體到實(shí)體數(shù)據(jù)流從實(shí)體到數(shù)據(jù)存儲數(shù)據(jù)存儲只有輸入或輸出數(shù)據(jù)流有雙向箭頭

51

提綱§6.1引言§6.2數(shù)據(jù)流圖

§6.3創(chuàng)建數(shù)據(jù)流圖

§6.4

將方案應(yīng)用到CDSelections項(xiàng)目§6.5UML動(dòng)態(tài)建模5-52PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-52創(chuàng)建上下文圖5-53PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-53創(chuàng)建0層數(shù)據(jù)流圖5-54PowerPointPresentationforDennis,Wixom,&RothSystemsAnalysisandDesign,3rdEditionCopyright2006?JohnWiley&Sons,Inc.Allrightsreserved.6-54創(chuàng)建1層數(shù)據(jù)流圖

55

提綱§6.1引言§6.2數(shù)據(jù)流圖

§6.3創(chuàng)建數(shù)據(jù)流圖

§6.4將方案應(yīng)用到CDSelections項(xiàng)目§6.5

UML動(dòng)態(tài)建模

56We’reheretoanswerthequestion...

57CodeLet’sassumethatwe’vedonealittleprototyping,andstartedtowritesomeusecases.Butcodeisourdesireddestination.?58Beforewegettocode,though...Weneedacompletesetofclasses,withaccompanyingattributesandmethods.Weshowthisinformationondesign-levelclassdiagrams.59Design-LevelClassDiagramsurdesign-levelclassdiagramsserveasthestructureforourcode.?60Beforewehaveclasseswithattributesandmethods,though...Wehaveonlyenoughinformationtomakegooddecisionsaboutwhichclassesareresponsibleforwhichmethodswhilewearedrawingsequencediagrams.So,weneedtodrawasequencediagramforeachusecase.61SequenceDiagramsWeallocatemethodstoclassesaswedrawsequencediagrams.??62Beforewedosequencediagrams,though

...Weneedtohaveagoodideaaboutwhatobjectswillbeperforminginwhichusecase,andwhatfunctionsthesystemwillperformasaresultofuseractions.Wegetthisinformationfromrobustnessdiagrams,theresultofrobustnessanalysis.63RobustnessAnalysisDoneforeachusecaseClosesgapbetween“what”and“how”GUI,Logic,Repository

Boundary,Control,EntityUsefulinclient/serverandN-tiermodelingHelpsdomainmodelevolveintodetailedstaticmodel

64

三種分析類

65

三種分析類與MVC的相似與不同

66

67

銷戶用例的魯棒圖

68

ATM系統(tǒng)的用例圖

69

ATM系統(tǒng)的用例描述---用戶登錄

70

ATM系統(tǒng)的用例描述---用戶登錄

71

ATM系統(tǒng)的魯棒圖---用戶登錄

72

73

ATM系統(tǒng)的用例描述---取錢

74

ATM系統(tǒng)的用例描述---取錢

75

ATM系統(tǒng)的魯棒圖---取錢

76

77

作業(yè)和第一次實(shí)驗(yàn)報(bào)告評價(jià)

78

魯棒圖建模的十條經(jīng)驗(yàn)

79

魯棒圖建模規(guī)則

80

魯棒圖的語法

81

不能墨守成規(guī)

82

魯棒圖的優(yōu)點(diǎn):夠用,好用

83

動(dòng)態(tài)建模的重要性應(yīng)用系統(tǒng)開發(fā)中,分析設(shè)計(jì)人員通過建立系統(tǒng)的靜態(tài)模型,能夠獲得系統(tǒng)中的有關(guān)組成及結(jié)構(gòu)、各個(gè)部分之間的關(guān)聯(lián)關(guān)系等信息。但是如果此時(shí)就急于進(jìn)行系統(tǒng)的編碼實(shí)現(xiàn),則往往會很困難。因?yàn)榇蟛糠周浖墓δ軐?shí)現(xiàn)程序都是由復(fù)雜的交互過程組成的,僅了解系統(tǒng)的結(jié)構(gòu)和關(guān)系不足以進(jìn)行系統(tǒng)功能的實(shí)現(xiàn),還必須對應(yīng)用系統(tǒng)建立完善的動(dòng)態(tài)模型和了解系統(tǒng)中各個(gè)組件的消息的傳遞過程以及組件之間的交互關(guān)系。通過為系統(tǒng)建立動(dòng)態(tài)模型,從而產(chǎn)生體現(xiàn)系統(tǒng)動(dòng)態(tài)行為的可視化分析結(jié)果---包括對象的時(shí)間特性和對象為完成目標(biāo)任務(wù)而相互進(jìn)行通信的機(jī)制、對象行為的改變和狀態(tài)變化情況,以及對象可能出現(xiàn)的各種活動(dòng)狀況等信息。

84

動(dòng)態(tài)模型受靜態(tài)模型的限制動(dòng)態(tài)建模是在系統(tǒng)靜態(tài)模型的基礎(chǔ)上建立相應(yīng)的動(dòng)態(tài)模型。在建好系統(tǒng)靜態(tài)模型的基礎(chǔ)上,分析和設(shè)計(jì)系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu),并且建立相應(yīng)的動(dòng)態(tài)建模。動(dòng)態(tài)模型受靜態(tài)模型的限制,并且必須與靜態(tài)模型保持一致,因?yàn)閯?dòng)態(tài)模型中的許多模型元素都是來源于靜態(tài)模型的。動(dòng)態(tài)模型描述了系統(tǒng)隨時(shí)間變化的行為,這些行為是用從靜態(tài)模型視圖中抽取的系統(tǒng)瞬間值的變化來描述的。動(dòng)態(tài)模型分為交互模型和活動(dòng)狀態(tài)模型,其中的交互模型主要由順序圖和協(xié)作圖構(gòu)成,活動(dòng)狀態(tài)模型主要由活動(dòng)圖和狀態(tài)圖構(gòu)成。

85

利用交互圖可以對共同工作的對象群體的行為進(jìn)行建模系統(tǒng)中功能的具體實(shí)現(xiàn)是通過程序類中方法之間的調(diào)用完成的,而軟件系統(tǒng)的分析和設(shè)計(jì)人員想了解某個(gè)功能或者用例的具體實(shí)現(xiàn)過程,則必須了解該功能實(shí)現(xiàn)過程中涉及的對象、對象之間是如何進(jìn)行消息的發(fā)送和接收的。交互圖(interactiondiagram)主要用于定義軟件系統(tǒng)如何實(shí)現(xiàn)特定功能,并能夠按照時(shí)間流程顯示用例的實(shí)現(xiàn)過程,包括:在信息流中需要什么對象、對象相互發(fā)送什么消息、什么角色啟動(dòng)消息流、消息按什么時(shí)序發(fā)送、對象的狀態(tài)是如何改變的交互圖中交互的含義:描述了一組對象和它們之間的相互操作,也包括在對象間傳遞的消息。對象之間的交互是指一個(gè)對象訪問另外一個(gè)對象中的方法或由于事件的觸發(fā)而產(chǎn)生的對象之間的合作關(guān)系交互圖以圖示的形式表示方法調(diào)用的具體過程,有兩種形式:順序圖和通信圖。

86

對象之間進(jìn)行交互時(shí)的消息消息包括發(fā)送者、接收者和動(dòng)作發(fā)送者:發(fā)送者是發(fā)送消息的類元角色。接收者:接收者是接受消息的類元角色。動(dòng)作:動(dòng)作為調(diào)用、信號、發(fā)送者的局部操作或簡單動(dòng)作,如創(chuàng)建和銷毀。動(dòng)作帶有參量表、接收者表達(dá)式已經(jīng)對激活的操作或信號的引用。它還包括消息執(zhí)行的迭代和條件說明。簡單消息(SimpleMessage):消息在單個(gè)控制線程中運(yùn)行。用于描述控制如何在對象間進(jìn)行傳遞,不考慮通信的細(xì)節(jié)。簡單消息的UML圖示

87

對象之間進(jìn)行交互時(shí)的消息消息包括發(fā)送者、接收者和動(dòng)作發(fā)送者:發(fā)送者是發(fā)送消息的類元角色。接收者:接收者是接受消息的類元角色。動(dòng)作:動(dòng)作為調(diào)用、信號、發(fā)送者的局部操作或簡單動(dòng)作,如創(chuàng)建和銷毀。動(dòng)作帶有參量表、接收者表達(dá)式已經(jīng)對激活的操作或信號的引用。它還包括消息執(zhí)行的迭代和條件說明。消息的類型簡單消息(SimpleMessage):消息在單個(gè)控制線程中運(yùn)行。用于描述控制如何在對象間進(jìn)行傳遞,不考慮通信的細(xì)節(jié)。同步消息(SynchronousMessage):表示等待的語義。異步消息(AsynchronousMessage):主要用于描述實(shí)時(shí)系統(tǒng)中的并發(fā)行為。由于是異步的控制流,其中沒有顯示的到調(diào)用者的返回消息。表示不等待的語義

88

順序圖和通信圖的異同順序圖(sequencediagram):按照時(shí)間順序來描述對象的交互,將交互建模成消息交換,主要強(qiáng)調(diào)在交互過程中產(chǎn)生的各個(gè)消息的時(shí)間順序從計(jì)算機(jī)的角度描述用例。協(xié)作圖(collaborationdiagram):圍繞著對象和對象之間的鏈接來描述對象的交互,強(qiáng)調(diào)接收和發(fā)送消息的對象的組織結(jié)構(gòu)。協(xié)作圖不能體現(xiàn)消息的先后順序(協(xié)作圖在UML2.x中也稱通信圖communicationsdiagram)這兩種圖在語言上是對等的,表達(dá)的消息內(nèi)容是相同的順序圖中對象之間的鏈接是隱含的,對象順序信息不夠明顯;協(xié)作圖中對象之間的鏈接是顯式的,而且協(xié)作圖顯示了不同信息流的視圖,更容易看出對象之間的關(guān)系。盡管兩者作用相同,包含相同的信息,但視圖體現(xiàn)出的表達(dá)問題的內(nèi)涵有所不同。在應(yīng)用方面的側(cè)重點(diǎn)不同。用順序表示圖赤壁之戰(zhàn)的執(zhí)行過程

89

90

90順序圖示例1圖15-1順序圖publicclassA{privateBmyB=newB();publicvoiddoOne(){myB.doTwo();myB.doThree();}//……}對象名:類名對象名:類名

91

91圖15-3順序圖publicclassSale{privatePaymentpayment;PublicvoidmakePayment(MoneycashTendered){payment=newPayment(cashTendered);//…}}順序圖示例2

92

順序圖中的各個(gè)組成模型元素及其作用順序圖中包含的模型元素有:對象、消息、生命線、激活期(點(diǎn))。對象類角色生命線

生命線代表對象的名

字放置在方格內(nèi),按

時(shí)間從上到下的順序,

生命線顯示了消息的

順序。在生命線上的

消息比在其下的消息

先發(fā)。當(dāng)收到消息時(shí),接

收對象立即開始執(zhí)行

活動(dòng),即對象被激活.

生命線上的細(xì)長矩形

表示對象被激活。

93

順序圖中的激活期什么是激活期

激活期表示對象執(zhí)行一個(gè)動(dòng)作的周期,即對象激活的時(shí)間段。當(dāng)收到消息時(shí),接收對象立即開始執(zhí)行活動(dòng),即對象被激活了。應(yīng)用要點(diǎn)

當(dāng)一個(gè)對象在激活期時(shí),該對象在激活狀態(tài),能夠響應(yīng)或發(fā)送消息,執(zhí)行動(dòng)作、活動(dòng);當(dāng)一個(gè)對象不在激活期時(shí),該對象在休眠狀態(tài),但它仍然存在,等待新的消息來激活它。

94

95

96

97

登錄用例的協(xié)作圖

98

取款用例的協(xié)作圖

協(xié)作圖不能體現(xiàn)消息的先后順序???

99

登錄用例的協(xié)作圖

100

取款用例的協(xié)作圖

協(xié)作圖不能體現(xiàn)消息的先后順序???

101

順序圖和通信圖的優(yōu)點(diǎn)和缺點(diǎn)每種圖都有其優(yōu)點(diǎn),建模者也各有偏好,因此沒有絕對“正確”的選擇。UML規(guī)范更多是以順序圖為核心,對其表示法和語義投入了更多的精力,因此順序圖對工具的支持更好,并且有更多有效的表示法選項(xiàng)。在墻上繪制“UML草圖”時(shí)利用通信圖更具有優(yōu)越性,因?yàn)槠涓哂锌臻g效用(可以在任何位置方便地放置或擦除框圖),采用順序圖可以更方便地表示調(diào)用流的順序,僅需要從左到右閱讀即可。

102

UML初學(xué)者沒有對交互圖給予足夠重視大部分UML初學(xué)者知道類圖,并且通常認(rèn)為類圖是OO設(shè)計(jì)中唯一重要的圖形,但實(shí)際上并非如此!盡管類圖確實(shí)重要,但動(dòng)態(tài)建模的交互圖(更確切地說是動(dòng)態(tài)交互建模中的動(dòng)作)的價(jià)值更高。準(zhǔn)則應(yīng)該花費(fèi)時(shí)間使用交互圖進(jìn)行動(dòng)態(tài)對象建模,而不僅是使用類圖進(jìn)行靜態(tài)對象建模UML活動(dòng)圖活動(dòng)圖的組成元素:活動(dòng)轉(zhuǎn)移判定點(diǎn)同步條泳道

103

104

105

UML中的活動(dòng)圖活動(dòng)圖本質(zhì)上是結(jié)構(gòu)化開發(fā)實(shí)現(xiàn)中的流程圖活動(dòng)圖中的各個(gè)活動(dòng)是在完成某個(gè)特定業(yè)務(wù)功能的實(shí)現(xiàn)過程中產(chǎn)生的。用例模型描述和采用活動(dòng)模型描述之間的區(qū)別描述問題的角度不同

用例模型描述是從外部參與者的角度來編寫的,更多地是體現(xiàn)系統(tǒng)具有的功能項(xiàng)目;活動(dòng)模型描述采用內(nèi)部系統(tǒng)的觀點(diǎn)來描述,更多地是體現(xiàn)參與者在系統(tǒng)中可能從事的各項(xiàng)活動(dòng)項(xiàng)目;應(yīng)用的目的不同

用例描述沒有表達(dá)出實(shí)現(xiàn)某個(gè)用例時(shí)系統(tǒng)處理的順序(描述了系統(tǒng)執(zhí)行的功能類型,但沒有明確地表達(dá)用例可能發(fā)生的順序);活動(dòng)圖可以表示由內(nèi)部生產(chǎn)的動(dòng)作(即描述具體的活動(dòng)),也可以為參與者對系統(tǒng)的操作行為建模(即描述具體的行為)

106

UML中的活動(dòng)圖活動(dòng)圖中的動(dòng)作特性:原子性、不可中斷性、瞬時(shí)性活動(dòng)圖的主要應(yīng)用既可以用來描述操作(類的方法)的行為,也可以描述用例和對象內(nèi)部工作過程的活動(dòng)。由狀態(tài)圖變化而來,但各用于不同目的:活動(dòng)圖側(cè)重于描述行為和活動(dòng),狀態(tài)圖側(cè)重于描述狀態(tài)和轉(zhuǎn)換?;顒?dòng)圖依據(jù)對象狀態(tài)的變化來捕獲動(dòng)作與動(dòng)作的結(jié)果,一個(gè)動(dòng)作結(jié)束后將立即進(jìn)入下一個(gè)活動(dòng),而在狀態(tài)圖中,狀態(tài)的變遷可能需要事件的觸發(fā)。在什么應(yīng)用場合中應(yīng)該使用活動(dòng)圖對用例的擴(kuò)展

107

UML中的活動(dòng)圖活動(dòng)圖的建模步驟定義活動(dòng)的范圍。添加活動(dòng)的起始和結(jié)束點(diǎn)。添加各個(gè)具體的活動(dòng)項(xiàng)目。添加在活動(dòng)期間行為的轉(zhuǎn)變。找出系統(tǒng)中各種并行的活動(dòng)。排版和整理,使活動(dòng)圖整潔。活動(dòng)圖中各種模型元素主要模型元素有:活動(dòng)狀態(tài)、分支、合并、條件表達(dá)式、泳道、對象流狀態(tài)、狀態(tài)類、信號發(fā)送和信號接收等。活動(dòng)圖中的活動(dòng)(Activity)Actionwithmultipleincomingand

outgoingedgesandimplicitfork/join

108

109

computerhardwaresales

110

UML中的活動(dòng)圖活動(dòng)圖中各種模型元素活動(dòng)圖中的條件關(guān)系和分支

活動(dòng)圖中的并發(fā)行為

111

UML中的活動(dòng)圖活動(dòng)圖中各種模型元素活動(dòng)圖中的對象

Objectnodes

connectedpins

stand-alonenotation

活動(dòng)圖中的對象流

對象流對應(yīng)于一個(gè)對象經(jīng)過整個(gè)活動(dòng)的不同狀態(tài),對象流采用虛箭頭線表示,控制流采用實(shí)虛箭頭線

112

113

114

computerhardwaresales

115

§6.1.2帶泳道的活動(dòng)圖活動(dòng)可以被分成幾個(gè)區(qū)域,每個(gè)區(qū)域在圖中用泳道分開為什么要采用泳道來描述活動(dòng)?

活動(dòng)圖能夠幫助分析設(shè)計(jì)人員了解發(fā)生了什么,但沒有體現(xiàn)或者表達(dá)該項(xiàng)活動(dòng)是由誰來完成的。這在程序設(shè)計(jì)中意味著活動(dòng)圖沒有描述各個(gè)活動(dòng)由哪個(gè)具體的類來完成。泳道能夠解決這一問題。泳道的作用能夠?qū)⒒顒?dòng)圖的邏輯描述與順序圖、協(xié)作圖的責(zé)任描述結(jié)合起來加以說明;

通過設(shè)計(jì)帶泳道的活動(dòng)圖,不僅可以描述各個(gè)活動(dòng)的項(xiàng)目,而且能夠描述完成某個(gè)用例實(shí)現(xiàn)過程中的各項(xiàng)活動(dòng)過程,同時(shí)通過泳道還能夠明確各個(gè)活動(dòng)涉及的目標(biāo)對象??捎糜诮D承?fù)雜的活動(dòng)狀態(tài)

每一個(gè)泳道都可以對應(yīng)于一個(gè)協(xié)同的目標(biāo)對象,其中的活動(dòng)可以由一個(gè)或多個(gè)相互連接的類的對象來實(shí)現(xiàn)

116

Simpleorganizationalstructuresandswimlanes

117

Simpleorganizationalstructuresandswimlanes

118

119

120

Sale倉儲與物流銷售與客服財(cái)務(wù)

121

computerhardwaresales

122

提問談?wù)勴樞驁D和通信圖的異同談?wù)勴樞驁D和通信圖的優(yōu)缺點(diǎn)談?wù)動(dòng)美P兔枋龊筒捎没顒?dòng)模型描述之間的區(qū)別活動(dòng)圖中的動(dòng)作有哪三個(gè)特性?狀態(tài)圖

123

124

125

狀態(tài)及狀態(tài)表示法狀態(tài)是指在對象生命周期中滿足某些條件、執(zhí)行某些活動(dòng)或等待某些事件的一個(gè)條件和狀況一個(gè)狀態(tài)通常包括名稱、進(jìn)入/退出活動(dòng)、內(nèi)部轉(zhuǎn)換、子狀態(tài)和延遲事件等五個(gè)部分組成狀態(tài)機(jī)是計(jì)算機(jī)科學(xué)理論的一部分,但UML中的狀態(tài)機(jī)模型主要是基于DavidHarel所做的擴(kuò)展,是用來展示狀態(tài)與狀態(tài)之間轉(zhuǎn)換的圖

126

何時(shí)使用狀態(tài)圖

127

閱讀最簡單的狀態(tài)圖最為核心的元素?zé)o外乎是兩個(gè):一個(gè)是用圓角矩形表示的狀態(tài)(初態(tài)和終態(tài)例外);另一個(gè)則是在狀態(tài)之間的、包含一些文字描述的有向箭頭線,這些箭頭線稱為轉(zhuǎn)換

128

轉(zhuǎn)換的五要素源狀態(tài):即受轉(zhuǎn)換影響的狀態(tài)目標(biāo)狀態(tài):當(dāng)轉(zhuǎn)換完成后對象的狀態(tài)觸發(fā)事件:用來為轉(zhuǎn)換定義一個(gè)事件,包括調(diào)用、改變、信號、時(shí)間四類事件監(jiān)護(hù)條件:布爾表達(dá)式,決定是否激活轉(zhuǎn)換動(dòng)作:轉(zhuǎn)換激活時(shí)的操作

129

轉(zhuǎn)接的三個(gè)組成部分:

溫馨提示

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

評論

0/150

提交評論