复杂软件系统的软件网络结点缺陷与维护的问题和策略论文
摘要:软件的质量直接受软件体系结构的好坏影响,很长时间以来,人们一直非常重视研究软件的体系结构,随着互联网技术的发展,软件可以实现越来越强大的功能,同时复杂度也是变得越来越高,软件的体系结构有了不同粒度、多层次的方式。基于有向软件网络的图论的概念发展出来了复杂软件中的软件网络结构的思想,软件网络的各个特性应被应用统计学的方法来研究,如:结构稳定、几何特质、几何性质学等,可以发现复杂的软件体系在一定的程度上被网络节点影响着,为了促进软件的体系完善与结构的优化,我们应当认真地分析结点的影响。
关键词: 软件系统;节点;网络;缺陷
Abstract: the quality of the software directly by the software system structure is good or bad influence, it is a long time, people have attached great importance to the study of software architecture, with the development of Internet technology, the software can realize more and more powerful, but the complexity is also becoming more and more high, the system structure of the software with different granularity, multi-level the way. A graph theory to software network concept developed software structure of complex networks in the software based on the idea of software, each characteristic of network method should be the application of statistics to study, such as: stable structure, geometric characteristics, geometric properties of science, can be found in software system complex was network node affects in a certain extent, in order to promote the optimization and improvement of the system and structure of the software, we should seriously analyze node effect.
Key words: software maintenance system; node; network; defects
在软件开发的实际过程当中潜在的软降缺陷在一个复杂的软件系统中占有很大的比例,而且它只会导致比较少的软件制作时的失败,通过观察发现的占有绝大多数的软件的失败一般是由非常少部分或者可以说是极少的部分的而且是潜在性的缺陷导致的。当把软件中的大部分的缺陷清除掉之后,只会微不足道的影响软件的可靠性。但是当清除了那些“大规模”而且只占极少比例的缺陷的时候,才会显著地增强软件的可靠性。
1大多数的缺陷往往包含在少数的模块中
在一些测试软件中,我们发现大多数的缺陷,往往存在于少数的模块当中。在运行的软件中,往往只有极少数模块会包含绝大多数的缺陷。当然,在这个现象当中我们以前所说的模块的复杂性并不能准确地解释,其次我们也不能用模块的规模加以分析。通常来讲模块存在的缺陷密度会和我们声称的模块的规模有关,而且通常意义上模块的缺陷倾向性和模块的错误倾向性可以很好地被软件的复杂性度量锁预测的说法存在一定的证据上的支持。最后,我们还可以断定一个结论:我们发现的存在于测试软件中缺陷,要比已经使用一年的软件中所发现的要多得多。
为了极大地减少查找软件缺陷和软件测试的成本,一些对软件的实际运行影响有着概率很小或者可以说是几乎没有的缺陷,我们可以在找到软件的缺陷倾向性模块的情况下忽略掉,当然,这要根据软件产品的那一套质量成本理论来判断。这样,我们不仅会明显的降低软件的质量同时又可以在一定的程度上节约软件的开发成本。这项研究在开发软件的商业角度上具有比较好的成本和质量平衡的指导意义。
2软件的容错基础是软件的结构
软件的质量在很深的程度上是受软件的结构影响的。正所谓软件的容错基础是软件的结构。其实事实上,软件的开发和研究人员一直在追求的“低耦合,高内聚”的特性只是在软件的开发实践中的一个美丽的愿望而已,因为我们是无法在根本上避免软件开发工程中出现的高耦合的情况的。因此,软件格斗设计的合理性,对软件的稳定性和可靠性以及软件的后期维护等质量上所存在的特性都有着非常重要的影响。
3抽取八软件系统构成成分中某种粒度上的单位部分为结点,是研究软件网络的常用方法
研究软件网络的常用方法,是抽取软件系统构成成分中某种粒度上的单位成分(类、包、模块或组件等)为结点,将这些单位成分互相之间的依赖关系(继承、调用、消息等)构成软件的网络。就目前而言,通过长时间的研究,我们可以认为,软件中存在的变更、缺陷等的传播问题是由于软件是一种复杂网络的结构,所以其有着比较小的传播代价。因为缺陷、涟漪效应、变更等在一定的程度上都是很容易就可以扩散到别的网络结点上的。从仿真的手段得到的证明和理论上逻辑分析来看,上面我们所说的有关软件变更或缺陷问题传播的代价的结论是有着一定的说服力的。在大量的有关软件系统中包含的网络结构的研究下针对这样的矛盾,我们引发上述情况的一些问题的所在:就目前而言,我们所研究的软件缺陷、变更是以复杂复杂的网络理论作为比较强的指导的。一般大多都是软件的类、模块、包等构成软件的网络结点。一般情况下结点间的连通性可以通过这些单元之间的依赖关系所构成的网络结点的边反映的。
4软件网络
在网络形式表述软件结构时,通常会在不同粒度上抽选网络,例如包、类、方法等。软件网络就是由不同的粒度简化成的结点和他们的相互依赖关系简化成的边所构成的软件结构。Valverde等人在2002年,以软件工程中的类图为研究对象对软件网络进行了最早的研究,研究中软件系统用无向网络表示,类用网络中的结点表示,边是类之间的继承和关联关系。对JDK的统计特性进行了系统的分析。分析结果显示:“小世界”和“无尺度”两个特性在两个软件系统的结构中得到了非常明显的展现。
“小世界”特性:网络中连接任何一两个节点的到最短路径的边的数目为两节点间的距离,则所有节点对之间距离的平均值为网络的平均最短路径长度,其用于表述网络节点间的分离程度。在研究中发现,“小世界”特性为, 大部分规模大的真实系统被抽象成为网络后,它的平均最短路径长度比想象的要小的很多现象。
“无尺度”特性:与该节点连接的相邻节点的数目通常被定义为节点的度,而网络的平均度即节点的度的平均值。理论上其他全局特征参数的量化数值都可以通过度分布计算得出,一个重要的发现在复杂网络研究中被指出,大部分的规模较大的真实系统向对应的网络的度分布都服从幂律分布。这就是“无尺度”特性,然而Myers的研究表明,单纯的使用无向网络模型可能会推算出错误的软件工程原则,所以边的方向软件网络中也是有意义的。
5软件网络的结点缺陷不能通过较小的代价传递给其他结点
软件网络是一个比较复杂的网络,那么为什么它的结点缺陷并不能通过比较小的代价来传递到其所连通的其他结点中呢?文就这个现象做了研究,对其部分原因做出了解答,并且分析和证实出了不同之间的结点对软件变更和缺陷等传播问题的影响。本文为了研究这些问题构建了一个软件网络,构建这个软件网络时,同时考虑了结点散播信息的能力、结点收集信息的能力和不同方法层之间相互依赖的关系等问题。通过之前构建的这个软件网络,我们可以勾画出一个软件网络各个结点的测量影响值的矩阵。在这个矩阵里面储存了该软件网络的加权依赖关系,所以我们可以通过研究这个矩阵来得出软件网络的加权网络特性。得出来的这些关系数据能够很精确的表现出真正的软件网络的很多特性。
6WSNNI的统计特性及相应的结点影响分析
加权网络在很多方面是和复杂网络是相同的。我们下面要讲一下WSNNI模型下某些加权网络的特性,并由这些特性来分析结点在加权网路中的影响。对于这些影响,我们给出了四个假设。在结点强度的问题上,通过一些数据和统计,我们可以很明显的看出,结点强度分布就是结点在结点加权网络中的相互之间影响的分布。通常,小的结点要和大的结点相互连接。大多数结点强度较小,少部分结点强度较大。最早存在的结点能够连接很多的结点,而后面的结点连接的就显得少了很多。关于这方面,很多文献给予了详细表述,这里就不赘述了。在有关加权路径和平均最短加权路径的问题上,在WSNNI的测试中,平均路径值对结点影响也比较大。经过测试发现,当平均路径值小时,结点之间的影响就大。而且平均最短路径反映的是软件的耦合强度,同时软件的耦合强度又会直接影响变更的难度和软件维护的问题。平均最短路径越大,耦合强度就会越弱,结点间的传播代价就会越大,反之亦然。在这里存在的无权网络,就是权值为一的加权网络。无权网络权值要大于加权网络。无权网络最短路径比加权网络小,所以其反映的网络结点影响要远远大于加权网络。
在研究网络结点时,我们发现结点中存在少数结点,它的入点和出点强度都大于其他结点。而与它们相邻的结点的影响测度值都很大。我们经过很多测试之后发现一个问题,即许多测试前发现的错误在测试中并不能体现出来,同时在测试中发现的很多错误在实际运行中也无法发祥。据此,我们通过研究结点传播的关系发现,只有关键结点的错误才能很好地传播下去,而非关键结点的错误很可能在传播过程中消失。
7网络软件正向着高复杂度、大规模化的方向发展
随着科学技术的不断进步,摩尔定律推导的计算机技术的发展,以及其所带动的计算机软件网络的进步,生活中各个领域都离不开软件的应用。网络软件已经向着高复杂度、大规模化的方向发展着,所以应用软件的质量在很大的程度上越来越受到软件的体系结构所带来的影响。网络结点是我们对软件系统类的抽象,我们对结点分布以及结点强度和结点影响进行了全面完整的分析,通过对存在于网络图中的特定属性的一些分析,重点研究网络上结点与结点之间影响和密切程度深入的分析,并在最后介绍了一些关于关键结点的内容。在未来软件网络的工作中,对于软件结构优化和可靠性的分析的问题我们必须还要进行进一步的探讨与研究。
8结语
软件工程从最初的诞生开始,就一直在致力于开发具有可用性、正确性以及开销合宜的具有较高质量的网络软件产品,经过40多年的奋斗,我们已经取得了让人瞩目的成绩,但是,现在的网络计算机环境,在互联网的基础之上,规模不断的扩大,组成的元素越来越复杂多样,部署配置和持续演化的网络下的软件系统,随着用户的不断地扩展和应用领域的不断地扩大,其复杂度和规模正在以超越人类大脑处理速度的几何倍数的速度成长,使得软件网络工程不得不去面对一个又一个的挑战,如果我们没有对复杂系统进行的科学的理解和认识,一些很小的故障和缺陷就能让它产生几乎全局的负面影响,有时候甚至会是灾难性的。多年以来,复杂网络理论和网络思维为我们分析和刻画提供了非常有力的工具,同时也让软件工程和复杂性的科学的交叉学科奠定了基础。
规模可以改变一切,我们要用新的视角新的思想来应对以后遇到的种种具有挑战性的问题,尤其是将复杂的网络理论应用到软件网络的领域,为我们寻找软件的本质探索出了新的方法和新的思路。
参考文献:
[1] 张婷.浅析复杂软件的网络结点影响[J].计算机光盘软件与应用,2014(10).
[2] 汪北阳,吕金虎.复杂软件系统的软件网络结点影响分析[J].软件学报,2013(12).
[3] 宋化境.基于OSS的自动化测试系统的研究与开发计算机科学与技术[D].东南大学,2011.
【复杂软件系统的软件网络结点缺陷与维护的问题和策略论文】相关文章:
谈计算机软件系统维护与维修手段论文02-27
浅析计算机应用软件的开发和维护论文03-14
常见软件故障计算机维护论文02-25
探讨计算机应用软件的开发和维护方案论文02-12
中外主流聊天软件营销策略对比研究论文02-24
软件无线电技术雷达系统的应用论文03-15
软件盗版问题的经济学分析经济论文02-23
系统软件开发过程中软件工程技术的应用论文03-17
- 相关推荐