Thèmes. Modélisation d applications industrielles avec UML. Motivations à l origine d UML. Introduction au formalisme UML.



Documents pareils
Analyse,, Conception des Systèmes Informatiques

IFT2255 : Génie logiciel

Chapitre I : le langage UML et le processus unifié

Université de Bangui. Modélisons en UML

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

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

UML (Paquetage) Unified Modeling Language

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

3. UML - Unified Modeling Language Diagrammes statiques

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

UML (Diagramme de classes) Unified Modeling Language

Cours en ligne Développement Java pour le web

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

Management des processus opérationnels

Génie Logiciel Orienté Objet UML

Cours STIM P8 TD 1 Génie Logiciel

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

Les diagrammes de modélisation

Rational Unified Process

Le Guide Pratique des Processus Métiers

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

Le génie logiciel. maintenance de logiciels.

RTDS G3. Emmanuel Gaudin

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

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

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

Conception, architecture et urbanisation des systèmes d information

Évaluation et implémentation des langages

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

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

Introduction aux concepts d ez Publish

Diagrammes de Package, de déploiement et de composants UML

Information utiles. webpage : Google+ : digiusto/

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

GL Le Génie Logiciel

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

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

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

La technologie Java Card TM

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Ingénierie des Modèles. Méta-modélisation

SECTION 5 BANQUE DE PROJETS

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Méthodologies de développement de logiciels de gestion

Générer du code à partir d une description de haut niveau

Description de la formation

CONCEPTION DE PROJET SIG AVEC UML

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

Cours Gestion de projet

GOL502 Industries de services

CHAPITRE 3 : LES METHODES AGILES?

Table des matières Sources

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

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

Le Processus Unifié de Rational

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

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

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Génie logiciel (Un aperçu)

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

Réussir la modélisation UML des phases amont Techniques de «pré-modélisation» : un pont vers le modèle

Génie Logiciel avec Ada. 4 février 2013

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Développement d un interpréteur OCL pour une machine virtuelle UML.

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Introduction au génie logiciel

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

Traduction des Langages : Le Compilateur Micro Java

Cours de Génie Logiciel

RAPPORT DE CONCEPTION UML :

Proposition pour la création d un site de gestion de projet

INDUSTRIALISATION ET RATIONALISATION

MEGA ITSM Accelerator. Guide de démarrage

Nom de l application

Patrons de Conception (Design Patterns)

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Semestre 1. Objectifs Approfondissement de l environnement Java et de son interface de programmation d applications : réseaux, et processus.

Merise. Introduction

Programmation Orientée Objet

Analyse par Objets. avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I

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

Génie Logiciel Avancé Cours 3 Le modèle à objets

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

4. SERVICES WEB REST 46

MEGA ITSM Accelerator. Guide de Démarrage

Développement ebusiness

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

Visual Paradigm Contraintes inter-associations

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

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

CNAM cours NFE107 : Urbanisation et architecture des SI Xavier Godefroy, Rapport sur le BPM, mai Le BPM

Toute personne souhaitant maîtriser les techniques liées à la conception de produits multimédia et à la création de sites Web.

Alfresco Guide Utilisateur

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

analyse et pérennise votre patrimoine informationnel

Transcription:

Modélisation d applications industrielles avec UML ACOO Analyse, Conception et développement Orientés Objet de logiciels de commande Thèmes Motivations à l origine d UML. Introduction au formalisme UML. Modélisation de structure. Modélisation de comportement. Principes de conception orientées objet. 1

La complexité logicielle Exemple d application industrielle Nature complexe du logiciel Complexité des problèmes à traiter Myriades d exigences fonctionnelles. Exigences non fonctionnelles, souvent contradictoires. Difficultés de communication Complexité de la réalisation Difficultés techniques de la programmation. Développement en parallèle à plusieurs. Besoin de créer une solution simple d emploi. Divergence des systèmes discrets petite erreur => conséquences énormes 2

Objectif du développement logiciel Exigences complexes Solution déployée Rôle de l analyse et conception Dans le processus de développement Exigences complexes Solution déployée Analyse Spécification claire formalisée Solution validée Déploiement Conception générale, détaillée Architecture logicielle Solution testée Acceptation Programmation Code source C++, C#, java, Test unitaire, d intégration 3

Quelques fondateurs de la modélisation orientée objet Ivar Jacobson OOSE James Rumbaugh OMT Grady Booch Booch OMT (Rumbaugh) 1991 Booch 1994 OOSE (Jacobson) 1992 Many others... Odell 1994 UML 0.8 1995 UML 1.0 1997 UML 1.1 UML 1.2 UML 1.3 1999 UML 1.4 UML 2.0, 2005 UML 1.5 2003 4

