{"title":"A transformation methodology for Capella to Event-B models with DSL verification","authors":"Khaoula Bouba , Abderrahim Ait Wakrime , Yassine Ouhammou , Redouane Benaini","doi":"10.1016/j.cola.2023.101241","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101241","url":null,"abstract":"<div><p>Capella/Arcadia helps engineers design complex system models, but as models grew in complexity, simulation and verification became necessary. An automatic model-to-model transformation approach was proposed to interpret the dynamic behavior of the semi-formal Capella models. Custom domain-specific languages were introduced to assess the syntax of these models. The approach was applied to the Adaptive Exterior Light system, transforming Capella models into Event-B models for safety verification. The paper provides traceability between Capella and Event-B meta-models to aid interpretation of verification results.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101241"},"PeriodicalIF":2.2,"publicationDate":"2023-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"92025575","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Correctness of IoT-based systems: From a DSL to a mechanised analysis","authors":"Christian Attiogbé , Jérôme Rocheteau","doi":"10.1016/j.cola.2023.101239","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101239","url":null,"abstract":"<div><p>Systems based on the Internet of Things are being widely used in industrial areas such as smart manufacturing, in smart health monitoring, in entertainment and in home automation application. They impact more and more every day life. Ensuring their correct construction, their well functioning and their reliability is an important issue for some of these systems which can be critical in case of dysfunction. The main requirements on physical architectures and control software are common to most of IoT-based systems. We propose, on the basis of the common architectural properties and the behaviour of IoT-based systems, the rigorous analysis of their intrinsic consistency properties; specific properties may also be considered and analysed.</p><p>We propose a model-based approach to help in systematically modelling and analysing these systems. Our approach focuses both on the formalisation of the model of the targeted systems for their rigorous analysis purpose, and on the design of a modelling language as a domain specific language dedicated to describe IoT-based systems. We build a generic formal model which captures the common features and the properties required for any IoT-based system. This formal model is then a parametrised model where the parameters are the specific data and properties of a given system. The proposed DSL, named <span><math><mrow><mi>τ</mi><mi>i</mi><mi>l</mi><mi>a</mi></mrow></math></span> , is used to describe an IoT system which will be submitted to formal analysis of correctness. <span><math><mrow><mi>τ</mi><mi>i</mi><mi>l</mi><mi>a</mi></mrow></math></span> is a tiny declarative language, extensible, based on a library of building component blocks available as types.</p><p>In fact, a description in <span><math><mrow><mi>τ</mi><mi>i</mi><mi>l</mi><mi>a</mi></mrow></math></span> helps to model a system, by collecting the parameters necessary to instantiate the generic formal model. Therefore the analysis requirements are based on the generic model. We experimented our approach using the proposed <span><math><mrow><mi>τ</mi><mi>i</mi><mi>l</mi><mi>a</mi></mrow></math></span> DSL for modelling and the Event-B framework for the formal analysis. The overall proposed approach is accompanied by a model editor generated to assist users in modelling an application and a prototype tool we have developed to assist the users in analysing their systems. Examples are provided.</p><p>The generic formal model is extensible; it may be profitably adapted to more general hybrid or cyber–physical systems. Moreover, our generic model is independent of the target formal modelling tools; it may be implemented in various other formal analysis environments.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101239"},"PeriodicalIF":2.2,"publicationDate":"2023-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50188351","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Easing the tuning of drone autopilots through a model-based framework","authors":"Soulimane Kamni , Antoine Bertout , Emmanuel Grolleau , Gautier Hattenberger , Yassine Ouhammou","doi":"10.1016/j.cola.2023.101240","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101240","url":null,"abstract":"<div><p>Off-the-shelf open-source autopilots are customized by practitioners to satisfy their customer’s specific needs. When custom functions require low delays and/or fast frequency, in the order of magnitude of hundreds or a couple of thousand hertz, they may impact the behavior of the underlying stabilization loop. This paper proposes a tool chain able to extract a model using a Domain-Specific Language (DSL) based on AADL (Architecture Analysis & Design Language) semantics, extended with specific needs to capture the internal behavior of autopilots. This extraction is done directly during the compilation process of the autopilot. Then, we apply on the model of an autopilot a tool to assign offsets for offset-free systems.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101240"},"PeriodicalIF":2.2,"publicationDate":"2023-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50188349","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A comparison of three solver-aided programming languages: αRby, ProB, and Rosette","authors":"Richard St-Denis","doi":"10.1016/j.cola.2023.101238","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101238","url":null,"abstract":"<div><p>The premise of this paper asserts that the source code of software programs must preserve the underlying domain knowledge in the form of declarative domain models and fully exploit the capacity of satisfiability solvers, or constraint solvers in general, to get solutions of domain-specific problem instances so as to interleave data processing with such problem-solving techniques. This way of contemplating programming upsets the usual practice of software developers and lays the foundation for an original programming paradigm that has begun to take root in a novel family of programming languages classified under the name <em>solver-aided programming language</em>. This paper explores and compares three of them: <span><math><mi>α</mi></math></span> <span>Rby</span>, <span>ProB</span>, and <span>Rosette</span>. It highlights the wide spectrum of ideas and features that emerged from these research efforts. It reveals how these initial attempts provide valuable clues for how best to design a new generation of programming languages notwithstanding the current limitations of <span><math><mi>α</mi></math></span> <span>Rby</span>, <span>ProB</span>, and <span>Rosette</span> to fully achieve the goal conveyed by the above premise.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101238"},"PeriodicalIF":2.2,"publicationDate":"2023-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50188382","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A comparison of three solver-aided programming languages: αRby, ProB, and Rosette","authors":"Richard St-Denis","doi":"10.1016/j.cola.2023.101238","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101238","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":" ","pages":""},"PeriodicalIF":2.2,"publicationDate":"2023-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"48328865","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Programming microcontrollers through high-level abstractions: The OMicroB project","authors":"Steven Varoumas , Basile Pesin , Benoît Vaugon , Emmanuel Chailloux","doi":"10.1016/j.cola.2023.101228","DOIUrl":"10.1016/j.cola.2023.101228","url":null,"abstract":"<div><p>In this paper, we present an approach for programming microcontrollers that provides more expressivity and safety than the low-level language approach traditionally used to program such devices. To this end, we provide various abstraction layers (abstraction of the microcontroller, of the electronic components of the circuit, and of concurrency) which, while being adapted to the scarce resources of the hardware, offer high-level programming traits for the development of embedded applications. The various presented abstractions make use of an OCaml virtual machine, called OMicroB, which is able to run on devices with limited resources. These take advantage of the expressivity and safety of the OCaml language (parameterized modules, advanced type system). Its extensibility allows to define a synchronous extension to manage concurrency while keeping a good level of efficiency at execution. We illustrate the value of our work on both entertainment applications and embedded software examples.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"77 ","pages":"Article 101228"},"PeriodicalIF":2.2,"publicationDate":"2023-08-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49484389","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Model consistency as a heuristic for eventual correctness","authors":"Istvan David , Hans Vangheluwe , Eugene Syriani","doi":"10.1016/j.cola.2023.101223","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101223","url":null,"abstract":"<div><p>Inconsistencies between stakeholders’ views pose a severe challenge in the engineering of complex systems. The past decades have seen a vast number of sophisticated inconsistency management techniques being developed. These techniques build on the common idea of “managing consistency instead of removing inconsistency”, as put forward by Finkelstein. While it is clear what and how to do about inconsistencies, it is less clear why inconsistency is particularly useful. After all, it is the correctness of the system that should matter, as correctness is the end-user-facing quality of the product. In this paper, we analyze this question by investigating the relationship between (in)consistency and (in)correctness. We formally prove that, contrary to intuition, consistency does not imply correctness. However, consistency is still a good heuristic for eventual correctness. We elaborate on the consequences of this assertion and provide pointers as to how to make use of it in the next generation of inconsistency management techniques.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101223"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891919","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A domain-specific language for describing machine learning datasets","authors":"Joan Giner-Miguelez , Abel Gómez , Jordi Cabot","doi":"10.1016/j.cola.2023.101209","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101209","url":null,"abstract":"<div><p>Datasets are essential for training and evaluating machine learning (ML) models. However, they are also at the root of many undesirable model behaviors, such as biased predictions. To address this issue, the machine learning community is proposing a <em>data-centric cultural shift</em>, where data issues are given the attention they deserve and more standard practices for gathering and describing datasets are discussed and established.</p><p>So far, these proposals are mostly high-level guidelines described in natural language and, as such, they are difficult to formalize and apply to particular datasets. In this sense, and inspired by these proposals, we define a new domain-specific language (DSL) to precisely describe machine learning datasets in terms of their structure, provenance, and social concerns. We believe this DSL will facilitate any ML initiative to leverage and benefit from this data-centric shift in ML (e.g., selecting the most appropriate dataset for a new project or better replicating other ML results). The DSL is implemented as a Visual Studio Code plugin, and it has been published under an open-source license.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101209"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891921","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Nelson Gregório , João Bispo , João Paulo Fernandes , Sérgio Queiroz de Medeiros
{"title":"E-APK: Energy pattern detection in decompiled android applications","authors":"Nelson Gregório , João Bispo , João Paulo Fernandes , Sérgio Queiroz de Medeiros","doi":"10.1016/j.cola.2023.101220","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101220","url":null,"abstract":"<div><p>Energy efficiency is a non-functional requirement that developers must consider, particularly when building software for battery-operated devices like mobile ones: a long-lasting battery is an essential requirement for an enjoyable user experience.</p><p>In previous studies, it has been shown that many mobile applications include inefficiencies that cause battery to be drained faster than necessary. Some of these inefficiencies result from software patterns that have been catalogued, and for which more energy-efficient alternatives are also known.</p><p>The existing catalogues, however, assume as a fundamental requirement that one has access to the source code of an application in order to be able to analyse it. This requirement makes independent energy analysis challenging, or even impossible, e.g. for a mobile user or, most significantly, an App Store trying to provide information on how efficient an application being submitted for publication is.</p><p>We study the viability of looking for known energy patterns in applications by decompiling them and analysing the resulting code. For this, we decompiled and analysed 420 open-source applications by extending an existing tool, which is now capable of transparently decompiling and analysing android applications. With the collected data, we performed a comparative study of the presence of four energy patterns between the source code and the decompiled code.</p><p>We performed two types of analysis: (i) comparing the total number of energy pattern detections; (ii) comparing the similarity between energy pattern detections. When comparing the total number of detections in source code against decompiled code, we found that 79.29% of the applications reported the same number of energy pattern detections.</p><p>To test the similarity between source code and APKs, we calculated, for each application, a similarity score based on our four implemented detectors. Of all applications, 35.76% achieved a perfect similarity score of 4, and 89.40% got a score of 3 or more out of 4. Furthermore, only two applications got a score of 0.</p><p>When viewed in tandem, the results of the two analyses we performed point in a promising direction. They provide initial evidence that static analysis techniques, typically used in source code, can be a viable method to inspect APKs when access to source code is restricted, and further research in this area is worthwhile.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101220"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891923","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jérôme Pfeiffer , Bernhard Rumpe , David Schmalzing , Andreas Wortmann
{"title":"Composition operators for modeling languages: A literature review","authors":"Jérôme Pfeiffer , Bernhard Rumpe , David Schmalzing , Andreas Wortmann","doi":"10.1016/j.cola.2023.101226","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101226","url":null,"abstract":"<div><p>Efficiently engineering modeling languages demands their reuse through composition. Research in language engineering has produced many different operators to reuse and compose languages and language parts. Unfortunately, these operate on different dimensions of languages, produce diverse results, and are distributed across various technological spaces and publications, which hampers understanding the state of language composition for researchers and practitioners. To mitigate this, we report the results of a literature review on modeling language composition operators. In this review, we identify operators, their properties, and supported language dimensions, and relate them to categories of language composition. Through this, our survey draws a new, detailed map of modeling language composition operators that can guide researchers in software language engineering in identifying uncharted territory and practitioners in employing the most suitable composition operators.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"76 ","pages":"Article 101226"},"PeriodicalIF":2.2,"publicationDate":"2023-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49891924","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}