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. |
Modélisation d'applications industrielles avec UML |
La complexité logicielle Exemple d’application industrielle |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
Objectif du développement logiciel
| |||||
Modélisation d'applications industrielles avec UML ![]() | |||||
Rôle de l’analyse et conception Dans le processus de développement | |||||
Modélisation d'applications industrielles avec UML |
Quelques fondateurs de la modélisation orientée objet Ivar Jacobson James Rumbaugh Grady Booch OOSE OMT Booch |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Le contenu d’UML … en UML l 13 types de diagrammes l Classés en 2 catégories – 7 diagrammes comportementaux – 6 diagrammes structurels l Un langage de spécification de contraintes – OCL : Object Constraint Language l Une spécification de format de fichier. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Cas d’utilisation Exemple Biochimiste Operateur | ||
Modélisation d'applications industrielles avec UML | ||
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. | ||
Modélisation d'applications industrielles avec UML |
Diagramme d’activités Exemple |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
Diagrammes de classes Exemple – structure du contrôle de la machine |
Modélisation d'applications industrielles avec UML |
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 ! |
Modélisation d'applications industrielles avec UML |
Diagrammes de séquences ![]() Symboles |
Modélisation d'applications industrielles avec UML |
Diagrammes de séquences Exemple |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Principes de conception orientée objet Modularité – Exemple – Diagramme de paquetages | |||||
Hardware | |||||
Modélisation d'applications industrielles avec UML | |||||
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… | |||||
Modélisation d'applications industrielles avec UML | |||||
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élisation d'applications industrielles avec UML | |||||
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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 ». |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Approche orientée objet Modélisation naturelle |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
En savoir plus… sur UML et la conception orientée objet |
Modélisation d'applications industrielles avec UML |
Application répandue Les logiciels graphiques vectoriels |
Modélisation d'applications industrielles avec UML |
Qu’avons-nous appris ? ![]() |
Modélisation d'applications industrielles avec UML |
Vos questions |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
La complexité logicielle Exemple d’application industrielle |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
Objectif du développement logiciel
| |||||
Modélisation d'applications industrielles avec UML | |||||
Rôle de l’analyse et conception Dans le processus de développement | |||||
Modélisation d'applications industrielles avec UML |
Quelques fondateurs de la modélisation orientée objet Ivar Jacobson James Rumbaugh Grady Booch OOSE OMT Booch |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Le contenu d’UML … en UML l 13 types de diagrammes l Classés en 2 catégories – 7 diagrammes comportementaux – 6 diagrammes structurels l Un langage de spécification de contraintes – OCL : Object Constraint Language l Une spécification de format de fichier. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Cas d’utilisation Exemple Biochimiste Operateur | ||
Modélisation d'applications industrielles avec UML | ||
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. | ||
Modélisation d'applications industrielles avec UML |
Diagramme d’activités Exemple |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
Diagrammes de classes Exemple – structure du contrôle de la machine |
Modélisation d'applications industrielles avec UML |
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. • On ne documente pas tous les enchaînements d’appels ! |
Modélisation d'applications industrielles avec UML |
Diagrammes de séquences Symboles |
Modélisation d'applications industrielles avec UML |
Diagrammes de séquences Exemple |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
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 |
Modélisation d'applications industrielles avec UML |
Principes de conception orientée objet Modularité • Principe – Regrouper dans des paquetages des ensembles d’abstractions. – Le découpage doit être compréhensible. |
Modélisation d'applications industrielles avec UML |
Principes de conception orientée objet Modularité – Exemple – Diagramme de paquetages | |||||
Hardware | |||||
Modélisation d'applications industrielles avec UML | |||||
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… | |||||
Modélisation d'applications industrielles avec UML | |||||
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élisation d'applications industrielles avec UML | |||||
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML |
Modèle orienté objet Notion de classe |
Modélisation d'applications industrielles avec UML 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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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 ». |
Modélisation d'applications industrielles avec UML |
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é. • 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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
Approche orientée objet Modélisation naturelle |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
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. |
Modélisation d'applications industrielles avec UML |
En savoir plus… sur UML et la conception orientée objet |
Modélisation d'applications industrielles avec UML |
Application répandue Les logiciels graphiques vectoriels |
Modélisation d'applications industrielles avec UML |
Qu’avons-nous appris ? |
Modélisation d'applications industrielles avec UML |
Vos questions |
Modélisation d'applications industrielles avec UML |