馬小軍 夏立文


摘要:作為工程性很強的軟件工程課程,案例教學目前被普遍使用,如何做才能達到理想的效果是很多教師一直在探討的問題。基于寬框架與啟發式為主旨的軟件工程課程案例,所選主題實用,內容設計有拓展空間,同時易于逐步滲透在教學過程中,對于激發學生分析和思考問題的主動性、在基本框架上添加適宜且有特色的“磚”和“瓦”以及培養軟件分析與設計能力具有良好的推動作用。
關鍵詞:案例式教學;軟件工程;寬框架;拓展
一、軟件工程課程案例的選擇與實施模式
1.教學案例的選擇
軟件工程是一門理論性和實踐性都非常強的課程,其核心任務在于使學生學習、掌握軟件項目方案的確定與開發方法。單純靠死記硬背基本概念和設計規則,是不可能真正掌握和領會軟件生產的工程化思想的,而且因為學生缺乏開發經驗,雖然對各種建模工具的使用有所了解,但要直接面對繁雜、瑣碎又有一定程度交叉的需求敘述進行抽象分析,設計可用的方案,通常也感覺無從下手。因此,采用案例式教學,非常易于學生結合案例中出現的問題,以小組為單位開展思考和研討,集思廣益,通過不斷補充、修正,深入感知軟件工程思想的基本原理和方法的具體使用,從而提升軟件開發技能。
基于上述教學案例要求的分析,在軟件工程課程教學中,我們也曾提出過多個項目作為案例,這其中不乏在很多教材中出現頻率較高的圖書管理系統、教學管理系統,還有時下流行的電商網站等。但綜合分析后,我們認為這些項目中都存在一些學生學習和進行深入思考的障礙。例如:圖書管理系統中通常一般人只知道有借書、還書、查詢圖書等,但實際上要保證任何一個圖書館的正常運行,為讀者頻繁的借、還書做好服務和準備工作,離不開領域內部的專業管理與控制,如必須進行圖書入庫,此過程中需要對每一本圖書都要進行細致的分類、編目,還要涉及上架、下架的登記,工作和處理過程相當繁雜,若因不熟悉而忽略,那么最終給出的系統將缺少或失去特色,也是一個極不真實的結果,對學生而言,也就無法感受實際需求分析的過程及對開發的影響。
因此,經過廣泛、深入的分析、思考后,我們最終選擇以國內高校大學生體能測試為背景,設立了“大學生體能測試數據的管理與分析”案例題目。由于軟件工程課程是大二以后才開設,而大二以上的學生都有體能測試的親身經歷,對測試的內容、形式、過程和結果等都比較了解,因此,可以很輕松地融入此案例的研討中。同時,此題目與學生息息相關,學生能夠以主人翁的精神和姿態理解、完善案例,既有利于短時間內設計出一個滿足自己需要且基本合理的方案,也可以總結出分析問題、解決問題的思維模式,真正積累和提高項目開發的經驗。
2.教學案例的實施模式
教學理念決定著教學方式,案例式教學雖然是圍繞案例開展,使學生了解、感受和明確課程的知識點、運用方法及彼此間的關聯性,但是過程如何實施才能達到理想的效果,還是要因課而異。
軟件工程教學案例的實施依據軟件工程生命期的理念,同時為保證案例具備真實性、可實踐性和實用性,也遵循著從實踐中獲取,再反饋到實踐中應用的原則。具體實施過程為:軟件工程理論階段性學習,針對所學習的理論推出案例框架,分析、研究案例框架,結合實際拓展案例,發布、完善案例,理論與實踐交融小結。
二、基于寬框架的案例在教學中的滲透與教學組織
1.寬框架的案例設計
鑒于體能測試是由學校體育部直接負責和完成的,所以確定題目后,與體育部的教師進行了具體的交流,了解工作特點、基本工作流程和需求。之后,經過任課教師的總結,首先給出了體能測試項目的基本任務需求、執行流程框架、主要角色和職責、開發目標等。這也是完成軟件生命期理論的第l步“項目調研,需求定義”的工作。由此,確定總體目標和大的方向,既節省了學生的調研時間,也可以避免初始任務過于雜亂的情況。
本項目相關的一般用戶主要分為教師和學生兩類。其中教師包括體育課和擔任體能測試的教師、班主任與輔導員、學校和學院內各級領導。教師用戶通過本系統可以了解學生的體質健康狀況,為進一步調整和提高體育課內容的科學性以及改進校內運動設備的實用性提供參考依據。學生用戶通過本系統可以了解自己的體質變化情況,為做出適合自己的個人鍛煉計劃提供依據。
圖l所示內容即是基于上述需求和各類用戶工作特點的主要任務分布,它只是對未來體能測試項目開發的一個粗線條任務規劃的結果,為學生留有充分的想象和擴展空間。因此,稱之為寬框架的課程教學案例,其作用是引導學生項目定位。
2.案例在教學中的滲透與完善
(1)案例的推出。案例教學不是直接告訴學生答案,而是以鼓勵學生思考、再創造為目的。寬框架的案例功能圖只體現了大學生體能測試項目的基本操作功能,通過網絡學堂將案例的框架功能描述發布,在課堂上給予簡單介紹,然后要求學生以小組為單位研究、討論案例中給出的寬框架功能,并結合具體技術、參考其他軟件的功能與使用特點,以主人翁的視角和專業軟件的開發標準和要求對框架中的每一個結點進行拓展完善,運用相應的建模工具描述拓展結果。
(2)啟發與引導。在拓展前,結合項目以及與項目相關的各種用戶角色的特點,給學生適當的啟發、引導,例如:學生都是在校注冊過的,進行體能測試時是否還有必要再重復輸入學生的基本信息;教師不僅能夠進行大范圍的查詢,是否還應該有資格查詢自己所負責的班級中某個學生的具體測試結果;班主任與學校領導的關注點是否應該有所區別,這兩類角色又應該有何共性;作為一個未來的軟件系統,對數據的使用和操控怎樣設置才能夠保證安全,等等。通過一系列的設問,幫助、引導學生擴大聯想,同時也將一些學生不了解但是合理的需求和想法滲透到對寬框架的學習與思考過程中。
(3)框架拓展。因課上教學時間很有限,所以具體的學習、討論都是在課下。學生們在獲得基本框架后,對項目的核心問題有了初步的了解和認識,利用課余在網上廣泛查閱資料、調研,結合自己以往的體測經歷和出于軟件實用性考慮,開展分析、研究,分別提出對于現有功能的認識、調整與拓展結果。例如:很多組都同時參考一般網站或系統的管理方式,提出設立管理員用戶,其主要任務是對維護系統的數據和進行權限管理等;還提出利用現有的正方教務系統,導入參測學生的基本信息;在統計優秀率的同時,還要對不及格的情況進行分析,由此為將來提高學生體質、改進體育課的教學內容提供有力的參考。
(4)改進完善。軟件工程課程教學的目的是培養和提高學生分析問題、進行系統方案設計的能力。學生滿懷熱情和想象拓展的結果,往往會因為自身經驗和技能的欠缺而存在一些問題或不足。為此,每一次的拓展結果任課教師都選擇一些組在課堂上演示宣講,同時帶領全班同學進行分析、講評,并鼓勵學生充分發表自己的意見,對于很切中要害和有創意性的合理的觀點,都記錄到平時成績中。既提高了學生們積極思考、參與討論的熱情,活躍了課堂氛圍,也使學生們能夠充分取長補短,向著實用的方向不斷發展。
圖2即是基于圖1的寬框架拓展完善結果。雖然不能稱為是最佳設計,但通過這樣的項目交流,學生們熱情投入,各抒己見,能夠不斷發現問題,改正錯誤,進一步加深對理論和技術的理解與運用。
本質上講,學生提交的拓展結果不僅是將理論用于開發實踐,通過實踐感受原理、技術的合理性,使知識的理解和操作能力得到升華;同時也能夠豐富教學內容,擴充和促進教師深入思考,真正實現了教學相長。
3.教學推進與案例的深化開發
由于數據庫表結構的設計對于一個軟件項目后續編程實現而言是十分重要的,案例只給出了學生包括學號、姓名、專業、所在學院的基本信息,教師信息包括工號、姓名、所在部門。因體能測試的項目每年可能發生變化,成績的存儲類型也有所不同。所以,在系統設計階段,針對案例,只提出數據庫的具體結構需要做成動態的,以適應實際情況需要,具體保存的字段由學生們自行考慮設計。
各組學生在研究、討論過程中,提出了多種結果。例如:體側項目通過一個界面動態完成字段名稱及對應的數據類型的選擇定義;教師所在部門專門、學院、專業等分別設計一個碼本數據表,便于后續操作的簡捷和一致性。對于每個結果,任課教師不從主觀角度做正確與否的結論,依然采取和全體學生一起分析亮點,讓學生自己意識到設計過程有哪些是考慮不周的,由此加深印象,積累和提高依據需求和系統功能對系統數據進行分析、設計的能力和經驗。
三、課程的考核
以往軟件工程課程的考核一般都采取卷面的形式,死板、生硬,學生考過之后通常腦子里的知識信息如浮云掠過,對于今后的學習和工作很難形成知識的積淀。以案例為核心的教學不僅使學生的學習方式發生改變,考核方式也完全打破過去的主、客觀題占卷面絕對主體的方式。
考核的主導思想是隨著案例的推進滲透,分階段評審各小組的成果。小組成員在組長的帶領下展示本階段本組研究拓展的結果,其他組的同學和任課教師共同對成果按照金色產品、銀色創意品、銅色拓展品、本色實驗品4個級別進行評審,其中:
本色實驗品基本無創意,只是按照標準格式完成了文檔。成績為合格。
銅色拓展品指在本色的基礎上,增加了極少量的底層小功能,但整體結構無變化。成績為較好。
銀色創意品指在銅色的基礎上,整體功能、結構合理、完善,有一定的創意。成績為良好。
金色產品指在銀色的基礎上,實用性很強,采用的技術先進,可作為實際項目推出應用。成績為優秀。
對于學生而言,能夠設計出金色產品有相當的難度,需要大量的閱讀、學習、調研、分析,既是技術的綜合運用,也是邏輯思維能力的造就與深度發掘,是企業軟件開發模式的初步體驗,能夠切實為未來就業積累成果和經驗。
教學改革和課程建設,是高校永遠的主題和任務,目的是提高教學和學習的成效。不斷改進教學方法是教學改革的重要策略和手段,目的是激發和提高學生的學習積極熱情與興趣,而教學案例則是實現該目的重要媒介和工具。軟件工程不是一門速成的科學,只聽不練難以領會原理和技術的本真與精髓,盲目的練習又會令學生感覺無從下手,難以達到預期的效果。基于寬框架和啟發式的軟件工程教學案例,不但實現了案例式教學的基本目的和要求,而且因所選項目具有真實感和時代感,其具體內容和需求的變化,使學生可以充分變更與拓展,彰顯了規范與靈活的統一、內核與外延的一致、啟迪與拓展的協調等特點。學生能夠逐步完成開發練習,其綜合素質和學習效果可以得到全面提升,培養了分析問題、工程認知、創新、溝通與表達的能力,同時學生們的拓展成果也延展了教師的思維,促使教師深入思考,進而提高教學質量。
[責任編輯:余大品]