SN IR 1 2014-2015 Développement logiciel Programmation Objet Programmation sous QT Projet Alarme Domestique ~ TD n 6~ Conception et Tests Unitaires Date : mars 2015 Version : 3.2 Référence : TD6 Conception et Tests Plan du document 1. Objectif...1 2. Conditions de réalisation...1 3. Recommandations...2 4. Etude de la classe CentraleDalarme...3 5. Réalisation...6 5.1. CODAGE DE LA CLASSE CODE...6 5.2. CODAGE DE LA CLASSE CENTRALEDALARME...6 5.3. INTÉGRATION DES CLASSES CLAVIER, CENTRALEDALARME ET CODE...6 1. OBJECTIF Etude Algorithmique Fiche de test unitaire Relations entre classes Composition Association Principe de codage en C++ 2. CONDITIONS DE RÉALISATION Ressources utilisées : Matériel Un PC sous Linux et sous Windows 3. RECOMMANDATIONS Logiciels La suite open office Qt-creator, Modélio L ensemble des éléments obtenus, classes, opérations, attributs doivent faire l objet d un commentaire précis et non redondant. Le nom des variables est significatif.
4. ETUDE DE LA CLASSE CentraleDalarme Rôle : 1. Écrire l algorithme de la méthode FabriquerCode() qui prend en paramètre d entrée une valeur numérique sous la forme d un octet correspondant à la touche chiffre enfoncée. Cette méthode complète le tableau combinaison attribut de la classe, ce tableau pourra ensuite être comparé à la combinaison valide dans la classe Code. Elle utilise également l attribut chiffrecourant et la constante nbchiffres de la classe CentraleDAlarme. Environnement : En entrée : En sortie : Paramètre d'entrée : Paramètre de sortie : Paramètre d'e/s : Paramètre de retour : Schéma algorithmique : Lexiques : Constantes : Variables locales : Fonctions : Conception et Tests Unitaires Page 2 sur 5
2. Proposer une fiche de test permettant de vérifier la structure du code source de la fonction FabriquerCode avec l outil de mise au point de Qt-Creator. Référence du module testé : AlarmeDomestique ::FabriquerCode Date du test : Type du test : Objectif du test : Structurel Valider la structure de l algorithme de la méthode FabriquerCode Conditions du test Etat initial Environnement du test Un programme principal appel successivement la méthode FabriquerCode avec des paramètres différents permettant de tester les structures de contrôle présentes dans la méthode. Le développement est réalisé avec Qt-Creator en mode console, L outil de mise au point permet de visualiser l évolution des variables et le cheminement de la fonction. Procédures du test Opérations Résultats attendus Conception et Tests Unitaires Page 3 sur 5
3. Le contrôle du fonctionnement de la centrale d'alarme est réparti sur les fonctions TraiterBoutonMarche(), TraiterBoutonArrêt() et ModifierCode() comme le montre le diagramme des modes et états ainsi que les diagrammes de séquences présents dans le dossier d analyse. Compléter le tableau ci-dessous en indiquant comment passer d un état à un autre en fonction de la méthode appelée : TraiterBoutonMarche (Appui sur le bouton marche pendant moins de 5 secondes) Etat de départ Transition Etat d arrivé Repos Combinaison comporte 4 chiffres + Code correcte Surveillance TraiterBoutonArrêt (appui sur le bouton arrêt) ModifierCode (appui sur le bouton marche pendant plus de 5 secondes) 4. Proposer une fiche de test permettant de réaliser un test fonctionnel de la classe CentraleDalarme (le test ce déroulera après l intégration de la classe clavier et de la classe code) Référence du module testé : AlarmeDomestique Date du test : Type du test : Objectif du test : Etat initial Fonctionnel Valider la classe AlarmeDomestique Conditions du test Environnement du test La classe Code et la classe Clavier sont intégrées au projet contenant la classe CentraleDalarme. La visualisation de l état se fera avec les leds de signalisation du clavier. Procédures du test Opérations Résultats attendus Conception et Tests Unitaires Page 4 sur 5
5. RÉALISATION 5.1. Codage de la classe Code 1. Créez un projet de type application console nommer TestCode avec Qt-Creator. 2. Sous Modelio, vérifiez la complétude de la classe Code (attributs, méthodes, commentaires) et générez les fichiers sources correspondants. Puis incorporez les fichiers code.h et code.cpp à votre projet. 3. Réalisez le codage du constructeur. Un destructeur autre que celui par défaut est-il nécessaire? Si oui, réalisez-le. 4. Réalisez le codage des méthodes ChangerCode et VérifierCode en respectant les attentes du dossier d analyse. 5. Réalisez un programme principal permettant de valider la classe Code. Pour manipuler les entrées / sorties avec l utilisateur, vous utiliserez les flux cin et cout ainsi que les extracteurs >> et <<. 5.2. Codage de la classe CentraleDalarme 6. Procédez à la génération de la classe CentraleDalarme sous Modelio dans les mêmes conditions que la classe Code. Puis modifiez votre constructeur en utilisant les éléments développés dans le TD6 (si vous étiez sous Windows, sinon vous le ferez ensuite sous linux). 5.3. Intégration des classes Clavier, CentraleDalarme et Code. 7. Récupérez les fichiers obtenus de la génération par Modelio sous Window et incorporez-les dans le projet AlarmeDomestiqueFinale sous Qt-Creator. La gestion des détecteurs est mise de cotée pour commencer (il n est pas nécessaire de les garder dans votre projet, attention de ne pas les supprimer du disque cependant). 8. Commencer le codage de la fabrication de la combinaison dans la classe CentraleDalarme à partir des étapes précédentes étudiées lors du TD6 et de l'algorithme de la préparation. 9. Dans votre classe Clavier, conformément aux diagrammes de séquence, appelez la méthode CentraleDalarme ::FabriquerCode( ) en passant en paramètre l'entier correspondant à la touche chiffre appuyer lorsque cela est nécessaire.dans les options du sous-projet, indiquer bien que vous êtes en mode debug et procédez au test structurel de FabriquerCode en utilisant l outil de mise au point votre fiche de test. Réalisez un compte-rendu de test. 10. Poursuivez par le codage des méthodes ModifierCode, TraiterBoutonMarche, TraiterBoutonArret, de la classe CentraleDalarme en utilisant l étude que vous avez faite précédemment dans la préparation et le dossier d'analyse. 11. En respectant les diagrammes de séquence, complétez le codage de la classe Clavier pour appeler les méthodes développées précédemment et gérer l'appui sur les touches marche et arrêt. Pensez également à mettre à jour la signalisation effectuée par les leds en appelant les méthodes ControlerEtatLed... du clavier dans la classe CentraleDalarme. Procéder au test fonctionnel de cette classe. Conception et Tests Unitaires Page 5 sur 5