Modelling Software Architectures Using CRADLE

Architecture description languages (ADLs) and architecture analysis and design languages (AADLs) are important modelling and analysing languages for the software design phase. Around a decade ago, a significant number of ADLs, such as Unicon (9), Rapide (5), Wright (1) and C3 (7), were developed to describe a variety of system features. For example, Rapide describes event triggered dynamic architectures; while Wright describes architectures at a predefined conceptual level. However, these ADLs do not provide strong support for analysis. More recently, the MetaH AADL (2) has been developed, with improved support for analysis and the expression of real-time behaviour. Developed from MetaH AADL, SAE AADL (4) provides further advances on previous ADLs and AADLs, with support for describing dynamic features in real-time systems, and stronger support for analysis than earlier languages. However, this AADL still lacks certain flexibility to express generic and conceptual features of software architectures. Furthermore, it does not provide strong support for error correction and non-functional behaviour 1 is not expressed formally. We propose a new ADL, named CRADLE, with our main aims to provide strong support for: architecture analysis (de- tecting inconsistencies or violations of functional and/or non-functional constraints); architecture adaptation (correcting these inconsistencies and constraint violations); and architecture expressiveness (being able to describe a variety of architectural features including function properties and non-functional timing constraints using a formal notation). A key feature of CRADLE is the support for defining generic architectures that can be adapted by instantiating parameters. This allows us to model and analyse architectures with more genericity, allowing a single architecture model to capture, for example, differing control styles (e.g. concurrent versus sequential), varying numbers of components, and configurable timing constraints. Furthermore, by providing a library of generic architectures, both high level architectures and lower level sub-architectures, we can provide support for architecture adaptation, by extending existing approaches to component adaptation. Tool support for checking and adapting CRADLE architectures will be based on model checkers and theorem provers. In general, we plan to use model checking to check non-functional properties whereas theorem proving is used to check the functional properties. This paper describes a case study to model an air traffic control scenario using CRADLE. The previous generation ADL Rapide modelled the architecture of the air traffic control system. For simplicity, the architecture consists of aircraft radio components and control tower transmitter/receiver components and the radio components are connected to the transmit- ter/receiver components. In reality, CRADLE is able to specify bi-directional connection between the aircraft and the tower. There are two possible communication styles: pipeline style (sequential); or broadcast style (concurrent). Both of these ar- chitectures can be expressed separately using non-generic CRADLE constructs as Rapide. However using CRADLE we are able to express both possibilities in a single specification. The air traffic control model is described in two parts: interface and configuration. The interface contains types of component and connector. The configuration contains "instance", "connection" and "communication". The structure of the architecture is adjusted by parametrisation. Thus, one architecture describes all possibilities of the system. We demonstrate how the generic and other advance features of CRADLE are properly used in this system to support its particular features and requirements.