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

    Cited By

    View all
    • (2022)Pathways for statically mining the Model-View-Controller software architecture on mobile applicationsSoft Computing - A Fusion of Foundations, Methodologies and Applications10.1007/s00500-022-06908-026:19(10493-10511)Online publication date: 1-Oct-2022
    • (2021)A CSP-Based Approach for Managing the Dynamic Reconfiguration of Software ArchitectureInternational Journal of Information Technologies and Systems Approach10.4018/IJITSA.202101010914:1(156-173)Online publication date: 1-Jan-2021
    • (2021)Specifying with Interface and Trait Abstractions in Abstract State Machines: A Controlled ExperimentACM Transactions on Software Engineering and Methodology10.1145/345096830:4(1-29)Online publication date: 23-Jul-2021
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 3
    May 2004
    102 pages
    ISSN:0163-5948
    DOI:10.1145/986710
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 May 2004
    Published in SIGSOFT Volume 29, Issue 3

    Check for updates

    Author Tags

    1. π-calculus
    2. Architecture Description Languages
    3. dynamic architectures
    4. mobile architectures
    5. specification languages

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)18
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 26 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Pathways for statically mining the Model-View-Controller software architecture on mobile applicationsSoft Computing - A Fusion of Foundations, Methodologies and Applications10.1007/s00500-022-06908-026:19(10493-10511)Online publication date: 1-Oct-2022
    • (2021)A CSP-Based Approach for Managing the Dynamic Reconfiguration of Software ArchitectureInternational Journal of Information Technologies and Systems Approach10.4018/IJITSA.202101010914:1(156-173)Online publication date: 1-Jan-2021
    • (2021)Specifying with Interface and Trait Abstractions in Abstract State Machines: A Controlled ExperimentACM Transactions on Software Engineering and Methodology10.1145/345096830:4(1-29)Online publication date: 23-Jul-2021
    • (2021)Towards fluid software architecturesProceedings of the 36th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE51524.2021.9678647(1368-1372)Online publication date: 15-Nov-2021
    • (2021)On the Understandability of Language Constructs to Structure the State and Behavior in Abstract State Machine Specifications: A Controlled ExperimentJournal of Systems and Software10.1016/j.jss.2021.110987178(110987)Online publication date: Aug-2021
    • (2021)Generating Formal Software Architecture Descriptions from Semi-Formal SysML-Based Models: A Model-Driven ApproachComputational Science and Its Applications – ICCSA 202110.1007/978-3-030-86970-0_28(394-410)Online publication date: 13-Sep-2021
    • (2020)Designing an architecture description language for nontechnical actors and purposes (NOTE-ADL)Journal of Enterprise Information Management10.1108/JEIM-06-2018-0120ahead-of-print:ahead-of-printOnline publication date: 7-Mar-2020
    • (2020)On the Verification of Mission-Related Properties in Software-intensive Systems-of-Systems Architectural DesignScience of Computer Programming10.1016/j.scico.2020.102425(102425)Online publication date: Feb-2020
    • (2019)Automatic Examining of Software Architectures on Mobile Applications Codebases2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2019.00094(595-599)Online publication date: Sep-2019
    • (2019)A calculus for dynamic architecturesScience of Computer Programming10.1016/j.scico.2019.06.001182:C(1-41)Online publication date: 1-Aug-2019
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media