Specification and Refinement of Dynamic Software Architectures

C. Canal, E. Pimentel, J.M. Troya

1st IFIP Conference on Software Architecture (WICSA-1)

San Antonio, (United States), February 1999

Software Architecture, pp. 107–126, Kluwer Academic Publishers, 1999, ISBN: 0-7923-8453-9


Software Architecture deals with the description, analysis and reuse of the structure of software systems. Several notations and languages for architectural specification have been recently proposed. However, some important aspects of composition, extension, and reuse deserve further research. These include language aspects, such as refinement of components and architectures, and also validation aspects, like analysis of compatibility among system components. These problems are particularly relevant in the context of open systems, where system structure can evolve dynamically, either by incorporating new components, or by replacing existing components with compatible ones. Our approach tries to address some of these open problems by combining the use of formal methods, particularly process algebras, with concepts coming from the object-oriented domain. In this paper we present LEDA, an Architecture Description Language for the specification, validation, prototyping and construction of dynamic software systems. Systems specified in LEDA can be checked for compatibility, ensuring that the behaviour of their components conforms to each other and that the systems can be safely composed. A notion of polymorphism of behaviour is used to extend and refine components while maintaining their compatibility, allowing the parameterisation of architectures, and encouraging reuse of architectural designs. (Draft)