圖2-8用戶關(guān)聯(lián)圖
圖2-9 三元關(guān)聯(lián)
2.2.2.3 構(gòu)建系統(tǒng)類圖 在完成了初步類圖的構(gòu)建之后,需要建立和標(biāo)記出類之間的關(guān)聯(lián)。具體的表述關(guān)聯(lián)的方法策略是:先從幾個(gè)類開始,找出與這個(gè)類存在關(guān)聯(lián)的其他類,然后再尋找另外一組類與其他類的關(guān)聯(lián),直到窮盡了所有的類為止。 下面先介紹一下類之間常用的幾種關(guān)系以及他們的概念: 關(guān)聯(lián)關(guān)系:關(guān)聯(lián)(Association)表示兩個(gè)類之間存在某種語(yǔ)義上的聯(lián)系。 角色:關(guān)聯(lián)兩頭的類以某種角色參與關(guān)聯(lián)。 關(guān)聯(lián)類:一個(gè)關(guān)聯(lián)可能要記錄一些信息,可以引入一個(gè)關(guān)聯(lián)類來(lái)記錄。 聚集和組成:聚集(Aggregation)是一種特殊形式的關(guān)聯(lián)。聚集表示類之間的關(guān)系是整體與部分的關(guān)系。聚集可以進(jìn)一步劃分成共享聚集(Shared Aggregation)和組成。 繼承關(guān)系:人們將具有共同特性的元素抽象成類別,并通過(guò)增加其內(nèi)涵而進(jìn)一步分類。繼承(Generalization)定義了一般元素和特殊元素之間的分類關(guān)系。在UML中,繼承表示為一頭為空心三角形的連線。如圖2-8中,將User進(jìn)一步分為common user, administrator和business user,使用的就是繼承關(guān)系。 依賴關(guān)系: 有兩個(gè)元素X、Y,如果修改元素X的定義可能會(huì)引起對(duì)另一個(gè)元素Y的定義的修改,則稱元素Y依賴(Dependency)于元素X。 經(jīng)過(guò)以上的分析之后,可以得出一個(gè)藥品管理系統(tǒng)的初步類圖,如圖2-10所示:
圖2-10 藥品管理系統(tǒng)類圖 2.3 系統(tǒng)需求研究 2.3.1 收集系統(tǒng)需求 在對(duì)一個(gè)系統(tǒng)的開發(fā)中,必須集中考慮用戶的需求,這個(gè)步驟需要開發(fā)出系統(tǒng)的功能包圖,每個(gè)包應(yīng)代表系統(tǒng)的一個(gè)功能模塊。 包:將許多類集合成一個(gè)更高層次的單位,形成一個(gè)高內(nèi)聚、低耦合的類的集合。UML中這種分組機(jī)制叫包(Package)。 任何模型元素都運(yùn)用包的機(jī)制。如果沒有任何啟發(fā)性原則來(lái)指導(dǎo)類的分組,分組方法就是任意的。在UML中,最有用的和強(qiáng)調(diào)最多的啟發(fā)性原則就是依賴。包圖主要顯示類的包以及這些包之間的依賴關(guān)系。有時(shí)還顯示包和包之間的繼承關(guān)系和組成關(guān)系。 2.3.2開發(fā)系統(tǒng)功能包圖 現(xiàn)在可以開發(fā)出系統(tǒng)功能包圖如圖2-11。在圖2-11中,“系統(tǒng)”包由“界面”包和“單據(jù)”包和“使用者”包組成。這里稱它們?yōu)?系統(tǒng)"包的內(nèi)容。當(dāng)不需要顯示包的內(nèi)容時(shí),包的名字放入主方框內(nèi),否則包的名字放入左上角的小方框中,而將內(nèi)容放入主方框內(nèi)。包的內(nèi)容可以是類的列表,也可以是另一個(gè)包圖,還可以是一個(gè)類圖。 圖2-11系統(tǒng)功能包圖 3 系統(tǒng)分析與設(shè)計(jì) 3.1 開發(fā)系統(tǒng)用例模型 用例能夠幫助系統(tǒng)開發(fā)者理解系統(tǒng)的預(yù)期行為,因而是一個(gè)強(qiáng)有力的工具,它能夠幫助開發(fā)者從用戶的觀點(diǎn)收集需求。 用例是一個(gè)強(qiáng)有力的工具,當(dāng)使用UML可視化的表達(dá)出這些概念后,用例甚至?xí)兊酶訌?qiáng)大。可視化可以向用戶顯示用例,他們可以提供更多的信息。實(shí)際生活中用戶常常知道的比他們清楚表達(dá)出來(lái)的要多:用例能夠幫助用戶解決這個(gè)問(wèn)題。另外,可視化的表達(dá)形式允許將用例圖和其他種類的圖結(jié)合起來(lái)。 系統(tǒng)分析過(guò)程中的一個(gè)目標(biāo)是產(chǎn)生一組用例。此想法是要對(duì)用例進(jìn)行分類整理,以便于引用。這些用例代表著用戶對(duì)系統(tǒng)的觀點(diǎn)。當(dāng)要對(duì)系統(tǒng)升級(jí)時(shí),用例目錄可以作為進(jìn)一步收集升級(jí)需求的基礎(chǔ)。 3.1.1分析與充實(shí)用例 在這個(gè)階段,開發(fā)者正在從理解領(lǐng)域逐步走向?qū)?shí)際系統(tǒng)的理解。用例是兩者之間的橋梁。 在之前開發(fā)出來(lái)的初步用例圖中,每個(gè)用例是一組場(chǎng)景的集合,每個(gè)場(chǎng)景又由一系列步驟組成。對(duì)于每個(gè)用例中的每個(gè)場(chǎng)景,需要說(shuō)明的內(nèi)容有: 場(chǎng)景的簡(jiǎn)單陳述 關(guān)于場(chǎng)景的假設(shè)條件 場(chǎng)景的前置條件 用例的發(fā)起參與者 場(chǎng)景中與系統(tǒng)相關(guān)的步驟序列 場(chǎng)景完成后的后置條件 用例的收益參與者 當(dāng)然,用例分析的方法也是多種多樣的,現(xiàn)在所使用到的條目在通常情況下能夠完整地說(shuō)明一個(gè)用例。與系統(tǒng)相關(guān)的步驟序列在場(chǎng)景中極其重要。它說(shuō)明了系統(tǒng)的預(yù)期工作方式。也就是說(shuō),系統(tǒng)開發(fā)項(xiàng)目是由“用例驅(qū)動(dòng)”的,用例是構(gòu)造系統(tǒng)的途徑。
3.1.2開發(fā)詳細(xì)用例圖
圖3-1 系統(tǒng)總詳細(xì)用例圖 之后,根據(jù)需求收集階段對(duì)系統(tǒng)的分析,對(duì)應(yīng)系統(tǒng)應(yīng)有的功能,可以確定系統(tǒng)業(yè)務(wù)角色與系統(tǒng)用例之間的關(guān)系。隨后,細(xì)化每一個(gè)用例,如圖3-1所示的系統(tǒng)總用例圖: 3.2 靜態(tài)對(duì)象設(shè)計(jì) 3.2.1 細(xì)化類圖 經(jīng)過(guò)對(duì)第2部分開發(fā)出來(lái)的主要類的細(xì)化,可以得出以下的類圖:
圖3.2細(xì)化后的類圖 3.2.2 開發(fā)系統(tǒng)詳細(xì)類圖 細(xì)化后的系統(tǒng)類圖為:
圖3-3 細(xì)化后的系統(tǒng)類圖 3.3 詳細(xì)對(duì)象設(shè)計(jì) 根據(jù)已經(jīng)開發(fā)出來(lái)的類圖,可以產(chǎn)生一些必要的對(duì)象圖,對(duì)應(yīng)的檢查每個(gè)操作,進(jìn)而充實(shí)對(duì)象圖,并構(gòu)建出對(duì)象間的交互。 3.3.1 分析對(duì)象狀態(tài)變化 分析系統(tǒng)離不開分析對(duì)象的交互,在UML中,有兩種表示交互狀態(tài)的圖:順序圖和協(xié)作圖。對(duì)象圖、對(duì)象和鏈,UML中對(duì)象圖與類圖具有相同的表示形式。對(duì)象圖可以看作是類圖的一個(gè)實(shí)例。對(duì)象是類的實(shí)例;對(duì)象之間的鏈(Link)是類之間的關(guān)聯(lián)的實(shí)例。對(duì)象與類的圖形表示相似,均為劃分成兩個(gè)格子的長(zhǎng) 方形(下面的格子可省略)。上面的格子是對(duì)象名,對(duì)象名下有下劃線;下面的格子記錄屬性值。鏈的圖形表示與關(guān)聯(lián)相似。對(duì)象圖常用于表示復(fù)雜的類圖的一個(gè)實(shí)例。 3.3.1.1 分析對(duì)象——順序圖 順序圖(sequence diagram)由采用通常方式表示的對(duì)象構(gòu)成:對(duì)象用矩形框表示,其中是帶下劃線的對(duì)象名;消息用帶箭頭的實(shí)線表示;時(shí)間用垂直的虛線表示。對(duì)象圖可以反映隨時(shí)間對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系 ,反映對(duì)象之間已發(fā)送消息的先后順序 ,說(shuō)明對(duì)象之間的交互過(guò)程以及在某一具體位置有何事件發(fā)生。本系統(tǒng)的順序圖可以表示為如圖3-4。
圖3-4藥品管理系統(tǒng)順序圖
3.3.1.2 分析與協(xié)作系統(tǒng)的集成——協(xié)作圖 系統(tǒng)分析到現(xiàn)在,還應(yīng)當(dāng)考慮到對(duì)象與對(duì)象之間的動(dòng)態(tài)關(guān)聯(lián),即對(duì)象之間的消息傳遞。協(xié)作圖即是為了表示出對(duì)象之間的動(dòng)態(tài)協(xié)作,顯示對(duì)象之間的關(guān)系。 圖3-5是整個(gè)系統(tǒng)的協(xié)作圖示例:
圖3-5 系統(tǒng)協(xié)作圖
在藥品入庫(kù)階段,主要存在著如圖3-6的交互: 圖3-6 入庫(kù)協(xié)作圖
在藥品出庫(kù)階段,主要存在著如圖3-7的協(xié)作關(guān)系 圖3-7出庫(kù)協(xié)作圖 在藥品調(diào)價(jià)階段,主要存在著如圖3-8的協(xié)作關(guān)系
圖3-8 調(diào)價(jià)協(xié)作圖 3.4 持久對(duì)象設(shè)計(jì) 在前面的工作中,已經(jīng)確定了對(duì)象本身以及對(duì)象之間的關(guān)系,弄清了這些關(guān)系也就完成了對(duì)象設(shè)計(jì),然而,軟件在運(yùn)行過(guò)程中構(gòu)造的對(duì)象實(shí)例都是順勢(shì)或者是暫時(shí)的,軟件一旦停止運(yùn)行,這些對(duì)象也就不復(fù)存在了。因此,要把暫時(shí)性的對(duì)象永久的保存下來(lái),就必須把對(duì)象轉(zhuǎn)換成一定格式的數(shù)據(jù),存放在磁盤或者其他媒介。這種可以永久保留,將來(lái)可以被提取的對(duì)象,被稱為“持久對(duì)象”(persistent object)。或者說(shuō),持久對(duì)象是獨(dú)立于其構(gòu)造過(guò)程的對(duì)象代表(representation)。 此次設(shè)計(jì)中,我用SQL Server2000建立后臺(tái)數(shù)據(jù)庫(kù)。設(shè)計(jì)過(guò)程中為了對(duì)應(yīng)于編碼起見,首先設(shè)計(jì)對(duì)象數(shù)據(jù)庫(kù)的根模型,然后通過(guò)標(biāo)準(zhǔn)方法把設(shè)計(jì)映射到具體的數(shù)據(jù)庫(kù)模型——即將持久對(duì)象映射到表格中。 3.4.1 數(shù)據(jù)庫(kù)根設(shè)計(jì) 在本管理系統(tǒng)中,藥品管理系統(tǒng)(DrugManagement)是一個(gè)數(shù)據(jù)庫(kù)根,它利用“容器”(Container)來(lái)管理User(用戶),Account(賬目),DutDate(過(guò)期時(shí)間)等類。下面將系統(tǒng)(DrugManagement)的詳細(xì)對(duì)象設(shè)計(jì)表現(xiàn)為詳細(xì)對(duì)象設(shè)計(jì)圖,如下頁(yè)圖3-9所示。
圖3-9 詳細(xì)對(duì)象設(shè)計(jì) 3.4.2 持久對(duì)象到表的映射 以上部分確定了對(duì)象本身及對(duì)象之間的關(guān)系,下一步,就要開始用特定的編程語(yǔ)言實(shí)現(xiàn)設(shè)計(jì),同時(shí)在實(shí)現(xiàn)的過(guò)程中,要把對(duì)象存到數(shù)據(jù)庫(kù)中,由于我使用的是SQL Server2000作為后臺(tái)數(shù)據(jù)庫(kù),所以存儲(chǔ)的形式,便是數(shù)據(jù)庫(kù)中的表格,這些表格成為了持久對(duì)象的代表。 如以下的供應(yīng)商到采購(gòu)員的二元關(guān)聯(lián)到表的映射:
圖3-10 供應(yīng)商到采購(gòu)員映射圖 由圖3-10推出下列表格: (1)表1供應(yīng)商表:Merchant 表1 供應(yīng)商表 別 名 名稱 數(shù)據(jù)類型 大小 空值 默認(rèn)值 供應(yīng)商ID MerchantID Numeric 9(12,0) 供應(yīng)商名 Merchantname Varchar 30 √ (2)表2 采購(gòu)員表:Buyer 表2 采購(gòu)員表 別 名 名稱 數(shù)據(jù)類型 大小 空值 默認(rèn)值 采購(gòu)員ID MerchantID Numeric 9(12,0) 采購(gòu)員名 Merchantname Varchar 30 √ (3)表3 入庫(kù)表:Enterdepository 表3 入庫(kù)表 別 名 名稱 數(shù)據(jù)類型 大小 空值 默認(rèn)值 采購(gòu)員ID MerchantID Numeric 9(12,0) 采購(gòu)員名 Merchantname Varchar 30 √ 供應(yīng)商ID MerchantID Numeric 9(12,0) 供應(yīng)商名 Merchantname Varchar 30 √ 藥品產(chǎn)地 Manufacname Varchar 30 √ 藥品名稱 Drugname Varchar 50 藥品數(shù)量 YPSL Nuneric 9(12,4) 藥品效期 YPXQ Datetime 8 發(fā)票號(hào)碼 FPHM Varchar 10 √ 批準(zhǔn)文號(hào) PZWH Varchar 30 √ 同樣,可以得到從三元及多元關(guān)聯(lián)到關(guān)系表格的映射。現(xiàn)在,由Merchant, Manufacturer, User的三元類擴(kuò)充,增加了一個(gè)關(guān)聯(lián)類DrugDetail,即藥品明細(xì),用來(lái)表示藥品入庫(kù)后的存放屬性。如圖3-11。
圖3-11藥品明細(xì)關(guān)聯(lián)類 DrugDetail的屬性有Drugnumber(藥品型號(hào)),Drugname(藥品名稱),Manufacname(藥品產(chǎn)地名稱)。這幾個(gè)類分別映射到四個(gè)表格中。如下圖所示:
(4) 表4 藥品明細(xì)表:DrugDetail 表4 藥品明細(xì)表 別 名 名稱 數(shù)據(jù)類型 大小 空值 默認(rèn)值 藥品型號(hào) Drugnumber Numeric 9(12,0) 藥品名稱 Drugname Varchar 9(12,0) 藥品產(chǎn)地 Manufacturer Varchar 30 √ 進(jìn)貨價(jià)格 JHJG Numeric 9(12,4) 首頁(yè) 上一頁(yè) 1 2 3 4 5 6 下一頁(yè) 尾頁(yè) 3/6/6 相關(guān)論文
首頁(yè) 上一頁(yè) 1 2 3 4 5 6 下一頁(yè) 尾頁(yè) 3/6/6
本站部分文章來(lái)自網(wǎng)絡(luò),如發(fā)現(xiàn)侵犯了您的權(quán)益,請(qǐng)聯(lián)系指出,本站及時(shí)確認(rèn)刪除 E-mail:349991040@qq.com
論文格式網(wǎng)(www.donglienglish.cn--論文格式網(wǎng)拼音首字母組合)提供其他論文畢業(yè)論文格式,論文格式范文,畢業(yè)論文范文