A case study in re-engineering to enforce architectural control flow and data sharing

  • Authors:
  • Marwan Abi-Antoun;Jonathan Aldrich;Wesley Coelho

  • Affiliations:
  • Institute for Software Research Intl (ISRI), Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213, United States;Institute for Software Research Intl (ISRI), Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213, United States;Department of Computer Science, University of British Columbia, Vancouver, BC, Canada V6T 1Z4

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Without rigorous software development and maintenance, software tends to lose its original architectural structure and become difficult to understand and modify. ArchJava, a recently proposed programming language which embeds a component-and-connector architectural specification within Java implementation code, offers the promise of preventing the loss of architectural structure. AliasJava, which can be used in conjunction with ArchJava, is an annotation system that extends Java to express how data is confined within, passed among, or shared between components and objects in a software system. We describe a case study in which we incrementally re-engineer an existing Java implementation to obtain an implementation which enforces the architectural control flow and data sharing. Building on results from similar case studies, we chose an application consisting of over 16,000 source lines of Java code and over 90 classes. We describe our process, the detailed steps involved (some of which can be automated), as well as some lessons learned and perceived limitations with the languages, techniques and tools we used.