Book chapter

Correctness of Service Components and Service Component Ensembles
J. Combaz, S. Bensalem, F. Tiezzi, A. Margheri, R. Pugliese, J. Kofroň
Software Engineering for Collective Autonomic Systems: The ASCENS Approach

Nowadays, cyber-physical systems consist of a large and possibly unbounded number of nodes operating in a partially unknown environment to which they need to adapt. They also have strong requirements in terms of performances, resource usage, reliability, or security. To face this inherent complexity it is crucial to develop adequate tools and underlying models to analyze these properties at design time. Proposed models must be able to capture essential aspects of the behavior (e.g. interactions between the components, adaptive behavior, uncertain or changing environments), and the corresponding analysis techniques can only succeed if they exploit as much as possible the specific structure of the considered systems (e.g. large replication of the same component, hierarchical compositions). We consider qualitative analyses targeting boolean properties stating that the system behaves without any flaw, as well as quantitative analyses that evaluate expected performances according to predefined metrics (energy/memory consumption, average/maximum time to accomplish a task, probability to fulfil a goal, etc.). We also address security specific issues such as control policies and information flow.

    title = {{Correctness of Service Components and Service Component Ensembles}},
    author = {Combaz, Jacques and Bensalem, Saddek and Tiezzi, Francesco and Margheri, Andrea and Pugliese, Rosario and Kofroň, Jan},
    year = {2015},
    booktitle = {{Software Engineering for Collective Autonomic Systems: The ASCENS Approach}},
    editor = {Wirsing, Martin and Hölzl, Matthias and Koch, Nora and Mayer, Philip},
    publisher = {Springer International Publishing},
    series = {{Lecture Notes in Computer Science}},
    location = {Cham},
    doi = {10.1007/978-3-319-16310-9_3},
    isbn = {978-3-319-16310-9},
    pages = {107--159},
    url = {},