Real Time Developer Studio. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

Documents pareils
RTDS G3. Emmanuel Gaudin

Synergies entre Artisan Studio et outils PLM

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Analyse,, Conception des Systèmes Informatiques

Modelio by Modeliosoft

Vérifier la qualité de vos applications logicielle de manière continue

Modélisation des interfaces matériel/logiciel

11 Février 2014 Paris nidays.fr. ni.com

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

IFT2255 : Génie logiciel

Générer du code à partir d une description de haut niveau

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Visual Paradigm Contraintes inter-associations

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Introduction aux systèmes temps réel. Iulian Ober IRIT

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Évaluation et implémentation des langages

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

DotNet. Plan. Les outils de développement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

W4 - Workflow La base des applications agiles

NFP111 Systèmes et Applications Réparties

Modèles système, modèles logiciel et modèles de code dans les applications spatiales

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Les Partenaires de IBM Rational

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Génie logiciel (Un aperçu)

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

CC30 Certificat de compétence Conception, développement et animation de sites Web

Eclipse Process Framework et Telelogic Harmony/ITSW

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Validation de la création des groupes ABM et ajout de l utilisateur SASDEMO

Tutoriel code::blocks

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

L art d ordonnancer. avec JobScheduler. François BAYART

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

UML est-il soluble dans les méthodes agiles?

Introduction au temps réel

Curriculum Vitae 1 er février 2008

Projet de développement

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Concept de machine virtuelle

Programmation Web. Madalina Croitoru IUT Montpellier

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Jean-Philippe VIOLET Solutions Architect

Introduction à MATLAB R

Applications Embarquées Critiques

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Éléments de programmation et introduction à Java

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Projet Active Object

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

Formations Solti 2013

Développement d un interpréteur OCL pour une machine virtuelle UML.

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

S1 Boostez votre productivité avec la version 9 des solutions Rational pour IBM i

Cours. Cours 8 : Révisions. Importance. Interface homme-machine

Introduction aux systèmes temps réel

Problématiques de recherche. Figure Research Agenda for service-oriented computing

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Anticiper et prédire les sinistres avec une approche Big Data

INTRODUCTION AU CMS MODX

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Comment travailler avec les logiciels Open Source

Diagrammes de Package, de déploiement et de composants UML

Solution de Mobilité SAP SUP & AFARIA. Meltz Jérôme

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne

Objecteering. La convergence SOA, UML2, BPMN, EA, pour le développement guidé par le modèle.

Nouveautés Ignition v7.7

Qualité du logiciel: Méthodes de test

IBM Power Systems - IBM i IBM Rational

Business Process Modeling (BPM)

Composants Logiciels. Le modèle de composant de CORBA. Plan

Nicolas Hanteville. for(e=n;s<i;c++){attitude();} Sur environnement Microsoft Windows

Logiciels et Systèmes Embarqués :

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

pythonocc: une plateforme de développement agile d applications CAO.

Cours en ligne Développement Java pour le web

Patrons de Conception (Design Patterns)

Ingénierie des Modèles. Méta-modélisation

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

FORMATION TALEND. Page 1 sur 9

Processus d Informatisation

Intégration de l interface graphique de Ptidej dans Eclipse

ECLIPSE ET PDT (Php development tools)

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

DES SYSTÈMES D INFORMATION

Cours Bases de données

Transcription:

Real Time Developer Studio Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

TPE Française PragmaDev Dédiée au développement d un outil de modélisation pour le développement des systèmes communicants. Bénéficiaire depuis 2006

Partenaires

Références Aéro/Défense Automobile Télécoms Semi-conducteur Universités : ENST, ENSEEIHT, Polytechnica Bucarest, Telecom Beijing Distributeurs: Amérique, Asie, Europe

Projets

Pérennité Droit d accès au code source en cas de défaillance: Economique Technique Stratégique Audit du code source Possibilité de reprise par un tiers Intégration continue

Philosophie Développer un outil basé sur les besoins des utilisateurs.

Segment cible Systèmes communicants (Event driven) Historiquement embarqué & temps réel Application Architecture en modules s exécutant en parallèle Communication Synchronisation Module 1 Module 2 Module 3 Message queue Sémaphore driver OS-RTOS-scheduler hardware driver

