常州伍杰科技软件有限公司

在线留言 加入收藏 设为主页
解决方案

软件工程实训实验室解决方案

一、需求分析
1.1  软件工程概述
    软件是智力密集型产品,软件产品的生产管理较其它产品更具复杂性和特殊性。根据美国统计表明,软件项目或产品的质量70%取决于软件开发过程的管理,只有30%与技术有关,由此可见软件工程管理的重要性。软件质量取决于软件开发过程,具有良好的软件开发过程的软件机构才能开发出高质量的软件产品。
    “软件工程”学科已发展为计算机科学与技术、数学、工程学、管理学等相关学科的交叉性学科,已形成较完整的理论与工程技术体系,课程体系基本明确,高端人才培养能力基本形成,创新型复合型人才的社会需求不断提高。软件工程学科涉及软件产业、信息产业和现代服务业,代表未来社会产业发展方向。现有软件工程人才培养体系不完整,需要通过进一步学科建设方能适应产业发展对高端人才的需求。因此国务院学位委员会2011年2月新修订学科目录中,将“软件工程”新增为一级学科。这也为软件工程专业的教学提出了更高要求。
1.2 软件工程专业的教学现状
    软件工程的研究范围十分广泛,既包括软件开发中的方法、技术,也包括软件开发工具及软件项目管理等。软件工程课程的教学效果将直接影响到学生毕业后在企业参与团队协同工作及软件项目管理能力。而当前由于没有很好的技术支撑平台,大多数学校的教师只好偏重于理论知识的传授,最多是增加一些项目开发和管理的案例,学生对所学知识没有一个整体的把握,开发的项目只能够进行手工管理,学生参与程度不高,严重影响了该学科的教学质量。
    软件工程专业教学面对现实是,企业希望新参加工作的应届毕业生能更快的适应企业管理环境及要求,然而在目前情况下应界毕业生参加工作后都得花很长的时间去理解并适应企业的管理模式,不能很快的脱离原来的学校管理模式,要么就是只能做到像一个装配工一样失去了该有的思考,这样一来对企业及对学生个人来说都是可悲的。
    因此,很有必要对现有的教学进行合理的改进和创新,让学生能在学校中就接触及感受真实的工作环境,加强学生的团队协同、沟通能力,从而更好地保障教学质量,也使学生在进入社会参加工作后能更好的适应不同的环境,从而增强学生在社会中的竞争能力。


二、实验室建设目标
    以“职业为导向、实践为主线、项目为载体”,将 “软件工程实验室”建成“学中练,练中学”的专业教学模式。
1、提高学生的软件设计能力。
    引入美国卡内基?梅隆大学(CMU)提出的“在软件工程项目中学习(Learning by doing)”的先进教学理念,尤其注重学生实践能力的培养。

2、实践教学改革特色鲜明,教育教学质量将得到有效的提高。


3、“1+2软件工程实验室”,即“USDM平台 + JAVA和.NET语言”实验室。
     “USDM”突破以往项目管理工具的局限,将JAVA和.NET开发过程中产生的代码,以项目为单位,与项目管理流程相结合。扮演项目经理角色的用户可将JAVA和.NET工程签入“USDM”服务器统一管理,而扮演开发人员的用户可由服务器签出与自己相关的代码以编辑。
4、教学科研更加紧密结合。
    “软件工程实验室”积极探索教学新摸式,可以产生的高质量新课件、软件系列教材及配套实训指导书,为教师提供丰富的教学资源,也为学生提供了图形化的学习环境。充分应用案例教学、情景教学、启发式、交互式教学等多种教学方法和手段,可有效地激发学生的学习积极性和主动性。
5、辐射和带动相关专业的发展,为区域经济的服务能力将得到大幅度提高。
    “软件工程实验室”基地建成后,将成为“生产性”实训基地,具有强大的科研、产品研发、技术推广能力,依托基地,实现校内实训基地设备、教学成果的共享,带动相关专业师资水平的提高,同时在人才培养模式、课程体系建设、教学方法和手段、校企结合等方面提供经验借鉴。

