Round-Trip Software Engineering Using UML

Authors: Nenad Medvidovic, Alexander Egyed, and David Rosenblum

A key promise of software architecture research is that better software systems can result from modeling their important aspects throughout development. Choosing which system aspects to model and how to evaluate them are two decisions that frame software architecture research. Part of the software architecture community, primarily from academia, has focused on analytic evaluation of architectural descriptions. Another part of the community, primarily from industry, has chosen to model a wide range of issues that arise in software development, with a family of models that span and relate the issues. One problem that neither community has adequately addressed to date is round-trip software engineering: consistently refining a high-level model of a software system into a lower-level model (forward engineering) and abstracting a low-level model into a higher-level one (reverse engineering). This paper investigates the possibility of using the Unified Modeling Language (UML), an object-oriented design language, to that end. The paper assesses UML’s suitability for modeling architectural concepts and provides a framework for identifying and resolving mismatches within and across different UML views, both at the same level of abstraction and across levels of abstraction. Finally, the paper briefly discusses our current tool support for round-trip software engineering.

Download PDF here!