Modélisation UML & SysML

Expertise et articles Blog sur UML, SysML, et Enterprise Architect de Sparx Systems

english versionTwitterUMLChannel SparxSystems EA YouTube videosLinkedIn
mercredi, 02 juillet 2014 00:00

EA User Group 2014 : smart use cases, génération de code, EA11 cloud services, RAS et OSLC

Écrit par
Évaluer cet article
(0 Votes)

 

ea user group

J’ai assisté au mois de Mai dernier à l’EA User Group 2014 où s’est réunie la communauté d’utilisateurs d’Enterprise Architect. Avant d’animer ma présentation sur les alternatives permettant de partager un projet EA pour travailler en mode collaboratif, j’ai pu suivre plusieurs présentations. Voici celles qui ont été retenues pour cet article :

  1. Pragmatic agile model driven development using smart use cases de Sander Hoogendoorn (Capgemini, Pays Bas)
  2. EA Version 11 Cloud Services, OSLC and RAS de Phil Chudley (Dunstan Thomas, UK)

Pragmatic agile model driven development using smart use cases : approche agile SMART, smart use cases, et Tobago MDA pour la génération de code avec Enterprise Architect

Sander Hoogendoorn a partagé son expérience sur l’utilisation chez Capgemini de leur approche agile SMART combinée au MDA (Model-Driven Architecture), en s’appuyant sur Enterprise Architect et leur générateur de code Tobago MDA.

Smart Use Cases

Sander et son équipe de Capgemini ont défini leur propre approche agile, SMART, impliquant l’utilisation de smart use cases pour formaliser les exigences fonctionnelles. Remarque : la méthode Agile SMART est utilisée depuis 10 ans chez Capgemini. Elle intègre de nombreuses bonnes pratiques agiles et itératives.

Les Smart Use Case consistent à définir des petits cas d’utilisations dont la granularité correspond aux niveaux dits « sea » et « fish » parmi les 5 granularités identifiées par Alistair Cockburn dans son livre "Writing Effective Use Cases" :

eaug london 2014 smart use cases

L’approche traditionnelle des use case consiste généralement à produire un document avec le contenu suivant : objectif, périmètre, évènement déclencheur (trigger), acteurs, pre/post conditions, scénario nominal et scénarios alternatifs/d’erreurs décrits étape par étape (acteur ou système). Cela donne lieu à des livrables documentaires de plusieurs dizaines de pages.

L’utilisation de smart use cases consiste à détailler un cas d’utilisation en l’associant avec plusieurs smart use cases via des liens « extends » ou « includes » (ex : en moyenne, 20 smart use cases sont en associés à un use case standard). L’ensemble étant représenté sur un ou plusieurs diagrammes de cas d’utilisations, le livrable obtenu est donc de nature visuelle plutôt que documentaire. 

Des stéréotypes ont été créés afin de définir les différents types pouvant s’appliquer aux smart use cases parmi une liste de patterns identifiés : sélection, recherche, ou gestion depuis l’IHM, import ou export de fichiers, service de validation, lecture, ou écriture, etc. Les smart use case ont été choisis comme unité d'estimation sur l’effort et la complexité de réalisation. Aussi une propriété a été rajoutée aux stéréotypes permettant d’obtenir un nombre de points par défaut (de 1 à 10) selon le type de smart use case créé (inspiré je pense de l’approche Use Case Points ou UCPs). La valeur par défaut de points peut être modifiée pour chaque smart use case.

Toutes ces informations sont alors visibles dans le modèle :

eaug london 2014 smart use cases exemple

Voici un exemple plus lisible avec des smart use case de type "User Interface" en jaune et de type "Service" en rouge, ainsi que leurs estimations respectives :

eaug london 2014 smart use cases enterprise architect

Dashboard

Le site www.speedbird9.com a été créé afin de piloter le projet à partir des smart use case définis dans Enterprise Architect. En effet celui-ci permet d’importer/exporter les smart use case avec Enterprise Architect au format XMI ou CSV. Voici un exemple du Dashboard dans lequel les smart use case ont été importés :

eaug london 2014 speedbird9 dashboard XMI enterprise architect

Génération de code avec Tobago MDA

