1、1. 软件过程概述软件过程是人们用来开发和维护软件及相应产品(如软件项目计划,设计文档,代码,测试用例及用户手册)的活动,方法,实践和改建的集合。根据ISO/IEC12207 软件生命周期过程标准,软件过程可概括为三类:基本过程类、支持过程类和组织过程类。基本过程类包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。包括需求分析,软件设计和编码等过程。支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。组织过程类包括基础设施过程、改进过程以及培训过程。软件过程主要针对软件生产和管理进行研究。为了获得满足工程目标的软件,不仅
2、涉及工程开发,而且还涉及工程支 持和工程管理。对于一个特定的项目,可以通过剪裁过程定义所需的活动和任务,并可使活动并发执行。与软件有关的单位,根据需要和目标,可采用不同的过程、 活动和任务。有效的软件过程可以提高组织的生产能力:理解 软件开发的基本原则,可以帮我们做出明智的决定; 可以标准化你的工作,提高软件的可重用性和 Team 间的协作; 我们所采用的这种机制本身是不断提高的,我们可以跟上潮流,使自己不断接收新的,最好的软件开发经验; 有效的软件过程可以改善我们对软件的维护: 有效地定义如何管理需求变更,在未来的版本中恰当分配变更部分,使之平滑过渡; 首先在具体操作和相关支持中定义如何平滑
3、地改造软件,并且这种具体操作和支持是可实施的;不可实施的软件过程将很快被束之高阁; 2. CMMI 软件过程模型2.1 CMM 的主要内容CMM 模型描述和分析了软件过程能力的发展程度,确立了软件过程成熟度的分级标准,把软件过程的成熟度由低到高分为5 级,即初始级、可重复级、己定义级、已管理级和优化级。CMM 的五个成熟度等级的特征描述如下:1)初始级软件过程的特点是无秩序的,几乎没有什么过程是经过定义的,成功依赖于个人的努力。2)可重复级已经建立基本的项目管理过程,能跟踪成本和进度。3)己定义级管理活动和工程活动两方面的软件过程已文档化、标准化,并集成到组织的标准软件过程。所有项目都可以通过
4、裁减机构标准软件过程而建立合适本项目的过程规范。4)已管理级对软件过程与产品都有定量的理解和控制,有专门的数据库系统来收集和分析数据。5)优化级能够主动有效的识别机构过程的优势和薄弱环节,发现并采用最佳的软件工程实践,预先防范过程和产品中的缺陷,整个机构强调持续改进的能力。2.2 CMMI 的主要内容CMMI 的主体是一个整体框架(CMMI Frame-work),其内容涉及四个知识领域,具体是:软件工程,系统工程,并行工程,外购协作。在具体实践中,不同组织可根据实际需要选择CMMI 模块,组织可以选择侧重软件工程,或侧重系统工程,亦可两种选择。并行工程和外购协作是用于配合软件工程和系统工程的
5、内容的。因此,CMMI 模型可以使用于不同的应用领域。CMMI 有两种表达方式:阶段表达(Staged Representation)和连续表达(Continuous Representation),前者采用与CMM 类似的成熟度等级模型(共5 个等级),后者采用能力等级模型(共6 个模型等级)。连续式强调的是单个过程域的能力,没有成熟度等级的概念,每一个过程域的能力都可以从“不完整”(能力等级0)到“优化中”(能力等级5),这就为实施在某个特定的过程域的过程改进提供了指导。阶段式强调的是组织的成熟度,从过程域集合的角度考察整个组织的成熟度,当企业成功地实施了某个成熟度等级及其以下的所有等级所
6、要求的全部过程域后,这个企业就达到了该等级。对于 CMMI 的两种表达方式没有先进或落后之分,阶段表达方式与CMM兼容,连续表达方式与150/IEC15504 相似,企业可以根据组织的商业目标和自身改进需要以及历史经验选择一种表达方式。CCMI 的阶段表达方式继承了CMM 的思想方法,可以将所有的过程域分成5 个等级,分别表示为:初始级(Initial,第1 级) 、管理级(Managed,第2 级) 、定义级(Defined ,第3 级) 、定量管理级(Quantitatively Managed,第4 级)和优化级(Optimizing,第5 级) ,如图2.1 所示下表2.1 是每个成熟
7、度等级所包含的过程域。能力等级 焦点 过程域组织改革与实施5.优化级 持续过程改进因果分析和解决方案组织过程性能 4.定量管理级 定量管理项目定量管理需求开发技术解决方案产品集成验证确认 过程标准化组织过程焦点组织过程定义组织培训集成化项目管理SS 集成化供应商管理风险管理决策分析和解决方案IPPD 集成化组织环境3.已定义级IPPD 集成化群组需求管理项目计划项目监督和控制供应商合同管理度量和分析过程和产品质量管理2.已管理级 基本项目管理配置管理1.初始级 无3. 基于 CMMI 软件过程模型的项目管理系统的开发3.1 项目管理系统的分析开发软件项目管理系统的目标是为公司提供一个支持工具,
8、可以对项目进行高效率的计划和监控管理,实现项目的动态管理和项目目标的综合协调,使得软件项目管理的过程变得可视化。系统的总体要求1)系统应用于Web 环境,使项目有关人员都可通过Internet 使用本系统,来协同完成软件项目的管理工作。采用B/S 结构,应用程序仅在服务器端安装,客户端只需安装浏览器,方便升级和维护。2)系统以CMMI 过程管理框架为基础,面向CMMI 三级,帮助软件项目进行过程改进。强调项目管理的统一性和规范化,增强了项目的可控性,从而降低了风险。3)面向软件项目管理系统针对软件项目而设计,支持软件项目的管理,在设计和实现上充分考虑了软件项目中实施CMMI 的管理需求。4)提
9、供灵活的数据收集方式系统可从 EXCEL 等数据文档和数据库中提取数据,自动导入这些数据。对于那些无法自动收集的数据,系统提供友好的录入界面,帮助用户手工输入数据。5)具有一定的分析和报表生成功能系统可以对所收集的数据按照需求进行处理,并能将处理结果以丰富的表现形式提供给用户,帮助用户进行分析和决策,并且可以按照一定的格式生成报表。3.2 项目管理系统的功能分析根据公司的实际使用情况,本人设计的项目管理系统,主要实现的功能包括权限管理、项目管理、任务管理、记录管理、事件管理、预警管理等主要的功能模块,这些模块下面又分成若干子模块。具体如下:项目管理系统的主要功能包括:1)项目信息管理负责项目的
10、添加、修改、项目人员的选择、项目完成的审核、项目更改的纪录、项目进度的控制、项目计算等。1项目的添加2项目的修改:包括人员选择(小组选择,组员选择)3项目的查询:包括项目的文档汇总(项目中所有任务的完成文档)4项目的统计:项目甘特图,表格显示,画出关键路径图5项目结构图:是整个系统最经常使用的功能之一,另一个功能是面板功能。根据用户的使用习惯,尽量将更多的功能放在项目结构图中。6.项目人员结构图:项目中人员组织结构图7.流程管理:项目更改的审核,项目完成的审核、项目进度的控制等。2)项目模板管理1. 负责项目模板的类别管理,项目模板的添加,项目模板的修改、复制等功能。2. 项目模板的类别管理3
11、. 项目模板的添加:创建一个新的项目模板、在一个已有的模板基础上创建4. 项目模板的修改5. 模板的删除6. 流程管理:添加审核,更改审核3)任务管理负责任务添加、任务分派,任务修改、审核确认、任务的挂起、恢复等功能。1任务添加(分派) ,任务的提交者2任务修改3任务树分支的显示和管理,包括在任务树某一分支下查询操作。可4以结合项目图实现。5流程管理:任务分派、任务确认,任务更改(任务的挂起、取消恢复等) ,更改审核,任务提交,任务提交审核。4)任务模板管理负责任务模板的类别管理,任务模板的添加,项目模板的修改、复制等功能。1. 任务模板的类别管理2. 任务模板的添加:创建一个新的任务模板、在
12、一个已有的模板基础3. 上创建4. 任务模板的修改5. 任务模板的删除6. 流程管理:添加审核,更改审核。3.3 CMMI本课题应用 CMMI 理论、软件工程以及项目管理的基本思想,结合项目管理实践,设计出了一个较为完整,易于执行的软件项目管理模型。以软件项目的生命周期为线索,将整个项目管理过程划分为启动、计划、实施、监控和结项这五个子过程。本模型结合CMMI 三级的要求,尽可能贴近项目管理知识体系的五大过程。该模型的示意图如下:要使软件项目按时完成,提供高质量的产品,并且能控制成本,这就要求项目管理过程以计划为主线,在执行过程中,以监督和控制为手段,确保项目能达成预期目标。按照启动、计划、实
13、施、监控和结项,这样划分既符合人们的思维习惯,又为实际应用提供了便利。各个子过程的说明如下:1) 启动:项目经理接手项目,筹备项目所需各种资源。2) 计划:为项目的研发和管理工作制定合理的行动纲领,以便相关人员能够有条不紊地开展各项工作。3) 实施:项目的具体执行过程,为项目的关键环节,实施的好坏直接关系到项目的成败。4) 监控:通过周期性地跟踪项目计划各种参数如进度、费用、工作量等,不断了解项目的进展情况,以便当项目实际进展情况显著偏离计划时能够及时采取纠正措施。5) 结项:项目满足结束条件后,对整个项目进行总结、归档等工作。以上各子过程之间在时间上是重叠的,如图 3.3 所示在改进的项目管
14、理模型中,上述五个子过程被细化为可执行的具体步骤,形成一个项目管理的参考方案。在这一方案中,主要关注于项目管理知识体系的九大知识领域和CMMI 三级中有关项目管理的过程域,在适当的时机对这些内容开展有计划的管理。CMMI 模型中项目计划过程域有三个特定目标:建立估计、拟定项目计划和获得承诺。项目计划分为三个主要阶段:项目估计、制定总体项目计划和项目计划变更控制。各阶段之间的关联和顺序如图3.4 所示。4. 总结把软件过程组合起来就是一个过程模型。瀑布模型即为线性顺序模型,它规定了各项软件工程活动。包括:制定开发计划、进行需求分析和说明、软件设计、程序编码、测试及维护。它一次走完分析、设计、编码
15、测试这些框架活动。其特点是自上而下,相互衔接的固定次序,如瀑布流水、逐级下落。瀑布模型是线性的,它把工程概念引入到软件的起点,以文档驱动。瀑布模型阶段划的很清楚,做项目管理的话很好管。瀑布模型的弊端是,最后测试和最后运行出错之后错误很难修改,因为不明白出错在哪里。进化模型。进化模型是需求驱动的,做这个进化模型,需求方是最开心。因为做进化模型的时候,很难把它作为一个项目管理。其特点是可以减少由于软件需求不明确给开发带来的风险。以CMMI 为理论基础,符合公司的软件项目管理系统。运用本系统,可以减少了软件质量控制过程中的管理成本,并将管理工作可视化,通过对论文研究工作的总结,作者认为,课题研究工作
16、主要成果及创新点如下:1)对CMMI 进行了深入地分析和研究,从CMMI 的总体域中设计出符合公司需要的过程域。2)实现了软件项目管理信息化,使项目管理的主要工作在平台上得以实现,加强项目管理过程中的交流,提高项目管理的可视度和可控性。3)针对本公司的实际情况,在完成大量的项目开发后,及时做好版本控制,并做好知识方面的积累,加强了项目管理量化监管,同时通过对软件过程进行数据获取、呈现和分析,可以支持项目和组织的控制、管理和决策。5.参考文献1 Daniel C. Halbert,Patrick D.0Brien. Object-oriented development. IEEE Software.2 Dennis M.Ahern,Aaron Clouse,Richard Turner著.周伯生,吴超英,任爱华等译.CMMI 精粹一集成化过程改进实用导论M.北京:机械工业出版社,2002.3 Diane L.Gibson,Dennis R.Goldenson,KeithKost.Performance Results of CMMI一 Based.