IN201 : 9 Diagrammes d étatstransitions

Documents pareils
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Premiers Pas en Programmation Objet : les Classes et les Objets

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Héritage presque multiple en Java (1/2)

Corrigés des premiers exercices sur les classes

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Patrons de Conception (Design Patterns)

Programmer en JAVA. par Tama

TP N 57. Déploiement et renouvellement d une constellation de satellites

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

TD3: tableaux avancées, première classe et chaînes

TP1 : Initiation à Java et Eclipse

Tp 1 correction. Structures de données (IF2)

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

TD/TP PAC - Programmation n 3

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Environnements de développement (intégrés)

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Bases Java - Eclipse / Netbeans

TD/TP PAC - Programmation n 3

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Conception des systèmes répartis

Développements actuels dans le positionnement satellites GNSS - RTCM - RTK. Moritz Lauwiner / Dr. Werner Lienhart

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Langage Java. Classe de première SI

OCL - Object Constraint Language

Les structures de données. Rajae El Ouazzani

Programmation en Java IUT GEII (MC-II1) 1

Programmation avec des objets : Cours 7. Menu du jour

Devenez un véritable développeur web en 3 mois!

GEOLOCALISATION ET NAVIGATION A L AIDE DES SIGNAUX GNSS

Corrigé des exercices sur les références

Auto-évaluation Programmation en Java

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

GOL502 Industries de services

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

ACTIVITÉ DE PROGRAMMATION

Cycle de vie, processus de gestion

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Architecture Orientée Service, JSON et API REST

Rappel sur les bases de données

Algorithmique et programmation : les bases (VBA) Corrigé

Université de Bangui. Modélisons en UML

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Gestion distribuée (par sockets) de banque en Java

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Les diagrammes de modélisation

Architecture distribuée

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

as Architecture des Systèmes d Information

IPBX 02 : TP MISE EN OEUVRE RTC ET TOIP. Ce sujet comporte 4 pages de texte suivi du corrigé

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Utilisation d objets : String et ArrayList

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Projet de programmation (IK3) : TP n 1 Correction

Java Licence Professionnelle CISII,

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours 1: Java et les objets

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Remote Method Invocation en Java (RMI)

Chapitre 10. Les interfaces Comparable et Comparator 1

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

RTDS G3. Emmanuel Gaudin

TP Détection d intrusion Sommaire

Votre Réseau est-il prêt?

Le Network File System de Sun (NFS)

TP JAVASCRIPT OMI4 TP5 SRC

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

DIFFICULTÉS D ÉTUDIANTS À TROUVER DES ARCHÉTYPES DE MACHINES LORS D UNE RECHERCHE DANS UN HYPERTEXTE

Arbres binaires de recherche

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Organigramme / Algorigramme Dossier élève 1 SI

Plan du cours. Historique du langage Nouveautés de Java 7

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

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. com/webview_ software

Les arbres binaires de recherche

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

IFT2255 : Génie logiciel

Modélisation UML. Christine Solnon INSA de Lyon - 3IF 1/140.

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Chapitre VI- La validation de la composition.

Better data. Better decisions. La carière digitale, nouvel outil de suivi et de gestion de l exploitation

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

Description de la formation

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

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Transcription:

IN201 : 9 Diagrammes d étatstransitions Author : Christophe Garion <garion@isae.fr> Public Date : SUPAERO 2A : Résumé Ce sujet de TP est un sujet récapitulatif de conception. Il vous permettra également de construire un diagramme d états-transitions. 1 Objectifs Les objectifs du TP sont les suivants : construire un diagramme de classes à partir d un «cahier des charges» ; construire un diagramme d états-transitions pour modéliser le comportement d un objet complexe. 2 Présentation du problème L objectif de cet exercice est de modéliser un système de navigation par satellites (comme le GPS ou Galileo) pour réaliser un logiciel de simulation. On ne s attachera pas ici à décrire le cœur du simulateur, mais simplement à construire un modèle du système réel. Les systèmes de navigation comme GPS ou Galileo utilisent une constellation de satellites. Une constellation est constituée d un ensemble de satellites. On peut considérer qu une constellation ne possède pas de satellites si ceux-ci ne sont pas encore lancés. Une constellation est caractérisée par sa taille, et on peut ajouter un satellite dans une constellation si celle-ci n est pas encore complète. Chaque satellite évolue sur une orbite. Il existe plusieurs types d orbites différentes : par exemple, une orbite géostationnaire ou une orbite de Kepler sont deux orbites particulières. Une orbite de Kepler de type J2 est elle même une orbite de Kepler particulière. Un satellite peut embarquer des capteurs comme par exemple un radar, un altimètre ou un capteur infra-rouge. Un satellite est caractérisé par une position courante, une vitesse courante et une date courante. On peut demander à un satellite de renvoyer toutes les informations concernant sa position. Sur la Terre, les satellites d une constellation peuvent être vus par des stations sol. Celles-ci ont une position représentée par des coordonnées cartésiennes. Une station sol peut être par exemple un récepteur, qui peut lui même être un récepteur Galileo ou GPS. 3 Questions 1. proposer un modèle de classes UML de conception préliminaire (analyse) identifiant les classes, les rôles et les multiplicités (ou cardinalités) ; Revision 66fdc93, Tue Dec 4 15:52:05 2012 +0100, Christophe Garion. 1/8

2/8