Qu est ce qu UML UML : Unified Modeling Language Langage de Modélisation Unifié. Appliqué à l analyse et à la conception des logiciels. Forte coloration orientée objet. Langage essentiellement graphique. Facile à lire et à comprendre. En clair UML: norme qui définit les diagrammes et les conventions à utiliser lors de la construction de modèles décrivant la structure et le comportement d un logiciel. Les modèles sont des diagrammes constitués d éléments graphiques et de texte. UML n est pas une méthode, mais un langage. Le contenu d UML en UML 13 types de diagrammes Classés en 2 catégories 7 diagrammes comportementaux 6 diagrammes structurels 13 Diagramme UML Un langage de spécification de contraintes OCL : Object Constraint Language Diagramme structurel Diagramme comportemental Une spécification de format de fichier. Format de fichier 1 OCL 5

Opérateur Début Amener les palettes dans le module de chargement Démarrer cycle de chargement Fin Station de contrôle Contrôler conditions nécessaires au cycle «loop» Charger les palettes ActivityInitial Biochimiste Définir un protocole de test Analyser les résultats «include» «include» Vérifier la v alidité des résultats Interpréter les résultats alt alt Cas d utilisation ActivityFinal Aperçu des interactions Activité Initial State2 State3 State1 Diagrammes comportementaux Object1 Request Object2 Process Etat 1: request Reply Object2 1.2: Reply Object3 1.1: transmit Idle TimeLine1 Actif 0 10 20 30 40 50 60 70 80 90 100 Object7 Interaction Temporel Communication Node1 «interface» CommunicationControle Package3 «deploy» AxeNumerique «realize» «use» Package2 «artifact» 3 RobotTransfert «use» Artifact1 «use» «manifest» «manifest» Pince 1 Package1 Component1 Component2 Déploiement Module de chargement Classe Diagrammes structurels Class1 Package Class2 Collaboration «rolebinding» Station de contrôle CommunicationControle Robot de transfert Object8 Object9 Class3 Composant Stockage climatisé Objets Object10 Structure composite 6

UML, un langage pour Visualiser chaque symbole graphique a une sémantique. Spécifier de manière précise et complète, sans ambiguïté. Construire les classes, les relations SQL peuvent être générées automatiquement Documenter les différents diagrammes, notes, contraintes, exigences seront présentés dans un document. Quelques diagrammes très utilisés Analyse de la fonctionnalité Cas d utilisation Diagrammes d activité Conception de la structure Diagramme de classes Conception du comportement Diagramme de séquence 7

Cas d utilisation Principes Définition Description d un cheminement complet d utilisation du logiciel. Aboutit à un résultat concret pour l utilisateur. Utilisation Analyse de la fonctionnalité. Identifier les façons d utiliser le système. Cas d utilisation Symboles 8

Cas d utilisation Exemple Définir un protocole de test Vérifier la v alidité des résultats Biochimiste Analyser les résultats «include» «include» Interpréter les résultats Préparer la machine pour le protocole de test «include» Charger les palettes de composants chimiques Operateur Réaliser le protocole de test «include» «include» Exécuter le protocole «include» Vérifier l'état des équipements «include» Corriger les anomalies Diagrammes d activités Principes Définition Description d un flot d activité. Utilisation des lignes d eau (swimlane) pour structurer. Met en évidence les interactions pour réaliser une tâche. Utilisation Analyse de la fonctionnalité. Très utilisé pour expliciter un cas d utilisation. 9

Diagrammes d activités Symboles Acteur SousSystème1 SousSystème2 Début Action1 Action3 Parallèle Action2 Parallèle Fi n Diagramme d activités Exemple Opérateur Station de contrôle Début Amener les palettes dans le module de chargement Démarrer cycle de chargement Contrôler conditions nécessaires au cycle «loop» Charger les palettes Fin 10

Diagramme d activités Exemple Module de chargement Robot de transfert Sockage climatisé Extraire une palette, placer sur zone d'échange robot Chercher palette sur module de chargement Placer palette sur zone d'échange avec stockage climatisé Prendre palette du robot Lire code barre Placer palette dans emplacement libre, mémoriser emplacement Diagrammes de classes Principes Définition Vue structurelle du logiciel Représentation de classes et de leurs relations Proche de l implémentation Utilisation Très utilisé pour la conception de la structure du logiciel Préférer des vues simples explicitant quelques aspects du logiciel Outil de travail itératif 11

Diagrammes de classes Symboles Cla ss 2 (composant) Clas s1 - AttributPrivé: int # AttributProtégé: int + AttributPublic: int - MéthodePrivée() : void # MéthodeProté gée() : void + MéthodePubli que() : void Util ise Cla ss4 1 * Cla ss 3 (Agrégable) «interface» Interface1 Sous classe Diagrammes de classes Exemple structure du contrôle de la machine ContrôleurAxeNumerique 3 ContrôleurBeckhoff ContrôleurB&R RobotTransfert SortieTOR 1 2 Pince Entre etor 2 12

