彭珍連,曹步清,劉建勛
(湖南科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,湖南 湘潭 411201)
2017 年 2 月 18 日,教育部高等教育司張大良司長在綜合性高校工程教育發(fā)展戰(zhàn)略研討會上強(qiáng)調(diào):當(dāng)前新經(jīng)濟(jì)快速發(fā)展迫切需要新型工科人才支撐。隨后,教育部于同年6月9日在北京召開新工科研究與實(shí)踐專家組成立暨第一次工作會議,審議通過了《新工科研究與實(shí)踐項(xiàng)目指南》[1]。根據(jù)指南要求,新工科應(yīng)該服務(wù)于新經(jīng)濟(jì)、新產(chǎn)業(yè)。從普通高校層面來說,一方面要開設(shè)和發(fā)展新興工科專業(yè),另一方面要推動現(xiàn)有工科專業(yè)的改革創(chuàng)新,主動布局面向未來技術(shù)和產(chǎn)業(yè)的人才培養(yǎng)。為加快實(shí)現(xiàn)我國工程教育強(qiáng)國的夢想,普通高校應(yīng)該構(gòu)建新工科與傳統(tǒng)工科相結(jié)合的學(xué)科專業(yè)新結(jié)構(gòu),探索新工科背景下課程教學(xué)新模式,提高普通高校教育質(zhì)量和人才培養(yǎng)質(zhì)量[2]。
需求工程自20世紀(jì)90年代以來,逐漸成為獨(dú)立于軟件工程的一個研究領(lǐng)域,越來越受到國內(nèi)軟件開發(fā)者和實(shí)踐者的重視。近年來,隨著知識工程研究的不斷成熟,需求獲取、分析與演化(管理)等領(lǐng)域也越來越成為國內(nèi)外許多學(xué)者研究的熱點(diǎn),為需求工程課程教學(xué)提供了新的研究理論和研究方法。
需求工程課程作為軟件工程方向的專業(yè)課之一,得到了全國各個開設(shè)了軟件工程專業(yè)的高校的廣泛關(guān)注。它具有理論性強(qiáng)、專業(yè)性強(qiáng)、領(lǐng)域性突出的特點(diǎn)[3]。在理論方面,該課程要求學(xué)生能夠熟悉需求工程各個階段的知識,有扎實(shí)的編程基礎(chǔ);還能夠掌握和運(yùn)用其他非專業(yè)能力知識,例如認(rèn)知心理學(xué)、社會學(xué)、語言學(xué)、哲學(xué)等知識,去交流、提問、傾聽,能有效團(tuán)隊(duì)協(xié)作等。在實(shí)驗(yàn)環(huán)節(jié),該課程要求學(xué)生能夠采用相關(guān)的工具、技術(shù)和方法,對現(xiàn)實(shí)世界進(jìn)行觀察,發(fā)現(xiàn)問題,獲取需求,分析與建模,并按照規(guī)范編寫軟件需求規(guī)格說明文檔,驗(yàn)證文檔正確性、統(tǒng)一性等特點(diǎn)。因此,該課程的教學(xué)能夠提高軟件工程專業(yè)大學(xué)生的整合能力、抽象能力、系統(tǒng)化思想的分析技能;培養(yǎng)他們表達(dá)與溝通能力、語言駕馭能力;培養(yǎng)他們觀察與建模技能;培養(yǎng)他們文檔組織能力;培養(yǎng)他們發(fā)現(xiàn)用戶自己都很難意識到的潛在需求的能力[4]。
需求工程教學(xué)模式研究目的是以當(dāng)前市場需求為導(dǎo)向,建立合理的需求工程課程體系,將需求工程新的技術(shù)和方法傳授給學(xué)生,并加強(qiáng)需求開發(fā)過程和需求管理過程的能力培養(yǎng),使他們能真正掌握基本的需求分析原理和方法。為了讓軟件工程專業(yè)的大學(xué)生能夠積極主動地參與需求工程課堂學(xué)習(xí),激發(fā)他們的學(xué)習(xí)興趣,提高軟件工程專業(yè)課堂教學(xué)效果,提高學(xué)生的實(shí)踐能力,以培養(yǎng)適應(yīng)當(dāng)前新工科建設(shè)形勢下軟件工程方向的高素質(zhì)專業(yè)人才,也是需求工程課程教學(xué)模式改革的核心內(nèi)容。
經(jīng)過多年從事實(shí)際的需求工程課程教學(xué),筆者發(fā)現(xiàn)該課程的理論教學(xué)和實(shí)驗(yàn)教學(xué)開展難度都比較大,具體體現(xiàn)為以下幾個方面的問題。
(1)由于湖南科技大學(xué)軟件工程本科專業(yè)新建于2015年,時間相對較短,在專業(yè)培養(yǎng)方案初期,需求工程課程的培養(yǎng)目標(biāo)和內(nèi)容不是特別清楚。例如,將課程命名為需求工程與UML,從而使大學(xué)生普遍認(rèn)為需求工程與UML是并列或平行的關(guān)系,而不能認(rèn)識到UML只是需求工程中需求分析的一個建模工具。
(2)需求工程這一研究領(lǐng)域正在發(fā)展中,目前仍缺乏國際公認(rèn)的知識體系[4-5]。在理論上,本課程的教材比較少,而且這些為數(shù)不多的教材內(nèi)容區(qū)別比較大,側(cè)重點(diǎn)不同,譬如有的教材偏重需求工程過程,而有的教材偏重需求的形式化表示方法。實(shí)踐應(yīng)用中,需求工程的新技術(shù)和方法不斷涌現(xiàn),實(shí)踐內(nèi)容很難做到統(tǒng)一規(guī)范。因此,市場上幾乎找不到需求工程課程的配套實(shí)驗(yàn)教材,導(dǎo)致實(shí)踐課的內(nèi)容選擇相當(dāng)困難。
(3)教學(xué)內(nèi)容比較抽象。需求工程課程內(nèi)容主要包括需求工程的概念、過程,需求獲取技術(shù)和方法,需求分析技術(shù)和方法,需求管理技術(shù)和工具等,這些知識除了涉及軟件開發(fā)和管理知識領(lǐng)域,也涉及心理學(xué)、社會學(xué)、語言學(xué)等領(lǐng)域。這些內(nèi)容都很抽象,對大二學(xué)生來說,會感到課程內(nèi)容枯燥,逐漸失去該課程的學(xué)習(xí)興趣。
(4)教學(xué)模式比較單一。需求工程課程目前的教學(xué)方法仍然采取傳統(tǒng)的教學(xué)模式,即以教師課堂授課為主,教學(xué)中側(cè)重基礎(chǔ)理論和方法,兼以少量的案例演示。而在相關(guān)抽象概念、技術(shù)、建模方法等實(shí)踐環(huán)節(jié)方面做得不夠到位,學(xué)生很難深入掌握和理解該課程的理論知識。另外,與其他高校一樣,該課程的課時一般較少,限制了學(xué)生實(shí)踐能力的發(fā)展[6]。
(5)考核方法不夠全面。湖南科技大學(xué)需求工程課程的考核方式基本采用傳統(tǒng)的考核方式,例如以閉卷形式為主(占70%),以平時成績?yōu)檩o(占30%),其中平時成績包括點(diǎn)到、課堂表現(xiàn)、平時作業(yè)或?qū)嶒?yàn)報(bào)告等。大量實(shí)踐證明,這種傳統(tǒng)考核方式不夠全面,太偏重于期末考試成績,即太注重需求工程基本理論知識的測試,而忽略了需求工程課程中綜合應(yīng)用知識的整體考查。
好的教學(xué)模式離不開清晰的課程培養(yǎng)方式。需求工程課程是湖南科技大學(xué)軟件工程專業(yè)大學(xué)生的學(xué)位必修課之一,最初確定課程的培養(yǎng)方式為理論課,課程名為需求工程與UML,共56課時。如前所述,這樣的課程培養(yǎng)方式存在一定的問題。因此,2017級軟件工程專業(yè)課程培養(yǎng)方案調(diào)整時將該課程更名為軟件需求工程,并調(diào)整為理論與實(shí)踐相結(jié)合的方式,即32個理論課時和16個實(shí)踐課時。通過這種方式,軟件工程專業(yè)大學(xué)生很容易明白軟件需求工程是一個獨(dú)立的課程,UML只是軟件需求工程中面向?qū)ο笮枨蠓治龇椒ㄖ械囊环N工具。另外,這種方式既兼顧了大學(xué)生能夠?qū)W習(xí)需求工程課程的理論基礎(chǔ)知識,又能保證大學(xué)生在具體的實(shí)踐過程中加深對需求工程理論基礎(chǔ)知識、技術(shù)、方法與工具的理解。
選擇和編寫合適的教材是提高教學(xué)效果的基礎(chǔ)?,F(xiàn)有的需求工程課程教材比較少,而且它們之間的側(cè)重點(diǎn)有所不同。經(jīng)過多次比較和選擇,理論課教材選定了由南京大學(xué)駱斌教授主編、高等教育出版社出版的《需求工程——軟件建模與分析》[7]。對于需求工程初學(xué)者,該教材的內(nèi)容比較豐富,能夠深入淺出地解釋需求工程的基本理論知識。對于實(shí)踐教材,目前幾乎沒有找到相應(yīng)的配套教材,筆者根據(jù)理論知識對應(yīng)的案例進(jìn)行編寫,具體實(shí)踐內(nèi)容包括需求獲取技術(shù)與方法、結(jié)構(gòu)化需求分析方法、面向?qū)ο笮枨蠓治龇椒ㄒ约靶枨笠?guī)格說明文檔編寫等。其中,需求獲取包括用例場景、面談、調(diào)查問卷與原型等案例內(nèi)容;結(jié)構(gòu)化需求分析包括數(shù)據(jù)流圖與數(shù)據(jù)字典等案例內(nèi)容;面向?qū)ο蠓治霭ㄓ美龍D、類圖、活動圖、狀態(tài)圖、順序圖、協(xié)作圖等案例內(nèi)容。
優(yōu)化課程內(nèi)容是不斷適應(yīng)新工科要求的必然選擇。隨著軟件需求工程技術(shù)和方法的不斷涌現(xiàn),需求工程課程內(nèi)容非常豐富,概念性和抽象性強(qiáng)。經(jīng)過多年教學(xué)經(jīng)驗(yàn),選擇需求開發(fā)過程和需求管理過程為課程的教學(xué)內(nèi)容。其中,需求開發(fā)過程為重點(diǎn)教學(xué)內(nèi)容,而需求管理過程為可選教學(xué)內(nèi)容,見圖1。
圖1 需求工程教學(xué)內(nèi)容分配
需求開發(fā)過程和需求管理過程統(tǒng)稱為需求工程過程。其中,需求開發(fā)過程包括需求獲取、需求分析、需求規(guī)格說明與需求驗(yàn)證,需求管理過程包括需求變更與需求跟蹤。需求獲取的重點(diǎn)教學(xué)內(nèi)容包括涉眾分析、硬數(shù)據(jù)采樣、基于用例場景模型、面談、原型、觀察和文檔審查。需求分析的重點(diǎn)教學(xué)內(nèi)容包括結(jié)構(gòu)化需求分析方法和面向?qū)ο笮枨蠓治龇椒?。結(jié)構(gòu)化需求分析方法以數(shù)據(jù)流圖、狀態(tài)轉(zhuǎn)換圖為重點(diǎn)授課內(nèi)容;面向?qū)ο笮枨蠓治龇椒ㄒ杂美龍D、類圖、活動圖、狀態(tài)圖、順序圖、協(xié)作圖、組件圖與部署圖模型為主。需求規(guī)格說明以需求規(guī)格說明書的國際或國家撰寫標(biāo)準(zhǔn)為主,需求驗(yàn)證主要講解需求評審方法。
行之有效的教學(xué)方法是教學(xué)模式發(fā)揮作用的有力保證。需求工程課程包含的內(nèi)容非常多,這些內(nèi)容之間的差異性非常大,在教學(xué)過程中采用同一種教學(xué)方法勢必影響教學(xué)效果。因此,實(shí)際課堂采用內(nèi)容差異化教學(xué)方法,即根據(jù)不同的內(nèi)容使用不同的教學(xué)方法。
對于需求工程過程涉及的眾多概念性內(nèi)容,譬如軟件需求定義、需求工程等理論知識,迭代反饋式教學(xué)方式[8]可以發(fā)揮有效作用。迭代反饋式教學(xué)方式通過典型案例介紹需求工程研究的最新概念、經(jīng)典技術(shù)與方法及未來發(fā)展方向,擴(kuò)大學(xué)生的知識視野;學(xué)生通過這些案例分析,采取分組討論的方式進(jìn)行實(shí)踐,并將實(shí)踐中遇到的問題反饋給任課教師;任課教師將反饋的問題進(jìn)行解釋和闡述;如此反復(fù),直到學(xué)生理解清楚這些抽象概念為止。例如,講解需求、問題、問題域和解系統(tǒng)的時候,以連鎖超市管理系統(tǒng)作為案例,可以將用戶對現(xiàn)有超市管理中的期望看作需求,期望與現(xiàn)實(shí)中的差距看作問題,現(xiàn)實(shí)中的超市管理相關(guān)業(yè)務(wù)知識看作問題域,而將解決問題的軟件系統(tǒng)解決方案看作解系統(tǒng),讓學(xué)生分組討論,討論結(jié)果與問題反饋給任課教師,由教師負(fù)責(zé)解釋和說明。實(shí)踐和調(diào)查結(jié)果顯示,這種方式提高了學(xué)生對需求工程中抽象概念的理解和掌握。
對于需求工程過程中的技術(shù)、方法或者工具等知識點(diǎn),項(xiàng)目與案例驅(qū)動方法[9]可以收到較好的教學(xué)效果。例如,講解面談、原型等需求獲取技術(shù)與方法、Rational Rose等UML建模工具內(nèi)容時,由教師指導(dǎo),將圖書管理系統(tǒng)、教務(wù)管理系統(tǒng)、高校二手交易系統(tǒng)、在線教學(xué)系統(tǒng)等獨(dú)立項(xiàng)目交給學(xué)生處理;學(xué)生仍然采取分組方式,每組3~5人,自行選擇感興趣的項(xiàng)目;要求學(xué)生完成需求信息收集、需求建模分析、需求文檔編寫及需求評審等工作。學(xué)生通過這些項(xiàng)目實(shí)踐,了解并掌握整個過程和每個階段的基本要求。項(xiàng)目與案例驅(qū)動教學(xué)法倡導(dǎo)以學(xué)生自主學(xué)習(xí)為中心,教師在教學(xué)過程中起指導(dǎo)、組織和幫助作用。通過這種教學(xué)方法的實(shí)施,學(xué)生的知識串聯(lián)能力、交流溝通能力、團(tuán)隊(duì)協(xié)作能力以及文檔撰寫能力都得到了明顯的進(jìn)步。
在實(shí)踐課程過程中,成果導(dǎo)向教育(Outcomes-based Education,OBE)理念[10]可以貫穿該實(shí)踐課程教學(xué)過程。具體來講,可以采用學(xué)生分組完成一個項(xiàng)目成果,每組學(xué)生不能超過3人,項(xiàng)目成果包括需求獲取結(jié)果文檔,數(shù)據(jù)流圖、數(shù)據(jù)字典等結(jié)構(gòu)化需求分析文檔,各種圖模型的面向?qū)ο蠓治鲂枨蠓治鑫臋n,軟件需求規(guī)格說明書編寫與評審文檔等。通過這種成果導(dǎo)向教育方式,軟件工程專業(yè)大學(xué)生的建模能力和文檔撰寫能力明顯提升。
改革教學(xué)考核方式是檢驗(yàn)教學(xué)效果的有效手段。湖南科技大學(xué)需求工程課程目前采用傳統(tǒng)的考核方式,即平時考核和期末考核兩部分。平時考核占總成績的30%,期末考試占總成績的70%。今后的教學(xué)將逐步增加平時考核成績的比重,如平時考核成績提高為40%,并采取多次考核的方式,形式可以為實(shí)驗(yàn)報(bào)告、分析模型或者可運(yùn)行原型等;期末考核逐步采用開卷方式,對現(xiàn)實(shí)案例分析進(jìn)行考核,重點(diǎn)考核大學(xué)生對現(xiàn)實(shí)項(xiàng)目的綜合運(yùn)用能力和實(shí)踐能力。這些現(xiàn)實(shí)案例按一定比例(如50%)來源于平時的實(shí)驗(yàn)項(xiàng)目,激勵學(xué)生重視平時實(shí)驗(yàn),防止部分學(xué)生在分組實(shí)驗(yàn)過程中“打醬油”,督促他們積極主動,不能偷懶。
新工科背景下,在軟件工程專業(yè)的課程開展問題的教學(xué)模式的嘗試,取得了初步的效果,一定程度上促進(jìn)了軟件工程專業(yè)大學(xué)生需求獲取、需求分析方面能力的提高。但是需求工程課程的教學(xué)模式改革是個系統(tǒng)工程,本文討論的教學(xué)模式只是一些淺層模式的嘗試,許多新的課程教學(xué)方法值得進(jìn)一步完善和改進(jìn),使這些方法也能在軟件工程其他專業(yè)課程的教學(xué)實(shí)踐中加以推廣和應(yīng)用。