Présentation de projet Open ModelSphere HTML Reports
Plugiciel pour Open ModelSphere (OMS) –Fonctionnalité : Générer des rapports HTML pour un projet OMS –Objectif : Permettre la diffusion, sur des sites internes ou externes, de modèles fait dans OMS sous forme de rapports, tout en offrant une interface conviviale pour générer et consulter ces derniers
Open ModelSphere HTML Reports Plugiciel pour Open ModelSphere (OMS) –Le plugiciel et son dossier de conception sont disponibles à l’adresse :
Open ModelSphere HTML Reports L’équipe de conception –Superviseur du projet : Marco Savard –Chargé de projet : Marc-Oliver Richard –Développeurs Vincent Bouchard David-Alexandre Charland Kevin Harvey –Développé pour la firme Neosapiens
Open ModelSphere HTML Reports Objectifs –Rapports au format HTML –Tous les types de diagrammes d’OMS sont traités par le plugiciel (diagrammes UML, de données, de processus d’affaires) –Inclus toutes les informations et tous les éléments présents dans la section d’OMS visée par la génération de rapport
Open ModelSphere HTML Reports Objectifs (suite) –Interface des rapports semblable à celle d’OMS –Interface cliquable pour explorer les détails des objets –Une option de zoom doit permettre d’explorer les diagrammes –Langue locale de l’application utilisée pour générer le rapport (français ou anglais)
Open ModelSphere HTML Reports Spécifications –Compatible avec la version 3.2 d’OMS (en développement) et ultérieure –Fonctionne sous la license LGPL –Développé en Java, sous Eclipse Galiléo –Normes de programmation de Sun Microsystems –Plugiciel développé sans modification directe au coeur d’OMS
Architecture Logicielle
Première solution Séparation des types de données –Beaucoup de types différents –Parfois difficile de discerner le type de diagramme –Évolutivité réduite –Maintenance difficile
Solution retenue Extraction générique des données –Aucune connaissance du type des données –Évolution automatique du plugiciel –Architecture simplifiée
Composantes Packages principaux: –“Controller” du plugin –Repr. des données (DataComponent) –Extraction des données/diagrammes –Génération de l’HTML –Internationalisation
Qualité Logicielle Norme ISO/IEC –Qualités externes du logiciel Norme ISO/IEC –Qualités internes du logiciel
Qualités Externes
ISO/IEC Conformité des spécifications du client –Interface, zones cliquables, explorateur, zoom Efficacité –Génération du rapport, chargement de la page Fiabilité –Gestion des exceptions
ISO/IEC Robustesse –Modèles invalides, interruption du processus Convivialité –Icônes, rétroaction, un seul clic requis Internationalisation –Supporte l’anglais et le français
ISO/IEC Structure du HTML produit –Répertoire pour chacune des composantes –Nommage des fichiers –“TimeStamp” pour éviter l’écrasement de fichier
Qualités Internes
ISO/IEC Extensibilité –Capacité à traiter de petits et gros modèles Évolutivité –Le plugin fonctionnera encore même si le méta- modèle d’OMS change ou que d’autres types d’objets s’ajoutent Portabilité –Supporté par IE 8, FireFox 3.5, Safari 4.0.5, Google Chrome 4.1
ISO/IEC Sécurité –Disponibilité, confidentialité, intégrité Contraintes Temps-Réel –Rétroaction à l’usager à l’aide du “contrôleur” Complexité, Cohésion, Couplage –Eclipse Metrics n’a révélé qu’une seule méthode “critique”
ISO/IEC Internationalité –Aucun “hardcoding” Qualité du code source –FindBugs n’a révélé qu’une seule “erreur” majeure (corrigée) –Lisibilité, commentaires, nomenclature, respect des normes de “Sun MicroSystems”
Fonctionnement du Plugin
Processus Extraction de Données
Processus Génération HTML
Démonstration
Organisation du projet
Organisation 3 spirales –Début de projet Prise de connaissance du projet Configuration des logiciels –Développement Création du plugiciel Extraction des données Génération du HTML
Organisation 3 spirales (suites) –Finalisation Finalisation du développement Tests Finalisation du dossier de conception Planification des tâches –Utilisation de MS Project
Organisation Rencontres –Avec l’équipe 1 à 2 fois par semaine À distance Revue de l’avancement Division des tâches –Avec le client Environ aux 2 semaines Revue de l’avancement
Post-Mortem
Revue de l’organisation La planification détaillée aurait pu être mise à jour plus fréquemment La période de prise de connaissance du projet et de révision de concepts a dépassé l’échéancier Le développement logiciel aurait dû débuter plus tôt Les nombreuses rencontres avec le client et/ou entre membres de l’équipe ont favorisé le bon déroulement du développement et l’adaptation rapide aux changements Les nombreuses rencontres ont permis de minimiser les effets négatifs causés par le retard présent lors de l’initialisation de la phase de développement
Bons coups Le plugiciel s’adapte aux changements dans l’application OMS étant donné le caractère générique du processus d’extraction Respect des normes XHTML 1.0 strict et CSS 2.0 Respect de l’interface d'Open ModelSphere dans le rapport HTML généré Robustesse du plugiciel assurée par une bonne gestion des exceptions
Bons coups Performance au niveau de la rapidité de la génération et du chargement du rapport par un navigateur Les rapports fonctionne sur divers navigateurs (IE, FireFox, Safari, Chrome) Bonne gestion des demandes de changements Le plugiciel peut générer les rapports en anglais et en français
Points à améliorer Absence de tests automatisés, due au caractère générique de l’extraction dans l’application Absence d’un style architectural prédominant Tri alphabétique des éléments extraits Ajout d'une fonction de zoom
Points à améliorer Ajout d'une rétroaction lors de la génération des fichiers de propriétés Les commentaires et indications dans le code pourraient être plus élaborés Gestion des diagrammes à multiple pages
Questions ?