modelsphere, un outil de génie logiciel

64
Page 1 Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009 Marco Savard [email protected] Gino Pelletier [email protected] Département d’informatique et de génie logiciel 6 octobre 2009 ModelSphere, un outil de génie logiciel Ouverture

Upload: others

Post on 20-Jun-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ModelSphere, un outil de génie logiciel

Page 1Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Marco [email protected]

Gino [email protected]

Département d’informatiqueet de génie logiciel6 octobre 2009

ModelSphere, un outil de génie logiciel

Ouverture

Page 2: ModelSphere, un outil de génie logiciel

Page 2Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 3: ModelSphere, un outil de génie logiciel

Page 3Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 4: ModelSphere, un outil de génie logiciel

Page 4Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 5: ModelSphere, un outil de génie logiciel

Page 5Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 6: ModelSphere, un outil de génie logiciel

Page 6Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 7: ModelSphere, un outil de génie logiciel

Page 7Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Fonctionnalités de l'outil

Partie II

Page 8: ModelSphere, un outil de génie logiciel

Page 8Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Fonctionnalités de l'outil

• Les trois dimensions• relationnelle, objet et des processus

• Dimension relationnelle• Conceptuel, logique et physique

• Dimension objet• 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 9: ModelSphere, un outil de génie logiciel

Page 9Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Les trois dimensions de la modélisation

Classes(UML)

Données(relationnel)

Processus(Fonction)

Page 10: ModelSphere, un outil de génie logiciel

Page 10Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Avantages de l'outil

• Rétro-ingénierie• Comprendre rapidement un logiciel complexe

(carte routière)• Vues partielles d’un logiciel• Détecter des failles potentielles

• Conception• 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 11: ModelSphere, un outil de génie logiciel

Page 11Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Relationnelle : niveau conceptuel

Page 12: ModelSphere, un outil de génie logiciel

Page 12Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Relationnelle : niveau logique

Page 13: ModelSphere, un outil de génie logiciel

Page 13Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Relationnelle : niveau physique

Page 14: ModelSphere, un outil de génie logiciel

Page 14Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Objet : Diagramme de classes UML

Page 15: ModelSphere, un outil de génie logiciel

Page 15Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Objet : Diagramme de classes à la Java

Page 16: ModelSphere, un outil de génie logiciel

Page 16Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Objet : Diagramme de classes à la Keys and Locks

Page 17: ModelSphere, un outil de génie logiciel

Page 17Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Objet : Cas d’utilisation

Page 18: ModelSphere, un outil de génie logiciel

Page 18Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Objet : Cas de séquence

Page 19: ModelSphere, un outil de génie logiciel

Page 19Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Processus d’affaires : vue normale

Page 20: ModelSphere, un outil de génie logiciel

Page 20Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Processus d’affaires : vue hiérarchique

Page 21: ModelSphere, un outil de génie logiciel

Page 21Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Cas types d’utilisation

• Modélisation OO• Changement de formalismes

• Conversion modèle de données• 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 22: ModelSphere, un outil de génie logiciel

Page 22Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Cas 1: Vérification d’intégrité (1/3)

1. Cliquer

Ce modèle de données contient plusieurs erreurs. Pouvez-vous les trouvez?

Page 23: ModelSphere, un outil de génie logiciel

Page 23Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Cas 1: Vérification d’intégrité (2/3)

1. Cliquer

3. 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.

Page 24: ModelSphere, un outil de génie logiciel

Page 24Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 25: ModelSphere, un outil de génie logiciel

Page 25Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Cas 2: Analyse des processus d’affaires (1/2)Projet informatique est le processus-racine

Conception est un processus éclaté

Des ressources associées à des processus feuilles

La durée et le coût cumulés du processus Conception.

Page 26: ModelSphere, un outil de génie logiciel

Page 26Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 27: ModelSphere, un outil de génie logiciel

Page 27Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Architecture et réalisation d’un projet complexe

Partie III

Page 28: ModelSphere, un outil de génie logiciel

Page 28Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 29: ModelSphere, un outil de génie logiciel

Page 29Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Atouts graphiques

Multidiagramme

Duplicats Styles graphiques

IU consistante

Fenêtres redimensionnables; disposition graphique (layout)

Internationalisation, localisation en français et anglais

Préfixes

Page 30: ModelSphere, un outil de génie logiciel

Page 30Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Métamodèle : modélisation et génération

GenMeta

274 fichiers; 24 KLOC en Java

Page 31: ModelSphere, un outil de génie logiciel

Page 31Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Jack (LGPL) 815 classes

Sms (LGPL)Sms (GPL) 1287 classes

Plug-in(LGPL, 210 classes et commerciaux)

Plug-in GPL

Architecture en trois couches

Page 32: ModelSphere, un outil de génie logiciel

Page 32Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Mise sur pied d'une communauté

Partie IV

Page 33: ModelSphere, un outil de génie logiciel

Page 33Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Mise sur pied d’une communauté

• Site pour les utilisateurs • www.modelsphere.org• Novices Windows: auto-

