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