Emerging design: new roles and uses for abstraction

  • Authors:
  • Christopher Van der Westhuizen;Ping H. Chen;André van der Hoek

  • Affiliations:
  • University of California, Irvine, Irvine, California;University of California, Irvine, Irvine, California;University of California, Irvine, Irvine, California

  • Venue:
  • Proceedings of the 2006 international workshop on Role of abstraction in software engineering
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most abstractions in software engineering are used for one of two purposes, either 1) for guidance, in which an abstraction created up-front serves as a roadmap for the next activity, or 2) for understanding, in which an abstraction serves to explain the current state of the system at a given point in time. In either case, the abstraction tends to be static: once it has been created, it is not updated very often. Our research distinguishes itself by developing a dynamic abstraction, emerging design, that both guides and helps in understanding, while still able to fulfill new roles in the development process. In this paper, we will focus on the following three roles: (1) coordination: allowing developers to understand how their work influences that of others and vice versa, (2) detecting design decay: preventing unintended, undiscovered, and unauthorized design changes, and (3) project management: knowing which parts of the code are stable, incomplete, or in flux.