Next: 2.3 Process Algebras
Up: 2 Position
Previous: 2.1 Software Architecture
Despite of the importance of architectural aspects in software development, their descriptions have been traditionally limited to the use of certain idioms [SG94], such as client/server architecture , layered architecture , etc. These textual indications were generally accompanied with informal box-and-line diagrams. However, these descriptions lack of a precise meaning, which limit their utility to a great extent [AAG93].
Only in the 90's appeared the first Architectural Description Languages (ADLs). ADLs address the need for expressive notation in architectural design. They try to provide precise descriptions of the glue for combining components into larger systems. However, most of the work is to be done yet [Gar95]. While the proposed notations seem useful for the description of complex software systems, most of them are not formally based (see the section on Comparison), which prevents the analysis and proof of the properties of the systems and architectures described. In addition, several significant issues, such as parameterization or inheritance, are not usually addressed.
In order to avoid some of these limitations, our interests focus on the application of formal methods to SA. Formal specifications have a precise meaning derived from the semantics of the notation used and they admit several forms of reasoning, providing a formal basis for ADLs and allowing the development of verification tools.
Carlos Canal, Ernesto Pimentel, and Jose M. Troya