Vous êtes sur la page 1sur 26

Software Engineering

UML
Class Diagrams
Part II

B. Wakim
Outline

 Association relationship
 Constraints on Class diagrams
 Composition relationship
 Aggregation relationship
 Dependency relationship
 Notes - Comments

14/11/2020 I3301- BWAKIM 2


Class Diagram: Association direction

If the association is oriented, means class A can access class B , but B cannot access A.

By default, an association is bi-directional (a simple line).

14/11/2020 I3301- BWAKIM 3


Class Diagram: Association
Un seul fabriquant (qui est une entreprise) crée un ensemble produits de type articles de luxe

1 Fabrique *
Entreprise ArticleDeLuxe
fabricant produit fabriqué
Nom : Chaîne Référence : Entier
AdresseSiège: Chaîne Désignation : Chaîne
AdresseUsine: Chaîne PrixHT : Réel
Quantité : Entier

Plusieurs revendeurs (boutiques de luxe) peuvent vendre des articles de luxe

* Vend *
Boutique de luxe ArticleDeLuxe
revendeur produit diffusé
{ordered}

14/11/2020 I3301- BWAKIM 4


Constraints on class diagrams
 Textual, between braces
 Age is always positive. It is a calculated field
 Administrator is a member of the group.
 We can access experiences by order.

14/11/2020 I3301- BWAKIM 5


Constraints on class diagrams

14/11/2020 I3301- BWAKIM ESE 6.6


Constraints on class diagrams

Exemple : Le détenteur d ’un compte bancaire est soit un particulier, soit une entreprise (exclusion)

1..2
Particulier

Compte bancaire {ou-exclusif} détenteur


1
Entreprise

Remarque : la contrainte ou-exclusif mentionnée ici aurait pu être donnée en utilisant le mot clé xor

Exemple : un patron est aussi un collaborateur de son entreprise (inclusion)

Collaborateur 0..*
Personne 1..*
{subset} Entreprise
1 0..*
Patron

14/11/2020 I3301- BWAKIM 7


Constraints in OCL

 Tout propriétaire d’un compte est client de la


banque hébergeant ce compte.
c : Compte
c.banque.clients -> include(c.propriétaire)

 Les virements ne sont autorisés qu'entre


des comptes partageant la même devise.
context v : Virement
inv : v.orig.devise = v.dest.devise

14/11/2020 I3301- BWAKIM 8


Association: Model to Implementation

* 4
Student Course
has enrolls
Class Student {
Course enrolls[4];
}

Class Course {
Student have[];
}

14/11/2020 I3301- BWAKIM 9


Class Diagram: Association
Association réflexive Association ternaire

Réservation
Personne Place
Vol
Nom patron vol place
Numéro Sécurité Sociale Date passager Numéro
0..1
Adresse Situation
Dirige Individu

employé * Nom

14/11/2020 I3301- BWAKIM 10


Class Diagram: Association

* EmployeChez *
Entreprise Personne
employeur employé
Nom
Nom
Numéro Sécurité
Adresse Sociale
Emploi Adresse

Salaire
Fonction Patron
0..1
Collaborateur *

Dirige

Salaire et Fonction sont des attributs de la classe caractérisant l’association entre les Personnes et
l ’Entreprise. Ce ne sont ni des attributs de la classe Entreprise, ni des attributs de la classe Personne.
Cette classe (emploi) peut avoir une relation d ’association (dirige) entre ses représentants (poste de
patron, simple collaborateur)
14/11/2020 I3301- BWAKIM 11
OO Relationships: Composition

Whole Class
Class W Association
Models the part–whole relationship
closed diamond

Class P1 Class P2 Composition


Also models the part–whole relationship but, in
addition, Every part may belong to only one
Part Classes whole, and If the whole is deleted, so are the
parts.
Example
Example:
A number of different chess boards: Each square
belongs to only one board. If a chess board is
thrown away, all 64 squares on that board go as
well.

