Вы находитесь на странице: 1из 31

Modlisation dapplications industrielles avec UML

ACOO Analyse, Conception et dveloppement Orients Objet de logiciels de commande

Thmes
Motivations lorigine dUML. Introduction au formalisme UML.
Modlisation de structure. Modlisation de comportement.

Principes de conception orientes objet.

Modlisation d'applications industrielles avec UML

La complexit logicielle
Exemple dapplication industrielle

Modlisation d'applications industrielles avec UML

Nature complexe du logiciel


Complexit des problmes traiter
Myriades dexigences fonctionnelles. Exigences non fonctionnelles, souvent contradictoires. Difficults de communication

Complexit de la ralisation
Difficults techniques de la programmation. Dveloppement en parallle plusieurs. Besoin de crer une solution simple demploi.

Divergence des systmes discrets


petite erreur => consquences normes

Modlisation d'applications industrielles avec UML

Objectif du dveloppement logiciel

Exigences complexes

Solution dploye

Modlisation d'applications industrielles avec UML

Rle de lanalyse et conception


Dans le processus de dveloppement
Exigences complexes Solution dploye

Analyse

Spcification claire formalise

Solution valide

Dploiement

Conception gnrale, dtaille

Architecture logicielle

Solution teste

Acceptation

Code source C++, C#, java, Programmation


Modlisation d'applications industrielles avec UML

Test unitaire, dintgration

Quelques fondateurs de la modlisation oriente objet

Ivar Jacobson OOSE

James Rumbaugh OMT

Grady Booch Booch

Modlisation d'applications industrielles avec UML

OMT (Rumbaugh) 1991 Many others... Booch 1994 OOSE (Jacobson) 1992

Odell 1994

UML 0.8 1995

UML 1.0 1997

UML 1.1

UML 1.2

UML 1.3 1999

UML 1.4

UML 1.5 2003 UML 2.0, 2005

Modlisation d'applications industrielles avec UML

Quest ce quUML
UML : Unified Modeling Language
Langage de Modlisation Unifi. Appliqu lanalyse et la conception des logiciels. Forte coloration oriente objet. Langage essentiellement graphique. Facile lire et comprendre.

En clair
UML: norme qui dfinit les diagrammes et les conventions utiliser lors de la construction de modles dcrivant la structure et le comportement dun logiciel. Les modles sont des diagrammes constitus dlments graphiques et de texte. UML nest pas une mthode, mais un langage.

Modlisation d'applications industrielles avec UML

Le contenu dUML en UML


13 types de diagrammes Classs en 2 catgories


Diagramme 13

7 diagrammes comportementaux 6 diagrammes structurels


UML

Un langage de spcification de contraintes

Diagramme structurel

Diagramme comportemental

OCL : Object Constraint Language

Une spcification de format de fichier.

1 Format de fichier OCL

Modlisation d'applications industrielles avec UML

ActivityInitial

Oprateur Dbut

Station de contrle

Dfinir un protocole de test Vrifier la v alidit des rsultats include Biochimiste Analyser les rsultats include Interprter les rsultats

alt

Amener les palettes dans le module de chargement

Dmarrer cycle de chargement Contrler conditions ncessaires au cycle

alt

loop Charger les palettes

Cas dutilisation

ActivityFinal
Fin

Aperu des interactions


Initial State2 State1

Activit

State3

Diagrammes comportementaux
1: request 1.2: Reply Object2 Object3

Object1

Object2

Request

Process Reply

Etat

1.1: transmit

Idle Actif

Interaction
0 10 20 30 40 50 60 70 80 90 100
Object7

Modlisation d'applications industrielles avec UML

Station de contrle

Modlisation d'applications industrielles avec UML

TimeLine1

Temporel

Communication

Node1

interface CommunicationControle

Package3

use
AxeNumerique realize 3 RobotTransfert

Package2

deploy artifact Artifact1


use
Pince

use

Package1
1

manifest

manifest

Component1

Component2

Classe Package Dploiement

Module de chargement

Diagrammes structurels
Obj ect8 Obj ect9

Class1 Class2

rolebinding Collaboration

CommunicationControle Robot de transfert

Class3

Stockage climatis

Obj ect10

Structure composite

Composant Objets

UML, un langage pour


Visualiser
chaque symbole graphique a une smantique.

Spcifier
de manire prcise et complte, sans ambigut.

Construire
les classes, les relations SQL peuvent tre gnres automatiquement

Documenter
les diffrents diagrammes, notes, contraintes, exigences seront prsents dans un document.

Modlisation d'applications industrielles avec UML

Quelques diagrammes trs utiliss


Analyse de la fonctionnalit
Cas dutilisation Diagrammes dactivit

Conception de la structure
Diagramme de classes

Conception du comportement
Diagramme de squence

