版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章需求建模方法與技術(shù)
目錄什么是模型軟件工程中的模型結(jié)構(gòu)化的需求建模方法基于圖形的需求建模方法面向?qū)ο蟮男枨蠼7椒?-15-25-35-45-5需求建模軟件建模方法的特點(diǎn)主要是根據(jù)待開(kāi)發(fā)軟件系統(tǒng)的需求利用某種建模方法建立該系統(tǒng)的邏輯模型(也稱(chēng)需求模型或分析模型),以幫助軟件開(kāi)發(fā)人員檢測(cè)軟件需求的一致性、完全性、二義性和錯(cuò)誤等。軟件建模方法都至少應(yīng)具備如下共同特點(diǎn):提供描述手段:研制一個(gè)軟件系統(tǒng)涉及許多人,開(kāi)發(fā)人員之間如何有效地進(jìn)行交流是項(xiàng)目成功的關(guān)鍵之一。提供基本步驟:研制一個(gè)軟件系統(tǒng),特別是大型又復(fù)雜的系統(tǒng),要考慮的問(wèn)題很多,如果同時(shí)處理這些問(wèn)題就會(huì)束手無(wú)策或者造成混亂。目前的需求建模方法中,主要使用的描述手段和技術(shù)是自然語(yǔ)言、圖形符號(hào)語(yǔ)言和形式語(yǔ)言等。需求建模方法與技術(shù)5-1什么是模型模型的定義模型的分類(lèi)根據(jù)對(duì)模型的理解不同,模型的定義也是多種多樣的:由某些人根據(jù)其目的而對(duì)事物進(jìn)行的抽象描述。根據(jù)實(shí)物、設(shè)計(jì)圖或設(shè)想,按比例生態(tài)或其他特征制成的同實(shí)物相似的物體。當(dāng)一個(gè)數(shù)學(xué)結(jié)構(gòu)作為某個(gè)形式語(yǔ)言(即包括常符號(hào)、函數(shù)符號(hào)、謂詞符號(hào)的集合)的解釋時(shí),稱(chēng)為模型。為了理解事物而對(duì)事物作出的一種抽象,是對(duì)事物的一種無(wú)二義性的書(shū)面描述。模型通常不僅與客觀世界中某個(gè)特殊個(gè)體或現(xiàn)象相關(guān),而且與許多甚至無(wú)限個(gè)個(gè)體相關(guān)。根據(jù)模型與客觀世界的關(guān)系,模型可大致分類(lèi)如下:描述性模型:能真實(shí)和較完整地反映客觀世界(如照片)。規(guī)約性模型:能用于創(chuàng)造新事物的規(guī)約(如需求模型)。探測(cè)性模型:是過(guò)渡性的,經(jīng)常被修改而非最終決定的模型。軟件工程中的模型大部分是描述性模型,而需求模型既是描述性模型(描述問(wèn)題域),又是規(guī)約性模型(軟件的需求規(guī)格說(shuō)明)。5-1什么是模型5-2軟件工程中的模型軟件工程中模型的概念軟件工程中模型的分類(lèi)對(duì)客觀世界的問(wèn)題領(lǐng)域進(jìn)行抽象并用某描述方法給予表示的結(jié)果稱(chēng)為模型。特點(diǎn):軟件工程中多數(shù)模型是用于表示問(wèn)題領(lǐng)域中的元素以及元素間的關(guān)系或相互作用等。5-2軟件工程中的模型在軟件工程中,可根據(jù)具體的建模要求和抽象的內(nèi)容把模型分類(lèi)如下:開(kāi)發(fā)過(guò)程模型(規(guī)約性):瀑布式模型、增量模型、螺旋式模型等。信息流模型(描述性):DFD、SADT等。設(shè)計(jì)模型:類(lèi)圖、功能層次圖等。交互作用模型:實(shí)例圖、交互作用圖、時(shí)序圖等。狀態(tài)遷移模型:狀態(tài)圖、Petri網(wǎng)等。用于構(gòu)造細(xì)節(jié)的原理模型:設(shè)計(jì)模式、實(shí)體關(guān)聯(lián)圖等。過(guò)程成熟度模型:CMM,SPICE(模型集合)。其他模型:可靠性模型、成本估算模型等。5-3結(jié)構(gòu)化的需求建模方法結(jié)構(gòu)化分析(SA)方法SA方法的基本特點(diǎn)是由美國(guó)Yourdon公司和密歇根大學(xué)在開(kāi)發(fā)ISDOS工具系統(tǒng)時(shí)提出的,自20世紀(jì)70年代中期以來(lái),一直是比較流行和普及的傳統(tǒng)需求分析技術(shù)之一。主要適用于數(shù)據(jù)處理,特別是大型管理信息系統(tǒng)的需求分析,主要用于分析系統(tǒng)的功能,是一種直接根據(jù)數(shù)據(jù)流劃分功能層次的分析方法。表達(dá)問(wèn)題時(shí)盡可能使用圖形符號(hào)的方式,即使非計(jì)算機(jī)專(zhuān)業(yè)人員也易于理解。設(shè)計(jì)數(shù)據(jù)流圖時(shí)只考慮系統(tǒng)必須完成的基本功能,不需要考慮如何具體地實(shí)現(xiàn)這些功能。5-3結(jié)構(gòu)化的需求建模方法SA方法的完善自20世紀(jì)90年代初起,人們對(duì)SA方法進(jìn)行了擴(kuò)充。通過(guò)將方法用于分析實(shí)時(shí)控制系統(tǒng)的需求,在數(shù)據(jù)流圖中加入了控制成分。除了數(shù)據(jù)需求建模方法與技術(shù)流圖外,還有控制流圖(ControlFlowDiagram,CFD),使得SA方法既能表示數(shù)據(jù)轉(zhuǎn)換,又能表示控制狀態(tài)的變化。5-3-1SA方法的基本思想按照由抽象到具體、逐層分解的方法,確定軟件系統(tǒng)內(nèi)部的數(shù)據(jù)流、變換(或加工)的關(guān)系,并用數(shù)據(jù)流圖給予表示。5-3結(jié)構(gòu)化的需求建模方法復(fù)雜系統(tǒng)的分解對(duì)于復(fù)雜的軟件系統(tǒng),可將該系統(tǒng)分解成若干子系統(tǒng)直到子系統(tǒng)足夠簡(jiǎn)單和易于理解為止,如下圖所示:5-3-2SA方法的描述手段SA方法的描述手段由三個(gè)部分組成:一套分層的數(shù)據(jù)流圖:主要說(shuō)明系統(tǒng)由哪些部分組成,以及各部分之間的聯(lián)系。一本詞典:為數(shù)據(jù)流圖中出現(xiàn)的每個(gè)元素提供詳細(xì)的說(shuō)明。其他補(bǔ)充材料:具體的補(bǔ)充和修改文檔的說(shuō)明。5-3結(jié)構(gòu)化的需求建模方法1.數(shù)據(jù)流圖(DFD:DataFlowDiagram)描述系統(tǒng)內(nèi)部處理流程、用于表達(dá)軟件系統(tǒng)需求模型的一種圖形工具,亦即是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具。右圖表示了一個(gè)DFD的簡(jiǎn)單模型。數(shù)據(jù)流x從源點(diǎn)S流出,被加工P1,變換為數(shù)據(jù)流y,P1,執(zhí)行時(shí)要訪(fǎng)問(wèn)文件F。然后數(shù)據(jù)流y被加工P2,變換為數(shù)據(jù)流z,并流向終點(diǎn)。5-3結(jié)構(gòu)化的需求建模方法1.數(shù)據(jù)流圖(DFD:DataFlowDiagram)(1)數(shù)據(jù)流數(shù)據(jù)流是由一組數(shù)據(jù)項(xiàng)組成的數(shù)據(jù),通常用帶用帶標(biāo)識(shí)的有向孤給予表示。數(shù)據(jù)流可以從加工流向加工,或從源點(diǎn)流向加工,或從加工流向終點(diǎn),或從加工流向文件,或從文件流向從加工。在數(shù)據(jù)流的命名中,不能使用缺乏具體含義的,詞如“數(shù)據(jù)”、“信息”等當(dāng)作為數(shù)據(jù)流名。不能把控制流作為數(shù)據(jù)流。例如,下圖描述了某個(gè)統(tǒng)計(jì)考生成績(jī)的軟件系統(tǒng)的DFD,其中“取考生成績(jī)”不是數(shù)據(jù)流而是控制流,故應(yīng)把“取考生成績(jī)”改為“考生成績(jī)”。5-3結(jié)構(gòu)化的需求建模方法1.數(shù)據(jù)流圖(DFD:DataFlowDiagram)(2)加工(變換)對(duì)數(shù)據(jù)進(jìn)行的操作或變換就稱(chēng)為加工。各加工與數(shù)據(jù)流需求建模方法與技術(shù)或文件相連接。加工名應(yīng)反映該加工的含義,可如下命名加工名:最高層的加工可以是軟件系統(tǒng)的名字,如某管理信息等。加工的名字最好由一個(gè)謂語(yǔ)動(dòng)詞加上一個(gè)賓語(yǔ)組成,如“檢查合法性”、“分類(lèi)成績(jī)”等。不能使用空洞或含糊的動(dòng)詞作為加工名,如“計(jì)算”、“分類(lèi)”等。當(dāng)遇到未合適命名的加工時(shí),可以考慮將加工分解,如“檢查并分類(lèi)考生成績(jī)”等。(3)文件文件是存放數(shù)據(jù)的邏輯單位,且通常用圖形符號(hào)“”,“”和“”分別表示加工要寫(xiě)文件,讀文件和讀寫(xiě)文件。另外,在這個(gè)圖形符號(hào)中還要給出文件名。5-3結(jié)構(gòu)化的需求建模方法1.數(shù)據(jù)流圖(DFD:DataFlowDiagram)(4)源點(diǎn)和終點(diǎn)
用于表示數(shù)據(jù)的來(lái)源和最終去向,且通常用圖形方框給予表示。主要代表軟件系統(tǒng)外的實(shí)體,如人或其他軟件系統(tǒng)等,以說(shuō)明數(shù)據(jù)的來(lái)龍去脈,使DFD更加清晰。例如:如右圖所示的4.1節(jié)中培訓(xùn)中心管理信息系統(tǒng)的關(guān)聯(lián)圖分解。5-3結(jié)構(gòu)化的需求建模方法2.分層的DFD對(duì)于大型而又復(fù)雜的軟件系統(tǒng),如果用一張DFD說(shuō)出所有的數(shù)據(jù)流和加工,整個(gè)圖就會(huì)變得相當(dāng)復(fù)雜和難以理解,為了控制復(fù)雜性,通??刹捎梅謱拥姆椒?。分層的方法有目的地逐步增加細(xì)節(jié),一套分層的數(shù)據(jù)流圖由頂層、底層和中間層組成:頂層(0層圖):用于注明系統(tǒng)的邊界,即系統(tǒng)的輸人/輸出。中間層:描述加工的分解,其組成部分可進(jìn)一步分解。底層:由一些不能再分解的加工組成,這些加工足夠簡(jiǎn)單,亦稱(chēng)為基本加工。畫(huà)出完整的分層DFD尚需注意如下幾個(gè)問(wèn)題:(1)應(yīng)區(qū)別于流程圖DFD注重于數(shù)據(jù)在系統(tǒng)中的流動(dòng),在加工間的多股數(shù)據(jù)流之間不需考慮前后次序問(wèn)題,加工只描述“做什么”,不考慮“怎么做”和執(zhí)行順序的問(wèn)題。流程圖則需考慮對(duì)數(shù)據(jù)處理的次序和具體細(xì)節(jié)。5-3結(jié)構(gòu)化的需求建模方法2.分層的DFD(2)DFD的完整性問(wèn)題在畫(huà)DFD時(shí),可能會(huì)出現(xiàn)加工產(chǎn)生的輸出流并沒(méi)有輸出到其他任何加工或外部實(shí)體(如圖5-5a所示),或者某些加工有輸入但不產(chǎn)生輸出(如圖5-5b所示)等情況。對(duì)于前者可能是遺漏加工或數(shù)據(jù)流多余,對(duì)于后者可能加工是多余的,或者遺漏了輸出流等。5-3結(jié)構(gòu)化的需求建模方法2.分層的DFD(3)DFD的一致性問(wèn)題亦稱(chēng)父圖與子圖的平衡問(wèn)題,是指父圖中某加工的輸入/輸出與分解該加工的子圖的輸入/輸出必須完全一致,即輸入/輸出應(yīng)該相同。圖5-6a表示父圖與子圖平衡的情況,而圖5-6b表示父圖與子圖不平衡的情況。層次的分解通常是對(duì)加工進(jìn)行分解,但在有必要的情況下也可對(duì)數(shù)據(jù)流進(jìn)行分解。5-3結(jié)構(gòu)化的需求建模方法2.分層的DFD(4)在分層DFD中文件的表示通常,文件可以隸屬于分層DFD中的某一層或某幾層,即在抽象層中未用到的文件可以不表示出來(lái),在子圖中用到的文件則表示在該子圖中。在抽象層中表示出的文件,則應(yīng)該在相應(yīng)的某(些)子圖中表示,當(dāng)文件共享于某些加工之間時(shí),則該文件必須表示出來(lái)。5-3結(jié)構(gòu)化的需求建模方法2.分層的DFD(5)分解層次的深度逐層分解的目的是把復(fù)雜的加工分解成比較簡(jiǎn)單和易于理解的基本加工。分解的層次應(yīng)根據(jù)軟件系統(tǒng)的復(fù)雜程度、人的能力等因素來(lái)決定,但通過(guò)大量的實(shí)踐得到了一些經(jīng)驗(yàn)性的準(zhǔn)則,例如:分解最好不超過(guò)7或8層,盡量減少分解層次。分解應(yīng)根據(jù)問(wèn)題的邏輯特性進(jìn)行,不能硬性分解。每個(gè)加工分解為子加工后,子圖中的子加工數(shù)不要太多,通常為7~10個(gè)。上層可分解快些,下層應(yīng)該慢些,因?yàn)樯蠈颖容^抽象,易于理解。分解要均勻,即避免在一張DFD中,有些已是基本加工,另外一些還要分解為多層。分解的程度應(yīng)滿(mǎn)足兩個(gè)條件:一個(gè)是加工用幾句或十幾句話(huà)就可清楚地描述其含義,另一個(gè)是一個(gè)加工基本上只有一個(gè)輸入流和一個(gè)輸出流。5-3結(jié)構(gòu)化的需求建模方法3.畫(huà)分層的DFD的步驟(1)確定軟件系統(tǒng)的輸入/輸出數(shù)據(jù)流、源點(diǎn)和終點(diǎn)。這一步實(shí)際上決定系統(tǒng)的范圍。先確定源點(diǎn)和終點(diǎn),以及輸入/輸出數(shù)據(jù)流,然后再考慮系統(tǒng)的處理或加工可以使系統(tǒng)的范圍稍大些,或參照有關(guān)的關(guān)聯(lián)圖,使得與軟件系統(tǒng)相關(guān)的內(nèi)容盡可能被包含進(jìn)來(lái)。(2)將基本系統(tǒng)模型加上源點(diǎn)和終點(diǎn),構(gòu)成頂層DFD?;鞠到y(tǒng)模型是指把整個(gè)軟件系統(tǒng)視為一個(gè)數(shù)據(jù)變換,如圖5-7所示,該模型接受各種輸入,通過(guò)內(nèi)部變換產(chǎn)生各種輸出。頂層DFD也就是在前面所提到的系統(tǒng)關(guān)聯(lián)圖。5-3結(jié)構(gòu)化的需求建模方法3.畫(huà)分層的DFD的步驟(3)畫(huà)出各層的DFD根據(jù)DFD的分解情況逐層畫(huà)出DFD,畫(huà)每張DFD時(shí)可以遵循以下準(zhǔn)則:將所有軟件的輸入/輸出數(shù)據(jù)流用一連串加工連接起來(lái)。應(yīng)集中精力找出數(shù)據(jù)流。在找到數(shù)據(jù)流后,標(biāo)識(shí)該數(shù)據(jù)流,然后分析該數(shù)據(jù)流的組成成分及來(lái)去方向,并將其與加工連接。在加工被標(biāo)識(shí)后,再繼續(xù)尋找其他的數(shù)據(jù)流。當(dāng)加工需要用到共享和暫存數(shù)據(jù)時(shí),設(shè)置文件及其標(biāo)識(shí)。分析加工的內(nèi)部,如果加工還比較抽象或其內(nèi)部還有數(shù)據(jù)流,則需將該加工進(jìn)一步分解,直至到達(dá)底層圖。為所有的數(shù)據(jù)流命名,命名的要求前面已介紹過(guò)。為所有加工命名編號(hào)。編號(hào)的方法如下:對(duì)于子圖的圖號(hào),通常是父圖中相應(yīng)被分解加工的編號(hào),加工編號(hào)=圖號(hào)+小數(shù)點(diǎn)+局部順序號(hào)。由于頂層DFD(0層圖)只有一張,只有一個(gè)加工,該加工不用編號(hào),加工編號(hào)應(yīng)從第一層開(kāi)始。5-3結(jié)構(gòu)化的需求建模方法3.畫(huà)分層的DFD的步驟(3)畫(huà)出各層的DFD畫(huà)DFD時(shí)還應(yīng)注意如下情況:畫(huà)圖時(shí)只考慮如何描述實(shí)際情況,不要急于考慮系統(tǒng)應(yīng)如何啟動(dòng)、如何工作、如何結(jié)束等與時(shí)間序列相關(guān)的問(wèn)題。畫(huà)圖時(shí)可暫不考慮一些例外情況,如出錯(cuò)處理等。畫(huà)圖的過(guò)程是一個(gè)重復(fù)的過(guò)程,一次性成功的可能性較小,需要不斷地修改和完善。為便于理解,我們通過(guò)一個(gè)實(shí)例來(lái)說(shuō)明畫(huà)DFD的方法。5-3結(jié)構(gòu)化的需求建模方法例:分布式患者監(jiān)護(hù)系統(tǒng)某醫(yī)院擬開(kāi)發(fā)一個(gè)分布式患者監(jiān)護(hù)系統(tǒng)(PMS:PatientsMonitoringSystem)。PMS將用于監(jiān)視病房中每個(gè)患者的重要生理信號(hào)(如體溫、血壓、脈博信號(hào)等),并能定時(shí)更新和營(yíng)理患者的病歷。此外,當(dāng)患者的生理信號(hào)超過(guò)醫(yī)生規(guī)定的安全范圍時(shí),系統(tǒng)能立即通知護(hù)理人員,并且護(hù)理人員在需要時(shí)可隨時(shí)通過(guò)系統(tǒng)產(chǎn)生某患者有關(guān)報(bào)告。PMS的主要功能為:通過(guò)一個(gè)病床監(jiān)視器實(shí)現(xiàn)本地監(jiān)測(cè),以獲得患者的生理信號(hào)。在護(hù)士辦公室實(shí)現(xiàn)中央監(jiān)測(cè)更新和管理患者病歷產(chǎn)生患者情況的報(bào)告以及報(bào)警信息5-3結(jié)構(gòu)化的需求建模方法例:分布式患者監(jiān)護(hù)系統(tǒng)根據(jù)前述畫(huà)DFD的方法,可得到PMS的DFD,如圖5-8所示。圖5-8a是根據(jù)步驟(1)和步驟2()得到的頂層圖。圖5-8b和圖5-8c根據(jù)步驟(3)畫(huà)出。圖5-8c是圖5-8b中的“中央監(jiān)測(cè)”加工分解后得到的子圖。5-3結(jié)構(gòu)化的需求建模方法4.數(shù)據(jù)詞典用于描述數(shù)據(jù)的具體含義和加工的說(shuō)明,由數(shù)據(jù)詞典和DFD就可構(gòu)成軟件系統(tǒng)的邏輯模型(或需求模型)。由DFD中所有元素的“嚴(yán)格定義”組成,其作用就是為DFD中出現(xiàn)的每個(gè)元素提供詳細(xì)的說(shuō)明,即DFD中出現(xiàn)的每個(gè)數(shù)據(jù)流名、文件名和加工名都在數(shù)據(jù)詞典中有一個(gè)條目以定義相應(yīng)的含義。當(dāng)需要查看DFD中某個(gè)元素的含義時(shí),可借助于數(shù)據(jù)詞典。數(shù)據(jù)詞典中的條目類(lèi)型如下:(1)數(shù)據(jù)流條目:用于定義數(shù)據(jù)流在數(shù)據(jù)流條目中主要說(shuō)明由哪些數(shù)據(jù)項(xiàng)組成數(shù)據(jù)流,且數(shù)據(jù)流的定義也采用簡(jiǎn)單的形式符號(hào)方式。
如:訂票單=顧客信息+訂票日期+出發(fā)日期+航班號(hào)+目的地+……對(duì)于復(fù)雜的數(shù)據(jù)流,可采用向頂向下逐步細(xì)化的方式定義數(shù)據(jù)項(xiàng)。
如:顧客信息=姓名+性別+身份證號(hào)+聯(lián)系電話(huà)當(dāng)數(shù)據(jù)項(xiàng)由多個(gè)更小的數(shù)據(jù)元素組成時(shí),可利用集合符號(hào)“{}”給予說(shuō)明。如:選修課程=課程表+教師+教材課程表={課程名+星期幾+上課時(shí)間+教室}當(dāng)某些數(shù)據(jù)項(xiàng)是幾個(gè)不同的數(shù)據(jù)流的公用數(shù)據(jù)項(xiàng)時(shí),可將它們列為專(zhuān)門(mén)的數(shù)據(jù)項(xiàng)條目。如:教室=101|102|……航班號(hào)=Mu712|Mu814|……5-3結(jié)構(gòu)化的需求建模方法4.數(shù)據(jù)詞典(1)數(shù)據(jù)流條目:用于定義數(shù)據(jù)流當(dāng)所有出現(xiàn)在DFD中的數(shù)據(jù)流都給予定義后,最后的工作就是對(duì)出現(xiàn)在數(shù)據(jù)流中的數(shù)據(jù)項(xiàng)進(jìn)行匯總,然后以表格的形式匯錄每一數(shù)據(jù)項(xiàng)。(2)文件條目文件條目除說(shuō)明組成文件的所有數(shù)據(jù)項(xiàng)(與數(shù)據(jù)流的說(shuō)明相同)外,還可說(shuō)明文件的組成方式。如:
航班表文件={航班號(hào)+出發(fā)地+目的地+時(shí)間}
組成方式=按航班號(hào)大小排列5-3結(jié)構(gòu)化的需求建模方法4.數(shù)據(jù)詞典(3)加工條目:用于說(shuō)明加工加工條目主要描述加工的處理邏輯或“做什么”。加工條目并不描述具體的處理過(guò)程,但可以按處理的順序描述加工應(yīng)完成的一些功能,而且描述加工的手段通常使用自然語(yǔ)言,或者結(jié)構(gòu)化的人工語(yǔ)言,或者使用判定表或判定樹(shù)的形式。如:4.1節(jié)中某培訓(xùn)中心管理信息系統(tǒng)中的“處理報(bào)名”加工描述如下:根據(jù)報(bào)名要求查詢(xún)收費(fèi)標(biāo)準(zhǔn)文件,確定相應(yīng)費(fèi)用。學(xué)生注冊(cè)根據(jù)選修課程登錄課程統(tǒng)計(jì)文件產(chǎn)生注冊(cè)單等最后,由所有的數(shù)據(jù)條目、文件條目和加工條目就構(gòu)成一本數(shù)據(jù)詞典。5.其他補(bǔ)充材料這一部分的工作主要是定義各種輸入/輸出表格的形式,記錄與修改文檔相關(guān)的信息。如:記錄什么人什么時(shí)間修改什么內(nèi)容等。5-3結(jié)構(gòu)化的需求建模方法5.其他補(bǔ)充材料(3)加工條目:用于說(shuō)明加工加工條目主要描述加工的處理邏輯或“做什么”。加工條目并不描述具體的處理過(guò)程,但可以按處理的順序描述加工應(yīng)完成的一些功能,而且描述加工的手段通常使用自然語(yǔ)言,或者結(jié)構(gòu)化的人工語(yǔ)言,或者使用判定表或判定樹(shù)的形式。如:4.1節(jié)中某培訓(xùn)中心管理信息系統(tǒng)中的“處理報(bào)名”加工描述如下:根據(jù)報(bào)名要求查詢(xún)收費(fèi)標(biāo)準(zhǔn)文件,確定相應(yīng)費(fèi)用。學(xué)生注冊(cè)根據(jù)選修課程登錄課程統(tǒng)計(jì)文件產(chǎn)生注冊(cè)單等最后,由所有的數(shù)據(jù)條目、文件條目和加工條目就構(gòu)成一本數(shù)據(jù)詞典。5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))某學(xué)校擬開(kāi)發(fā)一個(gè)運(yùn)動(dòng)會(huì)管理系統(tǒng)。有關(guān)運(yùn)動(dòng)會(huì)的業(yè)務(wù)流程如下:確定運(yùn)動(dòng)會(huì)的舉辦時(shí)間和地點(diǎn),設(shè)置哪些項(xiàng)目,報(bào)名時(shí)間等確定一些限制規(guī)定,如每人最多可參加幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目每隊(duì)最多可由多少人參加,取前幾名,打破單項(xiàng)比賽記錄后的處理等。由各參加隊(duì)提供報(bào)名單后,需給每個(gè)運(yùn)動(dòng)員編號(hào),并統(tǒng)計(jì)每個(gè)項(xiàng)目的參加人數(shù)及名單,最后根據(jù)每個(gè)項(xiàng)目的參加人數(shù)等具體情況排出比賽日程。在運(yùn)動(dòng)會(huì)期間不斷接受各項(xiàng)目的比賽成績(jī),及時(shí)公布單項(xiàng)名次,累計(jì)團(tuán)體總分。比賽結(jié)束后,公布最終的團(tuán)體名次。根據(jù)上述的業(yè)務(wù)流程,用SA方法來(lái)建立該運(yùn)動(dòng)會(huì)管理系統(tǒng)的需求模型。由于運(yùn)動(dòng)會(huì)有大量的數(shù)據(jù)需及時(shí)處理,打算用計(jì)算機(jī)來(lái)完成原來(lái)用手工進(jìn)行的工作,則需要分析運(yùn)動(dòng)會(huì)的業(yè)務(wù)流程,并獲得相應(yīng)的功能需求,明確計(jì)算機(jī)的系統(tǒng)需完成什么功能。為避免過(guò)于復(fù)雜,在此例中省去了SA方法中某些具體步驟,直接建立該系統(tǒng)最終的需求模型。5-3結(jié)構(gòu)化的需求建模方法5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))按畫(huà)DFD的步驟建立運(yùn)動(dòng)會(huì)管理系統(tǒng)的需求模型:(1)建立系統(tǒng)的DFD圖5a表示第0層,主要描述系統(tǒng)的外部接口,即運(yùn)動(dòng)會(huì)的工作人員收到各隊(duì)送來(lái)的報(bào)名單后,錄入到計(jì)算機(jī)中。然后通過(guò)系統(tǒng)將運(yùn)動(dòng)員號(hào)碼單、各項(xiàng)成績(jī)等輸出給相關(guān)人員。系統(tǒng)將報(bào)名單提供給裁判長(zhǎng),由裁判長(zhǎng)將確定的比賽項(xiàng)目、比賽成績(jī)等存入計(jì)算機(jī)5-3結(jié)構(gòu)化的需求建模方法5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))(1)建立系統(tǒng)的DFD圖b是將系統(tǒng)實(shí)際分為兩個(gè)子系統(tǒng)(或加工):登記報(bào)名單和統(tǒng)計(jì)成績(jī),以描述運(yùn)動(dòng)會(huì)前的準(zhǔn)備工作和運(yùn)動(dòng)會(huì)開(kāi)始后系統(tǒng)應(yīng)完成的功能。5-3結(jié)構(gòu)化的需求建模方法5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))(1)建立系統(tǒng)的DFD圖c是將“登記報(bào)名單”和“統(tǒng)計(jì)成績(jī)”這兩個(gè)加工進(jìn)行分解。5-3結(jié)構(gòu)化的需求建模方法5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))(2)數(shù)據(jù)詞典說(shuō)明前述的分層DFD只是描述系統(tǒng)的“分解”,即系統(tǒng)由哪些部分組成,以及各部分間的關(guān)系,并沒(méi)有說(shuō)明這個(gè)系統(tǒng)中各加工和數(shù)據(jù)流的具體含義,如報(bào)名單、單項(xiàng)名次等。這些內(nèi)容應(yīng)在數(shù)據(jù)詞典中說(shuō)明。下面給出部分?jǐn)?shù)據(jù)詞典的內(nèi)容,僅供參考。5-3結(jié)構(gòu)化的需求建模方法5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))(2)數(shù)據(jù)詞典說(shuō)明5-3結(jié)構(gòu)化的需求建模方法5-3-3示例說(shuō)明(運(yùn)動(dòng)會(huì)管理系統(tǒng))(2)數(shù)據(jù)詞典說(shuō)明5-3結(jié)構(gòu)化的需求建模方法5-3-4SA方法的分析步驟軟件系統(tǒng)主要是用計(jì)算機(jī)系統(tǒng)取代已存在的人工數(shù)據(jù)處理系統(tǒng),提高工作效率和自動(dòng)化程度。為簡(jiǎn)單起見(jiàn),將現(xiàn)實(shí)中已存在的人工系統(tǒng)稱(chēng)為當(dāng)前系統(tǒng),把待開(kāi)發(fā)的計(jì)算機(jī)系統(tǒng)(主要是指軟件系統(tǒng))稱(chēng)為目標(biāo)系統(tǒng)。兩種系統(tǒng)在實(shí)現(xiàn)細(xì)節(jié)方面存在一定的差別,SA方法的分析步驟如下:(1)理解和分析當(dāng)前的現(xiàn)實(shí)環(huán)境,以獲得當(dāng)前系統(tǒng)的具體模型具體模型必須忠實(shí)地反映人工系統(tǒng)的實(shí)際情況,軟件開(kāi)發(fā)人員在獲取的需求信息的基礎(chǔ)上,利用DFD將現(xiàn)實(shí)環(huán)境中的人工系統(tǒng)表達(dá)出來(lái)。圖5-10表示一個(gè)簡(jiǎn)單的具體模型實(shí)例,其中會(huì)計(jì)科、統(tǒng)計(jì)科、發(fā)票的紅色聯(lián)或白色聯(lián)出現(xiàn)在具體模型中。5-3結(jié)構(gòu)化的需求建模方法5-3-4SA方法的分析步驟(2)建立當(dāng)前系統(tǒng)的邏輯模型這一步從系統(tǒng)的具體模型中抽象出當(dāng)前系統(tǒng)的邏輯模型。當(dāng)前系統(tǒng)的邏輯模型應(yīng)反映當(dāng)前系統(tǒng)必須滿(mǎn)足的性質(zhì),即當(dāng)前系統(tǒng)“做什么”。作用:在于除去具體模型中非本質(zhì)因素或一些“具體”因素。如圖5-10中的會(huì)計(jì)科可改為“開(kāi)發(fā)票”,紅色聯(lián)和白色聯(lián)發(fā)票可分別改為發(fā)票的存根聯(lián)和付款聯(lián)等,從而獲得反映當(dāng)前系統(tǒng)的邏輯模型。圖5-11是對(duì)圖5-10修改后得到的當(dāng)前系統(tǒng)的邏輯模型。5-3結(jié)構(gòu)化的需求建模方法5-3-4SA方法的分析步驟(3)建立目標(biāo)系統(tǒng)的邏輯模型這一步主要是分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)在邏輯模型的差別,并建立目標(biāo)系統(tǒng)的邏輯模型,是SA方法的關(guān)鍵步驟。具體步驟如下:確定當(dāng)前系統(tǒng)邏輯模型的“改變范圍”,即決定目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)之間不可實(shí)現(xiàn)的部分。沿著當(dāng)前系統(tǒng)邏輯模型的底層DFD,逐個(gè)檢查每個(gè)基本加工。“改變范圍”視為一個(gè)加工,并確定此加工的輸入/輸出數(shù)據(jù)流,當(dāng)該加工比較抽象時(shí),可將其進(jìn)行逐層分解,然后畫(huà)出各層的DFD。另一種方法:首先建立目標(biāo)系統(tǒng)的頂層DFD(O層)和第一層DFD(由若干子系統(tǒng)組成),然后再參照當(dāng)前系統(tǒng)的邏輯模型,去掉其中所有“具體”因素和細(xì)化各子系統(tǒng),最后可得到目標(biāo)系統(tǒng)的邏輯模型。5-3結(jié)構(gòu)化的需求建模方法5-3-4SA方法的分析步驟(4)進(jìn)一步完善目標(biāo)系統(tǒng)的邏輯模型完善的工作大致為:至今尚未說(shuō)明的處理細(xì)節(jié),如出錯(cuò)處理、系統(tǒng)的啟動(dòng)和結(jié)束方式。某些需要的輸入/輸出格式或用戶(hù)界面的說(shuō)明。增加性能需求和其他一些約束限制等。由前三步可獲得用DFD和數(shù)據(jù)詞典表示的目標(biāo)系統(tǒng)的邏輯模型。5-3結(jié)構(gòu)化的需求建模方法5-4面向?qū)ο蟮男枨蠼7椒ㄐ枨蠼7椒嫦驅(qū)ο蟮男枨蠼7椒ǖ侥壳盀樯弦延性S多不同的版本,其中具有代表性的是OOD、OMT、OOSE、OOAP和UML等。本節(jié)將主要介紹基于OMT的需求建模方法。5-4面向?qū)ο蟮男枨蠼7椒?-4-1面向?qū)ο蠓椒ㄖ械囊恍┗靖拍?1)對(duì)象客觀世界中存在大量實(shí)體。實(shí)體可以是物理的,也可以是概念的,所謂對(duì)象就是以上的客觀實(shí)體的抽象,并且是構(gòu)成概念模型的基本單元。根據(jù)現(xiàn)實(shí)中客觀實(shí)體性質(zhì)的劃分,對(duì)象可以是如下的幾種類(lèi)型:人類(lèi)能感知的物理實(shí)體,如房子、汽車(chē)、飛機(jī)、山川等。人或者組織,如教師、學(xué)生、醫(yī)生、大學(xué)、科研處等?,F(xiàn)實(shí)中發(fā)生的事件,如讀書(shū)、上課、演出、訪(fǎng)間、交通事故等。兩個(gè)以上實(shí)體的相互作用,通常具有交易或接觸的性質(zhì),如購(gòu)買(mǎi)、納稅等。需要說(shuō)明的概念,如政策、法律、規(guī)章制度等。5-4面向?qū)ο蟮男枨蠼7椒?-4-1面向?qū)ο蠓椒ㄖ械囊恍┗靖拍?1)對(duì)象此上述定義外,還有一些其他的定義,例如:從程序設(shè)計(jì)的角度:對(duì)象由具有相同狀態(tài)的一組操作組成。從對(duì)象的具體構(gòu)成方面:對(duì)象是封裝數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體。在面向?qū)ο蟮姆椒?OOM)中,對(duì)象可表示為如圖5-12所示的形式。其中對(duì)象名是對(duì)象的唯一標(biāo)識(shí)。對(duì)象屬性是對(duì)象靜態(tài)數(shù)據(jù)結(jié)構(gòu)的一個(gè)數(shù)據(jù)項(xiàng),可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也可以是復(fù)雜的數(shù)據(jù)類(lèi)型。5-4面向?qū)ο蟮男枨蠼7椒?-4-1面向?qū)ο蠓椒ㄖ械囊恍┗靖拍?2)類(lèi)是指對(duì)具有相同性質(zhì)和操作的一個(gè)或多個(gè)對(duì)象的描述,并且是一組對(duì)象的集合。具有相同的外部接口和內(nèi)部操作,但私有信息可以不同的一些對(duì)象可以組成類(lèi)。類(lèi)與對(duì)象的關(guān)系:類(lèi)給出了該類(lèi)中所有對(duì)象的抽象定義(主要指屬性和內(nèi)部操作兩個(gè)部分),而對(duì)象是符合該定義的一個(gè)實(shí)例。實(shí)例是一個(gè)具體的對(duì)象,是動(dòng)態(tài)的運(yùn)行實(shí)體。(3)性質(zhì)繼承指能夠直接獲得已有的性質(zhì)和特征,而不需要重復(fù)定義它們。主要是由父類(lèi)與子類(lèi)的關(guān)系引起的,其中子類(lèi)除了具有自己的屬性和內(nèi)部操作外,還可繼承父類(lèi)的全部屬性和內(nèi)部操作。5-4面向?qū)ο蟮男枨蠼7椒?-4-1面向?qū)ο蠓椒ㄖ械囊恍┗靖拍?4)消息消息是系統(tǒng)運(yùn)行過(guò)程中對(duì)象之間相互傳遞的、請(qǐng)求服務(wù)的信息。通過(guò)消息實(shí)現(xiàn)對(duì)象之間的通信是OOM的重要原則之一。(5)類(lèi)之間的關(guān)系在OOM中,類(lèi)與類(lèi)之間存在以下4種關(guān)系:類(lèi)之間的泛化關(guān)系:
這種關(guān)系主要是因類(lèi)之間的繼承關(guān)系而形成的類(lèi)層
次結(jié)構(gòu)。在OOM中用“一般-特殊”或“Is-a”關(guān)
系來(lái)定義這種結(jié)構(gòu)。此關(guān)系如圖5-13所示,一般類(lèi)
描述了對(duì)象的一般屬性,特殊類(lèi)描述了對(duì)象的特殊
屬性。5-4面向?qū)ο蟮男枨蠼7椒?-4-1面向?qū)ο蠓椒ㄖ械囊恍┗靖拍?5)類(lèi)之間的關(guān)系2.類(lèi)之間的組成關(guān)系:
這種關(guān)系是因一個(gè)對(duì)象是另一個(gè)對(duì)象的組成部分而形成的結(jié)構(gòu)。如汽車(chē)由車(chē)頭、車(chē)身和
輪子等組成。在OOM中用“整體-部分”或“Part-of”關(guān)系來(lái)定義這種結(jié)構(gòu)。
該關(guān)系如圖5-14所示,其中上方為整體對(duì)象,下方是構(gòu)成該整體對(duì)象的若干部分對(duì)象。
箭頭表示組成關(guān)系的方向,圖中的數(shù)值如(1,m)表示整體對(duì)象要求有多少個(gè)部分對(duì)象與
自己組合,(1,m)表示取值的范圍。當(dāng)取值為1時(shí)可不必指出。
組成關(guān)系最重要的性質(zhì)之一就是滿(mǎn)足傳遞性,如A是B的一部分,B是C的一部分,則A也
是C的一部分。5-4面向?qū)ο蟮男枨蠼7椒?-4-1面向?qū)ο蠓椒ㄖ械囊恍┗靖拍?5)類(lèi)之間的關(guān)系3.對(duì)象屬性間的靜態(tài)關(guān)系:
所謂對(duì)象屬性間的靜態(tài)關(guān)系是指可以通過(guò)對(duì)象中的屬性形成對(duì)象間的一種相互依賴(lài)關(guān)系。
關(guān)聯(lián)與實(shí)例連接的關(guān)系就像類(lèi)與對(duì)象的關(guān)系一樣,實(shí)例連接可看做是關(guān)聯(lián)的實(shí)例。
圖5-15表示了實(shí)例連接。用數(shù)字或數(shù)值區(qū)間表示可以發(fā)生連接的對(duì)象個(gè)數(shù),即表示該類(lèi)有
多少個(gè)對(duì)象與對(duì)方的一個(gè)對(duì)象連接。一個(gè)或多個(gè)的連接也可用“1+”表示。
將上述三種關(guān)系的圖示組合到一起就可形成類(lèi)圖。4.對(duì)象行為間的動(dòng)態(tài)關(guān)系:
這種動(dòng)態(tài)行為關(guān)系主要是由對(duì)象間的消息連接而形成的。
一個(gè)對(duì)象可以通過(guò)消息向其他對(duì)象提出執(zhí)行動(dòng)作的要求,動(dòng)作執(zhí)行完后對(duì)象通過(guò)消息可發(fā)
送執(zhí)行的結(jié)果等。5-4面向?qū)ο蟮男枨蠼7椒?-4-2面向?qū)ο蟮男枨蠓治龈鶕?jù)面向?qū)ο蟮倪^(guò)程模型,面向?qū)ο蟮男枨蠓治鰪母拍钌媳环譃閱?wèn)題分析和應(yīng)用分析兩個(gè)方面,如下圖所示:(1)問(wèn)題分析主要任務(wù):收集并確認(rèn)用戶(hù)的需求信息,對(duì)實(shí)際問(wèn)題進(jìn)行功能分析和過(guò)程分析,從中抽象出問(wèn)題中的基本概念、屬性和操作。然后用泛化、組成和關(guān)聯(lián)結(jié)構(gòu)描述概念實(shí)體間的靜態(tài)關(guān)系。最后,將概念實(shí)體標(biāo)識(shí)為問(wèn)題域中的對(duì)象類(lèi),以及定義對(duì)象類(lèi)之間的靜態(tài)結(jié)構(gòu)關(guān)系和信息連接關(guān)系。最終建立關(guān)于對(duì)象的分析模型。5-4面向?qū)ο蟮男枨蠼7椒?-4-2面向?qū)ο蟮男枨蠓治?2)應(yīng)用分析主要任務(wù):動(dòng)態(tài)描述系統(tǒng)中對(duì)象的合法狀態(tài)序列,并用動(dòng)態(tài)模型表達(dá)對(duì)象的動(dòng)態(tài)行為、對(duì)象之間的消息傳遞和協(xié)同工作的動(dòng)態(tài)信息。由于分析工作的出發(fā)點(diǎn)、過(guò)程和模型的表達(dá)不同,形成了不同的面向?qū)ο蟮姆治龇椒āH纾篛MT方法和OOAD方法。OMT方法:
基本思想:將面向?qū)ο蟮姆治鲞^(guò)程視為一個(gè)模型的構(gòu)建過(guò)程,即整
理獲取的需求信息并逐步分析和建立需求模型的過(guò)程。
在建模中要構(gòu)造3個(gè)模型:描述系統(tǒng)靜態(tài)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型描述系統(tǒng)功能的功能模型5-4面向?qū)ο蟮男枨蠼7椒?-4-2面向?qū)ο蟮男枨蠓治?2)應(yīng)用分析OMT方法:
該方法覆蓋了分析、設(shè)計(jì)和實(shí)現(xiàn)三個(gè)階段,并劃分為問(wèn)題分析、系
統(tǒng)設(shè)計(jì)、對(duì)象設(shè)計(jì)和實(shí)現(xiàn)4個(gè)步驟。問(wèn)題分析:主構(gòu)造可理解的和精確的需求模型。系統(tǒng)設(shè)計(jì):確定系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)策略,劃分系統(tǒng)的功能和任務(wù),并確定數(shù)據(jù)庫(kù)使用、資源及控制的實(shí)現(xiàn)策略。對(duì)象設(shè)計(jì):確定對(duì)象的內(nèi)部細(xì)節(jié),包括定義對(duì)象的界面、數(shù)據(jù)結(jié)構(gòu)、內(nèi)部算法和操作等。實(shí)現(xiàn)階段:用面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言實(shí)現(xiàn)類(lèi)和對(duì)象以及它們的靜態(tài)、動(dòng)態(tài)關(guān)系。5-4面向?qū)ο蟮男枨蠼7椒?-4-2面向?qū)ο蟮男枨蠓治?2)應(yīng)用分析OOAD方法:
基本思想:是使用基本的結(jié)構(gòu)化原則,結(jié)合面向?qū)ο蟮母拍?,?gòu)造一
個(gè)描述系統(tǒng)功能的需求模型。
該需求模型由5個(gè)概念層次構(gòu)成:主題層:主題是類(lèi)和對(duì)象更高層次的劃分。類(lèi)與對(duì)象層:根據(jù)系統(tǒng)的需求信息,標(biāo)識(shí)和確認(rèn)問(wèn)題中的類(lèi)和對(duì)象,并分析系統(tǒng)的責(zé)任。結(jié)構(gòu)層:確定類(lèi)和對(duì)象之間的各種關(guān)系,如組成、關(guān)聯(lián)關(guān)系等。屬性層:標(biāo)識(shí)和確認(rèn)類(lèi)和對(duì)象中的屬性信息和關(guān)聯(lián)信息。服務(wù)層:定義類(lèi)和對(duì)象中應(yīng)提供的服務(wù)。5-4面向?qū)ο蟮男枨蠼7椒?-4-2面向?qū)ο蟮男枨蠓治?2)應(yīng)用分析OOAD方法: OOAD中面向?qū)ο笤O(shè)計(jì)主要由以下4個(gè)步驟完成:設(shè)計(jì)問(wèn)題定義部分:不斷細(xì)化和求精系統(tǒng)的需求模型,以適應(yīng)技術(shù)實(shí)現(xiàn)和需要。設(shè)計(jì)人機(jī)界面:設(shè)計(jì)系統(tǒng)的用戶(hù)界面。設(shè)計(jì)任務(wù)管理部分:確定任務(wù)的分派及系統(tǒng)資源的分配和控制。設(shè)計(jì)數(shù)據(jù)管理部分:確定一些對(duì)象的存儲(chǔ)和訪(fǎng)問(wèn)。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具在OMT方法中,需求模型主要由三種模型組成,這三種模型的側(cè)重點(diǎn)、作用和使用的描述工具有所不同,且區(qū)分如下:對(duì)象模型定義了系統(tǒng)的靜態(tài)結(jié)構(gòu),并為建立動(dòng)態(tài)模型和功能模型提供了概念性框架。由于對(duì)象模型需表示類(lèi)與類(lèi)之間的關(guān)系,主要使用類(lèi)圖來(lái)描述和表達(dá)對(duì)象模型。動(dòng)態(tài)模型表達(dá)了在系統(tǒng)動(dòng)態(tài)交互行為中對(duì)象的狀態(tài)受消息影響而發(fā)生變化的時(shí)序過(guò)程。OMT方法主要用狀態(tài)轉(zhuǎn)換圖表達(dá)動(dòng)態(tài)模型。此外,OMT方法也用序列圖表達(dá)動(dòng)態(tài)模型。功能模型表達(dá)了系統(tǒng)的“功能”信息,它的作用是定義系統(tǒng)應(yīng)該“做什么”,直接反映了用戶(hù)對(duì)目標(biāo)系統(tǒng)的功能需求,能用于描述系統(tǒng)從輸入到輸出的處理流程?;诠δ苣P偷淖饔?,數(shù)據(jù)流圖顯然適合于表達(dá)功能模型。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具狀態(tài)轉(zhuǎn)換圖通過(guò)描述系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件來(lái)表示系統(tǒng)的行為。此外,狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作(如處理數(shù)據(jù))。圖5-17表示了一個(gè)簡(jiǎn)單的狀態(tài)圖。從圖5-17可以看出,一個(gè)狀態(tài)圖主要由狀態(tài)、事件和狀態(tài)轉(zhuǎn)換組成:狀態(tài):狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式。事件:事件是在某個(gè)特定時(shí)刻發(fā)生的事情,它能引起系統(tǒng)做動(dòng)作,并使系統(tǒng)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)。狀態(tài)轉(zhuǎn)換:由某事件引起的兩個(gè)狀態(tài)之間的變化稱(chēng)為狀態(tài)轉(zhuǎn)換。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具狀態(tài)轉(zhuǎn)換圖畫(huà)狀態(tài)圖的基本步驟:確定初態(tài)。確定事件(事件可由動(dòng)作或輸入信息等形成),并根據(jù)事件以及某些限制條件確定由當(dāng)前狀態(tài)轉(zhuǎn)到下一個(gè)狀態(tài)以形成一個(gè)狀態(tài)轉(zhuǎn)換。重復(fù)步驟2的過(guò)程,直到最后確定結(jié)束狀態(tài)為止。狀態(tài)圖示例1:一個(gè)人帶著一頭狼、一頭羊以及一棵青菜,處于河的左岸。有一條小船,每次只能攜帶人和其余的三者之一。人和他的伴隨品都希望渡到河的右岸,而每擺渡一次,人僅能帶其中之一。然而,如果人留下狼和羊不論在左岸還是在右岸,狼肯定會(huì)吃掉羊。類(lèi)似地,如果單獨(dú)留下羊和菜,羊也肯定會(huì)吃掉菜。如何才能既渡過(guò)河而羊和菜又不被吃掉呢?5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具狀態(tài)轉(zhuǎn)換圖通過(guò)觀察每次擺渡以后兩岸所處的局勢(shì),便可能使這一問(wèn)題模型化。存在著有關(guān)人(M)、狼(W)、羊(G)以及菜(C)的16種子集。用連字號(hào)“-”連接子集的對(duì)偶表示狀態(tài),例如MG-WC,其中連字號(hào)左邊的符號(hào)表示處于左岸的子集,連字號(hào)右邊的符號(hào)表示處于右岸的子集。16種狀態(tài)中的某些狀態(tài),例如GC-MW是發(fā)生羊吃菜的情況,這是不允許的。由人所進(jìn)行的活動(dòng)作為系統(tǒng)的事件。他可以單獨(dú)過(guò)河(輸入M)、帶著狼過(guò)河(輸人w)、帶著羊過(guò)河(輸入G),或者帶著菜過(guò)河(輸入C)。初始狀態(tài)是MWGC-丕,而終止?fàn)顟B(tài)是幣-MWGC。有關(guān)狀態(tài)的轉(zhuǎn)移如圖5-18所示。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具狀態(tài)轉(zhuǎn)換圖狀態(tài)圖既可以表示系統(tǒng)循環(huán)運(yùn)行過(guò)程,也可以表示系統(tǒng)單程生命期。當(dāng)描述單程生命期時(shí),需要標(biāo)明初始狀態(tài)(系統(tǒng)啟動(dòng)時(shí)進(jìn)人初始狀態(tài))和結(jié)束狀態(tài)(系統(tǒng)運(yùn)行結(jié)束時(shí)到達(dá)結(jié)束狀態(tài))。為了具體說(shuō)明如何用狀態(tài)圖描述系統(tǒng)的動(dòng)態(tài)行為,現(xiàn)通過(guò)人們熟悉的電話(huà)系統(tǒng)建立關(guān)于電話(huà)系統(tǒng)的狀態(tài)圖。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具狀態(tài)轉(zhuǎn)換圖狀態(tài)圖示例2:圖5-19表示電話(huà)系統(tǒng)的狀態(tài)圖,其中閑置狀態(tài)既可作為系統(tǒng)的初態(tài)又可作為系統(tǒng)的結(jié)束狀態(tài)。圖5-19表明,沒(méi)有人打電話(huà)時(shí),電話(huà)處于閑置狀態(tài)。有人拿起聽(tīng)筒則進(jìn)入撥號(hào)音狀態(tài)。到達(dá)這個(gè)狀態(tài)后,電話(huà)的行為是響起撥號(hào)音并計(jì)時(shí)。這時(shí),如果拿起聽(tīng)筒的人改變主意不想打了,他把聽(tīng)筒放下(掛斷),電話(huà)重又回到閑置狀態(tài)。如果拿起聽(tīng)筒很長(zhǎng)時(shí)間不撥號(hào)(超時(shí)),則進(jìn)入超時(shí)狀態(tài)……5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具2.擴(kuò)充的狀態(tài)轉(zhuǎn)換圖對(duì)于大型而復(fù)雜的實(shí)時(shí)系統(tǒng)等,由于這些系統(tǒng)的狀態(tài)很多,又存在若干可并行處理的過(guò)程,使得原來(lái)的狀態(tài)圖不可能描述并行處理過(guò)程的情況,而且還會(huì)面臨“狀態(tài)爆炸”的問(wèn)題。因此,有必要對(duì)原來(lái)的狀態(tài)圖進(jìn)行擴(kuò)充。此處將簡(jiǎn)單介紹由D.Harel提出的擴(kuò)充的狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱(chēng)擴(kuò)充的狀態(tài)圖)。圖5-20所示為擴(kuò)充的狀態(tài)圖的一個(gè)簡(jiǎn)例。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具2.擴(kuò)充的狀態(tài)轉(zhuǎn)換圖擴(kuò)充的狀態(tài)圖的特點(diǎn)可綜合如下:擴(kuò)充后的狀態(tài)圖仍繼續(xù)沿用原來(lái)狀態(tài)圖符號(hào)。引入超狀態(tài)(也稱(chēng)抽象狀態(tài))的概念,而超狀態(tài)又可表示為由多個(gè)狀態(tài)組成的狀態(tài)圖(或稱(chēng)子狀態(tài)圖)?;诔瑺顟B(tài)概念,狀態(tài)圖可表示為層次式的,并且每個(gè)超狀態(tài)可表示一個(gè)處理過(guò)程。超狀態(tài)間的關(guān)系可用“與”和“或”關(guān)系給予表示。一個(gè)上層狀態(tài)圖的事件可同時(shí)引起多個(gè)并行狀態(tài)圖(處理過(guò)程)工作。此外,并行的狀態(tài)圖之間可互相通過(guò)事件使對(duì)方發(fā)生狀態(tài)轉(zhuǎn)換。多個(gè)并行的狀態(tài)圖首先處于各自的初始狀態(tài),然后各狀態(tài)圖根據(jù)事件各自發(fā)生狀態(tài)轉(zhuǎn)換。這些狀態(tài)圖能通過(guò)某一事件同時(shí)到達(dá)上層狀態(tài)圖中的某一狀態(tài)。每個(gè)子狀態(tài)圖都有各自的初始狀態(tài),而結(jié)束狀態(tài)的有無(wú)可視具體情況設(shè)置。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具2.擴(kuò)充的狀態(tài)轉(zhuǎn)換圖擴(kuò)充的狀態(tài)圖示例:在溫控系統(tǒng)中,系統(tǒng)自動(dòng)控制空調(diào)裝置進(jìn)行制冷或制熱,以調(diào)節(jié)室內(nèi)溫度。系統(tǒng)最初處于Halt狀態(tài)。當(dāng)操作員按下On按鈕后,系統(tǒng)開(kāi)始運(yùn)行。當(dāng)室溫高于或低于規(guī)定的正常范圍(22~26℃)且房門(mén)關(guān)閉時(shí),系統(tǒng)啟動(dòng)空調(diào)裝置制冷或制熱。同時(shí),該系統(tǒng)也將根據(jù)房門(mén)的開(kāi)關(guān)情況(由一個(gè)傳感器指示)控制空調(diào)裝置工作。當(dāng)房門(mén)打開(kāi)且超過(guò)系統(tǒng)規(guī)定的時(shí)間限制時(shí),系統(tǒng)將自動(dòng)產(chǎn)生超時(shí)事件Timeout,以停止空調(diào)裝置工作。當(dāng)操作員按下Stop按鈕后,整個(gè)系統(tǒng)將強(qiáng)行停止運(yùn)行。我們約定:①啟動(dòng)該控制系統(tǒng)運(yùn)行前,房門(mén)關(guān)閉,空調(diào)未運(yùn)行。②空調(diào)裝置制冷或制熱時(shí),房門(mén)被打開(kāi),但在規(guī)定的時(shí)間內(nèi)關(guān)閉,將不影響空調(diào)工作。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具2.擴(kuò)充的狀態(tài)轉(zhuǎn)換圖系統(tǒng)的控制對(duì)象“空調(diào)”和“房門(mén)”是相對(duì)獨(dú)立的,我們用相互并發(fā)的兩個(gè)超狀態(tài)AC和Door來(lái)分別對(duì)應(yīng)這兩個(gè)對(duì)象??照{(diào)和房門(mén)及其相互間的并行關(guān)系是系統(tǒng)描述的主要部分。圖5-21為該系統(tǒng)的狀態(tài)圖,主要由三個(gè)名為T(mén)C、AC和Door的狀態(tài)圖組成,AC和Door間的關(guān)系是并行的。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具序列圖序列圖(sequencediagram)是一種用于表達(dá)對(duì)象與對(duì)象之間可能發(fā)生的所有事件,以及按事件發(fā)生時(shí)間的先后順序列出所有事件的圖形工具。序列圖用一條豎直線(xiàn)表示一個(gè)對(duì)象或類(lèi),用一條水平的帶箭頭的直線(xiàn)表示一個(gè)事件,箭頭方向是從發(fā)送事件的對(duì)象指向接收事件的對(duì)象。事件按產(chǎn)生的時(shí)間從上向下逐一列出。箭頭之間的距離并不代表兩個(gè)事件的時(shí)間差,帶箭頭的直線(xiàn)在垂直方向上的相對(duì)位置(從上到下)表示事件發(fā)生的先后順序。5-4面向?qū)ο蟮男枨蠼7椒?-4-3OMT方法的圖形描述工具序列圖圖5-22表示了一個(gè)簡(jiǎn)單的序列圖,其中E(i=1,2,3,4)表示事件,且事件的序列按E1,E2,E3,E4次序排列。由于序列圖比較簡(jiǎn)單且易于理解,故在后面自動(dòng)取款機(jī)系統(tǒng)的實(shí)例中給出說(shuō)明。讀者也可根據(jù)電話(huà)的工作原理表示電話(huà)系統(tǒng)正常工作的事件序列圖(見(jiàn)圖5-23)。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟利用OMT方法進(jìn)行需求建模就是如何有步驟地構(gòu)造對(duì)象模型,動(dòng)態(tài)模型和功能模型,從而建立起軟件系統(tǒng)的完整的需求模型?;贠MT方法的需求建模步驟如圖5-24所示。由于對(duì)象模型是將問(wèn)題域中的問(wèn)題結(jié)構(gòu)映射為軟件系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu),與應(yīng)用性的細(xì)節(jié)關(guān)聯(lián)不多,當(dāng)需求發(fā)生變化時(shí),除改變問(wèn)題結(jié)構(gòu)的情況外,靜態(tài)數(shù)據(jù)結(jié)構(gòu)的調(diào)整相對(duì)較少,因此,在面向?qū)ο蟮男枨蠓治龇椒ㄖ写蠖嗍紫冉?duì)象模型,然后建立另外兩個(gè)模型。建立對(duì)象模型,然后建立另外兩個(gè)模型。下面將按圖5-24的建模步驟,并結(jié)合銀行自動(dòng)取款機(jī)(ATM)系統(tǒng)實(shí)例詳細(xì)說(shuō)明。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟圖5-25表示自動(dòng)取款機(jī)(ATM)系統(tǒng),根據(jù)該圖,關(guān)于ATM系統(tǒng)的需求陳述如下:某銀行擬開(kāi)發(fā)一個(gè)自動(dòng)取款機(jī)系統(tǒng),它是一個(gè)由自動(dòng)取款機(jī)、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。銀行柜員使用柜員終端處理儲(chǔ)戶(hù)提交的儲(chǔ)蓄事務(wù)。儲(chǔ)戶(hù)可以用現(xiàn)金或支票開(kāi)設(shè)新賬戶(hù)。儲(chǔ)戶(hù)也可以從自己的賬戶(hù)存款或取款。銀行卡是一張?zhí)刂频拇趴?,上面有分行代碼和卡號(hào)。分行代碼唯一標(biāo)識(shí)總行下屬的一個(gè)分行,卡號(hào)確定可以訪(fǎng)問(wèn)哪些賬戶(hù)。當(dāng)用戶(hù)把銀行卡插人ATM之后,ATM就與用戶(hù)交互,獲取有關(guān)這次事務(wù)的信息,并與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型構(gòu)建對(duì)象模型的步驟如圖5-26所示。在分析獲得的所有需求信息的基礎(chǔ)上,首先確定對(duì)象和類(lèi),以及它們之間的靜態(tài)關(guān)聯(lián)。對(duì)于大型復(fù)雜問(wèn)題還要進(jìn)一步劃分出若干個(gè)主題。然后給類(lèi)和關(guān)聯(lián)增添屬性,并利用類(lèi)和對(duì)象的繼承關(guān)系等,對(duì)初步建立的對(duì)象模型進(jìn)行修改和完善。下面按圖5-26所示步驟逐一進(jìn)行說(shuō)明。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(1)分析需求信息
從用戶(hù)處獲得的需求信息的內(nèi)容主要有:?jiǎn)栴}域的范圍、目標(biāo)需求、功能需求、性能需求、
環(huán)境需求及限制條件等。(2)確定類(lèi)與對(duì)象
對(duì)于一個(gè)問(wèn)題域來(lái)說(shuō),類(lèi)和對(duì)象的識(shí)別就是尋找問(wèn)題域中存在的客觀實(shí)體,然后篩選出實(shí)
際需要的實(shí)體,視其為類(lèi)與對(duì)象。(3)確定靜態(tài)關(guān)系
此步驟主要是確定類(lèi)或?qū)ο笾g的靜態(tài)結(jié)構(gòu)關(guān)系。結(jié)構(gòu)關(guān)系可以反映問(wèn)題域中實(shí)體之間的
復(fù)雜關(guān)系,體現(xiàn)類(lèi)或?qū)ο笾g的相互依賴(lài)和相互作用關(guān)系。
在ATM實(shí)例中,經(jīng)過(guò)分析可提取出以下關(guān)系: 1)直接提取動(dòng)詞短語(yǔ)得出的關(guān)系,如:ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成網(wǎng)絡(luò),
總行擁有多臺(tái)ATM等。
5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(3)確定靜態(tài)關(guān)系 2)問(wèn)題中隱含的關(guān)系,如:總行由各個(gè)分行
組成,分行保管賬戶(hù)等。 3)通過(guò)問(wèn)題分析而得出的關(guān)系,如:銀行卡
訪(fǎng)問(wèn)賬戶(hù),分行雇用柜員等。
在上述的這些關(guān)系中有些關(guān)系并非是實(shí)際有
用的關(guān)系。因此,還需對(duì)上述的關(guān)系進(jìn)行篩
選,刪除不必要的和不正確的關(guān)聯(lián)。
通過(guò)篩選,最后得到如圖5-27所示的ATM系
統(tǒng)的初始類(lèi)圖。
5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(4)劃分主題
在面向?qū)ο蠓椒ㄖ?,通常用主題來(lái)劃分大型復(fù)雜軟件系統(tǒng)的范圍,以降低系
統(tǒng)的復(fù)雜程度。劃分主題的工作通常是在確定了類(lèi)與對(duì)象,以及它們之間的
靜態(tài)關(guān)系后進(jìn)行。
方法:主要是按問(wèn)題域而不是按功能分解方法來(lái)確定主題。
此外,在劃分主題時(shí),還應(yīng)考慮不同主題內(nèi)的對(duì)象相互間依賴(lài)和交互最少的
因素。在ATM系統(tǒng)實(shí)例中,可以劃分為“總行”、“分行”和“ATM”3個(gè)
主題(如圖5-27中虛線(xiàn)所示),這3個(gè)主題分別標(biāo)識(shí)為1、2和3。
5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(5)確定屬性此步驟的任務(wù)就是分析和確認(rèn)屬性。屬性是類(lèi)與對(duì)象的性質(zhì)。一個(gè)對(duì)象可擁有多個(gè)屬性,通過(guò)屬性可加深對(duì)類(lèi)與對(duì)象的理解和認(rèn)識(shí)。軟件開(kāi)發(fā)人員還可以通過(guò)回答以下的問(wèn)題來(lái)得到有關(guān)的屬性信息:1)一般情況下,需要哪些信息描述對(duì)象或類(lèi)?2)在當(dāng)前問(wèn)題中,需要哪些信息描述對(duì)象或類(lèi)?3)按照系統(tǒng)的要求,需要哪些信息描述對(duì)象?4)該對(duì)象需要保存哪些信息?5)該對(duì)象需要記錄哪些狀態(tài)信息?6)該對(duì)象提供的服務(wù)中需要哪些信息?7)用什么屬性表示“整體-部分”結(jié)構(gòu)和實(shí)例連接?
5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(5)確定屬性通過(guò)初步分析,確定所需的屬性,以得到ATM系統(tǒng)中各個(gè)對(duì)象類(lèi)的屬性。圖5-28表示了帶屬性標(biāo)識(shí)的ATM系統(tǒng)的對(duì)象模型。由于此處討論的ATM系統(tǒng)是一個(gè)經(jīng)過(guò)簡(jiǎn)化后的教學(xué)例子,而非完整的實(shí)際應(yīng)用系統(tǒng),所以其中的屬性并不完整。
5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(6)簡(jiǎn)化對(duì)象模型簡(jiǎn)化對(duì)象模型的任務(wù)主要是利用繼承關(guān)系,并按照自頂向下和自底向上的方式對(duì)許多的類(lèi)進(jìn)行重組,實(shí)現(xiàn)類(lèi)的共享并達(dá)到簡(jiǎn)化對(duì)象模型的目的。建立繼承關(guān)系的方法:以自底向上的方式抽象出若干個(gè)類(lèi)具有的共同性質(zhì)并組成父類(lèi),以自頂向下的方式把一個(gè)類(lèi)細(xì)化為更具體的類(lèi)。例如,在ATM系統(tǒng)實(shí)例中,“遠(yuǎn)程事務(wù)”和“柜員事務(wù)”是類(lèi)似的,可以抽象出“事務(wù)”這個(gè)父類(lèi)。類(lèi)似地,可從“ATM"和“柜員終端”歸納出“輸入站”這個(gè)父類(lèi)。
5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建對(duì)象模型(6)簡(jiǎn)化對(duì)象模型模型的建立過(guò)程是一個(gè)反復(fù)修改、逐漸完善的過(guò)程。在建立起對(duì)象模型后,有必要對(duì)模型進(jìn)行修改,以使對(duì)象模型更加簡(jiǎn)單和清晰。例如,對(duì)圖5-28所示的對(duì)象模型作如下修改:1)分解“銀行卡”類(lèi)。2)“事務(wù)”類(lèi)由“更新”類(lèi)組成3)把“分行”與“分行計(jì)算機(jī)”合并。圖5-29表示精化圖5-28所示的對(duì)象模型后得到的ATM系統(tǒng)的模型。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟2.構(gòu)建動(dòng)態(tài)模型該定義了與問(wèn)題域中實(shí)體對(duì)應(yīng)的對(duì)象或類(lèi),以及它們之間的靜態(tài)關(guān)系,有助于了解、認(rèn)識(shí)和構(gòu)造類(lèi)與對(duì)象,用于表達(dá)類(lèi)或?qū)ο箝g所發(fā)生的動(dòng)態(tài)時(shí)序關(guān)系。構(gòu)建動(dòng)態(tài)模型的步驟如圖5-30所示。下面將對(duì)此步驟詳細(xì)說(shuō)明。(1)編寫(xiě)場(chǎng)景目的:用自然語(yǔ)言來(lái)描述用戶(hù)與軟件系統(tǒng)之間一個(gè)或多個(gè)交互行為。場(chǎng)景的編寫(xiě)過(guò)程實(shí)質(zhì):一個(gè)分析用戶(hù)對(duì)系統(tǒng)交互行為的需求的過(guò)程。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟2.構(gòu)建動(dòng)態(tài)模型(1)編寫(xiě)場(chǎng)景編寫(xiě)場(chǎng)景時(shí),應(yīng)首先編寫(xiě)正常情況的場(chǎng)景,然后再考慮特殊情況,最后,考慮出錯(cuò)情況。表5-1和表5-2分別表示了ATM系統(tǒng)正常和異常情況的場(chǎng)景。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟2.構(gòu)建動(dòng)態(tài)模型(2)設(shè)計(jì)用戶(hù)界面為了描述用戶(hù)與系統(tǒng)的動(dòng)態(tài)交互行為如何進(jìn)行,有必要設(shè)計(jì)一個(gè)系統(tǒng)的用戶(hù)界面,這將有助于用戶(hù)對(duì)系統(tǒng)的理解和與用戶(hù)的交流。在設(shè)計(jì)用戶(hù)界面時(shí),重要的不是界面細(xì)節(jié),而是在這種界面下的信息交換方式。圖5-31是初步設(shè)想的ATM系統(tǒng)的用戶(hù)界面。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟2.構(gòu)建動(dòng)態(tài)模型(3)建立序列圖構(gòu)造序列圖時(shí),首先應(yīng)認(rèn)真分析每個(gè)場(chǎng)景的內(nèi)容,從中提取所有外部事件信息及異常事件和出錯(cuò)條件的信息。傳遞信息的對(duì)象的動(dòng)作也可作為事件。事件形成對(duì)象與對(duì)象之間的交互行為。確定了每類(lèi)事件的發(fā)送對(duì)象和按受對(duì)象之后,就可以利用序列圖將事件序列以及事件與對(duì)象間的關(guān)系清晰和形象地表示出來(lái)。每個(gè)場(chǎng)景對(duì)應(yīng)一張序列圖。ATM系統(tǒng)正常情況場(chǎng)景(表5-1)的序列圖如圖5-32所示。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟2.構(gòu)建動(dòng)態(tài)模型(4)建立狀態(tài)圖狀態(tài)圖適用于表示動(dòng)態(tài)模型,刻畫(huà)事件與對(duì)象狀態(tài)之間的關(guān)系。通過(guò)狀態(tài)圖可以清楚地看到對(duì)象狀態(tài)是如何受事件的影響而發(fā)生轉(zhuǎn)換的。依據(jù)序列圖構(gòu)造狀態(tài)圖的過(guò)程如下:1)確定序列圖中對(duì)象(豎直線(xiàn)表示的對(duì)象)的初態(tài)。2)分析序列圖。3)正常事件描述之后,還應(yīng)考慮邊界情況下可能發(fā)生的事件。4)根據(jù)一張序列圖畫(huà)出對(duì)象或類(lèi)狀態(tài)圖之后,再把其他與該對(duì)象或類(lèi)相關(guān)的場(chǎng)景(如異常情況場(chǎng)景)的序列圖加人已畫(huà)出的狀態(tài)圖中。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟2.構(gòu)建動(dòng)態(tài)模型(4)建立狀態(tài)圖圖5-33a、b、c分別表示了“ATM”、“總行”和“分行”的狀態(tài)圖。(5)建立狀態(tài)圖主要工作:檢查和優(yōu)化第(4)步中形成的所有狀態(tài)圖,特別是狀態(tài)圖間的銜接問(wèn)題。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟構(gòu)建功能模型該模型主要表達(dá)系統(tǒng)內(nèi)部數(shù)據(jù)流的傳遞和處理的過(guò)程。數(shù)據(jù)流圖適用于描述系統(tǒng)的功能模型。建立功能模型有助于軟件開(kāi)發(fā)人員更深入地理解問(wèn)題域,修改和完善自己的設(shè)計(jì)。圖5-34和圖5-35分別表示了ATM系統(tǒng)的基本系統(tǒng)模型和簡(jiǎn)略的數(shù)據(jù)流圖。5-4面向?qū)ο蟮男枨蠼7椒?-4-4基于OMT方法的需求建模步驟4.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026江蘇南京市盲人學(xué)校新教師招聘2人備考題庫(kù)及答案詳解(新)
- 腮腺惡性腫瘤患者的護(hù)理案例分析
- 2025-2026人教版五年級(jí)語(yǔ)文期末卷
- 腦出血患者的語(yǔ)言康復(fù)訓(xùn)練
- 衛(wèi)生院冷鏈藥品管理制度
- 河務(wù)段衛(wèi)生管理制度
- 衛(wèi)生局人事工作制度
- 幼兒園衛(wèi)生防病工作制度
- 室內(nèi)衛(wèi)生清理制度
- 高一英語(yǔ)作業(yè)反饋與改進(jìn)計(jì)劃
- 六年級(jí)語(yǔ)文下冊(cè)《快樂(lè)讀書(shū)吧》必背知識(shí)點(diǎn)
- 鋼架樓梯安裝合同范例
- 太空電梯能源供應(yīng)-洞察分析
- 人教版英語(yǔ)八年級(jí)全冊(cè)單詞默寫(xiě)模板
- 環(huán)境影響評(píng)估投標(biāo)方案(技術(shù)方案)
- 磚瓦廠(chǎng)脫硝工藝
- GB/T 43731-2024生物樣本庫(kù)中生物樣本處理方法的確認(rèn)和驗(yàn)證通用要求
- 《沉積學(xué)復(fù)習(xí)提綱》課件
- 信訪(fǎng)工作課件
- 110kV旗潘線(xiàn)π接入社旗陌陂110kV輸電線(xiàn)路施工方案(OPGW光纜)解析
評(píng)論
0/150
提交評(píng)論