CEC Theses and Dissertations

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

2013

Document Type

Dissertation - NSU Access Only

Degree Name

Doctor of Philosophy in Computer Science (CISD)

Department

Graduate School of Computer and Information Sciences

Advisor

Sumitra Mukherjee

Committee Member

Michael J Laszlo

Committee Member

Sumitra Mukherjee

Committee Member

William Tribbey

Abstract

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

metric values.

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

mining algorithms.

To access this thesis/dissertation you must have a valid nova.edu OR mynsu.nova.edu email address and create an account for NSUWorks.

  Contact Author

  Link to NovaCat

Share

COinS