Campus Access Only
All rights reserved. This publication is intended for use solely by faculty, students, and staff of Nova Southeastern University. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, now known or later developed, including but not limited to photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the author or the publisher.
Date of Award
Dissertation - NSU Access Only
Doctor of Philosophy in Computer Science (CISD)
Graduate School of Computer and Information Sciences
Michael J Laszlo
Aspect-oriented software design (AOSD) enables better and more complete separation of
concerns in software-intensive systems. By extracting aspect code and relegating
crosscutting functionality to aspects, software engineers can improve the maintainability
of their code by reducing code tangling and coupling of code concerns. Further, the
number of software defects has been shown to correlate with the number of non-
encapsulated nonfunctional crosscutting concerns in a system.
Aspect-mining is a technique that uses data mining techniques to identify existing aspects
in legacy code. Unfortunately, there is a lack of suitably-documented test data for aspect-
mining research and none that is fully representative of large-scale legacy systems.
Using a new technique called concern seeding--based on the decades-old concept of
error seeding--a tool called AspectAssay (akin to the radioimmunoassay test in medicine)
was developed. The concern seeding technique allows researchers to seed existing legacy
code with nonfunctional crosscutting concerns of known type, location, and quantity, thus
greatly increasing the pool of available test data for aspect mining research.
Nine seeding test cases were run on a medium-sized codebase using the AspectAssay tool.
Each test case seeded a different concern type (data validation, tracing, and observer) and
attempted to achieve target values for each of three metrics: 0.95 degree of scattering
across methods (DOSM), 0.95 degree of scattering across classes (DOSC), and 10
concern instances. The results were manually verified for their accuracy in producing
concerns with known properties (i.e., type, location, quantity, and scattering). The
resulting code compiled without errors and was functionally identical to the original. The
achieved metrics averaged better than 99.9% of their target values.
Following the small tests, each of the three previously mentioned concern types was
seeded with a wide range of target metric values on each of two codebases--one
medium-sized and one large codebase. The tool targeted DOSM and DOSC values in the
range 0.01 to 1.00. The tool also attempted to reach target number of concern instances
from 1 to 100. Each of these 1,800 test cases was attempted ten times (18,000 total
trials). Where mathematically feasible (as permitted by scattering formulas), the tests
tended to produce code that closely matched target metric values.
Each trial's result was expressed as a percentage of its target value. There were 903 test
cases that averaged at least 0.90 of their targets. For each test case's ten trials, the
standard deviation of those trials' percentages of their targets was calculated. There was
an average standard deviation in all the trials of 0.0169. For the 808 seed attempts that
averaged at least 0.95 of their targets, the average standard deviation across the ten trials
for a particular target was only 0.0022. The tight grouping of trials for their test cases
suggests a high repeatability for the AspectAssay technique and tool.
The concern seeding technique opens the door for expansion of aspect mining research.
Until now, such research has focused on small, well-documented legacy programs.
Concern seeding has proved viable for producing code that is functionally identical to the
original and contains concerns with known properties. The process is repeatable and
precise across multiple seeding attempts and also accurate for many ranges of target
Just like error seeding is useful in identifying indigenous errors in programs, concern
seeding could also prove useful in estimating indigenous nonfunctional crosscutting
concerns, thus introducing a new method for evaluating the performance of aspect
David Gerald Moore. 2013. AspectAssay: A Technique for Expanding the Pool of Available Aspect Mining Test Data Using Concern Seeding. Doctoral dissertation. Nova Southeastern University. Retrieved from NSUWorks, Graduate School of Computer and Information Sciences. (254)