李 巖
(天津開發(fā)區(qū)職業(yè)技術(shù)學(xué)院,天津 300457)
統(tǒng)一建模語言UML(Unified Modeling Language)是由3位世界著名的面向?qū)ο蠹夹g(shù)專家Gray Booch、Jim Rumbaugh、Ivar Jacobson發(fā)起,在Booch表示方法、OOSE方法和OMT方法的基礎(chǔ)上,廣泛征求意見,集眾家之長,反復(fù)修改后提出的通用的圖形化標(biāo)準(zhǔn)建模語言。UML通過3類圖建立系統(tǒng)模型:用例圖、靜態(tài)結(jié)構(gòu)圖(對象類圖、對象圖、組件圖、配置圖)和動態(tài)行為圖(時序圖、協(xié)同圖、狀態(tài)圖、活動圖),通過這3種圖從不同抽象角度使系統(tǒng)可視化。
學(xué)生成績管理系統(tǒng)在結(jié)構(gòu)上采用B/S(Browser/Server)模式,學(xué)生的信息由任課教師在規(guī)定的權(quán)限下在各自的工作站上錄入,統(tǒng)一保存在系統(tǒng)服務(wù)器上,實現(xiàn)集中管理。此外,學(xué)生、任課教師及教務(wù)人員等系統(tǒng)用戶可在校園網(wǎng)內(nèi)對成績進(jìn)行查詢。
可從EXCEL格式的新生錄取名單文件中,一次性地導(dǎo)入所有學(xué)生的基本信息。
教務(wù)人員可以對學(xué)生基本信息進(jìn)行增加、刪除、修改、查詢等基本操作。學(xué)生本人可以對自己的信息進(jìn)行修改和查詢。
任課教師在學(xué)期期末,以教學(xué)班級為單位,錄入對應(yīng)課程對應(yīng)學(xué)生的平時成績和期末成績。
系統(tǒng)根據(jù)教師設(shè)定的平時成績與期末成績的比例關(guān)系,自動計算出學(xué)科總成績。
學(xué)生可以根據(jù)學(xué)號和課程名查詢自己該門課程或全部以修課程的考試成績;教師可以查詢本學(xué)期任教課程的所有學(xué)生或某位學(xué)生的成績;教務(wù)人員可以查詢本校所有學(xué)生的全部課程成績。
教務(wù)人員及學(xué)生本人可以生成學(xué)生成績報表,顯示學(xué)生各個學(xué)期已修課程及成績。
教師可以生成本學(xué)期任教課程對應(yīng)班級的成績單,教務(wù)人員可以生成并查看全校所有課程的成績單。
教師可以生成本學(xué)期任教課程對應(yīng)班級的成績分析報告單,教務(wù)人員可以生成全部課程的成績分析報告單。
用例圖是描述系統(tǒng)用戶與系統(tǒng)功能之間關(guān)系的模型圖,圖中一個用例就是系統(tǒng)中的一個功能模塊。建立用例模型的一般方法為,根據(jù)用戶需求描述確定角色、創(chuàng)建用例、創(chuàng)建角色——用例關(guān)系圖。
角色是與系統(tǒng)有交互作用的人或事務(wù),通常代表著一個系統(tǒng)的使用者,或者需要與系統(tǒng)打交道的人或事物。根據(jù)系統(tǒng)功能需求的描述,本系統(tǒng)需要創(chuàng)建學(xué)生、任課教師、教務(wù)人員3個角色。
用例是系統(tǒng)為用戶提供的功能模塊。根據(jù)系統(tǒng)功能需求的描述,可以得到新生信息批量導(dǎo)入、學(xué)生信息的維護、成績錄入、自動生成學(xué)科總成績、成績查詢、學(xué)生成績報表、生成課程成績單、成績分析報告單8個用例。
根據(jù)需求描述學(xué)生成績管理系統(tǒng),用例關(guān)系圖如圖1所示。
圖1 學(xué)生成績管理系統(tǒng)用例圖
在建立好系統(tǒng)用例模型的基礎(chǔ)上,需要分析和設(shè)計系統(tǒng)的動態(tài)結(jié)構(gòu)以及建立相應(yīng)的動態(tài)模型。UML主要借助于交互圖(時序圖、協(xié)作圖)和行為圖(狀態(tài)圖、活動圖)對其進(jìn)行描述。在這里,重點描述系統(tǒng)中的活動圖與時序圖的創(chuàng)建過程。
活動圖展示了系統(tǒng)中的功能流,可以在業(yè)務(wù)模型中顯示業(yè)務(wù)工作流,可以在收集需求時顯示一個使用案例的事件流,一般用于需求采集階段,細(xì)化用戶對功能需求的描述,以明確用戶需求的詳細(xì)內(nèi)容。
根據(jù)用例模型和用戶需求創(chuàng)建的學(xué)生信息批量導(dǎo)入模塊和學(xué)生成績查詢部分活動圖,如圖2所示。此外,教務(wù)人員和學(xué)生對應(yīng)學(xué)生成績報表生成的活動圖,如圖3所示。
圖2 學(xué)生信息批量導(dǎo)入模塊和成績查詢活動圖
圖3 學(xué)生成績報表活動圖
時序圖表示對象之間傳遞信息的時間順序。時序圖可以用來說明一個事務(wù)的歷史過程,它用來表示用例中行為者的時間順序。在繪制時需要結(jié)合對應(yīng)活動圖及需求描述相關(guān)內(nèi)容。
根據(jù)圖2和圖3創(chuàng)建的學(xué)生信息批量導(dǎo)入模塊時序圖和學(xué)生成績查詢時序圖如圖4和圖5所示。
圖4 生信息批量模塊導(dǎo)入時序圖
圖5 生成績查詢時序圖
類圖是系統(tǒng)設(shè)計核心的部分,用于對系統(tǒng)靜態(tài)設(shè)計視圖進(jìn)行建模。類圖不僅對結(jié)構(gòu)模型的可視化、詳述和文檔化很重要,而且對通過正向與逆向功能構(gòu)造可執(zhí)行的系統(tǒng)也很重要。類圖中的類是針對時序圖和協(xié)作圖中每種對象創(chuàng)建的。本系統(tǒng)的類圖如圖6所示。
圖6 系統(tǒng)類圖
經(jīng)過系統(tǒng)分析與設(shè)計后,根據(jù)設(shè)計模型在具體的環(huán)境中實現(xiàn)系統(tǒng),其中包括學(xué)生成績管理業(yè)務(wù)的算法實現(xiàn)、數(shù)據(jù)庫的實現(xiàn)、界面實現(xiàn)和測試。在數(shù)據(jù)庫實現(xiàn)中,采用標(biāo)準(zhǔn)的SQL語句來實現(xiàn)數(shù)據(jù)庫表的創(chuàng)建,考慮到操作的簡單性、代碼的利用率、系統(tǒng)的安全性以及數(shù)據(jù)的訪問速度,啟用了視圖、存儲過程、觸發(fā)器等對象。用戶界面是應(yīng)用程序最重要的部分,對用戶而言,界面就是應(yīng)用程序,用戶感覺不到幕后正在執(zhí)行的代碼。不論花多少時間和精力來編制和優(yōu)化代碼,應(yīng)用程序的可用性仍然在很大程度上依賴于界面的好壞。軟件測試是程序的一種執(zhí)行過程,目的是盡可能發(fā)現(xiàn)并改正被測試軟件中的錯誤,提高軟件的可靠性。
以UML作為建模工具,將其應(yīng)用于學(xué)生成績管理系統(tǒng)的開發(fā),降低了系統(tǒng)的復(fù)雜性,優(yōu)化了系統(tǒng)各階段的建模過程,提高了軟件開發(fā)的質(zhì)量和效率。
[1]王少鋒.面向?qū)ο蠹夹g(shù)UML教程[M].北京:清華大學(xué)出版社,2004:1-17.
[2]Grady Booch等著.李虎等譯.UML用戶指南[M].北京:北京航空航天大學(xué)出版社,2001:20-53.
[3]劉豐,冷英男.基于UML的一個應(yīng)用軟件建模實例[J].計算機與現(xiàn)代化,2004(10):132-134.