论文部分内容阅读
在日益复杂的软件开发过程中,性能是衡量软件系统质量的一个重要指标。分布式实时软件是当今最复杂的一类软件,性能对其来说尤为重要。以往的软件性能分析工作一般置于软件开发后期,但实际上,重大的性能问题大多是由于基本体系结构或设计因素造成的。所以,“以后修正”的方式往往难以弥补这种代价。软件性能工程(SPE)认为不需要拥有执行代码就可以通过研究软件体系结构来估算性能,提前发现性能问题。 性能是横切整个分布式实时软件的关注点,面向对象技术不能很好地解决性能关注点的模块化问题。面向方面技术的出现填补了这个缺陷。用面向方面技术可以将性能关注点模块化,为性能建模,尤其为性能测量提供了优越的实现条件。同时,随着面向方面软件开发的成熟与普及,基于面向方面开发的软件的性能成为软件性能工程关注的新焦点。方面比对象具有更高层次的抽象和模块化,模块化程度的提高往往导致性能的降低。因此,面向方面技术带来的性能问题也必须重视,尤其对于分布式实时软件。 面向方面的性能工程框架(AOPEF)综合考虑了面向方面技术的两面性。这个框架针对面向方面软件进行性能建模和性能测量,既关注方面元素的加入对系统性能的影响,又关注如何运用方面元素构造一个高效、精确、易于装卸和最低限度影响软件结构和行为的性能探测器。 在性能建模阶段,面向方面的性能工程框架构造一个专门用于描述性能参数的面向方面的性能场景图(PSC)。它不仅描述了性能场景的动态执行过程,而且用BNF描述了性能场景中的分层细化的性能参数和系统的软硬件资源,这样可以得到不同精度的性能估算值。然后,将性能场景图转换为面向方面的分层队列网(AO-LQN)模型。该模型通过合并多个并发的性能场景分析软件系统在多工作量负载环境下的性能问题。通过引入UCM(Use Case Maps)还可以分析软件的瓶颈和优先级倒置等问题。通过输入基本参数,运行该模型的解释器(LQNS)可以得到各种性能指标值。通过开销矩阵,可以计算更精确的性能值。 在性能测量阶段,借助面向方面的性能建模过程,利用面向方面技术将性能探测器巧妙地嵌入到待测量的软件中。这是比传统软件性能工程优越的地方。 举一个分布式Web应用例子,具体介绍了面向方面性能工程框架里的性能建