Software architecture is receiving increasing attention as a level of software design. However, the current practice of software architecture description is largely informal and ad hoc. This has the consequence of weakening the effectiveness of architecture as a vehicle for communication about and analysis of a software system.
Wright addresses this issue by providing a formal basis for architectural description. As an architecture description language, Wright can be used to provide a precise, abstract, meaning to an architectural specification and to analyze both the architecture of individual software systems and of families of systems.
Wright also serves as a vehicle for exploration of the nature of the architectural abstractions themselves. In particular, work on Wright has focussed on the concept of explicit connector types, on the use of automated checking of architectural properties, and on the formalization of architectural styles.
To further aid developers in the realization and exploitation of architectural abstractions, Wright defines a set of standard consistency and completeness checks that can be used to increase the designer's confidence in the design of a system. These checks are defined precisely in terms of Wright's underlying model in CSP, and can be checked using standard model checking technology.
There are a number of papers and technical reports relating to Wright.
Work is in progress on a toolset to support Wright.