摘要:由于UML很好地實(shí)現(xiàn)了用戶、開發(fā)人員、設(shè)計(jì)人員及管理人員之間的信息傳遞,提高了相互間的協(xié)作能力,使軟件開發(fā)的工程化程度大大提高。基于UML對(duì)軟件進(jìn)行分析和建模,很好地體現(xiàn)了這一點(diǎn)。
關(guān)鍵詞:UML;面向?qū)ο蠼?;圖書管理系統(tǒng);高校教材管理系統(tǒng);學(xué)籍管理系統(tǒng)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2008)18-20000-00
Object-oriented UMLand its Application
ZHU Li-li
(Jinling institute of technology, Nanjing 211169,China)
Abstract: As UMLwell positioned to enable users, developers, designers and management of the transmission of information between the staff and enhance mutual collaboration, the development of software engineering degree has been greatly increased. UML-basedsoftware analysis and modeling, a good expression to this point.
Key words: UML; object-oriented modeling; library management system; college teaching materials management system; school management system.
1 引言
對(duì)于軟件,有多種建模方法。最普通的兩種方法是從算法的角度建模和從面向?qū)ο蟮慕嵌冉?。傳統(tǒng)的軟件開發(fā)是從算法的角度進(jìn)行建模。按照這種方法,所有的軟件都用過程或函數(shù)當(dāng)需求發(fā)生變化( 總會(huì)變化的)以及系統(tǒng)增長(zhǎng)( 總會(huì)增長(zhǎng)的)時(shí),用這種方法建造的系統(tǒng)就會(huì)變得很難維護(hù)。而現(xiàn)代的軟件開發(fā)采用面向?qū)ο蟮挠^點(diǎn)進(jìn)行建模。按照這種方法,所有軟件系統(tǒng)都用對(duì)象或類作為其主要構(gòu)造塊。面向?qū)ο蟮拈_發(fā)為使用構(gòu)件技術(shù)裝配系統(tǒng)提供了概念基礎(chǔ)。選擇以面向?qū)ο蟮姆绞接^察世界,會(huì)產(chǎn)生一系列的問題:什么是好的面向?qū)ο蟮捏w系結(jié)構(gòu)? 項(xiàng)目會(huì)創(chuàng)造出什么樣的制品?而對(duì)面向?qū)ο笙到y(tǒng)進(jìn)行可視化、詳述、構(gòu)造和文檔化正是統(tǒng)一建模語(yǔ)言(UML)的目的。
2 UML的發(fā)展
1997 年,OMG 組織發(fā)布了統(tǒng)一建模語(yǔ)言(Unified Modeling Language,UML)。UML的目標(biāo)之一就是為開發(fā)團(tuán)隊(duì)提供標(biāo)準(zhǔn)通用的設(shè)計(jì)語(yǔ)言來開發(fā)和構(gòu)建計(jì)算機(jī)應(yīng)用。UML提出了一套軟件專業(yè)人員期待多年的統(tǒng)一的標(biāo)準(zhǔn)建模符號(hào)。
UML成為“標(biāo)準(zhǔn)”建模語(yǔ)言的原因之一,在于它與程序設(shè)計(jì)語(yǔ)言無關(guān)。而且UML符號(hào)集只是一種語(yǔ)言而不是一種方法學(xué)。這點(diǎn)很重要,因?yàn)檎Z(yǔ)言與方法學(xué)不同,它可以在不做任何更改的情況下很容易地適應(yīng)任何單位的業(yè)務(wù)運(yùn)作方式。
3 UML的特點(diǎn)
作為一種標(biāo)準(zhǔn)的圖形化建模語(yǔ)言,UML具有以下特點(diǎn):
1)一種標(biāo)準(zhǔn)的建模語(yǔ)言,而不是一個(gè)標(biāo)準(zhǔn)的開發(fā)過程,它完全獨(dú)立于開發(fā)過程。
2)可視化,表示能力強(qiáng)。通過UML的模型圖能清晰地表示系統(tǒng)的邏輯模型和實(shí)現(xiàn)模型,可用于各種復(fù)雜系統(tǒng)的建模。
3)建模能力比其他面向?qū)ο蠓椒ǜ鼜?qiáng),不僅適合于一般系統(tǒng)的開發(fā),更擅長(zhǎng)于并行、分布式系統(tǒng)的建模。
4)提出了許多新的概念,如構(gòu)造型、職責(zé)、擴(kuò)展機(jī)制、模式等等。
5)易于掌握,便于使用。UML圖形結(jié)構(gòu)清晰,建模簡(jiǎn)潔明了,便于掌握和使用。所以UML的出現(xiàn)意味著開發(fā)方法統(tǒng)
一化、標(biāo)準(zhǔn)化的新發(fā)展,標(biāo)志著軟件自動(dòng)化進(jìn)程又向前邁進(jìn)了一步。
4 UML在OO建模中的應(yīng)用
UML用九種圖來描述所建立的模型, 分別是用例圖( UseCaseDiagram)、對(duì)象圖( ObjectDiagram)、類圖( Class Diagram)、順序圖( SequenceDiagram)、合作圖( CollaborationDiagram)、狀態(tài)圖( Statechart Diagram)、活動(dòng)圖(ActivityDiagram)、組件圖( Component Diagram)、配置圖(Deployment Diagram)。在建立模型后,和目標(biāo)語(yǔ)言建立連接,即有可能按照一定的規(guī)則生成目標(biāo)代碼框架,并從已有代碼出發(fā)更新模型,提高開發(fā)效率。
5 利用UML進(jìn)行面向?qū)ο蟮南到y(tǒng)分析設(shè)計(jì)
5.1 基于UML的圖書管理系統(tǒng)的開發(fā)過程
5.1.1 系統(tǒng)需求分析
需求分析是定義系統(tǒng)功能及用戶界面,使用戶知道系統(tǒng)的功能,開發(fā)人員知道系統(tǒng)的需求。它的主要工作是尋找系統(tǒng)的用例,建立系統(tǒng)需求模型,主要成果是用例圖和系統(tǒng)的參與者。
圖書館管理系統(tǒng)的功能包括以下幾個(gè)方面:
(1)借閱者可以通過網(wǎng)絡(luò)查詢書籍信息和預(yù)訂書籍。
(2)借閱者能夠借閱書籍和還書。
(3)圖書管理員能夠處理借閱者的借閱和還書請(qǐng)求。
(4)系統(tǒng)管理員可以對(duì)系統(tǒng)的數(shù)據(jù)進(jìn)行維護(hù),如:增加、刪除和更新書目,增加、刪除和更新借閱者賬戶,增加和刪除書籍信息。
可見,系統(tǒng)的參與者主要有三類:借閱者、圖書管理員、圖書管理系統(tǒng)維護(hù)者。如借閱者請(qǐng)求服務(wù)的用例圖包括登錄系統(tǒng)(Logon sys2tem) 、查詢自己的借閱信息(Query Info) 、查詢書籍信息( Search for book) 、預(yù)訂書籍(Reserve book) 、借閱書籍(Bor2row book)和歸還書籍(Return book) 。
5.1.2 系統(tǒng)設(shè)計(jì)
第一步建立靜態(tài)模型
用面向?qū)ο蟮乃枷朊枋龇椒?能夠把復(fù)雜的系統(tǒng)簡(jiǎn)單化、直觀化,而且易于用面向?qū)ο笳Z(yǔ)言編程實(shí)現(xiàn),還方便日后對(duì)系統(tǒng)的維護(hù)工作。用面向?qū)ο蟮姆椒ㄌ幚韺?shí)際問題時(shí),需要建立面向?qū)ο蟮哪P?。體現(xiàn)在靜態(tài)建模過程中很重要的就是類圖。類圖的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)最核心的部分,在圖書管理系統(tǒng)中用到的主要類有7個(gè):借閱者類(Borrower) 、圖書管理員類(Librarian) 、系統(tǒng)管理員類(Administrator) 、書目信息類(Title) 、書類( Item) 、書的借閱信息類(Loan)和書的預(yù)訂信息類(Reservation) 。各類之間有著不同的依賴關(guān)系,如每條書目記錄都有多本書存在, Title與Item之間存在著一對(duì)多的關(guān)系;每條書目Title可以沒有或有多個(gè)預(yù)訂記錄Reservation;每個(gè)借閱者Borrower可以有多條借閱書籍信息,也可有多條預(yù)訂信息等。
第二步建立動(dòng)態(tài)模型
UML提供的動(dòng)態(tài)建模機(jī)制包括:狀態(tài)圖、活動(dòng)圖、時(shí)序圖、協(xié)作圖。狀態(tài)圖用于對(duì)系統(tǒng)中的某些對(duì)象,比如類、用例和系統(tǒng)的行為建模。活動(dòng)圖被設(shè)計(jì)用于簡(jiǎn)化描述一個(gè)過程或者操作的工作步驟,即用以描述用例和對(duì)象內(nèi)部的工作過程,它展現(xiàn)出對(duì)象執(zhí)行某種行為時(shí)或在業(yè)務(wù)過程中所要經(jīng)歷的步驟和判斷點(diǎn)。它是狀態(tài)圖的一種擴(kuò)展形式。在圖書館管理系統(tǒng)中,有明確活動(dòng)的類有:借閱者、圖書管理員和系統(tǒng)管理員??梢栽谙到y(tǒng)中為這3個(gè)類建立活動(dòng)圖。如圖書管理員可以處理借書和還書操作。當(dāng)用戶借書時(shí),圖書管理員要查看借閱者憑證上顯示的可借書的書目是否滿足要求;當(dāng)用戶還書時(shí),圖書管理員要檢查所借書籍是否已經(jīng)超過期限,如果超期,則收取一定的罰金,其具體活動(dòng)如圖1所示。在UML中,用例的實(shí)現(xiàn)用交互圖來指定和說明。交互圖通過顯示對(duì)象之間的關(guān)系和對(duì)象之間處理的消息來對(duì)系統(tǒng)的動(dòng)態(tài)特性建模。有兩種交互圖:時(shí)序圖和協(xié)作圖。時(shí)序圖的功能是按時(shí)間順序描述系統(tǒng)元素間的交互,合作圖的功能按照時(shí)間和空間順序描述系統(tǒng)元素間的交互和它們之間的關(guān)系。如:圖書管理員處理書籍借閱時(shí),先查找書目,再根據(jù)書目從數(shù)據(jù)庫(kù)中查找所要書籍,然后驗(yàn)證借閱者身份和借閱者信息,借書后修改借閱信息。
圖1 圖書管理員的活動(dòng)圖
5.1.3 系統(tǒng)實(shí)現(xiàn)
建立了系統(tǒng)可視化模型后,就可以利用Rose正向工程生成系統(tǒng)的初步框架代碼。編程前選擇合適的編程環(huán)境、設(shè)計(jì)語(yǔ)言及數(shù)據(jù)庫(kù)等,如采用JAVA語(yǔ)言和ORACLE數(shù)據(jù)庫(kù)。該階段同時(shí)根據(jù)系統(tǒng)數(shù)據(jù)庫(kù)的類關(guān)聯(lián)圖設(shè)計(jì)所有的數(shù)據(jù)庫(kù)表、視圖、存儲(chǔ)過程。最后完成系統(tǒng)應(yīng)用程序代碼的編寫。UML作為一種建模語(yǔ)言,應(yīng)用于各種系統(tǒng)的設(shè)計(jì)與分析,改變了傳統(tǒng)的軟件設(shè)計(jì)思想,降低了系統(tǒng)設(shè)計(jì)的盲目性,也更有利于系統(tǒng)的擴(kuò)展與測(cè)試。由于UML很好地實(shí)現(xiàn)了用戶、開發(fā)人員、分析人員、測(cè)試人員以及管理人員之間的信息傳遞,提高了相互間的協(xié)作能力,使軟件開發(fā)的工程化程度大大提高?;赨ML對(duì)圖書管理系統(tǒng)的分析和建模很好地體現(xiàn)了這一點(diǎn)。隨著UML的進(jìn)一步發(fā)展,軟件的開發(fā)設(shè)計(jì)必將更加高質(zhì)高效。
6 結(jié)束語(yǔ)
UML統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語(yǔ)及圖形符號(hào),為人們建立了便于交流的共同語(yǔ)言,適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具。UML能夠?qū)φ麄€(gè)開發(fā)過程提供靈活、一致、易讀的表達(dá),表現(xiàn)出其強(qiáng)大的能力,它融合了各種面向?qū)ο蟮慕UZ(yǔ)言的優(yōu)點(diǎn),具有非常廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] 尤克濱.UML應(yīng)用建模實(shí)踐過程[M].北京:機(jī)械工業(yè)出版社,2003.
[2] 劉超,張莉.可視化面向?qū)ο蠼<夹g(shù)[M].北京:北京航空航天大學(xué)出版社,1999
[3] 宋波. JDeveloperWeb 應(yīng)用與開發(fā)[M] 北京:清華大學(xué)出版社, 2003.
[4] 張龍祥.UML與系統(tǒng)分析設(shè)計(jì)[M] 北京:人民郵電出版社, 2001.
[5] 陳健.UML技術(shù)應(yīng)用探討[J] 計(jì)算機(jī)工程, 2004.
[6] 蔡敏.UML基礎(chǔ)與Rose建模教程[M] 北京:人民郵電出版社, 2006.
收稿日期:2008-04-17
作者簡(jiǎn)介:朱麗麗(1980-),女,江蘇省淮安人,助教,研士在讀,研究方向:模式識(shí)別與數(shù)據(jù)挖掘。