14/11/2020 I3301- BWAKIM 12


OO Relationships: Aggregation
Container Class
Aggregation:
Class C expresses a relationship among instances of
related classes. It is a specific kind of
AGGREGATION
Container-Containee relationship.

Class E1 Class E2 express a more informal relationship than


composition expresses.

Containee Classes Aggregation is appropriate when Container


and Containees have no special access
privileges to each other.
Example
Bag
Aggregation: Open diamond
“Part-of” relationship

Apples Milk

14/11/2020 I3301- BWAKIM 13


Aggregation and Composition
Aggregation: parts may be shared.
Composition: one part belongs to one whole.

14/11/2020 I3301- BWAKIM 14


OO Relationships: Aggregation

 Une pièce est composée de murs


 Un mur peut être commun à plusieurs pièces
 Un mur est composé de briques
 Une brique n'appartient qu'à un mur

14/11/2020 I3301- BWAKIM 15


OO Relationships: Aggregation

Notation par inclusion Notation par diagramme

Dessin Dessin

Carré Triangle

Carré Triangle

Notation avec cardinalité et qualificatif

3..*
Polygone
{ordered} Point

14/11/2020 I3301- BWAKIM 16


OO Relationships: Aggregation

Une moto est composée de:


2 roues, 1 siège, 1 châssis, 1 moteur

Moto

2 1 1 1
Roue Siège Châssis Moteur

14/11/2020 I3301- BWAKIM 17


OO Relationships: Aggregation

uneMoto:Moto

leSiège:Siège avant:Roue arrière:Roue

leChâssis:Châssis leMoteur:Moteur

Moto

Siège 1 2
Roue

Châssis 1 Moteur 1

14/11/2020 I3301- BWAKIM 18


OO Relationships: Aggregation
Connecté à Vue globale
* *
* 1
Feu tricolore Coordonné par Centre de contrôle

Connecté à Vue détaillée


Feu tricolore Centre de contrôle

* *
3 1 1 1
1 Ordinateur
Lampe * Coordonné par
Contrôleur
*
1
1 1

* *
Capteur 2 Capteur
1 *
magnétique Afficheur
* optique

14/11/2020 I3301- BWAKIM 19


Aggregation vs. Composition

Composition is really a strong form of association


components have only one owner
components cannot exist independent of their owner
components live or die with their owner
e.g. Each car has an engine that can not be shared with other cars.

Aggregations
may form "part of" the association, but may not be essential to it.
They may also exist independent of the aggregate. e.g. Apples may
exist independent of the bag.

14/11/2020 I3301- BWAKIM 20


Aggregation vs. Composition

1 * 1 * Department 1 *
University College Student
1 1

Chairman-of Member-of

1 1..*

Faculty

14/11/2020 I3301- BWAKIM 21


Dependency Relation
 Dependency is a relationship between entities such
that the proper operation of one entity depends on
the presence of the other entity, and changes in one
entity would affect the other entity.

14/11/2020 I3301- BWAKIM 22


Dependency Relation
 Change in specification of one class can
change the other class. This can happen
when one class is using another class.

Circle
Point
Move(p:Point)

23
14/11/2020 I3301- BWAKIM
Dependency Relation

CourseSchedule
Registrar

void addCourse(CourseSchedule a, Course c) Course


void removeCourse(CourseSchedule Course
findCourse(String title)
void enroll(Course c, Student s) Student
void drop(Course c, Student s )

The dependency exists because Course is used in both the add and remove
operations of Registrar.

14/11/2020 I3301- BWAKIM 24


Example Dependency Relation

I3301- BWAKIM 14/11/2020 25


Notes

Annotation Things in UML: Note

- Explanatory/Comment parts of UML models - usually called


adornments
- Expressed in informal or formal text.

operation()
flexible {for all g in children
drop-out dates g.operation()}

14/11/2020 I3301- BWAKIM 26

Vous aimerez peut-être aussi