Slicing functional aspects out of legacy applications

09/24/2021
by   Barthélémy Dagenais, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/15/2020

Introducing Artificial Intelligence Agents to the Empirical Measurement of Design Properties for Aspect Oriented Software Development

The proponents of Aspect Oriented Software Development (AOSD) methodolog...
research
05/03/2021

Synchronised Visualisation of Software Process and Product Artefacts: Concept, Design and Prototype Implementation

Context: Most prior software visualisation (SV) research has focused pri...
research
12/01/2020

Evaluation of Reusability in Aspect Oriented Software using Inheritance Metrics

Aspect-Oriented Software Development (AOSD) is a promising methodology f...
research
11/23/2019

Seamless Object-Oriented Requirements

Design by Contract enables seamless software development by unifying sof...
research
01/17/2022

Tailoring Stakeholder Interests to Task-Oriented Functional Requirements

Without a specific functional context, non-functional requirements can o...
research
07/09/2017

Refinable Function : An Object-oriented Approach to Procedure Modularity

Modularity is the fundamental aspect of modern software engineering, how...
research
06/13/2012

New Techniques for Algorithm Portfolio Design

We present and evaluate new techniques for designing algorithm portfolio...

Please sign up or login with your details

Forgot password? Click here to reset