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