Methodo Support
Methodo Support
Methodo Support
Cours M14
Pierre Gérard
Université de Paris 13 IUT Villetaneuse Formation Continue
Licence Pro SIL - 2007/2008
Processus de développement
Ensemble d'étapes partiellement ordonnées, qui concourent à l'obtention d'un système logiciel
ou à l'évolution d'un système existant.
Objectif : produire des logiciels
De qualité (qui répondent aux besoins de leurs utilisateurs)
Dans des temps et des coûts prévisibles
A chaque étape, on produit
Des modèles
De la documentation
Du code
Méthode minimale
Objectif
Résoudre 80% des problèmes avec 20% d'UML
Proposition d'une méthode archi-minimale
Vraiment très très nettement moins complexe que RUP
Adaptée pour des projets modestes
Minimum vital pour qui prétend utiliser un peu UML
Inspirée de
UML 2 - Modéliser une application web
Pascal Roques
Editions Eyrolles (2006)
Cas d'utilisation
Comment aboutir au diagramme de cas d'utilisation ?
1. Identier les limites du système
2. Identier les acteurs
3. Identier les cas d'utilisation
4. Structurer les cas d'utilisation en packages
5. Ajouter les relations entre cas d'utilisation
6. Classer les cas d'utilisation
Exemple de classement
Cas d'utilisation Priorité Risque
Rechercher des ouvrages Haute Moyen
Gérer son panier Haute Bas
Eectuer une commande Moyenne Haut
Consulter ses commandes en cours Basse Moyen
Consulter l'aide en ligne Basse Bas
Maintenir le catalogue Haute Haut
Maintenir les informations éditoriales Moyenne Bas
Maintenir le site Moyenne Bas
Modèle du domaine
Le modèle du domaine est constitué d'un ensemble de classes dans lesquelles aucune opération
n'est dénie
Le modèle du domaine décrit les concepts invariants du domaine d'application
Exemple : Pour un logiciel de gestions de factures, on aura des classes comme Produit,
Client, Facture...
Peu importe que le logiciel soit en ligne ou non
Peu importe qu'on utilise php ou ajax
Etapes de la démarche :
1. Identier les concepts du domaine
2. Ajouter les associations et les attributs
3. Généraliser les concepts
4. Structurer en packages : structuration selon les principes de cohérence et d'indépen-
dance.
Les concepts du domaine peuvent être identiés directement à partir de la connaissance
du domaine ou par interview des experts métier.
Structuration en packages
Un diagramme de séquence système est une formalisation des descriptions textuelles des cas
d'utilisation
Un diagramme diérent est produit pour chaque cas d'utilisation.
Construire un DSS implique la
Construction des diagrammes de séquence système
Mise à jour des cas d'utilisation (on peut réviser le diagramme de cas à la lumière des
réexions que nous inspirent la production des DSS)
Spécication des opérations système
Le système est considéré comme un tout
On s'intéresse à ses interactions avec les acteurs
Les diagrammes de séquence système sont parfois très simples mais ils seront enrichis par
la suite
Opérations système
Les opérations système sont des opérations qui devront être réalisées par l'une ou l'autre
des classes du système
Elles correspondent à tous les messages qui viennent des acteurs vers le système dans les
diérents DSS
Classes d'analyse
Réalisation des cas d'utilisation par les classes d'analyse
Typologie des classes d'analyse
Les classes dialogue sont celles qui permettent les interactions entre les utilisateurs et
l'application.
Les classes contrôle contiennent la dynamique de l'application
Elles font le lien entre les classes dialogue et les classes métier.
Elles permettent de contrôler la cinématique de l'application, l'ordre dans lequel les
choses doivent se dérouler.
Les classes métier ou entités représentent les objets métier. Elles proviennent directement
du modèle du domaine (mais peuvent être complétées en fonction des cas d'utilisation).
Les classes d'analyse sont les classes métier auxquelles on adjoint toutes les classes sui permettront
au système de fonctionner : dialogues et contrôles
Le diagramme des classes participantes est un diagramme de classes décrivant les classes d'analyse
et dans lequel on ajoute les acteurs
A ce point du développement, seules les classes dialogue ont des opérations (actions de
l'utilisateur sur l'IHM)
Ces opérations correspondent aux opérations système, c'est à dire aux messages entrants
que seules les classes de dialogues sont habilitées à intercepter.
Associations :
Les dialogues ne peuvent être reliés qu'aux contrôles ou à d'autres dialogues (en général,
associations unidirectionnelles)
Les classes métier ne peuvent être reliées qu'aux contrôles ou à d'autres classes métier.
Les contrôles ont accès à tous les types de classes.
Diagrammes d'interaction
Dans les diagrammes de séquence système, le système était vu comme une boîte noire
Mais on sait maintenant de quels types d'objets est composé le système (diag. de classes
participantes)
Le système n'est plus une boîte noire.
Chaque diagramme de séquence système donne lieu à un diagramme d'interaction
Les diagrammes d'interaction montrent les interactions du système avec l'extérieur et les
interactions internes qu'elles provoquent
Les DSS sont repris mais l'objet système est éclaté pour donner le détail des classes
d'analyse
Les lignes de vie correspondent aux classes participantes
On peut voir le développement d'un logiciel comme un processus graduel d'élimination de risques
RUP est une démarche de développement qui est souvent utilisé conjointement au langage UML
Rational Unied Process est
Piloté par les cas d'utilisation
Centré sur l'architecture
Itératif et incrémental
Vues du système
Vue cas d'utilisation
Description du système comme un ensemble de transactions du point de vue de l'util-
isateur
Vue logique
Créée lors de la phase d'élaboration et ranée lors de la phase de construction
Utilisation de diagrammes de classes, de séquences...
Vue composants
Description de l'architecture logicielle
Vue déploiement
Description de l'architecture matérielle du système
Vue implémentation
Description des algorithmes, code source
Atteindre un niveau de stabilité et qualité tel que les parties prenantes considèrent le projet
comme terminé
Les activités sont des étapes dans le développement d'un logiciel, mais à un niveau de
granularité beaucoup plus n que les phases
Chaque activité est répétée autant de fois qu'il y a d'itérations
Modélisation métier
Objectif : Mieux comprendre la structure et la dynamique de l'organisation.
Proposer la meilleure solution dans le contexte de l'organisation cliente.
Réalisation d'un glossaire des termes métiers.
Cartographie des processus métier de l'organisation cliente.
Activité coûteuse mais qui permet d'accélérer la compréhension d'un problème
Analyse
Objectif : Transformer les besoins utilisateurs en modèles UML
Analyse objet servant de base à une réexion sur les mécanismes internes du système
Principaux livrables
Modèles d'analyse, neutre vis à vis d'une technologie.
Livre une spécication plus précise des besoins
Peut envisagé comme une première ébauche du modèle de conception
Conception
Objectif : Modéliser comment le système va fonctionner
Exigences non fonctionnelles
Choix technologiques.
Le système est analysé et on produit
Une proposition d'architecture.
Un découpage en composants.
Impémentation
Objectif : Implémenter le système par composants.
Le système est développé par morceaux dépendant les uns des autres.
Optimisation de l'utilisation des ressources selon leurs expertises.
Les découpages fonctionnel et en couches sont indispensable pour cette activité.
Il est tout à fait envisageable de retoucher les modèles d'analyse et de conception à ce
stade.
Test
Objectif : Vérier des résultats de l'implémentation en testant la construction.
Tests unitaires : tests composants par composants
Tests d'intégration : tests de l'interaction de composants préalablement testés individu-
ellement
Méthode :
Planication pour chaque itération
Implémentation des tests en créant des cas de tests
Exécuter les tests
Prendre en compte le résultat de chacun.
Déploiement
Objectif : Déployer les développements une fois réalisés.
Peut être réalisé très tôt dans le processus dans une sousactivité de prototypage dont
l'objectif est de valider
l'architecture physique
les choix technologiques.
3 eXtreme programming
Méthodes agiles
Quelles activités pouvons nous abandonner tout en produisant des logiciels de qualité ?
Comment mieux travailler avec le client pour nous focaliser sur ses besoins les plus prioritaires
et être aussi réactifs que possible ?
Filiation avec le RAD
Exemples de méthodes agiles
XP (eXtreme Programming), DSDM (Dynamic Software Development Method), ASD
(Adaptative Software Development), CCM (Crystal Clear Methodologies), SCRUM,
FDD (Feature Driven Development)
eXtreme Programming
eXtreme Programming, une méthode basée sur des pratiques qui sont autant de boutons poussés
au maximum
Méthode qui peut sembler naturelle mais concrètement dicile à appliquer et à maîtriser
Réclame beaucoup de discipline et de communication (contrairement à la première im-
pression qui peut faire penser à une ébullition de cerveaux individuels).
Aller vite mais sans perdre de vue la rigueur du codage et les fonctions nales de l'ap-
plication.
Force de XP : sa simplicité et le fait qu'on va droit à l'essentiel, selon un rythme qui doit
rester constant.
Valeurs d'XP
Communication
XP favorise la communication directe, plutôt que le cloisonnement des activités et les
échanges de documents formels.
Les développeurs travaillent directement avec la maîtrise d'ouvrage
Feedback
Les pratiques XP sont conçues pour donner un maximum de feedback sur le déroulement
du projet an de corriger la trajectoire au plus tôt.
Simplicité :
Du processus
Du code
Courage :
d'honorer les autres valeurs
de maintenir une communication franche et ouverte
d'accepter et de traiter de front les mauvaises nouvelles.
Pratiques d'XP
XP est fondé sur des valeurs, mais surtout sur 13 pratiques réparties en 3 catégories
Gestion de projets
Programmation
Collaboration
Pratiques de programmation
Conception simple
On ne développe rien qui ne soit utile tout de suite.
Remaniement
Le code est en permanence réorganisé pour rester aussi clair et simple que possible.
Tests unitaires
Les développeurs mettent en place une batterie de tests de nonrégression qui leur per-
mettent de faire des modications sans crainte.
Tests de recette
Les testeurs mettent en place des tests automatiques qui vérient que le logiciel répond
aux exigences du client.
Ces tests permettent des recettes automatiques du logiciel.
Pratiques de collaboration
Responsabilité collective du code
Chaque développeur est susceptible de travailler sur n'importe quelle partie de l'appli-
cation.
Programmation en binômes
Les développeurs travaillent toujours en binômes, ces binômes étant renouvelés fréquem-
ment.
Règles de codage
Les développeurs se plient à des règles de codage strictes dénies par l'équipe elle-même.
Métaphore
Les développeurs s'appuient sur une description commune du design.
Intégration continue
L'intégration des nouveaux développements est faite chaque jour.
Cycle de vie XP
Exploration
Les développeurs se penchent sur des questions techniques
Explorer les diérentes possibilités d'architecture pour le système
Etudier par exemple les limites au niveau des performances présentées par chacune des
solutions possibles
Le client s'habitue à exprimer ses besoins sous forme de user strories (proches de dia-
grammes de cas illustrés par des diagrammes de séquences)
Les développeurs estiment les temps de développement
Planning
Planning de la première release :
Uniquement les fonctionnalités essentielles
Première release à enrichir par la suite
Durée du planning : 1 ou 2 jours
Première version (release) au bout de 2 à 6 mois
Mise en production
La mise en production produit un logiciel
Orant toutes les fonctionnalités indispensables
Parfaitement fonctionnel
Mis à disposition des utilisateurs
Itérations très courtes
Tests constants en parallèle du développement
Les développeurs procèdent à des réglages anés pour améliorer les performances du logi-
ciel
Maintenance
Continuer à faire fonctionner le système
Adjonction de nouvelles fonctionnalités secondaires
Pour les fonctionnalités secondaires, on recommence par une rapide exploration
L'ajout de fonctionnalités secondaires donne lieu à de nouvelles releases
Mort
Quand le client ne parvient plus à spécier de nouveaux besoins, le projet est dit mort
Soit que tous les besoins possibles sont remplis
Soit que le système ne supporte plus de nouvelles modications en restsant rentable
Equipe XP
Pour un travil en équipe, on distingue 6 rôles principaux au sein d'une équipe XP
Développeur
Client
Testeur
Tracker
Manager
Coach
Développeur
Conception et programmation, même combat !
Participe aux séances de planication, évalue les tâches et leur diculté
Dénition des test unitaires
Implémentation des fonctionnalités et des tests unitaires
Client
Écrit, explique et maîtrise les scénarios
Spécie les tests fonctionnels de recette
Dénit les priorités
Testeur
Écriture des tests de recette automatiques pour valider les scénarios clients
Peut inuer sur les choix du clients en fonction de la testatibilité des scénarios
Tracker
Suivre le planning pour chaque itération.
Comprendre les estimations produites par les développeurs concernant leur charges
Interagir avec les développeurs pour le respect du planning de l'itération courante
Détection des éventuels retards et rectications si besoin
Manager
Supérieur hiérarchique des développeurs
Responsable du projet
Vérication de la satisfaction du client
Contrôle le planning
Gestion des ressources
Coach
Garant du processus XP
Organise et anime les séances de planications
Favorise la créativité du groupe, n'impose pas ses solutions techniques
Coup de gueules. . .
Spécication avec XP
Pas de documents d'analyse ou de spécications détaillées
Les tests de recette remplacent les spécications
Emergence de l'architecture au fur et à mesure du développement
XP vs RUP
Inconvénients de XP
Focalisation sur l'aspect individuel du développement, au détriment d'une vue globale
et des pratiques de management ou de formalisation
Manquer de contrôle et de structuration, risques de dérive
Inconvénients de RUP
Fait tout, mais lourd, usine à gaz
Parfois dicile à mettre en oeuvre de façon spécique.
Conclusion