APP下载

基于CMMI 的软件项目实践教学过程标准构建方法研究

2013-06-10朱克敌

关键词:计划软件监督

朱克敌

(沈阳工程学院 信息工程系,沈阳 110136)

为了贯彻《国家中长期教育改革和发展规划纲要》,2009年9 月,教育部率先启动了“卓越工程师计划”,其主要目标是面向工业界、面向世界和未来,培养造就一批具有工程能力和创新能力,适应经济社会发展需要的高质量各类型工程技术人才。“卓越工程师计划”具有三大特点:1)行业企业深度参与培养过程;2)学校按通用标准和行业标准培养工程人才;3)强化培养学生的工程能力和创新能力。从中可以看出,校企合作是工程教育的本质,高校在制定培养方案、设计课程体系和实施实践教学过程中,应该让企业深度参与进来,注重引入企业或行业通用标准,创造一个类似企业的真实工程环境和先进的工程实践条件,为培养学生的工程实践能力、工程设计能力和工程创新能力创造必要的条件[1]。由于CMMI 成熟度模型在帮助企业对工程过程进行管理和改进,增强企业开发能力中所具有的先进性,它不仅在国际软件行业中得到了广泛的应用,而且在其他各类工程领域中也得到了广泛认可,为此,将以CMMI 成熟度模型为研究对象,从中分析和抽象出企业最佳实践过程标准,为工科院校设计企业级的实践教学提供参考依据。

一、高校实践教学现状分析

高校实现“卓越工程师计划”的关键是校企合作,但是,在校企合作的实施过程中,各学校也遇到了一些不可逾越的问题。首先,企业是一个独立核算的经济实体,追求效益是他们永恒的主题,学校必须按着“企业效益规则”行事,才能实现真正意思上的校企合作,就一般普通院校而言是难以实现的。其次,有些学生到企业实习一段时间后,都会感觉到在企业学到了许多在学校没有学到的东西,学到了许多非常新奇、实用的技能。有些教师由于是从校门到校门,没有经历过企业洗礼,所以,都非常希望到企业去参加一个项目,去体验一下团队开发的氛围和先进的项目管理方式。很多到企业实习的学生和到企业参与项目的教师在回到学校以后,都能说出一些体会,总结出一些自己学到的东西。但是,在整理和总结时,又感觉学到的东西都很零散,系统性不强。这是因为要想通过参与1 ~2 个项目就理解工程知识的精髓确实不易。

在开发一个大型软件项目时,优秀的软件企业到底是通过什么手段做到“在最短的时间内、用最低的成本生产出最好质量的产品”,答案是,技术只是关键因素之一,更重要的是企业具有良好的开发过程和标准,这些成熟的过程和标准正是学校应该下大力气进行抽象和总结的,并应该有意识地渗透到实践教学过程中,只有这样,才能为学生提供一个较为真实的企业工程环境和文化氛围。

通过调查,可以发现以下两个结论:

(1)针对学生所反映的“在企业实习过程中学到了许多东西”,我们进行了收集、归类和分析,发现学生并不是学到了多少技术,而是在项目中学到了很多企业开发标准和流程。

(2)企业在招聘面试时,经理们往往比较注重学生是否有过项目经验,在判断学生是否有项目经验的过程中,针对技术的提问仅仅是其中一部分,更多的问题还是围绕项目开发过程和系统视野等方面进行提问。

纠其原因,都能不同程度地从CMMI 软件成熟度模型中找到一些答案。

二、CMMI 模型结构分析

CMMI 全称是Capability Maturity Model Integration,即能力成熟度模型集成,是由美国国防部与卡内基梅隆大学的软件工程研究所(SEI)和美国国防工业协会共同开发和研制的,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI 为改进一个组织的各种过程提供了一个单一的集成化框架,能够从总体上改进组织的质量和效率。CMMI 主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。据SEI 统计,通过评估的软件公司对项目的估计与控制能力约提升40%到50%;生产率提高10%到20%,软件产品出错率下降超过1/3[2]。

CMMI 是一套融合多学科的、可扩充的产品集合,其研制的初步动机是为了利用两个或多个单一学科的模型,实现一个组织的集成化过程改进。软件过程改善是当前软件管理工程的核心问题,50 多年来计算机的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。基于模型的过程改进是指用采用能力模型来指导组织的过程改进,使之过程能力稳定地进行改善,该组织也能变得更加成熟。

CMMI 分为五个等级[3]:

(1)初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。

(2)已管理级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程制度,能重复早先类似应用项目取得的成功经验。其中包括需求管理、项目计划、项目监督和控制、度量和分析、过程和产品质量保证、配置管理。

(3)已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。其中包括需求开发、技术解决方案、产品集成、验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成化项目管理、风险管理、集成组队、集成化供应商管理、决策分析和解决方案、组织级集成环境。

(4)量化管理级:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。其中包括组织级过程性能、项目定量管理。

(5)优化管理级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。其中包括组织级的改革和部署、因果分析和解决方案。

三、抽象企业通用标准

标准来源于过程,过程是工程实践的结晶。目前,软件企业是否通过了CMMI3 认证已经成为它们是否能够参与国际软件外包竞争的一个通行证,为此,在CMMI 软件成熟度模型中,隐藏着深刻的软件行业标准和企业文化。以下,将以“需求管理”“项目计划”和“项目监督和控制”三个过程域为例,结合多年的教学实践经验,分析并构建可应用于实践教学的企业过程标准。

