首頁 > 文章中心 > 軟件開發培訓計劃

          軟件開發培訓計劃

          前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇軟件開發培訓計劃范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。

          軟件開發培訓計劃范文第1篇

          【關鍵詞】軟件;策劃;風險分析

          【中圖分類號】TP399

          【文獻標識碼】A

          【文章編號】1672—5158(2012)10-0416-01

          引言

          嵌入式軟件已經在我國航天導彈武器系統等尖端產品中得到廣泛的應用。目前,《GJB5000A-2008軍用軟件研制能力成熟度模型》已經并實施,航天嵌入式軟件項目的研制過程逐漸要依據這個標準進行。軟件作為航天控制系統的關鍵部分,其地位顯得越來越突出,分系統級軟件規模已經超過數萬行。同時從事軟件研制人員已經形成一個組織分工明確、相互配合緊密的團隊,從任務書、需求分析、概要設計、詳細設計、代碼實現、軟件測試、交付和維護等環節,每個崗位可能涉及到多個人員。如何通過軟件項目策劃,保證軟件研制流程明晰、可控、軟件產品質量可靠,成為型號研制工作的一個不可或缺的重要環節。

          1 項目策劃的目的

          隨著管理要求日益嚴謹,軟件管理由粗放式向精細化和準確化轉型成為大勢所趨,利用軟件策劃幫助研制方提高研制進度管理的有效性,保證產品質量、提升核心競爭力已經成為共識。策劃的目的是為執行軟件工程和管理軟件項目制定合理的計劃,旨在使軟件開發人員及管理人員充分了解軟件項目策劃過程,使項目管理人員遵照過程實施項目策劃活動、制定項目開發計劃及執行相關策劃活動。

          2 軟件策劃前提和輸入

          項目策劃的前期,軟件項目組成員要積極參加整個系統項目的早期策劃活動,并在系統方案的制定和評審過程中,共同討論方案報告,協商有關軟件項目的目標、范圍、進度、資源等,從而逐步了解軟件在系統中的作用、進度、功能等。同時對設計輸入的任務書要進行認真評審,對其每項內容了如指掌,并納入配置管理。參加項目策劃活動的人員還要接受相關培訓。

          3 軟件策劃的規程

          軟件策劃需經多個步驟,從而對整個項目階段工作進行全面梳理。根據輸入的任務書和標準等,首先依據策劃的主要內容,制定軟件策劃的工作計劃,然后選擇軟件生命周期模型,確定軟件開發階段,其次就要進行工作分解結構(WBS)分解,這是策劃中非常重要的步驟。在此基礎上進行規模、工作量、成本和進度估計,最后形成軟件開發計劃。其中有多個非常關鍵的環節,直接影響策劃的真實性和可執行性,因此需要重點關注。

          3.1 工作分解結構

          工作分解結構(Work Breakdown Structure,簡稱WBS)是歸納和定義整個軟件項目范圍的一種最常用方法,它將一個項目分解成易于管理的幾個部分或子項,以確保找出完成項目工作范圍需要的所有工作元素。

          工作分解結構是對軟件工作產品和軟件過程進行分解,以層次結構來組織軟件項目的產品元素和活動元素,將項目的軟件工作產品和軟件過程分解為較小的、更易于管理的元素。

          WBS分解時,通常按照樹型結構,不斷將項目的最終目標分解到一些較小工作單元,直到這些工作單元可以被很容易地“控制”住為止。在劃分任務時,任務的顆粒度不能太大,也不能太小。顆粒度太大,難以及時發現問題;顆粒度太小,就會增加管理成木。任務的顆粒度最小可以到半天,最大到周,一般以小于3天為宜,也就是說項目經理能夠在1周中至少檢查2次成員的工作進展情況。適當的任務顆粒度便于監控,另一方而也有利于調整任務。當出現任務拖期時,可以比較靈活地重新安排人員接手其他人員的任務。

          3.2 項目估計

          根據WBS分解的項目內容進行項目估計,項目估計包括項目規模、工作量和成本的估計,這是整個策劃中的關鍵環節,只有項目估計盡量準確,才能保證項目進度、質量能夠受控。為了保證項目估計合理性,可采用下面措施:

          1)借助歷史數據。歷史數據是“經驗”的量化,通過和歷史項目的數據對比,可降低估計的風險。在借鑒歷史數據時,要注意數據的可比性,要考察項目類型是否類似、生命周期模型是否類似等。

          2)采用多種估計方法互相驗證。在估計時可以采用多種估計方法,然后對多種方法的結果進行對比,通過分析其差異以判斷合理性。

          3)細分任務。任務拆分的越詳細,就越容易估計,越容易和歷史數據對比。內容任務要完備。估計時要識別出所有工作,不要有遺漏。

          4)有估計經驗的人參與估計。一方面要對參與估計的人員進行培訓,另一方面需要在實踐中積累估計經驗。每次估計完成后,都要和實際的情況進行對比,經過3-5次反復,則可積累估計經驗,提高估計準確性。

          多人分別估計并形成估計表,然后由項目負責人進行匯總形成軟件估計報告。

          3.3 資源和管理計劃

          人力資源策劃方面要包含完成軟件開發項目必需的人員數量,姓名,指明項目管理、軟件工程、正式軟件測試、軟件產品評價、軟件配置管理等分別所需的人員數目及總數。相應崗位若需通過相應崗位的培訓考核,則還要制定培訓計劃

          項目負責人要確定軟件項目相關的利益相關方,包含硬件設計人員、任務提出方、測試設備負責人、用戶代表、評測機構等。從而協調制定相關的計劃或關鍵點,描述利益相關方的權限和責任,以及與其它組織的關系。

          基礎設施資源的策劃要同步進行,估計時參考類似項目的歷史數據,根據項目需求、工作產品的規模,考慮開發環境、測試環境、目標環境或者這些環境的任何適當組合情況下所需的基礎設施資源。同時制定測試計劃、配置管理計劃、質量保證計劃、風險管理計劃、數據管理計劃、里程碑評審計劃和溝通計劃等。對上述計劃確認后進行配置管理。

          4 風險估計

          標識風險源為項目研制過程中檢查隨時間而更改的狀態提供了基礎,直接顯示出影響項目研制目標的各個因素。風險源來自項目的內部和外部。隨著項目的進展,可能會發現更多的風險源。項目策劃階段就要識別和分析風險,并制訂風險減緩計劃,才能進一步跟蹤項目風險,及時消除各個風險源帶來的影響。

          5 形成軟件開發計劃

          策劃輸出的果就是軟件開發計劃,根據WBS分解的結果,根據軟件任務、任務的工作量、項目成本、任務之間的銜接關系、系統的約束條件和人員分配表等,得出項目的進度和關鍵路徑,并得出軟件項目預算,連同項目進度及網絡圖寫入階段軟件開發計劃,在形成項目計劃過程中,如出現各項約束條件與任務進度沖突情況,需重新估計。軟件開發計劃應通過正式評審,從而保證具有相應約束力,并納入管理和控制。

          軟件開發培訓計劃范文第2篇

          【關鍵詞】電力崗位應知應會標準;培訓模型;智能化

          1、建設背景

          電力企業培訓模型被提及比較多的有電力企業崗位勝任能力模型等,但由于各種原因以及和實際培訓工作存在一定差距,始終沒有找到合適的方法加以推廣和利用。行業內一度認為職業勝任能力模型“看起來很美“,但是無法在實際教育培訓工作中加以應用。

          2010年,佛山供電局作為廣東電網公司教育培訓創先工作的責任單位之一,主要負責學習項目子體系創先工作。學習項目體系是教育培訓創先的主線,圍繞公司組織能力需求,全面梳理內部知識,以關鍵技術技能培訓標準和課程課件建設為突破口,實現對公司內部知識的系統管理。以崗位勝任力為基礎,以崗位說明書、作業指導書、關鍵績效指標等為依據,對應專業(工種)、崗位和作業目錄,制訂覆蓋公司管理、技術和技能專業領域的、以應知應會為核心的能力培訓標準。借助國內外企業培訓先進理念,從課程設置和課程設計入手,開發菜單式培訓課程,使每一個崗位的專業知識和業務技能模塊化,形成具有廣東電網特色的學習項目培訓系列教材和電子化課件。

          佛山供電局根據本單位實際情況,分析了國內外的先進培訓手段,結合廣東電網公司創先工作思想及智能電網先進思路。積極探索利用信息化手段和網絡技術,在原有網絡教育培訓系統的基礎上,開發基于崗位應知應會標準的電力智能化網絡培訓系統。

          2、崗位應知應會的標準的定義

          崗位應知應會標準,是指員工完成某崗位工作所應具備的理論知識和技術能力,將這些知識和能力進行梳理和規范后,制定出的可量化的標準。

          崗位應知應會標準是各單位開展年度培訓需求分析和制定培訓計劃的主要依據,是系統建設的核心。

          崗位應知應會標準模型(圖1):

          3、系統的構建策略

          3.1建設思路

          由于系統建設的成敗關鍵在于崗位應知應會模型的建立,主要工作都圍繞崗位應知應會模型建設來展開,根據廣東電網教育培訓創先工作方案的要求,建設以崗位勝任力為基礎,以崗位說明書、作業指導書、技術標準,以及設備和技術參數、關鍵績效指標等為依據,對應專業(工種)、崗位和作業目錄,制訂覆蓋公司管理、技術和技能專業領域的、以應知應會為核心的能力培訓標準。

          佛山供電局人力資源部和信息中心通力合作,開展了崗位應知應會標準培訓模型信息化落地工作。邀請專業咨詢公司及軟件開發公司,對人力資源部梳理出的工作內容進行了進一步研究和劃分,擬定需求分析說明書、系統架構設計、擬定應知應會培訓項目編碼規范和項目開發監理,由實施廠家進行系統設計、開發以及相關數據轉換工作。

          3.2建設方法

          3.2.1業務再造流程先固化后優化。為了保證流程再造成果得以迅速推廣應用,在項目實施中佛山供電局采取“先固化后優化”的工作思路,由“點到面”的推廣方法對系統進行逐步的升級和完善。

          3.2.2集中開發、統一部署。該系統是在原有系統的基礎上進行功能擴充改造,以佛山供電局為中心進行集中的軟件開發、測試,統一對各部門和區供電局進行部署。

          3.2.3加強業務流程再造宣貫與培訓。為更好落實“先固化后優化”的實施策略,佛山供電局通過專項培訓情況,開展了針對培訓業務人員的流程擴充成果的逐層宣貫工作。

          3.2.4充分發揮監理的作用。利用監理方豐富的實施管理經驗深度介入項目的組織管理工作,從項目的準備工作開始時就要求監理方深度介入項目的每一個環節,配合做好項目的組織、進度監控、成果審查和測試等工作,保證了項目的進度和質量。

          3.3系統的架構

          3.3.1信息系統總體架構(圖2)

          3.4建設目標

          佛山供電局網絡教育培訓系統在原有的網絡教育培訓系統上進行擴充,在充分考慮與人力資源等其他業務系統進行集成的基礎上進行建設,主要實現以下建設目標:依據佛山供電局崗位應知應會標準,建立一套科學、靈活的全員培訓管理體系,實現培訓項目的全過程管理;提高培訓宏觀管理能力,依據單位對人才的需要,制定切實可行的培訓方案,并依據遠近期目標,選擇所需的培訓知識和技能及評估績效等;建立員工的全方位培訓檔案管理,可記錄員工的歷次培訓情況、培訓得分等,作為對員工技能的考核與能力選拔的重要依據;可依據培訓目標制訂詳盡、周密并可操作的培訓,并可從培訓、業務主管部門、直屬上級等不同層次對培訓目標的監督考核,保證嚴格按培訓計劃與要求將培訓落到實處。

          4、系統的主要功能介紹

          4.1應知應會標準固化與維護 由各負責單位培訓員負責錄入標準,可實現各個崗位的應知應會標準維護。通過人員編碼與崗位代碼的一對一映射關系,可自動形成人員編碼與培訓項目代碼的一對多映射關系。

          4.2崗位符合度評估 根據人員和崗位信息,通過一定的公式和邏輯關系,得出個人積分,依據崗位應知應會標準,計算出人員崗位符合度。

          4.3培訓需求調查管理 由員工所在部門利用崗位應知應會標準,確定員工應知應會差距清單,識別差距對員工培訓的要求,從而得出年度培訓需求,形成年度需求報告。

          4.4培訓計劃生成 年度培訓計劃應包括崗位應知應會培訓需求調查每年自動生成的、員工自己選擇的、直接上級領導指定的。由各單位培訓員負責匯總錄入每個人的計劃,自動形成部門年度培訓計劃初稿。對下年度培訓項目進行策劃,選擇合適的方式和時間,編制培訓預算。

          4.5培訓項目實施管理 實現培訓課程管理、題庫管理、師資管理、培訓機構管理、培訓場地管理、專家團隊管理和培訓證書管理。根據年度培訓項目計劃,舉辦培訓班,網上報名,培訓班上報,并進行歸檔,并可進行在線的考試和成績登記。

          4.6培訓考核與評價 將教育培訓目標考核的內容在系統中進行定義,對能夠自動采集的數據實現自動采集。下一步在時機成熟時,將試行由各責任單位定義培訓目標考核指標及評價標準,并經人事部審查后正式。

          4.7統計分析與報表 可動態分析每個員工培訓情況與崗位的符合度情況,作為了解員工知識結構與水平、以及人員選拔的依據之一,可依據某一崗位統計出單位內非本崗位員工崗位培訓度情況,并按積分從高到低進行排序;直接上級、主管部門可動態跟蹤、統計員工的培訓情況,有針對性的了解需求、組織培訓;員工可動態的查看本人需培訓的課程,本人的培訓檔案與積分情況,以便及時參加相關培訓,能動態地查看計劃與完成情況的對比。

          5、系統的建設和推廣解決的問題

          5.1實現了局培訓的全員覆蓋 系統的使用實現了全局全員培訓的完全覆蓋。截止到2012年7月,系統已經穩定運行了了將近2年時間,審核并固化了全局698個崗位應知應會標準,為支持網絡培訓應用,開發了將近400門電子課件,并同步建設了基本涵蓋所有崗位的配套題庫數萬道,節約培訓成本,提高效率。

          5.2實現了培訓的智能化全過程管理 依據佛山供電局崗位應知應會標準,按崗位制訂培訓方案,自動生成員工的培訓計劃,并結合課程課件,推送到員工的學習任務中,實現員工學習過程的監控,培訓積分的自動計算、學習檔案的自動歸檔,實現培訓項目的全過程管理,有效提高培訓宏觀管理能力,并可依據遠近期目標,選擇所需的培訓知識和技能及評估績效等;

          5.3實現對員工崗位符合度評估 根據人員和崗位信息,計算個人積分,依據崗位應知應會標準,推算出人員崗位符合度。可按員工進行分類統計,查看詳情后,可查看具體的員工已完成的課程與實際應學習的課程之間的對照關系,為員工績效評價和人才選拔提供依據。

          5.4實現網絡培訓的在線管理 實現從培訓項目的建立到培訓效果分析等一系列在線管理功能。可由系統生成學員報名、辦班管理、學員學習情況監測與統計、培訓效果評估、月度、季度、年度等報表,實現辦班管理的網絡化、數字化,提高各項數據查詢的速度與準確性;

          5.5實現培訓的監督考核管理 可依據培訓目標制訂詳盡、周密并可操作的培訓,并可從培訓、業務主管部門、直屬上級等不同層次對培訓目標的監督考核,保證嚴格按培訓計劃與要求將培訓落到實處。

          6、小結

          國外先進企業早已有通過培訓模型信息化來實現智能化培訓的案例,國內一些較先進企業也已經逐步開展崗位勝任力模型及崗位知識庫的建設工作,但大多由于電子化培訓資源不足沒有得到很好的推廣。

          佛山供電局基于崗位應知應會標準的電力智能化網絡教育培訓系統的建設以“智能化、實用化、標準化、集約化”為基本原則,以“創先”為指導思想,運用“大規模、低成本、高效益”的遠程網絡教育為主的培訓方式,以崗位課程體系為指引,以課件教學為依托, 以培訓管理機制為約束,以崗位符合度考核為手段的培訓教育模式,強調以人為本、整合培訓資源、優化培訓流程、注重培訓效果,使得員工的知識、技能、工作方法、工作態度以及工作價值觀得到改善和提高,從而發揮出最大的潛能,提高個人和企業的業績,推動企業和個人的不斷進步,實現企業和個人的雙重發展,使教育培訓工作在服從企業主業發展過程中逐步發揮重要作用。

          參考文獻

          [1]廣東電網公司遠程教育系統建設規范

          [2]佛山供電局網絡教育培訓系統擴充需求說明書

          [3]佛山供電局網絡教育培訓系統擴充建設實施方案

          軟件開發培訓計劃范文第3篇

          關鍵詞:GJB5000A;軟件研制能力成熟度模型;過程域;軍用軟件;配置管理;軟件工程

          0 引言

          隨著現代武器裝備中計算機技術發展的日新月異,軟件在其中的比重越來越大。各種軍用產品中的很多重要功能不得不依靠軟件設計來完成,但傳統的過程管理模式已滿足不了日益增長的軟件研制要求。

          為了評價軟件研制單位是否具有相應的軟件研制能力,總裝備部制定了GJB5000A-2008《軍用軟件研制能力成熟度模型》,并交由新時代認證中心組織實施認證。通過貫徹GJB5000A的要求并不斷改進的軟件過程,各軍工企業已經認識到過程改進后可以縮短軟件開發周期、節省成本、提高軟件可靠性等好處。

          通過GJB5000A二級認證評價,是軍用軟件開發單位的基本要求和建立軟件過程控制體系的第一步,也是提高軟件工程化水平的基礎。結合GJB5000A二級實施現狀和評價中發現的各類問題,分析GJB5000A實施的關鍵點,對解開軟件改進過程中的疑點和困惑具有重要的意義。

          1 GIB5000A二級過程概述

          1.1 GJB5000A軟件研制能力等級

          軍用軟件研制能力成熟度模型采用分級表示法,共分5個等級(見表1)。所有認證工作必須從2級(已管理級)開始,每一個成熟度等級都是下一個等級的必要基礎,所以跳躍式實施認證是達不到預期和無意義的。

          1.2 GJB5000A二級過程概述

          GJB5000A二級是軟件開發單位實施軟件工程化的開始。它包含了7個過程域:配置管理(CM)、測量與分析(MA)、項目監控(PMC)、項目策劃(PP)、過程和產品質量保證(PPQA)、需求管理(ReqM)和供方協議管理(SAM)。這7個方面是軟件開發過程的控制關鍵點,由于軟件研制過程參與人員多、部門多、人員技術水平參差不齊,這些特點增加了軟件過程改進實施的難度。

          表1 軟件能力成熟度等級及特征

          任何一個過程域實施不到位,都會影響到項目計劃的執行和產品的交付。由于項目中涉及軟件外包問題較少,因此不對供方協議管理(SAM)問題進行分析。下文主要分析GJB5000A過程中相關的6個過程域的關鍵點及問題。

          2 配置管理(CM)

          軟件配置管理主要是控制軟件技術狀態,保證工作產品在整個軟件生命周期中受控。軟件配置管理活動主要包含配置標識、配置控制、配置審核、配置狀態記實、軟件發行和管理。其中在實施軟件配置管理的過程中容易忽略下面幾個關鍵問題。

          沒有明確配置項選擇準則。為防止重要的軟件配置項沒有得到控制,同時避免浪費過多資源管理不重要的資料,應在過程文件中列出如何選擇軟件配置項,必要時應列出應控制的軟件配置項清單。

          沒有建立軟件配置管理的多級控制。對于大型軟件開發單位,往往參與人員眾多,單位結構復雜,只建立一個軟件技術狀態管理機構,是無法有效實施軟件過程管理的。因此建立二級軟件配置管理機構是可行的:項目級和組織級,這樣可以提高組織對軟件變化的反應和問題的處理能力。

          沒有明確軟件配置審核的要求。軟件配置審核包含功能配置審核、物理配置審核和配置管理審核。進行軟件配置審核時,應分清這三中審核的界限和要求,才能有效地在不同時機發現軟件配置管理的問題。

          3 測量與分析(MA)

          進行軟件測量與分析主要是為改進軟件過程,便于采取糾正措施達到組織的目標。通過測量活動,組織可以找到如何提高軟件質量、節約成本、提高用戶滿意度等方法。其中在實施軟件測量與分析的過程中容易忽略下面幾個關鍵問題。

          沒有分析過程和活動的評價準則。對于選擇的測量項進行合適的分析,有助于檢查數據的必要性和可靠性。只有通過建立評價準則,才能夠從數據中找到問題的所在。

          不能清晰反映測量項和測量目標的關系。如果測量項和測量目標的關系不明確,就無法正確理解測量項和進行優先級排序,所以要細化項目中測量項和測量目標的映射關系。

          4 項目監控(PMC)

          軟件項目監控主要是在項目未按計劃執行并發生顯著偏離時,能及時采取糾正措施。通過計劃監督項目中的參數、承諾、項目風險、數據管理、利益相關方和評審等方面,在發生顯著偏離計劃時能及時分析和解決問題。其中在實施軟件項目監控的過程中容易忽略下面幾個關鍵問題。

          一些重要評審和會議缺少利益相關方的參與。往往在一些里程碑會議上,會議組織者未按計劃要求或由于種種原因沒有邀請有關人員參與評審。這樣不利于問題的解決和溝通,為后續工作的開展埋下了隱患。

          缺少里程碑的評審準則。在評審過程中,項目應明確制定里程碑評審規程,并對參與人員、評審內容等方面進行約束,這也是項目實現承諾、提高用戶滿意度的有效手段。

          5 項目策劃(PP)

          軟件項目策劃是進行軟件過程控制的前提,保證你能按正確的方法去開發軟件。軟件策劃活動是通過歷史數據進行估計,通過估計編制計劃,依據計劃開展各種活動。其中在實施軟件項目策劃的過程中容易忽略下面幾個關鍵問題。

          沒有依據工作量導出工作進度。項目軟件負責人在安排任務進度時如何合理安排資源既是工作的重點,也是難點。利用估計工作量來劃分階段,便于區分各種活動之間的關系,也是唯一估計進度的手段。

          制定項目培訓計劃時沒有考慮項目組成員的實際技能和能力。按照傳統管理方式,項目在開始制定管理計劃時,往往容易忽略人員的各種技能的培訓,簡單認為能開發軟件就行。事實上,進行項目管理軟件開發人員必須懂得在軟件開發過程中所涉及過程域的要求和組織制定的過程文件。

          6 過程和產品質量保證(PPQA)

          過程和產品質量保證是對項目計劃進行跟蹤與監控,說明具體的方法,為軟件項目的實際進展提供足夠的可見度。軟件質量保證活動往往已得到組織的重視和認可,但在開展評價活動時必須保持客觀性和有效性。其中在實施軟件過程和產品質量保證的過程中容易忽略下面幾個關鍵問題。

          沒有明確如何處理不符合項的準則或規程。對于不修改不符合項的關閉問題,不是交由當事人,也不是交由QA人員,而是由高層經理決定的。在實際進行項目管理過程中,如果不明確關閉的準則并考慮到特殊問題的處理,容易造成問題記錄不正確或出現遺留問題。

          在項目早期工作中沒有及時進行審核。如果軟件質量保證人員等到項目計劃評審后,才開始審核,就會出現審核不及時、工作不到位的情況。所以在制定過程文件時應增加早期策劃質量審核的要求,將工作做細避免遺漏。

          7 需求管理(ReqM)

          需求管理主要是管理項目的產品和產品部件的需求,并標識這些需求與項目的計劃和工作產品之間的不一致性。需求管理對軟件過程及工作產品影響很大,因為需求總是在變化而且如何獲得需求的承諾是放在軟件開發面前的難題。其中在實施軟件需求管理的過程中容易忽略下面幾個關鍵問題。

          需求跟蹤矩陣不完整,特別是非功能性需求的跟蹤不到位。對需求進行逆向跟蹤是很有必要的,對于需求的雙向跟蹤,即要有水平和垂直的跟蹤,才能夠實現承諾,并有效地保障了軟件開發的過程不偏離。

          沒有評估需求變更對原承諾的影響。任何需求變更不止是對開發進度、進度、人員有影響,對現有約定的影響也需要進行分析,有助于管理好需求,更好地做出判斷是否需要采用更好的控制方法。

          8 結論

          實現GJB5000A二級軟件過程目標和要求是一項系統工作。它需要發動組織各個層面上員工的主動性和創造性,才能夠克服各種管理上和技術上的難點和關鍵問題。任何組織進行過程改進不考慮自身的現狀,去照搬某個單位的解決辦法是不切實際的,因此需要結合軟件工程實踐的最佳經驗,才能選擇實際的改進方法和措施。

          在推進軟件工程化工作中,選擇軟件研制能力成熟度模型已成為眾多航空企業提升軟件管理和研制能力的新要求。越來越多的軟件專業人才將會致力于軟件過程的轉變,通過及時總結技術經驗避免走不必要的彎路,促進航空軟件技術水平的提高。

          參考文獻:

          [1] GJB5000A-2008軍用軟件研制能力成熟度模型.

          軟件開發培訓計劃范文第4篇

          關鍵詞:技能型軟件人才;教學理念;職業技能;教學方法

          軟件藍領一詞來源于印度,泛指技能型軟件專門人才。目前全球軟件與服務外包市場規模依然巨大,并以膨脹方式持續增長,外包市場需要大量技能型軟件專門人才。上世紀末,“千年蟲”解決方案成就了印度,使之成為軟件與服務外包產業強國,令世人矚目。在印度的軟件企業中,軟件開發如同傳統產業的流水線作業,每個基礎編程人員按照規定的工序加工某個標準件,從而實現工業化生產,正如印度卡納塔卡邦首席行政長官Krishna在解讀為什么班加羅爾會成為印度乃至亞洲的硅谷時回答,除了教育,還是教育。

          目前,在我國軟件企業中,人才缺乏是制約軟件企業發展的主要瓶頸之一。我國各級各類教育機構依然存在著教學內容與市場實際需求脫節,面臨最大的教學問題是企業求賢若渴、卻英才難覓,其根源在于傳統的“本科壓縮型”人才培養模式問題。筆者針對技能型軟件人才培養過程中實踐教學環節的教學問題,從教學理念、教學內容和教學方法3個方面進行實踐和總結,其目的是為了探索軟件工程專業本科生教育的人才培養模式。

          1 若干教學問題

          2001年12月教育部和國家計委聯合發出通知,批準清華大學等35所高校試辦示范性軟件學院,旨在通過軟件學院的建立,實現軟件人才的跨越式發展。在示范性軟件學院計劃中,明確提出面向軟件產業培養高素質的工程型軟件實用人才的專業定位。2003年教育部批準建立了36個示范性軟件職業技術學院。2004年IEEE-CS組織了軟件工程知識體系指南SWEBOK2004,在指南中劃分了軟件需求、軟件設計、軟件構造、軟件測試、軟件維護、軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具和方法、軟件質量等lO個關鍵知識域,規定了每個知識域中的具體教學內容,如“軟件需求”知識域有需求基礎、需求過程、需求獲取、需求分析、需求規格說明、需求確認、需求實踐等教學主題。

          回顧多年的軟件工程專業發展,我國各高校中已有近200多所院校開設了軟件工程專業,各級各類培訓機構相繼出現。為了支持軟件與服務外包人才的培養,自2006年起,商務部開始實施服務外包“千百十工程”人才培訓計劃,2007年教育部在“質量工程”中加大了對信息類專業的支持力度,軟件工程專業列入第2類特色專業建設項目,2011年國務院學位委員會正式公布了修訂的學科目錄,把軟件工程新增為一級學科。這充分說明軟件工程專業和學科在國家戰略層面上已經提升到一個新的高度。

          政府層面安排的各級各類專項培訓資金,主要用于支持大學生增加軟件與服務外包專業知識和技能,鼓勵外包企業新增大學生就業崗位的各類人才培訓項目,重點培訓大學應屆畢業生和尚未就業的大學畢業生,以及服務外包企業新入職員工。培訓內容包括軟件與服務外包企業人才定制培訓、從業人員資質培訓、國際認證培訓、行業標準及相關知識產權培訓、大學生實習項目及勤工儉學培訓、企業新人職人員崗前業務技能培訓等。政府層面出臺的政策目標,主要是為了建立軟件與服務外包人才的培養培訓體系,調整專業結構以適應軟件產業需要,加強高校學生實習實訓工作,深化高校與軟件與服務外包企業的合作等。

          綜上所述,市場對人才需求仍有較大缺口,適應產業市場不斷發展的軟件工程專業教育任重道遠。培養技能型軟件人才已經到了應該采用全方位、多渠道、企業廣泛參與的多種培養模式,才能從根本上解決目前企業人才短缺、現有人才結構不合理等問題。高校的根本任務是人才培養,要實現人才培養與企業需求之間的無縫銜接,本文主要討論3方面教學問題:

          (1)實踐教學理念。在教師組織教學過程中,其教學理念必須符合產業標準和項目規范,軟件項目的成功取決于項目團隊,項目團隊必須遵循軟件工程規范,規范是指項目規程和實施項目的相關技術標準,與之相關的專業知識只求其核心的基礎知識,不求知識全面。

          (2)職業技能結構。通常職業能力貫穿整個職業生涯,其職業技能可以劃分為,特定技能、通用技能、核心技能3個層次,其中的核心技能具有普遍適用性,在職業生涯中受益終生,此外個人的職業素養也是一種職業能力,主要有交流能力、溝通和表達能力、文檔的規范寫作、分工合作、團隊協作、敬業奉獻等。

          (3)實踐教學方法。在項目實施過程中,必須遵循軟件工程原則,根據“項目經理系統分析員軟件工程師具體程序員”的人才結構組建項目團隊,按照項目管理流程和技術規范實施項目,其教學內容必須緊跟產業技術、及時更新教材內容,注重實用性和針對性,項目實訓從最簡單的項目做起,在強調掌握具體專業技能的同時,要求學生善于交流、勤于溝通,逐步提高職業能力。

          2 實踐教學理念

          印度軟件企業快速進步的重要原因之一就是能夠按照軟件產業發展的需要,通過多層次、多渠道方式培養人才,形成多層次的人才結構。分析軟件產業特點,任何大型軟件項目的實施,團隊是項目成功實施的重要基礎,如圖1所示;把大項目分解成無數小模塊任務,要求按照具體的技術規范和標準施工,遵守項目流程,如圖2所示;不同層次上的人員有著具體而明確的分工,在合作或協同的過程中,需要具備相應的溝通技巧和職業素養,團隊角色職責如表1所示。

          在項目實施的過程框架中,工作指南規定了要完成的任務步驟、方法、進度等,各“角色”執行任務時必須參照工作指南,工作模板是指“角色”按照計劃進度完成具體任務以及必須完成的各種文檔結構,QC根據指南,逐一核對任務列表,通過檢查表監督各角色是否按進度執行。在項目實施過程中,項目團隊為了一個共同的目標(某個項目)一起學習和工作,團隊必須具有良好的溝通機制。例如項目專用的公告牌(公告、通知、狀態報告),項目郵件列表;項目網站(文檔、團隊成員主頁、相關的技術論文和筆記以及自學培訓材料),項目會議(關于簡報和問題解決方案),關于團隊成員工作的最佳實踐會議和討論,面對面交談等。

          在教與學的過程中,教師必須思考如何讓學生盡可能塊地掌握實際動手開發能力,盡快與產業技能接軌,要求學生給自己制造一個理由來組織學習型工作團隊,通過發放團隊工作規范和模板,簽訂團隊工作責任書、內部承諾等方式來提高團隊學習效率。通過教學實踐,明確人才培養目標,總結并提出團隊、規范、交流的教學理念,團隊是項目基礎,規范是項目規程和技術標準,交流是團隊成員的基本素養,其教學理念符合產業需求和企業實際。

          3 職業技能結構

          全球軟件產業市場呈現兩大特點,國際化分工合作步伐加快、產業化技術更新加速。前者使得軟件服務外包成為全球性軟件市場中的追逐熱點,涌現了象印度、愛爾蘭、以色列等一些軟件外包強國,后者說明軟件產業中的技術從業人員必須時刻保持適應產業發展的技術能力和技能,尤其是直接面對軟件開發環節中的技能型軟件人才。

          印度軟件人才培養模式的獨到之處就在于軟件企業的人才結構合理,其軟件教育的核心理念是緊跟國際軟件領銜企業的技術發展,快速更新教材,注重實用性和針對性,使畢業生能迅速適應企業的需要,可承擔任何大型軟件項目中具體某個環節的規范且熟練工作。對于軟件產業來說,教育部門提供大量技能型軟件人才是軟件工業化生產的基礎,同時這種專門化知識結構的人才模式也將推進軟件流水線生產的標準化。因此,必須分析研究技能型軟件人才需要什么樣的知識、能力和素質結構,應該尋找培養這種能力結構的方式方法。

          職業能力包括貫穿技術人員整個職業生涯的就業和創業能力、工作能力、職業轉換能力。現行教育部門或軟件企業中的技能型軟件人才的職業能力之內涵必須得以重新構造;已經不僅僅是動手能力、操作能力和理論知識的代名詞,職業態度、敬業精神、團隊合作交流和職業行為評價等因素都應納入到職業能力的培養中去。以職業活動為導向,以職業能力為核心的原則正在改變學科導向的職業教育培養體系,產業現場的實際需要和認同正在主導專業教育的內容和形式。接受任務、解決問題、執行規范、完成任務,這是最基本的標準。例如對于低檔軟件人員不懂操作系統、計算機原理、關系數據庫原理等常識,并不妨礙他編寫代碼、使用工具開發用戶層界面等專門工作。所謂技能訓練,就是掌握最基本、最必要的專業基礎知識的前提下,在較淺的程度內掌握幾種計算機程序設計語言,然后學習目前流行且高效率的軟件開發工具(如果企業需要,還可以學習一些更加專用的軟件開發工具),學習實用的軟件編程、數據管理、硬件維護等技術。

          在教學實踐中,我們提出“圍繞編程規范,研究技能知識結構”的課程建設思想,把技能型軟件人才的職業能力分為特定技能、通用技能、核心技能3個層次,其中核心技能是范圍最窄、通用性最強的技能,體現了職業活動中的最基本技能,具有普遍適用性,在職業生涯中受益終生。特定技能可以理解為按照國家職業分類來劃分范圍,例如各種職業資格證書的認證考核。通用技能通常比特定技能的口徑要寬,可以理解為在一組特征和屬性相同或者相近的職業群中體現出來的共性技能和知識要求。我們提出軟件工程專業的“職業技能”邊界,按照軟件階段劃分,制定不同階段所要求的職業技能,例如編碼階段,要求有規范代碼書寫、單元測試能力,專業教師(或項目經理)要善于觀察、發掘、培養新人,根據學生的各自特點,固化訓練或交叉培養設計、編碼、測試、文檔書寫或管理能力。按照職業成長過程區分,哪些人是技術型,哪些是項目管理型。哪些技能操作型人才。高校不是企業,企業也不該承擔高校職能;在校企合作過程中,圍繞職能能力訓練,企業和高校之間有職責分工的邊界,例如外包委托、實習見習活動等等。在職業素養和能力方面,著重在交流表達、規范寫作、分工合作、團隊協作、敬業奉獻等方面對學生加以訓練。我們提出的軟件工程專業的“職業素養”邊界,堅持任何人都有“用”的原則,關鍵“用”到實處。刁鉆苛刻的人“用”到測試上去,勤奮好勝的人“用”到技術攻關上,豁達人緣好的人“用”到項目協調上去,條理規矩的人“用”到設計上去。

          在軟件工程專業的人才培養方案中,專業知識只求核心基礎知識,不求全面知識,知識教學內容必須與技術發展同步更新。軟件工程專業“職業技能”方面的教材較少,這類課程建設有一定難度,需要大量的人力、物力投入。一方面,通過校企合作、校際協作來組織開發此類課程,另一方面,借鑒真實項目的仿真實訓來開發此類課程,此類項目的文檔比較規范齊全,可實施規范訓練。在校企合作的真實項目軟件開發過程中,應該根據學生年級高低,使課程教學和訓練僅局限于某個開發階段,例如編碼階段,著重讓學生看懂詳細設計文檔、規范編碼書寫、模塊單元測試。另外,在課程教學和項目訓練過程中,必須強調學生的說(交流)、寫、做,特別是說和寫。“說”可以通過組織定期或不定期、正式或非正式的會議討論,“寫”可以寫個人小結或技術分析等。這些內容和要求都應該作為課程建設的必須內容,并用恰當規范的格式或流程編寫起來。

          4 實訓教學方法

          根據培養目標和技能要求,通過校企合作形式,開發出一系列實訓項目,構建了以實訓項目為主題的實訓環境,明確提出以項目實訓為主的教學方式。通過教學實踐,提出以“職業技能為根本、工作體驗為主題、知識點恰到好處”的教學方法,如圖3所示。

          以實訓項目為主題的工作模式,是仿照軟件企業規范的運作模式,由教師(或項目經理)演示需求分析、總體設計文檔,安排學生編寫詳細需求、詳細設計文檔,將學生分成項目小組,分片包干,個人承包,每人都有機會承擔項目的某個具體內容(如編制模塊,編寫測試計劃和測試報告等)。旨在提高學生的規范化開發能力和團隊分工協作,強化程序設計基礎,使學生掌握軟件開發所必需的知識與技能,熟練運用開發環境和工具。

          以項目實訓為主題的實訓模式,通過實訓平臺讓學生依照軟件開發的規范流程進行訓練,做到、學到、用到,加深理論、技術和實踐的結合,通過平臺讓學生對自己的工作做出總結,闡明個人成果的理論依據、技術規范及采用的技術手段等。在項目實施過程中,必須遵循軟件工程原則,必須按照項目管理流程和技術規范實施項目,注重實用性和針對性,項目實訓從最簡單的項目做起,在掌握專業技能的同時,注重學生實踐操作能力和分工協作能力的培養,鍛煉交接工作能力,培養責任心與完成任務的決心。

          軟件開發培訓計劃范文第5篇

          關鍵詞 軟件工程教育 角色體驗 軟件工程知識體系 工程文檔

          1 引言

          軟件產業是互聯網和新一代信息技術發展的重要基礎,軟件工程作為一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科,始終是軟件產業發展的根基。對于計算機專業人才的培養,軟件工程在計算機高等教學中占有重要地位。但是無論從學生、教師還是業界的反饋都可以看出,軟件工程教學的實際效果遠未達到我們的期望。系統完整的軟件工程知識體系建立仍然面臨眾多挑戰,理論與實踐結合的創新人才依然難尋,完整嚴謹和有效的軟件工程架構風格依然遙遠。作為高校教師,我們必須從軟件工程的教、學、研進行深入的研究,探索一條行之有效的教學培養方法。

          軟件工程是“將系統性的、規范化的、可定量的方法應用于軟件的開發、運行和維護,其重點在于軟件的分析與評價、規格說明、設計和演化,同時還涉及管理、質量、創新、標準、個人技能、團隊協作和專業實踐等”。①相比于其他的計算機專業課程,軟件工程的教學有很大的不同。軟件工程中重要的技術和開發原理來源于應用和實際商業軟件開發,之后這些核心技術被提煉和整合形成原則和理論基礎而引入課堂,教授給學生。通過軟件工程課程的學習,學生需要了解和掌握軟件工程的理論、技術和方法,具備作為軟件工程師所需的專業能力。優秀的軟件工程研究者David Parnas將軟件工程計劃分成三個階段執行:(1)首先,詳細說明軟件工程師可能要執行的一些任務;(2)定義軟件工程師需要的知識體;(3)將其實施作為一個培訓計劃。②③由此可見,軟件工程是一門綜合性和實踐性很強的學科,傳統的教學模式和教學方法在軟件工程教學中存在很大不足,人為地強調實踐或者理論基礎無法有效地培養學生的綜合技能和水平,從而直接影響了課程的教育質量和教學效果。

          軟件工程課程必須面向解決實際問題,即如何成功地開發可靠的、可用的、可維護的軟件系統,滿足用戶的要求。這包含了需求分析、規劃說明、設計、構建、測試、操作和維護等軟件生命周期的各個階段。目前,軟件工程教學主要包含兩部分:課堂教學和實踐教學。以傳統的教師為導向的教學方式為主,實踐教學為輔。教師在課堂上講授軟件工程方法、原則、技術等知識;實踐教學主要是采用實驗課的方式,由學生設計完成一個項目。根據多年教學的經驗和我們調查反饋的結果,很多學生在本課程學習時感到茫然和無所適從,理論的東西感覺抽象難以理解,缺乏學習熱情和興趣。針對軟件工程課程的特點,我們認真分析調研了課程教學存在的問題,總結分析導致課程教學效果不理想的主要原因如下:

          1.1 課程設置安排不盡合理

          軟件工程是一門涉及內容較多的綜合性學科,所教授的原理、方法較為抽象。軟件工程中核心的技術和開發原理均來源于實際商業軟件開發,經提煉形成原理和方法而引人課堂。目前,大部分高校將軟件工程課程設置在大三,對于剛剛完成兩年大學公共基礎課和專業基礎課教育的學生來講,軟件開發的基礎理論和概念仍然匱乏,與軟件工程相關的前期課程前后脫節。尤其在計算機科學專業課程設置中,只有一學期的必修的軟件工程課,在這么有限的時間內學生很難掌握軟件工程的理論與實踐的精髓,從而造成大多數學生認為是在學習枯燥無用的理論。

          1.2 理論和實踐的脫節

          軟件工程是一門實踐性很強的課程。相比于其他的計算機學科的課程,軟件工程課程核心和精髓不可能從教師的授課和課本的理論學習而獲得,靠“死讀書,讀死書”是無法完成本課程的學習的,實踐和理解相結合的融會貫通非常重要。在實際軟件開發中真刀真槍的實現,在練習中理解基本原理,在真正練的過程中提升理論的水平是軟件工程課程教學和實踐的有效方法。

          1.3 重代碼,輕文檔

          在軟件工程課程的教學中,大部分的學生甚至部分教師都會自然地認為實現高效整齊的代碼是課程學習中最重要的工作,對于文檔工作未有足夠的重視。在實際軟件開發的工程實踐中,一般認為代碼的工作量只占到整個工程工作量的30%左右,完整、有效的各種文檔,包括設計文檔、算法文檔、說明文檔、維護文檔等是整個軟件工程核心。因而在軟件工程的教學中,我們必須轉變觀念,突出工程文檔的重要性,將各種統一、標準、高效和實用的文檔設計和撰寫方案融匯到課程的教學中,并且與軟件工程理論和代碼編寫結合,形成完整的的理論、算法、代碼和文檔并重的教學新方法。

          1.4 缺乏軟件工程知識體系的系統概念

          商用和實際應用軟件開發的工作是系統的團隊工作模式,單打獨斗無法完成商業和實用軟件開發。然而,現在軟件工程的教學中,教師和學生注重的是單個原理和系統的學習,從而造成了學生軟件編程風格五花八門,程序可讀性差,軟件工程的完整知識體系混亂。團隊工作的模式要求程序員在整個工程中需要承擔不同的角色,不同的角色承擔的任務不同,又同時需要與其他的角色互相配合溝通,從而完成整個工程的開發。這一點,在目前軟件工程的教學中非常缺乏,為此我們需要建立系統的概念,將角色體驗的模式引入軟件工程課程教學中。

          在參考文獻④中,Nurkkala和Brandle對軟件工程教學進行了分析,并對現行軟件工程教學方法中存在的問題進行了總結:(1)沒有產品——學生在學習中僅僅是創建項目,而并非真正地開發商業級別的產品;(2)持續時間短——通常軟件工程課程只安排一或兩個學期,課程受限于時間過短很難真正理解軟件工程的方法、原理等在實際軟件工程項目中如何應用,并完成開發真正的產品;(3)高流動性——對于一個項目來講,每個學期都有新學生加入意味著人才庫始終只有很少的人,新加入的學生很難基于之前的經驗開發其自身的技能;(4)低復雜性——由于學習必需時間以及學生本身技能的限制,只能開發簡單的應用;(5)無法維護——作為持續時間過短結果,學生沒法經歷軟件開發非常重要的一個方面,即系統維護階段;(6)沒有客戶——學習過程中,大多數軟件工程項目都沒有真正的與客戶進行接觸,而實際的開發中必須要了解客戶的需求,根據客戶的需求進行軟件開發。

          綜合上述分析,我們深入調研了現行軟件工程課程教學的困難和挑戰,分析了國內外報道的先進的軟件工程課程教學的新方法,結合我們幾年來課堂教學的經驗大膽改革課程體系框架和教學內容,積極探索案例教學和實踐教學模式,提出了角色體驗和工程文檔應用于軟件工程教學的新方法和新思路。我們強調建立理論與實踐相結合的軟件工程知識體系,采用任務驅動的角色體驗方法,加強學生協同分工和集成創新能力;突出強調工程文檔在軟件工程應用開發生命周期的重要作用,建立軟件工程中規范化的任務、知識體系和實施培訓的流程。

          本文第二部分將介紹目前報道的國內外軟件工程教學的有效方法,第三部分介紹我們探索的引入角色體驗和工程文檔的軟件工程教學新思路,第四部分進行總結。

          2 國內外現行有效軟件工程教學方法

          為了解決以上提到的軟件工程教學中存在的不足,目前,國內外已經提出了多種教學方法來改進軟件工程課程教學。范銳⑤等人提出了基于“做中學”的教學理念的“項目驅動、案例教學”的軟件工程教學模式,其教學理念認為軟件工程教學不能單純依靠理論講解,強調實踐對于軟件工程教學的重要性,在學生的實踐過程中,采用項目團隊方式進行項目開發,學生分組分工,明確每個人所承擔的職責,以此培養團隊意識。“項目驅動”的教學方式,將整個軟件工程教學過程包含于一個完整的項目之中,學生通過完成項目學習和掌握軟件工程的包含的知識,實現對知識的掌握和應用。

          陳建國⑥等人針對傳統以教師為主的軟件工程教學方法提出了改進,在傳統的軟件工程教學中引入了集體工作、實驗、案例學習、合作教育相結合的軟件工程教學方法,詳細地論述了這四部分對軟件工程教學作用以及對學生掌握軟件工程方法的幫助。采用了合作教育的方式,學校和企業合作為學生提供真正的商業軟件開發的機會,增強學生理論與實際的聯系,使得軟件工程教學中的項目管理、軟件過程、質量保證等不再那么抽象難于理解。

          近年,國外對于軟件工程教學方法中存在的不足提出了不少有效學習方法,其中相當一部分方法著重強調了協同工作⑦⑧⑨在軟件工程教學中的重要作用,在教學中分成多個小組,使學生加入其中,這些小組的組織結構與組內分工與實際的項目開發小組完全相同,這樣學生在學習的過程中完全按照實際的工程開發的需要進行學習,使得學生學習中能充分掌握軟件工程的方法、原則等的實際應用。此外,還提出了一些其他軟件工程教學的有效教學方法,如使用Liu⑩形式化方法教學;Deveaux豘等提出專注于軟件開發過程中的文檔,Deveaux認為在教學中很難獲得實際的足夠大具有開發意義的項目,而文檔的學習卻可以使學生充分了解軟件工程項目的基本原則,方法等內容;Li豙則成功地將統一過程方法應用于實際的教學當中;Pandey豛在教學中使用競爭的方法教授學生開發原則;更有一些在軟件工程的教學中采用游戲的方法,豜使學生充當游戲中項目小組的項目經理的角色來學習軟件工程。Scott豝等人在本科生的軟件工程教育中采用了開源工具,并將之整合到軟件工程課程中,通過學生的反饋對比,表明此種方法獲得了很好的效果。

          3 角色體驗與工程文檔結合的軟件工程教學方法

          3.1 國內軟件工程教學現狀

          在實際的課程教學中,運用了案例開發,與企業合作等方法,并結合國內外其他一些有效的軟件工程教學法后,我們發現學生在有限的時間內所能理解的軟件工程知識相當有限。在對計算機科學專業的學生進行調查時,我們發現大約80%學生對大三進行的軟件工程課程沒什么興趣。他們認為那只是枯燥的理論課學習和繁瑣的文檔編寫。在前兩年專業基礎課學習中,他們幾乎沒有接觸到文檔編寫,大部分項目的完成都是在草稿紙上設計然后直接進入程序編寫階段。他們認為這樣可以一步到位,省去很多繁瑣的細節。當然,正如我們前面提到,在本科教學中,學生在課堂上能實現的項目只能是中小型項目,復雜性低。學生無法感受到缺乏軟件工程流程中首要的基礎工作而可能造成的困難和嚴重的后果,所以學生們大多認為寫各種各樣的文檔是在浪費時間。而對于教師來說,到大三軟件工程課時,在沒有大型項目做支持的情況下,再教導學生編寫文檔的重要性,似乎沒有說服力,也很難扭轉學生已經形成的直接編程的習慣。所以在計算機學科的學習中,我們大膽改革教育的方式并修訂了階段性的培養目標,形成一種潛移默化提升學生綜合能力和水平的模式。在本科生進入大專院校就讀后,計算機專業課程,尤其是編程課程的項目設計上需盡早地讓學生接觸到軟件工程知識的基本概念和方法。從大一專業課開始,學生們就需要開始完成簡單的項目。如果教師們可以從一開始就讓他們了解到軟件工程的生命周期,接觸到軟件工程流程中的各個步驟,從簡單到復雜地進行實踐,到大三的軟件工程課時他們就會對這些知識已經有所了解,并不會感覺到枯燥,因為在前兩年的學習中他們一直都使用這些方法,已經養成了良好的軟件工程的習慣。

          3.2 基于文檔撰寫的潛移默化式教學法

          我們經常只會在軟件開發或維護過程出現問題時才意識到那些被忽略的文檔的重要性。在我們的調查中,軟件工程師們大約有60%以上都認為自己的文檔的編寫能力只是一般,有些甚至不會撰寫文檔(見表1)。很多工程師在學校并沒有受到專業的訓練,只有到工作中才開始慢慢學習與實踐,但是經常由于時間有限,項目截止日期逼近而只好疏于對文檔的編寫或是只能犧牲其質量。如果我們在本科教學中盡早地讓學生接觸到各類文檔,在撰寫項目文檔的過程中,學生不但能學習到軟件工程的流程,也能把撰寫文檔的技能鍛煉熟練,更重要的是他們會漸漸地把文檔的撰寫與管理當成一種習慣,當成一種必須。這樣,無論是大型項目還是小規模項目,他們都會用一定的軟件工程流程來完成。一開始的小項目中,也許他們并不能理解為什么要撰寫那么多文檔,但當他們到高年級創建相對復雜的項目時就能體會到文檔的好處。他們就能領會,計算機軟件并不只是程序,還應該有一整套文檔資料。這些資料都是在開發過程中產生出來的,對軟件管理人員,開發人員,維護人員,測試人員,客戶,包括程序員自己都是必不可少的。那么如何開始這種潛移默化式教學法呢?教師們要對所有四年的專業課程進行分析,總結出需要參加這個軟件工程教學計劃課程和項目。加入到這個計劃里的課程教師要設計符合這個計劃的項目,并將文檔撰寫作為對學生必須的要求。在整個計劃中,建議提供一套完整統一的各類文檔的模板以供學生們使用,包括軟件需求說明書,軟件設計說明書,軟件測試說明書,項目開發計劃書等。這些模板要一致,學生在所有課程中要使用一致的模板,由簡化版到完整版,低年級的學生先使用簡化版的模板,讓他們漸漸地學習撰寫文檔。比如一年級的項目可以只要求寫軟件需求說明書。在模板的設計中,最好是和企業界運用的文檔保持一致,然后進行簡化,給學生提供一種他們可以勝任的文檔模板,然后逐年增加內容,最終可以與業界使用的文檔保持一致。這個計劃的實施需要得到計劃內課程教師們的認同,通力合作,把學生四年的學習列入計劃,并隨時進行監督。經過四年的訓練,學生的寫作能力一定能得到大幅度提高,對軟件工程的認識也會非常深入,畢業后能夠勝任商業軟件和應用軟件的開發要求。

          3.3 基于角色體驗的軟件工程課程教學法

          上面提到的文檔式教學法是為了訓練學生創建各類軟件工程文檔的能力。在課堂項目中,由于時間有限,一個學生往往不可能完成整套文檔的撰寫。在低年級階段,在小型或中型項目中,學生學習了軟件需求和軟件設計文檔,學生應該可以單獨完成。但當項目變得相對復雜,大多課程項目都是以團隊合作的形式來完成。教師通常知道哪些同學組成一個團隊,但并不清楚或關心這些同學在項目組里擔任的角色。這樣,在四年的學習中,有些同學在項目組里只保持著一種角色,如只擔任了程序員或測試員,并沒有機會對各個相應的角色進行體驗,導致他們知識的不全面。與文檔教學法相結合,我們提出一種叫做角色體驗的教學法,和文檔式教學法同步進行,一同潛移默化地將軟件工程知識注入學生腦海。所有加入計劃的課程要統一安排項目組成員,目的是讓每個學生在這些課程項目完成的過程中能體驗所有的軟件工程角色,并完成這一角色相對應的文檔。這樣不但訓練了每個學生各種文檔的寫法,讓學生了解了軟件工程生命周期整個團隊要進行的工作,而且鍛煉了學生互相合作的團隊精神,避免學生在團隊中只依賴于幾個學習相對比較優秀的學生來完成項目。假設我們要訓練學生四個角色:項目經理,系統分析設計師,程序工程師,和測試工程師,我們需要至少四門課程加入此計劃。如圖-1所示,四個學生分為一個項目組,經過這四門課程項目的訓練,他們可以完成這四個角色的訓練,學會四種文檔的撰寫,體驗各個角色在軟件工程流程中的職責。如果要增加角色和文檔種類的話,可以適當調整學生團隊組員數目與職責。經過這樣的訓練,學生對團隊合作一定會有更加深入的認識,也能提高隊員的溝通能力,以改善畢業生在企業界缺乏溝通能力的現狀。

          經過四年的文檔與角色的潛移默化式訓練,一定能大幅提高學生的軟件工程能力。相比單純的一到兩門軟件工程課程,學生對軟件工程的理解要深入得多,實踐能力也會大幅度提高。由于計算機科學專業課程設置并不像軟件工程專業對軟件工程的教學那么有針對性而且課時較少,所以這種方法尤其適合計算機專業的教學。