毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

浅谈开发中小型软件系统的CMM最佳实践方法

更新时间:2015-1-8:  来源:毕业论文
浅谈开发中小型软件系统的CMM最佳实践方法
 摘要:本文基于中、小型规模的软件开发特点,通过融合多种软件过程开发实践,保证快速、合理、低代价和清晰的软件开发过程控制基础上,作者基于工程实践的总结和归纳,提出一种基于组件构建软件系统的CMM和RUP的有序过程控制的最佳实践方法,该方法具有清晰过程控制、可被重复检验和理解,允许在软件过程中进行适应性的自我调整和完善。通过实际案例的统计和规律性分析,证明该种软件开发过程的最佳实践方法在实际的工程项目管理中具有较强的工程指导意义和现实参考价值。 中国论文联盟www.LWLM.com编辑。
  关键词:软件工程;软件项目管理;组件;最佳实践
  
  1 引言
  在当今信息社会,信息技术已经普遍地服务于社会的各行各业,以计算机信息系统为核心的IT技术已成为最活跃、最有发展潜力的支柱产业,绝大多数的社会业务领域都形成了非常成熟的高水平的行业应用软件。但由于软件开发过程的缺陷、项目管理的问题和缺乏对企业内部软件开发过程的最佳实践总结与应用,软件系统的开发还存在着严重的问题。根据美国Standish Group对2003年美国1.35万个软件项目的统计,有问题的和失败的软件项目占66%,中国甚至达到了90%以上的项目不完全符合实际的业务需求[1],软件项目的失败比率至今没有太大变化。即低下的软件生产能力与强烈的业务发展需求间的矛盾造成的。这就要求从事软件生产的组织、相关人员迫切需要选择良好的软件生产能力的改造;对于软件开发者来说,保持持久的竞争优势关键因素在于通过适合领域问题的完善软件过程项目管理实现。
  软件工程界已经认识到美国卡内基·梅隆大学软件工程研究所(Software Engineering Institute,SEi)所提出的软件过程能力成熟度模型(Capability Maturity Model,CMM)在改进并完善软件过程、提高软件质量(产品规格)和软件开发效率(进度)、降低成本(代价)等方面的重要指导意义。
  软件项目的目标有两个,即取得当前项目的成功并进行积累,为后续的项目做提供经验积累和准备。为避免在软件开发过程中出现开发周期长、组织过程混乱、软件质量决定于软件开发者、缓慢的开发与适应性开发与扩展的效率、维护低价不可预期和软件适应性差等软件缺陷,在软件开发企业中通过改进并提高软件过程和项目管理水平,提高软件生产力能力与水平,应用良好的软件过程组织的最佳实践成为必然选择。
  
  2 软件项目管理相关知识
  软件生命周期包括软件定义、开发和运行三个阶段,软件开发过程的生命周期一般经过可行性研究、需要分析、总体设计、详细设计、编译、系统测试和系统实施与维护等过程活动[2]。在软件开发过程中,经常遇到沟通协作问题、需求模糊与较高频度的调整、开发过程组织管理差、不合理的设计、领域知识构件与适应性组件不完善和难于进行系统的集成等实际的问题,进而导致难于进行需求功能扩展和设计的适应性迭代和实现的效率低下、项目进度慢和里程碑不可控制和软件质量差和维护成本代价高等现实的软件项目管理问题。
  上述出现的软件过程缺陷也是软件项目管理知识体系(PMBOK)中9个知识领域及关键软件过程路径(CPM)中所关切的,即通过提高软件过程管理中的技术、方法、团队组织建设、信息和沟通的有机结合,实现软件开发的最佳实践(Best Practices)能力。SEI的CMM过程模型通过7组13个质量指标指导软件过程的开发[3];CMMI(Capability Maturity Model Integration)是针对产品开发和服务的一个过程改进成熟度模型。它包含了25个最佳实践过程域,关注开发和维护活动,覆盖从概念到交付和维护的完整产品生命周期。在个体软件过程(Personal Software Process,PSP)和美国NASA软件工程实验室(SEL)同样强调通过统一的软件开发过程,进而实现提高软件质量的目标的原则。实用软件度量(PSM)的7种质量组、22个分组和64个度量指标的关键实践中强调在软件过程中通过合理的裁剪、应用和实施建立对软件全过程的有效管理实践。
  为解决软件开发过程出现的问题,多种软件实践中热点的一个研究就是软件产业正迅速向基于组件化的开发模式演进。即在正确理解软件开发过程,在领域知识指导下改进软件开发成功率,在软件统一过程(RUP)、基于组件构建软件系统,实现软件工作目标,保证并通过软件的最佳实践来降低软件危机风险是本文需要研究解决的问题。
  
  3 基于组件构建系统的最佳实践内容
  最佳实践可以应用于各行各业,甚至我们生活中的方方面面。最佳实践在软件开发中最突出的贡献就是软件工程理论的建立,将软件开发进化为全程可控、可测量的工程式开发。最佳实践是一种理念,它表现为有一种技术、方法、过程、活动、鼓励或报酬与任何其他技术、方法、过程等比较而言可以更有效地提供一个特定的 预期结果。
  基于组件构建软件系统,在软件统一过程(RUP)指导下的软件开发实践已经成为软件工程界的一种事实标准,即RUP是一个软件开发方法框架,以及一个公认的、灵活的、实用的流程平台,用于成功的软件项目。此种方法在设计中强调软件组件的设计规范以及依赖于现有组件设计构建新的软件成分。但是现今软件的设计过程中均集中于某些特定的领域问题上,这样造成在软件接口协议、组件集成等削弱高层次抽象的设计决策能力。大量的软件实践已经证明,由于快速变化的技术、方法和组织过程的抉择,给开发企业在选择重用技术、额外适应性组件开发和集成、业务领域组件的开发与来源的选择上增加了更多不可控制的复杂性和项目风险。如何在采用复用的组件集成和软件目标间平衡问题还是有待商榷的研究问题[4][5][6]。综上所述在基于组件构建软件系统的风险代价中核心是解决组件的集成和协同组件的过程设计问题。因此本文提出一种创造性结合最佳实践的软件过程应用于软件项目开发的管理过程方法,进而通过正确的需求工程实践和合理设计实现软件工程目标。
  一般软件实践中,涉及到组织形式、技术框架、复用技术与集成、设计能力和探索式软件开发与设计原则,达到适应经常性的技术创新的变化与增长特点,实践证明,一个企业必须通过适应本机构特点和行业领域及主题业务需求的软件成熟过程控制,才能不断地通过探索并结合企业技术能力的过程模型即最佳实践。技术能力的提高与完善只有在设计过程中才能产生和得到实践证明。
为了实现软件工程的三维目标即软件质量、进度和成本,在软件工程管理指导下的统一开发过程实践下,软件构建的基本指导原则表现为以下内容:遵守统一过程(RUP)提出了六项最佳实践即迭代的开发软件、需求管理、使用基于构件的体系结构、可视化软件建模、验证软件质量和控制软件变更。软件开发过程以体系结构为核心、按照高级抽象宏观指导下,通过领域建模、主题业务分解、功能任务确定和过程实现的层次建模方法完善最佳实践的过程;基于体系结构为核心的、适应性和动态扩展方便的组件集成的方式,增量、迭代式软件开发组织过程;迫切需要通过设计流程、技术、方法和人员等各个有机结合才能实现健壮的需求管理、项目计划、项目跟踪、质量保证和业务扩展应用,通过组件集成降低软件工程总体的代价;因此软件开发过程的最佳实践也应是为完成某项任务时最高效(最少的努力)和有效(最佳的效果)的方式,并