三、解决方案
3.1 指导思想
    以提高软件工程专业学生的“职业实践能力”和“职业素养”为宗旨,倡导“以学生为中心”的教育理念和建立理论与实践相融合的教学机制,通过综合和具体的职业技术实践活动,帮助学生积累实际工作经验,突出职业教育的特色,全面提高学生的职业道德、职业能力和综合素质。人才培养应体现以下基本原则: 
    (1)以全面素质为基础,以能力为本位。
    (2)以岗位需求为基本依据,以就业为导向。
    (3)适应行业新技术发展,体现教学内容的先进性和前瞻性。
    (4)以学生为中心,体现教学组织的科学性和灵活性。
3.2 建设基础
    (1)“软件工程实验室”采用 “项目导向、课程驱动” 的原则对学生进行软件项目开发的实训。按照软件企业项目管理的开发模式,使学生在参与实际的软件项目开发全过程中,进一步学习和巩固软件工程的基础知识,从而培养其软件开发的实践能力、创新意识和团队协作精神,并且使学生具备规范化的软件开发能力和软件服务能力。
    (2)常州伍杰科技软件有限公司自主研发的“统一软件数据管理系统(USDM)”是20多年的实践经验及关联课程的积累和沉淀,理论密切联系实际,教学内容紧跟软件工程和软件开发技术发展前沿。
    (3)“USDM”是目前国内唯一的支持软件开发中各个生命周期环节的工具。支持软件的分布式开发、流程式的过程管理,及开发过程各级阶段的量化管理。为争创特色专业建设和省级品牌、各级精品课程有了可持续发展的保证。
    (4)伍杰科技通过与多所高校开展深度合作,逐步将"USDM "改善为以项目为向导,以课件为驱动的模块化管理系统。系统以软件工程专业课程划分模块,循序渐进,再搭配成熟的一体化管理工具,将各个模块整合。真正做到了软件与课程的结合。
    (5) “USDM”兼顾模块化与系统化教学,在按课程划分模块的同时,依赖一体化管理工具对各个课程的学习加以串联,形成系统化的知识链,加深了学生对软件工程知识体系的理解。
    (6) 通过科研项目的输入,把有关的成果融合到整个课程教学,及时反映了软件工程学科的发展和最新研究的成果,提升了实训教学水平。“营造真实环境,进行生产性实训”,提升社会效益,增强社会服务能力。

 
3.3 基于“统一软件数据管理系统”的软件工程实验室
    “统一软件数据管理系统”,简称USDM,是基于CMM/CMMI模型框架的“软件工程”理论学习和实践实战的基础平台, 其内容覆盖了从CMMI 1.2的中文学习到软件开发各过程的生命周期环节,既有理论体系和规范,又有软件支撑平台,可满足软件开发过程管理各个层面要求,为软件工程专业学生实训提供了企业级仿真环境。

3.3.1  USDM平台简介
    (1)覆盖了完整的软件工程生命周期需求、设计、编码、测试、发布、维护等各个阶段,而且模块化的架构,使得各阶段均可单独使用。

 

 

图1  完整的生命周期

 
    (2)基于为企业订制的研发管理平台,在教学过程中可建立高度仿真的企业项目开发和管理环境,让学生体验软件开发全过程,从而培养其职业素养。


 

图2  真实的企业环境

    (3)平台上各模块都配专业的可视化管理工具, 其深度和广度均是企业级。包括需求/设计管理工具、三合一建模工具、测试管理工具、项目管理工具等;


 
图3  工具集

    (4)USDM提供了一个完整的软件生产过程管理平台,可将所有生产活动和成果有效、有序地管理起来,并且提供标准的文档书写要求和规范,支持输出国标格式的各类文档。
3.3.2  USDM的特点

 
 

 

 

3.4 教学方式的改进过程

 

 

图4  改进过程

3.5 教学方式的改进步骤

 

图5  改进步骤

 
四、实施
4.1 软件环境搭建内容及教材
4.1.1 软件环境搭建内容


注:Microsoft SQL lServer 2008、Oracle RDBMS、Weblogic、WebSphere、Microsoft Visual Studio 2010是付费软件,学校可根据自身需求自行采购或使用替代产品,伍杰科技软件有限公司可为学校提供配置和安装服务。
 
