Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Architecting families of software systems with process algebras

Published: 01 October 2002 Publication History

Abstract

Software components can give rise to several kinds of architectural mismatches when assembled together in order to form a software system. A formal description of the architecture of the resulting component-based software system may help to detect such architectural mismatches and to single out the components that cause the mismatches. In this article, we concentrate on deadlock-related architectural mismatches arising from three different causes that we identify: incompatibility between two components due to a single interaction, incompatibility between two components due to the combination of several interactions, and lack of interoperability among a set of components forming a cyclic topology. We develop a process algebra-based architectural description language called PADL, which deals with all three causes through an architectural compatibility check and an architectural interoperability check relying on standard observational equivalences. The adequacy of the architectural compatibility check is assessed on a compressing proxy system, while the adequacy of the architectural interoperability check is assessed on a cruise control system. We then address the issue of scaling the architectural compatibility and interoperability checks to architectural styles through an extension of PADL. The formalization of an architectural style is complicated by the presence of two degrees of freedom within the set of instances of the style: variability of the internal behavior of the components and variability of the topology formed by the components. As a first step towards the solution of the problem, we propose an intermediate abstraction called architectural type, whose instances differ only for the internal behavior of their components. We define an efficient architectural conformity check based on a standard observational equivalence to verify whether an architecture is an instance of an architectural type. We show that all the architectures conforming to the same architectural type possess the same compatibility and interoperability properties.

References

