技术开发 频道

Rational SDP助产品成熟度第二级实施(一)


【IT168 技术文档】
1 前言

    随着我国国防现代化的迅速发展,计算机应用已经广泛深入军工企业。从整个作战指挥系统到个别装备单元,都已经或即将借助计算机技术来增强作战能力,因而计算机软件在军工产品中得到大量应用。 

    在这种环境下,计算机软件起着神经中枢的作用,一旦软件失效,就可能导致整个作战指挥系统的失灵,引起严重后果。
在即将来到的“十一五”,将是我国武器装备换装的高峰时期,整个军工行业在军品的软件工程建设方面将迎来更长足的发展和提升。 

    我们有理由相信,IT技术已经促使军工单位在生产力要素、竞争、质量体系保证等方面都发生着重大变革,基于IT技术提高市场应变能力、提高管理效率、强化质量保证体系的执行力为军工单位获取更大利润的理念正在形成,这种理念在产品方面的实践之一就是软件研发集成模式,而这种模式的重要基础之一就是军工单位的IT信息化,或者说产品质量保证体系的的改进和提高。
 
    那么,军工单位在产品开发中该如何来保证软件产品的质量呢?

2 现状分析和改进机会

2.1 过程决定产品质量

    一个好的软件开发过程可以提高软件开发团队的工作效率,控制开发过程中的风险,保证软件开发进度并且提高软件产品质量。软件质量的好坏是由开发过程中的每一个环节(并不仅限于测试环节)所保证的,过程中的每一个角色都应该对软件质量负责。 

    软件过程是软件开发组织的“灵魂”。软件开发过程的优劣对于软件产品的成本的影响是指数级的,是软件成本的最主要影响因素。这一点可以从图表2-1COCOMO II的软件经济学模型得到科学的印证。



图表 2 1 软件经济学模型 

    从这个公式中可以看出,软件产品的质量将受到人员能力、开发工具自动化水平、软件产品的规模和复杂度、以及软件过程成熟度等多个因素的影响。过程对于软件产品的影响是指数级的。
所以说,军工单位的软件开发过程中,过程必须先行,只有规范过程,其他的一切开发活动才有了切实保障。 

    2.2 军工单位的软件开发的现有过程架构 

    根据IBM公司对客户的深入调研和分析, 在软件产品或软件项目开发和管理中,由图表3-2 所示的项目管理过程、基本支持过程和项目开发过程这“两横一纵”组成了军工单位的完整的软件开发生命周期。



图表 2 2 军工单位软件开发生命周期 

    在上述的生命周期过程中,按照管理类过程、开发类过程和支持类过程,军工单位对应的各个阶段的子过程如图表3-3: 



    图表 2 3 军工单位管理类过程、开发类过程和支持类过程 

    2.3 军工单位的软件开发的现有过程特征分析 

    军工单位质量保证体系中的软件开发过程基本遵循了GJB2786-96的核心思想,同时在软件开发管理和基本支持过程又引入了GJB5000中的ML2和ML3的相关KPA,由于GJB2786-96将开发过程划分为五个部分:系统的需求分析/设计;软件开发;硬件研制;系统集成和测试;试验与评价及生产和部署。且因为武器系统,是计算机系统与机械、电子、光学等复杂对象有机关联的系统,这样的系统有它特殊的设计、制造、测试等方面特殊问题。所以,GJB2786-96的先进点之一,正如我们前面所说, GJB2786-96不仅着眼于软件开发这一事件,而是把软件系统作为特定硬件系统的神经系统来对待,并予以整体综合考虑。把软件研制过程分作五部分,按时间顺序进行开发,反映了软件研制的生命周期演进的观点,即软件工程学的瀑布模型法。 

    GJB2786-96中安排了许多审查、审核、测试、评价,并且用符号“+”来特别注明:“可能多次审查,也可能与硬件审查结合进行”。因此,GJB2786-96把系统开发过程视为一个可以多次反复试验的过程,即:按研制生命期演进,在某个阶段,要经过反复审核或审查,直至达到目的为止。这是GJB2786-96的又一先进之处:既符合了软件工程学的快速原型试验法的思想,也符合瀑布模型法的思想。 

    这两点结合,说明图表3-4所规范的软件开发过程,总体上规范了从顶向下逐步求精的开发过程,同时也规范了局部(不排除总体上)由底向上的逐步归约的开发过程。开发过程的终止是以满足功能与性能指标为标志。 



    图表 2 4 GJB2786-96结构 

    引入GJB5000 ML2和ML3的相关KPA,则可以弥补GJB2796-96在管理领域的弱项,可以使军工单位的软件开发和管理在过程层面达到如图表3-5所示的GJB5000成熟度等级的2级和3级的以下特征.


