Génie Logiciel Processus de développement & Technologies



Documents pareils
IFT2255 : Génie logiciel

Analyse,, Conception des Systèmes Informatiques

Chapitre I : le langage UML et le processus unifié

Université de Bangui. Modélisons en UML

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Cours Gestion de projet

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Rational Unified Process

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

UML est-il soluble dans les méthodes agiles?

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Méthodologies Orientées-Objet!

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Les méthodes itératives. Hugues MEUNIER

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Introduction au génie logiciel

Formation : Modélisation avec UML 2.0 et Mise en pratique

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Les diagrammes de modélisation

Le génie logiciel. maintenance de logiciels.

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

UML (Diagramme de classes) Unified Modeling Language

Cours STIM P8 TD 1 Génie Logiciel

Description de la formation

Refonte front-office / back-office - Architecture & Conception -

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

UML (Paquetage) Unified Modeling Language

Cours de Génie Logiciel

Diagramme de classes

Génie logiciel (Un aperçu)

Le Guide Pratique des Processus Métiers

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

3. UML - Unified Modeling Language Diagrammes statiques

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Patrons de Conception (Design Patterns)

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

CC30 Certificat de compétence Conception, développement et animation de sites Web

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Processus d Informatisation

RAPPORT DE CONCEPTION UML :

Méthodes de développement. Analyse des exigences (spécification)

Visual Paradigm Contraintes inter-associations

CQP Développeur Nouvelles Technologies (DNT)

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Processus de Développement Logiciel

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

SECTION 5 BANQUE DE PROJETS

Génie Logiciel Orienté Objet UML

UML et les Bases de Données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Guichet automatique de banque

Méthodologies de développement de logiciels de gestion

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Catalogue des Formations

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Processus de Développement Logiciel

Cours en ligne Développement Java pour le web

Eclipse Process Framework et Telelogic Harmony/ITSW

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

Gestion Projet. Cours 3. Le cycle de vie

Conception, architecture et urbanisation des systèmes d information

Table des matières Sources

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

M1 : Ingénierie du Logiciel

OMGL6 Dossier de Spécifications

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Le Processus Unifié de Rational

Gé nié Logiciél Livré Blanc

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

CINEMATIQUE DE FICHIERS

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Méthodes de développement

Information utiles. webpage : Google+ : digiusto/

Plateforme de capture et d analyse de sites Web AspirWeb

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Introduction IV. Comparaison MERISE/UML/SCRUM Approche fonctionnelle Schéma Entité/Association Méthodologie...

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Développement itératif, évolutif et agile

Introduction à la modélisation

Projet Active Object

Devenez un véritable développeur web en 3 mois!

Conception des bases de données : Modèle Entité-Association

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Transcription:

Module Electif E10 SIGLE 2009-2010 Génie Logiciel Processus de développement & Technologies stephane.ploix@grenoble-inp.fr 1

Programme Conception et Modélisation (2h) processus de développement & UML Communication et Web (2h) IP, WEB & services WEB Modèles de données et XML (2h) XML & schéma 2

Conception 3

Conception Technique de créativité brainstorming, TRIZ,... Définition d'un produit-service Finaliser Préparer la livraison Packaging Spécification de acteurs (humains et non humains) Validations (tests unitaires* et fonctionnels) Initialisation spécification produit-service, esquisses de business model Spécification de fonctionnalités du système Identification des interactions acteurs / produitservice Identification des cas d'utilisation Construction S'entendre et répartir Construire tester et démontrer Elaboration Construire quoi et comment? Chiffrage et affinage business model Evaluation des risques Diagramme de Gantt Modélisation du contexte (modèle conceptuel) * de non-regressions Modélisation pour l'implémentation (modèle logique) Identification des applications / composants / paquetages /... Implémentation 4