[1]
Abowd, G. D., Allen, R., and Garlan, D. 1995. Formalizing style to understand descriptions of software architecture. ACM Trans. Softw. Eng. Meth. 4, 319--364.
[2]
Allen, R. and Garlan, D. 1997. A formal basis for architectural connection. ACM Trans. Softw. Eng. Meth. 6, 213--249.
[3]
Allen, R. and Garlan, D. 1998. A case study in architectural modelling: the aegis system. In Proceedings of the 8th International Workshop on Software Specification and Design (IWSSD-8).
[4]
Andersen, H. R. 1995. Partial model checking. In Proceedings of the 10th IEEE International Symposium on Logic in Computer Science (LICS 1995). IEEE-CS Press, New York, 398--407.
[5]
Balsamo, S., Bernardo, M., and Simeoni, M. 2002. Combining stochastic process algebras and queueing networks for software architecture analysis. In Proceedings of the 3rd International Workshop on Software and Performance (WOSP 2002). ACM, New York, 190--202.
[6]
Bernardo, M. 2002. TwoTowers 2.0 User Manual. http://www.sti.uniurb.it/bernardo/twotowers/.
[7]
Bernardo, M., Ciancarini, P., and Donatiello, L. 2000. On the formalization of architectural types with process algebras. In Proceedings of the 8th ACM International Symposium on the Foundations of Software Engineering (FSE-8). ACM, New York, 140--148.
[8]
Bernardo, M., Ciancarini, P., and Donatiello, L. 2001. Detecting architectural mismatches in process algebraic descriptions of software systems. In Proceedings of the 1st Working IEEE/IFIP Conference on Software Architecture (WICSA 2001). IEEE-CS Press, New York, 77--86.
[9]
Bernardo, M., Donatiello, L., and Ciancarini, P. 2002. Stochastic process algebra: from an algebraic formalism to an architectural description language. In Performance Evaluation of Complex Systems: Techniques and Tools, Calzarossa, M. C., and Tucci, S., Eds. Lecture Notes in Computer Science, vol. 2459 Springer-Verlag, New York, 236--260.
[10]
Bernardo, M. and Franzè, F. 2002a. Architectural types revisited: extensible and/or connections. In Proceedings of the 5th International Conference on Fundamental Approaches to Software Engineering (FASE 2002). Lecture Notes in Computer Science, vol. 2306. Springer, New York, 113--128.
[11]
Bernardo, M. and Franzè, F. 2002b. Exogenous and endogenous extensions of architectural types. In Proceedings of the 5th International Conference on Coordination Models and Languages (COORDINATION 2002). Lecture Notes in Computer Science, vol. 2315. Springer, New York, 40--55.
[12]
Bravetti, M. and Bernardo, M. 2000. Compositional asymmetric cooperations for process algebras with probabilities, priorities, and time. In Proceedings of the 1st International Workshop on Models for Time Critical Systems (MTCS 2000). ENTCS, vol. 39(3). Elsevier, Amsterdam, The Netherlands.
[13]
Clarke, E. M., Grumberg, O., and Peled, D. A. 1999. Model Checking. MIT Press.
[14]
Clarke, E. M., Long, D. E., and McMillan, K. L. 1989. Compositional model checking. In Proceedings of the 4th IEEE International Symposium on Logic in Computer Science (LICS 1989). IEEE-CS Press, New York, 353--362.
[15]
Davio, M. 1981. Kronecker products and shuffle algebra. IEEE Trans. Comput. 30, 116--125.
[16]
Dean, T. R. and Cordy, J. R. 1995. A syntactic theory of software architecture. IEEE Trans. Softw. Eng. 21, 302--313.
[17]
DeRemer, F. and Kron, H. H. 1976. Programming-in-the-large versus programming-in-the-small. IEEE Trans. Softw. Eng. 2, 80--86.
[18]
van Glabbeek, R. J. 2001. The linear time-branching time spectrum I. The semantics of concrete, sequential processes. In Handbook of Process Algebra, Bergstra, J. A., Ponse, A., and Smolka, S. A., Eds. Elsevier, 3--99.
[19]
Hoare, C. A. R. 1985. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, New Jersey.
[20]
Inverardi, P. and Uchitel, S. 2001. Proving deadlock freedom in component-based programming. In Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering (FASE 2001). Lecture Notes in Computer Science, vol. 2029. Springer-Verlag, New York, 60--75.
[21]
Inverardi, P. and Wolf, A. L. 1995. Formal specification and analysis of software architectures using the chemical abstract machine model. IEEE Trans. Softw. Eng. 21, 373--386.
[22]
Inverardi, P. Wolf, A. L., and Yankelevich, D. 2000. Static checking of system behaviors using derived component assumptions. ACM Trans. Softw. Eng. Method. 9, 239--272.
[23]
Kramer, J. and Magee, J. 1997. Exposing the skeleton in the coordination closet. In Proceedings of the 2nd International Conference on Coordination Models and Languages (COORDINATION 1997). Lecture Notes in Computer Science, vol. 1282. Springer-Verlag, New York, 18--31.
[24]
Lavenberg, S. S., Ed. 1983. Computer Performance Modeling Handbook. Academic Press, Orlando, Fla.
[25]
Magee, J., Dulay, N., Eisenbach, S., and Kramer, J. 1995. Specifying distributed software architectures. In Proceedings of the 5th European Software Engineering Conference (ESEC 1995). Lecture Notes in Computer Science, vol. 989. Springer-Verlag, New York, 137--153.
[26]
Milner, R. 1989. Communication and Concurrency. Prentice-Hall, Englewood Cliffs, N.J.
[27]
Moriconi, M., Qian, X., and Riemenschneider, R. A. 1995. Correct architecture refinement. IEEE Trans. Softw. Eng. 21, 356--372.
[28]
Perry, D. E. and Wolf, A. L. 1992. Foundations for the study of software architecture. ACM Softw. Eng. Notes 17, 40--52.
[29]
Shaw, M., DeLine, R., Klein, D. V., Ross, T. L., Young, D. M., and Zelesnik, G. 1995. Abstractions for software architecture and tools to support them. IEEE Trans. Softw. Eng. 21, 314--335.
[30]
Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs, New Jersey.

Cited By

View all
  • (2022)Critical Challenges of Designing Software Architecture for Internet of Things (IoT) Software SystemEvolving Software Processes10.1002/9781119821779.ch11(219-240)Online publication date: 7-Jan-2022
  • (2021)Architecture-Based Semantic Description Framework for Model TransformationProceedings of the 2021 5th International Conference on Natural Language Processing and Information Retrieval10.1145/3508230.3508241(73-80)Online publication date: 17-Dec-2021
  • (2020)An MDE-Based Tool for Early Analysis of UML2.0/PSM Atomic and Composite ComponentsIEEE Systems Journal10.1109/JSYST.2019.296050114:2(1647-1657)Online publication date: Jun-2020
  • Show More Cited By

