Ouverture ModelSphere, un outil de génie logiciel Marco Savard marco.savard@neosapiens.com Gino Pelletier gino.pelletier@neosapiens.com Département d informatique et de génie logiciel 6 octobre 2009 Page 1
Présentation Contexte Histoire d'une libération de code (D. Pascot) Statut Fonctionnalités de l'outil Architecture et réalisation d'un projet complexe en java Mise sur pied d'une communauté Discussion libre Page 2
Obtenir la présentation Sur JavaForge: www.javaforge.com Chercher le projet Open ModelSphere Onglet Documents Répertoire Présentations Sur mon site personnel: www.marco-savard.com/openmodelsphere/presentations Page 3
Open ModelSphere : Contexte Un outil libre de génie logiciel développé à Québec (le seul?) Licence GPL En tant qu'utilisateur, vous pouvez l'utiliser librement, le distribuer librement, dans vos cours et dans vos futurs emplois. En tant que développeur, vous pouvez apprendre en analysant le code source. Si vous découvrez des lacunes, vous pouvez librement modifier l'outil, et soumettre vos améliorations. Opportunités pour des projets de fin d études cet hiver. Page 4
Histoire d'une libération de code (D. Pascot) Années 1980: SystemOID (1982-1988) 1983: Lisa 1984: Macintosh Consoi-MCD: Équipe de professeurs et d'étudiants de l'université Laval Début années 1990: Environnement Développement Commun: Couche GUI multi-platforme en C Le premier outil graphique de génie logiciel devient un produit commercial 1998 : Projet de recherche de SILVERRUN sur les technologies Java et Swing. 2008: Grandite libère les sources de ModelSphere Page 5
Open ModelSphere : Statut Des dizaines de téléchargements par jour, à travers le monde. Une cinquantaine de membres actifs dans le projet JavaForge (Québec, Japon, Allemagne). Quatre développeurs internes. Enseigné en SIO, utilisé par des ministères et des compagnies internationales. Avantages pour notre firme de consultation : Développement d une expertise pour réaliser nos mandats plus efficacement et à moindre coût. Développement sur mesure pour un client ayant un besoin spécifique (Intel). Version 3.1 prévue le 3 novembre 2009 Page 6
Partie II Fonctionnalités de l'outil Page 7
Fonctionnalités de l'outil Les trois dimensions Dimension relationnelle Conceptuel, logique et physique Dimension objet relationnelle, objet et des processus UML 1.4 : diagrammes de classes, cas d utilisation, séquence, etc. Dimension des processus d affaires Processus, flux, ressources, swimlanes, diagramme hiérarchique Page 8
Les trois dimensions de la modélisation Processus (Fonction) Données (relationnel) Classes (UML) Page 9
Avantages de l'outil Rétro-ingénierie Conception Comprendre rapidement un logiciel complexe (carte routière) Vues partielles d un logiciel Détecter des failles potentielles Génération des clés, des noms physiques, des règles référentielles Vérification d intégrité Génération de code Travail en équipe et en version Diagrammes et représentations multiples Comparaison/Intégration Versionnage, modification récente Page 10
Relationnelle : niveau conceptuel Page 11
Relationnelle : niveau logique Page 12
Relationnelle : niveau physique Page 13
Objet : Diagramme de classes UML Page 14
Objet : Diagramme de classes à la Java Page 15
Objet : Diagramme de classes à la Keys and Locks Page 16
Objet : Cas d utilisation Page 17
Objet : Cas de séquence Page 18
Processus d affaires : vue normale Page 19
Processus d affaires : vue hiérarchique Page 20
Cas types d utilisation Modélisation OO Conversion modèle de données Changement de formalismes Génération PK, FK, règles ref., noms physiques, DDL. Intégrité référentielle Gros modèles Voisinage, espace de travail, intégration, modifications récentes, versionnage. Page 21
Cas 1: Vérification d intégrité (1/3) Ce modèle de données contient plusieurs erreurs. Pouvez-vous les trouvez? 1. Cliquer Page 22
Cas 1: Vérification d intégrité (2/3) 1. Cliquer Ce modèle de données contient plusieurs erreurs. Pouvez-vous les trouvez? Les erreurs et avertissements sont indiqués par des préfixes devant les colonnes invalides. 3. Cliquer Page 23
Cas 1: Vérification d intégrité (3/3) Le rapport offre une ou plusieurs solutions pour chaque erreur. Il suffit de cliquer sur le lien pour appliquer la correction Page 24
Cas 2: Analyse des processus d affaires (1/2) Projet informatique est le processusracine Conception est un processus éclaté La durée et le coût cumulés du processus Conception. Des ressources associées à des processus feuilles Page 25
Cas 2: Analyse des processus d affaires (2/2) On peut associer une durée à un processus feuille et observer l impact sur le projet et les sous-projets. On peut associer un coût à une ressource, et observer l impact sur le coût total du projet. Page 26
Partie III Architecture et réalisation d un projet complexe Page 27
Architecture et réalisation d'un projet complexe Complexe? 494 KLOC en Java Environ 20 années-personnes Atouts graphiques Soutenu par un métamodèle interne Architecture en trois couches Les plugiciels Concepts OO Concepts des bases de données Métamodèle (catalogue) Undo/Redo (transactions ACIDes) (Pas encore multi-utilisateurs) Page 28
Atouts graphiques Multidiagramme Duplicats Styles graphiques Préfixes IU consistante Fenêtres redimensionnables; disposition graphique (layout) Internationalisation, localisation en français et anglais Page 29
Métamodèle : modélisation et génération GenMeta 274 fichiers; 24 KLOC en Java Page 30
Architecture en trois couches Plug-in GPL Plug-in Sms (GPL) 1287 classes (LGPL, 210 classes et commerciaux) Sms (LGPL) Jack (LGPL) 815 classes Page 31
Partie IV Mise sur pied d'une communauté Page 32
Mise sur pied d une communauté Site pour les utilisateurs www.modelsphere.org Novices Windows: autoextrwindows (setup.exe) Avancés: batch file Site pour les contributeurs www.javaforge.com Gestionnaire SVN, Wiki, Forum, Métriques Cinq niveaux de contributeurs Page 33
Cinq niveaux d utilisateurs Administrateur Développeur interne Développeur externe Documenteur Utilisateur Page 34
1er rôle : utilisateur Administrateur Développeur interne Développeur externe Documenteur Utilisateur Utilisateur novice ou avancé de ModelSphere Soumet des bogues, suggestions d amélioration de l application Visualise les problèmes et solutions soumis par les autres utilisateurs Participe aux forums de discussion Page 35
2e rôle : documenteur Administrateur Développeur interne Développeur externe Utilisateur avancé Créé et met à jour des documents pour les autres utilisateurs Accès en écriture aux documents, mais sans accès au code source Documenteur Utilisateur Page 36
3e rôle : développeur externe Administrateur Développeur interne Développeur externe Documenteur Utilisateur Télécharge les sources sur un poste local et teste la version en cours de développement Souvent le premier à tester et à trouver les bogues. Peut modifier les sources localement, mais ne peut téléverser les modifications Propose des changements au logiciel à un developpeur interne pour révision de code Apprend l architecture de ModelSphere en étudiant le code source Développeurs externes: ministère neosapiens.com de la 2009 Santé (MSSS) Page 37 Visualise les sources existentes
Développeur externe Conditions d adhésion Connaissance de l outil en tant qu utilisateur Connaissance de Java et Eclipse Avoir été un utilisateur actif (avoir soumis des bogues, répondu à des questions, édité des wikis) et connu de la communauté Recommandé par un développeur interne Comment? Faire une demande par courriel à l administrateur C est l administrateur qui prend la décision finale Page 38
4e rôle : développeur interne Administrateur Développeur interne Développeur externe Documenteur Utilisateur Télécharge et visualise les sources existantes Créé et édite les sources du projet, et téléverse les changements Révise et accepte les demandes de modification du code soumis par les développeurs externes Doit démontrer une bonne connaissance de l architecture de ModelSphere pour être admis Développeurs internes: Grandite, neosapiens Page 39
Développeur interne Conditions d adhésion Connaissance de l architecture Connaissance de Java, Swing, métamodelling Avoir lu et compris le Developer s Guidelines Avoir été un développeur externe actif (avoir corrigé et soumis des modifications aux sources) et connu de la communauté Recommandés par une majorité de développeurs internes Comment? Faire une demande par courriel à l administrateur C est l administrateur qui prend la décision finale Page 40
5e rôle : administrateur Administrateur Développeur interne Développeur externe Documenteur Gère le projet Supervise les activités Définit les politiques Accepte les nouveaux membres Assigne des rôles aux membres Administrateur du projet: Grandite Utilisateur Page 41
1re étape : se connecter à JavaForge 1. Aller à www.javaforge.com 2. Cliquer 3. Cliquer Page 42
2e étape : inscription à JavaForge 3. Soumettre 1. Remplir 2. Remplir Page 43
3e étape : trouver le projet Open ModelSphere 1. Cliquer 2. Remplir Page 44
Écran utilisateur Un utilisateur n a normalement pas les onglets reliés aux sources (Builds, SCM Repository, Membres). Page 45
Écran développeur Pour devenir développeur, il faut d abord être utilisateur, puis faire une demande d adhésion à l administrateur du projet Page 46
Obtenir les sources 2. Cliquer droit 1. Choisir un répertoire 3. Nouveau répertoire Page 47
Obtenir les sources 1. Sélection 2. Checkout Menus disponibles lorsque Tortoise est installé dans Windows Explorer Page 48
Obtenir les sources 1. URL Javaforge 2. Répertoire nouvellement créé 3. Page 49
Obtenir les sources : succès 1. Page 50
Obtenir les sources : échec Si vous obtenez cette erreur, vérifiez si vous vous êtes branché sur Javaforge à titre de développeur, et non comme simple utilisateur. Page 51
Obtenir les sources 1. Workspace Page 52
Obtenir les sources 1. Démarrer Page 53
Obtenir les sources 1. Choisir Page 54
Obtenir les sources 1. Retrouver notre workspace Page 55
Obtenir les sources 1. Ajouter les projets Page 56
Obtenir les sources 1. Ajouter les projets Page 57
Obtenir les sources 1. Parcourir 2. Retrouver org.modelsphere.jack 3. Page 58
Obtenir les sources 1. Entrer org.modelsphere.jack 2. Suivant Page 59
Obtenir les sources 1. Terminer Ajouter sms et plug-ins Page 60
Obtenir les sources 1. Démarrer ModelSphere Page 61
Partie V : Améliorations prévues avec 3.1 Refonte de l IU (Windows Vista) Modélisation de données Look and feel, grillage, diagramme de voisinage, correcteur d orthographe Clés de substitution, régles référentielles, diagramme de domaine, multiplicités spécifiques Modélisation de classes UML Rétro-ingénierie Java, énumérations, classes utilitaires, classes associations neosapiens.com ፫፩፩፲ Page ፯፫
Partie V : Améliorations possibles avec 3.2 Plugiciel de disposition graphique (projet) Plugiciel de rapports HTML (projet) Plugiciel d import de ebxml Plugiciel d import d autres outils Rétro-ingénierie de C# Améliorer le soutien de UML. neosapiens.com ፫፩፩፲ Page ፯፬
Partie V Questions et discussion neosapiens.com ፫፩፩፲ Page ፯፭