Assessing the Effect of Aspect Refactoring on Multi-Agent Applications: A Dynamic Analysis

Assessing the Effect of Aspect Refactoring on Multi-Agent Applications: A Dynamic Analysis

Mohamed Sedik Chebout (Department of Mathematics and Computer Science, University of Ouargla, Ouargla, Algeria), Farid Mokhati (Department of Mathematics and Computer Science, University of Oum el Bouaghi, Oum el Bouaghi, Algeria) and Mourad Badri (Department of Mathematics and Computer Science, University of Quebec, Trois-Rivières, Canada)
Copyright: © 2015 |Pages: 22
DOI: 10.4018/IJATS.2015070103


Multi Agent Systems (MAS) are increasingly gaining importance as a powerful paradigm to designing and implementing distributed applications. However, existing multi-agent applications are developed without considering the separation of non-functional concerns from the functional ones. This makes the implementation, comprehension and maintenance of multi-agent applications hard tasks. Aspect-Oriented Refactoring (AOR) is a promising technique for improving modularity and reducing complexity of existing object oriented software systems by encapsulating crosscutting concerns. The authors present, in this paper, a new dynamic approach for investigating empirically the effect of AOR on MAS applications. They focus, particularly, on the effect of AOR on agent behavior in terms of communication. The proposed approach is supported by a multi-agent profiling tool working on AgentFactory platform.
Article Preview

1. Introduction

Aspect-Oriented Programming (AOP) is the most popular paradigm that provides concern oriented decomposition (Kiczales et al., 1997). It provides, also, explicit constructs to develop software systems whose crosscutting concerns are better modularized because they are no longer tangled together and they are clearly separated from the principal decomposition.

Separating crosscutting concerns in existing code requires two main phases: aspect mining (identification of aspect candidates in code) and refactoring (semantic-preserving transformation to migrate the aspect candidate code to aspect-oriented code). Refactoring (Fowler, 1999) refers to the restructuring of software. It can be defined as a change made to software in order to improve its structure (without changing its external behavior). The main aim of refactoring transformations is basically to improve software comprehension and to facilitate software maintenance by reversing the effect of software ageing. Studies have been conducted (on both qualitative and quantitative levels) in order to evaluate the benefits and drawbacks of using AOP to modularize crosscutting concerns (Hannemann & Kiczales, 2002; Garcia et al., 2005b; Greenwood et al., 2007).

Static analysis concerns techniques for obtaining information about the possible states that a program passes through during execution (Reps et al., 2004). In other words, Static program analysis is the art of reasoning about the behavior of computer programs without actually running them (Møller & Schwartzbach, 2015). However, dynamic analysis (e.g. software profiling) allows supporting a performance analysis process that consists in collecting, processing and analyzing run-time data. The most common use of profiling information is (Dufour et al., 2004):

  • To support program optimization;

  • To obtain more accurate results than a static analysis for concrete executions;

  • To obtain temporal information nature;

  • To obtain information on the frequency of certain events: JIT (Just in Time) optimization, performance debugging. Etc.;

  • To support resources usage Analysis: memory usage, CPU, etc.

In the literature, the most recent works dealing with aspect-oriented assessment use static code metrics. These latter may be coupling metrics (Burrows et al., 2010), code understandability metrics (Thongmak & Muenchaisri, 2011), software modularity metrics (Przybylek, 2010; Przybylek, 2011). In contrast, few studies focused on dynamic analysis. We cite among others (Soria et al., 2007; Suganthi & Nadarajan, 2013). Consequently, the dynamic analysis field should be more explored, especially, with the advent of aspect-oriented programming.

In MAS context, dynamic analysis based performance assessment suffers from deficiencies in terms of agent specific performance measurement. The common factor between traditional profilers (Erik & Jim, 2004; Dufour et al., 2004; Haupt & Mezini, 2004) is, generally, performance program analysis such as: CPU usage rate, memory footprint, program input/output, etc. The specific performances inherent to MAS like communications issues (communication cost, communication overloading and impact of received message on agent behavior) are not taken into account. In this paper, we present how these concepts can be mapped to MAS.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 9: 2 Issues (2017): 1 Released, 1 Forthcoming
Volume 8: 1 Issue (2016)
Volume 7: 3 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing