search menu icon-carat-right cmu-wordmark

Architecture Centric Development Method (SATURN 2006)

Presentation
Anthony J. Lattanze of Carnegie Mellon University presents an overview of the Architecture Centric Development Method (ACDM). He also discusses his experiences thus far in using the method and the planned next steps for maturing the method.
Publisher

Software Engineering Institute

Subjects

Abstract

Functionality is a measure of how well a system does the work it was intended to do, but functionality is not all that matters in software development. Properties like interoperability, modifiability, and portability also matter as much as functionality does. These properties are determined primarily by the software structure - or the software architecture. 

While many structures can satisfy functionality, few can satisfy the required functionality and the quality attribute properties needed in a system. Achieving quality attributes in a predictable way can only be accomplished by deliberately selecting the appropriate structures early in the development process. 

This is a radical departure from high-speed, lightweight programming methodologies (e.g., XP) that focus on functionality and prescribe writing software until a product emerges - architectures also emerge in this paradigm. Emergent architectural structures may or may not meet the expectations of the broader stakeholder community. Unfortunately, architectural shortfalls are not recognized until it is too late, and repair is difficult and costly. 

On the opposite end of the spectrum are methods that espouse high ceremony processes and heavy emphasis on document production. While mature processes are certainly beneficial, there is no correlation that high-maturity organizations consistently produce high-quality architectures - again, architectural shortfalls are often discovered late in the development lifecycle. 

The Architecture Centric Development Method (ACDM) can be differentiated from these extremes in that ACDM places the software architecture at the center of a development effort rather than software processes or code artifacts. Like architectures in the building and construction industries, ACDM prescribes using the architecture design to drive, not only the technical aspects of the project, but also the process and programmatic issues of a development effort as well. ACDM weaves together product, technology, process, and people into a cohesive lightweight, scalable development method. 

During this presentation, I will present an overview of ACDM, briefly discuss the experiences thus far in using the method, and the planned next steps for maturing the method.

This content was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.