2. proposer une description détaillée de la classe Satellite (attributs et opérations). Vous vous limiterez à un petit nombre d opérations nécessaires à la réalisation de cette classe. Vous considérerez que vous avez à votre disposition une classe Date ; 3. nous nous intéressons maintenant à la création des capteurs embarqués sur un satellite. Nous ne considérerons ici que les capteurs Radar et Altimetre. On suppose que chaque capteur a besoin de trois éléments pour pouvoir être construit et embarqué sur le satellite : un support physique pour mettre en place le capteur sur le satellite les instruments constituant le capteur lui-même une interface logicielle et matérielle permettant au capteur de dialoguer avec le système informatique du satellite On suppose que l on dispose donc de la hiérarche présentée sur la figure 3. On suppose également que la classe Capteur a la structure présentée sur la figure 4. Quelques précisions : la méthode initcomponents est une méthode abstraite dont le rôle est d initialiser le support, l instrument et l interface satellite du capteur. la méthode createcapteur est une factory method permettant de créer un capteur à partir d une chaîne de caractères. Cette méthode sera utilisée pour créer des capteurs. 3/8

On cherche à assurer la cohérence des composants de chaque capteur : par exemple, un capteur de type Radar ne pourra avoir utiliser que SupportRadar, InstrumentRadar et InterfaceSatRadar. Le code de la classe Capteur est donné sur le listing 1. Listing 1 La classe Capteur public abstract class Capteur { protected Support support; protected Instrument instrument; protected InterfaceSat interfacesat; public static Capteur createcapteur(string type) { Capteur c = null; if (type.equals("radar")) { c = new Radar(); } else if (type.equals("altimetre")) { c = new Altimetre(); } if (c!= null) { c.initcomponents(); } } return c; public abstract void initcomponents(); } (a) écrire un diagramme de séquence représentant la création d un capteur de type Radar. 4/8

«interface» Support SupportRadar SupportAltimetre «interface» Instrument InstrumentRadar InstrumentAltimetre «interface» InterfaceSat InterfaceSatRadar InterfaceSatAltimetre Figure 3 Hiérarchie des composants des capteurs 5/8

Capteur {abstract} # support : Support # instrument : Instrument # interfacesat : InterfaceSat + createcapteur(type : String) : Capteur + initcomponents() abstract Figure 4 La classe abstraite Capteur (b) peut-on garantir qu un capteur sera bien construit avec les composants avec cette architecture? (c) pour pouvoir construire une famille d objets, on peut utiliser le patron de conception abstract factory présenté sur la figure 6. Adaptez le patron de conception au problème de la création de capteur. La méthode initcomponent reste-t-elle abstraite? Client AbstractFactory {abstract} + createproducta() : AbstractProductA {abstract} + createproductb() : AbstractProductB {abstract} AbstractProductA {abstract} ConcreteFactory1 ConcreteFactory2 ProductA1 ProductA2 + createproducta() : ProductA1 + createproductb() : ProductB1 + createproducta() : ProductA2 + createproductb() : ProductB2 AbstractProductB {abstract} ProductB1 ProductB2 Figure 6 La patron de conception abstract factory 6/8

4. nous proposons dans cette question de modéliser grâce à un diagramme d états-transitions le comportement d un récepteur de type Galileo 2. Lorsque l on met en marche un récepteur Galileo, celui-ci cherche tout d abord à savoir s il dispose d une première approximation de la date actuelle. S il ne l a pas, il entre dans un état et : soit il dispose d une interface réseau et récupère une approximation de la date via un serveur ntp (Network Time Protocol) par exemple ; soit il attend que l utilisateur lui fournisse une date en utilisant un clavier par exemple. Lorsque le récepteur dispose d une approximation de la date actuelle, il entre dans un état dans lequel il cherche à orienter son antenne pour trouver un premier satellite en utilisant les éphémérides dont il dispose. Cette phase peut prendre un certain temps. Lorsque le récepteur a trouvé un satellite, il entre dans un nouvel état dans lequel il ajuste la date actuelle. À ce moment, dès que le récepteur va «voir» 4 satellites de la constellation, il va entrer dans un état NavigationSolution qui va lui permettre de calculer sa position et la date actuelle. Sinon, il entre dans un mode NoNavigationSolution. 2. Ce modèle de comportement est très simplifié par rapport à la réalité! 7/8

Ce mode est obligatoirement atteint dès que moins de 4 satellites sont visibles. Dans le mode NoNavigationSolution, si un certain laps de temps s écoule (modélisé par une fonction f que l on suppose connue) le récepteur va de nouveau rechercher un premier satellite. Si 4 satellites sont de nouveau visibles avant ce laps de temps, le récepteur est de nouveau capable de calculer sa position et la date actuelle. On suppose également que le récepteur Galileo est couplé à une centrale inertielle. Celle-ci permet de connaître une position pendant un certain temps. Si la position donnée par la centrale est valide, la condition INS (pour Inertial Navigation System) est vraie. Lorsque le récepteur est dans l état NoNavigationSolution, la position donnée par la centrale peut être utilisée par l utilisateur pour connaître sa position. De plus, si la durée f s est écoulée depuis l entrée du récepteur dans l état NoNavigationSolution et que la centrale inertielle est valide, le récepteur entre dans une une phase de recalibrage utilisant la centrale inertielle plutôt que de retourner directement dans l état de recherche du premier satellite. Au bout d une unité de temps, si 4 satellites sont vus, le récepteur devient alors opérationnel, sinon le récepteur recherche à nouveau un premier satellite. Cela permet de gagner éventuellement du temps par rapport à la phase d initialisation. Donner le diagramme d états-transitions correspondant au fonctionnement du récepteur. 8/8