25th Ada-Europe

International Conference on
Reliable Software Technologies
(AEiC 2021)

7-10 June 2021, Virtual Event

Tutorials

Improve the benefits of coming to the conference further by attending our tutorials, all given by well-known experts.

Programming mobile robots with ROS2 and the RCLAda Ada Client Library

Alejandro R. Mosteo, Centro Universitario de la Defensa, Zaragoza, Spain

Monday 7th, 13:00 CEST

The Robot Operating System (ROS/ROS2) is a de facto standard in many fields of robotics research, with increasing presence in the industry. RCLAda is a binding to the ROS2 framework that enables programming for ROS2 in pure Ada with seamless integration into the ROS2 workflow.

During this tutorial, participants will learn how to install ROS2 and RCLAda, the necessary basic information about the ROS2 build system and RCLAda integration, and will program basic examples and simulated mobile robots of the kind used in the DARPA Subterranean Challenge.

Level: Introductory (in regard to robotics), intermediate (in regard to Ada)

Reasons for attending

The Robot Operating System (ROS) is a de facto standard in many fields of robotics research, with increasing presence in the industry. RCLAda is a client library for ROS2 that enables developing robots with the benefit of Ada strengths. In this tutorial, participants will learn how to install ROS2 and RCLAda, the necessary information about the ROS2 build system and RCLAda integration, and will test and program basic examples and simulated mobile robots of the kind used in the last DARPA Subterranean Challenge.

Presenter
 
Alejandro R. Mosteo is a professor at Centro Universitario de la Defensa, Zaragoza, Spain, since 2011. He received the Ph.D. in 2010 from the Universidad de Zaragoza, Spain. He has been a postgraduate researcher at Laboratoire d'Analyse et d'Architecture des Systèmes (LAAS), Toulouse, France. He is a member of the Robotics, Perception, and Real‐Time group at Universidad de Zaragoza. He became a member of the steering committee of the Technical Committee on Multi‐Robot Systems of the IEEE Robotics and Automation Society in 2015. His Ada advocacy career dates back to 2006 with his affiliation to the Ada‐Spain society for the promotion of the Ada language. Recently, he has joined the editorial board of the quarterly Ada User Journal as News Editor in 2019. In 2020 he has been appointed coordinator of the Ada working group within the Spanish standardization body (UNE). His research pursuits include multi‐robot cooperation, decentralized algorithms, and autonomous air vehicles.

 

Introduction to the development of safety‐critical software

Jean-Pierre Rosen, Adalog, France

Monday 7th, 13:00 CEST

This tutorial presents the fundamental notions that make the development of safety‐critical software different from the development of more casual software. It presents the context, the applicable standards, and the techniques used for achieving high reliability. It explains why Ada and Spark are especially suited for writing safety‐critical software. Although required for demanding applications, the general principles that are detailed can be applied to, and help improve, all kinds of software development.

Level: Intermediate. Expected audience experience: Casual knowledge of Ada.

Reasons for attending

  • Understand the stakes of the development of safety‐critical software.
  • Learn the various rules governing the development of safe software, and understand their motivation.
  • Consider the tools that are available to improve quality and safety of software.
  • Apply some principles to more casual software for higher reliability.

Presenter
 
P Rosen is a professional teacher, teaching Ada (since 1979, it was preliminary Ada!), methods, and software engineering. He runs Adalog, a company specialized in providing training, consultancy, and services in all areas connected to the Ada language and software engineering. He is chairman of Ada‐France.

 

Parallel programming with Ada and OpenMP

Sara Royuela (Barcelona Supercomputing Center, Spain), S. Tucker Taft (AdaCore, USA), Luis Miguel Pinho (Polytechnic Institute of Porto, Portugal)

Monday 7th, 13:00 CEST

OpenMP is one of the most widely used frameworks for the development of parallel programs. OpenMP provides a set of annotations which allows for a compiler (or pre‐processing tool) to generate parallel code from sequential code (C, C++ or Fortran), as well as a runtime that manages the concurrency and parallel execution (usually on top of a multithreaded OS).

The forthcoming revision of Ada specifies a lightweight parallel model, through a set of constructs that provide a guide to the compiler, to generate the required code for the parallel execution. This lightweight model maps well to one of the OpenMP approaches, which allows parallel Ada programs to execute on top of OpenMP runtimes, as well as roll‐ your‐own light‐weight thread schedulers.

This tutorial will show how to develop Ada parallel programs, using both OpenMP as well as a light‐weight thread scheduler.

Level: Intermediate/Advanced

Reasons for attending

The omnipresence of parallel platforms in all areas of computing, from cloud to embedded, requires that software developers take into consideration the potential of parallelism, as well as its pitfalls. In this context, attendees will be provided with a general understanding of parallel programming with both OpenMP and the forthcoming Ada parallel model, with a good insight on the direction Ada has been moving in this important domain.

Presenters
 
Dr. Sara Royuela is a post‐doctoral researcher at Barcelona Supercomputing Center (BSC). She got her PhD in Computers Architecture from the Polytechnic University of Catalonia (UPC) with cum laude distinction in 2018. Sara is specialized in High Performance Computing, and she has great background on Real Time systems. She has a vast experience on compilers and analysis tools for enhancing performance and programmability of parallel programming models. Sara is a passionate and enthusiastic person that loves her work and enjoys sharing it with others.

S. Tucker Taft is VP and Director of Language Research at AdaCore. His specialties include programming language design, advanced static analysis tools, formal methods, real‐time systems, parallel programming, and model‐based development. Tucker was lead designer of the Ada 95 programming language, and is a member of the ISO Rapporteur Group that developed Ada 2005 and Ada 2012. Tucker has also been designing and implementing a parallel programming language called "ParaSail," and defining parallel programming extensions for Ada as part of the forthcoming Ada 2022 standard.