Recommendations

Reviews

Carlos G. Said

The value of approaching software design using architecture-based software methods is presented in this paper. Architecture description languages (ADLs) provide a well-defined syntax to define architectural entities. Each ADL has a formalism to represent the static and dynamic description of the elements of software architecture: system components, connectors (bindings), interfaces, and all that is needed by the ADL model. By using ADLs, we can do approximations with high-level models of software systems, not with the "source code." Most previous work has been done using static descriptions or dynamic ones where the specification does not scale. However, complex software systems (such as the reconfiguration of component connections) require that their architecture change at run time. Parallel architecture description language (PADL), outlined in the paper, is able to specify software architectures in a scalable way. In addition, the language has the capacity to construct and/or destruct components, with transparency for the architects. This paper is primarily a research document, but could also be used as source material for classroom discussions in computer science or software engineering. The objective of the paper, to describe the advantages of PADL with respect to other ADLs, is clearly and precisely presented. This objective is fulfilled with clear explanations and examples that clarify and show the applicability of the author's work. This paper is a development of previous work proposed by the author in several forums. The references are good, and are sufficient for a basic understanding of the subject and problem. This is a clear, precise paper on the evolution of ADLs. A background in algebra and logic is necessary in order to obtain maximum benefit from the work. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 11, Issue 4
October 2002
107 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/606612
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2002
Published in TOSEM Volume 11, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Architectural mismatch detection
  2. architectural styles
  3. process algebras
  4. software architectures

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Critical Challenges of Designing Software Architecture for Internet of Things (IoT) Software SystemEvolving Software Processes10.1002/9781119821779.ch11(219-240)Online publication date: 7-Jan-2022
  • (2021)Architecture-Based Semantic Description Framework for Model TransformationProceedings of the 2021 5th International Conference on Natural Language Processing and Information Retrieval10.1145/3508230.3508241(73-80)Online publication date: 17-Dec-2021
  • (2020)An MDE-Based Tool for Early Analysis of UML2.0/PSM Atomic and Composite ComponentsIEEE Systems Journal10.1109/JSYST.2019.296050114:2(1647-1657)Online publication date: Jun-2020
  • (2019)Describing Approach for Model-Driven Collaborative Application Development2019 International Conference on Artificial Intelligence and Advanced Manufacturing (AIAM)10.1109/AIAM48774.2019.00073(336-343)Online publication date: Oct-2019
  • (2018)UML2ADA for Early Verification of Concurrency Inside the UML2.0 Atomic ComponentsIntelligent Systems Design and Applications10.1007/978-3-319-76348-4_2(10-20)Online publication date: 22-Mar-2018
  • (2017)Heuristic and exact algorithms for product configuration in software product linesInternational Transactions in Operational Research10.1111/itor.1241424:6(1285-1306)Online publication date: 22-May-2017
  • (2017)Improving quality of software product line by analysing inconsistencies in feature models using an ontological rule‐based approachExpert Systems10.1111/exsy.1225635:3Online publication date: 23-Nov-2017
  • (2017)Towards a formal approach for the verification of SCA/BPEL software architectures2017 8th International Conference on Information, Intelligence, Systems & Applications (IISA)10.1109/IISA.2017.8316371(1-6)Online publication date: Aug-2017
  • (2017)A model-driven approach to catch performance antipatterns in ADL specificationsInformation and Software Technology10.1016/j.infsof.2016.11.00883:C(35-54)Online publication date: 1-Mar-2017
  • (2017)Synthesis and Verification of Self-aware Computing SystemsSelf-Aware Computing Systems10.1007/978-3-319-47474-8_11(337-373)Online publication date: 24-Jan-2017
  • Show More Cited By

View Options

Login options

Full Access

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