Diagrammes de classes Exemple définition des séquences ListeP alette Pale ttes RecetteProduction PaletteMicroPlate PaletteTMO Workflow Actions DéposeRéactif Incubation Mes ure Diagrammes de séquences Principes Définition Vue comportementale du logiciel Représentation des appels de méthodes entre objets Proche de l implémentation Utilisation Très utilisé pour décrire un comportement du logiciel. Préférer des vues simples explicitant une séquence particulière. Ne l utiliser que lorsqu il y a un vrai travail d analyse de séquence. On ne documente pas tous les enchaînements d appels! 13

Diagrammes de séquences Symboles Diagrammes de séquences Exemple - Edition 14

Diagrammes de séquences Exemple Outils UML pour la conception orientée objet Illustration avec EnterpriseArchitect 15

Pourquoi modéliser? Modèle Vue simplifiée de la réalité. Permet de comprendre synthétiquement le système à développer. Le modèle permet de Visualiser le système Spécifier la structure et le comportement du système. comme il est ou comme il devrait être. ce qu il fait ou ce qu il devrait faire. Valider le modèle vis à vis des clients Fournir un guide pour la construction du système. Documenter le système et les décisions prises. Principes de conception orientée objet Organiser la connaissance Systèmes complexes Trop d information pour pouvoir les mobiliser simultanément. Nécessité de structurer pour rendre compréhensible. Plusieurs axes d organisation de la connaissance Abstraction Encapsulation Modularité Hiérarchie 16

Principes de conception orientée objet Abstraction Principe Vision simplifiée d un objet ou d une réalité d un domaine. Focalisée sur les caractéristiques importantes pour l application visée. Exemple Système de commande d axe numérique Commande de machines Gestion d'entreprise ContrôleurAxe + Acceleration: double + AxisID: int + Speed: double + Brake() : void + Move() : void ContrôleurAxe + NuméroArticle: int + PrixVente : double + QuantitéMinimaleFabrication: int + LancerFabrica tion() : void Principes de conception orientée objet Encapsulation Principe Rendre un objet utilisable sans connaissance de sa structure interne. Par la seule connaissance de son interface. Meilleure indépendance entre les objets d un système complexe. Exemple Contre-exemple ContrôleurAxe - UDPChannel: socket + Brake() : void + Move(doubl e) : void + SetAcceleration (double) : void + SetSpeed(dou ble) : void + UDPChannel: socket ContrôleurAxe + BuildBrakeMessage() : void + BuildMoveMessage() : void + ConvertPositionToIn ternalunit() : void + IsCommunicationCha nnelready() : void + SendMessag e() : void Il s agit de méthodes d implémentation. Elles doivent être private. 17

Principes de conception orientée objet Modularité Principe Regrouper dans des paquetages des ensembles d abstractions. Donne une vue d ensemble et une cohérence à l ensemble. Le découpage doit être compréhensible. Principes de conception orientée objet Modularité A B Quelle est la meilleure organisation? C D E 18

Principes de conception orientée objet Modularité Exemple Diagramme de paquetages Hardware Opéra tions Numeric alaxis Seque nces AxisController Workflow Action IO Pale ttes Digita linput AnalogInput Pale tte DigitalOutput AnalogOutput PaletteMicroPlate PaletteTMO Principes de conception orientée objet Hiérarchie Définition Une hiérarchie est un classement arborescent d abstractions. Selon une logique ou une cohérence compréhensible. Permet d appréhender beaucoup de concepts par la racine de l arbre. Hiérarchies principales Composition des objets Fait partie de Classification des objets Est un 19

Modèle orienté objet Notion de classe Classification Approche naturelle pour organiser la connaissance. Nos capacités cognitives maîtrisent très bien ce processus. Offre une vision synthétique d une collection d objets. Produit un découpage hiérarchique. Notion de classe Ensemble d objets qui partagent le même comportement. Partagent donc le même code source! On retrouve ainsi la notion de classe des langages OO. Notion de sous classe Sous ensemble d objet ayant toutes les caractéristiques de la classe parent. Ont en commun des caractéristiques plus spécialisées. Modèle orienté objet Notion de classe 20

Modèle orienté objet Notion de classe Modèle orienté objet Notion de classe 21

Modèle orienté objet Notion de classe Modèle orienté objet Notion de classe La classification dépend du point de vue duquel on se place 22

