摘要:用例圖、類圖及對象順序圖的實例介紹了UML建模技術,并運用B/S架構及ASP技術討論了網上選課系統的實現。
關鍵詞:UML B/S架構 ASP技術
中圖分類號:G434 文獻標識碼:A 文章編號:1002-2422(2008)03-0049-02
1 UML的簡介
UML(Unified Modeling Language)是編寫軟件藍圖的標準語言。對于軟件系統,UML為使用者提供了一個便于使用、表達豐富的可視化的建模語言,使之能夠開發有意義的模型。它還提供了擴展和特化機制來擴展其核心概念:獨立于詳細編程語言及開發過程,它為理解建模語言提供了規范化的基礎。
2 網絡選課系統分析與設計
2.1系統分析
2.1.1功能分析
在這個層面必須定義系統功能及用戶界面,使用戶知道系統的功能,開發人員知道系統的需求。其主要任務是尋找系統用例,建立系統需求模型。通過分析,選課系統必須提供以下功能:
(1)所有系統用戶在進入系統前都必須先注冊,驗證用戶名及密碼的正確性,以確保系統的安全;
(2)系統管理員根據學期教學安排,錄入課程信息和選課規則,同時對系統信息進行維護。另外,管理員必須對使用本系統的用戶進行權限設置。學生注冊系統成功后,可選擇最多不超過三門的課程,并允許學生查詢和取消選課。教師可以查詢及打印所開課程的學生選課情況。
2.1.2識別參與者
角色識別的任務是找出所有可能與系統發生交互行為的外部實體、對象、系統。其行為不受系統控制,但是可以提供輸入給系統。選課系統涉及的角色有系統管理員、學生和教師,是用例圖中的參與者,具有相同的主要特征,可抽象出基本參與者。
2.1.3識別用例
用例是獲取系統功能需求的一種技術,是從參與者的角度來描述系統行為。一個用例就是參與者與系統的一次交互,表達了系統的功能和所提供的服務。在識別出參與者的基礎上,可確定選課系統的用例如下:
(1)與學生相關用例包括:查詢、選課、取消所選課程;
(2)與教師相關的用例包括:查詢學生選課情況;
(3)與系統管理員相關的用例包括:用戶信息管理、安全權限管理、根據規則錄入、維護更新課程信息與系統信息,并為系統用戶提供打印功能。系統的用例模型如圖1所示,包含了最基本的用例模型,是系統的高層抽象。

2.2系統設計
系統設計是在分析系統需求的基礎上,根據結果,發現對象類及其聯系,繼而構建系統的靜態結構模型和動態行為模型,使設計的系統完成需求階段確定的任務,實現系統功能。
2.2.1構建靜態結構模型
類、對象及它們之間的關聯是面向對象技術中的最基本元素,而類圖技術則是00方法的核心。對于選課系統,給出了總體類圖來說明系統的數據結構。
其中:User是一個基本類,包括UserID、PassWord、Name、Sex、Birthday和Department五個屬性,管理員、學生、教師是泛化,繼承了基本類;SelectWindow、OueryWindow、PrintWindow、AddWindow、ModifyWindow和DeleteWindow是控制對象類,都依賴數據實體基類DBCommon,該基類包含屬性DBConnectionString,通過該屬性可以獲得數據庫連接字符串,而方法GetDataView實現在數據庫中執行查詢獲得一個DataView;DBCommon的屬性和方法被所有的數據訪問類繼承,可直接使用。另外,RoleID類主要用于管理用戶的權限;界面類過程視圖和菜單選擇視圖之間是聚集關系。
2.2.2構建動態行為模型
在面向對象技術中,對象間交互是通過對象消息的傳遞來實現的,這些消息可以是簡單消息、同步消息和異步消息,本系統給出了學生選課的順序圖。強調對象之間消息發送的順序,顯示了各對象間的交互關系,這些對象通常是命名或匿名的類的實例。
當學生登錄系統時,輸入學號和口令進行身份驗證。若學生發出查詢課程消息,系統服務列表接口響應請求,按照查詢條件從數據庫中找出該生本學期的課程信息,并反饋查詢成功或失敗的信息給“學生”;若學生發出選課請求消息,課程列表接口對象響應該消息,根據學生要求進行增加課程的操作;當學生完成課程選擇發出提交消息,課程列表接口響應并發出存儲消息,課程表對象響應消息,對數據庫進行操作,把結果存入課程數據庫;當學生發出“退出”系統請求消息,則注冊表單接口響應請求關閉系統。
3 網絡選課系統的實現
系統的分析和設計模型是在Trufun Kant 2007環境中應用基于RUP的UML建模方法創建的,清晰地表達了在不同的開發階段的模型。系統的實現采用B6(Browser/Server)三層模式,采用ASP動態網頁技術及SQL數據庫進行系統開發。其中將實現人機界面的所有表單和組件放在表示層,將所有業務規則和邏輯的實現封裝在負責業務邏輯組件中,將所有和數據庫的交互封裝在數據訪問組件中。
4 結束語
以UML作為建模工具,將其應用于網上選課系統的開發,降低了系統的復雜性,優化了系統各階段的建模過程,提高了軟件開發的質量和效率。