摘要:結(jié)合本校計(jì)算機(jī)專業(yè)的實(shí)際教學(xué)情況,深入分析UML課程教學(xué)內(nèi)容,并結(jié)合軟件工程教學(xué),以汽車銷售管理系統(tǒng)為例,通過分析汽車銷售管理系統(tǒng),并在設(shè)計(jì)過程中融入軟件工程思想,將軟件工程與UML完美結(jié)合起來。以UML作為基礎(chǔ),增強(qiáng)學(xué)生對(duì)開發(fā)項(xiàng)目的興趣和感性認(rèn)識(shí),提高他們分析和解決實(shí)際問題的能力,從而達(dá)到UML與軟件工程教學(xué)共贏的目的。
關(guān)鍵詞:UML技術(shù);軟件工程;面向?qū)ο螅唤虒W(xué)改革
1研究背景
國(guó)內(nèi)大部分高校的UML課程理論與實(shí)踐教學(xué)尚處在一種探索和發(fā)展階段。在教學(xué)過程中,仍然以教師帶領(lǐng)學(xué)生進(jìn)行知識(shí)學(xué)習(xí)的思路為主[1]。學(xué)生缺少自主思考,仍然處于被動(dòng)接受知識(shí)狀態(tài),很難有機(jī)會(huì)體會(huì)到一個(gè)完整的軟件項(xiàng)目開發(fā)過程。這種教學(xué)方法培養(yǎng)的學(xué)生,在實(shí)際工作中很有可能不知道如何開展項(xiàng)目,更不懂得如何推進(jìn)項(xiàng)目和維護(hù)項(xiàng)目[2]。另外,UML課程的考試大多以筆試為主,這在很大程度上導(dǎo)致學(xué)生在UML課程學(xué)習(xí)中輕實(shí)踐重理論[3]。同時(shí),軟件工程課程講授的原理、技術(shù)、方法都是抽象的,在教學(xué)過程中也遇到了同樣的問題[4]。
為了使學(xué)生能夠深刻理解UML方法與軟件工程思想,我們?cè)诮虒W(xué)中引入教學(xué)案例,用具體教學(xué)案例解釋抽象復(fù)雜的概念,收到了事半功倍的效果[5-6],我們以“汽車銷售管理系統(tǒng)”作為教學(xué)案例,要求學(xué)生根據(jù)所學(xué)的數(shù)據(jù)庫原理與程序設(shè)計(jì)的知識(shí),針對(duì)一個(gè)小型的汽車管理系統(tǒng)進(jìn)行系統(tǒng)的需求分析、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、程序編碼、軟件測(cè)試等,完成題目要求的功能,加深學(xué)生對(duì)數(shù)據(jù)庫系原理、軟件工程、程序設(shè)計(jì)語言的理論知識(shí)理解和應(yīng)用水平。學(xué)生通過設(shè)計(jì)實(shí)際的數(shù)據(jù)庫系統(tǒng)應(yīng)用課題,進(jìn)一步熟悉數(shù)據(jù)庫管理系統(tǒng)的操作技術(shù),提高動(dòng)手能力,達(dá)到UML與軟件工程教學(xué)結(jié)合的目的。這樣變抽象為具體,將實(shí)際項(xiàng)目訓(xùn)練與枯燥的課堂理論緊密結(jié)合,有利于學(xué)生充分理解和掌握各個(gè)理論知識(shí)點(diǎn)。同時(shí),我們?cè)陧?xiàng)目訓(xùn)練期間安排一次教學(xué)案例討論課,將學(xué)生分成幾個(gè)小組,每組成員分別扮演開發(fā)者與用戶的角色,運(yùn)用所學(xué)知識(shí)展開討論,模擬實(shí)際項(xiàng)目開發(fā)過程。討論結(jié)束后,學(xué)生再根據(jù)討論整理出相應(yīng)的需求分析文檔。這個(gè)過程增強(qiáng)了學(xué)生對(duì)軟件項(xiàng)目開發(fā)的興趣與感性認(rèn)識(shí),提高了他們分析以及解決問題的能力,取得良好的教學(xué)效果。
2教學(xué)實(shí)例選擇與分析
目前,大多數(shù)廠商忽略了汽車銷售管理系統(tǒng)的重要性,而本系統(tǒng)專為具有一定規(guī)模和經(jīng)濟(jì)條件的大型汽車廠設(shè)計(jì)。從進(jìn)貨管理、車輛采購、車輛入庫、銷售管理到車輛銷售、收益統(tǒng)計(jì)等,為每個(gè)環(huán)節(jié)明確分工,并通過可視化的軟件支持,有效減小了人為差錯(cuò)的概率,代之以高效、便捷、準(zhǔn)確的數(shù)字化服務(wù)系統(tǒng),使汽車銷售管理更加規(guī)范化。首先進(jìn)行項(xiàng)目需求分析,調(diào)查用戶的實(shí)際要求,與用戶達(dá)成需求共識(shí),最后分析與表達(dá)這些需求。調(diào)查各部門與廠商需求的具體步驟如下:
1) 調(diào)查廠商情況。主要包括了解廠商的各個(gè)部門組成情況、各部門的職責(zé)等。
2) 調(diào)查各部門的業(yè)務(wù)情況。主要包括了解各個(gè)部門使用什么數(shù)據(jù),如何處理這些數(shù)據(jù),輸出什么信息,這是調(diào)查的重點(diǎn)。
3) 在第二步的基礎(chǔ)上,協(xié)助目標(biāo)用戶明確對(duì)系統(tǒng)的要求。主要包括信息要求、信息處理要求、完整性與安全性要求,這也是調(diào)查的重點(diǎn)。
4) 確定邊界。對(duì)調(diào)查結(jié)果進(jìn)行分析,確定哪些功能哪些活動(dòng)由人工完成,哪些由計(jì)算機(jī)完成或?qū)頊?zhǔn)備讓計(jì)算機(jī)完成。
調(diào)查本地從事汽車銷售的企業(yè),根據(jù)企業(yè)汽車銷售的情況,設(shè)計(jì)用于汽車銷售的管理系統(tǒng),主要功能如下:
1) 基礎(chǔ)信息管理。廠商信息、車型信息和客戶信息。
2) 進(jìn)貨管理。車輛采購、車輛入庫。
3) 銷售管理。車輛銷售(處理車輛銷售單)、銷售代辦(處理銷售代辦單)、車輛查詢、銷售日記錄、銷售月記錄。
4) 倉庫管理。庫存車輛、倉庫明細(xì)、進(jìn)銷存統(tǒng)計(jì)。
5) 系統(tǒng)維護(hù)。如數(shù)據(jù)安全管理(含備份與恢復(fù))、操作員管理、權(quán)限設(shè)置等。
3總體分析與設(shè)計(jì)
3.1系統(tǒng)需求分析
首先將汽車信息入庫,經(jīng)銷商通過與汽車需求商(即客戶)的交易活動(dòng),將相關(guān)信息存入庫,然后經(jīng)銷商通過銷售信息的查詢獲得汽車銷售的盈虧情況,通過庫存查詢獲得公司目前的庫存情況。由此可分析系統(tǒng)需要達(dá)到以下目標(biāo):
1) 能很好地完成汽車的售前管理。售前管理包括供應(yīng)商信息、需求商信息和汽車基本信息的入庫作業(yè)。
2) 能詳細(xì)地記錄汽車供應(yīng)商和公司之間的交易過程,即進(jìn)貨或退貨過程。
3) 能詳細(xì)地記錄需求商與公司之間的交易過程,即訂車和退車過程。
4) 能夠?qū)Ω鞣N經(jīng)濟(jì)結(jié)算進(jìn)行相應(yīng)的記錄。包括對(duì)進(jìn)貨結(jié)賬、退貨結(jié)賬、訂車結(jié)賬、退車結(jié)賬等。
5) 能夠?qū)Σ煌瑱?quán)限的用戶進(jìn)行合理的管理。包括添加用戶、刪除用戶、用戶賬號(hào)和密碼管理等。
3.1.1識(shí)別參與者
系統(tǒng)有3個(gè)參與者,經(jīng)理(系統(tǒng)管理員)、倉庫管理員、銷售員。3個(gè)參與者的功能如下:
1) 經(jīng)理。經(jīng)理在登錄后可以使用系統(tǒng)內(nèi)提供的所有功能,包括用戶管理、客戶信息管理、員工信息管理等一系列的操作。
2) 倉庫管理員。倉庫管理員在登錄后可以對(duì)入庫單、庫存信息、退庫單、產(chǎn)品信息進(jìn)行操作,同時(shí)也可以查詢員工的信息。
3) 銷售員。銷售員登錄后可以對(duì)銷售管理模塊和零售管理模塊進(jìn)行操作,其中包括對(duì)庫存的查詢、銷售業(yè)務(wù)的辦理等。
3.1.2畫出用例圖
通過以上的需求分析,我們做出如圖1所示的系統(tǒng)用例圖。
3.1.3建立類圖
實(shí)體類之間的關(guān)系與實(shí)體類和數(shù)據(jù)庫類的交互如圖2所示。
3.2動(dòng)態(tài)行為模型
1) 用戶進(jìn)行信息系統(tǒng)管理的狀態(tài)圖如圖3所示。
2) 用戶進(jìn)行數(shù)據(jù)添加、數(shù)據(jù)修改、數(shù)據(jù)刪除的操作狀態(tài)圖如圖4所示。
4數(shù)據(jù)庫的分析與設(shè)計(jì)
4.1系統(tǒng)E-R圖設(shè)計(jì)
系統(tǒng)E-R圖如圖5所示。
4.2邏輯結(jié)構(gòu)設(shè)計(jì)
由于版面所限制,這里只是列出了重要的相 關(guān)表。
1) 車輛基本表。
車輛基本表如表1所示。
2) 車輛銷售基本表。
車輛銷售基本表如表2所示。
3) 訂單表。
訂單表如表3所示。
5結(jié)論
經(jīng)過開展本次實(shí)例教學(xué),學(xué)生學(xué)會(huì)了自己書寫設(shè)計(jì)文檔的方法與步驟,用面向?qū)ο蟮闹R(shí)來分析和設(shè)計(jì)系統(tǒng),通過畫出用例圖和類圖進(jìn)行系統(tǒng)的總體設(shè)計(jì)。在最后的系統(tǒng)實(shí)現(xiàn)時(shí),學(xué)生對(duì)面向?qū)ο蠓治雠c設(shè)計(jì)的思想以及對(duì)軟件工程有了更深入的理解。
參考文獻(xiàn):
[1] 邵維忠. 統(tǒng)一建模語言UML述評(píng)[J]. 計(jì)算機(jī)研究