Modèle orienté objet Notion d objet Qu est ce qu un objet Un élément tangible ou visible. Quelque chose qui peut être appréhendé intellectuellement. Un élément sur lequel on peut souhaiter agir. 3 Caractéristiques Identité C++: c est l adresse en mémoire de l objet. Etat C++: c est la réunion des valeurs des champs de l objet. Comportement C++: c est l ensemble des méthodes de la classe de l objet. Relations entre classes Lien simple : relation d utilisation Définition Un objet utilise les services d un autre. Concrètement, il appelle ses méthodes. Test de validité Un objet de ClasseA utilise un objet de ClasseB Exemple L objet «Contrôleur d axe numérique» utilise l objet «socket UDP» pour communiquer. ContrôleurAxeNumerique Util ise Socke tudp 23

Relations entre classes Composition Définition Un objet est composé de sous-objets. Concrètement, le sous objet fait partie des champs de son contenant. Test de validité Le sous-objet a exactement la même durée de vie que le contenant. Un objet de ClasseA est composé d un objet de ClasseB. Exemple Le «système de commande de la machine» est composé de 4 «contrôleurs d axe numérique», de 20 «entrées TOR» et de 10 «sorties TOR». Commande Machine ContrôleurAxeNumerique 4 Relations entre classes Agrégation Définition Un objet peut contenir des sous-objets. Concrètement, un objet contient des références vers des sous-objets. Test de validité Le sous-objet peut avoir une durée de vie différente du contenant. Un objet de ClasseA peut contenir un objet de ClasseB. Exemple Un «workflow» contient des «actions». Workflow Action 24

Relations entre classes Héritage (généralisation / spécialisation) Définition Une sous-classe est une spécialisation de sa classe parent. Une classe est une généralisation de ses sous classes. Test de validité Un objet de la sous classe est un objet de la classe. Exemples Une «opération de fraisage» est une «opération d usinage». Une «sortie TOR Beckhoff» est une «sortie TOR». ContrôleurAxeNumerique ContrôleurBeckhoff ContrôleurB&R Relations entre classes Héritage d interface Une classe présente souvent plusieurs aspects orthogonaux Une opération de fraisage est une opération d usinage. Une opération de fraisage est un objet persistant. Une opération de fraisage est un objet éditable. L héritage multiple d implémentation Est supporté en C++, mais fortement déconseillé. N est pas supporté par de nombreux autres langages. Solution : la notion d interface classe ne contenant que des méthodes virtuelles pures, sans implémentation. Traduit conceptuellement «supporte le service de» Les aspects non métiers sont usuellement traduits par l héritage d interface. 25

Relations entre classes Héritage d interface - illustration Seule la classe OpérationUsinage apporte une implémentation. Les interfaces Persistence et Editable n apportent que des spécifications de méthodes. Approche orientée objet Modélisation naturelle Principe essentiel Calquer le modèle objet sur la réalité. Justifications Facilité La structure du logiciel découle naturellement de la structure du monde réel. Stabilité La nature profonde de la réalité est assez stable. Donc le logiciel sera également stable dans le temps. Pas de refonte complète pour la prise en compte de nouvelles fonctionnalités Compréhension La structure du logiciel sera aisément compréhensible à partir de la connaissance du métier. 26

Approche orientée objet Modélisation naturelle Illustration sur un cas concret Automate programmable autonome Approche orientée objet Modélisation naturelle 27

Approche orientée objet Démarche intellectuelle travailler sur la langue naturelle Reconnaitre classes-objets et méthodes Classes et objets : noms communs Méthodes : verbes Avec l interface homme-machine, l opérateur édite une séquence en ajoutant des actions, pour lesquelles il doit saisir les paramètres d usinage. L exécution d une séquence d actions consiste à verrouiller les portes de sécurité, à mettre sous tension les axes numériques, puis à exécuter les actions l une après l autre. Approche orientée objet Démarche intellectuelle travailler sur la langue naturelle Reconnaitre les relations entre classes Les compositions est composé de. La machine est composée de 4 axes numériques et d une pince. Les agrégations peut contenir des Une séquence peut contenir de nombreuses opérations. Les généralisations : Est un type de Le fraisage est un type d opération réalisable sur ces machines. Les spécialisations Plusieurs types de Il y a plusieurs types d utilisateurs : opérateur, technicien de maintenance. 28

Comment procéder? L analyse et la conception Phase d analyse : clarifier les objectifs Clarifier exhaustivement les exigences à remplir. Formaliser le comportement attendu du logiciel. Le faire valider par le client. Phase de conception : clarifier la structure Définir la structure du logiciel permettant de couvrir les exigences. La valider par rapport aux exigences à remplir. Démarche générale Abstraction : créer des vues simples à comprendre. Décomposition hiérarchique vers plus de détail. Utilisation d un langage facile à comprendre par le client. En savoir plus sur UML et la conception orientée objet www.uml.org 29

Application répandue de l orienté objet Les Frameworks pour le développement d interfaces graphiques Application répandue Les logiciels graphiques vectoriels ObjetGraphique 30

Qu avons-nous appris? Vos questions 31