This document contains a list of Current and potential ideas/topics
for masters’ projects and theses. Please contact me if you have any questions.
Devon M. Simmonds
Assistant Professor, Computer Science
Department, UNCW
simmondsd[@]uncw.edu
Current Research Projects
1.
Pedagogical Support for Software Architecture.
a.
Student: Maziar
Boddoohi
b.
Requirements
c.
Reading
List
2.
Exploring the Design of Multi-touch Interfaces.
a.
Student: Jacob
Kane
b.
Requirements
and Reading List
Potential/Available Research Projects
Reverse Engineering models from Code:
Aspect-oriented Software Development: Aspect-oriented software development is concerned
with the identification, representation, development and evolution of
crosscutting software features. I have several research interests including the
following:
1. Metrics to support the
migration of application across middleware.
§ Overview:
The ability to
quantify the effort required to migrate applications from one middleware
technology to another is an important asset in today's business environment
where old technologies are constantly changing and new technologies are
constantly appearing. For non aspect-oriented applications, the old middleware
code has to be removed before the new middleware code can be inserted. While it
is clear that this middleware removal is unnecessary for aspect-oriented
applications, specific metrics for quantifying the effort needed to migrate an
application across middleware in an aspect-oriented manner do not exist. To
address this void, this research presents a set of metrics for quantifying
distributed application migration effort along with several case studies that
illustrate use of the metrics:
a.
To
quantify and compare non aspect-oriented migrations from a source middleware to
one or more target middlewares.
b.
To
quantify and compare aspect-oriented migrations from a source middleware to one
or more target middlewares.
c.
To
quantify and compare aspect-oriented migration with non aspect-oriented
migration.
Research
would include an evaluation of the proposed metric suite based on the results
of the case studies, along with
experimental results and lessons learned.
§ Requirements:
a.
Read
background literature of software metrics (from Pressman, etc.).
b.
Review
and augment the group of metrics which I have defined.
c.
Conduct
case studies to:
I.
Migrate
a non aspect-oriented
application to one or more middleware without aspects.
II.
Migrate
a non aspect-oriented
application to an aspect-oriented application for one or more middleware.
III.
Migrate
an aspect-oriented
application to one or more middleware.
d.
Evaluate results and write paper.
§
2. Expressing UML Relationships
Using Aspects based on this
paper.
3. An Aspect-Oriented Approach
to Refactoring Software. Changing
the structure and relationships in software using aspects based on the catalog
of catalog of refactorings developed by Fowler .
4. Aspect-oriented Testing,
Monitoring & Policy Enforcement. Ensuring
that software carries out desirable functions and that software does not carry
out undesirable functions.
a.
Project
1: A Comparison of Unit Testing Using JUnit and AspectJ Aspects
5. Verification
of desirable and undesirable properties of aspect-oriented composed models. Important
questions in this area include: How can properties in a composed model be guaranteed? What
kinds of emergent properties can be expected when two aspects are composed or
when aspects are composed with primary models? How can emergent properties be
predicted and detected? What software features cannot be isolated as aspects?
6. Component-based software engineering (CBSE): In CBSE
software systems are developed and deployed by assembling software components.
I am interested in using aspects to adapt software components.
Model Transformation
Languages
With the emergence of the Model Driven Architecture,
the field of model drive development including model transformations has
received much attention. In
a model driven development (MDD) environment, developers create and evolve
applications by specifying models and by transforming abstract models to more
concrete models. MDD hold the promise of facilitating automated software
development and code generation. To realize the benefits of
MDD, model transformation languages are needed.
In
previous research, a new model transformation language for UML class
model was proposed. The new language is called DBTL(overview). Since UML is the de facto
modeling standard, transformation languages based on UML are expected to have
wide applicability. Listed below are some potential projects in this area of
research:
1. Provide
an implementation for DBTL. DBTL has
been defined but has not been implemented. The implementation would be done
using an appropriate programming language.
2. Develop
DBTL-like languages for other UML diagram types, for example, sequence diagrams
and state machines. Some preliminary work on sequence diagrams is available.
3. Compare
and contrast DBTL with QVT and
define mappings form constructs in DBTL to
constructs in QVT. The MOF 2.0 Query View Transformation (QVT) Language is an
Object Management Group’s (OMG) standard for specifying model transformations.
QVT transformations are specified explicitly (in terms of) using instances of metamodel level classes.
4. I am interested in the specification, execution and
testing of model transformations.
Model Driven Engineering
& Code Generation
Software applications often consist
of many functional and extra-functional features such as distribution,
transaction and security. Specifying a single monolithic transformation for a
system model describing multiple features can be a tedious and error-prone
task. Moreover, extra-functional features are typically spread across and
tangled with other features in a design. Specifying transformations for these
crosscutting features is difficult because the elements to be transformed are
distributed across a model.
The aspect-oriented model-driven
development framework (AOMDF) is intended to support the
separation of crosscutting extra-functional features from other design features
to ease the modeling and transformation of complex designs. Extra-functional
features are described by aspect models and other design features are described
in a primary model. The AOMDF currently supports modeling of crosscutting
features as aspects, and the composition of aspect and primary models at the
same level of abstraction to produce a model that integrates the views
described by aspect models and a primary model.
When the intent is to transform
models into code, a model-to-model transformation of aspect and primary models
must be accompanied by the transformation of models into code. Preliminary work
has been dome on a model-to-code technique for transforming aspect models into AspectJ aspects. This research project
involves improving those code generation techniques and implementing the
techniques using one or more middleware such as CORBA, Jini,
or .Net.
1. Reverse Engineering Complete Models
From Code and Then Regenerate the Code From The Models. Define transformations
using QVT …The idea is to investigate model transformation and code generation
in three steps:
a.
Start with a non-trivial program and show how to map the
code to Class, Sequence and State Models.
b.
Start with the 3 diagrams, and define reverse mappings to
these defined in (a).
c.
Start with the individual diagrams and investigate how
much code can be generated from each in isolation from the other 2 diagrams.
Middleware
1.
Projects
that address understanding and comparing middleware technologies.
2.
Projects
that address development of distributed applications using middleware.
3.
etc.