Processus de développement normaliser les processus de développement détermine qui fait quoi, quand et comment atteindre un but (construire ou modifier un logiciel) quelques idées fondatrices : il faut toujours s assurer que l on travaille sur ce qu il y a de plus important à faire il faut se coordonner avec les autres (collègues, clients, ) il faut pouvoir prévoir les conséquences d un événement imprévu il faut minimiser les risques d échec (itératif et incrémental) il faut que les modèles soient intuitifs (centrés utilisateurs) il faut que les résultats soient maintenable et ré-utilisable 5

Processus de développement Droits du client droit d avoir un planning du projet, de savoir ce qui peut être accompli et à quel coût droit d avoir la plus grande valeur ajoutée chaque semaine de développement droit de voir le projet fonctionner réellement, réussissant différents tests spécifiés par le client droit de changer d avis, de modifier des fonctionnalités requises et de changer des priorités sans payer de coûts exorbitants droit d être informé des modifications de planning afin de pouvoir réajuster les objectifs du projet Droit du développeur droit de savoir ce qui est attendu par le client et des priorités droit de produire du travail de qualité tout le temps droit de recevoir de l aide des collègues et du client droit d estimer le travail à fournir et de mettre à jour ces estimations droit d accepter ou de refuser une responsabilité 6

Comparatif Description Points forts Points faibles RUP promu par Rational méthodologie et outils projets + de 10 personnes itératif spécifie les échanges: livrables, plannings, prototypes documents types coûteux à personnaliser axé processus et peu développement XP meilleurs pratiques projet de 10 personnes itératif simple à mettre en œuvre large place aux aspects techniques : prototype, règle de développement innovant: priorité à la dynamique de groupe pas de phase d analyse (on peut faire pour défaire après) assez flou dans sa mise en œuvre: quels intervenants? quels livrables? 2TUP s articule autour de l architecture cycle de développement en Y tout projet itératif large place à la technologie et à la gestion des risques définit les profils d intervenants, les livrables, les plannings, les prototypes Formalisme lourd pas de documents types 7

Rational Unified Process Repose sur «6 best practices» : Développement itératif et incrémental Gestion de besoins (client) Conduit à des architectures basées composant Modélisation graphique Vérification de qualité (organisation des plannings, conceptions, implémentations, exécutions et tests) Gestion des changements dans le logiciel (gestion, contrôle et suivi) 8

Rational Unified Process Structure du processus de développement : Risques liés aux spécifications Risques technologiques Risques liés aux compétences Risques politiques Construire quoi? Construire comment? Évaluer le développement Identifier les risques Construction Optimisation Packaging Initialisation Élaboration 1 2 3 4 5 Transition UML UML UML Brainstorming Construction itérative et incrémentale : Recensement d'idées - selon les cas d'utilisation Analyses sommaires - réorganisation du code (refactoring) - Pour chaque itération : analyse, conception, codage, test unitaire, intégration et documentation 9

Les jalons Rational Unified Process La frontière entre les 4 phases est floue Les dates ne sont pas rigides : ce sont des indicateurs Construction Initialisation Élaboration 1 2 3 4 5 Transition accord sur les objectifs, les coûts et les dates besoins clairement compris estimation clair des coûts/dates projet stable et mûr pour un déploiement client prêt pour le déploiement accord coûts/dates/objectifs avec le client vision stable du produit architecture stable risques majeurs identifiés planning de construction détaillé et précis accord coûts/dates/objectifs avec le client client satisfait accord coûts/dates/objectifs avec le client 10

Extreme Programming (XP) Fondements : On développe un projet en effectuant des réajustements en permanence Séparation claire entre les rôles les clients (ou ceux qui en jouent le rôle) * prennent les décisions d affaire : dates, objectifs, priorités * Un bon client comprend le domaine d application et l intérêt économique du projet. Il peut prendre des décisions et accepte les conséquences d un succès ou d un échec. Il est disponible pour les rendez-vous réguliers les programmeurs les décisions techniques : estimations 11

