INFO-H-302 TP2 : Class Diagrams

Transcription

INFO-H-302 TP2 : Class Diagrams
INFO-H-302
TP2 : Class Diagrams
Analyse et Conception par Objets
1
Diagramme de Classe
• Représente : concepts, propriétés, relations
• Classe : prototype des objets
• Objet : instance de Classe
• Modèle statique
• Notation UML
2
Client
Name
Birthday
Street Address
1
*
Account
amount
Checking
Savings
3
Notation ≠ Modèle
• Modèle conceptuel
• Design Class Diagram
• Schéma de Bases de données
4
Client
1
*
Account
Name
Birthday
Street Address
5
public class Account {
Client client;
}
public class Client {
String name;
Date birthday;
String streetAddress;
List<Accounts> accounts;
}
Client
1
*
Account
Name
Birthday
Street Address
6
cID cName
cBirthDay
cStreetAddress
aID cID
1
2
Fred
Serge
3/4/1983
18/12/1981
23, rue de la montagne
qui monte
281, Av. de la couronne
Client
1
*
1
1
2
2
3
1
Account
Name
Birthday
Street Address
7
Classes
8
Nom
9
Nom
attribut1 : type
attribut2 : type
10
Nom
attribut1 : type
attribut2 : type
méthode1(params) : type_retour
méthode2(params) : type_retour
11
Attributs, Méthodes
• Nom
• Visibilité : +public, #protected, -private
• Pour les méthodes :
• Paramètres
• Valeur de retour
12
Visibilité
• Java :
• Python : tout public
13
Méthodes
Client
1
*
Account
-name : String
-birthday : Date
-streetAddress : Address
-accountNumber : String
-openingDate : Date
#amount : Decimal
+getAccounts() : List<Account>
+transfer(toAccount) : boolean
+deposit(amount:Decimal)
+withdrawal(amount:Decimal)
14
Relations
15
Relations Classes
• Généralisation
• Réalisation
16
Généralisation
• Relation “étend”
• Hérite :
• Attributs
• Méthodes
• Associations
Account
Checking
Savings
17
Réalisation
Collection
getElement(int i)
iterator()
List
Array
18
Relations Instances
• Association
• Multiplicités
• Direction
• Agrégation
• Composition
19
Multiplicités
Client
Étudiant
1
*
Account
1..*
*
Cours
1..*
1
Professeur
20
Direction
GameWindow
GameBoard
21
Composition,
Agrégation
• Composition :
Cours
cardinalité = 1
1
*
Étudiant
*
*
Série_TP
• Agrégation : association tout - partie
• Composition : agrégation forte, cycles de vie liés
22
Conceptuel vs Design
• Modèle conceptuel
• Modélise la réalité, pas l’application
• Optionnel : méthodes, direction, visibilité
• Modèle design
• Signature complète des méthodes
• Correspondance stricte modèle - code
23