Modlisation d'applications industrielles avec UML

Cas dutilisation
Principes
Dfinition
Description dun cheminement complet dutilisation du logiciel. Aboutit un rsultat concret pour lutilisateur.

Utilisation
Analyse de la fonctionnalit. Identifier les faons dutiliser le systme.

Modlisation d'applications industrielles avec UML

Cas dutilisation
Symboles

Modlisation d'applications industrielles avec UML

Cas dutilisation
Exemple
Dfinir un protocole de test Vrifier la v alidit des rsultats include Biochimiste Analyser les rsultats include Interprter les rsultats

Prparer la machine pour le protocole de test Raliser le protocole de test Operateur include

include

Charger les palettes de composants chimiques

include

Vrifier l'tat des quipements

include

Excuter le protocole include Corriger les anomalies

Modlisation d'applications industrielles avec UML

Diagrammes dactivits
Principes Dfinition
Description dun flot dactivit. Utilisation des lignes deau (swimlane) pour structurer. Met en vidence les interactions pour raliser une tche.

Utilisation
Analyse de la fonctionnalit. Trs utilis pour expliciter un cas dutilisation.

Modlisation d'applications industrielles avec UML

Diagrammes dactivits
Symboles
Acteur SousSyst me1 SousSy stme2

Dbut

Acti on1

Action3 Parallle

Action2 Parallle

Fi n

Modlisation d'applications industrielles avec UML

Diagramme dactivits
Exemple
Oprateur Dbut Station de contrle

Amener les palettes dans le module de chargement

Dmarrer cycle de chargement Contrler conditions ncessaires au cycle

loop Charger les palettes

Fin

Modlisation d'applications industrielles avec UML

10

Diagramme dactivits
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 av ec stockage climatis

Prendre palette du robot

Lire code barre

Placer palette dans emplacement libre, mmoriser emplacement

Modlisation d'applications industrielles avec UML

Diagrammes de classes
Principes Dfinition
Vue structurelle du logiciel Reprsentation de classes et de leurs relations Proche de limplmentation

Utilisation
Trs utilis pour la conception de la structure du logiciel Prfrer des vues simples explicitant quelques aspects du logiciel Outil de travail itratif

Modlisation d'applications industrielles avec UML

11

Diagrammes de classes
Symboles
Cla ss 2 (composant) Cl as s1 # + # + AttributPriv: int AttributProtg: int AttributPublic: int MthodePrive() : void MthodeProt ge() : void MthodePubli que() : void Util ise Cla ss4 1 * Cla ss 3 (Agrgable)

interface Inter face1 Sous c lasse

Modlisation d'applications industrielles avec UML

Diagrammes de classes
Exemple structure du contrle de la machine
ContrleurAxeNumerique 3

ContrleurBeckhoff

Contrl eurB&R

RobotTr ansfert

Sorti eTOR

1 Pince 2

Entre eTOR 2

Modlisation d'applications industrielles avec UML

12

Diagrammes de classes
Exemple dfinition des squences
ListeP alette Pale ttes

PaletteMi croPlate RecettePr oduction

PaletteTMO

Workflow

Actions

DposeRactif

Incubation

Mes ure

Modlisation d'applications industrielles avec UML

Diagrammes de squences
Principes Dfinition
Vue comportementale du logiciel Reprsentation des appels de mthodes entre objets Proche de limplmentation

Utilisation
Trs utilis pour dcrire un comportement du logiciel. Prfrer des vues simples explicitant une squence particulire. Ne lutiliser que lorsquil y a un vrai travail danalyse de squence.
On ne documente pas tous les enchanements dappels !

Modlisation d'applications industrielles avec UML

13

Diagrammes de squences
Symboles

Modlisation d'applications industrielles avec UML

Diagrammes de squences
Exemple - Edition

Modlisation d'applications industrielles avec UML

14

Diagrammes de squences
Exemple

Modlisation d'applications industrielles avec UML

Outils UML pour la conception oriente objet


Illustration avec EnterpriseArchitect

Modlisation d'applications industrielles avec UML

15

Pourquoi modliser ?
Modle
Vue simplifie de la ralit. Permet de comprendre synthtiquement le systme dvelopper.

Le modle permet de
Visualiser le systme Spcifier la structure et le comportement du systme.
comme il est ou comme il devrait tre. ce quil fait ou ce quil devrait faire.

Valider le modle vis vis des clients Fournir un guide pour la construction du systme. Documenter le systme et les dcisions prises.

Modlisation d'applications industrielles avec UML

Principes de conception oriente objet


Organiser la connaissance Systmes complexes
Trop dinformation pour pouvoir les mobiliser simultanment. Ncessit de structurer pour rendre comprhensible.

Plusieurs axes dorganisation de la connaissance


Abstraction Encapsulation Modularit Hirarchie