图表 2 5 GJB5000 ML2&ML3特征

2.4 军工单位的软件开发现有过程的改进机会 

    有了过程,那么接下来的问题是:
1. 过程的执行力是否能够得到保障? 

    企业制定了过程,并不代表企业同时具有了与过程对等的过程能力,即达到了相应的软件成熟度级别,企业必须在实际的开发和管理过程中遵照所制定的过程,依据过程所制定的适合企业的非常好的实践进行操作,才不会出现过程改进中出现”两层皮”的怪圈,一方面企业意识到过程改进的重要,另一方面却为了软件过程改进而改进,在制定完过程后即束之高阁,企业的现状没有任何实质的转变. 

    另外一种情况是企业制定的过程没有结合自己的实际情况制定过程,过程改进中会导致所制定的过程水土不服,原因是这些过程是基于别人的过程. 

    基于以上两种情况制定的过程很难在企业中有生命力,即我们所说的”落地生根”,过程基本上没有执行力.
还有一种情况与以上情况的区别是,企业制定了合适的过程,执行起来却”虎头蛇尾”,过程改进本身也是一个项目,也需要按照下图的戴明环的原理进行管理,以保证整个过程改进是受控的和连续有效地.



图表 2 6 戴明环 

    2. 员工没有真正理解所定义的过程? 

    由于过程是回答在整个开发和管理过程中,什么时候、应该由谁、进行什么样的活动、产生什么样的结果的问题,所以企业中的每一个与过程执行有关的角色和员工,都应该如图3-7所示,清楚自己的职责,工作内容,上下游的工作衔接,即输入和输出以及针对每一项工作的指南,否则过程的执行力很难得到保障,而各种角色如果没有充分的了解与其相关的子过程任务输入和输出的工作产品,更甚至针对自身的工作没有成熟的可供操作和指导意义的指南信息,那么过程的执行将不会有效和充分,甚至在过程的执行过程中,人员会有意规避过程,原因是他们认为过程不具备可操作性,没有指导作用,反而增加了许多”无谓”的工作,逐渐产生抵触情绪,从而在根本上违背了过程改进的本意,使得过程的执行力大打折扣.同时也使整个开发团队的能力不升反降,我们称之为“软件开发的恶性生态环境”。



