|
Département d'ingénierie informatique |
Requirements and architecture are two essential, inter-related products in the software lifecycle. Software architecture has long been recognized to have a profound impact on non-functional requirements about security, fault tolerance, performance, evolvability, and so forth. While much work has been done on architecture description languages (ADLs), very few techniques are available to date for systematically building software architectures from functional and non-functional requirements so that such requirements are guaranteed by construction. Our work addresses this challenge.
A systematic architecture derivation process has been defined. Software specifications are first derived from requirements, typically, by renaming monitored/controlled variables into input/output variables and introducing corresponding accuracy requirements on sensors and actuators. An abstract architectural draft is then derived ; architectural components are obtained from the KAOS agents responsible for functional goals, and dataflow connectors are obtained from input/output dependencies among the agents. The abstract architecture is then refined to meet domain-specific architectural constraints according to appropriate architectural styles. The components and connectors in the resulting architecture are then recursively refined, by use of applicable refinement patterns, to meet the various non-functional goals elicited and specified during the requirements engineering process.
To validate this method, the software architecture for a real power plant supervisory system was derived from its goal-oriented requirements specification (joint work with D. Perry, Univ. Texas). As a valuable side-effect, some of our refinement patterns were made further precise and specified formally, notably, the fault-tolerant communication pattern used at several places in the architecture. The method has also been used informally to re-derive a known architecture for Distributed Feature Composition (DFC) in telecom systems, from implicit requirements underlying it.
The derivation process has also been made more formal so as to generate ADL descriptions in the Wright language developed at CMU.
