高洪江 張海培 岳峻 張振興
摘 要:在“軟件工程”和“軟件系統(tǒng)分析與設(shè)計(jì)”等課程傳統(tǒng)理論教學(xué)中,參考CDIO教育思想,為了引入案例驅(qū)動(dòng)、項(xiàng)目驅(qū)動(dòng)以及團(tuán)隊(duì)合作等模式,結(jié)合MOOCs授課特色,本文以一個(gè)實(shí)際項(xiàng)目為例,討論了在教學(xué)中如何進(jìn)行信息系統(tǒng)的建模。實(shí)踐表明,這種教學(xué)方式取得了良好的教學(xué)效果。
關(guān)鍵詞:農(nóng)業(yè)信息服務(wù)平臺(tái) Android UML 教學(xué)改革
中圖分類號(hào):G648 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-2117(2014)22-00-02
隨著軟件開發(fā)過程中功能和復(fù)雜度的不斷增加,軟件的需求、分析、設(shè)計(jì)、開發(fā)等過程成為軟件工程化開發(fā)的重要組成,這樣不僅有助于學(xué)生理解和掌握面向?qū)ο蟮拈_發(fā)技術(shù),而且為后續(xù)JaEE和框架技術(shù)的學(xué)習(xí)打好了基礎(chǔ),也為從事軟件開發(fā)類職業(yè)崗位的學(xué)生增加了機(jī)會(huì)。
為此,魯東大學(xué)鼓勵(lì)學(xué)生入學(xué)后參與專業(yè)教師的科研項(xiàng)目,與課堂教學(xué)培養(yǎng)相輔相成,借鑒近年來(lái)流行的CDIO(構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)作)工程教育模式[1],探索工程教育改革的實(shí)踐。本文結(jié)合項(xiàng)目驅(qū)動(dòng)和案例驅(qū)動(dòng)模式,在教學(xué)中以實(shí)際項(xiàng)目為案例,針對(duì)當(dāng)前我省農(nóng)業(yè)生產(chǎn)現(xiàn)狀,結(jié)合農(nóng)產(chǎn)品市場(chǎng)發(fā)展情況,按照UML的“4+1”模型視圖用例驅(qū)動(dòng)的思想,對(duì)面向智能手機(jī)的農(nóng)業(yè)信息綜合服務(wù)平臺(tái)進(jìn)行了分析與設(shè)計(jì),由業(yè)務(wù)領(lǐng)域獲得用戶需求后,圍繞農(nóng)業(yè)資訊、供求信息、專家診斷、三農(nóng)論壇等重要模塊,進(jìn)行了用例建模、靜態(tài)建模和動(dòng)態(tài)建模。[2-3]
1 傳統(tǒng)教學(xué)中存在的問題
“軟件工程”和“軟件系統(tǒng)分析與設(shè)計(jì)”都是軟件工程與計(jì)算機(jī)專業(yè)的必修課程,具有很強(qiáng)的實(shí)踐性,它們的教學(xué)目的是提高學(xué)生的工程設(shè)計(jì)實(shí)踐能力,更好地理解問題,更清晰地捕獲需求并進(jìn)行設(shè)計(jì),以創(chuàng)建可擴(kuò)展性強(qiáng)、可維護(hù)性好的軟件系統(tǒng)。但是在實(shí)際教學(xué)過程中,學(xué)生經(jīng)常因抽象的技術(shù)、方法、原理產(chǎn)生迷惑,無(wú)法運(yùn)用到實(shí)際項(xiàng)目開發(fā)中,多數(shù)教師也缺少項(xiàng)目經(jīng)驗(yàn),教學(xué)過程的雙向互動(dòng)十分困難。
本文提出一種案例驅(qū)動(dòng)與項(xiàng)目驅(qū)動(dòng)相結(jié)合的教學(xué)模式,選擇企業(yè)實(shí)際項(xiàng)目、成熟項(xiàng)目或者學(xué)生較為熟悉的項(xiàng)目,能夠更好地激發(fā)學(xué)生的學(xué)習(xí)熱情,促進(jìn)知識(shí)的掌握和動(dòng)手能力的培養(yǎng),也符合CDIO大綱有關(guān)“個(gè)人專業(yè)能力與個(gè)人素質(zhì)”的培養(yǎng)要求。下面以基于Android的農(nóng)業(yè)信息服務(wù)平臺(tái)作為案例進(jìn)行描述。
2 案例的可視化建模
2.1 問題陳述與系統(tǒng)需求
針對(duì)農(nóng)作物信息量巨大、多維、動(dòng)態(tài)、地區(qū)差異大等特點(diǎn),農(nóng)戶希望得到及時(shí)、全面的市場(chǎng)信息、技術(shù)資訊,獲得供應(yīng)環(huán)節(jié)中的農(nóng)資價(jià)格信息、農(nóng)資市場(chǎng)、新品信息以及銷售環(huán)節(jié)中的農(nóng)產(chǎn)品價(jià)格行情、農(nóng)產(chǎn)品市場(chǎng)分析等。此外,還需要進(jìn)行農(nóng)業(yè)技術(shù)查詢與科教視頻點(diǎn)播。本文設(shè)計(jì)的農(nóng)業(yè)信息服務(wù)平臺(tái)需要提供以上內(nèi)容。
由此,針對(duì)農(nóng)業(yè)信息服務(wù)進(jìn)行領(lǐng)域分析和業(yè)務(wù)過程分析,從原始需求得到系統(tǒng)的問題陳述(Problem statement),提煉系統(tǒng)的愿景,進(jìn)行涉眾(Stake holder)分析,進(jìn)一步歸納出用戶的功能需求與非功能需求,從中確定各個(gè)參與者(Actor)和對(duì)應(yīng)的業(yè)務(wù)用例、系統(tǒng)用例(Use case)。
2.2 系統(tǒng)分析
2.2.1 體系結(jié)構(gòu)分析
根據(jù)整個(gè)軟件系統(tǒng)的結(jié)構(gòu),劃分為數(shù)據(jù)層、應(yīng)用層和客戶層三部分。數(shù)據(jù)層由MySQL數(shù)據(jù)庫(kù)服務(wù)器實(shí)現(xiàn),包括數(shù)據(jù)存儲(chǔ)層和數(shù)據(jù)訪問層;應(yīng)用層由J2EE服務(wù)器實(shí)現(xiàn),包含基礎(chǔ)服務(wù)層、業(yè)務(wù)邏輯層(Java類)和控制層(MVC框架)三部分;而客戶層的Android程序由XML+Servlet Java Applet實(shí)現(xiàn)。
2.2.2 類的建模
分析階段主要識(shí)別問題域相關(guān)的類,來(lái)自于領(lǐng)域知識(shí)、用戶需求、領(lǐng)域模型或者業(yè)務(wù)模型。這里,根據(jù)問題陳述和系統(tǒng)需求,可以識(shí)別出用戶類、管理員類、農(nóng)業(yè)資訊類、供求信息類、三農(nóng)論壇類、專家診斷類、幫助文檔類等,找到類與類之間的關(guān)系后,可得到類模型圖。
2.2.3 用例分析
描述用例模型中各個(gè)用例的事件的基本流、分支流和備選流,沿著不同的事件路徑得到各個(gè)場(chǎng)景,對(duì)不同場(chǎng)景分別建立對(duì)應(yīng)的交互圖(UML2.0中分為順序圖和協(xié)作圖),包括普通用戶注冊(cè)管理個(gè)人信息、普通用戶登錄、普通用戶查看農(nóng)業(yè)資訊、普通用戶回帖、普通用戶發(fā)表帖子、專家診斷、普通用戶供求信息管理。(由于空間受限,交互圖略去)
2.3 系統(tǒng)設(shè)計(jì)
根據(jù)需求分析階段確定的農(nóng)業(yè)平臺(tái)的功能要求,設(shè)計(jì)出在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境條件的實(shí)施方案。
2.3.1 用例設(shè)計(jì)
在用例設(shè)計(jì)中針對(duì)前面分析的用例通過協(xié)作圖、順序圖(以及狀態(tài)圖)進(jìn)行細(xì)化,以便于劃分子系統(tǒng)及其接口,找出發(fā)生重用的部分,組織為設(shè)計(jì)模型。
2.3.2 靜態(tài)建模
這里主要進(jìn)行類圖、對(duì)象圖和包圖的細(xì)化。在之前類建模的基礎(chǔ)上,確定每個(gè)類的屬性和方法,并重構(gòu)類模型圖。
2.3.3 動(dòng)態(tài)建模
主要通過活動(dòng)圖和狀態(tài)圖來(lái)描述。
根據(jù)需求分析,為了描述用戶在系統(tǒng)中的各種操作,將本系統(tǒng)主要?jiǎng)澐譃?個(gè)活動(dòng)圖,分別是與用戶登錄有關(guān)的活動(dòng)圖、與普通用戶瀏覽農(nóng)業(yè)資訊有關(guān)的活動(dòng)圖、與普通用戶供求信息管理有關(guān)的活動(dòng)圖、與專家診斷有關(guān)的活動(dòng)圖、與用戶發(fā)帖和回帖有關(guān)的活動(dòng)圖、與普通用戶注冊(cè)有關(guān)的活動(dòng)圖。
系統(tǒng)的狀態(tài)圖,依據(jù)角色的劃分,可以得到與管理員有關(guān)的狀態(tài)圖和與用戶有關(guān)的狀態(tài)圖。
2.4 實(shí)現(xiàn)模型
農(nóng)業(yè)信息服務(wù)平臺(tái)主要有農(nóng)業(yè)資訊、供求信息、三農(nóng)論壇、專家診斷和登錄功能。另外,系統(tǒng)開發(fā)所需Android客戶端(瀏覽農(nóng)業(yè)信息)、服務(wù)器端(發(fā)布農(nóng)業(yè)信息)的硬軟件開發(fā)環(huán)境可以通過部署圖表達(dá),此處略去。
系統(tǒng)分前臺(tái)用戶端和后臺(tái)管理員端,客戶端采用Android技術(shù)進(jìn)行開發(fā),服務(wù)器端使用JavaWeb技術(shù),數(shù)據(jù)庫(kù)使用MySql。農(nóng)業(yè)信息服務(wù)平臺(tái)包括農(nóng)業(yè)資訊、供求信息、三農(nóng)論壇、科教視頻、專家診斷等模塊。用戶通過注冊(cè)賬號(hào)登錄系統(tǒng),能夠滿足用戶對(duì)新聞信息的瀏覽、供求管理、實(shí)時(shí)發(fā)布帖子和回帖、觀看視頻等。管理員對(duì)后臺(tái)功能模塊的管理主要是對(duì)數(shù)據(jù)的增加、刪除、查詢、修改操作。由此實(shí)現(xiàn)的軟件功能正確,滿足了預(yù)期需求。
3 結(jié)語(yǔ)
在課堂教學(xué)中,可以通過“智能手機(jī)農(nóng)業(yè)信息服務(wù)平臺(tái)”來(lái)演示如何使用UML的多種視圖描述系統(tǒng)的需求、靜態(tài)模型、動(dòng)態(tài)模型與實(shí)現(xiàn)模型,來(lái)確定系統(tǒng)中對(duì)象的動(dòng)態(tài)行為,為系統(tǒng)的實(shí)現(xiàn)奠定了良好的基礎(chǔ)。
(魯東大學(xué)信息與電氣工程學(xué)院,山東煙臺(tái) 264025)
參考文獻(xiàn):
[1]查建中.論“做中學(xué)”戰(zhàn)略下的CDIO模式[J].高等工程教育研究,2008(5):35-37.
[2]彭瑩瓊,張永紅,尹晴,黃大星.基于UML的農(nóng)業(yè)決策支持系統(tǒng)建模研究[J].農(nóng)機(jī)化研究,2008(9):156-157,161.
[3]田兆鋒,閻楚良.基于UML和JSP的農(nóng)業(yè)機(jī)械化裝備信息網(wǎng)絡(luò)平臺(tái)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2006(11):648-655.