38 research outputs found

    Preface: Special issue on Foundations of Coordination Languages and Self-adaptive Systems

    Get PDF
    International audienceModern software systems are distributed, concurrent, mobile, and often involve the composition of heterogeneous components and of stand-alone services. Theoretical models, languages and tools for coordinating, composing and adapting services are hence required. They can indeed simplify the development of complex distributed service-based systems, enable functional correctness proofs and improve reusability and maintainability of such systems. This Special Issue (SI) is dedicated to Foundations of Coordination Languages and Self-adaptive Systems. This SI is a follow-up of the FOCLASA workshop that we organized at the 15th International Conference on Software Engineering and Formal Methods (SEFM 2017), held in Trento, Italy on September 4-8, 2017. The workshop received 16 full paper submissions. After a careful reviewing process, the international Program Committee decided to select seven papers for presentation during the workshop and inclusion in the FOCLASA'17 proceedings. From these papers, the six best papers were selected and invited for an extended version to this special issue. All the submissions went through a rigorous peer review process; four papers were finally accepted and are included in this special issue. These papers provide key insights on different aspects of coordination languages and self-adaptive systems

    Features of integrated model-based co-modelling and co-simulation technology

    Get PDF
    Given the considerable ongoing research interest in collaborative multidisciplinary modelling and co-simulation, it is worth considering the features of model-based techniques and tools that deliver benefits to cyber-physical systems developers. The European project “Integrated Tool Chain for Model-based Design of Cyber-Physical Systems” (INTO-CPS) has developed a well-founded tool chain for CPS design, based on the Functional Mock-up Interface standard, and supported by methodological guidance. The focus of the project has been on the delivery of a sound foundation, an open chain of compatible and usable tools, and a set of accessible guidelines that help users adapt the technology to their development needs

    Parallel bug-finding in concurrent programs via reduced interleaving instances

    Get PDF
    Concurrency poses a major challenge for program verification, but it can also offer an opportunity to scale when subproblems can be analysed in parallel. We exploit this opportunity here and use a parametrizable code-to-code translation to generate a set of simpler program instances, each capturing a reduced set of the original program’s interleavings. These instances can then be checked independently in parallel. Our approach does not depend on the tool that is chosen for the final analysis, is compatible with weak memory models, and amplifies the effectiveness of existing tools, making them find bugs faster and with fewer resources. We use Lazy-CSeq as an off-the-shelf final verifier to demonstrate that our approach is able, already with a small number of cores, to find bugs in the hardest known concurrency benchmarks in a matter of minutes, whereas other dynamic and static tools fail to do so in hours

    Formal verification and co-simulation in the design of a synchronous motor control algorithm

    Get PDF
    Mechatronic systems are a class of cyber-physical systems, whose increasing complexity makes their validation and verification more and more difficult, while their requirements become more challenging. This paper introduces a development method based on model-based design, co-simulation and formal verification. The objective of this paper is to show the applicability of the method in an industrial setting. An application case study comes from the field of precision servo-motors, where formal verification has been used to find acceptable intervals of values for design parameters of the motor controller, which have been further explored using co-simulation to find optimal values. The reported results show that the method has been applied successfully to the case study, augmenting the current model-driven development processes by formal verification of stability, formal identification of acceptable parameter ranges, and automatic design-space exploration

    Clustering Classes in Packages for Program Comprehension

    Get PDF

    Automated test-based learning and verification of performance models for microservices systems

    Get PDF
    Effective and automated verification techniques able to provide assurances of performance and scalability are highly demanded in the context of microservices systems. In this paper, we introduce a methodology that applies specification-driven load testing to learn the behavior of the target microservices system under multiple deployment configurations. Testing is driven by realistic workload conditions sampled in production. The sampling produces a formal description of the users' behavior through a Discrete Time Markov Chain. This model drives multiple load testing sessions that query the system under test and feed a Bayesian inference process which incrementally refines the initial model to obtain a complete specification from run-time evidence as a Continuous Time Markov Chain. The complete specification is then used to conduct automated verification by using probabilistic model checking and to compute a configuration score that evaluates alternative deployment options. This paper introduces the methodology, its theoretical foundation, and the toolchain we developed to automate it. Our empirical evaluation shows its applicability, benefits, and costs on a representative microservices system benchmark. We show that the methodology detects performance issues, traces them back to system-level requirements, and, thanks to the configuration score, provides engineers with insights on deployment options. The comparison between our approach and a selected state-of-the-art baseline shows that we are able to reduce the cost up to 73% in terms of number of tests. The verification stage requires negligible execution time and memory consumption. We observed that the verification of 360 system-level requirements took ~1 minute by consuming at most 34 KB. The computation of the score involved the verification of ~7k (automatically generated) properties verified in ~72 seconds using at most ~50 KB. (C)& nbsp;2022 The Author(s). Published by Elsevier Inc.& nbsp

    Constraint Branching in Workflow Satisfiability Problem

    Get PDF
    corecore