图表 2 7 统一方法架构(UMA) 

    3. 是否有合适的开发环境和工具平台? 

    软件产品质量主要取决于产品的研发或生产过程。为了规范军用软件的研发过程,提高军用软件产品的质量,中国人民解放军总装备部颁布了GJB5000-2003《军用软件能力成熟度模型》,对军用软件承制单位的软件研制能力进行评价。 

    GJB5000-2003是国家在参考了CMU SEI的SW-CMM V1.1的基础上制定的。SW-CMM是对软件企业的软件过程(过程)中各个发展阶段的定义、实施、度量、质量控制和改善的一个模型化描述。这个模型用于确定软件企业的软件过程能力和找出软件质量及过程改进方面的最关键问题,为软件企业的过程改进提供指南。在GJB5000-2003中,除了给出了相关于过程成熟度的描述内容外,还给出了改进模式的指导和评估/评价模式的指导。 

    从软件过程改进模型的角度,GJB5000-2003能够指导软件企业进行软件过程的改进。(SPI,Software Process Improvement) ;同时帮助软件企业对其软件过程的改变进行计划、发展以及实施;并且可以用于软件过程评估(SPA,Software Process Assessment) 。 

    但是GJB5000-2003侧重于对企业的软件过程和软件能力的评估评价,它提供的是一个软件过程改进的框架,这个框架与软件开发的生命周期无关,更与项目管理的过程无关,因此它并不是企业可以直接采纳的软件开发方法和项目管理方法。GJB5000-2003为软件开发的流程改进提供了一个系统的框架,但是它所提供的只是一个流程框架,在实践过程中还需要具体工程技术的支持。如对于GJB5000-2003中的每一个目标,GJB5000-2003建议了一些实践来达到该目标,但这些实践只是提出了在具体实践过程应该注意的事项,并没有列出具体可采用的工程技术。因为作为一个模型,它不可能局陷在某一特定的工程技术之上,不同的软件组织可以采用不同的技术手段来达到相同的目标。GJB5000-2003的实施需要软件企业采用合适的方法和工具平台进行支撑。 

    GJB5000-2003做为一个指南能够帮助软件企业选择、采纳和合理使用一些先进的软件项目管理方法和软件开发方法,并在实践活动中不断提高和完善,从而极大程度地提高企业按计划的时间和成本提交有质量保证的软件产品的能力,可以说GJB5000-2003是“方法论”而不是“实践论”。 

    以上这些问题,我们怎样去解决呢?


3 IBM Rational SDP 解决方案目标: 完善质量保证体系,创造核心竞争优势

通过以上针对军工单位的现状分析以及存在的改进机会,IBM公司提出以下有针对性地解决方案。
方案主要从软件研发管理(包括软件外包管理)和软件开发两方面入手,按照军工单位存在的问题的轻重缓急程度,给出解决方案。

3.1 解决方案达成目标

1. 过程可视化、可执行
 可视化的过程,辅助过程推广
 可视化的过程:帮助员工理解所定义的过程
 可执行过程,不知不觉的遵守过程
 军工单位能够根据具体项目的具体要求,快速定制出合适的过程;
 能够满足军工单位的业务发展需求,灵活定义、发布和管理过程;



图表 3 1 过程可视和可执行

2. 有效管理资产和变更

    产品的开发和维护要对产品进行不断的变更,为了确保不至由于产品的频繁变更而对软件的品质产生影响,确保每个变更的正确性,必须建立一个稳定的变更过程来有效地管理变更,利用这个过程,将变更的提出方(很多情况下是用户)、变更的受理方(军工单位的开发管理人员)、变更的实施方(产品维护方)、变更的检验方(军工单位内负责质量管理、验证的人员)、变更的交付方(产品运行支持人员)整合到一个完整、稳定、成熟的过程中,利用稳定的过程保证每个变更的稳定的质量,从而确保系统的健康发展和对业务的发展变化的有效支撑。

3. 建立有效必需的工具平台

    为了实施GJB5000 标准,一个强有力的软件质量管理工具是必不可少的。“软件质量管理平台”基于全面质量管理理念,符合GJB5000和GJB2796-96的要求,将的软件开发过程融入日常项目开发,实现管理与技术的融合,能够有效提高管理效率,降低了理成本,保证产品质量,是一个能够全面、有效管理软件开发的协同工作平台。该平台围绕软件组织的基本盈利单位——软件项目开发进行管理,确保软件项目依据软件组织规定的过程要求制定计划、调配资源、监督开发产品。通过对开发过程的量化度量与控制,尽早发现和解决项目中存在的问题,规避项目风险。

    我们怎样达成以上的目标,或者说在过程改进中应该怎样让GJB5000落地生根,从而完善质量保证体系,创造核心竞争优势呢?


