My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages

Introduction

A recurring problem in software engineering is the lack of compliance between design documents and implementation artifacts. This situation can cause a detriment in the overall quality of software systems, defined in terms of non-functional requirements. The maintainability of software systems is particularly affected by this condition, specially during the system maintenance efforts.

This study proposes an approach based on Architecture Description Languages (ADL) and Aspect Oriented Programming (AOP) techniques, in order to verify if the maintainability intent for the system, as described in its architecture description, is really maintained in its associated source code. In order to do so, a set of extensions to ADL constructs is proposed to characterize the maintainability quality characteristic of software systems, and to describe the set of valid interactions between components of ADL descriptions. The use of AOP static-crosscutting techniques is also intended in order to help verify these quality intents in a non-intrusive manner. The ultimate goal of this study is to help maintain the overall quality of software systems through their lifecycle.

The quality model used in this study is based on the set of ISO/IEC SQuaRE software quality standards, specially on the ISO/IEC 25010. It should also be noted that in order to effectively define the maintainability quality sub-characteristics, the use of source code quality metrics is intended.

An implementation of the approach proposed by this study is presented for Java based systems. It relies on the xADL 2.0 and AspectJ languages as ADL and AOP implementations, respectively.


MexADL in action!

Architecture description

Architecture description for a distributed query optimizer system using MexADL constructs

Architecture verification

Maintainability verification for the implementation code associated to a distributed query optimizer system.

Note: The reports shown in the last part of this video are deprecated. Check the SlideShare presentation to see the updated reports.

Detailed Presentation

More information can be found in the following SlideShare presentation

Working with existing projects

If you want to try out the MexADL approach with an existing web application, you should check the Web2MexADL project. This tool allows you to generate a MexADL-based architecture, directly from the compiled code of an existing application.


Installation

  1. Download and extract the latest MexADL distribution.
  2. Set the MEXADL_HOME environment variable to the directory where you extracted MexADL.
  3. Download the Eclipse IDE for Java Developers.
  4. Copy the contents of the MEXADL_HOME/plugins directory to the plugins directory of the Eclipse IDE for Java Developers.

Note for Windows users: When specifying the MEXADL_HOME, please use '/' instead of '\', as the path separator character.


Reference

Castrejón, J. “An Approach for the Maintainability Verification of Software Systems based on Aspect Oriented Programming and Architecture Description Languages”. Master of Science in Computer Science. ITESM, Campus Ciudad de México. December 2010.

Notes

  • The current implementation has been tested on MAC OS X 10.6 - 10.7, Ubuntu 11.10 and Windows XP
Powered by Google Project Hosting