梁潔+張碩
摘要:“軟件工程”課程具有較強(qiáng)的抽象性、理論性,因此“案例式教學(xué)”被普遍采用,而案例分析設(shè)計不完整,和實(shí)際應(yīng)用有偏差,設(shè)計結(jié)果無法指導(dǎo)開發(fā),針對這些問題,提出將OOAD與MVC模式應(yīng)用于完整的教學(xué)案例分析設(shè)計中,模擬實(shí)際企業(yè)項(xiàng)目的開發(fā)流程,提高學(xué)生工程實(shí)踐能力。
關(guān)鍵詞:軟件工程;OOAD;MVC;教學(xué)案例;企業(yè)項(xiàng)目
中圖分類號: TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)28-0135-02
Abstract: "Software Engineering" course has a strong abstract and theoretical.So the "case teaching" is widely used.The analysis and design of case is not complete,and far from practical application.The design result can not guide the development.Aiming at these problems,The application of OOAD and MVC model in the analysis and design of a complete teaching case is presented.This way simulate enterprise project development process and improve students engineering practice ability.
1 引言
軟件工程是重點(diǎn)培養(yǎng)學(xué)生系統(tǒng)分析與設(shè)計能力的專業(yè)核心課程,其相關(guān)理論抽象性很強(qiáng) ,單純的理論學(xué)習(xí)會讓學(xué)生感到內(nèi)容枯燥乏味,因此”案例式教學(xué)”在軟件工程的教學(xué)中普遍采用。學(xué)生通過具體案例學(xué)習(xí)軟件生命周期各階段所采用基礎(chǔ)方法、規(guī)范、技術(shù),案例的選擇要貼合實(shí)際應(yīng)用。為了模擬實(shí)際項(xiàng)目的開發(fā)流程,在案例的分析中采用目前企業(yè)最常用的分析設(shè)計方法OOAD,并首次提出與開發(fā)模式MVC結(jié)合,將MVC模式理念融入系統(tǒng)設(shè)計方案中,以此方案指導(dǎo)開發(fā)。基于OOAD和MVC模式的案例教學(xué)可以幫助學(xué)生將軟件工程課程理論和實(shí)際項(xiàng)目開發(fā)流程相結(jié)合,真正的提高學(xué)生的軟件分析設(shè)計應(yīng)用能力。
2 OOAD(面向?qū)ο蠓治龊驮O(shè)計)
OOAD(Object Orient Analysis & Design,面向?qū)ο蟮姆治龊驮O(shè)計,面向?qū)ο蠓治雠c設(shè)計)是一項(xiàng)被現(xiàn)代軟件開發(fā)企業(yè)廣為采用的有效技術(shù)。OOAD方法要求在設(shè)計中要映射現(xiàn)實(shí)世界中的事物為指定問題域中的對象和實(shí)體,例如:顧客、汽車和銷售人員等。這就需要設(shè)計要盡可能地接近現(xiàn)實(shí)世界,即以最自然的方式表述實(shí)體。所以面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn)即為能夠構(gòu)建與現(xiàn)實(shí)世界相對應(yīng)的問題模型,并保持他們的結(jié)構(gòu)、關(guān)系和行為為模式。同時軟件的需求是不穩(wěn)定的,那么需求之中是不是沒有穩(wěn)定的東西呢?有的,就是對象。世界都是由對象組成的,而對象都是持久的。面向?qū)ο蟮拈_發(fā)方法的精髓就是從企業(yè)的不穩(wěn)定需求中分析出企業(yè)的穩(wěn)定對象,以企業(yè)對象為基礎(chǔ)來組織需求、構(gòu)架系統(tǒng)。這樣得出的系統(tǒng)就會比傳統(tǒng)的系統(tǒng)要穩(wěn)定得多,因?yàn)槠髽I(yè)的模式一旦變化,只需要將穩(wěn)定的企業(yè)對象重新組織就行了。
3 MVC設(shè)計模式
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。
視圖:是用戶看到并與之交互的界面。
控制器:它只是接收請求并決定調(diào)用哪個模型去處理請求,然后確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。
模型:表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。例如數(shù)據(jù)庫的連接、更新、查詢、修改等操作。
4 教學(xué)案例的分析設(shè)計
在軟件工程教學(xué)中,以一個項(xiàng)目作為主線案例進(jìn)行講解,在該案例的分析與設(shè)計中結(jié)合了OOAD和MVC模式,使項(xiàng)目分析設(shè)計更貼合企業(yè)實(shí)際的開發(fā)環(huán)境,并能幫助學(xué)生理解如何將分析設(shè)計結(jié)果去指導(dǎo)開發(fā),以“計算機(jī)銷售網(wǎng)站”為例,在需求分析階段,采用OOAD(面向?qū)ο蠓治龇椒ǎ┳R別對象和實(shí)體,該系統(tǒng)所涉及的實(shí)體對象有:Internet網(wǎng)絡(luò)、計算機(jī)、客戶、Web頁面、標(biāo)準(zhǔn)配置計算機(jī)、配置計算機(jī)、價格、銷售員、定單、發(fā)票、地址、支票、信用卡、表格、郵件、訂單的狀態(tài)、付款方式、倉庫等。
經(jīng)過篩選去除掉屬性以及和系統(tǒng)無關(guān)的實(shí)體,確定實(shí)體類為:客戶、計算機(jī)、標(biāo)準(zhǔn)配置計算機(jī)、配置計算機(jī)、訂單、發(fā)票、付款、銷售員。對實(shí)體類識別其屬性,確定類之間關(guān)聯(lián),建立靜態(tài)邏輯模型即計算機(jī)銷售網(wǎng)站實(shí)體類圖,如圖1:
在設(shè)計階段,基于類進(jìn)行物理架構(gòu)的設(shè)計,構(gòu)件代表系統(tǒng)中的一部分物理實(shí)施,包括軟件代碼(源代碼、二進(jìn)制代碼或可執(zhí)行代碼)或其等價物(如腳本或命令文件)。 每個構(gòu)件可以單獨(dú)實(shí)現(xiàn)一定的功能,為其他構(gòu)件提供使用接口。設(shè)計構(gòu)件圖可以清楚地看出系統(tǒng)的結(jié)構(gòu)和功能。方便項(xiàng)目組的成員制定工作目標(biāo)和了解工作情況,同時,最重要的一點(diǎn)
是有利于軟件的復(fù)用?!坝嬎銠C(jī)銷售網(wǎng)站”構(gòu)件圖如圖2:
采用MVC模式三層框架對每個構(gòu)件進(jìn)行詳細(xì)設(shè)計,即對每個構(gòu)件所包括的接口和類進(jìn)行設(shè)計,典型的MVC 是JSP +Servlet+JavaBean的模式,為了方便快捷地過渡到該網(wǎng)站的開發(fā),因此采用這種模式對每個構(gòu)件進(jìn)行設(shè)計,例如:“Computer”構(gòu)件的經(jīng)過詳細(xì)設(shè)計后的類圖如圖3,構(gòu)件內(nèi)被分成了四層的類,頁面類,控制類,模型類,實(shí)體類。
開發(fā)階段,以構(gòu)件作為單元進(jìn)行開發(fā)分工,開發(fā)人員只需要根據(jù)該構(gòu)件最終的類圖來完成類的代碼的編寫與測試,例如根據(jù)圖3中Computer構(gòu)件的類圖,開發(fā)人員需要編寫index.jsp,configure.jsp頁面,以及接受與處理頁面請求CptServlet控制類,及執(zhí)行數(shù)據(jù)訪問的CptDAO類,還有相關(guān)的Javabean即Cpt類和StandardCpt、ConfigureCpt子類。
5 結(jié)論
融合OOAD和MVC模式所設(shè)計的系統(tǒng),既可以提高開發(fā)效率,又可以提高系統(tǒng)的可復(fù)用性,同時可以根據(jù)用戶變化的需求,方便的對構(gòu)件功能進(jìn)行修改。學(xué)生在此案例的學(xué)習(xí)過程中可體會基于面向?qū)ο蠓治鲈O(shè)計思想的精髓,以及MVC模式中系統(tǒng)層次結(jié)構(gòu)的特點(diǎn),將軟件工程理論和實(shí)際項(xiàng)目開發(fā)流程相結(jié)合,真正做到“學(xué)以致用”,為成為高素質(zhì)的具有全局化思維的軟件工程優(yōu)秀人才打下堅實(shí)基礎(chǔ),經(jīng)過三年的教學(xué)實(shí)踐,采用該案例的軟件工程教學(xué)充分調(diào)動了學(xué)生的積極性,取得了良好的教學(xué)效果。
參考文獻(xiàn):
[1] 李志,賈克斌,李真真,姚萌. 基于.NET MVC架構(gòu)的網(wǎng)上珠寶銷售系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J]. 計算機(jī)應(yīng)用與軟件.2013(3).
[2] 范會聯(lián),仲元昌. 基于項(xiàng)目驅(qū)動的軟件工程課程教學(xué)改革探索[J]. 教育與職業(yè).2013(5).
[3] 梁勝彬,王倩. 軟件工程學(xué)科的案例教學(xué)模式探討[J].計算機(jī)教育.2015(23).
[4] 徐堅. 軟件工程專業(yè)實(shí)踐教學(xué)體系的建構(gòu)及實(shí)踐[J].電腦知識與技術(shù).2016(18).
[5] 鄧立苗,于仁師.軟件工程專業(yè)實(shí)踐教學(xué)體系的建構(gòu)及實(shí)踐[J].電腦知識與技術(shù).2015(6).
[6]郭寧. 軟件工程實(shí)用教程[M]. 北京:人民郵電出版社,2015.
[7](美)普雷斯曼 .軟件工程實(shí)踐者的研究方法[M].鄭人杰,譯.北京:機(jī)械工業(yè)出版社,2011.
[7]李興華 .Java Web開發(fā)實(shí)戰(zhàn)經(jīng)典[M].北京:清華大學(xué)出版社,2010.