Aspect-oriented software development builds upon object-oriented development by offering additional abstraction boundaries that help us separate different types of requirements into so-called aspects. Given a legacy OO application, it pays to identify existing aspects to help understand the structure of the application and potentially to extract those aspects into separate software modules that can be maintained and reused individually. We present an approach to extract functional aspects using program slicing. We first characterize what we mean by functional aspect, and explore the extent to which program slicing techniques could improve over existing aspect mining and feature location methods for such aspects. We then describe the results of applying our approach to two medium-sized open source programs. Our preliminary results show that program slicing can yield well-defined functional aspects when the appropriate slicing criteria are used. Finally, we explore the effect of design quality on the candidate functional aspects.
翻译:面向外观的软件开发以面向目标的发展为基础,通过提供额外的抽象界限,帮助我们将不同类型的要求分为所谓的方面。根据遗留的 OO 应用程序,它可以确定现有的方面,以帮助理解应用程序的结构,并有可能将这些方面分离成可以单独维护和再利用的单独的软件模块。我们提出了一个利用程序切片提取功能方面的方法。我们首先用功能方面来描述我们指的是什么,并探讨方案切片技术能够在多大程度上改进现有方面采矿和这些方面的特征定位方法。然后我们描述对两个中型开放源程序应用方法的结果。我们的初步结果显示,在使用适当的切片标准时,程序切片可产生明确界定的功能方面。最后,我们探讨设计质量对候选功能方面的影响。