?

面向工程教育的軟件工程案例分析與實踐課程

2015-09-27 02:47賈玉祥陳爭艷鄭州大學信息工程學院鄭州45000河南教育學院信息技術系鄭州450046
現代計算機 2015年27期
關鍵詞:學時案例軟件

賈玉祥,陳爭艷(.鄭州大學信息工程學院,鄭州 45000;.河南教育學院信息技術系,鄭州 450046)

面向工程教育的軟件工程案例分析與實踐課程

賈玉祥1,陳爭艷2
(1.鄭州大學信息工程學院,鄭州450001;2.河南教育學院信息技術系,鄭州450046)

0 引言

軟件工程是與計算機科學與技術并列的一級學科,與后者相比,軟件工程更強調軟件學科的系統性和實踐性。大數據時代的來臨,一方面要求大力培養軟件工程人才,另一方面也對人才培養的質量提出更高的要求,即要求有系統的理論知識,也要求較高的實踐技能。與社會需求相比,我國很多高校在軟件工程專業的課程設置和人才培養方面還存在一些問題[1]。例如,課程設置更偏向理論分析,理論與實踐脫節等,導致學生畢業后需要在專門的培訓機構進行培訓才能上崗。案例分析[2-4]作為一門將理論應用于實際項目分析的課程,在軟件工程課程體系中有重要位置。然而目前案例分析課程還是以分析為主,以教材驅動,案例多是一些實驗室系統,所涉及的技術相對較老,學生接觸不到前沿的項目和技術,不易得到充分的實踐鍛煉。

因此,我們結合案例分析和前沿項目實踐,提出案例分析與實踐課程,從社會需求出發提煉案例,把最先進的軟件開發技術融入其中,探索以項目驅動的教學方法取代教材驅動的教學方法。指導學生運用軟件工程的方法,將數據庫、程序設計、軟件模式等課程所學的知識綜合運用,最終實現一個具有一定功能要求和性能要求的應用軟件系統。通過本課程,學生可經歷一個應用軟件系統從需求的分析、軟件模型的規劃、開發工具的使用、軟件的編碼、代碼的調試,直到軟件的測試的整個流程,從而使軟件開發實踐能力得到全面鍛煉。

1 課程的特點

案例分析與實踐課程的特點主要體現在三個方面:

(1)優化課程設置,理論與實踐相結合,并突出實踐性。針對目前軟件工程案例分析課程偏于理論及相關實踐課程理論聯系不夠的缺點,將案例分析與實踐相結合,使學生在開發完成一個完整的案例過程中,把所學的相關知識加以綜合應用。

(2)突出案例的前沿性和實用性以及開發技術的先進性。結合現實需求選擇案例,使得學生完成案例的經驗能夠很好地移植到將來實際工作當中,同時也提高了學生的興趣和參與的積極性。軟件開發技術發展變化非???,尤其是開源軟件開發架構,只有掌握最新的開發技術,并掌握其發展脈絡,才能開發出更高效的軟件系統。

(3)教學方法上,項目驅動取代教材驅動,突出學生的自主性。教材的更新速度與軟件及其開發技術的更新速度是不相匹配的,一個實用性強的案例和最新的軟件開發技術很難反映在一本教材上。因此采用項目驅動的教學方式取代教材驅動的教學方式,針對案例開發過程中所用到的技術,把最新的相關知識教給學生,并引導學生通過互聯網自主學習。

2 課程的教學實踐

2.1案例選擇

教師團隊首先要自己完成案例選題、設計和開發,并以此為基礎,向學生講授開發經驗,指導學生動手完成案例開發。課程以“基于移動互聯網的速遞物流跟蹤系統”作為案例,具有較強的前沿性和實用性。這是一個適合小件速遞運營的物流管理和跟蹤的原型系統,結合移動互聯網技術,能夠給客戶提供及時、透明的物流信息;同時為物流公司提高運行效率提供必要的保障信息。軟件的功能覆蓋從收件、轉運、分發到派送簽收的整個流程,涉及到服務器端、手機客戶端和網頁瀏覽器端的開發。

2.2教學方式

課堂教學、實驗和討論等多種教學方式相結合,體現了課程理論與實踐相結合的特點。具體教學方式如下:

(1)教師授課。提出系統的功能需求、分析需求的合理性、探討業務改良;介紹所采用的相關技術、數據模型和對象模型的大致思路;簡單介紹建模方法、開發方法、開發框架、開發環境及開發工具。

(2)學生自學和實踐。需求的理解、數據模型和對象模型的理解和模型的建立;建模工具、開發環境及開發工具的使用;代碼實現和調試。學生按5-6人一組分組,每小組中選派項目組長,學生在集體理解總體思路和技術手段的基礎上,分工合作完成項目的設計和開發。

