谷科
摘 要 本文根據目前社會的發(fā)展和IT行業(yè)的需求,分析了軟件工程課程教學的必要性和客觀性,同時對實際教學中的一些內容結合目前的計算機發(fā)展技術(如大數據和云計算),進行了分析與探討,提出了從實踐項目驅動出發(fā),以理論教學結合軟件實踐開發(fā)項目的指導方式作為主要的教學手段,注重以實踐掌握知識為主、理論學習為輔的理念,在介紹軟件工程理論的同時重點組織同學以實際需求和設計為導向進行軟件過程的管理與學習,使得計算機專業(yè)的學生在了解軟件開發(fā)過程的相關技術同時,能夠對軟件開發(fā)流程有所了解和初步掌握,為適應目前IT行業(yè)的發(fā)展提供必要的基礎。
關鍵詞 軟件工程 課程教學 教學內容 實踐開發(fā)
中圖分類號:G424 文獻標識碼:A DOI:10.16400/j.cnki.kjdkz.2017.07.062
1 教學理念
隨著互聯(lián)網絡和IT技術的快速發(fā)展,IT技術的服務無處不在,軟件開發(fā)已經成為計算機專業(yè)的大學生掌握的必須技能,能夠更好地運用當今流行的軟件開發(fā)技術手段開發(fā)程序,已經成為計算機專業(yè)的學生在激烈的社會競爭中能夠獲勝的關鍵。所以,在當今的IT技術時代,特別是大數據和云計算快速發(fā)展的時代,對于計算機專業(yè)的本科生來說,系統(tǒng)地掌握軟件開發(fā)技術的各個環(huán)節(jié)并使其有機結合,同時運用軟件工程開發(fā)過程的技術來組織軟件開發(fā)過程的所有資源并綜合地處理軟件開發(fā)過程已經成為計算機行業(yè)的基礎需求技能。所謂軟件工程,是指系統(tǒng)地運用工程管理的知識來組織、運行、開發(fā)和維護有用的、高效的和高質量的軟件學科。軟件工程主要包括人員管理、項目管理、可行性與需求分析、系統(tǒng)設計、程序設計、測試和維護等過程。因此,對于計算機專業(yè)的學生來說,掌握必要的軟件開發(fā)過程,了解和掌握軟件開發(fā)過程的建模和管理技術不僅能夠使自己在未來可以更輕松地應付多種復合信息的工作需求,給自己帶來更合理的處理方法,而且也可以提高自己的軟件開發(fā)效率。所以,對一些計算機專業(yè)的學生來說,通過系統(tǒng)地學習掌握軟件過程開發(fā)技術,特別是一些新的軟件開發(fā)動向,如面向服務的軟件開發(fā)和集中式計算架構開發(fā)等,是十分必要的一項教學內容。
目前,軟件工程課程是計算機專業(yè)教學中的一門必修課程。以作者所在的教學單位為例,軟件工程是計算機專業(yè)高年級本科生的一門必修課。該課程主要從軟件工程基本理論出發(fā),將軟件開發(fā)技術的各個環(huán)節(jié)有機結合,全面覆蓋軟件開發(fā)過程,注重培養(yǎng)學生軟件開發(fā)中的綜合職業(yè)技能。主要講授的內容包括軟件開發(fā)規(guī)律概述、軟件開發(fā)方法、軟件開發(fā)平臺與工具、系統(tǒng)分析與建模、IT規(guī)劃與咨詢、軟件開發(fā)項目管理、軟件開發(fā)案例分析等。同時該課程引入云計算和大數據對軟件開發(fā)的需求,重點分析實際軟件開發(fā)案例,使學生掌握軟件開發(fā)的基本規(guī)律與實際管理方法。因此,軟件工程作為一門專業(yè)必修課程,計算機專業(yè)的學生不僅能夠通過這門課程掌握軟件過程的必要技能,如RUP模型和UML等,而且通過實踐的項目分析與設計,學生能夠系統(tǒng)地掌握需求分析和軟件設計的必要技術,如數據流圖DFD如何使用等,使得學生掌握的知識不再停留在理論學習和應付考試上,為學生未來就業(yè)后進入企業(yè)快速融入開發(fā)團隊提供了必需的知識基礎。同時,該課程通過對一些熱門開發(fā)技術的學習,不僅可以提高學生的興趣,激發(fā)學生的潛能,加深學生對軟件開發(fā)技術本質的理解,而且可以提高其相關知識的洞察力與研究能力。[1]
2 教學方法和手段
軟件工程課程的特點是知識內容多、內容實踐性強,沒有實踐難以掌握,例如軟件過程中的用例模型是通過角色、行為和場景來描述和分析軟件開發(fā)過程的模型,因此不僅要求學生在課堂上需要了解什么是用例,掌握用例設計的基本規(guī)則,而且也需要安排時間給學生對于復雜的場景使用用例模型進行設計分析,然后進行課堂討論,講解自己的設計思路如何滿足用戶的需求等。所以,根據軟件工程課程的特點,作者認為在課堂上宜采用“知識細化”、“精講討論”、“詳細分析”等多種多樣的教學形式。
以作者所講授的軟件工程課程為例,本課程以計算機投影開展教學,配以適量的理論教學和知識點討論,并以上機課來培養(yǎng)學生的動手能力,如要求學生使用Powerdesinger軟件進行需求建模。本課程其中投影、理論和討論教學為24學時,上機實驗課為8學時(不含課外上機)。在講授過程中,考慮到該課程注重應用的特點,遵循深入淺出的原則,對概念、原理的解釋和描述盡可能地以日常生活所接觸到的案例和圖示加以對比說明,引導學生掌握軟件工程的開發(fā)過程,建立概念之間和應用之間的聯(lián)系。在討論和上機過程中,以任務驅動方式要求學生完成討論題目和上機實驗,然后及時找出學生上機時遇到的問題,并歸納總結,提高學生相應的能力(教學學時分配見表1)。另外,作者為了讓學生更好熟練地掌握軟件工程的相關知識,通過網絡收集了一些教學視頻和PPT課件,在完成每個學時教學任務的課后都拷貝給學生,讓學生課后回去自學這些知識。
3 教學培養(yǎng)目標
軟件工程課程是一門要求實踐性較高的課程,對從實際的工程開發(fā)中掌握知識有較強的要求。因此,本課程主要介紹當前最流行的軟件開發(fā)技術與環(huán)境,目的是使學生了解軟件開發(fā)過程與組織等技術,掌握當前流行的軟件開發(fā)方法與環(huán)境。本課程的教學目的是讓學生初步地掌握從宏觀和微觀兩個方面如何去開發(fā)軟件系統(tǒng)。使學生學會軟件開發(fā)的原理、技術和方法,提高學生的軟件開發(fā)和軟件工程管理能力:[2,3]
(1)培養(yǎng)學生的思考和動手能力。軟件工程課程包含大量的建模知識,同時提供了一些軟件去實踐這些知識,因此這要求學生不僅掌握建模的基本原則,同時對于實際的項目需求,能夠運用建模知識去分析建模,然后運用相關軟件進行建模概念的設計。
(2)培養(yǎng)學生系統(tǒng)的組織和管理能力。軟件工程課程是一門工程性的課程,它來源于實踐,并用于實踐。軟件工程的復雜性在于它是涉及軟件開發(fā)的各種環(huán)節(jié)和資源相互協(xié)調工作的知識。因此,培養(yǎng)學生掌握好軟件工程的知識,對于學生今后職業(yè)規(guī)劃有重要的幫助,能夠為學生往高層次的IT人才發(fā)展提供必要的知識儲備。
4 總結
本文結合作者的實際教學工作和在教學改革方面的分析與探索,從教學理念、教學方法與手段、教學培養(yǎng)目標等方面,對計算機專業(yè)的軟件工程課程的教學改革進行了分析與探討,提出了以實際項目驅動和課堂知識點討論作為課堂教學手段,把軟件工程相關理論知識學習作為實踐的教學內容,注重實踐為主、理論為輔的理念。目前,對于計算機專業(yè)的學生來說,軟件工程課程的本科生教學改革有著十分重要的意義與作用,其教學內容與教學手段也應該要適應社會需求的變化。
參考文獻
[1] 許波,陳曉龍.UML結合軟件工程教學改革探討[J].計算機教育,2011(2):34-37.
[2] 崔寅生.談談軟件工程教學改革的實踐[J].成人教育,2009(12):85-86.
[3] 趙越.學習性評價機制在軟件工程教學改革中的應用研究[J].吉林建筑工程學院學報,2015(3):112-114.endprint