謝生龍+李竹林+許淳
摘 要:以項目引導的教學過程能讓學生更早地為從業生涯積累一點經驗,同時也為形成良好的職業素養奠定基礎。《軟件設計與體系結構》這門課程旨在培養學生在后期從事軟件開發工作的軟件與體系結構設計的實踐能力,知識點抽象,實踐性要求高。本文分析了《軟件設計與體系結構》課程教學現狀和以項目引導的軟件設計與體系結構課程教學意義,最后結合延安大學軟件工程專業培養方案和《軟件設計與體系結構》課程大綱,給出了以項目引導的軟件設計與體系結構課程教學方案。
關鍵詞:項目引導;軟件設計;體系結構;教學方案
一、 引言
軟件設計與體系結構課程內容非常廣泛,包含技術、方法、工具和管理等方面。軟件設計是對軟件需求的直接體現,軟件設計為軟件的實現提供直接依據,而體系結構作為軟件設計過程中控制軟件復雜性、提高軟件系統質量、支持軟件開發和復用的重要手段之一。軟件設計與體系結構這門課程教學應重視理論與實踐結合,以能力培養為目標,以職業方向為導向,用項目溶解知識,用任務驅動教學,將“教、學、做”融于一體,教學內容同就業與企業用人需求接軌。
本文以延安大學《軟件設計與體系結構》課程設置為例,探究了此門課程在教學過程中以項目引導進行驅動教學的意義及課程教學方案,希望通過項目中的任務驅動,開展以項目為引導的教學模式。
二、 軟件設計與體系結構課程教學現狀分析
以計算機為核心的信息化社會,大家已感同身受。被認為是信息化靈魂的軟件離不開良好的頂層設計。當前國內各大高校軟件工程和計算機科學與技術等專業已普遍開設了《軟件設計與體系結構》這門課程,為軟件架構設計師及軟件開發工程師的培養打下了一定的基礎。然而,這門課程與其他軟件工程相關的課程大部分內容交叉,也是當前各高校都存在的普遍問題,如軟件工程、軟件設計方法、UML統一建模語言等。在軟件設計與體系結構這門課程講授的過程中主要圍繞軟件設計與體系結構的概念、原理、技術和方法等相關知識進行理論講解,欠缺與實際項目的結合及任務推動與引導,致使部分同學對本門課程學習興趣不高。
三、 以項目引導的軟件設計與體系結構課程教學意義
(一) 項目引導符合課程自身特點
在本科階段《軟件設計與體系結構》課程主要面向軟件工程類專業開設的課程,教學過程中,主要圍繞軟件體系結構的基本原理、方法和實踐。使學生真正掌握軟件體系結構設計基本的理論、技術。一般來說,這門課程具有以下幾個特點:
1. 課程內容聯系緊密
許多高校在軟件工程類專業課程體系中同時開設了《軟件工程》《軟件設計技術》和《軟件設計與體系結構》等課程,這些課程中部分章節內容相互交叉、聯系緊密。比如,在延安大學軟件工程專業培養方案設置中,將《面向對象程序設計》定為本課程的選修課,同時也將《軟件工程》《軟件設計與體系結構》等課程作為了軟件工程專業的專業必修課或專業限選課,具體如表1所示。這些課程之間在內容上聯系非常緊密,如《面向對象程序設計中》介紹的設計思想、原則,《軟件設計與體系結構》中介紹的軟件設計風格,《軟件工程》課程中的界面設計、數據庫設計、設計模式等知識在這些課程大綱中均有涉及。
在以往的教學過程中發現,只有將上述知識的實踐應用結合項目開展,才能更進一步地將先修課程或后置課程的知識進行檢驗和系統地梳理。
2. 課程重難點抽象
通過《軟件設計與體系結構》課程開設,使學生認識軟件設計在軟件開發過程中的重要性,熟悉和掌握軟件設計、軟件體系結構設計的方法和技術,特別是面向對象的軟件設計方法。
在延安大學《軟件設計與體系結構》這門課程的培養的知識、能力及素質目標,對本門課程的重難點也是非常明確,具體見表2。大綱中同時也指出,本門課程主要內容包含介紹常用的體系結構風格,軟件體系結構的組成與常用的描述方法,基于體系結構的軟件開發方法;另一方面包含,實際設計模式的分類描述,主要包括創建型、結構型和行為型3類共23個設計模式。從上述大綱的要求中可以看出無論是常見的軟件體系結構風格還是基本的軟件開發方法或實際設計模式都是比較抽象且不易理解的知識內容,從教師的課堂設計和學生的學習來講,都有一定的難度。
3. 課程教學方法單一
現階段大多數高校,這門課程的教學方式都采用理論學習與上機實踐的教學方法,課堂一般以多媒體教學及分組討論為主。學生喜歡挑戰自我,對于這類傳統的教學模式,學生積極性不高,從而致使教學方法欠缺一定的靈活性,對一些實踐性要求較高的章節內容掌握幫助不是很大,需進一步結合項目,激發學生的興趣講練結合、主動引導學生構建知識體系,評價學習效果。
通過項目,完全可以將課程重點知識滲透、溶解于其中,在項目的實踐過程中,學生不僅能夠了解軟件體系結構研究和應用的最新進展,而且可以討論軟件體系結構的基本理論知識,又能結合軟件體系結構的設計和工業界應用項目實例,對課程知識進行檢驗和總結。
(二) 項目引導便于學習任務推動
1. 通過項目便于設計任務
以選取的項目為基礎,進行任務分析與設計更具有針對性和目的性。針對項目進行軟件產品的體系結構分析與設計,在教學設計上將課程知識作業或實踐練習以項目任務的形式布置下去,學生更容易接受,再完成項目任務后,對軟件設計與體系結構相關理論、知識體會更深,真正做到了學以致用。
2. 通過項目便于知識構建
用項目化教學進行知識建構,在選取合適的項目實例及有針對性的任務的前提下,將軟件與體系結構設計課程系統的知識轉化為項目教學法,具體可以通過如下過程進行知識構建。
首先,根據章節知識所有的重難點,在有針對性的項目背景下設計任務。其次,將項目產品模塊化后實踐要求與本章節的重難點對應。知識點均應有相應的實踐任務進行練習,每個練習由一系列的實踐項目設計而來,不僅要有基本實踐能力的提高訓練,而且還應包括理論知識的掌握和轉化訓練。再次,通過項目所含納的實踐要求,和對應的設計任務驅動學生掌握已經學過或者即將學習到的知識點,然后建構項目引導的知識體系,提高學生實踐能力。最后,教師對學生對構建的知識體系在項目的任務完成情況中進行評價,用客觀的指標評價學生的知識掌握情況與體系構建情況。endprint
3. 通過項目便于效果檢驗
在教學任務設計時,適當地增加對于已學過知識點考核的相關任務,在項目的開展過程中及時地檢驗學習效果,不斷地加深對已學知識的實踐應用。根據任務完成情況,判斷學生對知識的掌握程度,指導并幫助他們提高。
(三) 項目引導利于課程知識溶解
《軟件設計與體系結構》課程知識理論性強,在傳統的授課方式中,缺乏知識溶解的載體,很多的重點知識都只是在舉例講解的過程中掌握。若能將這些基本知識貫穿于設計的實踐項目中,將更能激發學生的學習興趣,使學生在項目中挑戰自我,在挑戰中掌握知識。
四、 以項目引導的軟件設計與體系結構課程教學方案
從教師及學生兩個角度出發,結合當前高等教育課堂改革的要求,針對《軟件設計與體系結構》這門課程以項目引導為教學模式的具體方案如下圖1所示:
(一) 教師
教師結合課程章節重難點和學生實際情況,制定項目,創設教學情境,引出任務并分配給學生學習完成,在學生完成任務的過程以專題講解和個別輔導形式,給予相應存在問題的同學適當的答疑解惑。根據項目引導學生構建知識體系,總結知識點,分析學生完成情況,對學習效果進行評價、教學總結,為下一次的教學設計積累經驗。
(二) 學生
學生拿到教師設計的教學任務后可以自主學習,遇到困難時可以相互探討,協作學習,完成知識構建,總結、歸納。將構建的知識應用到項目任務重,根據教師的效果評價,不斷地反思,加深對知識的理解與認識,并提高相應的應用能力。
五、 總結
軟件設計與體系結構是一門實踐要求比較高的課程,不能僅靠課本的理論講解進行課程學習,應結合具體的案例項目推動學習任務的開展和知識體系的構建,在學習中總結,在項目實踐中檢驗,在檢驗中提高。在實際的工作任務驅動下引導學生積極地學習軟件設計與體系結構這門課程,提高軟件設計能力和軟件工程專業素養。
參考文獻:
[1]齊治昌.軟件設計與體系結構[M].高等教育出版社,2010.
[2]葛文庚,魏雪峰.軟件工程案例教程[M].電子工業出版社,2015.
[3]延安大學2015版人才培養方案[J].延安大學教務處,2015.
[4]延安大學課程教學大綱[J].延安大學教務處,2015.
[5]許波,陳曉龍.UML結合軟件工程教學改革探討[J].計算機教育,2011,(2):34-37.
[6]胡志慧.基于CDIO軟件的設計與體系結構課程教學研究[J].中國管理信息化,2015,(17):216-217.
[7]趙曼姝.項目化教學知識建構和職業素質提高分析[J].北方經貿,2011,(12):150.
[8]吳海花,王連山.計算機軟件項目教學改革的實踐與探索——基于“任務驅動”的小組協作教學模式[J].考試周刊,2009,(23):11-12.
[9]李暾,文艷軍,劉萬偉等.軟件體系結構課程教學改革規劃與實施[J].計算機教育,2015,(6):19-21.
[10]覃征,邢劍寬.軟件體系結構課程教學:抽象與實踐的協調與統一[J].中國大學教學,2009,(7):14-15.
作者簡介:
謝生龍,李竹林,許淳,陜西省延安市,延安大學數學與計算機科學學院。endprint