Abstract
A key aspect of the design of any software system is its architecture. An architecture description, from a runtime perspective, should provide a formal specification of the architecture in terms of components and connectors and how they are composed together. Further, a dynamic or mobile architecture description must provide a specification of how the architecture of the software system can change at runtime. Enabling specification of dynamic and mobile architectures is a large challenge for an Architecture Description Language (ADL). This article describes π-ADL, a novel ADL that has been designed in the ArchWare European Project to address specification of dynamic and mobile architectures. It is a formal, well-founded theoretically language based on the higher-order typed π-calculus. While most ADLs focus on describing software architectures from a structural viewpoint, π-ADL focuses on formally describing architectures encompassing both the structural and behavioural viewpoints. The π-ADL design principles, concepts and notation are presented. How π-ADL can be used for specifying static, dynamic and mobile architectures is illustrated through case studies. The π-ADL toolset is outlined.
- Abrial J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, 1996.]] Google ScholarDigital Library
- Allen R.: A Formal Approach to Software Architectures. PhD Thesis, Carnegie Mellon University, 1997.]] Google ScholarDigital Library
- Allen R., Douence R., Garlan D.: Specifying and Analyzing Dynamic Software Architectures. In Fundamental Approaches to Software Engineering, LNCS 1382, Springer Verlag, 1998.]]Google Scholar
- Alloui I., Garavel H., Mateescu R., Oquendo F.: The ArchWare Architecture Analysis Language: Syntax and Semantics. Deliverable D3.1b, ArchWare European RTD Project, IST-2001-32360, January 2003.]]Google Scholar
- Alloui I., Oquendo F.: Supporting Decentralised Software-intensive Processes using ZETA Component-based Architecture Description Language. Enterprise Information Systems, Joaquim Filipe (Ed.), Kluwer Academic Publishers, 2002.]]Google Scholar
- Alloui I., Oquendo F.: The ArchWare Architecture Description Language: UML Profile for Architecting with ArchWare ADL. Deliverable D1.4b, ArchWare European RTD Project, IST-2001--32360, June 2003.]]Google Scholar
- Alloui I., Oquendo F.: Describing Software-intensive Process Architectures using a UML-based ADL, Proceedings of the 6th International Conference on Enterprise Information Systems (ICEIS'04), Porto, Portugal, April 2004.]]Google Scholar
- Bernardo M., Ciancarini P., Donatiello L.: Architecting Systems with Process Algebras. Technical Report UBLCS-2001-7, July 2001.]] Google ScholarDigital Library
- Bernardo M., Ciancarini P., Donatiello L.: Detecting Architectural Mismatches in Process Algebraic Descriptions of Software Systems, Proceedings of the 2nd Working IEEE/IFIP Conference on Software Architecture, Amsterdam, IEEE-CS Press, August 2001.]] Google ScholarDigital Library
- Binns P., Engelhart M., Jackson M., Vestal S.: Domain-Specific Software Architectures for Guidance, Navigation, and Control. International Journal of Software Engineering and Knowledge Engineering. 1996.]]Google Scholar
- Bolusset T., Oquendo F.: Formal Refinement of Software Architectures Based on Rewriting Logic, ZB2002 International Workshop on Refinement of Critical Systems: Methods, Tools and Experience, Grenoble, Janvier 2002.]]Google Scholar
- Brown A.W.: An Introduction to Model Driven Architecture -- Part I: MDA and Today's Systems. The Rational Edge, February 2004.]]Google Scholar
- Chaudet C., Greenwood M., Oquendo F., Warboys B.: Architecture-Driven Software Engineering: Specifying, Generating, and Evolving Component-Based Software Systems. IEE Journal: Software Engineering, Vol. 147, No. 6, UK, December 2000.]]Google Scholar
- Chaudet C., Oquendo F.: A Formal Architecture Description Language Based on Process Algebra for Evolving Software Systems. Proceedings of the 15th IEEE International Conference on Automated Software Engineering (ASE'00). IEEE Computer Society, Grenoble, September 2000.]] Google ScholarDigital Library
- Cimpan S., Leymonerie F., Oquendo F.: The ArchWare Foundation Styles Library. Report R1.3-1, ArchWare European RTD Project, IST-2001-32360, June 2003.]]Google Scholar
- Davies J., Woodcock J.: Using Z: Specification, Refinement and Proof. Prentice Hall International Series in Computer Science, 1996.]] Google ScholarDigital Library
- DeLine R.: Toward User-Defined Element Types and Architectural Styles. Proceedings of the 2nd International Software Architecture Workshop, San Francisco, 1996.]] Google ScholarDigital Library
- Fitzgerald J., Larsen P.: Modelling Systems: Practical Tools and Techniques for Software Development, Cambridge University Press, 1998.]] Google ScholarDigital Library
- Gallo F. (Ed.): Annual Report: Project Achievements in 2002. Appendix B: Survey of State-of-the-Art and Typical Usage Scenario for ArchWare ADL and AAL. Deliverable D0.4.1, ArchWare European RTD Project, IST-2001-32360, February 2003.]]Google Scholar
- Garavel H., Lang F., Mateescu R.: An Overview of CADP 2001. European Association for Software Science and Technology (EASST) Newsletter, Vol. 4, August 2002.]]Google Scholar
- Garlan D., Allen R., Ockerbloom J.: Exploiting Style in Architectural Design Environments. Proceedings of the ACM SIGSOFT Symposium on Foundations of Software Engineering, New Orleans, 1994.]] Google ScholarDigital Library
- Garlan D., Monroe R., Wile D.: ACME: An Architecture Description Interchange Language. Proceedings of CASCON'97, Toronto, November 1997.]] Google ScholarDigital Library
- Garlan D., Monroe, R., Wile D.: ACME: Architectural Description of Component-Based Systems. Foundations of Component-Based Systems, Leavens G.T, and Sitaraman M. (Eds.), Cambridge University Press, 2000.]] Google ScholarDigital Library
- Greenwood M., Balasubramaniam D., Cimpan S., Kirby N.C., Mickan K., Morrison R., Oquendo F., Robertson I., Seet W., Snowdon R., Warboys B., Zirintsis E.: Process Support for Evolving Active Architectures, Proceedings of the 9th European Workshop on Software Process Technology, LNCS 2786, Springer Verlag, Helsinki, September 2003.]]Google ScholarCross Ref
- IEEE Std 1471-2000: IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, October 2000.]]Google Scholar
- Inverardi P., Wolf A.: Formal Specification an Analysis of Software Architectures using the Chemical Abstract Machine Model. IEEE Transactions on Software Engineering, Vol. 21, No. 4, April 1995.]] Google ScholarDigital Library
- Inverardi P., Wolf A., Yankelevich D.: Static Checking of System Behaviors using Derived Component Assumptions. ACM Transactions on Software Engineering and Methodology, Vol. 9, No. 3, July 2000.]] Google ScholarDigital Library
- Kozen D.: Results on the Propositional μ-Calculus. Theoretical Computer Science 27:333--354, 1983.]]Google ScholarCross Ref
- Leymonerie F., Cimpan S., Oquendo F. : Extension d'un langage de description architecturale pour la prise en compte des styles architecturaux : application à J2EE. Proceedings of the 14th International Conference on Software and Systems Engineering and their Applications. Paris, December 2001 (In French).]]Google Scholar
- Leymonerie F., Cimpan S., Oquendo F., "État de l'art sur les styles architecturaux : classification et comparaison des langages de description d'architectures logicielles", Revue Génie Logiciel, No. 62, September 2002 (In French).]]Google Scholar
- Luckham D.C., Kenney J.J., Augustin L.M., Vera J., Bryan D., Mann W.: Specification and Analysis of System Architecture Using RAPIDE. IEEE Transactions on Software Engineering, Vol. 21, No. 4, April 1995.]] Google ScholarDigital Library
- Magee J., Dulay N., Eisenbach S., Kramer J.: Specifying Distributed Software Architectures. Proceedings of the 5th European Software Engineering Conference, Sitges, Spain, September 1995.]] Google ScholarDigital Library
- Martí-Oliet N., Meseguer J.: Rewriting Logic: Roadmap and Bibliography. Theoretical Computer Science, 2001.]]Google Scholar
- Mateescu R., Garavel H.: XTL: A Meta-Language and Tool for Temporal Logic Model-Checking. Proceedings of the 1st International Workshop on Software Tools for Technology Transfer, Aalborg, Denmark, July 1998.]]Google Scholar
- Medvidovic N., Taylor R.: A Classification and Comparison Framework for Architecture Description Languages. Technical Report UCI-ICS-97-02, Department of Information and Computer Science, University of California. Irvine, February 1997.]]Google Scholar
- Milner R.: Communicating and Mobile Systems: The Pi-Calculus. Cambridge University Press, 1999.]] Google ScholarDigital Library
- Monroe R.: Capturing Software Architecture Design Expertise with ARMANI. Technical Report CMU-CS-98-163, Carnegie Mellon University, January 2001.]]Google Scholar
- Moriconi M., Qian X., Riemenschneider R.A.: Correct Architecture Refinement. IEEE Transactions on Software Engineering, Vol. 21, No. 4, April 1995.]] Google ScholarDigital Library
- Moriconi M., Riemenschneider R.A.: Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies. Computer Science Laboratory, SRI International, Technical Report SRI-CSL-97-01, March 1997.]]Google Scholar
- Morrison R.: On the Development of S-algol. PhD Thesis, University of St Andrews, 1979.]]Google Scholar
- Oquendo F.: The ArchWare Architecture Description Language: Tutorial. Report R1.1-1, ArchWare European RTD Project, IST-2001-32360, March 2003.]]Google Scholar
- Oquendo F.: The ArchWare Architecture Refinement Language. Deliverable D6.1b, ArchWare European RTD Project, IST-2001-32360, December 2003.]]Google Scholar
- Oquendo F., Alloui I., Cimpan S., Verjus H.: The ArchWare Architecture Description Language: Abstract Syntax and Formal Semantics. Deliverable D1.1b, ArchWare European RTD Project, IST-2001-32360, December 2002.]]Google Scholar
- Oquendo F., Warboys B., Morrison R., Dindeleux R., Gallo F., Garavel H., Occhipinti C.: ArchWare: Architecting Evolvable Software, Proceedings of the 1st European Workshop on Software Architecture, LNCS 3047, Springer Verlag, St Andrews, UK, May 2004.]]Google ScholarCross Ref
- Philipps J., Rumpe B.: Refinement of Pipe and Filter Architectures. Proceedings of FM'99, LNCS 1708, 1999.]] Google ScholarDigital Library
- RAPIDE Design Team: Guide to the RAPIDE 1.0. Language Reference Manuals, Stanford University, July 1997.]]Google Scholar
- Sangiorgi D.: Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms. PhD Thesis, University of Edinburgh, 1992.]]Google Scholar
- Sangiorgi D., Walker D.: The Pi-Calculus: A Theory of Mobile Processes, Cambridge Universtity Press, 2001.]] Google ScholarDigital Library
- Stirling C.: Modal and Temporal Properties of Processes. Springer Verlag, 2001.]] Google ScholarDigital Library
- Stolen K., Broy M.: Specification and Development of Interactive Systems. Springer Verlag, 2001.]] Google ScholarDigital Library
- Strachey C.: Fundamental Concepts in Programming Languages. Oxford University Press, Oxford, 1967.]]Google Scholar
- Tennent R.D.: Language Design Methods based on Semantic Principles. Acta Informatica 8, 1977.]]Google Scholar
- Verjus H., Oquendo F.: The ArchWare Architecture Description Language: XML Concrete Syntax. Deliverable D1.3b, ArchWare European RTD Project, IST-2001-32360, June 2003.]]Google Scholar
- Wile D.: AML: An Architecture Meta Language. Proceedings of the 14th International Conference on Automated Software Engineering, pp. 183--190. Cocoa Beach. October 1999.]] Google ScholarDigital Library
Recommendations
π-Method: a model-driven formal method for architecture-centric software engineering
Software systems have become increasingly complex and are often used in highly dynamic, distributed and mobile environments. Formal development of such software systems in order to guarantee their completeness and correctness is a large research ...
Breeze/ADL: Graph Grammar Support for an XML-Based Software Architecture Description Language
COMPSAC '13: Proceedings of the 2013 IEEE 37th Annual Computer Software and Applications ConferenceArchitecture description languages (ADLs) play an important role in specifying the software architectures. While most of these ADLs are unable to deal with the change directly, especially for dynamic evolution of software systems. This paper proposes an ...
π-Net ADL: an architecture description language for multi-agent systems
ICIC'05: Proceedings of the 2005 international conference on Advances in Intelligent Computing - Volume Part IIMulti-agent systems (MAS) are studied from the point of view of software architecture. As the existing architecture description languages (ADLs) are difficult to describe the semantics of MAS, a novel architecture description language for MAS (π-net ADL)...
Comments