3.2.1 IBM Rational过程可视化解决方案

    军工单位需要一个完全整合的核心开发和管理过程;一个完全整合的核心开发和管理过程需要一个成熟的、先进的、集成化的、经过验证的软件开发平台提供有效的支撑,才能够保证这个核心开发和管理过程的稳定、高效的运作,而这对于我们军工单位能否有效创造其产品、技术、市场方面的竞争优势是有着决定性的意义的。 

    高效整合的业务过程,对于一个开发组织意味着他们能够准确有效地捕捉客户的业务需求及市场机会,并且能够把这些需求迅速地转化成为软件需求,在软件开发组织内部能够通过不同技能、不同岗位、不同责任的人员的高效协同工作,有效地利用可用资源、降低项目风险、提高开发效率,快速地交付出高品质的、满足客户业务需要的产品,并且能够快速地部署到客户的工作环境中。通过客户的实际使用,迅速、顺畅、高效地获取客户的反馈,并且迅速地定位到产品中所需要改进的部分,并且迅速、灵活地组织可用资源和高效协同,迅速交付出新的产品或更新版本,从而适应客户不断的发展变化的需要,提高客户的满意度和忠实程度,创造企业价值。这也就是我们所谈到的业务驱动的开发的本质。业务驱动的开发,所整合的不单纯是开发团队,还包括客户。他能够有效地增进客户与开发团队的高效、高质量的沟通,弥合业务领域与技术领域之间的裂缝,对于软件开发组织的意义就是提高开发效率、提高产品品质、成就客户。 

    那么,我们如何结合军工单位目前现有的过程进行可视化? 

    1. 梳理军工单位军工软件开发和管理过程的架构 

    按照一般军工软件开发和管理的生命周期,对管理过程开发过程和支持过程按照图表3-2所示的GJB5000-2003的KPA架构梳理出策略过程指南和文档(包括模板表单质量记录和检查单等),并以SEPG为核心,确立如图表3-3所示的军工单位过程改进组织架构。



图表 3 2 GJB5000-2003KPA架构



图表 3 3 军工单位过程改进组织架构 

    2. 导入IBM Rational RMC 

    根据军工单位的产品开发是兼具软硬件开发的系统工程,对于软件开发和管理的改进在以上的基础上可以基于IBM Rational 系统工程统一开发过程并利用IBM Rational RMC这样的过程改进工具,能够轻松地将军工单位军工软件生命周期中的三类过程,以及各种角色统一整合在一个无缝连接的过程改进平台上协同工作。 

    IBM Rational 系统工程统一开发过程(Rational Unified ProcessSystem Engineering ,以下简称RUP-SE) 是在标准 RUP 过程上的扩展,主要适用于以下场合:
 需要多个团队协同开发的大型系统
 同时包含有硬件和软件的嵌入式系统开发 

    RUP-SE™是一个软件工程过程行业事实上的标准,它回答了我们以下问题:在整个软件开发过程中,应该由谁(角色)在什么时候(详细工作过程)做什么(活动)和产生什么样的开发结果(工作产品),以完成整个项目的开发目标。同时为所有重要的开发活动提供全面的指南、模板和示例,使整个软件开发团队能够有效共享成功经验,提高团队效率,最终保证软件开发质量。 

    RUP-SE详细定义了软件开发过程中各个环节中的角色分工、从事的开发活动、用到或产生的工作产品。这些过程是从业界的开发工作经验中整理总结出来的,对于军工单位现有的过程在具体执行层面,具有很大的指导和参考意义。 

    RUP-SE恰好协助军工单位解决或预防我们前面提到的过程的执行力保障和保证开发团队成员正确理解过程的问题。 

    而军工单位引入Rational Method Composer(简称RMC)则可以提供一个功能强大的、可视化的、易用的过程定义工具,方便军工单位根据项目的实际需要,定制出自己的结合RUP-SE的软件项目开发和管理过程。 

    RMC是RUP-SE的的最新版本,它不但包含了RUP-SE的所有功能,还包含如下图表3-4包含的新的能力:
功能 RMC 益处 




图表 3 4 RMC功能 

    综上所述,IBM Rational提供给军工单位的过程可视化解决方案总结如下图表3-5所示:



图表 3 5 军工单位的过程可视化解决方案总结

第二部分链接:http://tech.it168.com/m/2008-01-03/200801031047672.shtml

0
相关文章