Modlisation d'applications industrielles avec UML

16

Principes de conception oriente objet


Abstraction
Principe
Vision simplifie dun objet ou dune ralit dun domaine. Focalise sur les caractristiques importantes pour lapplication vise.

Exemple
Systme de commande daxe numrique
Commande de machines Gestion d'entreprise

Contrl eurAxe + + + + + Acceleration: double AxisID: int Speed: double Brake() : void Move() : void + + + +

Contrl eurAxe NumroArticle: int PrixVente : double QuantitMinimaleFabrication: int LancerFabrica tion() : void

Modlisation d'applications industrielles avec UML

Principes de conception oriente objet


Encapsulation Principe
Rendre un objet utilisable sans connaissance de sa structure interne. Par la seule connaissance de son interface. Meilleure indpendance entre les objets dun systme complexe.

Exemple
Contrl eurAxe + + + + UDPChannel: socket Brake() : void Move(doubl e) : void SetAcceleration (double) : void SetSpeed(dou ble) : void
+ + + + + +

Contre-exemple
Contrl eurAxe UDPChannel: socket BuildBrakeMessage() : void BuildMoveMessage() : void ConvertPositionToIn ternalUnit() : void IsCommunicationCha nnelReady() : void SendMessag e() : void

Il sagit de mthodes dimplmentation. Elles doivent tre private.


Modlisation d'applications industrielles avec UML

17

Principes de conception oriente objet


Modularit
Principe
Regrouper dans des paquetages des ensembles dabstractions. Donne une vue densemble et une cohrence lensemble. Le dcoupage doit tre comprhensible.

Modlisation d'applications industrielles avec UML

Principes de conception oriente objet


Modularit
A B

Quelle est la meilleure organisation ?

D E

Modlisation d'applications industrielles avec UML

18

Principes de conception oriente objet


Modularit Exemple Diagramme de paquetages
Hardw are Opra tions Numeric alAxis Seque nces

AxisController Workflow Action

IO Pale ttes Digita lInput

AnalogInput Pale tte

Digital Output

AnalogOutput PaletteMi croPlate PaletteTMO

Modlisation d'applications industrielles avec UML

Principes de conception oriente objet


Hirarchie Dfinition
Une hirarchie est un classement arborescent dabstractions. Selon une logique ou une cohrence comprhensible. Permet dapprhender beaucoup de concepts par la racine de larbre.

Hirarchies principales
Composition des objets
Fait partie de

Classification des objets


Est un

Modlisation d'applications industrielles avec UML

19

Modle orient objet


Notion de classe
Classification
Approche naturelle pour organiser la connaissance. Nos capacits cognitives matrisent trs bien ce processus. Offre une vision synthtique dune collection dobjets. Produit un dcoupage hirarchique.

Notion de classe
Ensemble dobjets qui partagent le mme comportement. Partagent donc le mme code source ! On retrouve ainsi la notion de classe des langages OO.

Notion de sous classe


Sous ensemble dobjet ayant toutes les caractristiques de la classe parent. Ont en commun des caractristiques plus spcialises.
Modlisation d'applications industrielles avec UML

Modle orient objet


Notion de classe

Modlisation d'applications industrielles avec UML

20

Modle orient objet


Notion de classe

Modlisation d'applications industrielles avec UML

Modle orient objet


Notion de classe

Modlisation d'applications industrielles avec UML

21

Modle orient objet


Notion de classe

Modlisation d'applications industrielles avec UML

Modle orient objet


Notion de classe La classification dpend du point de vue duquel on se place

Modlisation d'applications industrielles avec UML

22

Modle orient objet


Notion dobjet
Quest ce quun objet
Un lment tangible ou visible. Quelque chose qui peut tre apprhend intellectuellement. Un lment sur lequel on peut souhaiter agir.

3 Caractristiques
Identit
C++: cest ladresse en mmoire de lobjet.

Etat
C++: cest la runion des valeurs des champs de lobjet.

Comportement
C++: cest lensemble des mthodes de la classe de lobjet.

Modlisation d'applications industrielles avec UML

Relations entre classes


Lien simple : relation dutilisation Dfinition
Un objet utilise les services dun autre. Concrtement, il appelle ses mthodes.

Test de validit
Un objet de ClasseA utilise un objet de ClasseB

Exemple
Lobjet Contrleur daxe numrique utilise lobjet socket UDP pour communiquer.
ContrleurAxeNumerique Util ise Socke tUDP

Modlisation d'applications industrielles avec UML

23

Relations entre classes


Composition
Dfinition
Un objet est compos de sous-objets. Concrtement, le sous objet fait partie des champs de son contenant.

Test de validit
Le sous-objet a exactement la mme dure de vie que le contenant. Un objet de ClasseA est compos dun objet de ClasseB.