Sander et son équipe ont créé Tobago MDA, un générateur de code s’appuyant sur les smart use case définis sous EA. Maintenu depuis 9 ans, cet outil utilise des templates qui permettent de personnaliser intégralement le contenu à générer selon le langage de programmation utilisé (.net C#, Java, PHP…). Les templates de Tobago MDA ont été utilisés par Capgemini sur de nombreux projets Java, .Net, PowerBuilder (Sybase – SAP), et BI. Pour des use cases de complexité normale, Tobago permet de générer jusqu’à 100% du code .Net. 

Les templates utilisent une syntaxe donnant accès à de nombreuses fonctions, permettant par exemple de générer les attributs d’une classe (loop), de tester une valeur nulle, etc. Il est également possible de définir des zones dédiées au code spécifique.

Tobago MDA exploite les informations du modèle EA à partir d’un export XMI ou en se connectant sur un projet EA.

La présentation s’est terminée par une démonstration : Sander a créé dans EA un smart use case de type "search" pour ajouter une page de Recherche sur une application web dotNet existante. Une fois le modèle EA mis à jour, Tobago a été lancé pour générer les fichiers C# nécessaires. Enfin Visual Studio a été lancé pour générer l’application (build). Nous avons alors pu constater la présence de cette nouvelle fonctionnalité de recherche dans l’application avec les critères correspondant aux propriétés renseignées dans le smart use case.

Cette même démarche a été utilisée en clientèle par Sander pour démontrer qu’il est ainsi possible générer une fonctionnalité de complexité semblable en moins 5 minutes !

eaug london 2014 tobago MDA enterprise architect

Tobago MDA est disponible gratuitement depuis le site www.smartusecase.com

Nouvelles fonctionnalités Enterprise Architect 11 : Cloud Services, RAS, OSLC

Phil Chudley de Dunstan Thomas nous a exposé en détails son analyse sur l’utilisation et le niveau de maturité de nouvelles fonctionnalités disponibles depuis la version 11 d’Enterprise Architect : Cloud Services, OSLC, et Reusable Asset Service.

Cloud Services

Le Cloud Services permet aux utilisateurs d’Enterprise Architect 11 d’accéder à un projet Enterprise Architect hébergé sur une base de données dans un réseau LAN via les protocoles http/https. Ce service permet d’obtenir des temps de réponse beaucoup plus courts, et donc adaptés à des accès à distance parfois lents.

Le Cloud Services est disponible gratuitement en téléchargement depuis le site de SparxSystems. Il peut être installé comme Service Windows ou intégré dans un serveur web IIS. L’accès au projet depuis Internet est alors très simple pour les utilisateurs ; seuls une url et les identifiants sont nécessaires (en comparaison avec l’accès traditionnel qui nécessite un connecteur ODBC et une "connection string" vers la BD).

Remarque : ce service ne permet pas de se connecter sur un projet géré dans un fichier EAP.

Important : le Cloud Service ne correspond pas à un service d’hébergement dans le Cloud (par exemple avec un compte MS Azure), mais à donner accès aux modèles hébergés dans un réseau privé depuis l’extérieur.

Après installation, un client de gestion permet de choisir le protocole (http/https) et le numéro de port, le mode d’authentification pour les utilisateurs, et de limiter si besoin l’accès en lecture seule ou le nombre max d’utilisateurs simultanés. Ce client permet également de consulter les projets EA actuellement ouverts via le Cloud Service.

La connexion http aux modèles EA a permis à Sparx d’intégrer de nouvelles fonctionnalités : OSLC et RAS.

OSLC : Open Services for Lifecycle Collaboration

L’initiative Open Services for Lifecycle Collaboration (OSLC) a pour objectif de permettre l’intégration entre outils de gestion du cycle de vie des applications ou du produit (Application Life-cycle Management – ALM, Product Life-cycle Management – PLM).

Enterprise Architect 11 supporte l’OSLC pour l’accès et la gestion des exigences uniquement. Les exigences peuvent être consultées via la saisie d’une url dans un navigateur afin d’obtenir un contenu XML. Une application client peut être implémentée pour interroger ces services web et lancer des requêtes ou créer des exigences. 

Il est actuellement possible de tester les requêtes OSLC sur un projet de SparxSystems, comme illustré en limitant les résultats à l’auteur « Chuck Wilson » : http://sparxcloud.co.uk/Example/oslc/qc/?oslc.where=dcterms:creator=%22Chuck%20Wilson%22

eaug london 2014 enterprise architect oslc version 11 requete

Remarque : les outils de modélisation d’IBM supportent OSLC, aussi l’on pourrait à l’avenir faire collaborer les modèles entre différents outils et référentiels.

RAS : reusable asset service

Le RAS permet à plusieurs équipes d’utiliser des ressources distribuées et réutilisables, stockées dans un projet EA centralisé agissant comme librairie ou Framework. Une mise à jour des ressources est possible via le RAS à condition de disposer des droits d'écriture.

Dans un premier temps il est nécessaire de créer un projet EA sur une base de données dans lequel les modèles réutilisables pourront être créés, puis donner accès à ce projet via le Cloud Services. Ensuite, depuis un autre projet EA, la fonction RAS permet de se connecter à ce référentiel :

eaug london 2014 enterprise architect ras reusable asset service version 11

Disposant des droits d’écriture, on peut rajouter un paquetage contenant par exemple un modèle de classes pour la gestion d’un BookStore.

D'autres équipes peuvent ensuite se connecter au RAS et lancer un import du paquetage/modèle publié afin d’en utiliser le contenu. Phil nous a fait remarquer via une démonstration que la gestion de dépendances entre paquetages lors de certaines opérations sur le RAS aurait besoin d’être améliorée.

Je pense que cette fonctionnalité peut se relever particulièrement utile pour la gestion d’un Framework sur un projet, ou pour permettre à des organisations de publier et mettre à disposition les modèles d’un standard qu’elles portent.

Conclusion

Ce nouvel EA User Group de Londres s’est révélé très intéressant grâce au contenu des présentations. Cet évènement a également été une opportunité de rencontrer et d’échanger avec d’autres utilisateurs et experts d’Enterprise Architect.

Site officiel de l'EA User Group : www.eausergroup.com.