Un réel besoin Le logiciel double tous les deux ans. Le volume final rend extrêmement difficile de garantir le niveau de qualité et de test avec les process et les outils traditionnels. Wind River Market Survey of Device Software Testing Trends and Quality Concerns in the Embedded Industry - Juin 2010. Ne pas oublier la règle des 1:10:100 Le coût de développement n est qu une partie du coût total de possession d un logiciel. Cependant le process de développement a un impact significatif sur ce coût total. Total Cost of Ownership: Development is (only) Job One by Daniel D. Galorath - Juin 2008. Source: James Martin study

Un réel besoin de modélisation Se concentrer sur le Quoi plutôt que sur le Comment, Modéliser c est communiquer et documenter, La lisibilité des systèmes complexes devient critique: qui construirait une maison sans dessiner le moindre plan? Maîtrise de la productivité, Amélioration de la qualité.

Caractéristiques d un bon langage de modélisation Le modèle abstrait doit être indépendant de la plateforme d implémentation, Le modèle abstrait doit pouvoir être traduit sur une plateforme d implémentation, Pour cela on s appuie généralement sur une machine virtuelle qui offre: un certain nombre de services, une sémantique d action.

SDL UML Les langages existants Specification and Description Language est un standard de l ITU-T. Evènementiel, Utilisé par l ETSI pour standardiser les protocoles de télécommunications, Formel (complete et non-ambigu). Unified Modeling Language est un standard de l OMG. Peut être utilisé pour représenter tous types de systèmes, Informel. SysML System Modelling Language AADL Architecture Analysis Description Language MARTE profile Modeling and Analysis of Real-Time and Embedded systems Z.109 Profil UML basé sur SDL Lustre / Esterel Synchronous programming languages for the development of complex reactive systems MATLAB MAtrix LABoratory Autosar AUTomotive Open System Architecture SART Structured Analysis for Real Time (obsolete)

Positionnement des langages Requirements Architecture Analysis URN AADL SysML UML SDL MARTE Matlab Vérification statique Specification Design Generic Generic HW/SW HW/SW Async SW Sync SW La vérification dynamique est essentielle car les exigences sont dynamiques. Vérification dynamique

Pas de spécificité temps réel UML UML1.x est trop générique pour décrire la dynamique du modèle. UML 2.x a introduit des profils spécifiques par domaine: Les outils ont implémenté des profils propriétaires, Les utilisateurs passent plus de temps à définir leur profil que leur système, Il existe un profil standard basé sur le SDL: Z.109. Tendance à la baisse: UBM 2013 Embedded Market Study: -27%, 2013 modeling technologies and habits on-line survey: -15%.

Intérêts du SDL Les niveaux d abstraction graphiques du SDL (architecture, communication, comportement, services) correspondent au besoin. Le SDL étant formel il est possible de simuler le modèle. Le SDL étant formel on peut générer tout ou partie du code. Le SDL est orienté objet et permet donc une réutilisation aisée de composants logiciels existants. Les systèmes étant globalement asynchrones (GALS), le SDL peut être utilisé au niveau système. SDL a les caractéristiques pour décrire un bon PIM. SDL est reconnu par les autorités de certification (European Aviation Safety Agency Certification Memorandum, ETSI, ESA)

Gains du SDL Des années de pratique ont permis de mesurer quantitativement les gains apportés par l utilisation du SDL Code C: 35 à 50 fautes par 1000 lignes Code SDL: 8 fautes par 1000 lignes Réduction globale du cycle de développement de l ordre de 35% Réduction de près de 50% dans la branche gauche du cycle en V Réduction moindre dans la branche droite du fait du décalage avec la réalité technique

Les problèmes d implémentation du SDL Tous les modules logiciels (RTOS, drivers) disponibles proposent des interfaces C ainsi que les modules existants au sein de l entreprise, Des concepts classiques dans le temps réel ne sont pas présents dans le SDL, La syntaxe SDL n est pas adaptée au codage. La réutilisation de composants logiciels existants est difficile, L interfaçage avec le C n est pas direct (driver ou RTOS), Les développeurs sont perdus, Le code généré est illisible,

La solution d implémentation: SDL-RT Utiliser les concepts UML à très haut niveau: analyse / expression des besoins. Conserver les niveaux d abstraction Analyse UML graphiques du SDL (architecture, communication, comportement). Utiliser la syntaxe et les types de Spécification SDL SDL-RT données du langage C à la place de ceux du SDL. Supprimer les concepts SDL sans réalité technique d implémentation. Conception C C++ Compléter les concepts SDL pour coller à la réalité (interruptions, Temps réel sémaphores).

