鄭宇
摘? 要:軟件需求分析的好壞是軟件項(xiàng)目成敗的關(guān)鍵,《軟件需求分析》課程也是軟件工程專業(yè)的核心課程,本文分析了《軟件需求分析》這門課程在傳統(tǒng)教學(xué)模式下普遍存在的問題,對本課程從理論教學(xué)、實(shí)踐教學(xué)、考查方式等各個(gè)方面進(jìn)行教學(xué)方式的改革,通過在實(shí)際的教學(xué)過程中的實(shí)踐,重點(diǎn)培養(yǎng)學(xué)生的自主學(xué)習(xí)能力,分析問題、解決問題的動(dòng)手實(shí)踐能力,逐步形成與社會(huì)需求相適應(yīng)的軟件工程人才的教學(xué)模式。
關(guān)鍵詞:軟件需求分析? 軟件工程? 教學(xué)改革? 探討實(shí)踐
中圖分類號:G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1674-098X(2021)06(c)-0117-03
Abstract: The quality of software requirement analysis is the key to the success or failure of software projects. Software Requirement Analysis course is also the core course of software engineering major. This paper analyzes the common problems of Software Requirement Analysis course in the traditional teaching mode, and reforms the teaching methods of this course from the aspects of theoretical teaching, practical teaching, examination methods, etc. The practice in the actual teaching process focuses on the cultivation of students' self-learning ability, practical ability to analyze and solve problems, and gradually form a teaching mode of software engineering talents suitable for social needs.
Key Words: Software requirement analysis; Software engineering; Teaching reform; Discussion and practice
隨著軟件規(guī)模的越來越大,軟件行業(yè)內(nèi)也越來越重視到軟件需求分析工作,在一個(gè)軟件項(xiàng)目的開發(fā)過程中,需求分析完成的好壞直接關(guān)系著整個(gè)項(xiàng)目的成功與否。
在教育部教指委編寫的最新版《普通高等學(xué)校本科專業(yè)類教學(xué)質(zhì)量國家標(biāo)準(zhǔn)》中也將《軟件需求分析》列為是軟件工程專業(yè)核心課程之一,該門課程的主要教學(xué)內(nèi)容包括需求工程的基本知識(shí)、基本理論,需求獲取、軟件需求分析方法,需求定義、需求管理[1]。通過該門課程的學(xué)習(xí),學(xué)生首先要理解需求分析在軟件開發(fā)過程中的重要地位,并掌握需求分析的各個(gè)知識(shí)點(diǎn)、方法、技術(shù),初步具備作為軟件需求工程師所要求掌握的知識(shí)和能力。
1? 傳統(tǒng)教學(xué)過程中存在的問題和不足
在一個(gè)軟件項(xiàng)目中,軟件需求工程師的主要工作是擔(dān)當(dāng)客戶與開發(fā)團(tuán)隊(duì)的橋梁,除了要具有扎實(shí)的軟件需求分析的專業(yè)知識(shí),還應(yīng)該具備優(yōu)秀的溝通能力、語言表達(dá)能力、寫作能力和團(tuán)隊(duì)合作精神,因此《軟件需求分析》(以下簡稱“本課程”)應(yīng)該是一門綜合性和實(shí)踐性都很強(qiáng)的課程,而采用傳統(tǒng)的教學(xué)方式偏重于課堂教授,整個(gè)教學(xué)以基礎(chǔ)理論和基礎(chǔ)方法為主,學(xué)生在學(xué)習(xí)過程面對的大多是理論和概念,會(huì)覺得內(nèi)容枯燥,同時(shí)由于學(xué)習(xí)的知識(shí)較為抽象,學(xué)生無法真正理解所學(xué)習(xí)的內(nèi)容。整個(gè)教學(xué)過程中不能很好地調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,系統(tǒng)性的綜合實(shí)踐環(huán)節(jié)缺乏,學(xué)生在教學(xué)實(shí)踐過程中滿足于完成任務(wù),實(shí)踐動(dòng)手能力缺乏系統(tǒng)的訓(xùn)練,缺乏主動(dòng)學(xué)習(xí)能力和協(xié)作精神[2]。同時(shí),傳統(tǒng)教學(xué)中忽略了對新產(chǎn)業(yè)行業(yè)知識(shí)的學(xué)習(xí),造成學(xué)生畢業(yè)后“入職難”,企業(yè)“用人荒”的錯(cuò)位現(xiàn)象。知識(shí)體系得不到更新,造成與現(xiàn)有新型企業(yè)技術(shù)的脫節(jié)[3],造成學(xué)生走入職場后,適應(yīng)實(shí)際工作環(huán)境的難度較大,用非所學(xué)[4]。
2? 課程教學(xué)模式的探討與實(shí)踐
2.1 建立軟件工程課程組體系
本課程的前續(xù)課程中有《軟件工程》課程,該門課程的教學(xué)過程中也會(huì)有軟件需求分析的相關(guān)內(nèi)容介紹,因此在本課程的教學(xué)中會(huì)讓學(xué)生認(rèn)為該門課程是之前所學(xué)習(xí)過知識(shí)的重復(fù),無法調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性和興趣,也增加了教師授課的難度。
針對類似情況,依據(jù)軟件工程專業(yè)的培養(yǎng)方案,成立軟件工程課程組,課程組對軟件工程專業(yè)各門課程進(jìn)行梳理,重點(diǎn)對各門課程中的相同內(nèi)容的講授重點(diǎn)和深度進(jìn)行了梳理,這樣更有利于課程之間的銜接,也更有利于對教學(xué)效果的提高。
2.2 課程內(nèi)容體系的改革
在制定課程的教學(xué)大綱時(shí),增加實(shí)驗(yàn)實(shí)踐環(huán)節(jié)課時(shí)量,將本課程的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)課時(shí)量從之前的30%提高到60%,以期能夠重點(diǎn)培養(yǎng)學(xué)生的實(shí)踐能力、解決問題的能力和綜合應(yīng)用知識(shí)的能力。
2.3 理論教學(xué)的改革
在進(jìn)行了課程內(nèi)容體系的改革之后,理論教學(xué)的學(xué)時(shí)大幅度壓縮,這就要求在對本課程的基礎(chǔ)知識(shí)教學(xué)上重點(diǎn)從“教”變成“學(xué)”,對基礎(chǔ)知識(shí)和基本概念要求學(xué)生以自主學(xué)習(xí)為主,在課堂上通過對案例分析和講解,并且組織學(xué)生進(jìn)行課堂討論的形式來讓學(xué)生深入加強(qiáng)理論知識(shí)的學(xué)習(xí),激發(fā)創(chuàng)新能力[5],這種方式能讓課堂氛圍變得輕松,提高學(xué)生的學(xué)習(xí)興趣,同時(shí)能夠有效培養(yǎng)學(xué)生的問題分析能力和表達(dá)能力,讓學(xué)生在討論中發(fā)表自己的意見、困惑等,以便教師能夠及時(shí)幫助學(xué)生克服遇到的困難,加深師生之間的了解,有利于對整個(gè)教學(xué)工作的開展,也完全契合本校以自主學(xué)習(xí)為核心的教學(xué)范式改革工作。
2.4 實(shí)踐教學(xué)的改革
在進(jìn)行了課程內(nèi)容體系改革之后,大大加強(qiáng)了對學(xué)生實(shí)踐性環(huán)節(jié)的訓(xùn)練,根據(jù)本課程的教學(xué)內(nèi)容和改革思想,實(shí)驗(yàn)實(shí)踐環(huán)節(jié)的重點(diǎn)在需求獲取、需求分析、需求定義、需求驗(yàn)證、需求管理這幾個(gè)方面[6],突出這幾個(gè)環(huán)節(jié)上合理和高效進(jìn)行實(shí)驗(yàn)實(shí)踐環(huán)節(jié)的設(shè)計(jì),具體要求如下。
需求獲取:需求獲取中首要的需求來源就是將用戶目前的業(yè)務(wù)工作進(jìn)行梳理,如何理解客戶的業(yè)務(wù)是需求獲取階段最困難,但也是最重要的事。在需求獲取的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)中要求學(xué)生在教師的指導(dǎo)下采用能夠獲取需求的觀察法、體驗(yàn)法、問卷調(diào)查法、訪談法、單據(jù)分析法、報(bào)表分析法、需求調(diào)研會(huì)法等方法,對所要開發(fā)的系統(tǒng)進(jìn)行需求的獲取工作。在這一階段,可以鼓勵(lì)有條件的學(xué)生運(yùn)用需求獲取的各種方法在對所要開發(fā)的項(xiàng)目進(jìn)行實(shí)地的需求調(diào)研,也可由指導(dǎo)教師根據(jù)學(xué)生所選題目,簡要指出所開發(fā)系統(tǒng)的整體需求,學(xué)生在教師的指導(dǎo)下完成需求信息的獲取。
需求分析:需求分析是需求獲取的下一個(gè)階段,兩者有著非常密切的聯(lián)系,通常需求工程師在需求獲取階段從用戶那里會(huì)收集到大量的信息,但這些信息還不能完全定義為系統(tǒng)的需求,還需要對這些信息中與所要開發(fā)的軟件系統(tǒng)關(guān)系不大的,甚至是無關(guān)的,或者是重復(fù)的、相矛盾的信息等進(jìn)行進(jìn)一步的整理、分析、整合,這就是需求分析階段的基本任務(wù)。在需求分析的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)中要求學(xué)生在教師的指導(dǎo)下,對所獲取的需求信息進(jìn)行提煉、分析,找出用戶最真實(shí)的、最具體的需求,并通過用統(tǒng)一建模語言(UML)建立所要開發(fā)系統(tǒng)的模型,確保需求的準(zhǔn)確和所有項(xiàng)目相關(guān)人員都能完全理解,并對系統(tǒng)的需求信息形成統(tǒng)一的認(rèn)識(shí),還需要分析需求信息的可行性、確定各個(gè)需求的優(yōu)先級和建立數(shù)據(jù)字典。
需求定義:需求定義的主要任務(wù)是根據(jù)需求獲取和需求分析階段的輸出結(jié)果,按照國家標(biāo)準(zhǔn)和行業(yè)規(guī)范,按標(biāo)準(zhǔn)的格式完成一份完整、全面、詳細(xì)、準(zhǔn)確的需求規(guī)格說明書。所完成的需求規(guī)格說明書能充分反映用戶的各方面,精確描述所要開發(fā)的軟件系統(tǒng)的需求。在需求定義的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)中要求學(xué)生在教師的指導(dǎo)下合作或獨(dú)立完成一份符合要求的需求規(guī)格說明書。
需求驗(yàn)證:需求驗(yàn)證的主要任務(wù)就是審核、檢驗(yàn)需求定義階段所完成的軟件需求規(guī)格說明書,通過需求驗(yàn)證的一系列工作進(jìn)一步發(fā)現(xiàn)所要開發(fā)的軟件系統(tǒng)的需求中的遺漏、矛盾甚至是錯(cuò)誤的需求,在需求驗(yàn)證的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)中要求由指導(dǎo)教師和學(xué)生共同組成需求評審小組,進(jìn)行需求的測試,審查和驗(yàn)證需求的正確性和完整性等。
需求管理:即便是已經(jīng)在需求驗(yàn)證階段經(jīng)過檢驗(yàn)的需求,在軟件項(xiàng)目的開發(fā)過程中,也很難避免遇到需求變更的問題,需求管理的重點(diǎn)就是要能有效控制和管理需求發(fā)生變更。在需求管理的實(shí)驗(yàn)實(shí)踐環(huán)節(jié)中要求學(xué)生在教師的指導(dǎo)下首先合理制定出應(yīng)對需求發(fā)生變更的一整套工作流程,在需求發(fā)生變更時(shí),依據(jù)工作流程盡可能準(zhǔn)確地評估該項(xiàng)需求變更會(huì)給所要開發(fā)的軟件系統(tǒng)所帶來的影響,充分衡量所有項(xiàng)目相關(guān)人員的利弊后,決定是否進(jìn)行需求的變更,并做好需求變更的控制、需求變更狀態(tài)的跟蹤與需求規(guī)格說明書的版本控制工作。
在整個(gè)實(shí)驗(yàn)實(shí)踐教學(xué)的過程中,鼓勵(lì)學(xué)生有條件的話進(jìn)行實(shí)地的考察、調(diào)研等,讓學(xué)生根據(jù)自己的興趣或是在生活學(xué)習(xí)中發(fā)現(xiàn)的“痛點(diǎn)”等來擬定題目,這樣也能夠進(jìn)一步激發(fā)學(xué)生后期的學(xué)習(xí)熱情,教師審核題目通過后,學(xué)生除了要完成以上各個(gè)環(huán)節(jié)的實(shí)驗(yàn)實(shí)踐任務(wù)之外,還需要獨(dú)立完成本課程的綜合課程設(shè)計(jì),綜合課程設(shè)計(jì)要緊密結(jié)合上述的重點(diǎn)實(shí)驗(yàn)實(shí)踐環(huán)節(jié),并作為最終期末考查和評定學(xué)生期末成績的重要依據(jù)。
同時(shí),將本課程的學(xué)習(xí)與各類與軟件工程專業(yè)相關(guān)的學(xué)科競賽、創(chuàng)新創(chuàng)業(yè)實(shí)踐活動(dòng)、科學(xué)研究活動(dòng)相結(jié)合,鼓勵(lì)學(xué)生結(jié)合本課程的學(xué)習(xí)參加這一類的學(xué)術(shù)活動(dòng),將需求分析的知識(shí)應(yīng)用其中,并可以在這些學(xué)術(shù)活動(dòng)中產(chǎn)生出綜合課程設(shè)計(jì)的成果,不斷引導(dǎo)學(xué)生積極、主動(dòng)地探索知識(shí)和參與學(xué)術(shù)活動(dòng)的歷練,提高學(xué)生的科學(xué)研究能力、創(chuàng)新意識(shí)和創(chuàng)新能力,針對這一類綜合課程設(shè)計(jì),可以采用分組的方式,每組3~5名學(xué)生組隊(duì)完成,教師要采取各種方式對參賽隊(duì)伍中的隊(duì)員工作情況進(jìn)行監(jiān)控,避免隊(duì)伍中出現(xiàn)濫竽充數(shù)的學(xué)生。
2.5 反饋迭代,形成教學(xué)閉環(huán)
在教學(xué)的過程中,通過學(xué)生對軟件需求分析的實(shí)驗(yàn)實(shí)踐報(bào)告的方式來了解學(xué)生對知識(shí)點(diǎn)的掌握情況,并且就學(xué)生每次提交的實(shí)驗(yàn)實(shí)踐報(bào)告的情況進(jìn)行總結(jié),將出現(xiàn)錯(cuò)誤較多的知識(shí)點(diǎn),向?qū)W生反饋,并就有代表性的作為案例進(jìn)行分析,并要求學(xué)生對之前所完成的實(shí)驗(yàn)實(shí)踐報(bào)告進(jìn)行進(jìn)一步的修改與完善,這樣學(xué)生對每一次實(shí)踐教學(xué)環(huán)節(jié)成果的完成質(zhì)量都能迭代提高。
2.6 考查方式的改革
在本課程的教學(xué)改革中,對本課程的考查形式也進(jìn)行了改革,期末考試的學(xué)生以完成的綜合課程設(shè)計(jì)的質(zhì)量作為主要的考查對象,占期末考試成績的70%,平時(shí)成績占30%,用來考查學(xué)生的日常出勤情況、學(xué)習(xí)態(tài)度和各個(gè)實(shí)驗(yàn)實(shí)踐環(huán)節(jié)的完成情況。
這樣的考試方式的改革重點(diǎn)提高學(xué)生的實(shí)踐能力和解決問題的能力,避免出現(xiàn)傳統(tǒng)的教學(xué)方式中,學(xué)生只是為了應(yīng)付考試在考前對各個(gè)知識(shí)點(diǎn)死記硬背,不求甚解的情況。
同時(shí),得益于軟件工程課程組體系的建立和不斷完善,在本課程后續(xù)課程中,開設(shè)了《專業(yè)高峰課程》《專業(yè)實(shí)習(xí)》等課程和實(shí)習(xí)環(huán)節(jié),這樣可以把對本課程的期末課程綜合設(shè)計(jì)的完成情況進(jìn)行總結(jié),再次反饋給學(xué)生,并在后續(xù)課程中進(jìn)一步的迭代和提高,避免了學(xué)生一旦結(jié)束考試,就不再進(jìn)一步對本課程進(jìn)行深入的學(xué)習(xí)和提高的情況出現(xiàn)。
3? 結(jié)語
課程建設(shè)是教學(xué)工作中的基本工作,也是實(shí)現(xiàn)人才培養(yǎng)目標(biāo)的關(guān)鍵工作,通過對《軟件需求分析》課程的教學(xué)內(nèi)容、學(xué)時(shí)安排、理論教學(xué)方法、實(shí)踐教學(xué)方法、教學(xué)手段、考查方式等各個(gè)方面的改革,加強(qiáng)學(xué)生的自主學(xué)習(xí)能力、實(shí)踐能力,達(dá)到了提高教學(xué)質(zhì)量的目的,取得了良好的教學(xué)成果。
在之后教學(xué)工作和課程建設(shè)中,要進(jìn)一步完善、更新教學(xué)內(nèi)容,建立更為科學(xué)的教學(xué)體系,從教學(xué)方法的先進(jìn)性上、課程體系的系統(tǒng)性上和培養(yǎng)學(xué)生的實(shí)踐性上不斷進(jìn)行教學(xué)模式的改革和創(chuàng)新,并將教學(xué)改革中的經(jīng)驗(yàn)推廣應(yīng)用到軟件工程課程組體系中,從而促進(jìn)整個(gè)軟件工程課程組的全面提高,進(jìn)而推動(dòng)軟件工程人才培養(yǎng)質(zhì)量的提高。
參考文獻(xiàn)
[1] 劉欣.新建本科院校特色專業(yè)建設(shè)策略研究[D].蘭州:西華師范大學(xué),2020.
[2] 姜桂洪.以新工科為指導(dǎo)的軟件工程專業(yè)畢業(yè)設(shè)計(jì)教學(xué)模式建設(shè)[J].科技資訊,2019,17(3):247-248.
[3] 郭曉梅,胡麗霞.面向新工科的應(yīng)用型教學(xué)模式探討[J].科技資訊,2019,17(33):154-155.
[4] 黃亦柔.軟件行業(yè)技術(shù)人員能力模型研究[D].長春:吉林大學(xué),2020.
[5] 楊國軍,鄭英.《軟件需求分析》應(yīng)用工程化教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)產(chǎn)品與流通,2020(6):235.
[6] 寶勒爾圖雅(Erdenebileg Bolortuya).中蒙教育學(xué)碩士研究生課程比較研究[D].哈爾濱:哈爾濱師范大學(xué),2020.