Exploring Alternative Software Architecture Designs: A Planning Perspective

  • Authors:
  • J. Andrés Díaz-Pace;Marcelo R. Campo

  • Affiliations:
  • Carnegie Mellon University;UNICEN University

  • Venue:
  • IEEE Intelligent Systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

A software architecture is a blueprint that captures the main design decisions for a system. When designing an architecture, the architect normally evaluates multiple solutions, making a balance among architectural patterns that affect several quality attributes (for example, performance, modifiability, and so on). In this exploration of the design space, the architectural knowledge directs the search toward a good-enough solution. Although decision-making still relies on the architect's expertise, a novel architectural design theory has been recently developed to move more systematically from quality attributes to architectural decisions. In this content, we describe a framework called DesignBots to search for design alternatives, in which the concepts of that theory are mapped to a hierarchical and mixed-initiative planning model. Essentially, quality-attribute scenarios are considered as goals achievable by combinations of patterns that are instantiated by the planning engine. This approach fosters the development of proactive assistants to support architectural design activities.