Extreme Programming (XP) L histoire (story) pour synchroniser des cycles : d affaire : appel d offre, réception des «releases», formation, règlement de développement : spécification, conception, implémentation, test, intégration, déploiement, formation, documentation Release Itération Une histoire : représente une fonctionnalité que le client veut s exprime en termes aussi simples que possible (compréhensible pour le client) doit apporter une valeur au client est issue d une discussion entre clients et développeurs (itérations) doit être autant que possible indépendante des autres histoires doit être implémentable à cours terme (moins de 3 semaines), estimable et testable (par exemple : «facile à utiliser» doit être reformulé plus concrètement car non estimable) 12

Extreme Programming (XP) Organisation Prise en compte des risques techniques (négociation clients développeurs) Pr. Story Effort Clients 1 2 3 4 5 Trouver les 10 vols les moins chers Montrer les vols disponibles Classer les vols suivant leurs caractéristiques Acheter un ticket Faire un profil client 2 sem. 1 sem. 1 sem. 1 sem. 2 sem. Programmeurs 6 Montrer tous les itinéraires possibles 1 sem. 7 13

Extreme Programming (XP) Les dates sont non négociables : en cas de problème, on réajuste les objectifs. interne (effets de bord) externe (délicat) matériel (apprentissage) personnes (formation) coût qualité temps (non extensible) objectifs à manipuler en priorité Pas assez de temps => diminuer les objectifs (certaines histoires, celles qui ont le moins de valeur, doivent être supprimées) 14

Extreme Programming (XP) Une histoire modélisable par un cas d utilisation A chaque histoire, des scénarios (diagramme de collaboration) Mais la modélisation statique et dynamique du projet n est pas vraiment structurée 15

2 Track Unified Process Modéliser le problème métier Capture des besoins fonctionnels Modèle de cas d'utilisation Construire un modèle d'analyse du système Recette Analyse Modèle d'analyse Modèle de conception Conception détaillée Codage et tests Conception préliminaire Capture des besoins techniques Conception générique Architecture logicielle Définir les technologies nécessaires Définir l'architecture matérielle et logicielle Intégrer le modèle d'analyse dans l'architecture technique Conception de chaque composant Codage et test de chaque composant Modèle des besoins techniques Validation de fonctions développées 16

Points de vue analyste + client Fonctionnel Capture des besoins fonctionnels Structurel Analyse Capture des besoins techniques Conception générique Spécification logicielle architecte Matériel analyste + programmeur Logique Conception détaillée Codage et tests Conception préliminaire Exploitation Configuration logicielle Déploiement Recette 17

Modélisation 18

A quoi sert un langage de modélisation? Décrire un contexte Analyser et résoudre un problème Modéliser un contexte Spécifier des besoins Echanger / partager en génie logiciel : Concevoir un logiciel Documenter des solutions techniques Décrire une implantation physique 19

Quel intérêt pour la gestion d énergie dans le bâtiment? Spécifier et Concevoir des systèmes de supervision de l énergie : modéliser le contexte spécifier des fonctionnalités archiver des données concevoir des protocoles de communication concevoir des architectures logicielles spécifier des interfaces co-concevoir des solutions types 20

Différents champs de modélisation fonction, service, fonctionnalité, cas d'utilisation, histoires Champ Fonctionnel composants, ressources, variables, objets, unités, paquets, paquetages Champ Structurel contrainte, évolution, dynamique, procédure, action Champ Comportemental 21

Champ Fonctionnel fonction, service, fonctionnalité, cas d'utilisation, histoires Champ Fonctionnel Fonction : secondaire (pré-condition) ce pour quoi une chose est faite (téléologie) -> pas terrible service -> mieux mais reste vague (rendu à qui?) petite histoire -> encore mieux car orienté utilisateur (vérifiable) Pour chaque fonction : un intitulé avec un verbe (action) un acteur principal et des acteurs secondaires éventuellement des relations de précédence avec d'autres histoires une description des scénarios caractéristiques de la fonction 22