Exemple
Le systme de commande de la machine est compos de 4 contrleurs daxe numrique , de 20 entres TOR et de 10 sorties TOR .
Commande Machine 4 ContrleurAxeNumerique

Modlisation d'applications industrielles avec UML

Relations entre classes


Agrgation Dfinition
Un objet peut contenir des sous-objets. Concrtement, un objet contient des rfrences vers des sous-objets.

Test de validit
Le sous-objet peut avoir une dure de vie diffrente du contenant. Un objet de ClasseA peut contenir un objet de ClasseB.

Exemple
Un workflow contient des actions .
Workflow Action

Modlisation d'applications industrielles avec UML

24

Relations entre classes


Hritage (gnralisation / spcialisation)
Dfinition
Une sous-classe est une spcialisation de sa classe parent. Une classe est une gnralisation de ses sous classes.

Test de validit
Un objet de la sous classe est un objet de la classe.

Exemples
Une opration de fraisage est une opration dusinage . Une sortie TOR Beckhoff est une sortie TOR .
ContrleurAxeNumerique

ContrleurBeckhoff

Contrl eurB&R

Modlisation d'applications industrielles avec UML

Relations entre classes


Hritage dinterface Une classe prsente souvent plusieurs aspects orthogonaux
Une opration de fraisage est une opration dusinage. Une opration de fraisage est un objet persistant. Une opration de fraisage est un objet ditable.

Lhritage multiple dimplmentation


Est support en C++, mais fortement dconseill. Nest pas support par de nombreux autres langages.

Solution : la notion dinterface


classe ne contenant que des mthodes virtuelles pures, sans implmentation. Traduit conceptuellement supporte le service de Les aspects non mtiers sont usuellement traduits par lhritage dinterface.
Modlisation d'applications industrielles avec UML

25

Relations entre classes


Hritage dinterface - illustration
Seule la classe OprationUsinage apporte une implmentation. Les interfaces Persistence et Editable napportent que des spcifications de mthodes.

Modlisation d'applications industrielles avec UML

Approche oriente objet


Modlisation naturelle Principe essentiel
Calquer le modle objet sur la ralit.

Justifications
Facilit
La structure du logiciel dcoule naturellement de la structure du monde rel.

Stabilit
La nature profonde de la ralit est assez stable. Donc le logiciel sera galement stable dans le temps. Pas de refonte complte pour la prise en compte de nouvelles fonctionnalits

Comprhension
La structure du logiciel sera aisment comprhensible partir de la connaissance du mtier.
Modlisation d'applications industrielles avec UML

26

Approche oriente objet


Modlisation naturelle Illustration sur un cas concret
Automate programmable autonome

Modlisation d'applications industrielles avec UML

Approche oriente objet


Modlisation naturelle

Modlisation d'applications industrielles avec UML

27

Approche oriente objet


Dmarche intellectuelle travailler sur la langue naturelle
Reconnaitre classes-objets et mthodes
Classes et objets : noms communs Mthodes : verbes

Avec linterface hommemachine, loprateur dite une -machine, squence en ajoutant des actions, pour lesquelles il doit saisir les paramtres dusinage. dusinage. Lexcution dune squence dactions dactions consiste verrouiller les portes de scurit, mettre sous tension les axes numriques, puis excuter les actions lune aprs lautre.
Modlisation d'applications industrielles avec UML

Approche oriente objet


Dmarche intellectuelle travailler sur la langue naturelle Reconnaitre les relations entre classes
Les compositions
est compos de. La machine est compose de 4 axes numriques et dune pince.

Les agrgations
peut contenir des Une squence peut contenir de nombreuses oprations.

Les gnralisations :
Est un type de Le fraisage est un type dopration ralisable sur ces machines.

Les spcialisations
Plusieurs types de Il y a plusieurs types dutilisateurs : oprateur, technicien de maintenance.
Modlisation d'applications industrielles avec UML

28

Comment procder ?
Lanalyse et la conception
Phase danalyse : 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


Dfinir la structure du logiciel permettant de couvrir les exigences. La valider par rapport aux exigences remplir.

Dmarche gnrale
Abstraction : crer des vues simples comprendre. Dcomposition hirarchique vers plus de dtail. Utilisation dun langage facile comprendre par le client.

Modlisation d'applications industrielles avec UML

En savoir plus
sur UML et la conception oriente objet www.uml.org

Modlisation d'applications industrielles avec UML

29

Application rpandue de lorient objet


Les Frameworks pour le dveloppement dinterfaces graphiques

Modlisation d'applications industrielles avec UML

Application rpandue
Les logiciels graphiques vectoriels

ObjetGraphique

Modlisation d'applications industrielles avec UML

30

Quavons-nous appris ?

Modlisation d'applications industrielles avec UML

Vos questions

Modlisation d'applications industrielles avec UML

31