摘要:本文基于中、小型规模的软件开发特点,通过融合多种软件过程开发实践,保证快速、合理、低代价和清晰的软件开发过程控制基础上,作者基于工程实践的总结和归纳,提出一种基于组件构建软件系统的cmm和rup的有序过程控制的最佳实践方法,该方法具有清晰过程控制、可被重复检验和理解,允许在软件过程中进行适应性的自我调整和完善。通过实际案例的统计和规律性分析,证明该种软件开发过程的最佳实践方法在实际的工程项目管理中具有较强的工程指导意义和现实参考价值。
关键词:软件工程;软件项目管理;组件;最佳实践
1 引言
在当今信息社会,信息技术已经普遍地服务于社会的各行各业,以计算机信息系统为核心的it技术已成为最活跃、最有发展潜力的支柱产业,绝大多数的社会业务领域都形成了非常成熟的高水平的行业应用软件。但由于软件开发过程的缺陷、项目管理的问题和缺乏对企业内部软件开发过程的最佳实践总结与应用,软件系统的开发还存在着严重的问题。根据美国standish group对2003年美国1.35万个软件项目的统计,有问题的和失败的软件项目占66%,
遵守统一过程(rup)提出了六项最佳实践即迭代的开发软件、需求管理、使用基于构件的体系结构、可视化软件建模、验证软件质量和控制软件变更。软件开发过程以体系结构为核心、按照高级抽象宏观指导下,通过领域建模、主题业务分解、功能任务确定和过程实现的层次建模方法完善最佳实践的过程;基于体系结构为核心的、适应性和动态扩展方便的组件集成的方式,增量、迭代式软件开发组织过程;迫切需要通过设计流程、技术、方法和人员等各个有机结合才能实现健壮的需求管理、项目计划、项目跟踪、质量保证和业务扩展应用,通过组件集成降低软件工程总体的代价;因此软件开发过程的最佳实践也应是为完成某项任务时最高效(最少的努力)和有效(最佳的效果)的方式,并且是基于一段时间内被大量人员检验的可重复过程。wwW.133229.cOm在最佳实践完善与实践中,以提高软件生产能力为根本目标的软件工程管理。
本文提出普遍适应意义的最佳实践过程基于软件过程控制中,关注软件目标、软件边界及范围、软件成本和其它与问题领域相关的目标,具体的实践过程步骤如下:
(1)建立并设计适应本企业技术能力的软件开发规划及标准。
在项目启动、项目计划、软件过程和跟踪监控等软件项目管理核心过程控制中,首先要基于企业所在行业、领域特点和技术积累经验建立恰当的过程模型与相应过程标准。例如在设计中考虑某系统的业务管理角色、授权信息在系统运行期间是相对静态不变的即“数据动态、业务静态”的启发规则,设计约束和实现的组件服务标准设定为“一次数据获取,二次数据组装,三次业务静态应用”,进而保证了设计思想与编码过程中的统一模式,成为该软件最佳实践的一个重要因素。
(2)基于软件过程的人员授权。
在实践中,应该基于软件过程的3p(人员、问题和过程),将三者基于主题业务特征、人员能力和角色职责、软件过程任务,量化授权资源、责任和里程碑责任人。例如在某软件过程责任授权中,为实现软件过程的阶段和任务,按照最佳实践的方式进行组织与评审。
(3)定义需求规格获取的工程方法、管理配置变更制度建设。
按照操作、控制简便和实用,指导性强的原则,基于企业的组织特点和技术生产水平,以快速原型系统为典型特征,适应软件变化特征和便于阶段评审的软件过程的制品配置管理。
(4)以领域分析建模为基础的抽象设计方法指导。
设计过程遵循自顶向下、由粗到细、逐步细化,抽象为指导设计的原则,按照分治和启发式规则完善体系结构设计和组件化应用系统设计。比如我们进行信息化系统的建模过程中,可以按照业务流程分析和指导下,确认界面原型,根据业务的操作与规格约束,确定界面的统一性和布局、界面要素的层次性,基于实际业务流程的信息模型特征进行软件系统基础设施的设计与组件配置和开发,这样实现了软件系统的设计统一性和开发编码的自动化规格,降低各个阶段的开发代价与维护成本。
(5)严格的阶段项目评估和设计原则、约束指导进行统一过程管理。
(6)组件化、标准接口协议规范的集成风险控制。
(7)过程的跟踪与适当、及时变更控制与配置管理。
(8)适应主题业务特征与行业规律的功能设计。
组件定义的粒度,编码规则,集成化的开发与构建系统模式指导
(9)可控制的项目目标、量化的设计约束和标准化过程管理流程。
(10)项目全过程的标准软件制品规格控制。
通过上述统一的软件开发过程模式,使企业能够适应不同的项目实践要求和良好的系统解决方案,同时,又能够具有适当的过程控制灵活性和风险控制。
4 最佳实践工程案例
按照本文所提出软件开发过程的最佳实践步骤得到实践检验的软件系统的特点总结如下:
通过以上不同特点、规模不同的软件项目情况统计可得出,本文所提出的采用软件开发的最佳实践方法进行组织,从软件错误或缺陷数量、产生的阶段过程、维护代价等方面来看,提高了软件开发效率,降低软件开发成本,软件过程可控,结果预期和维护代价均得到满足,项目预期成功几率大大提高,提高了软件开发生产力。
5 结论
本文所提出的最佳实践,从软件开发过程组织与控制上,均保证了在软件过程中符合软件工程的原则和方法实践指导。通过多个不同类型和规模的软件案例统计可得出,本方法在中、小型软件系统开发、软件工程管理等过程中,具有较强的指导意义。
本文所提倡的最佳实践方法因为选择的案例和实践均为中、小型规模项目,因此在最佳实践的开发过程中,软件风险、决策选择和软件目标的建模方法等没有过多强调。如何结合中、小型规模软件项目开发中,重点解决的是保证快速、高效、高质量和低代价的目标下,更突出阶段风险评估、过程评审和决策过程的控制是研究和解决的重点内容。
参考文献
[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.
[6]felix bachman,len bass,c.buhman,f.long,technial concepts of componet-based software engineering,technical report cmu/sei-2000-tr-008,software engineering institute,carregie mellon university,pittisburgh:">