Computer Science Department
School of Computer Science, Carnegie Mellon University
Rapid Development of Custom Software Architecture Design Environments
Robert T. Monroe
Keywords: Sofware architecture, software design, software design
tools, softrware architecture design environments, architecture description
languages, configurable software, rapid software development
Software architecture provides a powerful way to manage the complexity of
large software systems. It has emerged as a distinct form of abstraction for
software systems with its own set of design issues, vocabulary, and goals.
Like designers in other disciplines, software architects can gain
significant leverage by using powerful and appropriate design environments
and tools. The cost and difficulty of creating these powerful design tools,
however, prohibit their use for many software development projects. One of
the primary reasons for the difficulty and cost of building these tools is
that tool developers generally need to build a significant amount of
supporting infrastructure before they can make use of the important
architectural design expertise that the tools encapsulate. This
infrastructure includes both the concepts underlying the tools'
functionality and the implementation of the tools themselves.
This dissertation describes a new approach to capturing and using
architectural design expertise in software architecture design environments.
A language and tools are presented for capturing and encapsulating software
architecture design expertise within a conceptual framework of architectural
styles and design rules. The design expertise thus captured is supported
with an incrementally configurable software architecture design environment
that specialized design environment builders and end-users can easily and
quickly customize by specifying the architectural styles and design rules
that the environment needs to support.