uml et l’ingénierie des modèles

of 21/21
10/12/2008 1 1 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC UML et l’Ingénierie des Modèles 2 Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC UML les bénéfices Une notation unique et standard : Connue de tous Pour tous les domaines informatiques Exploitable pour différents niveaux de développement (Analyse préliminaire …conception) Utilisée même en dehors du domaine de l’informatique (Organisation d’entreprise, Ingénierie des systèmes, etc.) Un mécanisme d'extension pour adapter UML à tout contexte (les profils) Inclus un langage d’expression de contraintes Une sémantique définie par un méta modèle Un format d’échange entre ateliers (XMI) Des profils standard sont disponibles : cibles techniques (J2EE, CORBA, Soc); domaine & méthodologie (System engineering, QOS); SysML (System Modeling Language) Softeam Defray 2006

Post on 17-Jun-2022

1 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Microsoft PowerPoint - VersMetaUML2008.pptUML et l’Ingénierie des Modèles
2
UML les bénéfices
• Une notation unique et standard : – Connue de tous – Pour tous les domaines informatiques – Exploitable pour différents niveaux de développement (Analyse préliminaire
…conception) – Utilisée même en dehors du domaine de l’informatique (Organisation d’entreprise,
Ingénierie des systèmes, etc.) • Un mécanisme d'extension pour adapter UML à tout contexte (les profils) • Inclus un langage d’expression de contraintes • Une sémantique définie par un méta modèle • Un format d’échange entre ateliers (XMI) • Des profils standard sont disponibles :
– cibles techniques (J2EE, CORBA, Soc); – domaine & méthodologie (System engineering, QOS); – SysML (System Modeling Language)
Softeam Defray 2006
Utilisation de UML1.4 dans les entreprises
Softeam Defray 2006
Tendance: - remontée de l'utilisation de UML vers les phases amont - intensification dans l’usage d’usines logicielles
5
UML 2.0 : une cible élargie
• UML1.4 cible la modélisation du développement logiciel. • 20% des développements logiciels utilisent UML. • D'autres cibles devraient être couvertes :
– Les composants (EJB, .NET, etc.) – La modélisation des architectures, – Les domaines « externes » : XML, EJB, SOAP, .NET, etc. – Le domaine des réseaux, temps réel (Marte), – Les modèles de processus métier (activity diagrams, workflow),
connexion EAI, WEB services, etc. – UML executable – Système (SysML)
Softeam Defray 2006
UML 2.0 : Composants & ports
7
UML 2 et SOA
10/12/2008
4
8
UML2 pour le code
• Modèles de composant permettent de produire un code de composants: – Autonomes – Indépendants – Avec des interfaces requis et fournis – Intégrables par « plug & play »
• Le modèle d’assemblage permet de produire le code d’assemblage – Initialisation des composants, connexion
• Le modèle doit être défini précisément pour pouvoir être transformé en du code.
D’après Softeam Defray 2006
9
Vers Meta UML
OCL
11
Profils UML
Meta UML
Extensibility. The UML can be extended in two ways:
1) a new dialect of UML can be defined by using Profiles to customize the language for particular platforms (e.g., J2EE/EJB, .NET/COM+) and domains (e.g., finance, telecommunications, aerospace);
2) a new language related to UML can be specified by reusing part of the InfrastructureLibrary package and augmenting with appropriate metaclasses and metarelationships.
The former case defines a new dialect of UML, while the latter case defines a new member of the UML family of languages.
13
Métamodel UML : l’esprit [OMG04a]
« The UML specification is defined using a metamodeling approach (i.e., a metamodel is used to specify the model that comprises UML) that adapts formal specification techniques. While this approach lacks some of the rigor of a formal specification method, it offers the advantages of being more intuitive and pragmatic for most implementors and practitioners. »
The UML metamodel has been architected with the following design principles in mind: • Modularity. This principle of strong cohesion and loose coupling is applied to group constructs into
packages and organize features into metaclasses. • Layering. Layering is applied in two ways to the UML metamodel. First, the package structure is layered
to separate the metalanguage core constructs from the higher-level constructs that use them. Second, a layer metamodel architectural pattern is consistently applied to separate concerns (especially regarding instantiation) across layers of abstraction.
• Partitioning. Partitioning is used to organize conceptual areas within the same layer. In the case of the InfrastructureLibrary, fine-grained partitioning is used to provide the flexibility required by current and future metamodeling standards. In the case of the UML metamodel, the partitioning is coarser-grained in order to increase the cohesion within packages and loosing the coupling across packages.
• Extensibility. The UML can be extended in two ways: 1) a new dialect of UML can be defined by using Profiles to customize the language for particular platforms (e.g., J2EE/EJB, .NET/COM+) and domains (e.g., finance, telecommunications, aerospace); 2) a new language related to UML can be specified by reusing part of the InfrastructureLibrary package and augmenting with appropriate metaclasses and metarelationships. The former case defines a new dialect of UML, while the latter case defines a new member of the UML family of languages.
• Reuse. A fine-grained, flexible metamodel library is provided that is reused to define the UML metamodel, as well as other architecturally related metamodels, such as the Meta Object Facility (MOF) and the Common Warehouse Model (CWM).
10/12/2008
7
14
Le métamodèle UML
• Le standard UML définit de manière pseudo formelle la sémantique des concepts UML en fournissant le métamodèle UML
– Plus de 50 concepts (métaclasses) – Structuration en package (core, common behavior, …) – Diagrammes décrits comme des exemples.
15
Métamodèle
Bibliothèque
Exemplaire
0..1
10/12/2008
8
16
Modèle et Métamodèles
Organisation générale
Les modèles
Des mécanismes d’extensions
• Spécialisation de classes (idem héritage de classe) • Property subsets et unions :
– Spécialisation de propriétés définies dans la classe de base • Redefinitions de propriétés
– Remplacement d’une propriété par une autre • Fusion de packages
– Combinaisons de parties de métamodèles
Mais encore des problèmes de sémantique
• Utilisé en – Pour spécialiser un métamodèle – Pour définir de grands métamodèles
• UML 2.0 : un petit noyau et des extensions pour représenter différents diagrammes
21
Subsets
Subset : Renommage mais, non restriction de l’association ≠ de redefine
10/12/2008
10
22
Subsets
23
Redefines
10/12/2008
11
24
Redefines
25
Redefines
10/12/2008
12
26
Meta UML
The UML 2.0: Infrastructure defines the foundational language constructs required for UML 2.0 (226 pages).
It is complemented by UML 2.0: Superstructure, which defines the user level
constructs required for UML 2.0.(709 pages)
On one hand, most of the practitioners of UML are not even aware of the existence of the UML metamodel …. On the other hand, the UML Infrastructure and the UML metamodel play an important role in the development of model-based development environments, including model repository components, metamodel zoos, model transformation languages and related tools. (Sosym’2007 to be published)
27
Meta UML
The UML 2.0: Infrastructure defines the foundational language constructs required for UML 2.0.
It is complemented by UML 2.0: Superstructure, which defines the user level
constructs required for UML 2.0.
10/12/2008
13
28
Les paquetages de l'Infrastructure Library
« An unlabeled dependency between two packages is interpreted as a package import relationship. »
29
Classes du paquetage Profile
Métamodèle des profils
• Les stéréotypes sont les seules sortes de métaclasses qui ne peuvent pas être étendus par des stéréotypes :
« A Stereotype may only generalize or specialize another Stereotype ». generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and
generalization.specific->forAll(e | e.oclIsKindOf(Stereotype))
• Une extension est une sorte d’association. Elle lie une propriété ordinaire à un stéréotype.
• La notation d’un profil est la même que celle d’un package avec en plus le mot clef «profile» avant ou après le nom du package.
31
Les paquetages de l'Infrastructure Library
« An unlabeled dependency between two packages is interpreted as a package import relationship. »
10/12/2008
15
32
33
Décomposition de “Core” Infrastructure
Primitives Types
Décomposition de “Core” Infrastructure
Abstractions
37
Décomposition de “Core” Infrastructure
« Classes Diagram » dans « Basic Package »
39
Décomposition de “Core” Infrastructure
Construct
41
Diagramme racine de « construct »
Meta UML
It is complemented by
UML 2.0: Superstructure, which defines the user level constructs required for UML 2.0.
43
Points de variations sémantiques
The term semantic variation point is used throughout this document to denote a part of the UML specification whose purpose in the overall specification is known but whose form or semantics may be varied in some way. The objective of a semantic variation point is to enable specialization of that part of UML for a particular situation or domain. There are several forms in which semantic variation points appear in the standard:
Changeable default: in this case, a single default specification for the semantic variation point is provided in the standard but it may be replaced. For example, the standard provides a default set of rules for specializing state machines, but this default can be overridden (e.g., in a profile) by a different set of rules (the choice typically depends on which definition of behavioral compatibility is used).
Multiple choice: in this case, the standard explicitly specifies a number of possible mutually exclusive choices, one of which may be marked as the default. Language designers may either select one of those alternatives or define a new one. An example of this type of variation point can be found in the handling of unexpected events in state machines; the choices include (a) ignoring the event (the default), (b) explicitly rejecting it, or (c) deferring it.
Undefined: in this case, the standard does not provide any pre-defined specifications for the semantic variation point. For instance, the rules for selecting the method to be executed when a polymorphic operation is invoked are not defined in the standard.
10/12/2008
21
44
UML et Profils
• UML permet de modéliser les applications Orientées Objet
• Grâce aux profils, il est possible de modéliser autre chose que des applications orientées objet (Ex: SQL)
• Cependant, un modèle profilé est toujours un modèle UML!!! – Sémantique OO sous-jacente (classes, héritage, instance, …) – Manque de liberté
[email protected]
45
De UML aux DSL et IDM
• Il serait intéressant de disposer d’autres langages spécifiques à certains domaines tout en ayant la même productivité que celle des modèles UML – Langage pour modéliser les échanges entre applications – Langage pour modéliser les processus – Langage pour modéliser les exigences – Langage pour modéliser les flux bancaires – …