CMM软件工程实践教学分析

时间:2022-10-06 04:51:06

CMM软件工程实践教学分析

一、初始级实施情况

初始级选择的实践项目是“学生信息管理系统”。老师将“学生信息管理系统”的需求陈述发给各小组,要求他们在4个星期内完成该项目,并上交完成此项目的代码和文档,但不对文档做任何要求,完全依靠学生自己在此之前所学知识和实训经验来完成此项目。在第1周到第4周的开发过程中,大部分小组成员在QQ群中抱怨项目太难,有一些学生问了一些问题,一般都是开发环境方面的,也有一些问题是有关需求的。教师有时候到现场指导,发现各个小组的成员在一起讨论问题的很少。第5周结束时,各个小组都提交了可运行的程序代码。在对各个小组完成的程序进行评审时,发现以下问题:没有一个小组能够完全正确实现项目的要求,大部分小组只实现了简单的功能,程序运行过程中经常异常退出;在检视项目代码时,发现代码编写得千奇百怪,没有统一的风格,没有任何注释,阅读起来很困难;不少小组的代码只是由个别人完成的,其他成员参与程度低;学生反馈代码经常需要反复修改,总是稳定不下来;而有些小组只有代码,没有任何设计文档。老师对这些问题进行分析和点评,指出软件开发是一个复杂过程,需要采用科学的工作方法,然后给大家讲解为什么需要软件工程,软件工程的基本概念和CMM的基本概念是什么。然后分析CMM中可重复级别的关键过程域的KPI;分析如何通过需求管理去分析和管理用户需求,如何开发出来满足用户需求的产品;分析如何通过软件项目计划去分配和调度人力资源;分析如何通过项目跟踪去监控整个项目的进度,当进度出现问题时如何跟老师和团队成员沟通调整;如何构建一个统一开发平台对团队成员的开发代码进行管理。最后重点强调项目开发不只是编写代码;重点强调需求分析文档、概要设计文档、项目计划、测试计划的重要性;重点强调团队合作的重要性。

二、可重复级实施情况

可重复级选择的实践项目是“图书管理系统”。老师将“家庭财务管理系统”的需求陈述发给各小组,要求他们在4个星期内完成该项目,并上交完成此项目的代码和文档,对文档的规范性和编程的规范性提出了严格要求。要求每小组配备一个需求管理员,负责管理和跟踪用户的需求;配备一个配置管理员,负责开发环境、代码和文档的管理;配备一个测试人员,负责系统测试。跟学生强调分工和协作的重要性。在第1周到第4周的开发过程中,最初,大家主要是熟悉文档编写工具的使用,然后主要精力是花费在文档编写方面。在文档编写时,许多学生感觉非常艰难,提出了许多问题。在代码编写阶段,许多小组感觉文档指导作用不大,需求管理员和配置管理员经常搞不清自己要做什么,有部分学生插不上手。第5周结束时,各个小组都提交了可运行的程序代码和开发文档。在对各个小组完成的程序进行评审时,系统的质量比第一期有所提升,但还存在以下问题:文档的质量较差,没有一个小组能够完整写完开发文档,大部分小组只是简单的书写了需求文档和概要文档,各个阶段的文档之间的关联性较差;软件功能不够完整,测试也不够充分,演示过程中出现了不少故障;代码质量还有较大提升空间,阅读起来还是不够清晰。在对各个小组完成的程序进行评审时,发现以下问题:虽然都完成了开发任务,但是没有一个小组能够完整写完开发文档,大部分小组只是简单的书写了需求文档和概要文档,软件出故障时候不易维护的情况。开发过程遇到文档描述不清晰时常需要从需求分析做起,增加了开发风险。程序有BUG时候,找到问题所在需要耗费很多时间。老师对这些问题进行分析和点评,指出选定开发模型之后,下一步工作就是要想办法盘活整个团队,然后按部就班做好开发模型中所规定的各种任务。盘活整个团队,需要对团队成员进行培训。想要完成各种任务,需要对各个环节的产出物进行评审。最后,老师分析CMM中可定义级别的关键过程域的KPI;分析如何根据项目的需要去制订培训大纲,从而用这个培训大纲去指导整个项目组的培训;分析阶段性产出物评审的重要性,提出可以在各个小组中选出那些较为优秀的学生作为一个评审团队;强调编程规范、文档规范、设计模式的重要性。

三、可定义级实施情况

可定义级选择的实践项目是“教学管理系统”。老师将“教学管理系统”的需求陈述发给各小组,要求各个小组按照可定义级的关键过程域的要求开展相应的活动,重点放在培训大纲、培训计划和同级评审方面。完成该项目时间为4个星期,并上交完成此项目的代码和文档。在4个星期的开发过程中,开始时,许多学生抱怨培训和评审花费时间过多,也抱怨评审专家提的建议过于繁琐、文档规范要求过严。因为需求文档、测试计划和设计文档经过多次评审才过关,也花费比原来预想多的时间进行了培训和讲解,需求分析阶段和设计阶段花费时间是原来计划的三倍,设计完毕之后已经没有时间进行编程了。为了得到最终的系统,老师另外给出4周时间进行代码实现和系统测试。最后的这两个阶段各小组进展得比较顺利,心情也比较愉悦。第8周结束后,各个小组都提交了可运行的程序代码和基本完整的开发文档。第9周对各个小组完成的系统进行了评审,各个小组实现的系统界面美观,功能完整,运行错误发现较少,有个别项目组做得非常好,只有两个项目组发现的错误较多。在评审后,老师给学生提出这样一个问题:为什么我们完成项目比计划时间要多1倍?大家反馈意见不一,但主要集中在这几个问题上面:经验不够;不知道如何计划各个阶段的时间;没有想到编写需求分析文档和设计文档需要这么多时间;没有想到要讨论清楚一个问题或者培训一个新技术需要这么多时间。老师针对时间计划问题以及各个开发阶段时间问题进行了分析,指出CMM第4级可管理级所增加的活动就是制订针对项目质量和开发效率的目标,收集、测量相应指标;利用统计工具分析并采取改进措施,从而达到对软件过程和产品质量有定量的理解和控制。老师强调想要达到CMM4级目标,必须收集到足够的开发活动数据并进行合理的分析和利用,才能制订较为准确的开发计划,这个需要学生以后在工作岗位中努力。

四、结束语

本文所描述的循序渐进案例教学法使CMM的核心理念通过三个典型的小项目逐渐展开,有利于学生理解和掌握软件工程课程的基本要点,提升了学生的综合知识运用能力,提高了学生的沟通能力,也促进了学生参与项目开发的积极性,提升了他们从事软件开发职业的信心。下一步我们将考虑为那些优秀的高年级学生设计一个CMM可管理级别的实践项目,在该项目中将对开发效率和软件质量提出更高的要求。

作者:文勇 刘春涨 郭瑞 单位:广西民族大学信息科学与工程学院 广西民族大学 软件学院

上一篇:绿色建筑技术实际应用思考 下一篇:水利施工混凝土裂缝研究