SDL-RT SDL-RT : Permet de généraliser l utilisation de SDL à toutes les applications temps réel s appuyant sur un RTOS, Standard de l ITU-T depuis décembre 2012 dans la Z.104 de SDL 2010, Est un profil UML pour les applications temps réel, Téléchargeable gratuitement sur http://www.sdl-rt.org.

SDL Specification and Description Language, standard de l ITU-T pour décrire les spécifications détaillées des protocoles afin d assurer l inter opérabilité des implémentations. Mis à jour majeure tous les 4 ans depuis 1976. Version majeures: SDL 1988: Version de maturité SDL 1992: Introduction de l orientation objet SDL 2000: Alignement UML SDL 2010: Support des types C dans la Z.104 Conférence annuelle SDL Forum (http://www.sdl-forum.org/) SAM workshop (satellite event of Models conference) 11 outils commerciaux, 10 outils dans le domaine public. Technologie intégrée dans le framework TASTE de l ESA

Relations entre les classes statiques (C++) et dynamiques (SDL) Vues: Librairie de composants

Vues: Architecture et Communication

Vues: Comportement et Données Types de données abstraits en SDL. Types C/C++ en SDL-RT. Process A

Vues: Services du système d exploitation Prise de sémaphore Le timer «claque» Démarrage d un timer Etat intermédiaire Le sémaphore est libéré

Vue déploiement physique Vues: Systèmes distribués

Modèle Librairie de composants Architecture du système Interfaces Déploiement de l application Concepts temps réel Points clés du code

MSC: une vue dynamique Message Sequence Chart Les lignes verticales représentent une tâche, l environnement ou un sémaphore, Les flèches représentent des échanges de messages, une manipulation de sémaphore ou de timer. Utilisations en amont et en aval: Spécification dynamique sous forme de scénario Trace d exécution

RTDS: les langages supportés Analyse UML Spécification SDL Z.100 SDL-RT TTCN-3 Conception C C++ Informel Formel Semi formel Testing

RTDS: les langages supportés Modélisation informelle pour l expressions des besoins en UML Edition Génération de squelettes C++ Modélisation semi-formelle pour la conception en SDL-RT Edition Vérification syntaxique et sémantique Génération de code Débogue graphique Modélisation formelle pour la spécification en SDL Z.100 Edition Vérification syntaxique et sémantique Simulation Verification Génération de code Débogue graphique

Simulateur Véritable débogueur des modèles formels basé sur la sémantique du langage Points d arrêts et pas à pas dans les modèles, Opérateurs externes ou interactifs, Traces dynamiques MSC, Connexion d une IHM ou d un outil externe par socket.

La génération de code Classes statiques en squelette C++. Classes dynamique en C ou C++. Le code est lisible. Profils de génération avec wizard Le code généré à partir du modèle: intègre l adaptation des RTOS: FreeRTOS, VxWorks, OSE, OSE Epsilon, CMX RTX, Nucleus, Posix, Win32, ThreadX, ou uitron, propose un scheduler, est libre d utilisation, documenté pour personnalisation.

Architecture de débogue S appuie sur un débogueur C hôte ou sur cible pour débogue graphique. Model C code generator Generated C code compiler External C/C++ Model editor socket Binary RTOS cible MSC tracer Text editor Model debugger Real Time Developer Studio tools Third party tools Source code Binary code socket / COM / pipe C debugger MinGW Tornado Tasking gdb XRAY Multi

S appuie sur la sémantique d exécution du processeur ou du RTOS. Le débogueur Points d arrêts et pas à pas sur les diagrammes et/ou dans les fichiers C, Traces dynamiques MSC, Interface de prototypage, Connexion d un outil externe par socket.

Garder le lien avec le modèle Switch entre Modèle source Code généré

Outil: les traces MSC Traces d exécutions: Etats, Evènements, Sémaphores, Timers. Filtrage du niveau de trace Affichage du temps système MSC Diff permet de vérifier: La conformité, La non-régression.

Couverture du modèle Vue graphique de la couverture du modèle Possibilité de merge

Interface de prototypage Widgets de base et possibilité d insérer une image. Connait les entrées et les sorties du modèle. Se connecte automatiquement au simulateur ou au débogueur.

La génération de documentation Publications logiques (état, transition, partition, diagramme) Commentaires précédent et suivant la publication Styles de paragraphes Styles de caractères Formats d exportation RTF OpenDocument HTML SGML Elements exportés Publications avec textes Entrées d index Entrée de table des matières

La génération de documentation Un document La documentation générée Une publication

Test Basé sur le standard international TTCN-3: Definition des types de données, Définition de Templates, Cas de Test, Control d Execution. Connection automatique au Simulateur: Points d arrêt dans le modèle ou la suite de test, Verdict apparait dans la trace d exécution.

Support TTCN-3 Langage textuel Simulateur avec Test manager Générateur de code C++ Génération de MSC à partir de TTCN-3 Génération de TTCN-3 à partir de MSC Génération de TTCN-3 à partir d une propriété (via Verimag) sur un modèle Génération de TTCN-3 pour couvrir toutes les transitions d un modèle (à venir)

Intégration continue Spécification Simulation Tests de Validation Conception Simulation Exécution Tests d intégration Implémentation Exécution Test unitaires

Vérification de propriétés Partenariat avec des laboratoires spécialisé: Simulation exhaustive, Résolution symbolique. Propriétés: Couverture fonctionnelle, Propriétés statiques ou dynamiques, Vérification de propriétés, Objectif de tests. Fonctionnalité RTDS: Export, Exécute un script, Récupération des résultats.

Mise en oeuvre Modèle SDL translate to file Langage pivot Propriétés Observateur executes Résolution Exploration Cas de test Analyse TTCN MSC socket Scénarios résultat

Génération de test Requirements Simulation Exécution Traces Modèle Objectifs de test Tests Couverture

Property Sequence Chart Projet Européen PRESTO: Vérification de propriétés fonctionnelles. Vérification de propriétés nonfonctionnelles. Outil gratuit: PragmaDev Tracer

Intégration dans le framework de l ESA ASN.1 AADL ASN.1 ASN.1 Matlab Encodeurs / Décodeurs RTDS Encodeurs / Décodeurs Scade Encodeurs / Décodeurs Ada Loi de contrôle Système réactif Loi de contrôle Générique

/* _PRAGMADEV_START*/ /* _PRAGMADEV_TASK_START */ i = 0; j = 0; /* _PRAGMADEV_TASK_END */ /* _PRAGMADEV_NEXTSTATE Idle*/ /* _PRAGMADEV_STATE Idle*/ /* _PRAGMADEV_INPUT Error(); */ /* _PRAGMADEV_NEXTSTATE ErrorState*/ /* _PRAGMADEV_INPUT Valueof(coor); */ /* _PRAGMADEV_DECISION coor == 3 */ if ( coor == 3 ) /* _PRAGMADEV_BRANCH true */ /* _PRAGMADEV_TASK_START */ {x = 5;} /* _PRAGMADEV_TASK_END */ /* _PRAGMADEV_NEXTSTATE Idle*/ /* _PRAGMADEV_BRANCH false */ else /* _PRAGMADEV_TASK_START */ {x = 7;} /* _PRAGMADEV_TASK_END */ /* _PRAGMADEV_NEXTSTATE Idle*/ /* _PRAGMADEV_ENDDECISION */ /* _PRAGMADEV_ENDSTATE*/ /* _PRAGMADEV_STATE ErrorState*/ /* _PRAGMADEV_INPUT End(); */ /* _PRAGMADEV_STOP */ /* _PRAGMADEV_ENDSTATE*/ Génération de modèle A partir de commentaires dans le code existant Génération d architecture possible

La gestion de projet Format de stockage textuel en XML permet une gestion de configuration aisée Exportation des diagrammes au format PNG, JPEG, PS, HTML, Publish and subscribe et génération de documentation RTF, OpenDocument, HTML, et SGML Informations de traçabilité et intégration de Reqtify Support des plateformes: Solaris, Windows, Linux. Licences flottantes

Conclusion Trois niveaux de modélisation: Informel, Semi-formel, Formel. Outils pour: Documenter, Simuler, Valider, Tester. Basé sur des standards internationaux.

Roadmap Court terme: PragmaList: use case de validation. Version MacOS X. Moyen terme: Support de nouveaux outils tiers (debug, RTOS). Verticalisation (ferroviaire, IoT, M2M). Long terme: Support de la Z.104. Nouvelle ergonomie.