HASLab - Indexed Articles in Conferences
Permanent URI for this collection
Browse
Browsing HASLab - Indexed Articles in Conferences by Author "5625"
Results Per Page
Sort Options
-
ItemThe High-Assurance ROS Framework( 2021) Santos,A ; Alcino Cunha ; Nuno Moreira Macedo ; 5625 ; 5612
-
ItemImproving the Visualization of Alloy Instances( 2018) José Creissac Campos ; Rui Miguel Couto ; Alcino Cunha ; Nuno Moreira Macedo ; 5625 ; 5599 ; 5612 ; 6000Alloy is a lightweight formal specification language, supported by an IDE, which has proven well-suited for reasoning about software design in early development stages. The IDE provides a visualizer that produces graphical representations of analysis results, which is essential for the proper validation of the model. Alloy is a rich language but inherently static, so behavior needs to be explicitly encoded and reasoned about. Even though this is a common scenario, the visualizer presents limitations when dealing with such models. The main contribution of this paper is a principled approach to generate instance visualizations, which improves the current Alloy Visualizer, focusing on the representation of behavior. c R. Couto, J. C. Campos, N. Macedo & A. Cunha This work is licensed under the Creative Commons Attribution License.
-
ItemMerging Cloned Alloy Models with Colorful Refactorings( 2020) Alcino Cunha ; Liu,C ; Nuno Moreira Macedo ; 5612 ; 5625
-
ItemProperty-based testing for the robot operating system( 2018) André Filipe Santos ; Alcino Cunha ; Nuno Moreira Macedo ; 5625 ; 6414 ; 5612
-
ItemROSY: An elegant language to teach the pure reactive nature of robot programming( 2020) Nuno Moreira Macedo ; 5647Robotics is very appealing and is long recognized as a great way to teach programming, while drawing inspiring connections to other branches of engineering and science such as maths, physics or electronics. Although this symbiotic relationship between robotics and programming is perceived as largely beneficial, educational approaches often feel the need to hide the underlying complexity of the robotic system, but as a result fail to transmit the reactive essence of robot programming to the roboticists and programmers of the future. This paper presents ROSY, a novel language for teaching novice programmers through robotics. Its functional style is both familiar with a high-school algebra background and a materialization of the inherent reactive nature of robotic programming. Working at a higher-level of abstraction also teaches valuable design principles of decomposition of robotics software into collections of interacting controllers. Despite its simplicity, ROSY is completely valid Haskell code compatible with the ROS ecosystem. We make a convincing case for our language by demonstrating how non-trivial applications can be expressed with ease and clarity, exposing its sound functional programming foundations, and developing a web-enabled robot programming environment. © 2020 IEEE.
-
ItemROSY: An elegant language to teach the pure reactive nature of robot programming( 2020) Nuno Moreira Macedo ; Hugo Pereira Pacheco ; 5647 ; 5625Robotics is very appealing and is long recognized as a great way to teach programming, while drawing inspiring connections to other branches of engineering and science such as maths, physics or electronics. Although this symbiotic relationship between robotics and programming is perceived as largely beneficial, educational approaches often feel the need to hide the underlying complexity of the robotic system, but as a result fail to transmit the reactive essence of robot programming to the roboticists and programmers of the future. This paper presents ROSY, a novel language for teaching novice programmers through robotics. Its functional style is both familiar with a high-school algebra background and a materialization of the inherent reactive nature of robotic programming. Working at a higher-level of abstraction also teaches valuable design principles of decomposition of robotics software into collections of interacting controllers. Despite its simplicity, ROSY is completely valid Haskell code compatible with the ROS ecosystem. We make a convincing case for our language by demonstrating how non-trivial applications can be expressed with ease and clarity, exposing its sound functional programming foundations, and developing a web-enabled robot programming environment. © 2020 IEEE.
-
ItemSchema-guided Testing of Message-oriented Systems( 2022) Santos,A ; Alcino Cunha ; Nuno Moreira Macedo ; 5625 ; 5612Effective testing of message-oriented software requires describing the expected behaviour of the system and the causality relations between messages. This is often achieved with formal specifications based on temporal logics that require both first-order and metric temporal constructs - to specify constraints over data and real time. This paper proposes a technique to automatically generate tests for metric first-order temporal specifications that match well-understood specification patterns. Our approach takes in properties in a high-level specification language and identifies test schemas (strategies) that are likely to falsify the property. Schemas correspond to abstract classes of execution traces, that can be refined by introducing assumptions about the system. At the low level, concrete traces are successively produced for each schema using property-based testing principles. We instantiate this approach for a popular robotic middleware, ROS, and evaluate it on two systems, showing that schema-based test generation is effective for message-oriented software.
-
ItemSimplifying the Analysis of Software Design Variants with a Colorful Alloy( 2019) Chong Liu ; Alcino Cunha ; Nuno Moreira Macedo ; 5625 ; 5612 ; 6934Formal modeling and automatic analysis are essential to achieve a trustworthy software design prior to its implementation. Alloy and its Analyzer are a popular language and tool for this task. Frequently, rather than a single software artifact, the goal is to develop a full software product line (SPL) with many variants supporting different features. Ideally, software design languages and tools should provide support for analyzing all such variants (e.g., by helping pinpoint combinations of features that could break a property), but that is not currently the case. Even when developing a single artifact, support for multi-variant analysis is desirable to explore design alternatives. Several techniques have been proposed to simplify the implementation of SPLs. One such technique is to use background colors to identify the fragments of code associated with each feature. In this paper we propose to use that same technique for formal design, showing how to add support for features and background colors to Alloy and its Analyzer, thus easing the analysis of software design variants. Some illustrative examples and evaluation results are presented, showing the benefits and efficiency of the implemented technique. © Springer Nature Switzerland AG 2019.
-
ItemSimulation under Arbitrary Temporal Logic Constraints( 2019) Brunel,J ; Nuno Moreira Macedo ; Alcino Cunha ; Chemouil,D ; 5625 ; 5612Most model checkers provide a useful simulation mode, that allows users to explore the set of possible behaviours by interactively picking at each state which event to execute next. Traditionally this simulation mode cannot take into consideration additional temporal logic constraints, such as arbitrary fairness restrictions, substantially reducing its usability for debugging the modelled system behaviour. Similarly, when a specification is false, even if all its counter-examples combined also form a set of behaviours, most model checkers only present one of them to the user, providing little or no mechanism to explore alternatives. In this paper, we present a simple on-the-fly verification technique to allow the user to explore the behaviours that satisfy an arbitrary temporal logic specification, with an interactive process akin to simulation. This technique enables a unified interface for simulating the modelled system and exploring its counter-examples. The technique is formalised in the framework of state/event linear temporal logic and a proof of concept was implemented in an event-based variant of the Electrum framework. © J. Brunel, D. Chemouil, A. Cunha, & N. Macedo.
-
ItemStatic-Time Extraction and Analysis of the ROS Computation Graph( 2019) André Filipe Santos ; Alcino Cunha ; Nuno Moreira Macedo ; 6414 ; 5612 ; 5625The Robot Operating System (ROS) is one of the most popular open source robotic frameworks, and has contributed significantly to the fast development of robotics. Even though ROS provides many ready-made components, a robotic system is inherently complex, in particular regarding the architecture and orchestration of such components. Availability and analysis of a system's architecture at compile time is fundamental to ease comprehension and development of higher-quality software. However, ROS developers have to overcome this complexity relying mostly on testing and runtime visualisers. This work aims to enhance static-time support by proposing, firstly, a metamodel to describe the software architecture of ROS systems (the ROS Computation Graph) and, secondly, model extraction and visualisation tools for such architectural models. The provided tools allow users to specify custom-made queries over these models, enabling the static verification of relevant properties that had to be (manually) checked at runtime before. © 2019 IEEE.
-
ItemTimely Specification Repair for Alloy 6( 2022) Cerqueira,J ; Alcino Cunha ; Nuno Moreira Macedo ; 5625 ; 5612
-
ItemValidating the Hybrid ERTMS/ETCS Level 3 Concept with Electrum( 2018) Nuno Moreira Macedo ; Alcino Cunha ; 5625 ; 5612
-
ItemVerification of railway network models with EVEREST( 2022) Martins,J ; Fonseca,JM ; Costa,R ; José Creissac Campos ; Alcino Cunha ; Nuno Moreira Macedo ; Oliveira,JN ; 5612 ; 5625 ; 5599Models-at different levels of abstraction and pertaining to different engineering views-are central in the design of railway networks, in particular signalling systems. The design of such systems must follow numerous strict rules, which may vary from project to project and require information from different views. This renders manual verification of railway networks costly and error-prone. This paper presents EVEREST, a tool for automating the verification of railway network models that preserves the loosely coupled nature of the design process. To achieve this goal, EVEREST first combines two different views of a railway network model-the topology provided in signalling diagrams containing the functional infrastructure, and the precise coordinates of the elements provided in technical drawings (CAD)-in a unified model stored in the railML standard format. This railML model is then verified against a set of user-defined infrastructure rules, written in a custom modal logic that simplifies the specification of spatial constraints in the network. The violated rules can be visualized both in the signalling diagrams and technical drawings, where the element(s) responsible for the violation are highlighted. EVEREST is integrated in a long-term effort of EFACEC to implement industry-strong tools to automate and formally verify the design of railway solutions. © 2022 ACM.