`
softstone
  • 浏览: 490491 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

实时控制软件的质量控制(2)

阅读更多

实时控制软件的质量控制(2)

陈志才 (转载自计算机世界网)
软件测试

  从软件生存周期看,软件测试是卡住软件质量,尤其是卡住软件可靠性的最后一道关口。但软件测试并不仅仅局限于这个阶段,而应贯穿于软件开发的全过程(见图4)。应解决这样一个认识问题——用于实时控制系统一类的复杂软件,自认为没有错误的想法是不切合实际的。因此,测试的主要目的是:

  1) 对软件的质量或可接受性作出判断;

  2) 发现问题。

  从图4看出,会产生错误的阶段是在需求说明、设计和编程过程中。这些错误若不排除,均会遗传到测试阶段,甚至会遗传到使用阶段。利用测试用例测出问题进行故障分类、故障隔离和故障消除等步骤,直到获得满意的测试结果为止。

  测试用例的编写格式和内容如图5所示。测试的设计。难就难在试图利用这组测试用例能找出软件的全部问题。格式中含有测试管理信息——测试用例标识和执行史。测试用例标识是按一定规律统一为每个测试例赋予的代号,便于需求追踪。执行史中有测试日期、测试结果(给出结论:通过/失败)、版本号和主管的测试者签字,这些都是有保存价值的资料。测试用例是需要精心设计、编写、评审、使用、管理和保存的。

  软件测试要求在测试过程中,采集软件可靠性数据,并利用软件可靠性模型进行可靠性评估。分析其是否达到了预期的可靠性要求。并据此作出该软件能否放行的决断。若不满足要求,需继续进行测试,直到满足要求为止。可见这是一项十分花精力的活动。

软件验证与确认

  软件验证(Verification)和确认(Validation),简称为V&V 或V2。验证和确认的区别在于:验证关心的是确保软件模块或功能内在的正确性;确认则表明要与规定的需求进行比较是否满足要求,它所关心的是该软件产品的价值。

  软件验证与确认是贯穿于软件开发过程中十分细致的软件检验活动。每个开发阶段的结果可认为是下一开发阶段的一个规格文件,但要进入下一阶段之前必须对该结果作出确认。验证和确认的主要方法有:代码走查、审查、测试和正确性证明等。代码走查就是对软件文档进行书面检查。它通过人工模拟执行源程序的过程,检查软件设计的正确性。人工模拟也像计算机执行那样,可以仔细推敲、校验和核实每一步的执行结果,进而确定其执行逻辑、控制模型、算法和使用参数与数据的正确性。

  审查是软件验证和确认中的一个主要方法,可弥补其他方法的一些不足之处。它是一种用形式的、有效的和经济的方法查找设计和编程中的错误。审查的主要目的是1)找出软件中的缺陷;2)核实是否符合需求;3)早期生产评价;4)过程评价等。由第三方进行软件评测工作是十分重要的,其评测工具软件对软件进行静态的和动态的评测,能发现软件设计的缺陷、瓶颈和多余物等。值得指出的是,用于软件测试的各种方法、技术、工具和措施等,对提高软件的可靠性都是必要的,但不是充分的。这就表明,其中任何一个手段,均不能绝对保障软件的可靠性,但只要能发现软件中任何一个微小的错误,就起到了它的作用。

软件评审

  从某种意义上说,软件中的多数错误是人为的。软件评审是软件生产过程中过滤软件错误的一个“滤波器”。软件评审涉及评审的组织机构、管理、准则、类别、内容、文件和要求等。

  一般要求在软件研制阶段的里程碑点进行软件评审。评审的主要类别有:软件定义评审、软件需求评审、概要设计评审、详细设计评审、软件实现评审和软件验收评审等。

  评审的原则:

  ·某阶段未通过阶段评审不得进入下一个软件研制阶段;
  ·评审时对事不对人,评审的是产品,而不是评审生产者;
  ·评审就要挑刺,找问题、缺陷和隐患;
  ·评审组的人员面越广越好;
  ·评审组不作无休止的争论和辩驳,将争论点记录下来,供以后甄别;
  ·评审只是提出问题,没有解决问题的任务;
  ·使用“评审检查单”以提高评审的效果;

  评审的作用:

  ·技术把关,避免软件人员的想当然;
  ·概念沟通,吸收用户和总体人员参加,审查软件人员理解的正确性;
  ·集思广益,吸收有关的分系统人员参加,从不同侧面确认软件的协调性;
  ·总结汇报,使实时控制系统总指挥、总设计师了解软件生产的进度、问题和要求,作出新的部署。

  评审很容易走过场、走形式。评审效果的好坏,与当事人(软件人员)密切相关。基于有问题才需要评审,不能轻信自己的软件,导致对评审产生对立情绪。对评审出的问题进行整理、分类和汇总,不忽视任何一个细小的疑点。

软件管理

  科学的管理能够出可靠性、出效果、出效益。软件的管理工作不完善、不严格,是引起意外事故的原因之一。软件管理主要包括软件项目管理、软件配置管理、软件可靠性管理和软件质量管理等方面。

  软件项目管理的内容包括软件开发过程管理、软件可靠性度量、风险管理(包括风险分析和估计)、确定项目任务、建立可操作的工程计划等。软件项目管理是软件管理工作的第一层。需要强调的是,它不是一个阶段,也不仅仅是个步骤,而是贯穿于整个软件开发工程中的一个层次。从其管理内容来看,这是一种十分重要的管理工作。其管理的好坏,直接影响产品的质量。这项管理尚处于起步状态,是个薄弱环节。软件配置管理是软件人员和管理人员确定、组织和开展软件修改的手段,目的是在软件修改过程中设法少犯差错来最大限度地提高软件产品的生产率。软件配置管理涉及软件配置项和基线的确定。

  软件配置项可理解为在软件生产的某个阶段应具备的软件文档和保存软件的介质等。软件基线(基准)又称里程碑。软件配置项经软件验证、确认、评审和认定后,形成了软件基线,也就成了该阶段的一个基准。下一个阶段只能在这个基准上进行开发活动。

  软件配置管理要求:

  ·软件修改必须遵循软件更改规范;
  ·未经批准的更改,任何人无权修改;
  ·更改后必须测试、验证和确认;
  ·软件验收,必须对相应的软件进行评审。

  具备评审的条件包括:相对该基线的软件配置项齐全、有测试结果和测试分析报告及软件优化报告。

  文档管理是一项十分艰巨而又琐碎的工作,要求:文档编写必须规范、文实相符、文文相符、描述具有一致性、确切性和简明性、签署完整、职责明确。软件可靠性管理作了一些初步的尝试。在软件生产过程中,设计了软件可靠性数据采集表格。对软件中的需求、模型、设计、编码和定义域等方面的错误均要填表。填写产生该错误的时间(计算机执行的累计时间)、错误性质、出错原因和排除错误的结果等。

主要问题与解决方法

  对实时控制系统软件工程化的重要性的认识尚处于起步阶段,重视程度也不平衡。主要问题:

  (1)部分系统的软件开发由硬件人员承担。硬件、软件、模型设计均由一个组完成,仍是典型的“自编、自导、自演”小作坊的工作方式。

  (2) 还不太习惯于软件工程化、规范化、结构化和模块化的软件生产方法。往往跳过了软件设计阶段,而是先有编码,为了软件检查才补设计。

  (3)缺少配套的软件测试工具。试图利用实时控制系统进行软件的调试、测试、验证、确认和试验工作,这样的软件测试必然是不完整的,也是有局限性的,更是不科学的。

  (4)实时控制系统软件可靠性工程的研究是自发的,未纳入实时控制系统研制计划,影响这项工作的深入开(5)需要解决实时控制系统软件工程化方面的若干模糊认识:

  ·软件就是编程;
  ·没有测试工具照样可以开发出软件;
  ·舍不得在软件可靠性上化成本;
  ·出了问题,才发现软件似乎比硬件更重要。

  (6)实时控制系统软件可靠性指标不好定。原因是软件可靠性的评估涉及模型、方法、工具和条件等问题。当前,要求软件的可靠性为100%,对软件是不公正的,也是过于苛刻的。

建议

  (1) 软件可靠性工程也是一项涉及面很广的系统工程,应加强这项技术的研究力度。尤其要结合具体实时控制系统设置研究课题,使实时控制系统软件的生产过程同时也是软件可靠性工程的实施过程。使自发的可靠性工作成为有计划、有组织和有目标的研究工作。

  (2) 适用于嵌入式计算机的实时软件,例如实时操作系统、Ada语言等,应像美国国防部那样,要强制推行。

  (3)计算机技术发展很快,软件技术及软件可靠性工程技术也发展很快,应对重点实时控制系统的软件人员定期组织培训。

  (4)为了解决软件生产的小作坊问题,可否考虑逐步推行实时控制系统软件人员考核制,作出资格认证。

分享到:
评论

相关推荐

    实时控制软件的质量控制

    实时控制软件的质量控制是确保这类软件在运行时能够准确、稳定和安全的关键环节。软件测试是质量控制的重要组成部分,它不仅限于软件开发的后期阶段,而是应该在整个生命周期中进行。测试的主要目标是评估软件的质量...

    实时控制软件质量

    【实时控制软件质量】是指在软件开发过程中,特别是在嵌入式实时控制软件的生产中,对软件质量进行持续监控和保证的一种策略。实时控制软件通常应用于关键领域,如工业自动化、航空航天、医疗设备等,因此对软件的...

    软件质量控制保障方案.pdf

    2. 项目的质量提高:软件质量控制保障方案可以提高项目的质量,确保软件产品的高质量。 3. 项目的透明度提高:软件质量控制保障方案可以提高项目的透明度,支持其交付高质量的软件产品。 4. 项目的风险降低:软件...

    软件项目质量控制保障方案

    为确保项目的顺利开展和实施,我们分别制定了项目组人员保证方案和软件开发质量保证方案以及项目进度保证方案。 1项目组人员保证方案 为确保项目的顺利开展和实施,项目组的人员配备既有高层次的技术带头人,也有...

    软件质量控制-软件质量概念、质量保证、配置管理

    软件质量控制是软件开发过程中的关键环节,涵盖了软件质量的概念、质量保证以及配置管理等多个方面。软件质量不仅关乎软件产品的功能性和性能,还涉及到软件的可靠性和可维护性等多维度特性。 首先,软件质量的概念...

    软件测试与质量控制

    软件质量控制方法、软件测试原则、软件测试步骤与软件开发个阶段的关系等

    软件项目质量控制和管理规范1.docx

    ### 软件项目质量控制和管理规范 #### 一、引言 软件项目质量控制与管理是一项系统工程,旨在确保软件产品满足预期的功能和性能要求,并能够在预定的时间内达到既定的质量目标。本文档详细介绍了软件项目生命周期...

    软件开发管理与质量控制 doc

    《软件开发管理与质量控制》 软件开发管理与质量控制是确保软件项目成功的关键要素,涉及到项目的组织结构、阶段划分以及各个阶段的目标设定。在软件开发机构中,人员通常分为管理角色和技术角色,两者地位相等,...

    软件质量控制保障方案.docx

    《软件质量控制保障方案》是确保互联网项目成功实施的关键文档,它详细规划了从团队配置、质量管理和进度控制等多个方面确保软件开发质量的过程。以下是对该方案的详细解读: 1. **项目组人员保证方案**:为了确保...

    软件测试与质量控制实验报告(一),《软件测试与质量控制》实验报告(二),软件测试与质量控制实验报告(三),软件测试与质量控

    实验报告(一至五)将逐步深入这些主题,通过实践操作让学习者掌握测试方法和技术,提高软件质量控制能力。每个报告可能涵盖了特定的工具使用、测试场景模拟和问题解决策略,从而全方位提升读者的软件测试技能。

    软件测试及软件质量控制

    在IT行业中,软件测试与软件质量控制是两个至关重要的概念,它们确保了软件产品的可靠性和用户体验。本资料“软件测试及软件质量控制”提供了一套详细的参考资料,旨在帮助专业人士理解和实施有效的测试策略以及质量...

    新能源商用车控制软件质量提升研究.pdf

    新能源商用车控制软件质量提升的研究是当前汽车行业中一个关键议题,特别是在我国新能源汽车市场迅速发展的背景下。新能源汽车,尤其是商用车辆,其控制软件的质量直接影响车辆的性能、安全性以及可靠性。随着电子...

    过程控制软件质量管理

    软件质量管理,过程管理过程的文章学习研究

    软件质量控制(高校课堂ppt)

    《软件质量控制——高校课堂深度解析》 在信息化社会中,软件质量控制是软件开发过程中的关键环节,它关乎到软件产品的稳定性和用户满意度。本资料集“软件质量控制(高校课堂ppt)”包含了多个主题的PPT,旨在全面...

    软件开发管理与质量控制-Read.pdf

    软件质量控制是软件开发管理的重要组成部分,旨在确保软件产品的质量达到用户的要求。 一、软件开发管理的重要性 软件开发管理对软件行业的发展至关重要。随着市场经济的进一步完善及全球经济一体化进程加快,企业...

    软件质量保证方案

    ### 软件质量保证方案的关键知识点 #### 一、软件质量保证(SQA)概览 **软件质量保证(SQA)**是一种确保软件产品及其开发过程满足既定标准的有效方法。它通过以下方式实现这一目标: - **过程与产品审查**:客观...

    高清矩阵混合矩阵控制软件

    高清矩阵混合矩阵控制软件是专为管理视频矩阵设备而设计的专业软件,广泛应用于大屏幕显示系统。这款软件的核心功能在于实现对多种类型矩阵的高效控制,确保在高清视频信号传输和切换过程中的质量和稳定性。 首先,...

Global site tag (gtag.js) - Google Analytics