Experiences documenting and preserving software constraints using aspects

  • Authors:
  • Roberto Silveira Silva Filho;François Bronsard;William M. Hasling

  • Affiliations:
  • Siemens Corporate Research, Princeton, NJ, USA;Siemens Corporate Research, Princeton, NJ, USA;Siemens Corporate Research, Princeton, NJ, USA

  • Venue:
  • Proceedings of the tenth international conference on Aspect-oriented software development companion
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software systems are increasingly being built as compositions of reusable artifacts (components, frameworks, toolkits, plug-ins, APIs, etc) that have non-trivial usage constraints in the form of interface contracts, underlying assumptions and design composition rules. Satisfying these constraints is challenging: they are often not well documented; or they are difficult to integrate into the software development process in ways that allow their identification by developers; or they may not be enforced by existing tools and development environments. Aspect-Oriented Programming has been advocated as an approach to represent and enforce software constraints in code artifacts. Aspects can be used to detect constraint violations, or more pro-actively, to ensure that the constraints are satisfied without requiring the developer's attention. This paper discusses our experience using aspects to document and enforce software constraints in an industrial application, specifically TDE/UML, a model-driven software testing tool developed at SIEMENS. We present an analysis of common constraints found in our case study, a set of primitive aspects developed to help the enforcement of software constraints, and show how AOP has been incorporated into existing software development and governance approaches in the TDE/UML project. We conclude with a discussion of strengths and limitations of AspectJ in supporting these constraints.