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
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. Using aspect to support the
migration of application across middleware.
The development
and evolution of distributed systems are generally coupled to continuously
changing middleware technologies. This coupling is undesirable because changes in the middleware necessitates changes in the
application, resulting in unnecessary constraints on the portability,
interoperability, reusability, and evolvability of
distributed systems. It is imperative that mechanisms be found to make the
development and evolution of distributed systems a middleware transparent
software development (MTSD) process. MTSD is the development of software with
minimal consideration for a specific middleware. Research is needed to explore
MTSD using aspect-oriented software development (AOSD)
techniques.
2. Aspect-based refactoring of
components. Changing
the structure and relationships in software using aspects.
3. Aspect-oriented Testing,
Monitoring & Policy Enforcement. Ensuring
that software carries out desirable functions and that software does not carry
out undesirable functions.
4. 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?
5. 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.
Middleware
1.
Projects
that address understanding and comparing middleware technologies.
2.
Projects
that address development of distributed applications using middleware.
3.
etc.