浅谈开发中小型软件系统的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)提出了辣项最佳实践即迭代的开发软件、需求管理、使用基于构件的体系结构、可视化软件建模、验证软件质量和控制软件变更。软件开发过程以体系结构为核心、按照高级抽象宏观指导下,通过领域建模、主题业务分解、功能任务确定和过程实现的层次建模方法完善最佳实践的过程;基于体系结构为核心的、适应性和动态扩展方便的组件集成的方式,增量、迭代式软件开发组织过程;迫切需要通过设计流程、技术、方法和人员等各个有机结合才能实现健壮的需求管理、项目计划、项目跟踪、质量保证和业务扩展应用,通过组件集成降低软件工程总体的代价;因此软件开发过程的最佳实践也应是为完成某项任务时最高效(最少的努力)和有效(最佳的效果)的方式,并且是基于一段时间内被大量人员检验的可重复过程。在最佳实践完善与实践中,以提高软件生产能力为根本目标的软件工程管理。 中国论文联盟
www.LWLM.com编辑。
本文提出普遍适应意义的最佳实践过程基于软件过程控制中,关注软件目标、软件边界及范围、软件成本和其它与问题领域相关的目标,具体的实践过程步骤如下:
(1)建立并设计适应本企业技术能力的软件开发规划及标准。
在项目启动、项目计划、软件过程和跟踪监控等软件项目管理核心过程控制中,首先要基于企业所在行业、领域特点和技术积累经验建立恰当的过程模型与相应过程标准。例如在设计中考虑某系统的业务管理角色、授权信息在系统运行期间是相对静态不变的即“数据动态、业务静态”的启发规则,设计约束和实现的组件服务标准设定为“一次数据获取,二次数据组装,三次业务静态应用”,进而保证了设计思想与编码过程中的统一模式,成为该软件最佳实践的一个重要因素。
(2)基于软件过程的人员授权。
在实践中,应该基于软件过程的3P(人员、问题和过程),将三者基于主题业务特征、人员能力和角色职责、软件过程任务,量化授权资源、责任和里程碑责任人。例如在某软件过程责任授权中,为实现软件过程的阶段和任务,按照最佳实践的方式进行组织与评审。
(3)定义需求规格获取的工程方法、管理配置变更制度建设。
按照操作、控制简便和实用,指导性强的原则,基于企业的组织特点和技术生产水平,以快速原型系统为典型特征,适应软件变化特征和便于阶段评审的软件过程的制品配置管理。
(4)以领域分析建模为基础的抽象设计方法指导。
设计过程遵循自顶向下、由粗到细、逐步细化,抽象为指导设计的原则,按照分治和启发式规则完善体系结构设计和组件化应用系统设计。比如我们进行信息化系统的建模过程中,可以按照业务流程分析和指导下,确认界面原型,根据业务的操作与规格约束,确定界面的统一性和布局、界面要素的层次性,基于实际业务流程的信息模型特征进行软件系统基础设施的设计与组件配置和开发,这样实现了软件系统的设计统一性和开发编码的自动化规格,降低各个阶段的开发代价与文护成本。
(5)严格的阶段项目评估和设计原则、约束指导进行统一过程管理。
(6)组件化、标准接口协议规范的集成风险控制。
(7)过程的跟踪与适当、及时变更控制与配置管理。
(8)适应主题业务特征与行业规律的功能设计。
组件定义的粒度,编码规则,集成化的开发与构建系统模式指导
(9)可控制的项目目标、量化的设计约束和标准化过程管理流程。
(10)项目全过程的标准软件制品规格控制。
通过上述统一的软件开发过程模式,使企业能够适应不同的项目实践要求和良好的系统解决方案,同时,又能够具有适当的过程控制灵活性和风险控制。
4 最佳实践工程案例
按照本文所提出软件开发过程的最佳实践步骤得到实践检验的软件系统的特点总结如下:
通过以上不同特点、规模不同的软件项目情况统计可得出,本文所提出的采用软件开发的最佳实践方法进行组织,从软件错误或缺陷数量、产生的阶段过程、文护代价等方面来看,提高了软件开发效率,降低软件开发成本,软件过程可控,结果预期和文护代价均得到满足,项目预期成功几率大大提高,提高了软件开发生产力。
5 结论
本文所提出的最佳实践,从软件开发过程组织与控制上,均保证了在软件过程中符合软件工程的原则和方法实践指导。通过多个不同类型和规模的软件案例统计可得出,本方法在中、小型软件系统开发、软件工程管理等过程中,具有较强的指导意义。
http://www.751com.cn/ 本文所提倡的最佳实践方法因为选择的案例和实践均为中、小型规模项目,因此在最佳实践的开发过程中,软件风险、决策选择和软件目标的建模方法等没有过多强调。如何结合中、小型规模软件项目开发中,重点解决的是保证快速、高效、高质量和低代价的目标下,更突出阶段风险评估、过程评审和决策过程的控制是研究和解决的重点内容。
参考文献
[1]Zhang WEi,Zhou Chang-le. Muti-Agent Concurrent Model in Software Project Management. Application Research of Computers, vol. 2004, pp. 17-19.
[2]Kurt C.Wallnau,Scott A.Hissons,Robert C.Sealord,Building Systems Commercial Components,Addison-Wesley,2001.
[3]韩万江,姜立新.软件项目管理案例教程[M].China Machine Press,2005.
[4]Garmus,D,and David,H.The Software Measuring Process:A Practical Guide to Functional Measurements.NJ:Yourdon Press,1996.
[5]G.A.Hazelrigy,”A Framework for Decision-Based Engineering,Design,”,Journal of Mechanical Design,1999.
浅谈开发中小型软件系统的CMM最佳实践方法下载如图片无法显示或论文不完整,请联系qq752018766