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.