面向方面模块化设计模式的定量研究
引言
设计模式为软件开发中的常见问题提供了灵活的解决方案。自包含23种四人组(Gang-of-Four,GoF)模式的首个软件模式目录引入以来,设计模式在实际软件开发中迅速被认可为重要且实用的工具。然而,许多设计模式涉及横切关注点,而面向对象(OO)抽象往往无法对这些横切关注点进行模块化,从而影响了系统的可重用性和可维护性。因此,验证面向方面的方法是否能支持相对于设计模式更好地模块化横切关注点变得尤为重要。
此前,Hannemann和Kiczales进行了一项系统研究,对比了Java和AspectJ对GoF模式的实现。他们发现AspectJ实现提高了大多数模式的模块化程度,但该研究基于一些软件工程中不太知名的属性,且未研究两种实现的可扩展性,同时缺乏实证数据。
本文对Java和AspectJ实现的23种GoF模式进行了定量研究,使用了严格的软件属性作为评估标准,如关注点分离、耦合、内聚和规模等。研究发现,大多数面向方面的解决方案改善了与模式相关的关注点分离,但只有四种面向方面的实现表现出显著的重用性。
研究背景
- 设计模式的重要性 :设计模式描述了经过验证的设计问题解决方案,旨在确保可重用和可维护的软件。模式为参与者分配角色,定义了参与者在模式上下文中的功能。
- 横切关注点问题 :许多设计模式在模式角色和参与者类之间的关系中涉及横切关注点。模式角色的实现通常会横切软件系统中的多个类,而OO抽象难以隔离这些特定于模式的关注点,导致程序模块化程度较差。
超级会员免费看
订阅专栏 解锁全文
4376

被折叠的 条评论
为什么被折叠?



