软件工程论文

您当前的位置:学术堂 > 计算机论文 > 软件工程论文 >

软件能力成熟度模型在测控软件研发中的应用

来源:仪表技术 作者:辛健
发布于:2018-09-10 共5554字

  摘  要: 软件质量在很大程度上取决于构筑软件时所使用的软件开发和维护过程的质量。因此, 软件研发组织将大量精力投入于软件过程质量管理, 进行软件过程改进。CMM是从软件工程开发的角度来衡量一个软件组织开发能力的模型, 是软件过程质量管理的重要依据。介绍了CMM的一般思想和等级划分, 分析了实时测控软件研发过程管理的特点, 重点探讨了如何在实时测控软件研发过程中贯彻CMM管理思想, 提高测控软件研发质量管理水平。

  关键词: 测控软件; 过程管理; CMM; 软件质量;
 

软件能力成熟度模型在测控软件研发中的应用
 

  Abstract: The quality of the software mostly depends on the quality of the software development and maintenance processes. Therefore, a lot of energy will be put into the quality management of software process in order to improve the software process. CMM is a model to measure the development capability of the software research and development organization. It is an important basis for quality management in the software process. In this paper, the general idea and classification of CMM are introduced. During the research and development process management, the characteristics of real-time measurement and control software are analyzed. The application of the CMM management model in the development process of the real-time measurement and control software are discussed to improve the management of software quality.

  Keyword: measurement and control software; process management; CMM; software quality;

  0 引言

  实时测控软件系统具有多通道、大容量、高速率数据采集、数据处理精度高、时间周期严格等强实时特性, 是一个集实时测量、实时控制、实时处理等为一体的复杂的大型软件系统。其核心要求是高可靠性和强实时性, 一次飞行任务的准备和执行, 特别是新型号任务的执行, 要花费大量的时间和精力在测控软件的研制和调试上, 而软件系统的质量指标, 对整个测控项目的成败起着至关重要的作用。因此, 必须对整个软件研发过程进行严格的质量管理, 确保整个测控软件研发过程风险可控、时间可控、管理可控。

  软件过程是软件工程过程、软件管理过程和软件组织过程的三者有机结合。软件过程的管理是软件质量的核心要素。本文系统阐述了CMM (软件能力成熟度模型) 的具体特征及其在软件研发过程管理中的重要作用, 分析了测控软件研发的现状, 探讨了结合实时测控软件研发实际, 贯彻CMM过程管理思想, 提高实时测控软件过程管理质量的具体措施。

  1、 CMM体系

  1.1、 CMM定义及分类

  CMM (软件能力成熟度模型) 是1987年美国国防部委托卡内基-梅隆大学软件工程研究所主持开发的, 用于评价软件承包商能力并改善软件质量的标准[1]。这套模型自问世以来, 得到了众多国家软件产业界的认可, 已成为美国乃至全球软件工程领域的事实标准。

  CMM成熟度等级分为5个等级, 依次递进, 不同等级代表不同的软件管理水平和发展阶段:

  1级———初始级。软件过程无序, 进度、预算、功能、质量不可预测, 企业一般不具备稳定的软件开发与维护环境。遇到问题时, 常常放弃原定的计划, 而只专注于编程与测试。成功来自于杰出个人行为而非组织行为, 因此, 它不可重复, 更换人员后成功便难以维持。
  2级――可重复级。建立了管理软件项目的策略以及实现这些策略的过程。基于以往成功的项目经验来计划与管理新的项目, 软件过程已制度化。项目计划和跟踪是确定且有效的, 项目的软件过程是可控的, 已有的成功经验是可重复的。
  3级――已定义级。软件工程和管理活动被集成一个有机整体。建立了专门小组负责制定和实施标准软件过程;结合具体项目的特点, 标准软件过程可经裁减, 形成项目定义软件过程。软件过程已实现了标准化, 更具稳定性、重复性和可控性。
  4级――已管理级。企业对产品与过程确立了定量的质量目标, 并且度量清楚、连续。对所有项目的重要过程都进行生产率和质量度量, 因此, 软件产品具有可预期的高质量。达到该级的企业已实现了过程定量化。
  5级――优化级。软件企业已把重点放在对过程的持续改进上, 有意识地找出过程的弱点与不足, 以达到预防缺陷的目标。同时, 分析有关过程的有效信息, 对新技术进行成本与收益分析, 提出对过程的改进建议。、

  该级软件过程可自行不断改进, 改进途径有两个:一个是对已有过程的渐进式改进;另一个则是有选择地使用新技术和新方法进行革新。软件过程的持续改进已经作为日常业务加以策划和管理。

  CMM对软件开发项目最大的贡献在于, 它把组织和管理的精神明确地纳入到软件开发的过程中来, 它不是基于目标和方法的管理, 而是基于过程的管理。

  除第一级外, 在每一级都有几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性 (对执行该过程的承诺, 执行该过程的能力, 该过程中要执行的活动, 对该过程执行情况的度量和分析, 证实所执行的活动符合该过程) 予以表征。

  1.2、 CMM各等级间的联系

  CMM标准所依据的主要观点是:集中和建好软件过程的基础结构, 并谋求过程的不断改进, 为此, CMM为软件企业提供了一个阶梯式的过程能力改进框架;并强调, 软件过程的持续改进是基于多次小的进化步骤。CMM给每个关键过程一些具体目标, 按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。

  CMM成熟度模型为过程的不断改进奠定了循序渐进的基础, 每个成熟度等级为继续改进过程提供了一个台基, 跳跃等级是不可能的。

  CMM软件成熟度模型较好地反应了软件和软件开发工作的特点, 围绕CMM而涉及和开发的大量支持文件和工具为实施一致且可靠的评估提供了保证, CMM的基本用途反应在两个方面:软件过程评估和软件能力评价。

  2、 CMM和ISO9001质量体系比较

  在质量控制问题上, 不得不提ISO9001质量标准, 它已成为质量管理体系的标准性文件。从根本上说, CMM和ISO9001均可以作为软件团体或者软件研发企业过程改进的框架进行约束。但区别是:

  (1) ISO是个更广泛应用的质量标准, 它从用户立场, 对质量要素进行控制, 因此具有普适性;而CMM标准则强调软件开发过程的成熟度, 即内部过程的不断改进和提高, 因此, 是专门针对软件行业, 具有专业性[2]。
  (2) 在组织形式上, ISO9001审核只有通过或者不通过两个结论, 而CMM则是一个不断提高, 动态改变的过程, 在CMM的较高级别上, 它要比ISO更详细、更明确的方式模拟软件过程。
  (3) ISO9001标准侧重于质量保证, 对于预算、项目周期的管理涉及不够, 而CMM模型对这三者都有所涵盖。

  当然, 两者并不是截然分开的两份质量控制标准, 两者其实都强调管理、过程、规范化和文档可追溯, 其出发点都是通过对生产过程进行管理来确保产品的质量。

  3、 CMM在测控软件研发中的应用

  3.1、 实时测控软件特点

  实时测控软件系统承担着武器飞行试验任务中实时测量数据的处理、优选、交换等功能, 是完成数字引导、指挥显示、安全控制等多重任务的核心应用软件系统。在结构上, 采取多进程、多线程的结构, 各个进程和线程之间通过信号、共享内存等实现强实时特性和快速信息交换。通过信号量、互斥锁等技术保证了各个模块之间安全的进行数据的共享[3-7]。

  实时测控系统软件是个大型的系统工程项目, 其结构复杂、研制周期长、功能丰富, 因此, 其软件研发是多人团队共同完成的结果和集体智慧的结晶。尤其是测控软件这样对可靠性要求极其严格的军用软件系统, 需要多人合作耗费大量时间和精力才能完成。对于整个软件生命周期, 更需要严格的质量控制, 保证测控软件的质量满足要求。

  3.2、 实时测控软件存在问题

  整体讲, 测控软件的性质和通用软件不同, 它有自己的特征集合和质量要求。但是, 从软件质量管理的普适性看, 它也应满足软件开发的7个主要特征:功能性、可靠性、易使用性、效率、可维护性、可移植性和质量管理。

  测控软件研发过程中, 涉及到质量问题主要体现在:

  (1) 软件整体的研发质量不够
  测控软件系统的开发大都由软件开发设计人员“自行设计、自行编码、自行测试、自行包维护”――即所谓的“三自一包”状态, 由于无法对软件开发过程进行有效地监督与管理, 使得软件出现故障后, 只能由开发者自行维护, 其他人员难以介入, 以至软件的透明性、通用性、继承性都差[8-10]。

  (2) 软件的测试不够
  专业性的软件测试软件、测试工具缺乏, 这是制约实时测控软件测试水平的一个瓶颈, 而通过充分、科学地测试, 可以确认软件产品是否达到了指标和可靠性要求, 并了解软件的实际水平。

  (3) 对软件维护的重视力度不够
  鉴于软件的自身特点, 任何软件都难以做到尽善尽美, 即使经过严格测试的软件, 也只能说是未发现错误, 而不代表没有错误。美军军用软件质量控制部门统计:软件即使在装备研制过程中经过了严格的工程化测试及测试后仍会由多达15%的缺陷遗留在软件之中未被暴露。因此, 软件运行后期的维护必不可少。而目前测控软件的研发中, 普遍存在的问题是重视前期的开发投入, 而忽视了后期的软件维护, 对人力、物力的投入不够, 导致软件运行存在隐患。

  3.3、 贯彻CMM的几点建议

  针对测控软件研发普遍存在的问题, 加强软件的研发过程管理是提高测控软件质量的重要环节。具体讲, 可通过下述几点改进提高软件质量水平:

  (1) 建立测控软件质量模型。质量模型的重要性在于将对软件质量持有不同观点的问题上统一起来, 使软件质量的定义、管理和评估变得比较容易。质量模型有助于了解和验证质量特性之间的关系, 保证质量保证人员可以在开发过程中和产品完成时, 较早发现错误和缺陷, 并提高发现错误和缺陷的几率, 因而达到提高生产率并降低维护成本[11-13]。
  (2) 对所有软件相关人员 (开发人员、领导人员) 进行基本的软件工程和CMM培训, 同时对专业组进行专业领域知识的培训。软件质量管理的要点是人员质量, 提高软件人员的素质往往比增加人员更重要。因此软专业技术教育主要是软件工程、软件开发方法学、软件工具等知识的教育。软件质量知识教育的主要内容是软件质量方面的概念;软件质量度量的评价模型和方法;软件质量保证和控制。对于测控软件研发人员, 测控数据处理过程、测控基础知识的业务性培训必不可少, 是提高软件人员素质的重要手段。
  (3) 加强软件测试, 建立高水平的软件测试检验队伍。工程实践表明, 测试 (包括分调和联调) 占了软件研制时间45%。测试越充分, 越容易在软件交付的前期暴露问题, 保证软件的质量。一般来说, 软件测试人员的水平不能比设计人员的水平低。由于各方面条件限制, 在测控软件开发过程中, 测试人员一般由软件程序人员兼任, 组成测试小组, 对软件进行测试。软件测试是一项专业性很强的工作, 由于知识结构等原因, 对测试的掌握和理解存在片面性。因此, 必须及早培养和建立专业化的软件测试体系, 提高软件测试人员的能力和水平, 才能对测控软件的质量进行有效地监督和控制。
  (4) 加强文档的管理。软件研发过程中产生的各种文档, 是追溯软件问题的重要工具。然而, 在测控软件研发过程中, 普遍存在着文档更新不及时、专业化程度低、没有统一的文档编制风格等问题, 这给后期的软件维护埋下了隐患。测控软件产生的各种文档, 应该严格按照军用软件编写规范等要求, 遵循软件工程标准文档模式进行编制。
  (5) 在软件开发过程中坚持贯彻“三化”设计。提高测控软件质量和可靠性的一项重要措施就是开展软件的标准化、系列化、模块化设计, 提高软件模块的重复使用率。对于一个新开发的软件系统来讲, 重复使用占用的比例越大, 其软件的可靠程度越高, 这就必须用软件工程的方法开展软件标准化、系列化、模块化设计。在软件开发的各个阶段不仅要严格执行标准、规范, 而且在产品的鉴定及定型时, 要象考核硬件的标准化系数那样, 把软件的标准化系数作为一项指标进行考核, 有效地提高软件的“三化”水平。

  4、 结论

  CMM划分了18个关键过程域, 52个目标, 300多个关键实践。基于CMM的过程改善投资力度大、评估周期长、管理程序复杂、事务较多, 作为军队测控工程软件研制单位来说, 基本无法直接面对如此复杂、费用昂贵的评估。因此, 前期应用主要针对大型软件公司, 并不太适合较小的软件开发团体施行。但是作为一种先进的软件质量控制体系, 测控软件研发完全可以借鉴CMM的思想, 通过裁减条目, 优化设计, 结合自身软件研发的人员、经费、时间等客观实际, 以质量体系的审核、考评为支撑, 适度引入CMM过程管理的思想, 加强软件过程管理的专业性和科学性。和CMM等级相对应, 找到自身软件开发过程中存在的薄弱环节, 努力向高等级靠拢, 持续改进和提高测控软件的研发质量。

  参考文献:

  [1]傅铅生.CMM对软件工程中的过程管理和改进作用研究[J].测控技术, 2005, 24 (1) :1-5.
  [2]严芬, 殷新春.ISO9001与CMM的比较研究[J].扬州大学学报:自然科学版, 2001, 4 (4) :67-69.
  [3]翟丽丽, 朱丹, 王鹏宇.实时测控软件质量管理[J].测控技术, 2012, 31 (增刊) :296-303.
  [4]王哲.军用软件质量的风险管理及应对措施[J].中国质量, 2010 (8) :17.
  [5]马常楼.软件研制的过程质量管理[J].计算机与网络创新, 2009 (16) :34-36.
  [6]朱丹, 李连登, 童艳.外测实时数据融合算法应用研究[J].测控技术, 2014, 33 (3) :56-58.
  [7]朱少民.软件质量保证和管理[M].北京:清华大学出版社, 2007.
  [8]王建强, 张鼎周, 杨欣.指挥信息系统软件开发生命周期测试策略[J].指挥信息系统与技术, 2014 (3) :19-21.
  [9]徐巍, 谭德荣.测控系统软件质量模型及评价[J].计算机测量与控制, 2005, 13 (8) :858-861.
  [10]王本胜, 王涛, 张优先.指挥信息系统军事需求分析的难点与对策[J].指挥信息系统与技术, 2011 (2) :8-9.
  [11]邱海华.军用软件质量控制的措施和方法[J].舰船电子工程, 2013, 33 (6) :25-28.
  [12]毕学军, 肖庆, 郝娜.军用软件开发过程的质量管理体系研究[J].电脑知识与技术, 2007 (2) :265-266.
  [13]林征.基于软件过程的质量管理[J].电脑知识与技术, 2007 (8) :471-472.

原文出处:[1]辛健.基于CMM的测控软件质量控制研究[J].仪表技术,2018(09):42-45.
相关内容推荐
相关标签:
返回:软件工程论文