Modular real-time clock constraint specification language
Langage modulaire pour la spécification de contraintes d'horloges logiques et temps-réel
Résumé
Safety-critical real-time (reactive) systems are systems in control of complex processes and which failure is not acceptable due to severe consequences for the system, infrastructure and people. In such systems, the timing of the reaction is as critical as doing the right action. In this work, we focus on the former. For this we use an abstraction of time, known as logical time. It completely abstracts away the instants at which events occur by their relation to each other. The language we base our work on, the Clock Constraint Specification Language (CCSL), is purely based on logical clocks and is designed to describe temporal requirements of systems. From the application of the language, we notice that pure logical approach is not always adequate or efficient, as specification languages for such systems do need to express real-time relations. And attempts to simulate using pure logical clocks fail in general for large systems due to the combinatorial complexity. Which in turn prompts us to find ways to abstract or solve the specifications using approximate methods and renounce exact solutions. Thus, in this work, we propose a series of extensions to the original language, orthogonal but complementing each other. These cover real-time and auxiliary constraints to increase expressiveness, parametrization of constraints and modular framework with a mechanism akin to refinement. We define them formally and motivate their design by using several use cases. We report our experiments with abstract interpretation in specification analyses, propose several modifications to make it more precise and demonstrate them on the mentioned use cases. Finally, we introduce our own polyhedra-based ad-hoc solver for a fragment of the language.
Les systèmes en temps réel critiques (réactifs) sont des systèmes qui contrôlent des processus complexes et dont la faute n'est pas acceptable en raison des graves conséquences pour le système, l'infrastructure et les humains. Dans ces systèmes, le moment de la réaction est aussi critique que l'exécution de la bonne action. Dans ce travail, nous nous concentrons sur le premier. Pour ce faire, nous utilisons une abstraction du temps, connue sous le nom de temps logique. Il abstrait totalement les instants auxquels les événements se produisent par leur position relative. Le langage sur lequel nous basons notre travail, Clock Constraint Specification Language (CCSL), est purement basé sur la notion d'horloge logique et conçu pour décrire les exigences temporelles des systèmes. L'application du langage nous a permis de constater que l'approche purement logique n'est pas toujours adéquate. Le langage de spécification doit permettre de décrire des relations temps réel. Leur simulation purement avec des horloges logiques échoue en général en raison de la différence de complexité. Ceci nous incite à trouver des moyens d'abstraire ou de résoudre en utilisant des méthodes moins exactes. Ainsi, dans ce travail, nous proposons une série d'extensions du langage original, orthogonales mais se complétant. Celles-ci couvrent les contraintes en temps réel et les contraintes auxiliaires pour augmenter l'expressivité, la paramétrisation des contraintes et le cadre modulaire avec une fonction similaire au raffinement. Nous les définissons formellement et motivons leur conception à l'aide de plusieurs cas d'utilisation. Nous rapportons nos expériences avec l'interprétation abstraite dans l'analyse des spécifications et proposons plusieurs modifications pour la rendre plus précise. Enfin, nous introduisons notre propre solveur ad hoc utilisant une représentation polyédrique sur un fragment du langage.
Origine | Version validée par le jury (STAR) |
---|