(1)需求管理过程域。在项目实践教学过程中,需求是必不可少的步骤之一。有需求就一定要有需求管理,学生在理论课学习过程中,主要集中在如何获取需求,但是,在项目开发过程中,如何对需求进行管理,这正是实践指导教师和学生需要理解和掌握的关键性技能。为此,根据CMMI 成熟度模型中的“需求管理”过程域,结合教学实际情况,归纳整理出如图1 所示的一些最佳教学实践内容。

图1 需求管理最佳教学实践

需求管理的目的就是管理项目产品和产品组件的需求,并且识别这些需求与项目计划和项目产品之间的不一致性[4]。需求管理的特定目标就是管理需求,并且识别这些需求与项目计划和项目产品之间的不一致性。针对需求管理的特定目标,在实践教学过程中设定了5 个最佳实践,即:1)收集并理解项目业务需求;2)团队全体成员需要承诺对需求的正确理解;3)在项目的开发过程中需要对需求变更进行记录跟踪;4)在需求和项目计划以及产品之间维护双向可追溯;5)要标识需求与工作产品之间的不一致性,以便在后续进行的“需求开发”“项目计划”等开发过程中加以提示和修复。实践指导教师可以根据最佳实践,事先参考企业工作模板或自己制作一些模板让学生进行模仿,也可以让一些能力较强的学生团队进行任意发挥,以此来培养学生的工程创新能力。

(2)项目计划过程域。在项目实践教学过程中,制定科学完善的项目计划是保证项目按时完成的关键步骤之一,这其中包含着丰富的内容和复杂的步骤。学生在理论课学习过程中,只接触过开发进度计划的制定,但是,对于制定开发进度之前还应该做哪些准备工作,计划制定完以后还应该做哪些评审和承诺,除了开发进度计划以外,还应该制定哪些其他关键性的计划等,这些内容都是企业或行业项目计划的标准和过程,也正是实践指导教师和学生需要理解和掌握的关键性技能。为此,根据CMMI 成熟度模型中的“项目计划”过程域,结合教学实际情况,归纳整理出如图2所示的一些最佳教学实践内容。

图2 制定项目计划最佳教学实践

项目计划的目的就是制定和维护项目活动。项目计划的特定目标包括建立估算、制定项目计划和获得计划承诺。针对建立估算设定了3 个最佳实践,即:1)顶层项目工作分解WBS;2)定义项目生命周期;3)工作量估算。针对制定项目计划设定了7 个最佳实践,即:1)开发进度计划;2)风险控制计划;3)数据管理计划;4)提供必需资源计划;5)技术知识准备计划;6)利益关系人参与计划;7)总体项目计划。针对获得计划承诺设定了3 个最佳实践,即:1)评审所有计划;2)协调计划资源;3)得到利益关系人的承诺。实践指导教师可以根据实践教学的具体学时和内容对最佳实践进行裁剪,可以事先设定一些项目情境,要求学生以团队为单位模仿或任意发挥制定各种计划,以此来培养学生的大型项目计划能力。

(3)项目监督和控制过程域。在企业的项目开发过程中,监督和控制是保证项目按时完成的关键,如果有一个完善的、详细的监督和控制机制,将会大幅度提升项目的成功率。由于在项目开发过程中需要监控的方面很多,监控的方法也很复杂,很多内容在教科书中往往都没有涉及到,而这些内容又都是学生在企业实习过程中体会最深、收获最多、兴趣最浓的内容,也是学校实践教学指导教师最缺乏经验的部分。因此,根据CMMI 成熟度模型中的“项目监督和控制”过程域,结合教学实际情况,归纳整理出如图3 所示的一些最佳教学实践内容。

项目监督和控制的目的是提供对项目开发进度的监督和控制,以便在项目偏离计划时采取必要的纠正措施。针对计划监督设定了6 个最佳实践,即:1)监督承诺;2)监督项目风险;3)监督数据管理;4)进行里程碑评审;5)进行进展评审;6)监督利益关系人参与情况。针对纠正措施设定了3 个最佳实践,即:1)分析问题;2)采取纠正措施;3)管理纠正措施。实践指导教师可以根据实践教学过程中的团队角色、项目大小、开发任务等设定一些需要监控的项目情境,让学生们根据情境进行监控,并根据项目计划实施监督和控制,发现问题及时纠正,以此来培养学生规范地监督和控制项目的能力。

[1]余建星,徐 斌,靳楠,等.卓越工程人才产学研合作培养模式的探索[J].高等工程教育研究,2012(1):24-27.

[2]Aaron Clouse.CMMI 精粹(第2 版)——集成化过程改进实用导论[M].陈 波,译.北京:清华大学出版社,2005:8-9.

[3]Aaron Clouse.CMMI 精粹(第3 版)——关于集成过程改进的实践指南[M].王辉青,译.北京:清华大学出版社,2009:77-78,100-137.

[4]周汉平,孙 蕾.如何获得对需求的理解-CMMI 需求管理过程域之特殊实践[J].上海第二工业大学学报,2008 (3):180-184.

猜你喜欢

计划软件监督
禅宗软件
突出“四个注重” 预算监督显实效
软件对对碰
暑假计划
监督见成效 旧貌换新颜
学做假期计划
学做假期计划
Learn to Make a Holiday Plan学做假期计划
夯实监督之基
谈软件的破解与保护