850 likes | 997 Views
Unified Modeling Langage (UML) (Bersini 2004) (http://www.projet-plume.org/ressource/uml-langage-graphique-de-modelisation). Laurent Pérochon animateur PEPI IDL INRA, Dept PHASE URH 63122 St Genès Champanelle Laurent.perochon@clermont.inra.fr. Histoire des langages de programmation.
E N D
Unified Modeling Langage (UML) (Bersini 2004) (http://www.projet-plume.org/ressource/uml-langage-graphique-de-modelisation) Laurent Pérochon animateur PEPI IDL INRA, Dept PHASE URH 63122 St Genès Champanelle Laurent.perochon@clermont.inra.fr Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Histoire des langages de programmation 1970/1980 : langages procéduraux et structures de données. Les procédures divisent le code en plusieurs parties (chapitres d ’un livre). Réutilisabilité du code. Librairies (ensemble de procédures). données en groupe ou structures, types différents. 1980 -> Conception orientée-objets, programmation orientée objets, Framework. Framework = regroupement d ’objets (librairie). Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
L ’orienté Objet C ’est une technique de modélisation de système. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Le système Un système est composé d ’objets en interaction Exemples : • Une compagnie aérienne (avions, pilotes …) • Un amphithéâtre (élèves, professeur, tables …) Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les objets Les objets du système amphithéâtre Paul Table n°1 Lucie Chaise n°2 Pascal Table°2 Chaise n°1 Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
23 ans célibataire 4 pieds marron mange dors étudie ouverture tiroir tirer rallonge Les objets Objet = attributs + Méthodes (Opérations) Pascal Table°2 Attributs Opérations Méthodes Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Objets attributs méthodes Différences approches procédurale/Objet objet Procédurale programmes Fichiers de données Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes Elles regroupent les objets ayant des caractéristiques communes (informations/comportements). Même « moule » Une classe est un modèle! Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Paul Table n°1 Chaise n°1 Pascal Table°2 Chaise n°2 Lucie Personne Chaise Table Les classes Objets Classes Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes et les instances 23 ans célibataire 25 ans marié 20 ans célibataire Personne âge statut marital mange dors étudie mange dors étudie mange dors étudie mange dors étudie Pascal Paul Lucie Objet Instance Classe Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes et les instances Chaque instance est forcément associée à une classe. Quand on instancie une classe on obtient un objet. (on créer les champs pour les attributs) Une instance est un objet. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Résumé : Entités de l ’approche orientée objet Objets Valeurs particulières Attributs Classes (Méthodes) « Cases » vides Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Objet = île Communication inter îles : ponts http://fr.wikipedia.org/wiki/Fichier:Faroes030417-nasa%282%29.jpg Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les associations(liens entre classes) Héritage …. À voir Agrégation Association ... Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
L ’héritage Généralisation/Spécialisation Lorsque des classes ont des caractéristiques communes, on peut mettre en commun ces informations/comportements dans une classe spécifique. Les classes d ’origines hériteront des caractéristiques de celle-ci. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
L ’héritage Personne Personne statut marital âge statut marital âge mange dors étudie dors Homme Bébé mange étudie mange Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
L ’héritage Personne Personne statut marital âge statut marital âge mange dors étudie dors mange Modification de ‘Mange’ Homme Bébé étudie mange Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
L ’héritage Homme Bébé Personne statut marital âge étudie dors mange mange Parent Descendants Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
L ’héritage Avantages partage de code Réutilisabilité Fiabilité (classes les plus hautes souvent utilisées) Dangers Découpage excessif du code non respect de la généralisation/spécialisation Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Agrégation Plateau Pied n°1 Pied n°3 rallonge Table°2 Pied n°2 Pied n°4 tiroir Composition (plus fort) l ’objet contient, regroupe, possède Exemple de relation « regroupe « Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Association Lucie Demande rapport Demande rapport Envoi partie n°1 Professeur Martin Binôme n°1 Envoi partie n°2 Remise rapport Demande rapport Pascal Communication entre objets. Un objet envoi un message/stimulus à un autre Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Le principe de l ’encapsulation Objet2 Objet1 Méthodes publiques Méthodes privées Méthodes publiques Méthodes privées Séparation Interface/Implémentation Demande service l ’objet2 ne peut accéder à l ’objet1 que par ses méthodes publiques (pas de modification directe de ses attributs …) Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Le polymorphisme Une objet peut envoyer un message à un autre objet, sans connaître le type de la classe de l ’objet qui le recevra. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Résumé Un objet/instance contient les données (attributs) et les traitements (méthodes) Chacun d ’eux est associé à une classe (moule) Les classes sont associées entre elles par des associations Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Exemple à modéliser Lucie Demande rapport Demande rapport Envoi partie n°1 Professeur Martin Binôme n°1 Envoi partie n°2 Remise rapport Demande rapport Pascal Schéma logique Représentation physique : programme Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? Qu’est ce qui agit, pense, fourni un service …? Lucie Professeur Martin Pascal Personnes physiques qui ne font Pas la même chose Et binôme n°1 ? ……. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? Sans objectifs plus précis, sans spécifications supplémentaires, il y a plusieurs représentations possibles simple complexe Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? Personne • Statut • Nom • Demande rapport() • Envoie partie() Simple instance classe -Élève -Lucie -Élève -Pascal -Professeur -Martin Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? instance Trop Simple -Élève -Lucie classe Personne -Élève -Pascal • Statut • Nom • Demande rapport() • Envoie partie() -Professeur -Martin L’instance Lucie ne connaît quelle même L’instance de professeur ne connaît pas de binôme ni d’élève Et le binôme ? C’est le seul qui fait une remise de rapport Seul Professeur et binôme peuvent demander un rapport Seul les élèves remettent des parties de rapport Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? L’instance Lucie ne connaît quelle même L’instance de professeur ne connaît pas de binôme ni d’élève Deux types de problèmes Et le binôme ? C’est le seul qui fait une remise de rapport Seul Professeur et binôme peuvent demander un rapport Seul les élèves remettent des parties de rapport Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? Et le binôme ? C’est le seul qui fait une remise de rapport Seul Professeur et binôme peuvent demander un rapport Seul les élèves remettent des parties de rapport Il manque des notions/informations + Mélange de fonctions Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? Personne -nom Élève Professeur Binôme Appartient à Demande rapport() Envoie partie() -numéro Demande rapport() Remise rapport() Et le binôme ? C’est le seul qui fait une remise de rapport Seul Professeur et binôme peuvent demander un rapport Seul les élèves remettent des parties de rapport Correspondance Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ? Personne -nom Professeur Élève Binôme Appartient à Demande rapport() Envoie partie() -numéro Demande rapport() Remise rapport() L’instance Lucie ne connaît quelle même L’instance de professeur ne connaît pas de binôme ni d’élève divergence Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes et les associations ? Personne -nom Élève Binôme Envoie partie() -numéro Demande rapport() Remise rapport() Connaît Professeur Connaît Demande rapport() Est composé de Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes et les associations ? Personne -nom Connaît Professeur Connaît -Nom Demande rapport() Élève Binôme Est composé de -Nom Envoie partie() -numéro Demande rapport() Remise rapport() Une classe pour juste mettre en commun un nom c’est faire compliquer pour rien. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes et les associations ? Connaît Professeur Connaît -Nom Demande rapport() Élève Binôme -Nom Envoie partie() -numéro Demande rapport() Remise rapport() Est composé de Difficile d’arriver à cette solution ! Raisons : problèmes de spécifications et surtout de méthode et de représentation non normée. Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Le programme Professeur -Martin (1, »Lucie ») (2, »Pascal ») -Pascal -Lucie élèves Programme principal Créer(« Martin ») (3,instances Pascal et Lucie) -1 binôme Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Le programme Professeur -Martin (1, »Lucie ») (2, »Pascal ») -Pascal -Lucie élèves Ainsi Martin connaît Pascal et Lucie! Idem pour binôme 1 Tableau d’instances = accès aux instances depuis l’instance Professeur Martin Instance Lucie, instance Pascal, instance … Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML (unified Modeling Langage) • Introduction • Vue d’ensemble • Que doit faire mon logiciel ? • La structure (vue métier) • La dynamique (vue métier) • La conception (vue informatique) • Conclusion Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Introduction Logiciel Exécutable symboles Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Introduction Modèles à Compartiments (flux entre compartiments) Unified Modeling Langage (UML) • Modèle du domaine • Architecture du logiciel • Communication utilisateur/informaticien (J. Learmount et al. 2006) Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Vue d’ensemble • Introduction • Vue d’ensemble • Que doit faire mon logiciel ? • La structure du logiciel (vue métier) • La dynamique interne au logiciel (vue métier) • La conception (vue informatique) • Conclusion Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Vue d’ensemble Object Management Group (OMG) Regroupe les principaux acteurs en informatique utilisant l’approche objet XML MOF CORBA … Unified Modeling Langage (UML) UML 1 (1997) UML 2 (2005) Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Vue d’ensemble Entités Associations (entre entités) Diagrammes (entités + associations) Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Personne Gestant - âge - dors() Biologique Eleveur UML Vue d’ensemble Classe État / Activités Cas d ’utilisation Paquetage Acteur Émission CO2 Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Vue d’ensemble Associations (entre entités) Généralisation/ Spécialisation Dépendance Association Agrégation Alimente > Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Vue d’ensemble Diagrammes 13 Etats-Transitions Classes Cas d’utilisation Séquences Activités Paquetages Représentations graphiques du logiciel Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Fonctionnalités • Introduction • Vue d’ensemble • Que doit faire mon logiciel ? • La structure du logiciel (vue métier) • La dynamique interne au logiciel (vue métier) • La conception (vue informatique) • Conclusion Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Un type d’utilisateur Un acteur Type de l’acteur UML Fonctionnalités Chaque type d’utilisateur va avoir des besoins spécifiques / des utilisations du logiciel différentes Découpage par fonctions, responsabilités, domaines d’expertise, par équipes … Exemple : Logiciel Achat : secrétaire, responsable contrat achat, service informatique Simulateur PARIS : informaticien, expert comportement social, expert ingestion, expert végétation, stagiaires Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML Fonctionnalités définir les fonctionnalités du logiciel pour chacun des acteurs Exemple : Logiciel Achat : consulter un prix, passer commande, ajouter un nouveau compte utilisateur, inscrire un nouveau fournisseur Simulateur PARIS : caractériser les animaux et la végétation initiales, sélectionner les sorties désirées, lancer une simulation UML Une fonctionnalité Un cas d’utilisation Nom du cas d’utilisation Laurent Pérochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011