skip to main content
article

π-ADL: an Architecture Description Language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures

Published:01 May 2004Publication History
Skip Abstract Section

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.

References

  1. Abrial J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Allen R.: A Formal Approach to Software Architectures. PhD Thesis, Carnegie Mellon University, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Allen R., Douence R., Garlan D.: Specifying and Analyzing Dynamic Software Architectures. In Fundamental Approaches to Software Engineering, LNCS 1382, Springer Verlag, 1998.]]Google ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. Bernardo M., Ciancarini P., Donatiello L.: Architecting Systems with Process Algebras. Technical Report UBLCS-2001-7, July 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. Brown A.W.: An Introduction to Model Driven Architecture -- Part I: MDA and Today's Systems. The Rational Edge, February 2004.]]Google ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle Scholar
  16. Davies J., Woodcock J.: Using Z: Specification, Refinement and Proof. Prentice Hall International Series in Computer Science, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. DeLine R.: Toward User-Defined Element Types and Architectural Styles. Proceedings of the 2nd International Software Architecture Workshop, San Francisco, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Fitzgerald J., Larsen P.: Modelling Systems: Practical Tools and Techniques for Software Development, Cambridge University Press, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. Garlan D., Monroe R., Wile D.: ACME: An Architecture Description Interchange Language. Proceedings of CASCON'97, Toronto, November 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarCross RefCross Ref
  25. IEEE Std 1471-2000: IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, October 2000.]]Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. Kozen D.: Results on the Propositional μ-Calculus. Theoretical Computer Science 27:333--354, 1983.]]Google ScholarGoogle ScholarCross RefCross Ref
  29. 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 ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. Martí-Oliet N., Meseguer J.: Rewriting Logic: Roadmap and Bibliography. Theoretical Computer Science, 2001.]]Google ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle Scholar
  36. Milner R.: Communicating and Mobile Systems: The Pi-Calculus. Cambridge University Press, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Monroe R.: Capturing Software Architecture Design Expertise with ARMANI. Technical Report CMU-CS-98-163, Carnegie Mellon University, January 2001.]]Google ScholarGoogle Scholar
  38. Moriconi M., Qian X., Riemenschneider R.A.: Correct Architecture Refinement. IEEE Transactions on Software Engineering, Vol. 21, No. 4, April 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle Scholar
  40. Morrison R.: On the Development of S-algol. PhD Thesis, University of St Andrews, 1979.]]Google ScholarGoogle Scholar
  41. Oquendo F.: The ArchWare Architecture Description Language: Tutorial. Report R1.1-1, ArchWare European RTD Project, IST-2001-32360, March 2003.]]Google ScholarGoogle Scholar
  42. Oquendo F.: The ArchWare Architecture Refinement Language. Deliverable D6.1b, ArchWare European RTD Project, IST-2001-32360, December 2003.]]Google ScholarGoogle Scholar
  43. 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 ScholarGoogle Scholar
  44. 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 ScholarGoogle ScholarCross RefCross Ref
  45. Philipps J., Rumpe B.: Refinement of Pipe and Filter Architectures. Proceedings of FM'99, LNCS 1708, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. RAPIDE Design Team: Guide to the RAPIDE 1.0. Language Reference Manuals, Stanford University, July 1997.]]Google ScholarGoogle Scholar
  47. Sangiorgi D.: Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms. PhD Thesis, University of Edinburgh, 1992.]]Google ScholarGoogle Scholar
  48. Sangiorgi D., Walker D.: The Pi-Calculus: A Theory of Mobile Processes, Cambridge Universtity Press, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Stirling C.: Modal and Temporal Properties of Processes. Springer Verlag, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Stolen K., Broy M.: Specification and Development of Interactive Systems. Springer Verlag, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Strachey C.: Fundamental Concepts in Programming Languages. Oxford University Press, Oxford, 1967.]]Google ScholarGoogle Scholar
  52. Tennent R.D.: Language Design Methods based on Semantic Principles. Acta Informatica 8, 1977.]]Google ScholarGoogle Scholar
  53. 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 ScholarGoogle Scholar
  54. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader