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.