戴牡紅
摘 要:針對軟件工程專業存在的實踐教學缺少從項目策劃到項目實現全過程的項目管理,缺少軟件需求分析、設計與實現的軟件工程項目完整的過程訓練等問題,圍繞使學生具備設計和實施軟件項目工程能力的培養目標,構建軟件開發全工程的訓練平臺,按照工程化的原則和方法來培養學生軟件開發過程的實踐能力。該訓練平臺是軟件工程專業學生不可缺少的重要實踐教學環節,是學生把課堂所學理論知識與實際項目相結合的重要途徑。實現了對軟件開發完整過程鏈的實踐教學,形成了系統化、規范化和可度量的實踐教學質量保障體系。實踐證明,軟件開發過程訓練效果良好,培養了學生的工程實踐能力和創新能力。
關鍵詞:軟件開發過程;實踐教學;過程訓練;教學平臺
中圖分類號:TP311.5 文獻標識碼:A
Abstract:The paper analyzes the problems of the lack of practical teaching from planning to project completion as well as the lack of complete process training in software demand analysis,design and implementation.To reach the training objectives of the students' ability to design and implement the software project,the training platform of the software development project is constructed and the practical ability of the student software development process is cultivated according to the engineering principles and methods.The training platform is an indispensable practical teaching part of software engineering students,which is an important way for students to combine the theoretical knowledge and practical project.It implements practical teaching of a complete chain of software development,a systematic,standardized and measurable practice teaching quality assurance system is formed.Practice has proved that the software development process training effect is good and it has cultivated the students' engineering practice ability and innovation ability.
Keywords:software development process;practice teaching;process training;teaching platform
1 引言(Introduction)
軟件工程是一個動手能力很強的專業。目前許多大學的實踐教學效果不理想。軟件工程實踐教學管理制度不完善,實踐教學管理過程不規范,實踐教學相對獨立,缺乏實踐的全過程監督體系和科學的實踐評價機制,缺乏有大型軟件項目開發經驗的實踐教學教師,教學模式和組織形式與軟件工程本身的固有特性與要求不相容[1,2]。軟件專業本科學生軟件工程實戰少,理論落后于實踐。要有效提高軟件人才的培養質量,需要建立科學合理的實踐教學管理體系和量化的質量保證措施,要實現軟件生產全過程的實踐教學的監督和管理,培養學生的學習主動性,提高實踐教學的有效性[3]。湖南大學軟件學院一直對本科生強化軟件過程訓練,開設了創新課程與項目實戰,取得了良好的效果。本文介紹軟件過程訓練過程的基本思路和工作流程、過程訓練的組織與管理方法,以及軟件過程訓練平臺的構建。
2 軟件工程過程訓練(The process training in
software engineering)
軟件過程訓練貼緊軟件行業發展需求,與實際的工程項目相結合。四年制本科教學的過程訓練原則上在完成了主要的程序設計語言、軟件工程等專業基礎課之后的第3學年的夏季學期,在過程訓練平臺上實戰,然后以4—6人為一個小組,從一個實際項目的需求分析開始,涵蓋總體設計、詳細設計、代碼編寫、測試、系統集成、客戶化等一系列完整的軟件項目開發過程[4],開發出一個初步可運行的系統。
在訓練過程中,每個項目指定一個指導老師。指導教師在工程中心的統一協調下,由其負責該小組軟件開發平臺、工具、規范的學習、實際過程的指導,最后考查其完成情況,并將最后的成果提交給工程中心。由工程中心組織項目最后的測試、答辯,從而決定該小組各成員的成績[5]。基本的流程如圖1所示。
2.1 過程訓練選題
過程訓練開始前,由過程訓練指導老師向學院教務辦提交過程訓練項目。根據過程訓練老師提交的訓練項目,教務辦向學生公布本期過程訓練項目情況:要開發的軟件項目描述、小組成員的基本要求(使用的編程語言、開發工具等)、小組成員的人數等。學生在規定的時間內選題,并返回學生選題情況表;教務辦和工程中心根據學生的選題情況,認真審查后確定《過程訓練學生分組名單》。endprint
2.2 過程訓練項目與文檔
參加過程訓練的項目組必須在訓練期間分析、設計、開發出一個真正可以運行的系統。過程訓練項目組需提交以下文檔:項目組人員分工安排表、需求分析說明書、系統設計說明書、系統測試報告、系統使用手冊、過程訓練總結報告。
承擔過程訓練的指導教師必須有實際項目管理、開發經驗,具備一定組織管理能力,精通一門開發語言,精通一種系統設計方法,有足夠的時間保證用于指導項目組。指導教師必須對每一階段的文檔進行指導與審查。
2.3 過程訓練答辯
過程訓練答辯由文檔審查、答辯前的測試和答辯等過程組成。答辯前必須提交過程訓練要求的所有文檔,含電子與紙質兩種。文檔未提交齊全者,不安排測試。工程中心組織老師對各項目組提交的文擋進行審查,安排老師對文檔通過的項目組系統進行測試,測試通過后方可進行答辯。
過程訓練答辯成績采用100分制計算,各項目組答辯時,先由各項目組長進行答辯,分以下幾個方面介紹:
(1)項目簡介:包括項目背景、主要需求。
(2)功能實現:系統功能演示。
(3)文檔質量:文檔完成情況,設計思路與技術。
(4)過程質量:實習過程基本情況,遇到的問題及具體的解決方案。
(5)創新能力:完成任務的辦法、新技術、創新內容。
各項目組長對項目實施情況陳述后,就完成的情況回答老師提出的問題,然后是各組員介紹自己在過程訓練中的情況并回答老師提出的問題,指導老師根據各同學的答辯情況確定其個人成績。
2.4 過程訓練考核
過程訓練的考核方式為根據功能實現、文檔質量、過程質量、工具熟悉程度、創新能力、訓練的出勤率等考核指標,綜合學生是否通過過程訓練。通過的學生給予8個學分,未通過的學生必須重修。
3 軟件開發過程訓練平臺建設(Construction of the
software development process training platform)
過程訓練開始后,項目組成員必須參加由工程中心統一組織的軟件工程規范訓練及各指導教師安排的組內訓練。訓練的內容包括:工程中心管理文件,文檔編制規范,開發平臺,分析、設計、編程工具等。
過程訓練平臺(圖2)是一個以案例教學為主的自主學習平臺,以具體的案例展示軟件項目生命周期的各個階段。學生們通過案例的模擬運行,身臨其境,仿佛置身于一個真實的項目中,獲取直觀的經驗。了解軟件生命周期各階段的要求、方法、規范和產生的成果,再結合過程訓練的要求從事一個具體項目的開發操練,從而使學生掌握軟件開發過程(產品研發和工程項目)中所需的基本技能。
3.1 項目策劃
訓練按軟件工程的方法進行項目管理的方法。在軟件項目開發之前系統地規劃整個項目進展過程,包括階段劃分、資源分配、進度安排、階段具體計劃的制定等,確保項目在預算之內及時交付并達到質量目標。
3.2 需求分析
訓練軟件產品和軟件項目的需求分析方法。在進行軟件開發前,明確其應達到的目標,對系統目標做出完整、準確、清晰、具體的要求[6]。為使需求分析的結果能夠完整、無遺漏地反映待開發系統的要求,闡述需求分析報告的編寫格式和內容要求。
3.3 系統設計
訓練總體設計、詳細設計、涉及使用數據庫的設計編寫數據庫設計等的方法、格式和內容要求[7]。系統設計報告主要為使軟件產品和軟件項目滿足規定的軟件規格要求而確定軟件系統的體系結構、組成成分、數據組織、模塊、內外部接口。主要任務有建立軟件產品和軟件項目目標系統的總體結構。對于大規模軟件系統,應分為若干子系統,在本報告中只說明總體設計,然后為每個子系統編寫系統設計報告。
3.4 編碼規范
良好的編程風格是提高程序可靠性非常重要的手段,也是大型項目多人合作開發的技術基礎。訓練程序編寫過程中的編碼規范,目的在于通過規范定義來避免不好的編程風格,增強程序的易讀性,便于自己和其他程序員理解。
3.5 軟件測試
訓練對軟件產品進行測試的工作流程、資源及各項工作的要求及所需形成的文檔,以提高測試質量和測試效率,確保軟件產品滿足質量要求[8]。測試計劃用于明確軟件產品確認測試過程中測試設計、測試執行及測試總結工作的具體任務分解、人員安排、進度及輸出結果,以使整個測試工作有計劃地順利進行。為了指導軟件測試人員有效地設計測試用例,對所測試軟件進行全面測試,以盡可能發現最隱藏問題。
3.6 產品制作
產品制作指軟件產品或軟件項目釋放后,產品制作部門所進行的復制、安裝盤檢驗、包裝等的一切工作。訓練軟件產品和軟件項目的制作工作規范,以使產品的制作程序完整、正確,方便用戶使用。訓練軟件產品釋放方案(包括名稱、包裝、價格、廣告等)的規范化,保障產品質量滿足質量要求。
3.7 項目總結報告
訓練項目總結報告的編寫規范,主要描述在軟件產品或軟件項目開發完成時所需編寫的項目總結報告應該包含的內容,使得項目總結報告便于軟件產品或軟件項目日后的維護、交接和代碼重用。
3.8 技術報告
訓練技術報告編寫規范,訓練在軟件產品或軟件項目開發完成時所需編寫的技術報告應該包含的內容,使得技術報告便于軟件產品或軟件項目日后的維護、交接和代碼重用。
3.9 配置管理
項目實施過程所需要的或產生的軟件、硬件、工具、釋放產品、文檔等形成配置項,通過階段評審并可用作下一步的開發基礎的配置項稱為基準配置項。訓練配置管理計劃和配置管理規范,以確保配置項正確地唯一標識并易于存取,保證基準配置項的更改受控并可追溯,明確基準配置項的狀態。endprint