摘要:UML統一建模語言,是軟件分析設計中的標準語言,可用于軟件分析、設計和實現的全過程。該文試圖通過學生信息管理系統開發實例的設計,經過用例建模、靜態建模、動態建模、代碼設計、界面設計等步驟,介紹如何應用UML的方法設計和開發一個軟件模型,從而提升軟件設計人員和客戶之間交流水平,加快軟件開發進程,提高軟件開發質量。
關鍵詞:UML;學生信息管理系統;用例建模;靜態建模;動態建模
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)29-0402-04
Modeling with UML to Construct Student Information Management System
WEI Pei-Li1,WEI Pei-Xian2
(1.Engineering and Science College of Huaqiao University, Quanzhou 362000,China;2.Computer Major of Quanzhou Normal University, Quanzhou 362000,China)
Abstract: The UML unified modeling language is a standard language in the software analysis design, and may be used in the software analysis, design and all of the phase of realization. The article chooses the student information manage development example, introduced how to apply UML to design and develop a software model. It can solve the difficulty between the software designer and the users, speed up the software design and raise the development quality.
Key words: UML; student information manage system; use case modeling; static modeling; dynamic modeling
1 引言
隨著社會經濟的發展和人民生活水平的提高,信息產業的相關技術得到了突飛猛進的提升。而計算機軟件作為信息產業技術的一個重要方面,也應不斷更新,從而符合產業發展的需求。這就要求軟件設計人員在軟件開發過程中能夠更加人性化、友好化,從而提高軟件設計人員和客戶之間交流水平,加快軟件開發進程,提高軟件開發質量。
1.1 UML的簡介
Unified Model Language(簡稱UML),是一種面向對象的可視化的標準建模語言。運用UML中的圖形符號可以表示系統中的對象及其之間的關系,從不同的角度描述待開發的系統,并進行相應的語法檢查和一致性檢查,保證系統模型的完整性。同時,在軟件系統的分析和設計中,UML的合理運用能對項目開發、團隊的合作以及與用戶的交流起到重要的作用。首先,UML用圖形表示完整的系統,在實際應用時要反復審查和修改。雖然在分析和設計時會耗費一定的時間,但會提高編碼的準確性和效率,從而有利于項目的整體開發。其次,目前,諸如像Rational Rose這樣的建模工具,可以將UML模型直接轉換為高級語言代碼,從而節約了軟件開發的時間、減少了軟件代碼的錯誤率。最后,UML作為面向對象的分析和設計技術具有與人的思維方式一致、穩定性好、可重用性好、可維護性好等優點,能大大提高系統開發的效率和質量。
1.2 UML產生背景
早期的面向對象的建模語言具有如下不足之處:
首先,面對眾多的建模語言,用戶由于沒有能力區別不同語言之間的差別,因此很難找到一種比較適合其應用特點的語言;其次,眾多的建模語言實際上各有千秋;第三,雖然不同的建模語言大多類同,但仍存在某些細微的差別,極大地妨礙了用戶之間的交流。因此在客觀上,極有必要在精心比較不同的建模語言優缺點及總結面向對象技術應用實踐的基礎上,組織聯合設計小組,根據應用需求,取其精華,去其糟粕,求同存異,從而觸發了UML(統一建模語言)的產生。
1.3 UML的建模機制
UML是一種面向對象的可視化的標準建模語言,以圖形符號表示系統中的對象及其之間的關系,從不同的角度描述待開發的系統。UML提供了5類、9種模型圖:第一類,用例圖:從用戶角度描述系統功能,指出各功能操作者,為需求分析提供標準化手段;第二類,靜態圖:描述系統靜態結構,類或對角的屬性、操作和相互的關系,是建立動態模型的基礎,主要有類圖、對象圖、包圖;第三類,行為圖:描述系統動態模型和組成對象間交互關系,有狀態圖、活動圖;第四類,交互圖:描述對象間交互關系,有順序圖、合作圖;第五類,實現圖:包括構件圖和配置圖。
UML的建模過程主要有以下幾個步驟:
1) 建立需求模型。即從功能需求出發建立用例模型;
2) 建立對象模型,包括靜態模型和動態模型。靜態模型使用類圖、對象圖、包圖描述系統的對象和對象之間的靜態關系,得到系統的對象和對象之間的靜態關系,得到系統的整體結構。動態模型使用狀態圖、活動圖、順序圖、合作圖等描述系統的對象和對象之間的動態關系,得到系統的運行機制。
3) 建立系統實現模型,使用配置圖定義系統的軟硬件結構及通訊機制,表示軟硬件系統之間的合作關系;使用構件圖描述系統由哪些構件組成;
4) 檢查模型之間的一致性,通常這個過程需要反復多次才能完整地描述系統;
5) 在構件圖的基礎上生成開發語言的代碼框架。
1.4 UML的應用領域
UML的目標是以面向對象圖的方式來描述任何類型的系統,具有很寬的應用領域。
1) 建立軟件系統的模型,但它同樣可以用于描述非軟件領域的系統,如機械系統、企業機構或業務過程,以及處理復雜數據的信息系統、具有實時要求的工業系統或工業過程等??傊?,UML是一個通用的標準建模語言,可以對任何具有靜態結構和動態行為的系統進行建模。
2) UML適用于系統開發過程中從需求規格描述到系統完成后測試的不同階段。
① 在需求分析階段,可以用用例來捕獲用戶需求。通過用例建模,描述對系統感興趣的外部角色及其對系統(用例)的功能要求。
② 分析階段主要關心問題域中的主要概念(如抽象、類和對象等)和機制,需要識別這些類以及它們相互間的關系,并用UML類圖來描述。為實現用例,類之間需要協作,這可以用UML動態模型來描述。
③ 在分析階段,只對問題域的對象(現實世界的概念)建模,而不考慮定義軟件系統中技術細節的類(如處理用戶接口、數據庫、通訊和并行性等問題的類)。這些技術細節將在設計階段引入,因此設計階段為構造階段提供更詳細的規格說明。
④ 編程(構造)是一個獨立的階段,其任務是用面向對象編程語言將來自設計階段的類轉換成實際的代碼。在用UML建立分析和設計模型時,應盡量避免考慮把模型轉換成某種特定的編程語言。因為在早期階段,模型僅僅是理解和分析系統結構的工具,過早考慮編碼問題十分不利于建立簡單正確的模型。
⑤ UML模型還可作為測試階段的依據。系統通常需要經過單元測試、集成測試、系統測試和驗收測試。不同的測試小組使用不同的UML圖作為測試依據:單元測試使用類圖和類規格說明;集成測試使用部件圖和合作圖;系統測試使用用例圖來驗證系統的行為;驗收測試由用戶進行,以驗證系統測試的結果是否滿足在分析階段確定的需求。
總之,標準建模語言UML適用于以面向對象技術來描述任何類型的系統,而且適用于系統開發的不同階段,從需求規格描述直至系統完成后的測試和維護。
1.5 常用的UML建模工具
自從1997年正式發布UML以后,大量商用UML建模CASE工具不斷涌現。CASE 是英文 Computer Aided Software Engineering的縮寫,主要是指利用一整套的方法和工具對系統規則進行建模,并自動生成合適的程序。目前常用的CASE工具主要有:Sparx Systems的Enterprise Architect(EA)和IBM Rational的Rational Rose。大體上,EA和Rose在UML建模能力上有相似的功能,但Rose比EA支持更多的語言,如C#、VB等。基于軟件的實用性考慮,本文在系統設計過程中將選用Rational Rose 軟件。
2 系統分析
2.1 系統功能簡述
系科綜合管理系統是為了適應現代化學校管理的需要,加快推進我校數字化校園建設、充分利用校園網,利用網絡、多媒體等計算機應用技術和手段,提高辦公效率、改善質量的高效管理信息系統。
學生信息管理系統是系科綜合管理信息系統的重要組成部分。主要用于對學生的基本信息如入學登記、課程、班級、交費等問題進行管理。此系統用戶主要涉及主管學生部門、主管教務部門以上層領導。對于主管學生部門的工作人員來講,需要掌握每個學生的基本情況,新生入學時需要做好學生的入學登記、了解學生的學費交繳情況并登記學生的班級信息,即要掌握學生及班級的所有信息。對于主管教務的工作人員來講,需要掌握所有專業的公共基礎課程、學生的專業課程,并做好學生的所有課程的成績登記。
2.2 學生信息管理系統的結構
需求分析是定義系統功能及用戶界面,使用戶知道系統功能,開發人員知道系統的需求。它的主要工作是尋找系統的用例,建立系統需求模型,主要成果是用例圖和系統的參與者。下面首先分析一個系統的主要功能。
1) 管理員通過系統管理界面進入,建立學生基本檔案、學生交費檔案、學生選課檔案等,并將所有信息保存在數據庫中,同時管理員還能夠對以上信息進行添加、刪除等基本操作。
2) 學生可以通過使用該系統查詢課程、修改用戶密碼等。
2.2.1 學生信息管理系統的總體結構
為了直觀描述學生信息管理系統的各項功能,我們用圖1來大體講述一下該系統的總體架構。
2.2.2 學生信息管理系統各模塊的功能描述
在上圖學生信息管理系統總體架構的基礎上,為使學生信息管理系統的各模塊更為清晰,我們接下來分別描述了學生信息管理系統的各模塊功能。
1) 系統管理模塊
系統管理模塊用于對系統的用戶的基本信息進行管理,如設定系統使用權限、進行新用戶注冊、修改用戶密碼等。它是其它所有模塊運行與否的前提條件。
2) 班級管理模塊
班級管理模塊主要用于對班級的基本信息(名稱、教室、班主任等)進行管理,包括添加班級信息、刪除班級信息、修改班級信息、查詢班級信息等。
3) 檔案管理模塊
檔案管理模塊主要用于對學生的檔案信息即入學檔案(姓名、班級、專業、家庭住址、班主任等)進行管理,包括添加學生入學登記信息、刪除學生入學登記信息、修改學生信息、查詢學生信息等。
4) 學生交費管理模塊
學生交費管理模塊是用于對學生所在班級的基本學費、學生應繳學費、學生已繳學費等基本信息進行管理,包括瀏覽和查詢學生以及班級交費信息、添加學生交費信息等。
5) 課程管理模塊
課程管理模塊主要用于對學生所在班級的公共課程、學生的自選課程等進行管理,包括添加班級基本課程信息、添加學生選修課程信息、刪除班級基本課程信息、刪除學生選修課程信息等。
6) 成績管理模塊
成績管理模塊主要用于對學生所在班級的公共課程、學生的自選課程等科目成績進行管理,包括添加學生成績信息、刪除學生成績信息、查詢學生成績信息、瀏覽學生成績信息等。
2.3 學生信息管理系統的基于UML的詳細設計
下面利用Rational Rose工具,通過對學生信息管理系統的動態模型、靜態模型(包括類圖、序列圖、協作圖)的分析來進行學生信息管理系統的UML建模。
2.3.1 學生信息管理系統的用例建模
學生信息管理系統的用例主要包括對學生基本信息、班級基本信息、學生交費信息、課程信息、成績信息進行操作的功能。其基本行為者為:管理員、教師、學生,如下圖所示。對學生信息管理系統的主體類圖進行解釋如下:在系統中管理員可以對課程信息、班級信息、學生檔案信息、成績信息、交費信息等進行管理;學生可查詢相關基本信息如:個人檔案、成績等;教師可以對所教課程的基本信息進行查詢。
1 ) 學生信息管理系統的主體用例圖(如圖2)
問題描述:管理員(Administrator)可以對課程、學生成績、學生檔案信息、學生交費信息以及系統進行管理。而一般用戶(User)包括教師、學生、課程管理員、學生成績管理員、學生檔案信息管理員、學生交費信息管理員等六個部分,其他類是User類的泛化,繼承了一般用戶類(User)。
2) 班級管理模塊的用例圖(如圖3)
問題描述:班級管理員能夠瀏覽班級信息、查詢班級信息、更新班級信息、打印班級信息。班級管理員對班級信息的更新包括添加、刪除、修改。
2.3.2 學生信息管理系統的序列圖
序列圖用于描述按時間順序排列的對象之間的交互模式,它按照參與交互的對象所具有的基本屬性和它們相互發送的消息來顯示這些對象。當收到消息時,接收對象立即開始執行活動,即對象被激活了。通過在對象生命線上顯示一個細長矩形框來表示激活。消息可以用消息名及參數來標識。消息也可帶有順序號。在時序圖的左邊可以有說明信息,用于說明消息發送的時刻、描述動作的執行情況以及約束信息等。下面是對學生信息管理系統的序列圖的描述。
1) 添加用戶序列圖(如圖4)
問題描述:管理員登錄系統主窗體;單擊“系統管理”菜單及“添加用戶”選項;加載“添加用戶”主窗體;輸入用戶基本信息;交信息提交到數據庫;更新數據庫。
2) 檔案添加序列圖(如圖5)
問題描述:用戶登錄系統主窗體;單擊“檔案管理”菜單及“添加檔案”選項;加載“添加檔案”主窗體;輸入學生基本信息;將信息提交到數據庫;更新數據庫;返回窗體。
2.3.3 學生信息管理系統的協作圖
協作圖用于描述相互合作的對象間的交互關系和鏈接關系。雖然時序圖和協作圖都用來描述對象間的交互關系,但側重點不一樣。時序圖著重體現交互的時間順序,協作圖則著重體現交互對象間的靜態鏈接關系。協作圖中對象的外觀與時序圖中的一樣。對象間的鏈接關系類似于類圖中的聯系。通過在對象間的連接上標志帶有消息串的消息來表達對象間的消息傳遞。Rose工具具有能夠直接將設計好的序列圖轉化為協作圖的功能,其具體實施步驟為:雙擊待轉化的序列圖,利用菜單欄中的Browse菜單,接下來選擇Create Collaboration Diagram選項。轉化部分結果如下:
1) 用戶登錄協作圖 (如圖6)。
2) 添加用戶協作圖(如圖7)。
2.3.4 學生信息管理系統的類的關聯圖
類圖描述類和類之間的靜態關系,在系統的整個生命周期都是有效的。與數據模型不同,它不僅顯示了信息的結構,同時還描述了系統的行為。類圖是定義其它圖的基礎。在類圖的基礎上,狀態圖、協作圖等進一步描述了系統其他方面的特性。通過分析類與類之間的關系,我們知道在上述設計的學生管理系統的功能描述中涉及到管理員類(Administrator)、學生類(Student)和教師類(Teacher),由于上述三個類具有相近的屬性,因此建立一個基本類(User),包括Name、Password、Sex、Department、Username五個屬性,管理員類、學生類、教師類是基本類的泛化,繼承了基本類。除此之外還應設計一些控制對象,例如登錄(FrmLogin)、添加用戶(FrmAddUser)等。具體關聯如圖8。
3 結束語
結合學生信息管理系統的功能,通過Rational Rose 軟件的使用,從用例圖、序列圖、協作圖和關聯圖的抽象描述構建出滿足軟件功能要求的軟件模型,從而提升了軟件設計人員和客戶之間交流水平,加快了軟件開發進程,提高了軟件開發質量。
參考文獻:
[1] 范曉平.UML建模實例詳解[M].北京:清華大學出版社,2005.
[2] KurBitttner.用例建模[M].姜昊,譯.北京:清華大學出版社,2003.
[3] 張海藩.軟件工程導論[M].5版.北京:清華大學出版社,2008.
[4] Fontoura M,Pree W, Rumpe B. The UML Profile for Framework Architectures[M].Boston:Addison-Wesley Publishing Co,2001.
[5] Dennis A, Wixom B H, Tegarden D. Systems Analysis and Design with UML Version 2.0[M].Wiley,2004.
[6] 王少鋒.面向對象技術UML教程[M].北京:清華出版社,2004.