Champ Structurel composants, ressources, variables, objets, unités, paquets, paquetages Objet : Tout ce qui se présente à la pensée comme ayant valeur de réalité Pour chaque objet, un nom (sujet) des liens avec d'autres objets des caractéristiques Champ Structurel des capacités (ce que l'on peut faire avec l'objet) un type (une classe) : une instance du type variable, une instance du type composant, une instance du type machine, une instance du type acteur,... 23

Champ Structurel composants, ressources, variables, objets, unités, paquets, paquetages Champ Structurel Existence de différents niveaux d'abstraction (structure type et structure effective) Héritage = lien de spécialisation (ou généralisation) : différents niveaux d'abstraction Permet de factoriser certains propriétés, certaines capacités : si un véhicule se déplace et si voiture est une spécialisation de véhicule, alors voiture se déplace 24

Champ structurel composants, ressources, variables, objets, unités, paquets, paquetages Champ Structurel Certains types d'objets peuvent être réunis en une famille (catégories, paquetages ou packages) : même niveau d'abstraction (couche du modèle OSI, solver) même nature (classe d'objets liés à une technologie de communication) même sujet (composants d'une machine) Cela structure les classes d'objet 25

Champ Comportemental contrainte, évolution, dynamique, procédure, action Champ Comportemental Comportement : ensemble des observables caractérisant une action Comportement Statique (caractérisé dans l'instant) et Dynamique (caractérisé sur plusieurs instants : évolution) Pour chaque comportement, Une relation (ou contrainte) de comportement modélisant l'évolution des observables 26

Liens entre les champs de modélisation Action Champ Fonctionnel Quoi, Qui, Capacité Champ Structurel Comment Quand Champ Comportemental Comment les choses interagissent pour accomplir une action? 27

Champs de modélisation et conception Pour quoi? Champ Fonctionnel Lié au cahier des charges évolue avec le temps. Quoi, Qui, Capacité Champ Structurel POO Description de ce qui est : stable dans la durée (complément mais peu de remise en cause)! Comment Quand Champ Comportemental Lié au cahier des charges évolue avec le temps. 28

Un langage graphique : UML 29

La petite histoire d'uml UML a été normalisé par l'object Management Group (1.0 en 1997, 1.3 en 2000, 2.0 en 2005) UML unifie les méthodes de De Booch, Rumbaugh (OMT) et Jacobson Historique Sally Shlaer et Steve Mellor (1989 et 1991) sur l'analyse et la conception suivi d'un étude sur la "conception récursive" (1997). Peter Coad et Ed. Yourdon, les approches "allégées" et "orientées prototypes". Voir Coad et Yourdon (1991 a et 1991 b), Coad et Nicola (1993), et Coad et al.(1995). La communauté Smalltalk développe la conception pilotée par les responsabilités (Wirfs-Brock et al. 1990) et les cartes CRC (Class-Responsibility-Collaboration) (Beck et Cunningham 1989). Grady Booch chez Rational Software développe des systèmes en Ada. Voir Booch (1994 et 1996). Jim Rumbauh chez General Electric publie un ouvrage très apprécié sur OMT. Voir Rumbaugh et al. (1991) et Rumbaugh (1996). Jifn Odell, (1994) ouvrages très conceptuels. Voir Martin et Odell Ivar Jacobson, introduit le concept de cas d'utilisation (use-case). Voir Jacobson (1992 et 1995). 30

UML, c'est quoi? UML processus de développement Un langage graphique pour la modélisation orientée objet (13 diagrammes en UML 2/ 9 en UML 1) UML est composé de : vues structurel (developpement) structurel (scénarios) (physique) modèles d'éléments diagrammes structurel fonctionnel comportemental modèle structurel et conceptuel modules et dépendances point de vue des acteurs vue temporelle et technique géographie et architecture physique 31

Principaux modèles d'élément component branch fork object object persistant object association aggregation composition generalization dependance synchronization 32

Carte des Diagrammes (UML 2) Abstraction croissante Champ Fonctionnel Champ Structurel diagramme des cas d'utilisation diagramme de déploiement diagramme de composants diagramme des paquetages diagramme des structures composites diagramme des classes diagramme d'objets Champ Comportemental diagrammes de communication diagrammes de séquence diagramme d'état-transition diagramme de temps diagramme global d'interaction diagramme d'activités Orienté Objet Non Objet 33

Catalogue des diagrammes : le diagramme des cas d'utilisation 34

Catalogue des diagrammes : le diagramme des cas d'utilisation En utilisant StarUML, construire un diagramme des cas d utilisation qui représente un système de monitoring de la consommation énergie d étudiants pour la réalisation d un travail. Identifier les acteurs Identifier les principaux cas d utilisation Synthétiser sur un diagramme 35

Catalogue des diagrammes : le diagramme de déploiement 36

Catalogue des diagrammes : le diagramme de déploiement En utilisant StarUML, décrire une salle informatique avec son système de supervision ainsi que les logiciels de monitoring s exécutant sur les postes de travail étudiant. utiliser les éléments Node, NodeInstance, part et Port 37

Catalogue des diagrammes : le diagramme des composants 38

Catalogue des diagrammes : le diagramme des composants En utilisant StarUML, modéliser un contrôleur d éclairage qui peut : recevoir des ordres d'arrêt, marche complète et marche mi-puissance envoyer des mesures d intensités lumineuses ainsi qu un superviseur capable d interagir avec des contrôleurs d éclairage Utiliser des composants, des ports, des interfaces connectés à des ports et des parties (ou composites) 39

Catalogue des diagrammes : le diagramme des paquetages 40

Catalogue des diagrammes : le diagramme des paquetages En utilisant StarUML, représenter les différentes couches du protocole Lonworks. Utiliser des paquetages, des importations et des notes (transport importe transaction,...) 41

Catalogue des diagrammes : le diagramme des structures composites 42

Catalogue des diagrammes : le diagramme des structures composites En utilisant StarUML, représenter une centrale météorologique dotée d un émetteur, le réseau 433MHz et une station centrale dotée d un récepteur. Utiliser des classes, des ports et des parties. Comment pourraient être utilisés les interfaces? 43

Catalogue des diagrammes : le diagramme des classes 44

Catalogue des diagrammes : le diagramme des classes En utilisant StarUML, représenter les différentes appartenances d un étudiant de l école, le fait qu il assiste à des séances liées à un cours. Faire apparaître des multiplicités et des attributs. 45

Catalogue des diagrammes : le diagramme d'objets 46

Catalogue des diagrammes : le diagramme d'objets En utilisant StarUML, représenter une instance particulière du diagramme des classes construit précédemment. 47

Catalogue des diagrammes : le diagramme de communication* * parfois appelé diagramme de collaboration 48

Catalogue des diagrammes : le diagramme de communication* En utilisant StarUML, représenter une connexion, une requête SQL et une déconnexion d un superviseur vers une base de données. Utiliser un diagramme de collaboration (Role) 49

Catalogue des diagrammes : le diagramme de séquence 50

Catalogue des diagrammes : le diagramme de séquence En utilisant StarUML, représenter une connexion, une requête SQL et une déconnexion d un superviseur vers une base de données. Utiliser un diagramme de séquence (Role) 51

Catalogue des diagrammes : le diagramme d'état-transition 52

Catalogue des diagrammes : le diagramme d'état-transition En utilisant StarUML, représenter les différents états d un contrôleur d une station météorologique avec un émetteur radio. 53

Catalogue des diagrammes : le diagramme de temps 54

Catalogue des diagrammes : le diagramme global d'interaction 55

Catalogue des diagrammes : le diagramme d'activités 56

Catalogue des diagrammes : le diagramme d'activités En utilisant StarUML, représenter les différents scénarios possibles associés au cas d utilisation : «se connecteur sur un poste de travail» sachant qu un superviseur doit être notifié. 57

Conception & Modélisation Analyse préliminaire 58

Etude préliminaire Identifier les acteurs (humains ou non) Identifier les messages (mais pas entre acteurs) Diagramme de contexte dynamique [diagramme de communication] 59

Etude préliminaire Identifier le contexte Diagramme de contexte statique [diagramme des classes] 60

Réflexion Vous devez concevoir le système d information de votre école. Identifiez les acteurs, les messages et le contexte 61

Conception & Modélisation Spécifications 62

Diagramme des cas d'utilisation Cas d'utilisation : Séquence d'actions produisant une valeur ajoutée fonctionnelle pour un acteur ou manière spécifique d utiliser un système ou image d une fonctionnalité ou d un service demandé Chaque cas d'utilisation doit produire une valeur ajoutée significative (éviter les granularités trop fines : le service réunit généralement tout un ensemble d'actions élémentaires) Les itérations doivent être définies / au cas d'utilisation 63

Diagramme des cas d'utilisation Acteur Include : permet d'éviter les répétitions entre plusieurs cas d'utilisation Généralisation/Spécialisation : permet de «spécialiser» Extend : permet de décrire simplement des variantes de comportement optionnelle (condition d activation à préciser) 64

Exemple Dessiner un diagramme des cas d'utilisation pour un logiciel destiné à un distributeur bancaire permettant : Retirer de l'argent Consulter le compte associé à la carte Déposer des chèques ou de l'argent 65

Solution 66

Capture des besoins fonctionnels Construire un diagramme des cas d'utilisation en recherchant les intentions métiers des acteurs et les services attendus Distinguer acteur principal (qui bénéficie de la plus-value métier) des acteurs secondaires (qui peuvent être sollicité) Un cas d'utilisation comporte : Un acteur principal Éventuellement des acteurs secondaires 67

Capture des cas d'utilisation techniques Cas d'utilisation technique : conduit à une valeur ajoutée opérationnelle ou technique Exploitant : acteur bénéficiant des fonctionnalités techniques 68

Capture des besoins fonctionnels Décrire les différents enchaînements du cas d'utilisation : Nom du Cas d'utilisation Description - du but : - des pré-conditions : (conditions qui doivent vérifiées avant le début du CU) - des enchaînements nominaux : (avec renvois vers exceptions) - des enchaînements alternatifs : (avec renvoi vers exceptions) - des exceptions : - des post-conditions : (conditions qui doivent vérifiées à l'issu du CU) - des besoins d'ihm : (ce qu'il doit être possible de faire via l'ihm) - des contraintes non-fonctionnelles : (temps de réponse du logiciel, gestion des accès concurrents, ) Les scénarios peuvent être synthétisés par : Des diagrammes d'activités (plus naturels) Des diagrammes d'état-transitions (orientés évènements) Pour documenter un scénario particulier Des diagrammes des séquences (plus intuitif et précis) Des diagrammes de collaborations 69

Diagramme des cas d'utilisation Un cas d'utilisation recouvre plusieurs enchaînements (scénarios) possibles : Enchaînements normaux Enchaînements alternatifs Exceptions 70

Diagramme d'activité Intérêts : représentation d'activités séquentiels avec parallélisme (cf. organigramme) Activité Branchement conditionnel Fork (Débranchement) Action Activité : complexe, décomposable et pouvant être interrompue Action : simple, non décomposable et atomique Jonction 71

Mais non orienté objet a priori Carte Transaction VISA Ressources 72

Conception & Modélisation Conception et Développement 73

Modèle Conceptuel : diagramme des classes candidates Recherche des classes candidates à partir des objets métiers (ex: agenda, réservation, enseignant, ) Vérifier les propriétés objets de chaque concept (identité, comportement, responsabilités (5 au plus)) On construit alors un diagramme des classes participantes pour chaque cas d'utilisation 74

Du conceptuel au logique : affinage du diagramme des classes typage des propriétés navigabilités & réduction des dépendances optimisations spécifiques au langage 75

Du conceptuel au logique : affinage du diagramme des classes Les autres informations Visibilité Propriété : {frozen}, {ordered},{addonly} Valeur initiale Type Attribut de classe [visibilité] nom [multiplicité] [:type] [=val_init] [{propriété}] Multiplicité Contrainte [visibilité] nom [(liste_param)] [:type_retour] [{propriété}] 76

Du conceptuel au logique : affinage du diagramme des classes Agrégation : association parties/ composites Composition : agrégation dont le cycle de vie des parties et du composite est lié Dépendance : lien temporaire 77

Du conceptuel au logique : affinage du diagramme des classes Classe d'association 78

Du conceptuel au logique : Spécification des interfaces et des classes de façade Interfaces Java et classes abstraites 79

Du conceptuel au logique : découpage en catégories Rôle du découpage en catégories : Organiser les équipes d'analystes Maîtriser la complexité Assurer l'évolutivité et la maintenance Critères de regroupement Forte Cohérence interne Finalité en terme de services Evolution (catégories stables et catégories moins stables) Durée de vie des objets Faible couplage externe Minimiser les dépendances 80

Du conceptuel au logique : découpage en catégories Structurer le diagramme suivant en 2 packages Dessiner le diagramme des packages correspondant 81

Du conceptuel au logique : découpage en catégories Solution 1 : peu de dépendances Vols Réservations 82

Du conceptuel au logique : découpage en catégories Solution 1 : peu de dépendances 83

Du conceptuel au logique : découpage en catégories Solution 2 : mêmes durées de vie Vols Réservations 84

Du conceptuel au logique : découpage en catégories Solution 2 : mêmes durées de vie 85

Du conceptuel au logique : découpage en catégories Complexité décomposition en couches logicielles 86

Du conceptuel au logique : découpage en composants et Framework Les frameworks peuvent donner naissance à des composants 87

Du conceptuel au logique : découpage en composants et Framework Composant : module de code Dépendance 88

Du conceptuel au logique : découpage en composants et Framework Spécifications d'architecture Composant d'exploitation : assure un service logicielle repérable et interchangeable ex: base de donnée centrale, serveur http, application centrale Composant métier : assure un service associé à un objet métier (composant d'exploitation spécialisé) ex: application comptable, application de gestion des stocks Diagramme de composants 89

Conception & Modélisation Construction 90

Génération de l ossature du code 91

Génération de l ossature du code 92

Exercice Donner les codes Python du diagramme suivant : Individu -nom : String -prenom : String #envoyercourriel(message : String) # init () Employe -service : String -fonction : String #estmute(nouveauservice : String) # init () Client -societe : String -adresse : String #passecommande() : Commande # init () theclient 1 0..* thecommande Commande -date : String -livraison : String -certification : String #regle(montany : double, modepaiement : String) # init () #certifie(password : String) 93

Transformation d un modèle conceptuel en un modèle relationnel 94

Pourquoi des modèles relationnels? Problème lors de la sérialisation d un modèle conceptuel 95

Pourquoi des modèles relationnels? Traduction en Python 96

Pourquoi des modèles relationnels? Traduction en XML Schema 97

Pourquoi des modèles relationnels? instance XML : boucle infinie! il faut introduire des références pour ne pas encapsuler les objets... 98

Notion d'identifiant Une classe (modèle conceptuel) devient une entité (modèle relationnel) Identifiant : un ou de plusieurs attributs identifiant un objet de manière unique Les identifiants (modèle conceptuel) deviennent des clefs candidates (modèle relationnel) 99

Les relations binaires Relation 1-1 Relation 1-n Relation n-n sans attribut Relation n-n avec attributs 100

Les relations réflexives Relation 1-n réflexive Relation n-n réflexive Relation n-aire réflexive 101

Du conceptuel au relationnel Transformation des classes Chaque classe devient une entité ou une relation. Si nécessaire, ajout d identifiants Transformation des associations Associations 1-n simples : migration de 1 vers n les identifiants deviennent des clefs equipement1:equipement nom=radiateur gauche equipementid=1 serviceidref=1 service1:service nom=chauffage serviceid=1 equipement2:equipement nom=radiateur droite equipementid=2 serviceidref=1 clef étrangère clef primaire 102

Du conceptuel au relationnel Transformation des associations Associations 1-n avec cycles de vie liés : migration de 1 vers n avec clef étrangère intégrant la clef primaire les identifiants deviennent des clefs clef primaire 103

Du conceptuel au relationnel Association n-n et n-aire : migration des clefs primaires des classes connectées vers une nouvelle entité avion1:avion immatriculation=001 type=cargo affretage1:affretage immatriculation=001 compagnieidref=1 compagnie1:compagnie nom=comp1 compagnieid=1 affretage1:affretage immatriculation=001 compagnieidref=2 avion2:avion immatriculation=002 type=ligne affretage1:affretage immatriculation=002 compagnieidref=2 compagnie1:compagnie nom=comp2 compagnieid=2 104

Du conceptuel au relationnel Association n-n et n-aire : migration des clefs primaires des classes connectées vers l entité correspondant à la classe d association 105

Du conceptuel au relationnel Propagation des migrations 106

Du conceptuel au relationnel Association 1-1 Multiplicité minimale = 1 : fusion des classes Multiplicité minimale = 0 : migration d'une clef primaire vers l'autre relation Une des multiplicité minimale est à 0 : migration de la clef primaire vers la classe de multiplicité minimale nulle 107

Du conceptuel au relationnel Association réflexive de type 1-N Association réflexive de type N-N 108

Du conceptuel au relationnel Décomposition des associations de spécialisation (par distinction) 109

Application Construire un modèle relationnel correspondant au diagramme suivant : 110

Conclusion UML de Martin Fowler (Campus Press, 2000) UML par la pratique de Pascal Roques (Eyrolles, 2002) UML en action de Pascal Roques (Eyrolles, 2003) Planning extreme programming de Kent Beck et Martin Fowler (Addison Wesley, 2000) UML 2 et les design patterns de Craig Larman (Pearson Education, 2005) De UML à SQL de Christian Soutou (Eyrolles, 2002) MDA en action de X. Blanc (Eyrolles, 2005) 111

Exemple 112

Conception d un système de supervision Conception d'un système de monitoring et de délestage dynamique pour la salle PREDIS Des équipements électriques : éclairage de fond éclairage local PC stockage Chauffage Panneau PV EDF... Des services : utilisateurs intermédiaires supports 113

Conception d un système de supervision Des capteurs : température rayonnement solaire luminosité présence puissance électrique... Des actionneurs : commande des lampes de fond commande des lampes de bureau régulation de température / zone afficheur PC 114

A faire : Conception d un système de supervision Analyse préliminaire Spécifications Conception en utilisant des notations OCL Codage (ossature) 115

Conclusion http://www.omg.org http://uml.free.fr Martin Fowler et al. (2004). UML 2.0, ISBN 2-7440-1713-2 UML 2 - Modéliser une application Web - Pascal Roques, Eyrolles 2007, ISBN 2-212-12136-9 Des bases de données à l'internet de Philippe Mathieu chez Vuibert (2000) De UML à SQL de Christian Soutou chez Eyrolles (2002) http://www.w3schools.com/sql/default.asp http://www.mysql.com/documentation/index.html 116

Conclusion MDA distilled de S. J. Mellor, K. Scott, A. Uhl, D. Weise (Addison-Wesley, 2004) Eclipse Modeling Framework de F. Budinsky, D. Steinberg, E. Merks, R. Ellersick, T. J. Grose (Addison-Wesley, 2007) Mastering XMI de T. J. Grose, G.C. Doney, S.A. Brodsky (John Wiley & sons, 2002) staruml* Poséidon Rational Rose Dia Visual Paradigm... 117