Analysis and Design of Metrics for Aspect-Oriented Systems
| dc.contributor.author | Kumar, Avadhesh | |
| dc.contributor.supervisor | Kumar, Rajesh | |
| dc.contributor.supervisor | Grover, P. S. | |
| dc.date.accessioned | 2010-11-08T13:07:45Z | |
| dc.date.available | 2010-11-08T13:07:45Z | |
| dc.date.issued | 2010-11-08T13:07:45Z | |
| dc.description | Ph.D. | en |
| dc.description.abstract | Aspect-Oriented Software Development (AOSD) is a relatively new programming paradigm, which encapsulates concerns that crosscut the modularity of traditional programming mechanisms such as Module-Oriented (MO) and Object-Oriented (OO). The concern that crosscuts the modularity of traditional programming mechanism is known as a crosscutting concern (Garcia et al., 2004). Examples of crosscutting concerns include logging, tracing, caching, security, resource pooling etc. The ability to modularize such concerns is expected to improve parallel development, comprehensibility, reuse, ease of change, reducing development costs, increasing dependability and adaptability. According to Alexander (2003), among the claimed benefits of this new technology is the reduction in the amount of code written and higher cohesion. There are many Aspect-Oriented Programming languages available in the industry, for example- AspectJ (a Java extension), AspectC (a C extension), AspectC++ (a C++ extension), AspectXML (a XML extension), CaesarJ and Hyper/J (being used by IBM). However, AOSD still faces several problems. Quantitative assessment of some of the important characteristics such as modularity, maintainability, reusability, complexity and the overall quality of Aspect-Oriented (AO) technology is fairly unexplored. OO technology has matured enough and many quantitative models are available to determine various characteristics of this technology. But very few existing evaluations have been performed at qualitative and quantitative levels in AOSD. Since AO has some additional features from OO technology, there is a need to develop quantitative models to determine above said important characteristics of AO technology. In present study, our focus is on those AO languages that have features of Java and AO technology. In this category, we have selected AspectJ, CaesarJ and Hyper/J AOP languages. The proposed metrics in present work will be applicable to Java, AspectJ, CaesarJ and Hyper/J. The term generic/unified has been used which covers all these programming languages. Objectives of the Proposed Work In this research work, the main emphasis is on quantitative evaluation and analysis of various features that are important in the context of AOSD. The following are issues and problems that have been explored in this study: 1. Static and dynamic metrics for measuring the performance of aspect-oriented software designed with Java and AspectJ, CaesarJ and Hyper/J. 2. Reusability and maintainability of aspect-oriented software. 3. Metrics for measuring the complexity of aspect-oriented software designed with AspectJ, CaesarJ and Hyper/J from various viewpoints, such as code complexity and interaction complexity. 4. Propose a quality model to bring out the relationship among quality characteristics and validate the suggested model. The issues stated above have been accomplished as follows: Objective 1: To investigate and propose static and dynamic metrics for measuring the performance of aspect-oriented software designed with Java, AspectJ, CaesarJ and Hyper/J. Metrics have been thoroughly studied and explored for several quality characteristics of Aspect-Oriented Systems (AOS). These features include cohesion, coupling, complexity, changeability (a sub-characteristic of maintainability), reusability and others. The new proposed metrics are for cohesion, coupling, complexity, size, and changeability of generic AO systems. These proposed metrics include both static as well as dynamic metrics. These metrics can be applied on software designed by using Java, AspectJ, CaesarJ and Hyper/J. Objective 2: To assess the reusability and maintainability of aspect-oriented software. A model has been proposed to determine how to broaden the applicability of class/aspect. Using this proposed model, reusability can be determined by direct measurable metrics for cohesion, coupling, complexity, and size. In order to predict maintainability of AOS, we have proposed a metric for changeability. In AOS, when a crosscutting concern is encapsulated in an aspect, it makes changes easy. So, here the focus is on changeability sub-characteristic of maintainability. Objective 3: To design metrics for ascertaining the complexity of aspect-oriented software designed with AspectJ, CaesarJ and Hyper/J from various viewpoints, such as code and interaction complexity. Metrics have been defined for measuring code complexity and interaction complexity of generic aspect-oriented systems implemented in Java, AspectJ, CaesarJ and Hyper/J. We have used fuzzy logic for defining software complexity. Complexity metrics have been used as input variables in a fuzzy inference engine. The motivation has been to understand and explain the difficulties faced in calculating the total complexity of an AO component in generic aspect-oriented systems. Here, a component is defined in new terminology as a class in all four programming languages, an interface in all four programming languages, and finally an aspect in AspectJ, CClass in CaesarJ and Hyperslice in Hyper/J. Using this fuzzy logic tool, automation of measuring complexity of generic AO system has been achieved. Objective 4: To propose a quality model to bring out the relationship among quality characteristics in aspect-oriented software and validate the suggested model. A quality model for aspect-oriented system has been proposed, which includes quality characteristics like reusability, complexity, code-reducibility and modularity, along with others, which are present in ISO/IEC 9126 quality model. In order to evaluate the quality of proposed the model as single unit, Analytic Hierarchy Process (AHP) has been applied. Pair-wise relative weights of characteristics and sub-characteristics have been collected through a survey conducted on professionals working in the field of aspect-oriented technology. A case study from one of the projects developed in AspectJ has also been considered for validating the suggested model. Thesis Outline Thesis is divided into seven chapters: Chapter 1 covers the basic issues and our understanding of aspects and aspect-oriented software development (AOSD). It consists of a detailed literature survey of aspect-oriented systems (AOS) and metrics. It covers internal characteristics like cohesion, coupling, complexity and size as well as external characteristics like maintainability, understandability, usability, modularity, reusability and others in context of AOS. Some of the metrics discussed in this survey are derived from object-oriented systems (OOS) with no or minor changes, others are exclusively specific for AOS. This Chapter also covers various quality models such as McCall, Boehm, FURPS, Dromey, ISO/IEC 9126, Bertoa, Adnan, and others. Major findings of these models in context of AOS are also been presented here and discussed. Chapter 2 proposes a metrics suite for measuring internal characteristics such as cohesion, coupling, complexity, and size of generic aspect-oriented systems. Here, generic means, the metrics that are applicable to most of the aspect-oriented programming languages such as AspectC, AspectC++, AspectXML, AspectJ, CaesarJ and Hyper/J. The present study is focused on those AOP languages that have most of the features of the Java programming language and AO technology. In this category, we have selected AspectJ, CaesarJ and Hyper/J. So our metrics suite is applicable to Java, AspectJ, CaesarJ and Hyper/J programming languages. In order to define metrics for internal characteristics, new terminology and formulism have been defined to present unambiguous, standardized and operational terminology. These proposed direct measurable metrics for internal characteristics can be used to determine external characteristics such as maintainability, understandability, usability, adaptability, and modularity. This terminology and metrics have been used in rest of the Chapters. Chapter 3 proposes a fuzzy logic approach to measure complexity of aspect-oriented systems. The complexity of AOS has been divided in two categories: code complexity and interaction complexity. Metrics for the complexity have already been defined in Chapter 2. Code complexity is due to complexity of attributes, complexity of operations and complexity of nested components. The complexity values of attributes, operations, and nested operations have been normalized between 0-1. These complexity metrics have been used as input variables in a fuzzy inference engine. Attributes have been divided into three categories: low (L), medium (M) and high (H) as member functions. NIL variable for attribute means there is no attribute in the component. Operations have also been divided into three categories: L, M, and H as member functions. NIL variable for operation represents that there is no operation in the component. Nested components and components have been divided into five categories- very low (VL), L, M, H and very high (VH) as member functions. NIL variable for a nested component represents that there is no nested component present in the component. NIL variable for a component means complexity of component is zero. A similar approach can be applied to measure interaction complexity of AO components. Using this fuzzy logic tool, the complexity of AO system can be calculated automatically. Chapter 4 proposes an approach to predict maintainability of aspect-oriented systems. In aspect-oriented technology, changes in crosscutting concerns become easy. Here, we have focused in measuring changeability, a sub-characteristic of maintainability in ISO/IEC 9126. A metric for changeability has been defined using terminology and formalism defined in Chapter 2. Possible types of changes in AOS have been determined. Using these feasible changes, an experiment is performed on projects designed in AspectJ and CaesarJ. Changeability of generic AO system is assessed by making changes at code level. Impact of these changes has been evaluated. High change impact of an AO component means, it will absorb less change. In other words, high change impact means low changeability. In order to validate proposed changeability measurement technique, dependency on a component of other components has also been measured. Number of dependencies has been measured with the help of adjacency matrix, which is one of the existing techniques. Correlation analysis between average change impact and number of dependencies gives a correlation factor value. Correlation factor in CaesarJ based system is 0.87 and in AspectJ based system is 0.89. These values are high enough to indicate that in high dependent AO system, change impact will be high. That means, a highly dependent AO system will absorb low changeability. It has also been seen from the existing literature that highly dependent systems lead to poor maintainability, which is also proved by our work. Chapter 5 proposes a model to assess reusability of AO components of AOS. Here, reusability means how wider an AO component can be reused in other AO components. In this proposed model, we determined relationship of reusability with external and internal characteristics of AOS. In order to determine the external characteristics on which reusability of AO components depends, a survey was conducted on experts of the domain. From the survey, it has been observed that there are four main external characteristics, understandability, modularity, maintainability, and adaptability on which reusability of AO components depends. These external characteristics cannot be measured directly. In order to predict how wider an AO component can be reused, we can also use directly measurable metrics for internal characteristics such as cohesion, coupling, complexity, and size proposed in Chapter 2. A correlation analysis among indirect measurable external characteristics, understandability, modularity, maintainability, adaptability, and all direct measurable metrics for internal characteristics has been performed. Through this correlation analysis, it has been concluded that (i) metrics CMPXM(c), NOO, LOC, and CoOI (when component is an aspect), are directly proportional to the reusability of AO component; (ii) metric CoI is inversely proportional to the reusability of AO component; and (iii) there is no strong relation among external characteristics and CoAT, CoPT, CoAR, NOA, and CoOI (when component is a class) metrics. These metrics have been defined in Chapter 2 for generic AO systems. Chapter 6 proposes a new quality model, Aspect-Oriented Software Quality Model (AOSQUAMO), by adding some new sub-characteristics, reusability, complexity, code-reducibility and modularity to the existing ISO/IEC 9126 quality model, which are important in the context of AOS. In order to assign weights to characteristics and sub-characteristics of proposed model, we conducted a survey on software professionals working in the field of aspect-oriented technology. The survey form consists seven tables for filling pair-wise relative weight values of characteristics and sub-characteristics. These data are analyzed by using Analytic Hierarchy Process (AHP), wherein weight values are calculated for quality characteristics and sub-characteristics. The weight values obtained will help developers to select only those characteristics and sub-characteristics which are important and relevant as per their quality requirement in that domain. A case study has also been considered to validate the proposed model. This experimentation leads to the useful conclusion related to the capability of measuring quality of aspect-oriented systems as a single unit. This thesis concludes in Chapter 7 with major finding of the present work. It also suggests some future work in this direction. | en |
| dc.format.extent | 2580059 bytes | |
| dc.format.mimetype | application/pdf | |
| dc.identifier.uri | http://hdl.handle.net/10266/1357 | |
| dc.language.iso | en | en |
| dc.subject | Aspect-Oriented Systems | en |
| dc.subject | Software Quality | en |
| dc.subject | Metrics | en |
| dc.subject | Maintainability | en |
| dc.subject | Reusability | en |
| dc.title | Analysis and Design of Metrics for Aspect-Oriented Systems | en |
| dc.type | Thesis | en |
