劉 艷
摘 要:軟件工程作為一門指導軟件開發和維護的工程學科,研究如何用工程化的方式有效地管理軟件開發,以較低的成本按期開發出高質量軟件,其教學方法尤為重要。本文將對該課程的教學方法作一下簡單探討。
關鍵詞:軟件工程 主流程線 案例教學 擴散思維
軟件工程的概念是為有效地控制軟件危機的發生而提出來的,它的中心目標就是把軟件作為一種物理的工業產品來開發,要求采用工程化的原理與方法對軟件進行計劃、開發和維護。軟件工程是一門旨在開發滿足用戶需求,及時交付,不超過預算和無故障的軟件學科。軟件工程的主要對象是大型軟件,它的最終目的是擺脫手工生產軟件的狀況,逐步實現軟件開發和維護的自動化。
鑒于軟件工程產生的背景、目標和宗旨,對這門課程的教學,我們從以下方面來探討其教學方法。
一、把握軟件工程教學的總體思路是教學的關鍵
1.引導認識軟件工程的重要性
軟件工程雖然是一個年輕的學科,但它具有鮮明的實踐性,近年來在計算機領域中,它的地位越來越顯得重要,不僅大型軟件項目離不開它,就是一般的,甚至小型軟件項目,也必須運用它的概念、原則和方法。軟件分析人員、軟件設計、編程、測試、維護人員,以及軟件管理人員都必須很好地掌握軟件工程知識,才能適應崗位工作的要求,特別是在當前,軟件產業已經被中央、各地方政府和有關部門當作國民經濟中新的增長點的形勢下,軟件工程更加受到重視,同時,事實也一再表明,不掌握軟件工程知識,不按照軟件工程的要求去做軟件項目,提供給用戶的產品只能是低質量的,難于維護的。
2.歸納軟件開發的主流程線
在軟件工程教學過程中,把握軟件開發的主流程線是軟件開發的基礎,其不僅能使我們掌握其學科目標和宗旨,而且能為我們今后開發軟件項目起到很好的指導作用。我們知道軟件生存周期是指一個軟件從提出開發要求開始直到軟件報廢為止的整個時期。一個軟件開發得好不好,質量高不高,從其生存周期可以得到體現,高質量軟件經得住考驗,是經久耐用的。軟件開發的過程直接體現在軟件生存周期中,對軟件開發過程的研究成果要確保軟件設計的可行性。總攬軟件工程教材,我們歸納軟件開發主流程線,即從“需求分析”到“概要設計”“詳細設計”“編碼”“測試”“產品提交”,最后到“維護”階段。同時掌握好這幾個階段的主要任務和工作是開發好軟件的基礎。
3.幫助掃除軟件工程學科中的文字障礙
所謂文字障礙指的是在軟件工程課程中涉及或在其教學過程中經常運用到的專業術語、概念的應用或表達。比如什么是軟件危機,軟件生存周期的概念是什么,軟件生存周期模型有哪些,需求分析講的是什么,什么是結構化分析方法,如何用數據流圖來表達系統的功能,數據字典是用來做什么的,軟件設計的基本原理是什么,軟件開發的增量模型又是什么,利用面向對象的方法需要建立哪些模型,它們分別的側重點是什么等等。這些都是要在教學過程中掃除的文字障礙。掌握這些術語、概念的應用或表達,可以通過平時的鍛煉、記憶或下面我們要講到的通過實例教學加強理解,在理解的基礎上加強記憶并掌握方法和原理。
二、對軟件開發過程中的關鍵環節采用案例教學
制作一份需求規格說明書,其主要的填寫要求抽象成模板的形式如下:
1.背景
①待開發的產品的名稱;
②本項目的任務提出者、開發者、用戶及實現該產品的單位;
③該系統同其他系統的相互來往關系。
2.系統定義
①項目來源及背景;
②項目要達到的目標,如市場目標、技術目標等;
③系統整體結構,如系統框架、系統提供的主要功能,涉及的接口等;
④各組成部分結構,如果所定義的產品是一個更大的系統的一個組成部分,則應說明本產品與該系統中其他各組成部分之間的關系,為此可使用一張方框圖來說明該系統的組成和本產品同其他各部分的聯系和接口。
3.應用環境
①設備環境;
②系統運行硬件環境;
③系統運行軟件環境;
④系統運行網絡環境;
⑤用戶操作模式;
⑥當前應用環境。
4.對功能的規定
①功能編號;
②所屬產品編號;
③優先級;
④功能定義;
⑤功能描述。
5.對性能的規定
①系統響應時間需求;
②系統開放性需求;
③系統可靠性需求;
④系統可移植性和可擴充需求;
⑤系統安全性需求;
⑥現有資源利用性需求。
通過對上述需求規格說明書實例的講解,我們不僅要學會掌握這種文檔的書寫格式、規范和原則,而且還要學會其他比如概要設計說明書的寫法,詳細設計規格文檔的寫法,編碼文檔的寫法,測試計劃文檔,測試設計,測試跟蹤,測試總結,產品提交手冊,軟件維護過程文檔等的寫法。通過具體實例讓學生進行演練,使其真正達到學以致用,學用結合的目的。
三、對軟件工程中的相關知識點采用擴散思維教學
所謂擴散思維是指使學生的思維不僅僅局限在某一點上,而是針對相關知識點的拓展,從而產生新的思路和方法的一種思維形式。由于每一門課程都不是孤立存在的,因此要想很好的把握該課程的教學,其教學思路應該有所延伸。比如說軟件工程課程中多處涉及到數據結構、數據庫、操作系統等的一些知識和概念,我們除了在課程教學順序上將數據結構、操作系統等課程排在軟件工程課程之前教學外,教師在授課過程中還應該有新的思路供學生參考和啟發學生思維。
參考文獻:
1.軟件工程案例教程/韓萬江編著.北京:機械工業出版社,2007.5
2.軟件工程/史濟民等編著.2版.北京:高等教育出版社,2002.12(2004重印)
3.軟件工程.全國高等自學考試指導委員會組編
4.軟件工程/王宜貴主編.北京:機械工業出版社,2002.9
作者單位:海南海口海口經濟學院信息工程學院