第一篇:面向?qū)ο蠓治雠c設(shè)計(jì)課程總結(jié)
面向?qū)ο蠓治雠c設(shè)計(jì)
課程總結(jié)
0923010208 指導(dǎo)老師:莊育飛
這學(xué)期學(xué)院開設(shè)了面向?qū)ο蠓治雠c設(shè)計(jì)(UML)這門課,通過老師的講解,自己一些相關(guān)書籍的閱讀和實(shí)踐作業(yè)的完成,逐步對課程有了由淺及深的認(rèn)識(shí)。我覺得學(xué)習(xí)這門課還是受益匪淺的。
面向?qū)ο?Object Oriented,OO)是一門以實(shí)踐為主課程,課程中可以分開兩塊OOA(面向?qū)ο笙到y(tǒng)分析)和OOD(面向?qū)ο笙到y(tǒng)設(shè)計(jì))。
OOA(面向?qū)ο笙到y(tǒng)分析)主要內(nèi)容: 研究問題域和用戶需求,運(yùn)用面向?qū)ο蟮挠^點(diǎn)和原則發(fā)現(xiàn)問題域中與系統(tǒng)責(zé)任有關(guān)的對象,以及對象的特征和相互關(guān)系.OOA不涉及針對具體實(shí)現(xiàn)采取的設(shè)計(jì)決策和有關(guān)細(xì)節(jié),獨(dú)立于具體實(shí)現(xiàn)的系統(tǒng)模型。是一個(gè)完整確切反映問題域和用戶需求的系統(tǒng)模型。OOA的優(yōu)勢:復(fù)
用、可擴(kuò)展、可維護(hù)性、彈性。
OOD(面向?qū)ο笙到y(tǒng)設(shè)計(jì)):以O(shè)OA模型為基礎(chǔ),按照實(shí)現(xiàn)的要求進(jìn)行設(shè)計(jì)決策,包括全局性的決策和局部細(xì)節(jié)的設(shè)計(jì),與具體的實(shí)現(xiàn)條件相關(guān)。OOD的步驟:細(xì)化重組類→細(xì)化和實(shí)現(xiàn)類之間的關(guān)系,明確其可見性→增加屬性,指定屬性的類型和可見性→分配職責(zé),定義執(zhí)行每個(gè)職責(zé)的方法→對消息驅(qū)動(dòng)的系統(tǒng),明確消息傳遞的方式→利用設(shè)計(jì)模式進(jìn)行局部設(shè)計(jì)→畫出詳細(xì)的類圖和時(shí)序圖。
面向?qū)ο蟮姆治雠c設(shè)計(jì)方法將致力于解決傳統(tǒng)軟件研發(fā)過程中由于軟件模塊化結(jié)構(gòu)化程度不高帶來的軟件重用性差、軟件可維護(hù)性差、開發(fā)出的軟件不能滿足用戶需要等方面問題。面向?qū)ο蟮母拍畎ǎ簩ο蟆ο蟮臓顟B(tài)和行為、類、類的結(jié)構(gòu)、消息和方法。對象概念將包含對象唯一性、抽象性、繼承性、多態(tài)性的重要特征。面向?qū)ο蟮囊匕撼橄蟆⒎庋b性、共享性三方面。
在設(shè)計(jì)模式的研究過程中,我們組選擇的是迭代器(Iterator)的設(shè)計(jì)模式研究。完成設(shè)計(jì)研究后,我對迭代器的設(shè)計(jì)模式有了更為深刻的理解。迭代器(Iterator)提供一個(gè)方法順序訪問一個(gè)聚合對象的各個(gè)元素,而又不暴露該對象的內(nèi)部表示。并了解到迭代器設(shè)計(jì)模式一般在以下三類場合使用較多。
? 訪問一個(gè)聚合對象的內(nèi)容而無需暴露它的內(nèi)部表示。
? 支持對聚合對象的多種遍歷。因?yàn)楸闅v狀態(tài)是保存在每一個(gè)迭代器對象中的。
? 為遍歷不同的聚合結(jié)構(gòu)提供一個(gè)統(tǒng)一的接口。根據(jù)實(shí)現(xiàn)方式的不同,效果上會(huì)有差別。同時(shí)還簡化了容器的接口。但是在java Collection中為了提高可擴(kuò)展性,容器還是提供了遍歷的接口。
在面向?qū)ο蟮能浖O(shè)計(jì)中,我們經(jīng)常會(huì)遇到一類集合對象,這類集合對象的內(nèi)部結(jié)構(gòu)可能有著各種各樣的實(shí)現(xiàn),但是歸結(jié)起來,無非有兩點(diǎn)是需要我們?nèi)リP(guān)心的:一是集合內(nèi)部的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),二是遍歷集合內(nèi)部的數(shù)據(jù)。面向?qū)ο笤O(shè)計(jì)原則中有一條是類的單一職責(zé)原則,所以我們要盡可能的去分解這些職責(zé),用不同的類去承擔(dān)不同的職責(zé)。Iterator模式就是分離了集合對象的遍歷行為,抽象出一個(gè)迭代器類來負(fù)責(zé),這樣既可以做到不暴露集合的內(nèi)部結(jié)構(gòu),又可讓外部代碼透明的訪問集合內(nèi)部的數(shù)據(jù)。
在Java Collection的應(yīng)用中,提供的具體迭代器角色是定義在容器角色中的內(nèi)部類。這樣便保護(hù)了容器的封裝。但是同時(shí)容器也提供了遍歷算法接口,你可以擴(kuò)展自己的迭代器。至于迭代器模式的使用。客戶程序要先得到具體容器角色,然后再通過具體容器角色得到具體迭代器角色。這樣便可以使用具體迭代器角色來遍歷容器了。
OOA和OOD之間沒有明顯的界限。OOA與OOD的不可分割性正好說明了OO思想的強(qiáng)大,即軟件過程階段的無縫連接,在交流與溝通中不會(huì)產(chǎn)生鴻溝,這是相對結(jié)構(gòu)化思想的好處,因?yàn)閺墓δ苣K到某塊詳細(xì)控制邏輯設(shè)計(jì)兩者之間的聯(lián)系不是十分緊密,需要分析人員與設(shè)計(jì)人員的再溝通。
通過課程的學(xué)習(xí)與實(shí)踐,對面向?qū)ο蟮睦砟睿约跋嚓P(guān)方法,設(shè)計(jì)模式有了更為深刻的理解與掌握。針對面向?qū)ο蟮姆治雠c設(shè)計(jì)課程的授課內(nèi)容及方法,我個(gè)人覺得對我還是有不少的幫助和 提高。結(jié)合自己的工作,雖然與開發(fā)接觸的比較少,但是在運(yùn)維過程中,如果能了解開發(fā)原理,結(jié)合實(shí)際的工作,會(huì)對一些源代碼的分析能力以及工作效率的提高起到明顯的幫助作用。
莊老師上課經(jīng)常說一些與課程無關(guān)的內(nèi)容,我已開始并不理解他的作法,后來我慢慢認(rèn)識(shí)到面向?qū)ο蠓治鲈O(shè)計(jì)的學(xué)習(xí)就是培養(yǎng)思想的一種過程,這種思維方式還是需要大量的實(shí)踐才能靈活的運(yùn)用。目前的階段,只能說是知道有這樣一種設(shè)計(jì)思想、這種解決問題的方案,至于在何時(shí)應(yīng)該使用、如何去使用,就需要在今后的經(jīng)驗(yàn)中去累積了。
下面是一些我掌握的基礎(chǔ)知識(shí)
9種UML圖:
類 圖:描述類的結(jié)構(gòu)(包括屬性以及類之間的相互關(guān)系)
對象圖:對象以及對象之間的相互關(guān)系
構(gòu)件圖:構(gòu)件及其相互依賴關(guān)系
部署圖:構(gòu)件在各節(jié)點(diǎn)上的部署
順(時(shí))序圖:強(qiáng)調(diào)時(shí)間順序的交互圖,用于將系統(tǒng)行為分配給類。一般包含了邊界、控制、實(shí)體對象
協(xié)作圖:強(qiáng)調(diào)對象協(xié)作的交互圖,與時(shí)序圖同構(gòu)
狀態(tài)圖:類所經(jīng)歷的各種狀態(tài),包括狀態(tài)之間的轉(zhuǎn)換以及觸發(fā)轉(zhuǎn)變的事件
活動(dòng)圖:對工作流程建模
用例圖:與用例文檔結(jié)合進(jìn)行需求捕獲,測試依據(jù)
面向?qū)ο笤O(shè)計(jì)七個(gè)原則:
開-閉 原則、里氏轉(zhuǎn)換原則、依賴倒轉(zhuǎn)原則、接口隔離原則、組合/聚合復(fù)用原則、迪米特法則、單一職責(zé)
ICONIX開發(fā)過程:域模型——用例文檔——健壯性分析——健壯圖——時(shí)序圖
設(shè)計(jì)模式:
1)創(chuàng)建模式: 涉及對象的創(chuàng)建
單例模式, 工廠模式, 建造者模式,原型模式
2)結(jié)構(gòu)模式:涉及類和對象的組合
Facede外觀模式, 代理模式, 適配器模式, 裝飾模式
3)行為模式: 刻畫了類和對象交換及分配職責(zé)的方式.主要目標(biāo)是解耦
觀察者模式, 命令模式, 模板模式
本學(xué)期學(xué)了《面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)》課程,本課程我們主要是學(xué)習(xí)了面向?qū)ο蟮慕y(tǒng)一建模語言UML,了解面向?qū)ο蠹夹g(shù)的基本概念,掌握面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法,以及與面向?qū)ο蠹夹g(shù)相關(guān)的一些軟件開發(fā)技術(shù),同時(shí)掌握在IBM RSA軟件環(huán)境下用UML進(jìn)行分析和設(shè)計(jì)的技術(shù)。在《面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)》 的上級課程上,我們的實(shí)踐能力方面著重設(shè)計(jì)構(gòu)思和設(shè)計(jì)技能的得到基本訓(xùn)練,熟練的上機(jī)操作能力和分析能力,加深理解、驗(yàn)證、鞏固課堂教學(xué)內(nèi)容。
數(shù)據(jù)庫是以信息處理為核心的任何應(yīng)用系統(tǒng)的基礎(chǔ),數(shù)據(jù)庫設(shè)計(jì)的質(zhì)量直接關(guān)系到系統(tǒng)開發(fā)的成敗和優(yōu)劣。數(shù)據(jù)庫設(shè)計(jì)的方法與系統(tǒng)使用的開發(fā)方法有著密切的關(guān)系,同時(shí)還與所應(yīng)用的數(shù)據(jù)庫模型(層次模型、網(wǎng)狀模型、關(guān)系模型、對象模型)有關(guān)。目前經(jīng)常采用E—R(Entity—Relationship)圖的方法設(shè)計(jì)數(shù)據(jù)庫。但E—R圖設(shè)計(jì)數(shù)據(jù)庫存在的主要問題是只能對資料建模,而不能對行為建模。而UML類圖的描述能力更強(qiáng),UML類圖是E—R圖的擴(kuò)充。對于關(guān)系模型來說,可以用類圖描述數(shù)據(jù)庫模式,用類描述數(shù)據(jù)庫表。
UML是應(yīng)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)開發(fā)的全程建模語言,可用于業(yè)務(wù)分析、需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)與測試等系統(tǒng)開發(fā)的各個(gè)環(huán)節(jié)。UML概念設(shè)計(jì)的基本工作分為兩個(gè)方面:
· 一是從系統(tǒng)分析和系統(tǒng)設(shè)計(jì)所建立的各種類圖中抽取持久型類。
· 二是確定持久型類之間的關(guān)系,并用類圖描述這種關(guān)系,從而把類圖作為數(shù)據(jù)
庫概念設(shè)計(jì)的結(jié)果。
1.抽取持久型類
持久型類是指類的完整信息需要在數(shù)據(jù)庫中存儲(chǔ)的類。在UML中,類可以分為
邊界類、實(shí)體類和控制類三種類型。
· 接口類和控制類的信息一般不需要長久存儲(chǔ)。
· 持久型類只可能是實(shí)體類,但并不是所有實(shí)體類的信息都需要長久地存儲(chǔ),持久型類只需要從那些信息需要長久存儲(chǔ)的實(shí)體類中抽取。
2.確定類關(guān)系
在比較復(fù)雜的系統(tǒng)分析和設(shè)計(jì)中,并沒有建立立足于整個(gè)系統(tǒng)的整體類圖,而只是建立了一個(gè)個(gè)針對具體用例的類圖。也就是說,所提取的持久型類被分散到各個(gè)用例類圖當(dāng)中了。因此,需要對抽取的持久型類進(jìn)行分析,以確定它們之間的相互關(guān)系,建立起反映這些類關(guān)系的類圖。
UML數(shù)據(jù)建模與E—R圖有著本質(zhì)的區(qū)別。在E—R圖中,應(yīng)用型數(shù)據(jù)庫系統(tǒng)的重點(diǎn)是數(shù)據(jù)庫結(jié)構(gòu)。概念設(shè)計(jì)是應(yīng)用型數(shù)據(jù)庫系統(tǒng)開發(fā)的重點(diǎn)和難點(diǎn)。而UML是用于面向?qū)ο笙到y(tǒng)開發(fā)的全程建模語言,可用于需求分析、系統(tǒng)分析與設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測試等系統(tǒng)開發(fā)的所有環(huán)節(jié)。由于UML基于面向?qū)ο蠹夹g(shù),而要保持方法的一致性,最好選擇面向?qū)ο髷?shù)據(jù)庫。但是,目前的面向?qū)ο髷?shù)據(jù)庫在實(shí)現(xiàn)技術(shù)上還不十分成熟,即使應(yīng)用面向?qū)ο蠹夹g(shù)和環(huán)境開發(fā)應(yīng)用系統(tǒng),通常的做法是使用UML進(jìn)行建模,用關(guān)系型數(shù)據(jù)庫儲(chǔ)存和管理數(shù)據(jù)。
通過一學(xué)期的學(xué)習(xí)和實(shí)踐,我了解到uml具有以下特點(diǎn)[1]:
(1)面向?qū)ο蟆ml支持面向?qū)ο蠹夹g(shù)的主要概念,提供了一批基本的模型元素的表示圖形和方法,能簡潔明了地表達(dá)面向?qū)ο蟮母鞣N概念。
(2)可視化,表示能力強(qiáng)。通過uml的模型圖能清晰地表示系統(tǒng)的邏輯模型和實(shí)現(xiàn)模型。可用于各種復(fù)雜系統(tǒng)的建模。
(3)獨(dú)立于過程。uml是系統(tǒng)建模語言,獨(dú)立于開發(fā)過程。
(4)獨(dú)立于程序設(shè)計(jì)語言。用uml建立的軟件系統(tǒng)模型可以用Java、vc++、smalltaik等任何一種面向?qū)ο蟮某绦蛟O(shè)計(jì)來實(shí)現(xiàn)。
(5)易于掌握使用。uml圖形結(jié)構(gòu)清晰,建模簡潔明了,容易掌握使用。使用uml進(jìn)行系統(tǒng)分析和設(shè)計(jì),可以加速開發(fā)進(jìn)程,提高代碼質(zhì)量,支持動(dòng)態(tài) 的業(yè)務(wù)需求。uml適用于各種規(guī)模的系統(tǒng)開發(fā)。能促進(jìn)軟件復(fù)用,方便地集成已有的系統(tǒng),并能有效處理開發(fā)中的各種風(fēng)險(xiǎn)。
而且uml是一種功能強(qiáng)大的、面向?qū)ο蟮目梢暬到y(tǒng)分析的建模語言,它采用一整套成熟的建模技術(shù),廣泛地適用于各個(gè)應(yīng)用領(lǐng)域。它的各個(gè)模型可以幫助開發(fā)人員更好地理解業(yè)務(wù)流程,建立更可靠、更完善的系統(tǒng)模型。從而使用戶和開發(fā)人員對問題的描述達(dá)到相同的理解,以減少語義差異,保障分析的正確性。
通過對學(xué)籍管理系統(tǒng)的開發(fā)可以看到,uml作為軟件工程中的建模語言,代表了面向?qū)ο蠓椒ǖ能浖_發(fā)技術(shù)的發(fā)展方向,具有重大的經(jīng)濟(jì)價(jià)值和國防價(jià)值,并獲得了國際上的廣泛支持,具有非常好的應(yīng)用前景。
由于明年需要參加考研,復(fù)習(xí)很緊張,所以這學(xué)期面向?qū)ο蠓治雠c設(shè)計(jì)這門課程我并沒有深入地去學(xué)習(xí),但這無法影響我對UML的喜愛,老師上課很生動(dòng),不光在學(xué)習(xí)上教導(dǎo)我,在生活和做人理念上也對我有所幫助。這篇學(xué)習(xí)總結(jié)寫得比較亂,但我都有用心,在以后的學(xué)習(xí)過程中我會(huì)繼續(xù)努力,再次多謝莊老師的教誨。
第二篇:UML與面向?qū)ο蠓治雠c設(shè)計(jì)
UML與面向?qū)ο蠓治雠c設(shè)計(jì)
實(shí)驗(yàn)實(shí)踐訓(xùn)練體系
適用專業(yè): 計(jì)算機(jī)科學(xué)技術(shù)、軟件工程
第一部分 課程與實(shí)驗(yàn)綜述
一.課程簡介及實(shí)踐要求:
《UML與面向?qū)ο蠓治雠c設(shè)計(jì)》是以介紹面向?qū)ο蟮慕y(tǒng)一建模語言UML為主,使學(xué)生了解面向?qū)ο蠹夹g(shù)的基本概念,掌握面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法,以及與面向?qū)ο蠹夹g(shù)相關(guān)的一些軟件開發(fā)技術(shù),同時(shí)掌握在Rational Rose環(huán)境下用UML進(jìn)行分析和設(shè)計(jì)的技術(shù)。本課程在教學(xué)內(nèi)容方面著重基本理論、基本知識(shí)和基本方法,在培養(yǎng)實(shí)踐能力方面著重設(shè)計(jì)構(gòu)思和設(shè)計(jì)技能的基本訓(xùn)練,熟練的上機(jī)操作能力和分析能力。
實(shí)驗(yàn)實(shí)踐訓(xùn)練是UML與面向?qū)ο蠓治雠c設(shè)計(jì)教學(xué)的重要技能環(huán)節(jié)。通過實(shí)驗(yàn),使學(xué)生加深理解、驗(yàn)證、鞏固課堂教學(xué)內(nèi)容,特別是通過設(shè)計(jì)和綜合實(shí)驗(yàn),發(fā)揮學(xué)生的想象力和創(chuàng)新能力。
二.課程實(shí)驗(yàn)?zāi)康囊螅?/p>
通過UML的實(shí)驗(yàn),學(xué)生應(yīng)該: 1.學(xué)會(huì)用面向?qū)ο蟮乃枷肴シ治龊驮O(shè)計(jì)相關(guān)系統(tǒng);2.學(xué)會(huì)用Rose建模工具進(jìn)行軟件建模。三.課程實(shí)驗(yàn)參考資料
1.(美)Joseph Schmuller著.UML基礎(chǔ)、案例與應(yīng)用.人民郵電出版社,2004 2.(美)Hans-Erik Eriksson.UML 2工具箱.電子工業(yè)出版社,2004 3.吳際,金茂忠.UML面向?qū)ο蠓治?北京航空航天大學(xué)出版社,2002 4.趙從軍.UML設(shè)計(jì)及應(yīng)用.機(jī)械工業(yè)出版社,2004 5.Grady Booch,James Rumbaugh,Ivar Jacobson.UML用戶指南.機(jī)械工業(yè)出版社,2001 6.吳建,鄭潮,汪杰.UML基礎(chǔ)與Rose建模案例.人民郵電出版社,2004 第二部分 實(shí)驗(yàn)實(shí)踐指導(dǎo)
實(shí)驗(yàn)一
用例圖
一、實(shí)驗(yàn)?zāi)康?/p>
1.學(xué)會(huì)分析系統(tǒng)中的參與者和用例 2.掌握用例圖的繪制方法
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái);
2.Rational Rose 工具軟件;
三、實(shí)驗(yàn)內(nèi)容
畫出ATM系統(tǒng)的用例圖
四、實(shí)驗(yàn)步驟
1.分析
ATM自動(dòng)取款機(jī):客戶可以取錢,存錢,查詢余額,轉(zhuǎn)帳,修改密碼。通過分析可找出如下幾個(gè)參與者: 1.ATM 2.客戶
通過分析得到如下用例:
(1)存款(2)取款(3)查詢余額(4)轉(zhuǎn)帳(5)修改密碼(6)打印收據(jù) 2.繪圖步驟:
下面介紹在Rose2003中創(chuàng)建用例圖的過程:
(1)在“Use Case View“中雙擊Main圖,或者右擊“Use Case View“,彈出在快捷菜單中選擇“New”->“UseCase Diagram”,雙擊圖標(biāo),出現(xiàn)圖1,為編輯用例圖做好準(zhǔn)備。
(2)在用例視圖中,從工具欄中選擇Actor圖標(biāo),在右邊的繪圖區(qū)中添加一個(gè)新元素,并取名客戶表明新增一個(gè)參與者,如圖2所示。
圖2(3)同樣的方法添加參與者“ATM”,如圖3所示。
圖3(4)在工具欄上選擇用例的圖標(biāo),依次添加存款、取款、查詢余額、轉(zhuǎn)帳、修改密碼、打印收據(jù),如圖4所示。
圖4(5)添加參與者和用例間的關(guān)聯(lián)關(guān)系,如圖5所示。
圖5
五、實(shí)驗(yàn)報(bào)告要求
1. 整理實(shí)驗(yàn)結(jié)果。2. 小結(jié)實(shí)驗(yàn)心得體會(huì)。
實(shí)驗(yàn)二
交互圖
一、實(shí)驗(yàn)?zāi)康?/p>
1.學(xué)會(huì)用協(xié)作圖實(shí)現(xiàn)用例
2.掌握順序圖的繪制方法以及順序圖和協(xié)作圖的相互轉(zhuǎn)換。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái);
2.Rational Rose 工具軟件;
三、實(shí)驗(yàn)內(nèi)容
畫出ATM取款的順序圖,并轉(zhuǎn)換為協(xié)作圖。
四、實(shí)驗(yàn)步驟
1.分析
ATM取款的場景:
(1)通過讀卡機(jī),用戶插入ATM卡;
(2)ATM系統(tǒng)從卡上讀取銀行ID、帳號、加密密碼、并用主銀行系統(tǒng)驗(yàn)證銀行ID和帳號;
(3)用戶輸入密碼,ATM系統(tǒng)根據(jù)上面讀出的卡上加密密碼,對密碼進(jìn)行驗(yàn)證;(4)用戶輸入取款數(shù)量;
(5)ATM系統(tǒng)通知主銀行系統(tǒng),傳遞儲(chǔ)戶帳號和取款數(shù)量,并接收返回的確認(rèn)信息;(6)ATM系統(tǒng)輸出先進(jìn)、ATM卡和顯示帳戶余額的收據(jù);(7)ATM系統(tǒng)記錄事務(wù)到日志文件。尋找場景中的對象:ATM、客戶和帳戶。2.繪圖步驟:
下面介紹在Rose2003中創(chuàng)建順序圖的過程:
(1)在“Logical View”中新建“Sequence Diagram“,雙擊圖標(biāo),出現(xiàn)圖1,為編輯順序圖做好準(zhǔn)備。
(2)在順序圖編輯窗口中,從工具欄中選擇Object圖標(biāo),在右邊的繪圖區(qū)中添加一個(gè)新元素,并取名Customer表明新增一個(gè)對象,如圖2所示。
圖2
(3)同樣的方法,添加ATM對象和Account對象,如圖3所示。
圖3(4)根據(jù)ATM取款的場景,獲得第一條消息為“客戶向ATM機(jī)提交取款需求”,向圖中添加消息,如圖4所示。
圖4
(5)同樣的方法添加其它消息,如圖5所示。
圖5(6)根據(jù)順序圖生成協(xié)作圖,步驟如下:“Browse”->“Create Collaboration Diagram”,生成的協(xié)作圖,如圖6所示。
圖6
五、實(shí)驗(yàn)報(bào)告要求
1. 整理實(shí)驗(yàn)結(jié)果。2. 小結(jié)實(shí)驗(yàn)心得體會(huì)。
實(shí)驗(yàn)三 類圖
一、實(shí)驗(yàn)?zāi)康?/p>
1.理解類的基本概念 2.理解類間的關(guān)系 3.掌握類圖的繪制方法
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái);
2.Rational Rose 工具軟件;
三、實(shí)驗(yàn)內(nèi)容
分析選課系統(tǒng)中的類及關(guān)系,然后畫出它們的類圖。
四、實(shí)驗(yàn)步驟
1.分析
在選課系統(tǒng)中,通過分析可抽象出如下幾個(gè)類: 1.學(xué)生類 2.管理員類 3.課程類
學(xué)生類和管理員類的屬性較容易分析,這里只列出課程類的屬性和方法:(1)課程名稱(2)開課教室(3)課程號(4)授課教師(5)選課的學(xué)生(6)開課起始時(shí)間(7)允許選課的學(xué)生人數(shù)(8)設(shè)置課程號(9)設(shè)置課程名稱(10)查詢課程號
(11)查詢允許選課的學(xué)生人數(shù) 2.繪圖步驟:
下面介紹在Rose2003中創(chuàng)建類和它們之間關(guān)系的過程:
(1)在“Logical View“中雙擊Main圖,或者右擊“Logical View“,彈出在快捷菜單中選擇“New”->“Class Diagram”,雙擊圖標(biāo),出現(xiàn)圖1,為編輯類圖做好準(zhǔn)備。
圖1
(2)在邏輯視圖中,從工具欄中選擇class圖標(biāo),在右邊的繪圖區(qū)中添加一個(gè)新元素,并取名Student表明新增一個(gè)類。
圖2
(3)選擇新創(chuàng)建的元素,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Sepcification”,彈出圖3對話框。
(4)在對話框中,可以修改元素的名稱,這里新元素的名稱定為“Student”,如圖4所示。
圖3
圖4(5)點(diǎn)擊“Attributes”選項(xiàng)卡,添加屬性,如圖5所示。
圖5(6)點(diǎn)擊“operations”選項(xiàng)卡,添加方法如圖6所示。
圖6(7)同樣的方法添加Course類,如圖7所示。
圖7(8)創(chuàng)建兩個(gè)類之間的關(guān)系,通過分析得出:學(xué)生類和課程類之間為單向關(guān)聯(lián)。選擇圖標(biāo)欄的“關(guān)聯(lián)”,由學(xué)生類指向課程類。如圖8所示。
圖8(9)創(chuàng)建關(guān)聯(lián)名。右擊關(guān)聯(lián),選擇“open specification“,鍵入關(guān)聯(lián)名,如圖9所示。
圖9(10)分別在“Role A Detail“和“Role B Detail“選項(xiàng)卡中鍵入名稱和多重性,如圖10所示。
圖10(11)重復(fù)(2)-(10)中的步驟完成選課系統(tǒng)整個(gè)類圖的創(chuàng)建。
五、實(shí)驗(yàn)報(bào)告要求
1. 整理實(shí)驗(yàn)結(jié)果。2. 小結(jié)實(shí)驗(yàn)心得體會(huì)。實(shí)驗(yàn)四 狀態(tài)圖和活動(dòng)圖
一、實(shí)驗(yàn)?zāi)康?/p>
1. 熟悉狀態(tài)圖和活動(dòng)圖的基本功能和使用方法。2. 掌握如何使用建模工具繪制狀態(tài)圖和活動(dòng)圖方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái);
2.Rational Rose 工具軟件;
三、實(shí)驗(yàn)內(nèi)容
(1)分析圖書管理系統(tǒng)中的書和借書證的狀態(tài),畫出它們的狀態(tài)圖;(2)分析管理員的活動(dòng)狀態(tài),畫出管理員的活動(dòng)圖。
四、實(shí)驗(yàn)步驟
1.分析
在圖書管理系統(tǒng)中,分析書的狀態(tài)如下: 1.可借 2.被借 3.被預(yù)約 4.刪除
借書證的狀態(tài)如下: 1.可用 2.不可用 3.刪除
管理員的活動(dòng)如下: 1. 處理還書 2. 處理借書 3. 處理罰款 讀者的活動(dòng)如下: 1.登錄 2.找書 3.預(yù)約 4.瀏覽 2.繪圖步驟:
下面介紹在Rose2003中創(chuàng)建類和它們之間關(guān)系的過程:
(1)在“Logical View“中信件“StateChart Diagram”,雙擊圖標(biāo),出現(xiàn)圖1,為編輯狀態(tài)圖做好準(zhǔn)備。
圖1(2)在工具欄中選擇“Start State”圖標(biāo)添加到編輯窗口中,如圖2所示。
圖2(3)在工具欄中選擇“State”圖標(biāo),添加一個(gè)元素,命名為“New book”,如圖3所示。
圖3
(4)同樣的方法添加其它狀態(tài),如圖4所示。
圖4
(5)書的各個(gè)狀態(tài)之間添加轉(zhuǎn)移及相應(yīng)的事件,如圖5所示。
圖5
(6)同樣的方法得借書證的狀態(tài)圖,如圖6所示。
圖6
(7)在Rose2003中,繪制圖書管理員的活動(dòng)圖,新建“Activity Diagram”,如圖7所示:
圖7
(8)讀者的活動(dòng)圖如圖8所示:
圖8
五、實(shí)驗(yàn)報(bào)告要求
1. 整理實(shí)驗(yàn)結(jié)果。2. 小結(jié)實(shí)驗(yàn)心得體會(huì)。
第三篇:面向?qū)ο蠓治雠c設(shè)計(jì)實(shí)驗(yàn)報(bào)告
實(shí) 實(shí)
驗(yàn)
報(bào)
告
課程名稱
面向東西闡發(fā)與設(shè)計(jì)
專業(yè)班級
_ _ ___
__ __
學(xué)
號
__
___
姓
名
___
__ __
同組成員
實(shí)驗(yàn)日期
_
成績
____________ ___________
人為治理系統(tǒng) 1.1 系統(tǒng)的成果需求
人為治理系統(tǒng)包羅員工治理、人為治理、銷售獎(jiǎng)金治理、保險(xiǎn)用度治理等。
1.人為治理 在取得授權(quán)的情況下,有關(guān)人員要進(jìn)行如下事情。
(1)人為錄入
人為治理員錄入員工的人為,修改錄入的墮落(維護(hù)),形成人為表。
(2)銷售獎(jiǎng)金錄入 人為治理員錄入員工的銷售獎(jiǎng)金,修改錄入的墮落(維護(hù)),形成銷售獎(jiǎng)金表。
(3)保險(xiǎn)用度的錄入 人為治理員錄入員工的若干保險(xiǎn)用度,修改錄入的墮落(維護(hù)),形成保險(xiǎn)用度統(tǒng)計(jì)表。
(4)盤算人為 人為治理員按事情證號碼來進(jìn)行人為的盤算統(tǒng)計(jì),然后生成報(bào)表再上報(bào)給財(cái)務(wù)部。
(5)盤算銷售獎(jiǎng)金 人為治理員憑據(jù)事情證號碼進(jìn)行人為銷售獎(jiǎng)金的盤算統(tǒng)計(jì),然后生成報(bào)表上報(bào)給財(cái)務(wù)部。
(6)盤算若干保險(xiǎn)的扣除用度 人為治理員憑據(jù)事情證號碼進(jìn)行若干保險(xiǎn)的盤算統(tǒng)計(jì),然后生成報(bào)表上報(bào)給財(cái)務(wù)部、(7)人為或銷售獎(jiǎng)金、保險(xiǎn)用度查詢 公司員工可以憑據(jù)自己的事情證號碼查詢自己的人為或銷售獎(jiǎng)金及保險(xiǎn)用度。
人為治理的主要業(yè)務(wù)流程:
此處給出以上 7 個(gè)業(yè)務(wù)之間的流程圖(用運(yùn)動(dòng)圖描述)
1.2 創(chuàng)建需求模型
對人為治理系統(tǒng)先分別子系統(tǒng),然后再通過創(chuàng)建用況模型,對需求進(jìn)行捕獲與描述。
1.2.1
分別子系統(tǒng)
限定人為治理系統(tǒng)的成果為:人為治理、統(tǒng)計(jì)部分、財(cái)務(wù)系統(tǒng)、員工治理。對上述的每個(gè)成果,用一個(gè)子系統(tǒng)來實(shí)現(xiàn)。下圖給出了這些子系統(tǒng)以及它們之間的依賴。
人為治理系統(tǒng)中子系統(tǒng)以及它們之間的依賴:
此處給出子系統(tǒng)的擺設(shè)圖如下
上圖中的子系“財(cái)務(wù)系統(tǒng)”要分別使用子系統(tǒng)“員工治理”、“人為治理”中的員工號碼、員工姓名、員工人為。子系統(tǒng)“人為治理”要分別使用子系統(tǒng)“統(tǒng)計(jì)部分”和“員工治理”中的員工信息和統(tǒng)計(jì)的人為信息。子系統(tǒng)“統(tǒng)計(jì)部分”要使用子系統(tǒng)“員工治理”中的員工信息。
1.2.2 識(shí)別 參加者
子系統(tǒng)“人為治理”的人員用戶有人為治理員和員工。與子系統(tǒng)“人為治理”有關(guān)的子系統(tǒng)有“統(tǒng)計(jì)部分”、“員工治理”和“財(cái)務(wù)系統(tǒng)”,這些子系統(tǒng)是“人為治理”的參加者。
1.2.3 識(shí)別用況
對 1.1 節(jié)的中的用況需求,現(xiàn)歸納整理如下。
1.人為治理
(1)錄入與維護(hù)人為、銷售獎(jiǎng)金及保險(xiǎn)用度 人為治理員需錄入員工的人為、銷售獎(jiǎng)金及若干保險(xiǎn)用度信息做出人為表、銷售獎(jiǎng)金表及保險(xiǎn)用度表。
(2)盤算人為或銷售獎(jiǎng)金及保險(xiǎn)用度 人為治理員按事情證號碼進(jìn)行盤算做出人為報(bào)表、銷售獎(jiǎng)金報(bào)表及保
險(xiǎn)用度表。
(3)查詢?nèi)藶椤N售獎(jiǎng)金或保險(xiǎn)用度
員工查詢自己的人為、銷售獎(jiǎng)金及保險(xiǎn)用度。
(4)登錄 人為治理員和員工進(jìn)入該子系統(tǒng)都需要登錄。
1.2.4 對需求進(jìn)行捕獲與描述
通過到目前為止掌握的需求,開端了解了系統(tǒng)所要完成的成果。下面進(jìn)一步創(chuàng)建參加者與用況之間的干系,并對用況進(jìn)行詳細(xì)的描述。
圖 1.3 為子系統(tǒng)“人為治理”的用況圖。
首先,使用系統(tǒng)的員工和人為治理員都先要進(jìn)行登錄。參加者“人為治理員”通過用況“錄入與維護(hù)人為、銷售獎(jiǎng)金及保險(xiǎn)用度”來錄入、修改,形成人為表、銷售獎(jiǎng)金表及保險(xiǎn)用度表;再通過用況“盤算人為、銷售獎(jiǎng)金及保險(xiǎn)用度”生成人為報(bào)表、銷售獎(jiǎng)金報(bào)表及保險(xiǎn)用度表并予以宣布。所宣布的人為報(bào)表、銷售獎(jiǎng)金報(bào)表及保險(xiǎn)用度表供參加者“員工”、“財(cái)務(wù)系統(tǒng)”和“人為治理員”使用。員工要通過用況“查詢?nèi)藶椤N售獎(jiǎng)金及保險(xiǎn)用度”來得知自己的人為、銷售獎(jiǎng)金及保險(xiǎn)用度。
此處要求給出各個(gè)用況的相關(guān)運(yùn)動(dòng)圖 如下是對上述各用況的描述。
用況:錄入與維護(hù)人為、銷售獎(jiǎng)金及保險(xiǎn)用度 【前置條件:人為治理員已經(jīng)登錄樂成】
人為治理員選擇人為錄入與維護(hù)、銷售獎(jiǎng)金錄入與維護(hù)、保險(xiǎn)用度的錄入與維護(hù)。
系統(tǒng)出現(xiàn)出供錄入和修改人為、銷售獎(jiǎng)金及保險(xiǎn)用度的界面 人為治理員處理懲罰完數(shù)據(jù)(錄入、修改)后,發(fā)控制命令
若為生存,系統(tǒng)進(jìn)行存儲(chǔ),并通知結(jié)果治理員是否樂成 若為取消,退出本成果
用況:盤算人為、銷售獎(jiǎng)金及保險(xiǎn)用度 【前置條件:人為治理員已經(jīng)登錄樂成】
人為治理員發(fā)出進(jìn)行人為、銷售獎(jiǎng)金及保險(xiǎn)用度盤算的請求
按事情證號生成人為、銷售獎(jiǎng)金及保險(xiǎn)用度報(bào)表,并發(fā)送到子系統(tǒng)“財(cái)務(wù)系統(tǒng)”中 用況:查詢?nèi)藶椤N售獎(jiǎng)金及保險(xiǎn)用度 【前置條件:員工已經(jīng)登錄樂成】
交互內(nèi)容見表 1.1 中編號為 1 的那欄的輸入/輸出部分。1.3 系統(tǒng)闡發(fā)
在掌握了上述的需求后,下面開始使用面向東西要領(lǐng)進(jìn)行系統(tǒng)闡發(fā)。
1.3.1 尋找類
人為治理 在子系統(tǒng)“人為治理”中,也要設(shè)立兩個(gè)類“員工”和“人為治理員”,用它們分別模擬相應(yīng)的參加者。
人為治理中的東西是人為和銷售獎(jiǎng)金及保險(xiǎn)用度,因而設(shè)立類“人為組成”、“銷售獎(jiǎng)金表”及“保險(xiǎn)用度表”。種種人為組成許多,需要設(shè)立類“人為表”,它與類“人為組成”形成組合干系。
子系統(tǒng)“人為治理”需要從人為治理部分獲取信息,需要設(shè)立需接口“人為治理”。子系統(tǒng)“人為治理”要向財(cái)務(wù)系統(tǒng)提供數(shù)據(jù),需要設(shè)立供接口“財(cái)務(wù)系統(tǒng)”。
1.3.2 創(chuàng)建狀態(tài)機(jī)圖
對付上述所找到的類,現(xiàn)在憑據(jù)上述的闡發(fā)能理解它們的職責(zé)了。現(xiàn)針對子系統(tǒng)“人為治理”中的類“人為表”繪制一個(gè)狀態(tài)機(jī)圖。
憑據(jù)問題域,可為類“人為表”的東西設(shè)立了 5 個(gè)狀態(tài),分別為:初始、初始化、查詢、封閉和終止。
施加在人為表上的時(shí)間有:宣布、查詢和封閉。這些事情都是針對人為表所發(fā)消息的響應(yīng)。
下圖展示的是針對人為表的狀態(tài)機(jī)圖。
圖 人為表的狀態(tài)機(jī)圖 1.3.3
創(chuàng)建類圖
對在 1.3.1 節(jié)中找到的各個(gè)類進(jìn)行考察,分別界說它們的屬性和操縱,考慮它們之間的干系,繪制出類圖。
(1)類“員工”
該類中屬性有“姓名”、“事情證號”、“密碼”和“職務(wù)”,操縱有“登入”、“查詢”、“修改密碼”、“查詢?nèi)藶椤焙汀安樵兡杲K獎(jiǎng)金”。
(2)類“人為” 該類中有屬性“事情證號”和“人為”。
(3)類“人為表”
該類中有屬性“姓名”、“事情證號”、“時(shí)間”和“人為額”。它與類“人為”組成組合干系,在其中要設(shè)立操縱“生成人為組成”、“查詢?nèi)藶榻M成”。它另有一個(gè)操縱“查詢?nèi)藶椤保﹩T工查詢?nèi)藶橹谩?/p>
(4)類“銷售獎(jiǎng)金表” 該類中有屬性“姓名”、“事情證號”、“時(shí)間”和“銷售獎(jiǎng)金額”。它與類“人為”組成組合干系,在其中要設(shè)立操縱“生成銷售獎(jiǎng)金組成”、“查詢銷售獎(jiǎng)金組成”。它另有一個(gè)操縱“查詢銷售獎(jiǎng)金額”,供員工查詢銷售獎(jiǎng)金之用。
(5)類“保險(xiǎn)用度表” 該類中有屬性“姓名”、“事情證號”、“時(shí)間”和“保險(xiǎn)用度”。它與類“人為”組成組合干系,在其中要設(shè)立操縱“生成年保險(xiǎn)用度組成”、“查詢保險(xiǎn)用度組成”。它另有一個(gè)操縱“查詢保險(xiǎn)用度”,供員工查詢保險(xiǎn)用度。
(6)類“人為治理員” 該類中有屬性“姓名”、“事情證號”和“密碼”;屬性有“登入”、“錄入與維護(hù)人為”、“修改密碼”、“生成人為表”、“生成銷售獎(jiǎng)金表”、“生成保險(xiǎn)用度表”、“盤算人為”、“盤算銷售獎(jiǎng)金”、“盤算保險(xiǎn)用度”、“向財(cái)務(wù)部發(fā)人為表”、“向財(cái)務(wù)部發(fā)銷售獎(jiǎng)金表”及“向財(cái)務(wù)部發(fā)保險(xiǎn)用度表”。
上述的六個(gè)類及其間的干系如下圖所示。
圖 人為治理部分分類圖 人為治理員按事情證號輸入與維護(hù)人為組成,為此在類“人為治理員”與類“人為表”之間設(shè)立一個(gè)關(guān)聯(lián)“錄入與維護(hù)人為表”。人為治理員還要生成人為報(bào)表,因此在類”人為治理員與類“人為表”間設(shè)立一個(gè)關(guān)聯(lián)“盤算”。
員工要查詢?nèi)藶榍闆r,因而在類“員工”和“人為表”間設(shè)立關(guān)聯(lián)“查詢?nèi)藶椤薄?/p>
類“銷售獎(jiǎng)金表”及類“保險(xiǎn)用度表”和類“人為治理員”、類“員工”之間的關(guān)聯(lián)創(chuàng)建與上述類似。
1.3.4
創(chuàng)建順序圖
在上一節(jié)中,以文字的形式說明了類之間的關(guān)聯(lián)作用。這種說明往往不能清楚的描述事物間的交互情況,這就需要使用交互圖來予以準(zhǔn)確的表達(dá)。對付員工查詢?nèi)藶閬碇v,下圖給出針對員工以及員工人為查詢有關(guān)的東西創(chuàng)建的順序圖
圖
員工以及與員工查詢?nèi)藶橛嘘P(guān)的東西之間的交互情況(一)
圖
員工以及與員工查詢?nèi)藶橛嘘P(guān)的東西之間的交互情況(二)
1.4
系統(tǒng)設(shè)計(jì)
1.4.1
問題域部分設(shè)計(jì)
人為查詢子系統(tǒng)通過數(shù)據(jù)庫與其他子系統(tǒng)互換數(shù)據(jù),即,通過需接口從數(shù)據(jù)庫中獲取數(shù)據(jù),通過供接口向數(shù)據(jù)庫寫入數(shù)據(jù)。故需要憑據(jù)供需雙方配合約定的借口規(guī)約設(shè)計(jì)相應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu),并在接口相關(guān)的類操縱中結(jié)構(gòu) SQL 語句即可。
1.4.2
界面部分設(shè)計(jì)
應(yīng)該針對表 1-1 中的內(nèi)容進(jìn)行界面設(shè)計(jì),憑據(jù)第 8 章的要求設(shè)計(jì)出全部界面。
下圖 所示的是用戶登入界面,該界面也適用于員工。
下二圖 是在登入樂成后,系統(tǒng)給出的選擇時(shí)間界面。
圖 登入界面
圖 選擇時(shí)間界面
在選擇時(shí)間并確定后,出現(xiàn)下圖所示的界面。
圖 1-10
人為
1.4.3
數(shù)據(jù)治理部分設(shè)計(jì)
類“人為”和“人為表”組成了組合干系,對他們分別設(shè)立兩張表,并在與類“人為”對應(yīng)的表中用外鍵隱含它與類“人為報(bào)表”的關(guān)聯(lián)。對付類“員工”和類“人為治理員”也分別設(shè)立一張表,用于存儲(chǔ)相應(yīng)的東西。
下面給出了類“人為”和類“人為表”所對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)。
表 表
類“人為”所對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)
本表的主要害字為事情證號
表 表
類“人為表”所對應(yīng)的數(shù)據(jù)庫 表的結(jié)構(gòu)
本表的主要害字為事情證號+時(shí)間,外鍵為事情證號。
表 表
類“銷售獎(jiǎng)金”所對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)
本表的主要害字為事情證號+時(shí)間,外鍵為事情證號
表 表
類“保險(xiǎn)用度”所對應(yīng)的數(shù)據(jù)庫表的結(jié)構(gòu)
本表的主要害字為事情證號+時(shí)間,外鍵為事情證號
第四篇:面向?qū)ο蠓治雠c設(shè)計(jì)-牙科診所管理系統(tǒng)
牙科診所管理系統(tǒng)
王大夫在小鎮(zhèn)上開了一家牙科診所。他有一個(gè)牙科助手、一個(gè)牙科保健員和一個(gè)接待員。王大夫需要一個(gè)軟件系統(tǒng)來管理預(yù)約。
當(dāng)病人打電話預(yù)約時(shí),接待員將查閱預(yù)約登記表,如果病人申請的就診時(shí)間與已定下的預(yù)約時(shí)間沖突,則接待員建議一個(gè)就診時(shí)間以安排病人盡早得到診治。如果病人同意建議的就診時(shí)間,接待員將輸入約定時(shí)間和病人的名字。系統(tǒng)將核實(shí)病人的名字并提供記錄的病人數(shù)據(jù),數(shù)據(jù)包括病人的病歷號等。在每次治療或清洗后,助手或保健員將標(biāo)記相應(yīng)的預(yù)約診治已經(jīng)完成,如果必要的話會(huì)安排病人下一次再來。
系統(tǒng)能夠按病人姓名和按日期進(jìn)行查詢,能夠顯示記錄的病人數(shù)據(jù)和預(yù)約信息。接待員可以取消預(yù)約,可以打印出前兩天預(yù)約尚未接診的病人清單。系統(tǒng)可以從病人記錄中獲知病人的電話號碼。接待員還可以打印出關(guān)系所有病人的每天和每周工作安排。
1、建立牙科診所管理系統(tǒng)的對象模型。
2、建立牙科診所管理系統(tǒng)的用例模型。
3、用數(shù)據(jù)流圖建立所述牙科診所管理系統(tǒng)的功能模型。
4、畫出牙科診所管理系統(tǒng)的狀態(tài)圖。
1、建立牙科診所管理系統(tǒng)的對象模型
(1)詞法分析,找出(名詞)作為對象的候選者;
王大夫在小鎮(zhèn)上開了一家牙科診所。他有一個(gè)牙科助手、一個(gè)牙科保健員和一個(gè)接待員。王大夫需要一個(gè)軟件系統(tǒng)來管理預(yù)約。
當(dāng)病人打電話預(yù)約時(shí),接待員將查閱預(yù)約登記表,如果病人申請的就診時(shí)間與已定下的預(yù)約時(shí)間沖突,則接待員建議一個(gè)就診時(shí)間以安排病人盡早得到診治。如果病人同意建議的就診時(shí)間,接待員將輸入約定時(shí)間和病人的名字。系統(tǒng)將核實(shí)病人的名字并提供記錄的病人數(shù)據(jù),數(shù)據(jù)包括病人的病歷號等。在每次治療或清洗后,助手或保健員將標(biāo)記相應(yīng)的預(yù)約診治已經(jīng)完成,如果必要的話會(huì)安排病人下一次再來。
系統(tǒng)能夠按病人姓名和按日期進(jìn)行查詢,能夠顯示記錄的病人數(shù)據(jù)和預(yù)約信息。接待員可以取消預(yù)約,可以打印出前兩天預(yù)約尚未接診的病人清單。系統(tǒng)可以從病人記錄中獲知病人的電話號碼。接待員還可以打印出關(guān)系所有病人的每天和每周工作安排。
(2)找出問題域中對象,對候選對象進(jìn)行嚴(yán)格篩選,從中刪除不正確的或不必要的,只保留確實(shí)應(yīng)該記錄其信息或需要提供服務(wù)的那些對象。
王大夫(牙醫(yī)的實(shí)例)
小鎮(zhèn)(牙科診所的地址屬性)
牙科診所
牙科助手 牙科保健員 接待員(外部角色,不是問題域內(nèi)的對象)
軟件系統(tǒng)(與“系統(tǒng)”同義,指將來開發(fā)的軟件產(chǎn)品)
預(yù)約
病人
預(yù)約登記表 就診時(shí)間(與“預(yù)約時(shí)間”,“約定時(shí)間”同義,都是“預(yù)約登記表”的屬性)
預(yù)約時(shí)間 約定時(shí)間 系統(tǒng)
名字(與“姓名”同義,是病人記錄的屬性)
記錄的病人數(shù)據(jù)(即“病人記錄”)
病歷號(病人記錄的屬性)
姓名
日期(“預(yù)約登記表”的屬性)
預(yù)約信息(與“病人清單”包含的信息基本相同)
病人清單
病人記錄
電話號碼(病人記錄的屬性)
每天工作安排 每周工作安排
(3)確定問題域中對象彼此之間的關(guān)系。
1牙科診所11..*病人清單1..*1預(yù)約登記表111..*工作安排1..**預(yù)約11病人記錄1病人1..*每天工作安排每周工作安排
2、建立牙科診所管理系統(tǒng)的用例模型。
牙科診所管理系統(tǒng)<
3、用數(shù)據(jù)流圖建立所述牙科診所管理系統(tǒng)的功能模型。
1查詢病人數(shù)據(jù)病人數(shù)據(jù)病人數(shù)據(jù)D1病人記錄姓名病人日期2查詢預(yù)約日期有效日期3完成預(yù)約預(yù)約信息7打印工作安排每天和每周工作安排牙醫(yī)4取消預(yù)約姓名/日期預(yù)約信息預(yù)約信息預(yù)約信息預(yù)約信息職員姓名5更新預(yù)約D2預(yù)約登記表預(yù)約信息姓名/日期6查詢預(yù)約預(yù)約信息職員
4、畫出牙科診所管理系統(tǒng)的狀態(tài)圖。
牙科診所管理系統(tǒng)的主要功能是實(shí)現(xiàn)病人預(yù)約,狀態(tài)圖如下,圖中把除了完成病人預(yù)約之外的事務(wù)籠統(tǒng)地稱為日常事務(wù)。
查找病人記錄及可能的預(yù)約輸入有效名字開始返回確認(rèn)信息處理日常事務(wù)退出進(jìn)行預(yù)約確認(rèn)預(yù)約輸入非法名字、按姓名或日期查詢,打印工作安排,取消預(yù)約
第五篇:面向?qū)ο蠓治雠c設(shè)計(jì),uml應(yīng)用實(shí)例步驟詳解(范文模版)
《面向?qū)ο蠓治雠c設(shè)
計(jì)》
實(shí)驗(yàn)參考資料
目 錄
一、課程編號...................................................................................................................................2
二、課程類型...................................................................................................................................2
三、本課程的地位、作用與任務(wù)...................................................................................................2
四、課程基本要求...........................................................................................................................2
五、實(shí)驗(yàn)安排...................................................................................................................................2
實(shí)驗(yàn)1:實(shí)驗(yàn)準(zhǔn)備............................................................................................................2 1.實(shí)驗(yàn)器材....................................................................................................................2 2.rational rose安裝步驟.............................................................................................3 實(shí)驗(yàn)2:用例分析與設(shè)計(jì)................................................................................................3
1、實(shí)驗(yàn)?zāi)康?...................................................................................................................3
2、實(shí)驗(yàn)內(nèi)容....................................................................................................................3
3、實(shí)驗(yàn)步驟....................................................................................................................3
4、實(shí)驗(yàn)報(bào)告要求............................................................................................................8 實(shí)驗(yàn)3:類圖的設(shè)計(jì)........................................................................................................8 1.實(shí)驗(yàn)?zāi)康?...................................................................................................................8 2.實(shí)驗(yàn)內(nèi)容....................................................................................................................8 3.實(shí)驗(yàn)步驟....................................................................................................................8 實(shí)驗(yàn)4:狀態(tài)圖................................................................................................................9 1.實(shí)驗(yàn)?zāi)康?...................................................................................................................9 2.實(shí)驗(yàn)內(nèi)容....................................................................................................................9 3.實(shí)驗(yàn)步驟....................................................................................................................9 實(shí)驗(yàn)5:時(shí)序圖..............................................................................................................15 1.實(shí)驗(yàn)?zāi)康?.................................................................................................................15 2.實(shí)驗(yàn)內(nèi)容..................................................................................................................15 3.實(shí)驗(yàn)步驟..................................................................................................................15 實(shí)驗(yàn)6:協(xié)作圖..............................................................................................................21 1.實(shí)驗(yàn)?zāi)康?.................................................................................................................21 2.實(shí)驗(yàn)內(nèi)容..................................................................................................................21 3.實(shí)驗(yàn)步驟..................................................................................................................21 實(shí)驗(yàn)7,8:綜合設(shè)計(jì)實(shí)驗(yàn)............................................................................................24 1.實(shí)驗(yàn)?zāi)康?.................................................................................................................24 2.實(shí)驗(yàn)內(nèi)容..................................................................................................................24 3.實(shí)驗(yàn)步驟..................................................................................................................24
六、教材.........................................................................................................................................25
七、成績考核辦法.........................................................................................................................25
八、附A:完整UML建模過程例子..........................................................................................25 面向?qū)ο蠓治雠c設(shè)計(jì)
一、課程編號
本科軟件工程
二、課程類型
課程類型:必修課。
適用專業(yè):軟件工程 試驗(yàn)學(xué)時(shí):10~24學(xué)時(shí)
三、本課程的地位、作用與任務(wù)
計(jì)算機(jī)軟件建模技術(shù)現(xiàn)在越來越廣泛的應(yīng)用于軟件工程中。《面向?qū)ο笙到y(tǒng)分析設(shè)計(jì)》課程實(shí)驗(yàn)的目的是為了使學(xué)生在課程理論學(xué)習(xí)的同時(shí),通過在一個(gè)實(shí)踐的環(huán)境下,實(shí)際學(xué)習(xí)軟件統(tǒng)一建模語言,對軟件建模技術(shù)有一個(gè)初步的了解及認(rèn)識(shí)。通過本指導(dǎo)書中的各個(gè)實(shí)驗(yàn),學(xué)習(xí)掌握對一般面向?qū)ο笙到y(tǒng)建模的方法與技術(shù)。總之,通過上述實(shí)驗(yàn)環(huán)節(jié),使學(xué)生加深了解和更好地掌握課程教學(xué)大綱要求的內(nèi)容。
四、課程基本要求
1、學(xué)生應(yīng)根據(jù)每個(gè)上機(jī)試驗(yàn)的任務(wù)和教師所提的要求,上機(jī)前準(zhǔn)備好上機(jī)內(nèi)容。
2、上機(jī)時(shí)要針對一個(gè)實(shí)際的案例進(jìn)行分析,畫出不同的階段UML圖。
3、上機(jī)結(jié)束后應(yīng)按時(shí)提交試驗(yàn)報(bào)告,對于上機(jī)未完成部分,應(yīng)該下機(jī)后利用課余時(shí)間完成。
五、實(shí)驗(yàn)安排
實(shí)驗(yàn)1:實(shí)驗(yàn)準(zhǔn)備
1.實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái)。2.建模工具軟件。2.rational rose安裝步驟
(1)運(yùn)行安裝軟件;
(2)單擊下一步,選擇rational rose enterprise edition;
(3)單擊下一步,選擇desktop installation from cd image,表示創(chuàng)建一個(gè)本地的應(yīng)用程序而不是網(wǎng)絡(luò)的;
(4)隨后根據(jù)提示進(jìn)一步操作,完成安裝,注冊;
(5)運(yùn)行rational rose,進(jìn)入主界面,new表示新建模型,existing表示打開現(xiàn)有,recent表示最近打開模型;
(6)熟悉模型的創(chuàng)建,保存,發(fā)布。
實(shí)驗(yàn)2:用例分析與設(shè)計(jì)
1、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉用例圖的基本功能和使用方法。2.掌握如何使用建模工具繪制活動(dòng)圖方法。
2、實(shí)驗(yàn)內(nèi)容
1.根據(jù)某圖書館的圖書管理系統(tǒng)開發(fā)進(jìn)度,在完成對系統(tǒng)的需求建模,得到用例模型后,應(yīng)針對每個(gè)用例進(jìn)行業(yè)務(wù)分析,說明其具體的業(yè)務(wù)流程,現(xiàn)系統(tǒng)分析部指派您完成該項(xiàng)任務(wù)。要求:
2.對其中主要功能的用例書寫書面用例。
3、實(shí)驗(yàn)步驟
書寫“刪除讀者信息”用例的書面用例。一般應(yīng)包含以下信息:(1)管理員在錄入界面,輸入待刪除的讀者名;
(2)“業(yè)務(wù)邏輯”組件在數(shù)據(jù)庫中,查找待刪除的讀者名;
(3)如果不存在,則顯示出錯(cuò)信息,返回步驟(1),如果存在則繼續(xù);(4)“業(yè)務(wù)邏輯”組件判斷“待刪除的讀者”是否可以刪除;
(5)如果不可以,則顯示出錯(cuò)信息,返回步驟(8),如果可以則繼續(xù);(6)在數(shù)據(jù)庫中,刪除相關(guān)信息;(7)顯示刪除成功信息;(8)結(jié)束。分析: 在圖書管理系統(tǒng)中,管理員首先登錄系統(tǒng),系統(tǒng)驗(yàn)證通過后,管理方可向系統(tǒng)查詢數(shù)據(jù),在查詢后,系統(tǒng)會(huì)給出提示,有沒有找到相關(guān)的數(shù)據(jù),管理員根據(jù)系統(tǒng)查詢的返回結(jié)果,進(jìn)行下一步的操作,就是刪除讀者,在刪除的過程中,系統(tǒng)會(huì)對查詢得到的結(jié)果判斷該記錄是否可以刪除,若可以刪除,則給刪除提示,若不能刪除,也給相關(guān)的提示信息。
繪圖步驟:(1)在用例圖上雙擊main,出現(xiàn)如圖2.1所示,為繪制用例圖做好準(zhǔn)備。
圖2.1(2)在圖中的工具欄選取Actor圖標(biāo),在右邊的圖中添加一個(gè)Actor,并輸入名稱:administrator,如圖2.2所示。
(3)在左邊的工具欄中,選取用例的圖標(biāo),在右邊的圖中畫出一個(gè)用例,并輸入用例的名稱:login。
圖2.2(4)按照步驟(3),繪制出如圖2.4和圖2.5的兩個(gè)用例。
圖2.3
圖2.4
圖2.5(5)在繪出了用例后,接下來的是繪制參與者與用例實(shí)現(xiàn),如圖2.6所示。
圖2.6
(6)根據(jù)步驟(5),同時(shí)完成如圖2.7和圖2.8。此時(shí),刪除讀者用例圖就到此完成。其系統(tǒng)查詢讀者信息等其他的功能會(huì)在時(shí)序圖和活動(dòng)圖中描繪。
(7)根據(jù)分析情況,進(jìn)一步添加或細(xì)化用例圖。
圖2.7
圖2.8
4、實(shí)驗(yàn)報(bào)告要求
1.可以細(xì)化、完善或者修改給出的例子,分析和設(shè)計(jì)用例圖,寫出實(shí)驗(yàn)步驟,整理實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)操作和步驟盡量詳盡,并且按照指導(dǎo)書給出的范例,適當(dāng)進(jìn)行需求和系統(tǒng)分析,做出的各種框圖需要在實(shí)驗(yàn)報(bào)告中畫出來,可以打印。
2. 小結(jié)實(shí)驗(yàn)心得體會(huì),對于遇到的問題給予分析。
實(shí)驗(yàn)3:類圖的設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
1.掌握使用rose畫類圖的步驟。2.掌握類圖的基本語法。2.實(shí)驗(yàn)內(nèi)容
1.根據(jù)圖書管理系統(tǒng)的需要分析,用例圖,交互圖,對系統(tǒng)進(jìn)行靜態(tài)建模,尋找和發(fā)現(xiàn)類,分析類之間的關(guān)系; 3.實(shí)驗(yàn)步驟
1.打開前面初步構(gòu)建的UML模型文件;2.打開Rose中的邏輯視圖(Logical View),選擇分析模型(analysis model)目錄。并在其下創(chuàng)建一個(gè)子目錄并命名為:“圖書館業(yè)務(wù)功能”。
3.用鼠標(biāo)右擊“圖書館業(yè)務(wù)功能”在彈出來的菜單中選擇“New→Class diagram”項(xiàng),創(chuàng)建類圖。
4.雙擊新建的類圖,并點(diǎn)右邊控件集中選中的類并用鼠標(biāo)在圖中分別拖出上述類圖。5.設(shè)定上述抽象出來各類的屬性和操作。6.分析、設(shè)定以上各類之間的關(guān)系。
7.請根據(jù)教材中示例部分在Rational Rose中繪制類間的關(guān)系。
注意:這里沒有具體的相關(guān)的例子;
實(shí)驗(yàn)4:狀態(tài)圖
1.實(shí)驗(yàn)?zāi)康?/p>
1.熟悉狀態(tài)圖的基本功能和使用方法。2.掌握如何使用建模工具繪制狀態(tài)圖方法。2.實(shí)驗(yàn)內(nèi)容
1.通過某圖書館的圖書館管理系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖和相應(yīng)的活動(dòng)態(tài)。通過這兩類圖我們可以初步了解系統(tǒng)的業(yè)務(wù)處理過程,但對業(yè)務(wù)處理過程的處理狀態(tài)間轉(zhuǎn)換了解仍不夠,這不利于設(shè)計(jì)人員對系統(tǒng)業(yè)務(wù)的進(jìn)一步理解,而狀態(tài)圖能從對象的動(dòng)態(tài)行為的角度去描述系統(tǒng)的業(yè)務(wù)活動(dòng)。因此,指派你運(yùn)用本節(jié)所學(xué)的狀態(tài)圖,完成如下任務(wù):
2.完成圖書業(yè)務(wù)模塊中還書用例的狀態(tài)圖。3.實(shí)驗(yàn)步驟
1.業(yè)務(wù)分析:對圖書館管理系統(tǒng)中的還書主要業(yè)務(wù)的描述和分析可知,還書業(yè)務(wù)的動(dòng)態(tài)行為是由:空閑(idle)、圖書查找(finding)、還書(reversion)、失敗(Failure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。
2.繪制狀態(tài)圖:請您根據(jù)分析運(yùn)用UML繪制還書用例的狀態(tài)圖。分析:
還書的狀態(tài)圖,還書的主要業(yè)務(wù)都是由管理員來完成,首先管理員必須先登錄系統(tǒng),并通過驗(yàn)證后,便可以進(jìn)行下一步的操作,查找該書的相關(guān)信息,如存在,則進(jìn)行還書操作,如不存在該信息,則給出提示信息;
繪圖步驟:
(1)在用例圖中的還書(revesion)用例,單擊右鍵,如圖3.15所示,新建一個(gè)狀態(tài)圖,命名為revesion狀態(tài)圖,圖3.16所示。
圖3.15
圖3.16(2)雙擊“receivesion”狀態(tài)圖,展開后,在左邊的工具欄上選取一個(gè)實(shí)心圓點(diǎn),此結(jié)點(diǎn)為開始結(jié)點(diǎn),圖3.17所示;當(dāng)還書的時(shí)候,操作者先要詢問系統(tǒng)的狀態(tài),如果系統(tǒng)忙,操 10 作者則必需等待,因此,得到系統(tǒng)的兩種狀態(tài),如圖3.19所示。
圖3.17
圖3.18
圖3.19(3)操作者在詢問系統(tǒng)和狀態(tài)后,得到的圖3.20所示兩種狀態(tài),如果系統(tǒng)忙,操作者必需要等待、結(jié)束,如圖3.21和圖3.22所示,重返步驟(1)。
圖3.20 12
圖3.21
圖3.22(4)如系統(tǒng)空閑,則進(jìn)行對還書的信息進(jìn)行查詢操作,圖3.23所示;查詢也有兩種結(jié)果,一是查詢得到該書的相關(guān)信息,二查詢不到該書的相關(guān)信息;則此時(shí)有兩種狀態(tài),需要 13 建立兩種狀態(tài),如圖3.25所示。
圖3.23
圖3.24(5)最后,操作者進(jìn)行了操作后,系統(tǒng)會(huì)給出操作的結(jié)果給操作者;操作成功或失敗,都會(huì)有提示信息給出。整個(gè)的還書的過程便完成;
實(shí)驗(yàn)5:時(shí)序圖
1.實(shí)驗(yàn)?zāi)康?/p>
1.理解時(shí)序(順序)圖的基本概念。
2.掌握在Rational Rose中繪制時(shí)序圖的操作方法。2.實(shí)驗(yàn)內(nèi)容
1.對圖書的相關(guān)操作完成時(shí)序圖; 3.實(shí)驗(yàn)步驟
1.分析:根據(jù)對圖書業(yè)務(wù)功能模塊中的時(shí)序圖操作進(jìn)行動(dòng)態(tài)建模的操作步驟和方法,請你對書籍管理模塊中的交互操作進(jìn)行動(dòng)態(tài)建模。該模塊中主要存在新增書籍、修改書籍信息和刪除書籍三種交互操作。
2.請根據(jù)教材中示例部分在Rational Rose中繪制上述的交互圖。繪圖步驟:
(1)在Rose軟件的左邊欄目上的Logicl View單擊右鍵,新建一個(gè)時(shí)序圖,時(shí)序圖是交互圖一種表示,可以用時(shí)序來表示,如圖4.1;在此,先單間介紹一下用法:圖中的直線箭頭是發(fā)送消息;虛線箭頭是返回消息;曲折線是對象自己給自己發(fā)送消息并調(diào)用。
(2)接下來的是添加類,系統(tǒng)中的類是其他的方法的邊界,在上面做好的類找到可以直接拖拉來圖中,見圖4.2 和圖4.3所示。
圖4.1
圖4.2
圖4.3(3)添加類后,便可以添加方法了,開始是必需是外面的實(shí)體向系統(tǒng)發(fā)送消息,如圖4.4所示,是管理員登錄時(shí)向系統(tǒng)發(fā)送的消息;
圖4.4(5)可以按上一步的方法來完成其他的方法,如viladate(驗(yàn)證),返回驗(yàn)證結(jié)果,當(dāng)用戶收到結(jié)果后,可以正常登錄后便能進(jìn)行增加圖書見圖4.5到圖4.9。最后得到的時(shí)序圖如圖4.10所示。
圖4.5 : administrator1: login : ActionFormSystem2: login3: validate
圖4.6 18 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result
圖4.7 : administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add
圖4.8
: administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add8: addbook
圖4.9
: administrator1: login : ActionFormSystem2: login3: validate4: result5: result6: add7: add8: addbook9: addruselt10: addresult
圖4.10 20
實(shí)驗(yàn)6:協(xié)作圖
1.實(shí)驗(yàn)?zāi)康?/p>
1.理解協(xié)作圖的基本概念。
2.掌握在Rational Rose中繪制協(xié)作圖的操作方法。2.實(shí)驗(yàn)內(nèi)容
1.通過對教學(xué)內(nèi)容的學(xué)習(xí),使我們完成了某圖書館的管理系統(tǒng)的需求分析,并從業(yè)務(wù)對象中抽象出了類。現(xiàn)在需要對前面所給出的用例進(jìn)行實(shí)現(xiàn),主要是對書籍管理功能畫協(xié)作圖。3.實(shí)驗(yàn)步驟
1.分析:根據(jù)上面的時(shí)序圖,我們也可以圖出協(xié)作圖。2.請根據(jù)上面時(shí)序圖部分在Rational Rose中繪制協(xié)作圖。繪圖步驟:
(1)完成了時(shí)序圖后,可以按F5鍵便得到增加圖書的協(xié)作圖,也可以畫出圖4.11這樣的協(xié)作圖。
1: login6: add : administrator5: result10: addresult : ActionForm3: validate8: addbook4: result9: addruselt2: login7: addSystem
圖4.11
(7)剩下的更新圖書信息和刪除圖書信息的交互圖在此不再一一詳細(xì)的介紹,其繪圖方法跟繪制增加圖書的方法一樣,最后得到見圖4.12 到圖4.15 21 : administrator : ActionForm1: login2: loginupdate : System3: validate4: result5: result6: updatebook7: updatebook8: updatebook9: updateresult10: updateresult
圖4.12
1: login6: updatebook : administrator5: result10: updateresult4: result9: updateresult2: login7: updatebook : ActionForm3: validate8: updatebookupdate : System
圖4.13
: administrator : ActionForm : System1: login2: login3: viladate4: viladateresult5: viladateresult6: delete7: delete8: delete9: deleteresult10: deleteresult
圖4.14
1: login6: delete : administrator5: viladateresult10: deleteresult : ActionForm3: viladate8: delete4: viladateresult9: deleteresult2: login7: delete : System
圖4.15
實(shí)驗(yàn)7,8:綜合設(shè)計(jì)實(shí)驗(yàn)
1.實(shí)驗(yàn)?zāi)康?/p>
1.掌握用Rational Rose進(jìn)行軟件建模。2.實(shí)驗(yàn)內(nèi)容
1.對一個(gè)系統(tǒng)進(jìn)行建模。3.實(shí)驗(yàn)步驟
1.對系統(tǒng)進(jìn)行完整的建模。生成其用例圖,狀態(tài)圖,活動(dòng)圖,時(shí)序圖以及協(xié)作圖。鼓勵(lì)創(chuàng)新。
2.可以選擇的系統(tǒng)有:本科生教務(wù)系統(tǒng),圖書管理系統(tǒng),編譯器,博客,即時(shí)通信軟件等等。24
六、教材
實(shí)驗(yàn)教材以本實(shí)驗(yàn)指導(dǎo)書為參考;
七、成績考核辦法
采用綜合實(shí)驗(yàn)與撰寫報(bào)告綜合評分
八、附A:完整UML建模過程例子
基于UML的面向?qū)ο蠓治雠c設(shè)計(jì)案例
介紹
本文以實(shí)例的方式,展示了如何使用UML進(jìn)行面向?qū)ο蟮姆治雠c設(shè)計(jì)。本文將假設(shè)讀者對UML、面向?qū)ο蟮阮I(lǐng)域的基本內(nèi)容已了然于胸,所以將不會(huì)過多闡述,而將重點(diǎn)放在應(yīng)用過程上。本文的目的是通過一個(gè)完整的實(shí)例,展現(xiàn)基于UML的OOA&D過程的一個(gè)簡化模式,幫助朋友們更好的認(rèn)識(shí)UML在OOA&D中起的作用。
經(jīng)常聽到有朋友抱怨,說學(xué)了UML不知該怎么用,或者畫了UML卻覺得沒什么作用。其實(shí),就UML本身來說,它只是一種交流工具,它作為一種標(biāo)準(zhǔn)化交流符號,在OOA&D過程中開發(fā)人員間甚至開發(fā)人員與客戶之間傳遞信息。另外,UML也可以看做是OO思想的一種表現(xiàn)形式,可以說“OO是神,而UML是型”。所以,想用好UML,扎實(shí)的OO思想基礎(chǔ)是必不可少的。然而,在UML應(yīng)用到開發(fā)過程中時(shí),還是有一定的模式可以遵循的。(注意,是模式而不是教條,我下面給出的流程只是一個(gè)啟發(fā)式過程,而不是說一定要遵循這個(gè)流程。)下面,我們通過一個(gè)CMS系統(tǒng)的分析設(shè)計(jì)實(shí)例,看看如何將UML應(yīng)用到實(shí)際的開發(fā)中。
1.從需求到業(yè)務(wù)用例圖
OOA&D的第一步,就是了解用戶需求,并將其轉(zhuǎn)換為業(yè)務(wù)用例圖。我們的CMS系統(tǒng)需求非常簡單,大致課做如下描述:這個(gè)系統(tǒng)主要用來發(fā)布新聞,管理員只需要一個(gè),登錄后可以在后臺(tái)發(fā)布新聞。任何人可以瀏覽新聞,瀏覽者可以注冊成為系統(tǒng)會(huì)員,注冊后可對新聞進(jìn)行評論。管理員在后臺(tái)可以對新聞、評論、注冊會(huì)員進(jìn)行管理,如修改、刪除等。
通過以上需求描述,我們畫出如下的業(yè)務(wù)用例圖:
這里要注意三點(diǎn):
1.業(yè)務(wù)用例是僅從系統(tǒng)業(yè)務(wù)角度關(guān)注的用例,而不是具體系統(tǒng)的用例。它描述的是“該實(shí)現(xiàn)什么業(yè)務(wù)”,而不是“系統(tǒng)該提供什么操作”。例如,在實(shí)際系統(tǒng)中,“登錄”肯定要作為一個(gè)用例,但是這是軟件系統(tǒng)中的操作,而用戶所關(guān)注的業(yè)務(wù)是不包含“登錄”的。2.業(yè)務(wù)用例僅包含客戶“感興趣”的內(nèi)容。3.業(yè)務(wù)用例所有的用例名應(yīng)該讓客戶能看懂,如果某個(gè)用例的名字客戶看不懂什么意思,它也許就不適合作為業(yè)務(wù)用例。
2.從業(yè)務(wù)用例圖到活動(dòng)圖
完成了業(yè)務(wù)用例圖后,我們要為每一個(gè)業(yè)務(wù)用例繪制一幅活動(dòng)圖。活動(dòng)圖描述了這個(gè)業(yè)務(wù)用例中,用戶可能會(huì)進(jìn)行的操作序列。活動(dòng)圖有個(gè)很重要的使命:從業(yè)務(wù)用例分析出系統(tǒng)用例。例如,下面是“新聞管理”的活動(dòng)圖:
可以看到,一個(gè)“新聞管理”這個(gè)業(yè)務(wù)用例,分解出N多系統(tǒng)操作。這里要特別注意這些操作,其中很多“活動(dòng)”都很可能是一個(gè)系統(tǒng)用例(當(dāng)然,不是每個(gè)都是)。例如,由這個(gè)活動(dòng)圖可以看出,系統(tǒng)中至少要包含以下備選系統(tǒng)用例:登錄、注銷登錄、查看新聞列表、修改新聞、刪除新聞。
這樣,將每個(gè)業(yè)務(wù)用例都繪制出相應(yīng)的活動(dòng)圖,再將其中的“活動(dòng)”整合,就得出所有備選系統(tǒng)用例。
3.從活動(dòng)圖到系統(tǒng)用例圖
找出所有的備選系統(tǒng)用例后,我們要對他們進(jìn)行合并和篩選。合并就是將相同的用例合并成一個(gè),篩選就是將不符合系統(tǒng)用例條件的備選用例去掉。
一個(gè)系統(tǒng)用例應(yīng)該是實(shí)際使用系統(tǒng)的用戶所進(jìn)行的一個(gè)操作,例如,“查看新聞列表”就不能算一個(gè)系統(tǒng)用例,因?yàn)樗皇悄诚到y(tǒng)用例的一個(gè)序列項(xiàng)。
最終我們得出的系統(tǒng)用例圖如下:
4.從系統(tǒng)用例圖到用例規(guī)約
得出系統(tǒng)用例圖后,我們應(yīng)該對每一個(gè)系統(tǒng)用例給出用例規(guī)約。關(guān)于用例規(guī)約,沒有一個(gè)通用的格式,大家可以按照習(xí)慣的格式進(jìn)行編寫。對用例規(guī)約唯一的要求就是“清晰易懂”。
下面給出“登錄”這個(gè)系統(tǒng)用例的一個(gè)規(guī)約:
5.繪制業(yè)務(wù)領(lǐng)域類圖
完成了上面幾步,下面應(yīng)該是繪制業(yè)務(wù)領(lǐng)域類圖了。所謂業(yè)務(wù)領(lǐng)域類圖要描述一下三點(diǎn):
1.系統(tǒng)中有哪些實(shí)體。2.這些實(shí)體能做什么操作。3.實(shí)體間的關(guān)系。
這里要特別強(qiáng)調(diào):這里的實(shí)體不是Actor,而是Actor使用系統(tǒng)時(shí)使用的所調(diào)用的實(shí)體,是處在系統(tǒng)邊界之內(nèi)的實(shí)體。例如,管理員就沒有作為一個(gè)實(shí)體出現(xiàn)在這里,因?yàn)楣芾韱T處在系統(tǒng)邊界之外,它所有的工作都可以通過調(diào)用這三個(gè)類的方法完成。并且,這里的“注冊會(huì)員”實(shí)體也不是剛才用例圖中注冊會(huì)員這個(gè)Actor,而是作為一個(gè)系統(tǒng)內(nèi)的業(yè)務(wù)實(shí)體,供Actor們使用的。例如,其中的注冊功能是給注冊會(huì)員這個(gè)Actor使用,而移除則是給管理員這個(gè)Actor使用的。
理解以上這段話非常重要,我經(jīng)常看到由于混淆了實(shí)體和Actor的關(guān)系而導(dǎo)致畫出的領(lǐng)域類圖不準(zhǔn)確或職責(zé)分配不準(zhǔn)確。
大家可能還注意到,我們這里沒有給出每個(gè)實(shí)體的屬性。其實(shí),在領(lǐng)域分析階段,實(shí)體的屬性并不重要,重要的是找出實(shí)體的操作。
6.繪制實(shí)現(xiàn)類圖
以上這幾步,就是分析的過程。而下面的步驟就是設(shè)計(jì)了。
設(shè)計(jì)沒有分析那么好描述,因?yàn)榉治鍪恰翱蛻裘妗保魂P(guān)心系統(tǒng)本身的功能和業(yè)務(wù),而不關(guān)心任何和計(jì)算機(jī)有關(guān)的東西。但是,設(shè)計(jì)和平臺(tái)、語言、開發(fā)模型等內(nèi)容關(guān)系緊密,因而很難找出一個(gè)一致的過程。但是,一般在設(shè)計(jì)過程中實(shí)現(xiàn)類圖是要繪制的。
實(shí)現(xiàn)類圖和領(lǐng)域類圖不一樣,它描述的是真正系統(tǒng)的靜態(tài)結(jié)構(gòu),是和最后的代碼完全一致的。因此,它和平臺(tái)關(guān)系密切,必須準(zhǔn)確給出系統(tǒng)中的實(shí)體類、控制類、界面類、接口等元素以及其中的關(guān)系。因此,實(shí)現(xiàn)類圖是很復(fù)雜的,而且是平臺(tái)技術(shù)有關(guān)的。所以,我在這里不可能給出一個(gè)準(zhǔn)確的實(shí)現(xiàn)類圖,不過為了描述,我還是給出一個(gè)簡化了的實(shí)現(xiàn)類圖,當(dāng)然,它是不準(zhǔn)確的,而只是從形式上給出實(shí)現(xiàn)類圖的樣子。
我們假設(shè)這個(gè)系統(tǒng)建構(gòu)于.NET 3.5平臺(tái)上,并且使用ASP.NET MVC作為表示層,整體使用三層架構(gòu)。那么,用戶模塊體系的實(shí)現(xiàn)類圖大體是這樣子(不準(zhǔn)確):
7.繪制序列圖
有了靜態(tài)結(jié)構(gòu),我們還要給出動(dòng)態(tài)結(jié)構(gòu),這樣,才能看清系統(tǒng)間的類是如何交互的,從而有效幫助程序員進(jìn)行編碼工作。
上圖給出的是用戶登錄的序列圖。首先注冊會(huì)員作為Actor,調(diào)用UserController的Login方法啟動(dòng)序列,然后序列按圖示步驟執(zhí)行。其中UserServices作為業(yè)務(wù)組件,首先調(diào)用數(shù)據(jù)訪問組件的GetByName確定用戶是否存在,如果存在,再調(diào)用GetByNameAndPassword確定輸入密碼是否是此用戶的密碼。從而完成業(yè)務(wù)功能。
要注意,序列圖在實(shí)際中是很多的,幾乎每個(gè)類方法都配有相應(yīng)的序列圖。
8.后面的步驟
在完成了上面的過程后,就可以進(jìn)行編碼、調(diào)試、測試等工作了。但這些已經(jīng)超出了本文討論的范圍。
總結(jié)
本文簡要給出了使用UML進(jìn)行OOA&D的過程。當(dāng)然,由于示例較小,而且本人水平有限,所以給出的相關(guān)內(nèi)容可能不是很準(zhǔn)確。而且軟件分析設(shè)計(jì)本來就不是一個(gè)固定模式的過程,隨著系統(tǒng)的不同整個(gè)過程會(huì)有變化。本文只是想起到一個(gè)拋磚引玉的作用,讓朋友們大致了解UML的使用流程。至于實(shí)際的分析設(shè)計(jì),還需要深入的學(xué)習(xí)和實(shí)踐的積累。