高职学校在软件研发培训中对CMMI的应用

发布时间:2012-10-24 15:39:08 论文编辑:ya6310
1.项目化实训体系

为了让软件专业的学生既有开发能力又有项目管理实践,我们认为需要通过有目标有规划的项目开发实训体系来实现。与传统的教学课程设置相比,实训体系的课程在强调学生的训练内容的同时,也不会忽视基础知识的学习。3+2+1体系的设置,即3个学期的传统课程,2个学期的项目实训,1个学期顶岗实习。这种方式不仅强调学生对基础知识和技能的掌握,更强调学生的实践和训练过程,而一个学期的定岗实习,更是能够让学生直接接触到软件行业工作的内容。代写项目管理论文而在项目的实践阶段,采取循序渐进的方式进行,让学生使用全部的时间用于项目实践。
 
2.CMMI简介

为了保证所有的实训项目符合业界标准,我们采用同一个过程体系-CMMI。目的是为了让学生在项目实践的过程中一贯的执行标准的开发过程,通过过程的反复,让职业素质与工程化意识内化到学生的习惯与意识中。CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。 是美国国防部委托卡内基美隆大学软件工程学院(SEI)开发出来的,作为采购者评估供应者(开发者)的过程能力度与组织成熟度的标准,也可作为厂商提升产品(系统、软件、硬件)开发过程管理水平的参考。它是目前世界公认的软件产品进入国际市场的项目管理硕士论文通行证,它不仅仅是对产品质量的认证,更是一种软件过程改善的途径。CMMI是推动软件企业在产品的研发、生产、服务和管理上不断成熟和进步的手段,是一种持续提升和完善企业自身能力的过程。
 
3.角色选择与过程裁剪

CMMI是一个全面的软件开发过程标准,包含13种角色,分别是:项目经理、项目副经理、需求人员、设计人员、开发人员、测试人员、配置人员、质量管理人员、采购人员、人力资源人员、工程专项目管理职称论文家组、配置管理委员会、度量人员。
C M M I 具 有 2 2 个 过 程 域 , 分 别 是 : 需 求 管 理(REQM)、项目策划(PP)、项目监控和控制(PMC)、供应商协议管理(SAM)、集成项目管理(IPM)、风险管理(RSKM)、定量项目管理(QWM)、组织过程焦点(OPF)、组织过程定义(OPD)、组织级培训(OT)、组织过程性能(OPP)、组织革新和实施(OPM)、配置管理(CM)、过程和产品质量保证(PP工程项目管理硕士论文QA)、度量和分析(MA)、决策分析与决定(DAR)、原因分析和决定(CAR)、需求开发(RD)、产品集成(PI)、技术解决方案(TS)、验证(VER)、确认(VAL)。显然,在项目实训中我们无法全盘应用CMMI,需要进行一定程度裁剪。裁剪的遵循的原则主要有以下几点:
(1) CMMI的实施级别定在三级,因为从三级明确规定了需求开发、设计、编码、测试、集成等软件开发各过程的要求。并且出现了专门针对组织级的PA,要求有专门的组织来负责过程改进的工作。
(2) 由于高职软件专业的培养目标岗位定义在程序员与测试员,从这两个岗位维度去选择CMMI角色,可以裁剪掉比如采购人员与度量人员等无关角色。
(3) 项目实训中,如果分工太细致,会导致工作量不够,特别是技术实现 阶段。采用一人分饰多种角色的方式,是一个解决办法。
项目实训中,每一个开发团队由3-4名学生构成,一人担任项目经理、一人或两人担任编码人员(项目经理与编码人员同时作为需求人员与设计人员)、一人担任测试人员角色与配置管理员角色。另外,每一组的QA由另一组的测试人员担任,以保证QA独立性,进而保证项目过程与项目制品的质量。
这种角色分配方式使得每一位项目组成员的工作量相近。项目经理与编码人员要承担项目开发的需求、设计、编码等工作,测试人员在需求与设计阶段就要参与到需求开发、设计过程中、并要进行测试计划编制、测试过程、测试结果跟踪、测试报告编写、配置管理、用户手册编写等工作,另外还要作为另外小组的QA人员,完成质量审计、评审等工作。
在项目实训中,我们重点关注:项目策划、项目监控、需求开发、技术解决方案、验证、过程和产品质量保证、配置管理这些与工作岗位密切相关的过程域。
 
