E N D
3. La notation UML UML 03 V1-1a
La notation UML • UML n’est pas une notation fermée: elle est générique, extensible et configurable par l’utilisateur. UML ne recherche pas la spécification à outrance: il n’y a pas une représentation graphique pour tous les concepts imaginables; en cas de besoins particuliers, des précisions peuvent être apportées au moyen de mécanismes d’extension et de commentaires textuels. UML 03 V1-1a [PAM-00 p91]
La notation et la sémantique d’UML La notation La sémantique Le but d’une classe est la déclaration d’attributs, d’opérations… UML 03 V1-1a [PAM-00 Fig 3-1]
La modélisation visuelle UML 03 V1-1a
Les diagrammes d’UML • UML définit neuf sortes de diagrammes pour représenter les différents points de vue de modélisation. • Un diagramme contient des attributs de placement et de rendu visuel qui ne dépendent que du point de vue. • Les diagrammes peuvent montrer tout ou partie des caractéristiques des éléments de modélisation, selon le niveau de détail utile dans le contexte d’un diagramme donné. UML 03 V1-1a [PAM-97 p82]
Classification des diagrammes UML 03 V1-1a [PAM-00 p93]
Les 9 diagrammes d’UML (1) • Les diagrammes d’activité qui représentent le comportement d’une opération, d’un cas d’utilisation ou un processu métier. • Les diagrammes de cas d’utilisation qui représentent les fonctions du système du point de vue de l’utilisateur. • Les diagrammes de classes qui représentent la structure statique en terme de classes et de relations. UML 03 V1-1a [PAM-00 p94]
Les 9 diagrammes d’UML (2) • Les diagrammes de collaboration qui sont une représentation spatiale des objets, des liens et des interactions. • Les diagrammes de composants qui représentent les composants physiques d’une application. • Les diagrammes de déploiement qui représentent le déloiement des composants sur les dispositifs matériels. UML 03 V1-1a [PAM-00 p94]
Les 9 diagrammes d’UML (3) • Les diagrammes d’états-transition qui représentent le comportement d’un classificateur ou d’une opération en terme d’états. • Les diagrammes d’objets qui représentent les objets et leurs relations et correspondent à des diagrammes de collaboration simplifiés, sans représentation des envois de messages. • Les diagrammes de séquence qui sont une représentation temporelle des objets et de leurs interactions. UML 03 V1-1a [PAM-00 p94]
Diagramme de cas d’utilisation UML 03 V1-1a
Diagramme d’activités UML 03 V1-1a
Diagramme de séquence UML 03 V1-1a
Diagramme de collaboration UML 03 V1-1a
Diagramme de classes UML 03 V1-1a
Diagramme d’états-transition UML 03 V1-1a
Diagramme de composants UML 03 V1-1a
Diagramme de déploiement UML 03 V1-1a
Diagramme de schéma de BD UML 03 V1-1a
Diagrammes et référentiel UML 03 V1-1a
Les éléments communs Les éléments d’UML comprennent les éléments de modélisation et les éléments de visualisation (par exemple, la notion de classe et l’icône associée). Un élément de visualisation procure une projection textuelle ou graphique d’un ensemble d’éléments de modélisation. UML 03 V1-1a [PAM-00 p97]
Les mécanismes communs Les mécanismes communs comprennent: • les commentaires • les mécanismes d’extension • stéréotypes • contraintes • valeurs marquées • la relation de dépendance • les dichotomies • type, instance • type, classe UML 03 V1-1a [PAM-00 p97]
Les stéréotypes [PAM-97 p85] • Les stéréotypes font partie des mécanismes d’extensibilités, prévus par UML. • Un stéréotype permet la métaclassification d’un élément d’UML. Il permet aux utilisateurs (méthodologistes, constructeurs d’outils, analystes et concepteurs) d’ajouter de nouvelles classes d’éléments de modélisation, en plus du noyau prédéfini par UML. UML 03 V1-1a [PAM-00 p98]
Les valeurs marquées Une valeurmarquée est une paire (nom, valeur) qui ajoute une nouvelle propriété à un élément de modélisation. UML 03 V1-1a [PAM-00 p99]
Les contraintes Une contrainte est une relation sémantique quelconque entre éléments de modélisation qui définit des propositions devant être maintenues à vraies pour garantir la validité du système modélisé. UML 03 V1-1a [PAM-00 p100]
La relation de dépendance La relation de dépendance définit une relation d’utilisation unidirectionnelle entre deux éléments de modélisation. … un changement au niveau de la cible implique un changement au niveau de la source Elément source (client) Elément cible (fournisseur) UML 03 V1-1a [PAM-00 p102]
Les paquetages(1) Les paquetages offrent un mécanisme général pour la partition des modèles et le regroupement des éléments de modélisation. [PAM-97 p88] Les paquetages divisent et organisent les modèles de la même manière que les répertoires organisent les systèmes de fichier. UML 03 V1-1a [PAM-00 p103]
Le métamodèle Un paquetage est un élément de modélisation qui possède et importe d’autres éléments de modélisation. UML 03 V1-1a [PAM-00 p104]
Les paquetages(2) [PAM-97 p90] Un paquetage est un regroupement d’éléments de modélisation, mais aussi une encapsulation de ces éléments. A l’image des classes, les paquetages possèdent une interface et une réalisation. Chaque élément contenu par un paquetage possède un paramètre qui signale si l’élément est visible ou non à l’extérieur du paquetage. Les valeurs prises par le paramètre sont : public ou implémentation (privé). UML 03 V1-1a
Espace de nommage Un paquetage définit un espace de nom, de sorte que deux éléments différents, contenus par deux paquetages différents, peuvent porter le même nom. nom_composé ::= nom_simple {‘.’ nom_simple} Exemple: Banque.Client.nom Commerce.Client.nom UML 03 V1-1a [PAM-00 p104]
Dépendances entre paquetages • Il faut éviter les dépendances circulaires entre paquetages. • Il faut éviter les dépendances circulaires transitives. UML 03 V1-1a [PAM-00 p108]
Exercice 1 - 1 UML 03 V1-1a
Exercice 1 - 2 UML 03 V1-1a
Exercice 1 - 3 Paquetage « parent » de la classe • Visibilité de la classe: • Public - externe au paquetage • Implementation – interne • au paquetage UML 03 V1-1a
Exercice 1 - 4 UML 03 V1-1a
Exercice 1 - 5 UML 03 V1-1a
Exercice 1 - 6 public class Canton { private Vector lesDistricts ; private Vector lesCommunes ; … } public class District { private Vector lesCommunes ; … } UML 03 V1-1a
Exercice 1 - 7 UML 03 V1-1a
Exercice 1 - 8 XOR UML 03 V1-1a
Figure 3-32 / Exercice 2 - 1 UML 03 V1-1a [PAM-00 p110]
Les paquetages Oracle (1) [SOU-99 p22] Premiers pas vers l’objet: les paquetages. Sous Oracle, les paquetages (packages) permettent de rassembler des structures de données et des programmes au sein d’un module unique.Un paquetage se compose de 2 parties: • la partie spécification (appelée aussi interface du paquetage) contient la déclaration des programmes (procédures et fonctions) mis à la disposition des utilisateurs du paquetage; • la partie corps (appelée aussi implémentation ou réalisation du paquetage) contient les programmes publics (accessibles à tous) et privés (uniquement accessibles par des composants du paquetage). UML 03 V1-1a
Exporté Privé Paquetage Oracle (2) – Mise à disposition PACKAGE ERREURS IS PROCEDURE ERR_ENVOIE (PE_MESSAGE IN VARCHAR2 ); PROCEDURE ERR_TRAITE (PE_PACKAGE IN VARCHAR2, PE_MODULE IN VARCHAR2 ); PACKAGE BODY ERREURS IS PROCEDURE ERR_ENREGAPPEL (PE_PACKAGE IN VARCHAR2, PE_MODULE IN VARCHAR2 ); PROCEDURE ERR_ENVOIE (PE_MESSAGE IN VARCHAR2 ) IS VL_MESSAGE VARCHAR2(256); BEGIN vl_Message := pe_Message; IF vl_message = '' THEN vl_Message := ' Erreur de l''application sans message!'; END IF; vl_Message := SUBSTR (vl_Message, 1, co_LgMess); Raise_Application_Error(co_ErrApplication, vl_Message); END; UML 03 V1-1a
Paquetage Oracle (3) – Utilisation FUNCTION PT_CTABS_VALUEABSENT ( PI_INTERV_NUMERO IN CTRLABSENCES_APPR.INTERV_NUMERO%TYPE, PI_NUMERODEP IN CTRLABSENCES_APPR.NUMERODEP%TYPE ) RETURN CHAR IS VL_ABSENTCEJOUR DUPL_CTABS_APPR.ABSENTCEJOUR%TYPE; CO_MODULE CONSTANT VARCHAR2(30) := 'PT_CtAbs_ValueAbsent'; BEGIN SELECT absentCeJour INTO vl_absentCeJour FROM dupl_ctabs_appr WHERE (ctabs_appr_interv_numero = pi_interv_numero) AND (ctabs_appr_numerodep = pi_numerodep); vl_absentCeJour := std.oui; RETURN vl_absentCeJour; EXCEPTION WHEN OTHERS THEN Erreurs.Err_traite(co_package, co_module); END PT_CTABS_VALUEABSENT; UML 03 V1-1a
Les diagrammes de classes Les diagrammes de classes expriment de manière générale la structure statique d’un système, en termes de classes et de relations entre ces classes. Outre les classes, ils présentent un ensemble d’interfaces et de paquetages, ainsi que leurs relations. De même qu’une classe décrit un ensemble d’objets, une association décrit un ensemble de liens; les objets sont instances des classes et les liens sont instances des relations. UML 03 V1-1a [PAM-00 p111]
La classification des classes (1) UML 03 V1-1a [PAM-00 p113]
La classification des classes (2) UML 03 V1-1a [JC-00 p126]
Trois catégories d’objets Système Organisation Objets d’application Objets métier Objets d’implémentation Service des vols Fenêtre Avion Avion Contrôle qualif date Pilote Avion A320 Pilote Jean Fenêtre Pilote Pilote Avion A340 UML 03 V1-1a [SOU-31 p32]
UML 02 p11 Visibilité des attributs et opérations Règles de visibilité + Attribut public # Attribut protégé - Attribut privé + Opération publique() # Opération protégée - Opération privée UML 03 V1-1a
Attributs et opérations Conception UML 03 V1-1a [PAM-00 p117]
UML 02 p71-82 Les interfaces UML 03 V1-1a
Finalité des interfaces Une interface décrit le comportement d’une classe, d’un composant, d’un sous-système, d’un paquetage ou de tout autre classificateur UML 03 V1-1a [PAM-00 p120]