# PragmaDev Studio

PragmaDev Studio initialement appelé Real Time Developer Studio ou RTDS est un outil introduit par la société PragmaDev en 2002. Son objectif initial était de supporter la technologie de modélisation SDL-RT, un mélange du standard LDS de l'UIT-T et du langage C. Depuis la version 5.0 lancée le 7 octobre 2015 RTDS a été renommé PragmaDev Studio. Studio est organisé en quatre modules indépendants: Specifier, Developer, Tester, Tracer. Depuis la version 5.1 lancée le 28 novembre 2016 l'outil est disponible gratuitement pour les petits projets.

## Langage de Description et de Specification

Le Langage de Description et de Spécification -LDS- est un langage de modélisation standardisé par l'UIT-T pour décrire les systèmes communicants. LDS est graphique et intègre un langage d'action avec une sémantique d'exécution ce qui rend les modèles LDS exécutables. De ce fait LDS est considéré comme formel car il est complet et non ambigu. En Anglais LDS est appelé SDL Specification and Description Language. SDL-RT est une variante de SDL dans laquelle le langage d'action est remplacé par des instructions en code C ou C++. SDL-RT est considéré comme semi-formel car c'est un mélange de code et de modèle. L'UIT-T a standardisé un profil UML basé sur le SDL ce qui par extension rend tout outil SDL une sorte d'outil UML.

## Simulation

PragmaDev Specifier intègre un simulateur de modèle LDS dont les fonctionnalités sont proches d'un débogueur de modèle. Il est possible de mettre des points d'arrêt graphiques, de visualiser les valeurs des variables, de voir les timers actifs. Durant l'exécution une trace graphique est générée au format Message Sequence Chart de l'UIT-T.

## Génération de code

PragmaDev Developer peut générer du code C ou C++ à partir d'un modèle SDL-RT. PragmaDev Studio peut aussi générer du code à partir d'un modèle SDL. Le code généré peut être adapté sur n'importe quel système d'exploitation temps réel ou scheduler. L'outil propose aussi des intégrations avec des débogueurs tels que gdb de telle sorte que l'utilisateur a l'impression de déboguer son modèle et pas le code généré.

## Vérification de modèle

PragmaDev Studio peut exporter le modèle sous différents formats tels que IF, FIACRE, ou XLIA. Ces formats servent d'entrée à des outils académiques de vérification tels que IFx de Verimag, TINA du LAAS, ou Diversity du CEA LIST.

## Test

PragmaDev Tester supporte le standard international de test TTCN-3. Comme pour les modèles, l'outil peut simuler les tests en confrontation avec un modèle, ou du code de test peut être généré pour exécution contre une implémentation (SUT: System Under Test).

## Test basé sur les modèles

* PragmaDev Studio peut générer des cas de test au format TTCN-3 à partir de traces d'exécution au format Message Sequence Charts .
* Des cas de tests peuvent aussi être générés à partir d'un modèle LDS via une technologie tierce telle que IFx de Verimag ou Diversity du CEA LIST. Pour cela PragmaDev Studio exporte le modèle vers un langage pivot qui est pris en entrée par l'outil tiers.

## Historique des versions de PragmaDev Studio

| Année de sortie | Version | Résumé |
| 2002 | 1.x | Support de SDL-RT avec génération de code pour VxWorks et débogue avec Tornado. |
| 2003 | 2.x | Support UML. |
| 2004 | 3.x | Support SDL avec simulateur de modèles. |
| 2009 | 4.x | Support du TTCN-3 pour le test. |
| 2015 | 5.x | Nouvelle ergonomie. Nouvelle organisation en modules: Specifier, Developer, Tester, Tracer. |

## PragmaDev

L'éditeur de RTDS, puis de PragmaDev Studio est la société privée PragmaDev. PragmaDev a été créée en 2001 et est basée à Paris en France.