复杂软件缺陷分析与质量控制

发表于:2010-5-07 14:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:jiangxinyu    来源:51Testing软件测试网采编

  三、软件缺陷混沌行为分析与质量控制

  假定在操作过程开始前,面包师先在面团上滴一滴红着色剂,那么,在揉面团过程中液滴同时被拉长、变薄,再折叠起来。随着面包师的操作不断重复进行,液滴被不断伸缩和折叠。经过足够长时间反复操作,就会发现面团中很多红色和白色交替出现的层次,原来相邻的两个着色剂微粒越来越相互分离,原来不相邻的两个微粒可能越来越靠近。据估计,这样反复操作只需进行20次,最初的着色剂滴长度就会被拉长到100万倍以上,其厚度则减小到分子水平。这是着色剂与面粉已经充分混合均匀了,在迭代至千次后所得结果即系统出现混沌。

  就像面包师揉面团一样,软件缺陷也伴随这软件分叉的过程而不断分叉。软件功能细分到什么程度,软件缺陷也扩散到什么程度,并与软件融为一体。

  软件缺陷生长是一个受限生长和适应的过程。软件缺陷的多少,软件分叉数目的多少,取决于系统开发过程中的外界压力或条件限制,也就是外界质量控制因素的干扰。

  贝诺勒变换

  混沌控制模型

  混沌系统的一个特点是对初值的敏感性。对于软件缺陷扩散的混沌特性来说,如果能有效控制其初值,或对初始态施加“微扰”,那么就有可能将软件失效的混沌过程变成为非混沌过程。

  混沌控制大致归纳为两大类:

  第一类是基于在混沌奇怪吸引子闭包内存在无穷多不稳定的周期轨道,控制的目标是根据人们的意愿在这些轨道中选择一条满足要求的周期轨道并进行有效的稳定控制,该控制的特点是并不产生新的周期轨道而只是将轨道固定。

  第二类控制则没有具体的控制目标,也不关心被控系统的终态是否为周期运动,只是通过合适的策略、方法及途径,有效抑制混沌行为,使Lyapunov指数下降进而消除混沌。

  软件质量的宏观控制架构

  可以采用第二类混沌控制方法, 设计一个以“初始状态”为出发点的控制模型。

  由于这个模型主要应用了混沌思想为基础,即对初值的敏感性,所以,我们称其为软件质量混沌控制模型。

  为了实现对软件质量的管理和控制,将整个过程管理和控制分为两个大部分,一个软件内部过程管理与控制,一个是软件外部过程监理。

  1、软件内部过程管理与控制

  软件内部过程管理与控制分为两个部分,一是软件内部过程管理,它的主要构架和应用是一些宏观的过程管理方法和应该注意的问题,比如,分形公司管理,竞技软件工程方法,静室软件工程,耗散结构管理,印象管理,孤立波质量管理,李比希最小定律控制;二是软件质量控制技术方法,包括,加速混沌,经验列表,定点清除,软件测试等具体技术。

  2、软件外部过程监理

  软件过程监理体系是由项目业主、开发商、监理单位直接参加的“三方”管理体制。这种管理体制是目前工程项目建设的国际惯例,是世界上绝大多数国家公认的工程项目建设的重要原则。它将参加工程项目建设的三方紧密地联系起来,形成既有利于相互协调又有利于相互约束的最稳定的三角组织系统,为实现工程项目总目标奠定了组织基础。

  3、混沌过程控制系统

  加速混沌方法

  “面包师揉面团”的例子可以用它来提高软件质量。比如一个好的技术方法,也可以看成是放入面团中一滴蓝色。我们利用有限扩散凝聚迭代的方法,经过“若干次”的迭代后,这种“方法”和“思想”便完全融于一个系统内。而在这个迭代过程中,初值被迭代消耗殆尽,换句话说,好的方法已融于软件之中。

  定点清除方法

  一个软件缺陷,在经过“无数次”设计细分后,这个缺陷很可能演变成数量惊人的软件“暇疵”分布或散布于整个软件系统中。 “清除”缺陷最好的办法是在问题出现“最开始”时就将其清除掉。由于设计初期涉及的内容或方面比较少,缺陷也比较容易发现。

  我们用“定点清除”或“精确打击”来形容对设计初期某一个问题的“摘除”,其意思有两个,一自然是要将问题铲除掉;二是指范围比较小,容易准确地定位;三是必须是在开始,为的是防患于未然。

  四、软件缺陷产生的复杂性分析

  耗散结构

  耗散结构(Dissipative Structure)是由比利时布鲁塞尔学派的科学家伊里亚·普里高津(Ilya Prigogine)于1967年在一次理论物理和生物学国际会议上发表的论文《结构、耗散和生命》中针对热力学和统计物理学从平衡态到近平衡态再到远离平衡态发展所作的研究而提出的。由于这一成就,普里戈津获1977年诺贝尔化学奖。

  软件系统的耗散性与复杂性

  一个软件系统在开发的过程中,只有不断从外界获得能量,软件才能不断的成熟,最后达到用户需求的目标。一个软件系统只有远离用户的要求,它才能有被继续开发的必要。如果其功能和性能基本达到用户的要求,即离目标很近,那么,开发活动可能会减慢或停止。

  一个软件系统会逐步由低级向高级进化,而不会出现由较高级别向较低级别退化。由于软件的进化,使得软件或其过程更加组织化和有序化,从而使软件或过程获得的适应性得到稳定,并且在此基础上继续发展。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号