陳少波+鐘鳴
摘要: 該系統(tǒng)針對高校運(yùn)動會的需求,采用面向?qū)ο蟮姆治雠c設(shè)計(jì)方法,建立了以類圖表示的系統(tǒng)靜態(tài)模型,以用例模型為主,順序圖、活動圖等為輔表示的系統(tǒng)動態(tài)模型,最后對分析與設(shè)計(jì)中應(yīng)該重點(diǎn)考慮的問題進(jìn)行了總結(jié)。
Abstract: In order to meet the needs of college sports game, the system uses object-oriented analysis and design method, establishes a system static model expressed by class diagram, and a system dynamic model based on use case model and supplemented by sequence diagram and activity diagram. Finally, the key issues in the analysis and design are summarized.
關(guān)鍵詞: 高校;運(yùn)動會;管理系統(tǒng)
Key words: university;sports game;management system
中圖分類號:G647 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2018)01-0210-04
0 引言
隨著我國高等教育的迅猛發(fā)展,萬人大學(xué)、幾萬人大學(xué)比比皆是,每所大學(xué)每年都要舉辦校級運(yùn)動會,參加運(yùn)動會的教職工及學(xué)生數(shù)以千計(jì),運(yùn)動會的組織管理工作是一項(xiàng)復(fù)雜、瑣粹的工作。信息管理是運(yùn)動會組織管理工作不可缺少的組成部分,也是運(yùn)動會組織管理走向科學(xué)化、規(guī)范化的必要條件。目前各高校都已普及千兆校園網(wǎng),開發(fā)出依托校園網(wǎng)的“高校運(yùn)動會管理系統(tǒng)”已經(jīng)水到渠成。
高校運(yùn)動會管理系統(tǒng)的設(shè)計(jì)至少應(yīng)該達(dá)到以下的目標(biāo):
①管理員能夠及時(shí)便捷的對信息進(jìn)行必要處理,包括查詢、添加、刪除、匯總、修改、統(tǒng)計(jì)等
②為便于資源共享,可在網(wǎng)上發(fā)布各種運(yùn)動會信息。
③運(yùn)動員可以在自己的權(quán)限內(nèi)對信息進(jìn)行訪問,即時(shí)查詢相關(guān)信息。
1 系統(tǒng)需求分析
本系統(tǒng)開展分析和設(shè)計(jì)采用面向?qū)ο蟮姆椒ā?/p>
面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法存在一定差別,在該方法中對于分析和設(shè)計(jì)的界限是比較模糊的,分析和設(shè)計(jì)工作共存于一個連續(xù)體上,不同的實(shí)踐者在這個連續(xù)體上的活動關(guān)于“分析”和“設(shè)計(jì)”存在一定分類界限。之所以這樣,根本原因就在于面向?qū)ο蠓椒ㄖ械摹胺治觥迸c“設(shè)計(jì)”表達(dá)工具的一致性,開發(fā)過程通常是迭代進(jìn)行的,我們必須牢牢把握的是:“需求調(diào)研是了解問題,分析是定義問題,而設(shè)計(jì)則是解決問題?!?/p>
一切軟件開發(fā)都毫無例外地必須從需求出發(fā)。用軟件工程的專業(yè)術(shù)語來說,“弄清楚要做什么”即為“需求分析”。未來所有的軟件項(xiàng)目都是基于需求分析開展的。
作者認(rèn)為,分析階段一般來說包括以下兩個方面的工作:建立一個以類圖表示的反映問題域靜態(tài)關(guān)系的概念模型;建立一個以用例模型表示的反映系統(tǒng)行為的動態(tài)模型。
幫助開發(fā)團(tuán)隊(duì)理解問題域的各種概念、各種名詞、以及它們之間的各種關(guān)系是概念模型建立的作用;幫助開發(fā)團(tuán)隊(duì)理解用戶對系統(tǒng)的各種功能需求是用例模型建立的作用。分析工作的主要內(nèi)容是做這兩方面的工作,其結(jié)果就是得到明確的問題定義。即知道系統(tǒng)不該做什么、該做什么,以及要達(dá)到的目標(biāo)。
1.1 建立系統(tǒng)概念模型
在大多數(shù)面向?qū)ο蟮臅校延美.?dāng)成是分析階段的工作,而把概念建模當(dāng)成是設(shè)計(jì)階段的工作。也就是說,用例建模是在概念建模之前。作者認(rèn)為,這是一種誤解。因?yàn)槊嫦驅(qū)ο蟮拈_發(fā)是迭代進(jìn)行的,也就無所謂誰先誰后,而是取決于對模型作用的理解。把建立概念模型作為第一步,目的是從需求分析開始就能使開發(fā)團(tuán)隊(duì)從整體上把握系統(tǒng)。
表達(dá)概念模型的是類圖。類圖是描述類、接口以及它們之間關(guān)系的圖,它是一種靜態(tài)模型,顯示了系統(tǒng)中各個類的靜態(tài)結(jié)構(gòu)。類圖根據(jù)系統(tǒng)中的類以及各個類的關(guān)系,描述系統(tǒng)的靜態(tài)視圖。
對于面向?qū)ο笙到y(tǒng)建模來說,類圖是最為基本和常用的圖之一,其它大部分圖都是在此基礎(chǔ)上經(jīng)過進(jìn)一步描述得出的,比如配置圖、通信圖、順序圖、狀態(tài)圖等。
采用“名詞動詞法”,從發(fā)現(xiàn)系統(tǒng)中的類(管理員、運(yùn)動員、項(xiàng)目、成績)開始,添加屬性、找到類的職責(zé),一步一步建立起以類圖表示的系統(tǒng)概念模型如圖1所示。
1.2 建立系統(tǒng)用例模型
用例的概念是伴隨著UML一起傳入國內(nèi)的,所以一些人認(rèn)為用例模型就是UML用例圖,其實(shí)不然。這是因?yàn)閁ML標(biāo)準(zhǔn)中根本沒有討論用例的內(nèi)容以及如何去編寫用例,而用例模型不僅包括用例圖,也包括比用例圖更重要的用例描述。
用例模型是應(yīng)用系統(tǒng)中與靜態(tài)模型相配合的動態(tài)模型。用例模型的建立從確定系統(tǒng)的參與者開始,參與者確定后,我們就可以從參與者的角度出發(fā),考慮參與者需要系統(tǒng)完成什么樣的功能,從而建立參與者所需要的用例。
參與者是對系統(tǒng)外的對象的描述,是用戶作用于系統(tǒng)的一個角色,參與者通過與系統(tǒng)的交互來實(shí)現(xiàn)自已的目標(biāo)。參與者可以是人,也可以是一個外部系統(tǒng)。通過分析,我們確定本系統(tǒng)的參與者為:管理員、普通用戶、組委會、裁判員。endprint
用例是對系統(tǒng)的用戶需求(主要是功能需求)的描述,即描述了系統(tǒng)的功能和提供的服務(wù)。
本系統(tǒng)用例:用戶登錄、系統(tǒng)管理、退出系統(tǒng)、信息查詢、信息錄入、信息發(fā)布、成績處理、賽程安排、現(xiàn)場成績統(tǒng)計(jì)、成績查詢等,我們可以依此建立系統(tǒng)的用例圖如圖2所示。
對系統(tǒng)的各種基本信息的操作,都是由管理員完成的,如圖3所示。
對比賽成績的錄入、成績的公布以及各比賽項(xiàng)目決賽名單的公告等操作,也是由管理員完成的,如圖4所示。
用例圖及用例描述,構(gòu)成了系統(tǒng)的用例模型。用例具有三個基本特征:用例總是由參與者啟動,用例為參與者提供結(jié)果值,用例具有完整性。因此,用例描述必須清晰地反映了這些特征。限于篇幅,本文僅以“成績處理”用例為例進(jìn)行用例描述。
2 系統(tǒng)設(shè)計(jì)
概念模型描述了組成系統(tǒng)結(jié)構(gòu)各部分的各種類型;用例模型描述了系統(tǒng)必須做什么。然而,上述兩種模型無法解釋系統(tǒng)是如何運(yùn)作的。但通過交互建??蓾M足上述要求,它能夠讓應(yīng)用系統(tǒng)看上去是能“運(yùn)行的”。這是通常所說的設(shè)計(jì)階段要做的事情。
交互建模通常使用時(shí)序圖、通信圖、順序圖,在具體的應(yīng)用中,可以互換通信圖和順序圖。順序圖描述了系統(tǒng)運(yùn)行時(shí)各對象之間如何進(jìn)行交互以及交互的次序,其應(yīng)用是最為廣泛的。所以,用于描述系統(tǒng)特定用例時(shí),使用順序圖不僅會涉及到該用例所需要的對象,還包括對象之間的交互和交互發(fā)生的次序。對于小型系統(tǒng)而言,只需使用順序圖即可。
2.1 建立順序圖
順序圖是用來表示用例中的行為順序,描述了對象之間傳遞消息的時(shí)間順序。當(dāng)執(zhí)行一個用例行為時(shí),順序圖中的每條消息對應(yīng)了一個類方法或一個引起轉(zhuǎn)換的觸發(fā)事件。它著重顯示了參與相互作用的對象和所交換消息的順序。
順序圖代表了一個以時(shí)間為次序的相互作用對象之間的通信集合,它不包括對象聯(lián)系,但包括時(shí)間次序。為用例構(gòu)建邏輯模型是順序圖的作用之一,利用順序圖可進(jìn)一步解釋和實(shí)現(xiàn)所有用例。用例常常被細(xì)化為一個或者多個順序圖。作為例子,運(yùn)動員信息查詢及管理員成績處理順序圖如圖5、圖6所示。
2.2 建立活動圖
描述事件流是活動圖的主要作用,事件流中一組動作的執(zhí)行都用一個活動表示。通過使用活動圖,我們能夠知道系統(tǒng)中那些地方存在功能,及其相關(guān)組件的功能等,便于使用用例圖建模。
活動圖本質(zhì)上是面向?qū)ο蟮牧鞒虉D,其中幾乎所有或大多數(shù)的狀態(tài)都處于活動狀態(tài),它描述從活動到活動的控制流。用活動圖來對事件流建模時(shí),可以顯示用例內(nèi)部和用例之間的路徑;活動圖還可以向讀者說明需要滿足什么條件用例才會有效,以及用例完成后系統(tǒng)保留的條件或者狀態(tài);活動圖可以用來為用例事件流建模,更可以理解為用例圖的具體細(xì)化;在構(gòu)建活動圖時(shí),常常會發(fā)現(xiàn)前面沒有想到、附加的用例。
以決賽名單處理為例,其活動圖如圖7所示。
2.3 建立組件圖和部署圖
組件圖和部署圖可以描述應(yīng)該如何根據(jù)系統(tǒng)軟、硬件的各個組件間的關(guān)系來布置物理組件。在完成系統(tǒng)的邏輯設(shè)計(jì)之后,接下來要考慮的就是系統(tǒng)的物理實(shí)現(xiàn)。對面向?qū)ο笙到y(tǒng)的物理實(shí)現(xiàn)進(jìn)行建模需要構(gòu)造組件圖和部署圖。構(gòu)造組件圖可以描述軟件的各個組件以及它們之間的關(guān)系,構(gòu)造部署圖可以描述硬件的各個組件以及它們之間的關(guān)系。
組件是軟件的單個組成部分,它可以是一個文件、產(chǎn)品、可執(zhí)行文件或腳本等。通常情況下,組件代表了將系統(tǒng)中的類、接口等邏輯元素打包后形成的物理模塊。組件圖的主要目的是顯示系統(tǒng)組件間的結(jié)構(gòu)關(guān)系。本系統(tǒng)的組件圖如圖8所示。
組件圖用來對軟件組件進(jìn)行建模,但無法體現(xiàn)這些軟件組件在計(jì)算機(jī)硬件中的位置,而部署圖是用來顯示系統(tǒng)中軟件和硬件的物理架構(gòu)。從部署圖中,您可以了解到軟件和硬件組件之間的物理關(guān)系以及處理節(jié)點(diǎn)的組件分布情況。使用部署圖可以顯示運(yùn)行時(shí)系統(tǒng)的結(jié)構(gòu),同時(shí)還表示構(gòu)成應(yīng)用程序的硬件和軟件元素的配置和部署方式。系統(tǒng)部署圖如圖9所示。
3 結(jié)束語
經(jīng)過前面的工作,從分析和設(shè)計(jì)的角度來看,可以說工作已經(jīng)完成了。當(dāng)然,從系統(tǒng)可以投入使用的角度來看,工作還遠(yuǎn)未結(jié)束,還有編碼、測試及數(shù)據(jù)庫設(shè)計(jì)等工作要做。如果我們把到此為止的工作做得足夠好的話,后面的工作完全可以轉(zhuǎn)給別人做,這就是通常所說的軟件外包。
當(dāng)你決定采用面向?qū)ο蠓椒▽δ硞€特定的應(yīng)用系統(tǒng)進(jìn)行開發(fā)時(shí),對問題域進(jìn)行建模和對用例進(jìn)行建模就構(gòu)成了應(yīng)用系統(tǒng)開發(fā)的基礎(chǔ)。因此,你必須對它們的本質(zhì)和作用有清晰的認(rèn)識和理解:
①問題域模型:問題域模型反映的是應(yīng)用系統(tǒng)所涉及的客觀世界的所有物體,我們對其進(jìn)行抽象,并以類圖的形式表達(dá)出來。這個類圖是整個系統(tǒng)開發(fā)的基礎(chǔ),后續(xù)的各項(xiàng)工作都是在這個基礎(chǔ)上對系統(tǒng)進(jìn)行擴(kuò)展和完善。因此,在對問題域進(jìn)行建模時(shí),所構(gòu)建出來的模型只是演化的基礎(chǔ),故沒有必要苛求它的精確性。在隨后的開發(fā)工作中,還有許多機(jī)會對該模型進(jìn)行更新。在建立問題域模型時(shí),最重要的事情就是我們必須用類的思想來看世界,否則,我們就偏離了面向?qū)ο蠓椒ǖ幕舅悸贰?/p>
②用例模型:用例模型是用戶需求的一種有效的表達(dá)方式,它是用戶使用場景的抽象。用例模型與使用場景之間的關(guān)系,類似于類與對象之間的關(guān)系。即用例模型是站在用戶的角度,盡可能全面地捕捉用戶可能的使用場景,以反映用戶的實(shí)際操作情況。
在分析和設(shè)計(jì)中,最重要的事情是用面向?qū)ο蟮囊暯莵碛^察與抽象現(xiàn)實(shí)世界,并能有效地使用用例(用例模型)對用戶需求進(jìn)行分析和整合,建立起靜態(tài)和動態(tài)兩個模型。
參考文獻(xiàn):
[1]郭琳,張文靜,簡平.面向?qū)ο蟮膱D書館信息系統(tǒng)設(shè)計(jì)與分析[J].圖書情報(bào)工作,2013,57(增刊1).
[2]樊莉麗.面向?qū)ο笤O(shè)計(jì)的軟件工程開發(fā)分析[J].產(chǎn)業(yè)與科技論壇,2014,13(15).
[3]張宏鳴,李書琴,王美麗,張曉婷,張陽.面向?qū)ο蠓治雠c設(shè)計(jì)課程教學(xué)改革探索與實(shí)踐[J].教育教學(xué)論壇,2015(6).
[4]趙池龍,程努華.實(shí)用軟件工程[M].北京:電子工業(yè)出版社,2015.
[5]林加強(qiáng).分析統(tǒng)一建模語言在面向?qū)ο蠓治雠c設(shè)計(jì)中的應(yīng)用[J].信息系統(tǒng)工程,2016,7,20.
[6]羅曦.基于分段式教學(xué)的《面向?qū)ο蠓治雠c設(shè)計(jì)》的課程研究[J].信息系統(tǒng)工程,2016,11,20.endprint