基于J2EE的软件过程管理工具设计
关键词:J2EE,MVC,过程改进,CMM,CMMI,过程管理
摘 要
当前,随着中国软件行业的发展,国家对软件产业支持力度的加强,已经有越来越多的软件企业开始关注软件过程改进工作,并有不少组织已经通过了各种等级的CMM或CMMI评估。另一方面由于CMM和CMMI认证工作的高昂费用,使得大量中小型软件企业在过程改进工作前望而却步。此,一个有效的过程管理系统对于提高我国软件企业的项目管理和控制能力,提升软件企业的过程能力成熟度,促进企业的发展具有重要的意义。
由于CMMI制定本身的客观和历史原因,它在内容设计时是以国外发达国家软件企业为对象,没有考虑软件企业所处的社会经济环境、企业自身基本素质及企业员工文化意识等方面的影响。使得在国内,尤其在中小型软件企业中实施过程改进具有相当大的困难。
本文研究如何建立一个较完整的过程管理系统,对过程管理系统的过程改进模型的裁减与例化,项目计划,任务安排,进度监控,评审管理与缺陷跟踪等过程控制方法进行了研究,论文的贡献与成果主要体现在以下几个方面:
(1) 本文提出了一个详细的CMMI模型的裁减与实例化方法。在对中小型软件企业的业务类型进行了详细的研究的基础上,分析了软件过程能力成熟度管理的特点,制定了一套较合理的模型裁减与实例的方法。
(2) 提出了较详细的过程监控方法。利用这一方法可以很好的对软件开发过程进行有效的监督与控制,提高软件开发的效率与产品的质量。
第1章 绪论
1.1 背景和意义
软件需求的快速增长推动了软件产业的发展,也推动了软件过程思想的发展。软件过程是为开发高质量软件所需要完成的任务的框架,是软件开发人员开发和维护软件及其相关产品(如项目计划、设计文档、代码、测试用例和用户手册等)的一套行为、方法、实践和转化过程。软件过程包括两类相关过程:软件工程过程,涉及技术相关的活动软件管理过程,涉及管理相关的活动。
软件过程管理是对软件产品开发和维护的全程管理,其主要内容包括过程定义与过程改进。过程定义是对最佳实践加以总结,以形成一套稳定的可重复的软件过程。过程改进是根据过程的使用情况,对过程中有偏差或不切合实际的地方进行优化的活动。在软件项目管理过程中,如果能很好地定义并实施软件过程,就能很好地控制项目,从而提高软件产品的质量。
CMM是目前国际上流行的软件生产过程标准和软件企业成熟度评估标准,国内很多的软件企业甚至将CMM当成了成功的宝典。然而,尽管CMM提出了作为软件业应该具有的关键过程域,但它只提供了一个软件企业进行过程改进、增加企业软件成熟度的改进建议框架,而未涉及软件企业该如何进行过程实施。换而言之,它描述了软件过程的期望,而没有描述具体该如何实现。因此,在软件过程上我们应该谋求一些更具体、更可操作的方法和步骤。
为了促进软件业的发展,中央和地方各级政府出台了一些对软件企业非常优惠的政策,我们国家2000年发布的关于促进IT业发展的18号文件、2001年发布并实施的国家标准SJ/T 11234-2001(软件过程能力评估模型),以及各大中城市的软件产业园区都鼓励软件企业实施CMM。军队也于2003年发布了基于CMM的军用标准即军用软件能力成熟度模型,用于军用软件开发组织软件能力的评价。
随着CMM的推广普及,越来越多的软件客户都倾向于选择通过CMM等级评估的软件企业或组织,而有意实施CMM并通过其等级评估的软件企业及组织也越来越多。在此背景下,开发出一套基于CMM的软件过程管理系统,来对软件开发过程进行全程管理,加速用户单位基于CMM的软件过程改进进程并顺利通过CMM等级评估,将非常有实用价值。
1.2 研究现状
国内对软件过程及其管理的研究还不够深入,国家和军队的相关政策推动着基于CMM的软件过程管理的迅速发展。国外注重于对软件过程管理整体框架的研究,国内软件企业和组织在实施CMM时若使用这些框架,需要进行裁减或二次开发,成本和使用难度都较大。因此,近几年一些软件企业和组织开发出了比较优秀的软件过程管理支持系统来帮助企业实施CMM,其中应用较广的有中国科学院软件技术研究所的软件质量管理平台,另外还有上海沙迪克软件有限公司的ALESH和富士通南大软件开发技术有限公司的SPIF,近年来国科学院软件技术研究所的基于Qone的软件过程管理平台已经比较成熟。
虽然这些软件过程管理支持工具取得了一定的成功,但在针对大多数软件企业和组织进行软件过程管理时, 仍有其局限性和不足。首先ALESH定位于软件项目的管理,未涉及到项目开发前的准备(如各种过程的定义)及项目开发过程中和项目 开发完后的总结(各种模型和数据的使用情况用于CMM评估的各种证据的记录)。其次SPIF是由企业自身的过程改进和通过CMM评估的目的而引导开发的过程管理框架,在其他软件开发企业或组织导入该系统时仍需要根据自 身实际情况进行裁减。再次,包括软件质量管理平台、ALESH和SPIF在内的一些软件过程管理支持系统,对过程管理自动化的支持仍有所欠缺。ALESH和SPIF虽然提供了过程数据的自动收集和分析功能,但对于过程管理活动和相关文档的流转仍需要人工进行软件质量管理平台提供了专门的CMM规程支持功能,对软件开发和管理中的各种过程进行管理,但过程中的管理活动和相关文档的流转也同样需人工干预。应用工作流这种过程自动化技术来支持CMM规程,以提高软件过程管理的自 动化程度,从而提高软件过程管理的效率和成本,将是我们研究和实现基于CMM的软件过程管理的重、难点。
第2章 过程管理系统需求分析
软件过程管理的核心是软件项目管理和软件过程改进,因此本文紧紧围绕这些核心进行研究。企业在软件开发过程中,基本上都是按照软件工程的各个阶段进行,但还是产生了许多问题,比如开发时间拖延、开发费用增加等。软件产品的生产效率和产品质量问题一直困扰着企业的发展。虽然我们不断进行新方法和新技术的研究和应用,但企业自身生产过程不规范、质量意识不能深入贯彻等根本问题始终没有解决,具体表现在:
(1)软件项目的成功完成主要依赖于个人,己有的项目生产过程不可重复。
(2)软件成本和完成日期不可预测。
(3)最终软件产品不能满足客户的需求而一改再改。
(4)软件产品本身的质量不过关。
(5)缺乏对过程和产品的测量,软件过程的历史数据较少,很难基于历史数据对工作量和进度进行合理的估计。
为了改进企业的软件开发过程,提高企业的过程成熟度,按照企业进行CMM2级实施和评估时的要求,本系统定位在管理和控制项目的软件过程和工作产品、与软件过程相关的文档等内容,并提供充分的过程管理功能让用户能够方便地定制项目的软件过程,并对过程中的各个环节进行控制和监督,使得项目的软件过程符合CMM要求。通过对软件生产机构的文档流及过程流进行有效的控制和管理,促使国内软件企业形成一套完整的生产过程标准和体系,提高软件企业开发软件系统的能力及效率,推动软件企业不断自我完善和提高。
2.1 需求分析
2.1.1需求规格说明
(1) 基本功能需求:
建立对分布式环境下进行软件过程改进的支持系统:实现过程改进系统的技术架构,并且通过建立的技术架构辅助实现对过程改进系统的组织架构的支持支持组织软件过程模型的建立和改进,建立有效的过程模型反馈机制系统支持过程改进中的各种系统角色的划分。
(2) 系统性能要求:
系统应该能够运行于通用的技术环境中,可以运行在多种操作系统(比如Windows,Linux,Unix等)之上系统对局域网环境和Internet环境下的操作都能够做出正确的响应。系统具有友好的界面,同时具有易维护性和良好的可扩充性,对于业务的改动能够做出反应。
2.1.2过程架构支持分析
(1) 过程架构支持分析:
根据前面对软件过程改进技术的分析可知,要建立一个软件过程改进系统,要从技术架构和组织架构两个方面来考虑。所以在一个进行或者准备进行软件过程改进的组织中必须具备组织管理与技术两大架构体系。具体到过程改进的支持系统来说。系统必须支持组织划分的过程改进中的不同角色。因此,表2.1给出本系统中的角色划分及其对应的权限。