extrWindows (setup.exe)• Avancés: batch file

• Site pour les contributeurs• www.javaforge.com• Gestionnaire SVN, Wiki, Forum, Métriques • Cinq niveaux de contributeurs

Page 34: ModelSphere, un outil de génie logiciel

Page 34Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Cinq niveaux d’utilisateurs

Utilisateur

Documenteur

Développeur externe

Développeur interne

Administrateur

Page 35: ModelSphere, un outil de génie logiciel

Page 35Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

1er rôle : 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 discussionUtilisateur

Documenteur

Développeur externe

Développeur interne

Administrateur

Page 36: ModelSphere, un outil de génie logiciel

Page 36Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

2e rôle : documenteur

➢ 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

Utilisateur

Documenteur

Développeur externe

Développeur interne

Administrateur

Page 37: ModelSphere, un outil de génie logiciel

Page 37Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

3e rôle : développeur externe

Utilisateur

Documenteur

Développeur externe

Développeur interne

Administrateur

➢ Visualise les sources existentes➢ 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 de la Santé (MSSS)

Page 38: ModelSphere, un outil de génie logiciel

Page 38Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

➢ 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

Développeur externe

Page 39: ModelSphere, un outil de génie logiciel

Page 39Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

4e rôle : développeur interne

Utilisateur

Documenteur

Développeur externe

Développeur interne

Administrateur

➢ 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 40: ModelSphere, un outil de génie logiciel

Page 40Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

➢ 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

Développeur interne

Page 41: ModelSphere, un outil de génie logiciel

Page 41Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

5e rôle : administrateur

➢ 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

Documenteur

Développeur externe

Développeur interne

Administrateur

Page 42: ModelSphere, un outil de génie logiciel

Page 42Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

1re étape : se connecter à JavaForge

1. Aller à www.javaforge.com

2. Cliquer

3. Cliquer

Page 43: ModelSphere, un outil de génie logiciel

Page 43Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

2e étape : inscription à JavaForge

1. Remplir

2. Remplir

3. Soumettre

Page 44: ModelSphere, un outil de génie logiciel

Page 44Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

3e étape : trouver le projet Open ModelSphere

1. Cliquer

2. Remplir

Page 45: ModelSphere, un outil de génie logiciel

Page 45Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Écran utilisateur

Un utilisateur n’a normalement pas les onglets reliés aux sources (Builds, SCM Repository, Membres).

Page 46: ModelSphere, un outil de génie logiciel

Page 46Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

É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 47: ModelSphere, un outil de génie logiciel

Page 47Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Choisir un répertoire

2. Cliquer droit

3. Nouveau répertoire

Page 48: ModelSphere, un outil de génie logiciel

Page 48Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

Menus disponibles lorsque Tortoise est installé dans

Windows Explorer

2. Checkout

1. Sélection

Page 49: ModelSphere, un outil de génie logiciel

Page 49Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. URL Javaforge

2. Répertoire nouvellement créé

3.

Page 50: ModelSphere, un outil de génie logiciel

Page 50Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources : succès

1.

Page 51: ModelSphere, un outil de génie logiciel

Page 51Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

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 52: ModelSphere, un outil de génie logiciel

Page 52Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Workspace

Page 53: ModelSphere, un outil de génie logiciel

Page 53Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Démarrer

Page 54: ModelSphere, un outil de génie logiciel

Page 54Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Choisir

Page 55: ModelSphere, un outil de génie logiciel

Page 55Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Retrouver notre workspace

Page 56: ModelSphere, un outil de génie logiciel

Page 56Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Ajouter les projets

Page 57: ModelSphere, un outil de génie logiciel

Page 57Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Ajouter les projets

Page 58: ModelSphere, un outil de génie logiciel

Page 58Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Parcourir

2. Retrouverorg.modelsphere.jack

3.

Page 59: ModelSphere, un outil de génie logiciel

Page 59Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Entrerorg.modelsphere.jack

2. Suivant

Page 60: ModelSphere, un outil de génie logiciel

Page 60Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Terminer

Ajouter sms et plug-ins

Page 61: ModelSphere, un outil de génie logiciel

Page 61Open ModelSphere, un outil de génie logiciel © neosapiens.com 2009

Obtenir les sources

1. Démarrer ModelSphere

Page 62: ModelSphere, un outil de génie logiciel

Page ፯፫Open ModelSphere, un outil de génie logiciel © neosapiens.com ፫፩፩፲

Partie V : Améliorations prévues avec 3.1

• Refonte de l’IU (Windows Vista)• Look and feel, grillage, diagramme de voisinage,

correcteur d’orthographe• Modélisation de données

• 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

Page 63: ModelSphere, un outil de génie logiciel

Page ፯፬Open ModelSphere, un outil de génie logiciel © neosapiens.com ፫፩፩፲

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.

Page 64: ModelSphere, un outil de génie logiciel

Page ፯፭Open ModelSphere, un outil de génie logiciel © neosapiens.com ፫፩፩፲

Questions et discussion

Partie V