李敬輝,張寧,白麗瑞,殷妍
摘要:該文分析了當(dāng)前軟件工程類課程教學(xué)中存在的現(xiàn)實(shí)問題,明確了在專業(yè)背景下解決與專業(yè)相關(guān)的任務(wù)所需要素質(zhì)的培養(yǎng)仍然是教師作為專業(yè)課教學(xué)的首要目標(biāo)。文章根據(jù)《計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)規(guī)范》中軟件工程方向知識(shí)體系和核心課程描述,對應(yīng)用型本科如何培養(yǎng)學(xué)生專業(yè)能力進(jìn)行了研究,并在軟件工程及其應(yīng)用課程中進(jìn)行了教學(xué)改革與探索,為新工科高質(zhì)量工程技術(shù)人才的培養(yǎng)提供了參考。
關(guān)鍵詞:軟件工程;能力培養(yǎng);敏捷;工程化
中圖分類號(hào):G424? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)20-0098-03
Teaching Reform and Practice of Software Engineering and Its Application Course for Ability Training
LI Jing-hui,ZHANG Ning,BAI Li-rui,YIN Yan
(Tianjin University Renai College, Tianjin 301636,China)
Abstract:This paper analyzes the practical problems existing in the current software engineering course teaching, and clarifies that the cultivation of the qualities needed to solve the tasks related to the major under the professional background is still the primary goal of the teacher as the professional course teaching. According to the knowledge system of software engineering direction and the description of the core course in “Computer Science and Technology Professional Standard”, this paper studies how to cultivate students' professional ability in applied undergraduate course, and carries on the teaching reform and exploration in the course of Software Engineering and its Application, which provides a reference for the cultivation of high quality engineering and technical talents in new engineering subjects.
Kew words:software engineering; ability training; agile; engineering
1 引言
“能力”是能夠出色地做完一項(xiàng)事情,評判人們能夠達(dá)到什么樣素質(zhì)水平,能不能完成一個(gè)目標(biāo)或者使命的基本標(biāo)準(zhǔn)。我們一直在討論或定義大學(xué)生完成學(xué)業(yè)后,無論進(jìn)入社會(huì)還是繼續(xù)深造,已經(jīng)具備的素質(zhì)、技能、習(xí)慣能不能被社會(huì)認(rèn)可?如果大部分不被認(rèn)可,那么問題來了,是學(xué)校的問題還是學(xué)生的問題。我們說應(yīng)該都有問題,但主要問題歸結(jié)于為什么我們沒能讓學(xué)生畢業(yè)時(shí)具備這些能力,學(xué)生不會(huì)將自己的知識(shí)打造成解決問題的利器,無論學(xué)了多少知識(shí),掌握沒掌握,都不很擅長利用這些知識(shí)解決各類問題。
2 教學(xué)中存在的問題
目前,大部分高校軟件工程這類課程大多數(shù)按照經(jīng)典的瀑布模型來講的,但是學(xué)生們學(xué)習(xí)這種課程時(shí)基本會(huì)出現(xiàn)如下問題:1)壓根不知道用戶故事的概念,產(chǎn)品主要業(yè)務(wù)是哪些,業(yè)務(wù)流程是怎樣的,聽不懂睡會(huì)兒;2)這么多模型圖我究竟要在哪個(gè)階段畫哪個(gè)圖?用工具最終學(xué)會(huì)了所謂UML圖,再?zèng)]有別的; 3)到了實(shí)現(xiàn)階段,團(tuán)隊(duì)不是討論得太細(xì)就是一個(gè)人在那里猛干,UML圖早已扔到一邊,什么團(tuán)隊(duì)協(xié)作,根本不能落地;4)實(shí)現(xiàn)時(shí)也只有大概五分之一人開始寫代碼,其他人不知道該干點(diǎn)啥,代碼大部分都不能工作,有嚴(yán)重缺陷;5)發(fā)布階段搞到最后一定到最后檢查的那一天,還在調(diào)試程序,美化PPT;6)維護(hù)階段時(shí)差不多課程快結(jié)束了,同學(xué)們對自己的產(chǎn)品沒有任何維護(hù),放假了;最后,大部分同學(xué)都說這課沒用,要么聽不懂要么累得慌,也沒學(xué)到什么東西,老師講得不行。下個(gè)學(xué)期新的一批學(xué)生會(huì)重復(fù)這個(gè)過程。
3 面向能力培養(yǎng)的軟件工程及其應(yīng)用課程的改革理念和措施
3.1 關(guān)鍵需要培養(yǎng)學(xué)生軟件工程的思維與能力
能力1:將軟件工程觀念深入到“骨髓”
軟件工程及其應(yīng)用要求的是40學(xué)時(shí)講課,24學(xué)時(shí)上機(jī)。從第一節(jié)課到最后一堂課,始終灌輸給學(xué)生軟件工程的觀念,如軟件工程和計(jì)算機(jī)科學(xué)的關(guān)系、源代碼管理、軟件規(guī)格說明書、代碼規(guī)范等知識(shí)點(diǎn),使學(xué)生盡快產(chǎn)生固有的軟件工程思維,讓軟件和工程的觀念深入學(xué)生的骨髓[1]。
能力2:遵循工程思維觀察和分析現(xiàn)象,提出并權(quán)衡解決方案
教給學(xué)生用故事點(diǎn)、問題描述、代碼復(fù)審、敏捷模型、Scrum等工程化思維分析需求和管理項(xiàng)目,通過三至四個(gè)課外實(shí)踐項(xiàng)目讓學(xué)生鍛煉和權(quán)衡所需的方案,并有效實(shí)施。
課程的實(shí)踐環(huán)節(jié)分為“兩類三階段”,如圖3所示。兩類是指課內(nèi)上機(jī)和課外實(shí)踐,課外實(shí)踐不占學(xué)時(shí),利用學(xué)生自己業(yè)余時(shí)間完成由淺入深、由易到難、由個(gè)體到團(tuán)隊(duì)的“三階段”實(shí)踐項(xiàng)目。簡單的個(gè)人項(xiàng)目、初級(jí)團(tuán)隊(duì)項(xiàng)目(涉及協(xié)作且有一定代碼量)和中型成熟項(xiàng)目,按照進(jìn)度很自然地被安排在課程的前中后三個(gè)階段,教師在每個(gè)項(xiàng)目開始前都會(huì)要求學(xué)生將現(xiàn)階段所講的知識(shí)與方法應(yīng)用并權(quán)衡實(shí)施,驗(yàn)證學(xué)生是否可以在該課程進(jìn)度下具備了解決復(fù)雜軟件問題的技術(shù)能力。