软件过程管理的发展与实践_第1页
软件过程管理的发展与实践_第2页
软件过程管理的发展与实践_第3页
软件过程管理的发展与实践_第4页
软件过程管理的发展与实践_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件过程管理的发展与实践

1装备软件研制中存在的问题随着设备快速发展和作战需求的不断提高,装备中软件的规模和数量不断扩大,安装部门在开发装备软件时应用恶意软件及其技术的水平不断提高,与军事软件开发有关的军事符号的传播逐渐成为一种自觉的行动。但同时也应看到,在装备软件研制过程中,研制单位实际的软件工程应用水平还不高,目前仍然存在着许多问题和不足。主要表现为如下几个问题:1软件质量体系不健全海军颁布的“软件质量管理要求”从去年刚刚开始试行,部分研制单位软件质量体系还未建立。即使建立了软件质量体系的单位,其体系文件也有待进一步通过实践来补充完善。由于研制单位普遍管理水平不高,软件开发人员的素质成为影响软件产品质量的重要因素。2交付的软件不能完全满足实际的使用需求32软件存在质量风险4软件文档不规范,与程序的一致性差5软件维护不好,移植不好62软件的实际开发成本在全球开发成本中所占比例逐年增加2对策与分析2.1软件过程能力capa东南角早在20世纪60年代中期,人们就发现软件的研制出现了“问题”,主要表现在研制过程不规范,缺乏管理。后来,人们在软件研制过程中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件研制过程中遇到的问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,因此管理学的思想逐渐融入软件开发过程中,由美国软件工程研究所(SEI)提出的软件能力成熟度模型(CMM--CapabilityMaturityModelforSoftware),便是软件过程管理思想不断发展的集中体现,是对企业软件过程能力的描述。CMM不但对于指导过程改进是一项很好的工具,而且把全面质量管理(TQM)概念应用到软件开发上,实现从需求管理到项目计划、项目控制、软件获取、质量保证、配置管理的软件过程全面质量管理。CMM的思想是一切从顾客需求出发,从全组织层面上实施过程质量管理,正符合了TQM的基本原则,把质量控制从事后检测转变为事前预防。因此,它的意义不仅仅是对软件开发的过程的进程控制,最关键的它还是一种高效的管理方法,有助于企业最大程度的降低成本,提高质量和用户满意度。CMM描述了五个级别的软件过程成熟度(初始级、可重复级、已定义级、已管理级和优化级),成熟度反映了软件过程能力(SoftwareProcessCapability)的大小。具体如下:第一级:初始级(TheInitialLevel)初始级的软件机构缺乏对软件过程的有效管理,其软件项目的成功来源于个人英雄主义而非机构行为,因此它不是可重复的。第二级:可重复级(TheRepeatableLevel)第二级软件机构的主要特点是项目计划和跟踪的稳定性、项目过程的可控性和以往成功的可重复性。机构建立了管理软件项目的策略和实现这些策略的过程。新项目的计划和管理基于类似项目的经验。过程能力的增强基于以各个项目为基础的有纪律的基本过程管理。不同的项目可有不同的过程,而对机构的要求是具有指导项目建立适当管理过程的策略。每个项目都确定了基本的软件管理控制,包括:基于前面项目的经验和新项目特点,做出现实的项目承诺(如预算、交付期、软件质量等);软件项目管理者要跟踪开支、日程、软件开发;过程中出现的问题要及时发现,妥善解决;定义了软件项目标准,且机构确保其被遵守。第三级:已定义级(TheDefinedLevel)本级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、可重复性和可控性。机构采用标准的软件过程,软件工程和管理活动被集成为一个有机的整体。标准化的目的是使管理者和技术人员有效工作。有专职人员负责机构的软件过程,并且在机构中有培训计划来确保全体人员有知识和技能完成所赋予的职能。标准的软件过程结合项目的特点,形成定义的软件过程。它包括一组集成的、定义良好的软件工程和管理过程。一个定义良好的过程包括就绪准则、输入、完成工作过程、验证机制、输出和完成准则。在已建立的产品线上成本、进度、职能等均可控制,软件质量被跟踪。过程能力体现在机构范围内对一个定义的软件过程活动、职能和责任的共同理解。第三级的重点是工程过程和机构建设。第四级:已管理级(TheManagedLevel)本级的软件机构中软件过程和软件产品都有定量的目标,并被定量地管理,因而其软件过程能力可预测,其生产的软件产品质量高。软件过程和产品有定量质量目标。重要的软件过程活动均配有对质量和生产率的度量;数据库用来收集和分析软件过程的数据;项目的软件过程和质量的评价有定量的基础;项目的产品和过程控制具有可预测性。过程效能的降低在可接受的定量偏差界限内;可区分过程效能的有效偏差和随机偏差;面向新领域的风险可知,并被仔细管理;第五级:优化级(TheOptimizingLevel)本级的主要特点是技术和过程改进被作为常规的业务活动加以计划和管理。机构集中于连续的过程改进,具有标识弱点和增强过程的手段。采用过程数据分析使用新技术的代价效益,并能够提出改进。能够分析出现错误的原因,并防止其再次出现。防止浪费是第五级的重点。改进的途径在于已有过程的持续改进和使用新技术和新方法。第五级企业的重点是连续的过程改进。在软件的整个寿命周期中,软件产品的质量的80%在设计阶段就确定了。图1为软件寿命周期中的缺陷分布图。从图1中可以看出,缺陷是在开发过程的前期引入,但越到后期缺陷修复的成本越高,随着CMM级别的提高,缺陷的消除将从后期逐步转移到前期,遗留到用户手中的缺陷也相应减少,这必将大大缩短开发周期,减少成本,提高研制质量。CMM是软件组织管理的一种方法和工具,我们不一定完全照搬。但参照CMM划分的级别可以发现,我们现有的软件质量体系建设仍然存在较大的差距。“软件质量管理要求”是根据国内研制单位目前的现状提出的,且经过了一年的试行和修改完善,可操作性比较好。研制单位根据“管理要求”和本单位的实际情况,同时借鉴CMM的理念和技术,建立一个科学合理的软件管理过程——软件质量体系,并有机溶入本单位现有的质量体系之中,相信能够达到提高军用软件产品研制质量的目的。2.2开发统一产品的过程管理和配置管理在IEEE标准729-1983中,软件配置管理的定义包括:标识——识别产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取。控制——通过建立产品基线,控制软件产品的发布和在整个软件寿命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的最新版本中实现的问题。状态统计——记录并报告构件和修改请求的状态,并收集关于产品构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文件的问题。审计和审查——确认产品的完整性并维护构件间的一致性,即确保产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所用的文件的版本是否正确的问题。生产——对产品的生产进行优化管理。它将解决最新发布的产品应由哪些版本的文件和工具来生成的问题。过程管理——确保软件组织的规程、方针和软件周期得以正确贯彻执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。小组协作——控制开发统一产品的多个开发人员之间的协作。例如,它将解决是否所有本地程序员所做的修改都已被加入到新版本的产品中的问题。配置管理中的活动主要包括:识别配置、变化控制、状态记录和报告及审计。识别配置是指以定义的软件产品设计基线为依据,识别软件(中间产品)的技术状态,使其处于配置管理的控制之下,并维护它们之间的相关关系。一般来说,这些中间产品主要是程序和文档。变化控制是指记录变化的有关信息(包括变化的内容、原因和实现者等),用于保障软件的质量。状态记录和报告是指通过记录各个配置的变化,达到记录和报告整个软件的变化过程的目的。审计是指利用配置记录验证软件达到了预期的要求。配置管理的解决方案,影响过程模型(质量体系)及其使用者。它强行推行软件质量管理的方针政策和工作规程,并对工作过程进行跟踪。它从研制和维护的及时性方面影响产品的质量。例如,配置管理机制可以保证为每一个软件版本提供内容清单,通过一致性维护提高产品的质量。实际上配置管理系统是软件研制单位内部信息交换的中心,它影响每一个成员及本单位的业务流程。围绕配置管理,世界一些致力于软件工程研究的公司在深入理解ISO9000的基础上,推出了各种符合ISO9000配置管理标准的工具软件。研制单位在健全质量体系后,可以根据需要,选用一些工具软件以提高科学管理水平和研制效率。2.3“需求分析”的过程软件需求是软件项目成功的关键,软件项目中百分之四十至百分之六十的问题都是在需求分析阶段埋下的“祸根”。美国质量管理协会(ASQC)将“质量”解释为“产品或服务内在特性和外部特性的总和,以此构成其满足给定需求的能力”。从这个意义上说,只有满足用户需求的软件产品才谈得上有好的质量。CMM第四级中的“软件质量管理”也明确要求:组织、顾客和最终用户的软件质量需求及其优先级可以追踪到分配给软件的系统需求及软件质量目标。因此,CMM的需求管理正是从全面质量管理的主导思想——“以满足顾客需求为导向”出发的,软件开发则应以需求分析作为核心过程(需求分析过程与其它过程的关系见图2。需求分析无疑是当前软件工程中的关键问题。完整的软件需求分析过程包括需求开发和需求管理两个部分,需求开发的一般过程分为需求获取、需求分析、编写需求规格说明书、需求验证四个阶段。需求管理则主要包括需求基线的建立、需求变更控制以及需求跟踪等活动。需求获取是通过与用户及其代表的交流,对任务进行分析,从而开发、捕获和修订用户的需求;需求分析是为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述;由需求模型构件生成精确的形式化的描述,即需求规格说明书。它将作为用户和开发者之间的一致协议;需求分析的结果应该通过评审、测试等手段验证它的正确性、完整性和一致性,这就是需求验证。贯穿于整个过程中,需求管理中最基本的任务则是明确需求,并使所有相关人员达成共识。建立需求跟踪能力联系链,确保所有用户需求被正确地应用,并且在需求发生变更时,能够完全地控制其影响范围,始终保持产品与需求的一致性。需求分析需要各类人员的参与,如行业专家、用户及其代表、系统设计师、需求分析员、软件开发人员等等,以不同的着眼点和不同的知识背景,获得对软件需求的全面理解。需求分析最大的难度就体现在全方位需求的获取以及非功能性需求与功能性需求的错综复杂的联系上。当前对非功能性需求(或用户隐含需求)分析建模技术的缺乏大大增加了需求工程的复杂性,而非功能性需求往往又决定了对软件产品的质量要求。因此,非功能性需求和质量特性的分析模型有待于在深层次做进一步的研究。在海装机关的组织下,请用户提前介入装备研制,参加在研的几型电子装备设计评审的做法,不失为一种较好解决此类问题的有效办法。2.4软件工艺设计与设计程序不一致软件开发人员常说的一句话是“叫我干什么都可以,但别叫我看别人的程序”。一个很重要的原因就是,前人留下的程序既无像样的文档(即使留下了文档,也与其源程序严重脱节),开发风格又不统一,就像一堆垃圾。目前,各研制单位按照有关国军标的要求进行软件研制,但软件文档编制和归档情况参差不齐。即使管理工作做得较好的单位,也存在程序与文档不一致的情况。造成软件文档质量不高的原因一般有:①缺乏实践经验,缺乏评价文档质量的标准;②不重视文档编写工作或是对文档编写工作的组织安排不当。软件研制中最常见到的情况是,在研制初期完成的软件设计文档与最后完成的程序有很大的出入。另一方面,和软件编程工作相比,许多人对编制文档不感兴趣。于是在程序工作完成以后,按要求不得不应付一下,把要求提供的文档赶写出来。这样的做法不可能得到高质量的文档。高质量的文档应当体现在以下一些方面:1主题22精度3视力4完整性5成品的形成、修改和补充在整个软件生存期中,各种文档作为半成品或是最终成品,会不断地生成、修改或补充。为了最终得到高质量的产品,必须加强对软件文档的管理。3文档资料和回顾以上仅是对目前军用软件研制过程中存在的一些薄弱环节提出了一点儿拙见。软件的质量管理是一个系统工程,需要科学策划,认真实施,持续改进。只有这样才能保证研制出高质量的软件产品,达到相当于软件能力成熟度模型——CMM优化级的水平。软件开发人员常常对部队需求只有一些模糊的了解,有的甚至缺乏基本的战术概念,造成对需求的理解不准确、不透彻,“闭门造车”必然导致最终的产品不能完全符合部队的实际需要。由于软件质量保证技术还没有真正、完全应用到软件研制的全过程中,软件测试工作还未在型号装备上全面展开,从而导致软件产品存在质量隐患。军用软件不仅仅指程序,还包括一整套符合国军标要求的文档资料。这些文档资料应该在软件研制过程中产生出来,而且应该和程序代码完全一致。质量管理人员可以使用这些文档资料作为依据,来管理和评价软件研制的进展情况。软件开发人员可以利用它们作为沟通的工具,在软件研制过程中准确地交流信息。对于软件维护人员而言,这些文档资料更是至关重要必不可少的。缺乏必要的文档资料或者文档资料不合格,必然给软件研制、维护带来许多困难和问题。由于文档的不完善,程序中的错误不易发现、非常难改,也不能根据需要在原有程序中增加一些新的功能。软件开发人员仍然在重复开发类似的或基本类似的软件,“软件标准化”、“可重用软件”等概念还处于推广应用阶段。由于海军标准显控台的推广应用,硬件成本逐渐趋于稳定。然而软件研制需要大量人力,软件成本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论