Téléverser un nouveau fichier
This commit is contained in:
parent
11172bcd7f
commit
17c351edd2
1 changed files with 222 additions and 0 deletions
222
Cours6.md
Normal file
222
Cours6.md
Normal file
|
@ -0,0 +1,222 @@
|
||||||
|
---
|
||||||
|
title: "Génie logiciel, Séance 6, Language UML"
|
||||||
|
author: [SCHINDLER Hugo]
|
||||||
|
date: \today
|
||||||
|
titlepage: true
|
||||||
|
...
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
|
# I/Introduction
|
||||||
|
|
||||||
|
Orienté objet
|
||||||
|
|
||||||
|
Expression des besoins Puis spécification des besoins Puis conception
|
||||||
|
|
||||||
|
# II/ Diagremme de classe
|
||||||
|
|
||||||
|
## 1/ Les classes
|
||||||
|
|
||||||
|
Visibilité des éléments
|
||||||
|
|
||||||
|
- -privé
|
||||||
|
- +public
|
||||||
|
- $\#$protected
|
||||||
|
|
||||||
|
Schéma 1
|
||||||
|
|
||||||
|
## 2/ Associations entre classes
|
||||||
|
|
||||||
|
Schéma 2
|
||||||
|
|
||||||
|
Une personne travaille pour une entreprise
|
||||||
|
|
||||||
|
Une personne voit l'entreprise comme son employeur
|
||||||
|
|
||||||
|
L'entreprise voit une personne comme son employé
|
||||||
|
|
||||||
|
Une personne travaille pour une seule entreprise
|
||||||
|
|
||||||
|
Une entreprise employe une a plusieurs entreprises
|
||||||
|
|
||||||
|
- 1: exactement 1
|
||||||
|
- 1...* : un à plusieurs
|
||||||
|
- n: exactement n
|
||||||
|
- 0..1: 0 ou 1
|
||||||
|
- 0..*: 0 à plusieurs
|
||||||
|
|
||||||
|
Traduction d'une association en language JAVA
|
||||||
|
|
||||||
|
**Association 1 à 1**
|
||||||
|
|
||||||
|
Schéma 3
|
||||||
|
|
||||||
|
public class A {
|
||||||
|
private B Rb
|
||||||
|
|
||||||
|
public A() {
|
||||||
|
Rb=Numm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRb(B enRb){
|
||||||
|
Rb=enRb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class A {
|
||||||
|
private B Rb
|
||||||
|
|
||||||
|
public A() {
|
||||||
|
Rb=Numm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRb(B enRb){
|
||||||
|
Rb=enRb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
**Association 1 à plusieurs**
|
||||||
|
|
||||||
|
Schéma 4
|
||||||
|
|
||||||
|
Utilksation d'un tableau ou d'un vecteur pour association de plusieurs
|
||||||
|
|
||||||
|
**Navigabilité d'une asociation**
|
||||||
|
|
||||||
|
L'electeur sait pour qui il vote.
|
||||||
|
|
||||||
|
Le candidat ne sais pas les gens qui l'ont élu.
|
||||||
|
|
||||||
|
Schéma 5
|
||||||
|
|
||||||
|
**Agrégation**
|
||||||
|
|
||||||
|
forme particulière d'association
|
||||||
|
|
||||||
|
exprime un couplage plus fort entre classes
|
||||||
|
|
||||||
|
Schéma 6
|
||||||
|
|
||||||
|
Lorsqu'un livre possède une couverture, la couverture ne peut pas être partagée par d'autres livres.
|
||||||
|
|
||||||
|
Traduction en JAVA d'une agrégation = identique à l'association.
|
||||||
|
|
||||||
|
**Composition**
|
||||||
|
|
||||||
|
Agrégation forte
|
||||||
|
|
||||||
|
Schéma 7
|
||||||
|
|
||||||
|
Les pages sont physiquement dans le livre.
|
||||||
|
|
||||||
|
Lorsqu'on crée un objet de type Livre, on crée les objets de type Page (associé au livre)
|
||||||
|
|
||||||
|
**Traduction en language JAVA d'une relation de composition**
|
||||||
|
|
||||||
|
Schéma 8
|
||||||
|
|
||||||
|
**Exercice**
|
||||||
|
|
||||||
|
Schéma 9
|
||||||
|
|
||||||
|
**Les classes d'association**
|
||||||
|
|
||||||
|
Schéma 10
|
||||||
|
|
||||||
|
**Association d'une classe vers elle même**
|
||||||
|
|
||||||
|
Schéma 11
|
||||||
|
|
||||||
|
## 3/ La généralisation
|
||||||
|
|
||||||
|
**Relation d'héritage**
|
||||||
|
|
||||||
|
Schéma 12
|
||||||
|
|
||||||
|
Une relation de généralisation traduit une relation "est-un" ou "est une sorte de"
|
||||||
|
|
||||||
|
**Classe abstraite**
|
||||||
|
|
||||||
|
Forme {abstract}
|
||||||
|
Ecrire Forme en italique
|
||||||
|
|
||||||
|
association reflexive
|
||||||
|
|
||||||
|
**Interface**
|
||||||
|
|
||||||
|
Element de modélisation classe
|
||||||
|
|
||||||
|
Schéma 13
|
||||||
|
|
||||||
|
Stéréotype : notation du language UML qui permet de définir de nouveaux éléments de modélisation (à partir d'éléments existants)
|
||||||
|
|
||||||
|
## 4/ L'agrégation récursive
|
||||||
|
|
||||||
|
Schéma 14
|
||||||
|
|
||||||
|
**Conseils pratiques**
|
||||||
|
|
||||||
|
Génération du code JAVA automatiquement à partir du diagramme de classe.
|
||||||
|
|
||||||
|
**Pas besoin de définir l'attribut employe.entreprise**
|
||||||
|
|
||||||
|
Schéma 15
|
||||||
|
|
||||||
|
Code Java:
|
||||||
|
|
||||||
|
public class Person{
|
||||||
|
Entreprise employeur;
|
||||||
|
}
|
||||||
|
public class Entreprise{
|
||||||
|
Vector <Personne> employe;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# III/ Les diagrammes d'objets et de séquence
|
||||||
|
|
||||||
|
## 1/ Le diagramme d'objet
|
||||||
|
|
||||||
|
Cf diapo 29
|
||||||
|
|
||||||
|
## 2/ Le diagramme de séquence
|
||||||
|
|
||||||
|
Diagramme d'objet + message échangés entre les objets.
|
||||||
|
|
||||||
|
Cf diapo 31
|
||||||
|
|
||||||
|
Rappel : l'envoie d'un message d'un objet A vers un objet B se traduit lors de l'execution d'une méthode dans l'objet qui reçoit le message.
|
||||||
|
|
||||||
|
Exemple 2 : Montre le fonctionnement d'une calculatrice pour une opération 12+3=
|
||||||
|
|
||||||
|
Période d'activité des objets
|
||||||
|
|
||||||
|
**Structures de contrôles**
|
||||||
|
|
||||||
|
**Opérateur condtionnel:**
|
||||||
|
|
||||||
|
Schéma 16
|
||||||
|
|
||||||
|
alt : alternative
|
||||||
|
|
||||||
|
**Opérateur de boucle**
|
||||||
|
|
||||||
|
Schéma 17
|
||||||
|
|
||||||
|
loop : boucle
|
||||||
|
|
||||||
|
tant que la condition v==true est vérifié l'objet unA envoie le message "messageB" à l'objet unB.
|
||||||
|
|
||||||
|
**Constructeur/Destructeur**
|
||||||
|
|
||||||
|
Schéma 18
|
||||||
|
|
||||||
|
# IV/ Le diagramme d'états-transitions
|
||||||
|
|
||||||
|
Schéma 19
|
||||||
|
|
||||||
|
# V/ Le diagramme des cas d'utilisation
|
||||||
|
|
||||||
|
Schéma 20
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue