This is a collaborative research project including Dewayne Perry, James Brown and Sarfraz Khurshid at the University of Texas at Austin (award # 0438967), and Daniel Jackson at the Massachusetts Institute of Technology (award # 0438897). The aim of this project is to develop new languages, methods, analyses and tools for 'prescriptive' software architecture descriptions, to help the designers of complex software systems express and explore their architectural commitments prior to implementation, and to support families of systems that share architectural features.
Two underpinning technologies are used: Jackson's Alloy constraint language and analyzer, and Browne's compositional compiler. Alloy's underlying logic is expanded, new analysis capabilities are added, and the Alloy system is packaged as a software component. The compositional compiler is extended to utilize constraints and property specifications in order to support both constraint and performance analyses. On the basis of these technologies, an abstract model of software architecture is created, an architecture constraint specification language is defined, the rules of composition and evaluation are defined, and an integrated tool suite for constraint-based architectural evaluation is constructed. The research is evaluated first by simple specific examples and then with realistic case studies, revising and extending the research as needed to satisfy the overall evaluation goals.
The results of this project will have a significant and broad impact in terms architectural research, architecture education and architecture support technology. Further, it is expected that the technology will enable deeper understandings of design trade-offs, will improve design quality, and will significantly improve the component composition process. The project Web site (www.ece.utexas.edu/~perry/work/projects/nsf-cbae/) will provide access to the resulting techniques and tools.