(3)討論和輔導。在分析、設計、實現、測試等各個階段,教師組織學生描述個自小組項目的進展狀況和技術方案;學生同時可以提出自己的思路以及疑問,教師予以評價和解答。教師至少一次對學生的方案水平、講述的表達進行評價。

(4)階段驗收和總體驗收。在課程的中期和最后階段,教師對學生的原型系統和最終實現作品進行評審,給出評審成績。

2.3教育內容

不同教學方式的教學內容如下:

(1)課堂教學,主要進行案例的分析,為軟件開發實踐奠定基礎。

①需求的描述與改良。描述案例的需求,包括功能需求的清單描述、應用場景(用況)的描述;對需求分析和信息化新技術對業務的改良的探討;引導學生使用軟件新技術解決業務需求。從實用性出發描述同類或類似系統的應用現狀,如:同類系統功能狀況,同類系統的缺陷;關鍵技術的解決的方案,解決需求的技術現狀;擬使用的技術手段等。這部分內容以教師講授為主,同時提出問題留作學生思考和討論。

②系統架構模型的選擇和依據。根據應用場景和系統的規模選擇系統的軟件平臺和開發環境。針對需求介紹分層架構模型設計思路,從軟件架構的角度描述模型選擇的依據。引導學生設計軟件的分層模型;在教師的指導下,由學生各個項目小組分別設計軟件的總體架構,包括:子系統(或功能模塊)的劃分,軟件的分層結構及層間的主要功能耦合;指導每組學生做出軟件的架構描述和各個業務處理的軟件總體數據流程。

③數據模型和數據服務框架。數據模型的設計,包括數據庫的表、視圖、約束關系的設計,結合案例分析設計的思路和可能的變化。數據服務框架的設計及實現技術,使用數據庫持久層框架Hibernate實現的數據-對象映射。數據訪問的性能優化,對象緩存、合理冗余的使用等。

④軟件開發技術與軟件框架。系統采用Java語言開發,數據庫的管理使用MySQL,使用Web Service開發架構,服務器端基于CXF+Spring+Hibernate框架,手機客戶端基于Android平臺,包括條碼掃描、GPS定位、地圖顯示等功能,同時提供BS結構的數據訪問與管理。

⑤子系統與設計的細化。進一步細化設計,為后面的軟件開發實踐做準備。服務的設計,采用JSON作為服務數據交換格式,實現數據對象與字符串的輕量級的轉換。人機界面的設計,采用一些開源框架進行Web頁面的設計,介紹Android客戶端界面設計的方法。

(2)實驗內容,主要是軟件開發實踐,參與一個應用軟件開發的全過程??梢约毣癁橐韵聦嶒灢⒅贫▽嶒灤缶V:需求分析,理清業務流程,確定軟件的功能;對象模型設計及數據庫模型設計;開發環境的搭建;Web服務的實現;網頁界面設計與功能實現;Android界面設計及功能實現;二維碼掃描;地圖展示。

(3)討論課內容

借鑒實際項目開發經驗,定期組織項目評審對學生項目進展狀況進行評價,發現問題及時解決,不斷優化開發方案。根據項目完成情況及個人貢獻給出評審結果,作為學生課程成績的重要依據。至少要對原型系統和最終系統進行項目評審。項目評審的形式是由學生展示項目進展及個人貢獻,回答教師的提問。

2.4學時安排

表1是一個學時安排的參考。一共64學時,其中實驗32學時,主要用于項目開發實踐。習題及討論課8學時,主要用于原型系統評審和最終系統的驗收評審。理論課24學時,主要講授案例的分析、設計及用到的開發技術、框架、環境等。

表1 學時安排表

3 對工程教育畢業要求的支撐

工程教育是我國高等教育的重要組成部分,工程教育專業認證為教育機構工程類人才培養提供指導和保障,工程教育以出口為導向,專業的課程設置、師資配備等必須使得認證標準中的畢業要求得到達成。軟件工程作為工程教育的一部分,課程設置也必須支撐畢業要求的達成。

2015年工程教育專業認證通用標準中畢業要求有12條,包括工程知識、問題分析、設計開發解決方案、研究、使用現代工具、工程與社會、環境和可持續發展、職業規范、個人和團隊、溝通、項目管理以及終身學習。每一條要求可以分解為幾個指標點,每一門課程支撐一到幾個指標點的達成。

案例分析與實踐課程支撐畢業要求3(設計開發解決方案)中的3個指標點3-1、3-2、3-3和畢業要求9(個人和團隊)中的指標點9-2。指標點具體描述如下:

