Date of Publication


Degree Type

Honors Thesis


Computer Science

First Advisor

Sandeep Mitra, PhD


Despite recent advances in Software Engineering, the ‘software crisis’ persists. Researchers have explored the concept of Model-Driven Architectures (MDA) to obtain a high-level view of a software application in a technology-independent manner. These constitute what are known as Platform-Independent Models (PIMs)). Thereafter, a PIM’s features are systematically mapped to an implementation environment features (creating a Platform-Specific Model (PSM)). Most MDA techniques focus on the structural aspects of the system under construction. Little attention is paid to mapping behavior models to implementation technologies. This paper presents results from an approach that focused on modeling the behaviors of single-threaded, GUI-on-database systems using UML Sequence and State diagrams, and then systematically mapping these to desktop-based and web-based implementations. Well-known GRASP principles, especially the ‘Information Expert’ and the ‘Front Controller’ concepts, are applied to obtain a high-quality behavioral model. Thereafter, precise mapping techniques from model to implementation environment constructs are devised. Our results demonstrate that the mapping from the same model to different environments is strongly influenced by the features of the environment itself. We present our results in the context of a case study for a real-world customer, implemented using the following platforms: “Plain Old Java” on the desktop, Google Web Toolkit (GWT) and a Model-View-Controller (MVC) framework using PHP - CakePHP. We present several important results. We have learned that a model ‘Front Controller’ object that serves as the primary interface to the user, and is independent of the back-end database tables it interfaces with, can be easily mapped to appropriate constructs in Java-based desktop and GWT implementations. However, CakePHP’s naming conventions make this mapping indirect, and may thus break the ‘traceability’ from model to implementation. Our various results describe a means to measure the extensibility and maintainability of such implemented systems.