论文部分内容阅读
性能是软件系统重要的质量属性之一,是应用程序成功的一个重要因素。在用户看来,有些系统有时性能比功能更加重要。
以前在软件工程中都是先实现正确的功能,然后再调节性能。甚至有时直到软件集成测试出成品时才考虑出现的性能问题。然而,在选定体系结构和设计方案之后,再想通过调整来获得适当的性能已经为时已晚。实际上,重大的性能问题大多都是由于基本体系结构或设计因素造成的。软件性能工程认为不需要拥有执行代码就可以通过研究软件体系结构来估算性能,提前发现性能问题。这样可以在发现无法满足性能目标的情况时,采取更简单和经济的方式来解决问题。
面向方面技术很好的解决了横切关注点的模块化问题。并且随着面向方面编程技术的日渐成熟,面向方面思想已不再局限于编程层次,而是开始影响到软件开发的各个阶段,形成了面向方面软件开发技术。面向方面建模用一致的方法来描述、构造、记录和可视化面向方面设计思想,是实现面向方面软件开发的有效手段。分布式实时系统的实时特性可以利用面向方面软件设计方法来建模,把时间方面细分为确定的时间子方面、不确定的时间子方面和模糊时间子方面,并且每个不同形式化语言表示的子方面模型能够通过转化为时间自动机织入系统,实现系统的实时特性。
性能是横切分布式实时系统的关注点,面向方面技术可以将性能关注点模块化,为性能分析提供优越的实现条件。本文首先介绍了面向方面、分布式实时系统以及UML等技术,接着提出一个面向方面的性能工程框架性能工程,通过框架来构造出一个面向方面的性能场景图(PSC),专门用于描述系统的性能参数。它还描述了性能场景的动态执行过程,并且用BNF描述了性能场景中的分层细化的性能参数和系统的软硬件资源,这样做便得到了不同精度的性能估算值。然后,将性能场景图转换为面向方面的分层队列网(AO-LQN)模型。该模型通过合并多个并发的性能场景分析软件系统在多工作量负载环境下的性能问题。
文章分析了一个分布式Web应用的实例及其性能瓶颈所在,结果表明该框架是可行有效的。