4.实施过程下面以三层架构企业应用项目实训为例,来说明一个项目实训的具体执行过程。
 
4.1实施阶段设计
本项目是项目实践的最后一个项目,是综合应用软件开发过程与开发技术的项目,所以本项目的实施周期为10周,每周16课时,总共160课时。按照CMMI标准,将实施过程分解为5个阶段,为每个阶段分配详细的项目活动内容
 
4.2 项目监控、质量保证及评审
在以往的软件开发实训中,往往没有参照的标准对实施过程做到有效监控与质量保证。而在CMMI体系中专门有关于此类内容的过程域(项目监控和控制、过程和产品质量保证)。而实施这些过程域的中的实践是CMMI应用的难点与要点。在我们的实践中,我们规定每个小组、每一个人每一周必须提交个人工作周报,项目经理提交项目周报。每一次项目会议,都需要提供会议纪要。这些都作为考核依据。而且,这些模板的内容都是经过考虑的,比如,个人周报要细节到每一天完成哪些工作,会议纪要针对每一个议程、议题都要给出决议。在质量保证方面,我们规定一组的QA工程师去审计另一组的项目过程与产品。审计包括日常审计与专项审计。为了保证审计质量,每周及每次专项评审,QA必须提供评审报表,列出本次审计的所发现的不符合项,并要求跟踪直至关闭。我们提供了具体的审计要求给QA,我们指导老师只要严格要求QA,就可以提升各个小组的质量。由于QA是来自其他小组的第三方,具有客观性,能够发现他们自己发现不了的问题,这样保证了质量,另外,要审计别人,自己必须先懂,这样就倒逼学生学习相关知识,加深认识。
 
4.3任务细化与文档库
在任务上,我们在项目计划阶段,会给学生一个超过100个预定义子任务的Project的模板。由于我们的项目工期是基本固定的,这样一开始,每一个项目组就明确了每一个人在什么时间做什么事情,一目了然。当然,根据项目的不同、各个小组可以稍作微调。我们为每个阶段,所要完成的每一项产出,都定义了模板,规定了这个文档要写些什么,怎么写。
 
4.4考核
项目实训的考核不仅要看结果还要看过程,不仅看最终的程序是否满足需求,也要看每个阶段产出的文档质量与过程记录。每个阶段是否提交了制品、质量如何、每个过程是否按照规范进行实施、团队整体表现与团队内具体的一个成员的表现十分一致,这些都需要考虑。而如何做到考核的客观与公正,在具体的实施过程中,可以利用CMMI中评审的概念来达到目的。具体的考核步骤如下:
(1)各个团队提交所有的产出物。
(2)各个团队准备10分钟的介绍材料(PPT),由项目经理进行介绍。PPT要点:项目意义、需求分析、概念模型、技术解决方案、当前进度等。
(3)由各个QA组成QA评审委员会,对各个团队所完成的产出物进行评审,并排定名次。(先推举评审委员会负责人,由负责人组织评审与投票;需分别给出计划、需求、设计、测试、项目监控五个部分的子排名),记为A。
(4)请各个团队的项目经理和开发人员组成技术评审委员会,对各个团队的项目代码进行评审,并排定名次。(先推举评审委员会负责人,由负责人组织评审与投票;一个组只有一票;分别给出进度、项目完整性、代码质量三个部分的子排名)。记为B。
(5)项目答辩会各个团队先后上台介绍。老师会进行提问。请各个团队依据项目特色、技术实现度等因素进行排名打分,最终提交排名表。记为C。
(6)先举行QA评审会与代码评审会(分两个场地);完成后,各个评审委员会负责人说明评审过程并通报成绩(60分钟)。后举行项目答辩(120分钟)。
(7)各个项目经理提交一个排名表,给出本项目组剩余成员对项目的贡献度的排名。记为D。
(8)各个QA提交一个排名表,给出你所检查的团队四位成员对项目的贡献度排名。记为E。
(9)各项统计数据侧重点不同:A侧重于CM与项目经理;B侧重于开发人员;C侧重于项目经理;D、E侧重于组内排名。
(10)教师依据各项统计数据进行评价,其原则为:先参考团队排名,后参考贡献度。