4.1.2 软件环境搭建示意图

 


图6  软件环境搭建示意图

4.1.3 推荐教材
     Java:《Thinking In Java》、《Java编程思想》、《Java Web 整合开发 王者归来》
    . net:《C#入门经典》、《C#高级编程》第五版、《ASP.NET 4.0基础教程》、 MSDN
     数据库:《SQL Server 2008编程入门经典(第3版)》、《SQL Server 2008宝典》、《oracle开发指南》、《oracle初学者指南》
    软件工程:《软件工程》清华大学出版社

 
4.2  网络拓扑图


 

图7  网络拓扑图

 

4.3  预期效果


 
图8  实验室示例

4.3.1 建立企业级软件开发环境
    项目流程管理中,项目经理根据既定的软件工程生命周期模型,确定软件开发节点,对开发组人员工作进度进行统一的管理。开发组人员按照项目经理分配的任务,严格按照项目管理流程提交软件需求文档、设计文档、测试文档等。所有文档将以项目为单位,按版本号保存在服务器中。当需要修改文档时,开发组人员可在线更改,或者签出文档在本地更改。更改中的文档将被保护。
    以“USDM”平台为基础,从实用的高度配置软件的“完整生命周期管理”规范化的教学和实习流水作业线, 模拟真实企业工作环境,根据角色划分将实验室分隔成若干个独立的工作区间,如工作区、项目经理区、技术总监区等。
 


图9 流程管理

4.3.2 软件开发全生命周期体验
    将软件开发划分为各个阶段,统一起来称作软件工程生命周期。要求系统将生命周期各环节以树结构的形式呈现,并提供锁定、分配任务、数据度量等操作帮助项目经理管理开发流程。
    1. 业务阶段:业务阶段包含业务综述、业务构架文述、业务用例购架、业务用例文述、业务补充文述、业务对象构架、业务词汇等子节点;
    2. 需求阶段:需求阶段包含需求登记、需求综述、软件需求约定、需求用例构架、需求用例文述、需求补充文述、用户界面原型
    3. 设计阶段:设计阶段包含软件构架文述、设计指南、总体设计构架、详细设计构架、设计复审评估报告
    4. 实施阶段:实施阶段分为编码阶段与测试阶段。
        编码阶段:集成计划、编程指南、编码部件、工作产品、代码复审结果;
        测试阶段:测试计划、测试构架、测试数据、测试评估报告。
    5. 发布阶段:发布阶段包含发布计划、发布通告、发布BOM、安装程序、培训材料、用户手册、产品商标、发布产品等。

4.3.3 科学的文档管理与备份
    1.普通文件:
除了支持各种常用文件外,平台提供特有的需求文件、设计文件、项目管理文件、测试文件。这些文件可由系统提供的工具集进行编辑整合,并可输出为标准格式的Word文件。
    2.建模文件:提供建模工具,可进行数据库建模、UML建模和拓展布局建模。建模文件可以通过本地工具集作为元素整合至普通文件中。
    3.工程组件:工程组件是系统中重要的工作要素,它是软件源代码开发工具组织的工程,比如Borland C++ Builder的工程,或.Net的工程。系统尽可能保持工程的组成文件与原工程构建工具的组织方式一致。

4.3.4 全面的能力评价与考核系统
    传统的课程考核方式以笔试、上机考试为主,无法全面体现学生在专业理论、实践技能、岗位能力、职业素养等方面的综合能力。“项目驱动”,按软件企业项目管理和开发摸式,进行软件系统开发实训。结合成熟软件产品的开发过程、体验“软件工程”,结合软件技术的应用和开发提供实训教学、为学生、教师提供软件开发实战平台。
    本课程全面改革课程考核评价方式,通过项目设计文档、项目开发成果验收、项目成果演示答辩等方式综合考核学生,注重同时对学习过程和结果的评价,有效反映学生的综合素质,引导学生向企业岗位要求看严、不断迈向新台阶。


 图10  项目教学考核方式