Luis Miguel Pinho is a Professor at the School of Engineering of the Polytechnic Institute of Porto, leading research activities in, among others, real‐time and embedded parallel programming models. Miguel participated in more than 25 R&D projects and published more than 100 papers in international conferences and journals in the area of real‐time embedded systems. He was coordinator of the FP7 R&D European Project Parallel SOftware framework for time‐CRitical mAny‐core sysTEmS, which focused in the development of real‐time technology for parallel platforms, with both OpenMP and Ada. Miguel is a member of ISO/IEC JTC1/SC22/WG9, a board member of Ada‐Europe and Technical Editor of ACM Ada Letters.

Timing verification from UML & MARTE design models: techniques & tools

Laurent Rioux (Thales Research and Technology, France), Julio Medina (Universidad de Cantabria, Spain) and Shuai Li (CEA LIST, France)

Monday 7th, 13:00 CEST

The objective of this tutorial is to explain how to apply timing verification from design models at an early stage to verify their timing requirements, avoiding the late discovery of costly timing errors. The tutorial will introduce the tools and techniques used to produce design models that, though being useful for code generation, shall be also able to be trustily subject to a suitable form of timing verification. Depending on the severity of the need for verification the design models will be restricted and furtherly transformed so as to serve as input to either (hard) schedulability analysis, or (soft) simulation techniques. The seminar will address first a panoramic view of the field, then it will describe the concepts, languages, tools, and techniques involved, mainly related to the UML and MARTE standards, and finally show their application by means of a well‐known industrial case study from the avionics domain. In addition, pedagogical exercises will be proposed to the attendees to fix concepts and train the usage of the tools.

Level: Intermediate

Reasons for attending

If timing verification is needed in your design flow, this tutorial is for you. Using a practical use case it presents UML/ MARTE based tools and techniques, which produce early stage design models useful to architect your application, generate code, and transform it to be trustfully subject to a suitable form of timing verification.

Presenter
 
Laurent Rioux has a doctorate in computer science on real‐time and embedded systems at the University of Orsay (Paris XI). He is a senior expert in model‐based software and system engineering for critical systems at Thales Research and Technology (TRT), Critical Embedded Systems Lab. He worked in this research domain more than 15 years. He is also known for his work on the definition and the standardization of a UML profile for real‐time embedded systems: MARTE. Today, he is leading a research thematic in aim to handle Non‐Functional Properties (NFP) in the Model‐Driven Engineering approach to design and certify complex and real‐time and embedded systems. In particular, his research activities include identifying new ways to design critical systems with the use of formal techniques to verify performance, energy and security properties of these systems.

Julio Medina is an Associate Professor in the University of Cantabria. He received the Ph.D. in Telecom Engineering (Electronics) in 2005. He has a Master in Real‐Time Systems and made a post‐doc in the LISE lab of CEA LIST, defining and writing several sections of the MARTE standard. He studied the modelling for schedulability analysis of distributed RT systems with SPT, predecessor of MARTE, and continued this effort in the MARTE Revision Task Force of the OMG as well as in other related standards like SySML and the semantics for fUML‐based composite structures and state machines.

Shuai Li is a researcher at the CEA LIST institute in France. He obtained a Ph.D. in computer science on the topic of schedulability analysis of TDMA software radio protocols, while working at THALES. Shuai is a committer on open‐source projects such as Eclipse Papyrus UML and Linux Foundation ACUMOS AI. He builds model‐driven software engineering tools that include scheduling analysis with MARTE, formal models of computation and communication, service‐ oriented architecture modelers, and code generators. He currently leads a team of a dozen collaborators to build a SOA platform for extremely resource constrained environments. In his free time, Shuai teaches system and software engineering with UML, SysML, and MARTE, at the French National Institute of Nuclear Sciences and Techniques (INSTN), part of the Paris‐Saclay University.

Programming shared memory computers

Jan Verschelde, University of Illinois at Chicago, USA

Monday 7th, 13:00 CEST

Many multicore processors are capable to speedup computations with a significant magnitude, reducing for example to one hour some computation that would otherwise take an entire day to complete. The Ada programming language provides a high level and effective tool to speedup computations on multicore processors. The design of parallel programs starts with the granularity level of the parallelism with careful attention to memory management. We decide on the size of each job, check the mapping of jobs to threads, and on the location of the input and output data for each job. In the evaluation of parallel programs we tune the work load to reach the desired level of efficiency and throughput. At UIC, he teaches graduate courses on Scientific Software and Introduction to Supercomputing

Level:

Intermediate: between novice programmers and expert software developers.

  • Participants should know how to run and modify Ada programs.
  • Most examples will be mathematical. Some exposure or appreciation of subjects such as calculus and linear algebra will be helpful.
  • Basic skills to work with the Terminal on a Linux computer.

Reasons for attending

As all computers are parallel shared memory computers, all good software can therefore also run in parallel. Ada is well suited to write good parallel software.

Presenter
 
Jan Verschelde obtained a PhD in Computer Science in 1996 at the Katholieke Universiteit Leuven (KUL). After postdoctoral fellowships at the KUL, Michigan State University, and the Mathematical Sciences Research Institute, he became a professor in the department of Mathematics, Statistics and Computer Science at the University of Illinois at Chicago (UIC) in 2000. The focus of his research is on algorithms and software to solve systems of polynomial equations, a problem in computational algebraic geometry. He is the main developer of the software PHCpack. At UIC, he teaches graduate courses on Scientific Software and Introduction to Supercomputing.