A calculus for reasoning about software composition

被引:12
|
作者
Achermann, F [1 ]
Nierstrasz, O [1 ]
机构
[1] Univ Bern, Software Composit Grp, CH-3012 Bern, Switzerland
关键词
software components; process calculi; software architecture;
D O I
10.1016/j.tcs.2004.09.022
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Although the term software component has become commonplace, there is no universally accepted definition of the term, nor does there exist a common foundation for specifying various kinds of components and their compositions. We propose such a foundation. The Piccola calculus is a process calculus, based on the asynchronous pi-calculus, extended with explicit namespaces. The calculus is high level, rather than minimal, and is consequently convenient for expressing and reasoning about software components, and different styles of composition. We motivate and present the calculus, and outline how it is used to specify the semantics of Piccola, a small composition language. We demonstrate how the calculus can be used to simplify compositions by partial evaluation, and we briefly outline some other applications of the calculus to reasoning about compositional styles. (C) 2004 Elsevier B.V. All rights reserved.
引用
收藏
页码:367 / 396
页数:30
相关论文
共 50 条
  • [41] Reasoning Analytically About Password-Cracking Software
    Liu, Enze
    Nakanishi, Amanda
    Golla, Maximilian
    Cash, David
    Ur, Blase
    2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2019), 2019, : 380 - 397
  • [42] Reasoning about software using metrics and expert opinion
    Ahmad N.
    Laplante P.A.
    Innovations in Systems and Software Engineering, 2007, 3 (04) : 229 - 235
  • [43] Reasoning about software reconfigurations: The behavioural and structural perspectives
    Oliveira, Nuno
    Barbosa, Luis S.
    SCIENCE OF COMPUTER PROGRAMMING, 2015, 110 : 78 - 103
  • [44] Formal reasoning about hardware and software memory models
    Roychoudhury, A
    FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2002, 2495 : 423 - 434
  • [45] Coordinated Software Development: A Framework for Reasoning about Trace Links in Software Systems
    Ghazarian, Arbi
    2009 INTERNATIONAL CONFERENCE ON INTELLIGENT ENGINEERING SYSTEMS, 2009, : 29 - 34
  • [46] A Sound and Complete Tableau Calculus for Reasoning about only Knowing and Knowing at Most
    Rosati R.
    Studia Logica, 2001, 69 (1) : 171 - 191
  • [47] Modeling and Reasoning About Wireless Networks: A Graph-based Calculus Approach
    Liu, Shichao
    Jiang, Ying
    PROCEEDINGS 11TH 2017 INTERNATIONAL SYMPOSIUM ON THEORETICAL ASPECTS OF SOFTWARE ENGINEERING (TASE), 2017, : 133 - 140
  • [48] Reasoning about concurrent execution, prioritized interrupts, and exogenous actions in the situation calculus
    De Giacomo, G
    Lesperance, Y
    Levesque, HJ
    IJCAI-97 - PROCEEDINGS OF THE FIFTEENTH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE, VOLS 1 AND 2, 1997, : 1221 - 1226
  • [49] The Transition Calculus: A high-level formalism for reasoning about action and change
    Gooday, J
    Galton, A
    JOURNAL OF EXPERIMENTAL & THEORETICAL ARTIFICIAL INTELLIGENCE, 1997, 9 (01) : 51 - 66
  • [50] Reasoning about firewall policies through refinement and composition
    Neville, Ultan
    Foley, Simon N.
    JOURNAL OF COMPUTER SECURITY, 2018, 26 (02) : 207 - 254