Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery (bibtex)
by Nenad Medvidovic, Alexander Egyed, Paul Grünbacher
Abstract:
Ideally, a software project commences with requirements gathering and specification, reaches its major milestone with system implementation and delivery, and then continues, possibly indefinitely, into an operation and maintenance phase. The software system's architecture is in many ways the linchpin of this process: it is supposed to be an effective reification of the system's requirements and to be faithfully reflected in the system's implementation. Furthermore, the architecture is meant to guide system evolution, while also being updated in the process. However, in reality developers frequently deviate from the architecture, causing architectural erosion, a phenomenon in which the initial architecture of an application is (arbitrarily) modified to the point where its key properties no longer hold. In this paper, we present an approach intended to address the problem of architectural erosion by combining three complementary activities. Our approach assumes that a given system's requirements and implementation are available, while the architecturally-relevant information either does not exist, is incomplete, or is unreliable. We combine techniques for architectural discovery from system requirements and architectural recovery from system implementations; we then leverage architectural styles to identify and reconcile any mismatches between the discovered and recovered architectural models. While promising, the approach presented in the paper is a work in progress and we discuss a number of remaining research challenges.
Reference:
Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery (Nenad Medvidovic, Alexander Egyed, Paul Grünbacher), 2003.
Bibtex Entry:
@Workshop{DBLP:conf/icse/MedvidovicEG03,
  author    = {Nenad Medvidovic and Alexander Egyed and Paul Grünbacher},
  booktitle = {Proceedings of 2nd Int'l Software Requirements to Architectures Workshop, STRAW 2003 at ICSE 2003, May 9, Portland, Oregon, USA},
  title     = {Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery},
  year      = {2003},
  abstract  = {Ideally, a software project commences with requirements gathering
	and specification, reaches its major milestone with system implementation
	and delivery, and then continues, possibly indefinitely, into an
	operation and maintenance phase. The software system's architecture
	is in many ways the linchpin of this process: it is supposed to be
	an effective reification of the system's requirements and to be faithfully
	reflected in the system's implementation. Furthermore, the architecture
	is meant to guide system evolution, while also being updated in the
	process. However, in reality developers frequently deviate from the
	architecture, causing architectural erosion, a phenomenon in which
	the initial architecture of an application is (arbitrarily) modified
	to the point where its key properties no longer hold. In this paper,
	we present an approach intended to address the problem of architectural
	erosion by combining three complementary activities. Our approach
	assumes that a given system's requirements and implementation are
	available, while the architecturally-relevant information either
	does not exist, is incomplete, or is unreliable. We combine techniques
	for architectural discovery from system requirements and architectural
	recovery from system implementations; we then leverage architectural
	styles to identify and reconcile any mismatches between the discovered
	and recovered architectural models. While promising, the approach
	presented in the paper is a work in progress and we discuss a number
	of remaining research challenges.},
  pages     = {61-68},
  file      = {:Workshops\\STRAW 2003 - Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery\\Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery-preprint.pdf:PDF},
  keywords  = {},
  owner     = {paul},
  timestamp = {2015.09.12},
  url       = {http://se.uwaterloo.ca/~straw03/ProceedingsSTRAW03.pdf},
}
Powered by bibtexbrowser