指標點3-1)具有軟件項目問題定義、可行性分析及需求分析的能力;

指標點3-2)具有軟件項目系統設計及詳細設計的能力;

指標點3-3)具有軟件項目編碼實現的能力;

指標點9-2)具有一定的表達能力、人際交往能力和團隊協作能力。

本課程中支撐畢業要求達成的具體實現途徑如下:

(1)課堂教學的安排支撐畢業要求指標點3-1、3-2、3-3的達成

課堂教學通過對一個具體的、有實用價值的案例的分析,展示一個項目開發過程中需求分析、軟件設計、編碼實現及軟件測試等開發階段的主流的方法與技術,結合實驗安排中項目開發的實踐,理論與實踐結合培養學生相關的能力。

(2)實驗的安排支撐畢業要求指標點3-1、3-2、3-3和9-2的達成

實驗安排就是一個應用軟件的開發實踐,學生分成項目組的形式,分工協作,完成從需求分析、軟件設計、編碼實現、軟件測試等整個工作流程,因此可以鍛煉學生軟件開發的分析、設計、編碼實現能力及團隊協作能力。

(3)討論課的安排支撐畢業要求指標點9-2的達成

在討論課上,學生要做報告展示項目的進展和自己的貢獻,由于項目是分工合作,需要大家相互配合,充分展示,還要回答教師的問題,這可以鍛煉學生的表達能力和團隊協作能力。

4 結語

本文提出了一個面向工程教育的軟件工程案例分析與實踐課程,介紹了課程的特點以及課程的教學實踐,包括教學方式、教學內容、學時安排等,分析了課程對工程教育畢業要求的支撐。該課程安排在軟件工程專業第六學期,過去兩年的教學實踐表明,該課程對于提高學生分析、設計及實現復雜系統的能力以及團隊協作能力很有幫助,我們將在工程教育專業認證這個大背景下繼續探索課程的教學規律,改進教學方法。

[1]王文凡,王麗娟.基于項目開發能力培養的教學新模式[J].現代計算機,2015(5)下:34-36.

[2]劉春.以Android應用為案例的軟件工程教學[J].計算機教育,2015(11):75-77.

[3]趙輝,李萬龍,鄭山紅,張麗娟.項目導向案例驅動的軟件工程教學模式[J].計算機教育,2012(10):89-92.

[4]葉俊民,胡金柱,李蓉,周偉,李敏.軟件工程案例教學研究[J].計算機教育,2007(7):19-21.

Engineering Education;Software Engineering;Case Analysis and Practice;Teaching Reformation

Software Engineering Case Analysis and Practice Course for Engineering Education

JIA Yu-xiang1,CHEN Zheng-yan2
(1.School of Information Engineering,Zhengzhou University,Zhengzhou 450001;2.Department of Information Technology,Henan Institute of Education,Zhengzhou 450046)

國家自然科學基金項目(No.61402419)、鄭州大學校級教學改革研究項目(No.2014XJGLX070)

1007-1423(2015)27-0009-04

10.3969/j.issn.1007-1423.2015.27.003

賈玉祥(1981-),男,河南周口人,博士,講師,研究方向為自然語言處理

2015-08-06

2015-09-07

案例分析對培養學生分析、設計及實現復雜軟件系統的能力十分重要,針對目前軟件工程專業案例分析課程存在的理論與實踐脫節、案例與技術的實用性與前沿性低等問題,提出分析與實踐相結合的案例分析與實踐課程,介紹該課程的教學實踐,包括案例的選擇、教學方法、教學內容、學時安排等方面,分析課程對工程教育畢業要求的支撐,可以為軟件工程專業課程設置及教學改革提供借鑒。

工程教育;軟件工程;案例分析與實踐;教學改革

陳爭艷(1981-),女,河南新鄉人,碩士,講師,研究方向為軟件工程

Case analysis course is important for training students abilities of analyzing,designing and implementing complex software systems.But in existing case analysis courses,theory and practice are not well combined,while cases and techniques are usually out of date.To cope with such problems,proposes the course of case analysis and practice.Introduces teaching practice,including case selection,teaching methods,teaching contents,and teaching hours arrangement,and analyzes the support of this course to the graduation requirements of engineering education.

猜你喜歡
學時案例軟件
第二課堂成績單制度下的學時發放標準的探索
——以中國民用航空飛行學院為例
《詩詞寫作》課程教學大綱(節選)
禪宗軟件
案例4 奔跑吧,少年!
教學大綱國畫(工筆花鳥)
探索學時積分制 構建階梯式成長激勵體系
隨機變量分布及統計案例拔高卷
軟件對對碰
發生在你我身邊的那些治超案例
一個模擬案例引發的多重思考
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合