Architecture P2
Architecture P2
Architecture P2
l’Informatique
ACOO
Chapitre 3
II2-ENSI
II2-ACOO
Plan
Partie 1 :
Les diagrammes de conception architecturale
Partie 2 :
Les diagrammes de conception
détaillée
Les diagrammes statiques
Les diagrammes dynamiques
DE L’ANALYSE À LA CONCEPTION DES
CLASSES
POSITIONNEMENT
Objets du
Objets du Objets du
monde réel
logiciel langage
Vue Vue de
logique développement
Fonctionnel Vue de
Vue physique
Processus
Remarques :
Utile lors de la conception et de l'implémentation, pas avant !
N'a pas de sens dans le modèle d’analyse
La sémantique exacte dépend du langage de programmation !
9
EXEMPLE
Date
- jour : int
- mois : int
- annee : int
Attribut calculé
- / noJourDansAnnee : int
- nomDesMois[12] : String={"janvier","février"...}
String={"janvier","février ...}
10
CONCEPTION DÉTAILLÉE DES CLASSES
<<structure>> <<structure>>
Date Adresse
numRue
jour rue
mois codePostal
ville
années pays Utilisation
Société
adrss: Adresse
dateDeCreation : Date
ENUMÉRATION
<<enumeration>> <<enumeration>>
Jour Titre
Lundi Secretaire
Mardi President
Mercredi Tresorier
Jeudi VicePresident
Vendredi Membre
Samedi Utilisation
Dimanche
Association
nom : String
jourDeReunion : Jour
Responsable: Titre
CONCEPTION DÉTAILLÉE DES CLASSES :
C L A SS E S S P É C I F I QU E S 1 / 3
Classe interne
CONCEPTION DÉTAILLÉE DES CLASSES :
C L A SS E S S P É C I F I QU E S 2 / 3
Classe utilitaire
<<utilitaire>>
Les classes utilitaires: permettent Nom de la classe
de regrouper des éléments dans
un module sans pour autant
définir une classe complète.
Les classes utilitaires ne peuvent
être instanciées car elles ne sont
pas des types de données.
(Exemple: Classe Math, toutes les
méthodes sont statiques)
CONCEPTION DÉTAILLÉE DES CLASSES :
C L A SS E S S P É C I F I QU E S 3 / 3
paramètres formels
paramètres effectifs
CONCEPTION DÉTAILLÉE DES ASSOCIATIONS
Optimiser la navigation
(1) Préciser les contraintes de gestion des liens
Par exemple :
• { ordered } : les éléments de la collection représentant le tissage des liens sont
ordonnés
• { NotUnique } : Il est possible d’avoir plus qu’un lien entre deux objets avec la
même association :répétitions possibles (UML2.0)
• { frozen } : le tissage des liens est fixé lors de la création et ne peut pas changer.
• { addOnly } : Il est possible de tisser de nouveaux liens mais impossible d’en
supprimer
lignes
Ligne
RelevéDeCompte Opération
*
{ordered,addOnly}
18
(3) Préciser la portée des associations
• Un lien existe dès lors qu'un objet possède une visibilité vis-à-vis d'un autre, c'est-à-
dire lorsqu'un objet a un rapport direct avec un autre
1 0..*
Client Compte
titulaire compte
RAFFINER LES HIÉRARCHIES DE CLASSES
Figure
{abstraite}
centre : Point
translater()
surface() {abstraite}
Carre Cercle
surface() surface()
LES CLASSES ABSTRAITES: EXEMPLE2
D I VE R S IF I CAT IO N DE S I M P LÉ M E NTATI ON S
Crédit
«utilise»
Entreprise Banque La classe Banque
réalise les deux
«utilise» interfaces Crédit et
Assurance
26
EXERCICE: DIAGRAMME DE CLASSES ?
Plan
Partie 1 :
Les diagrammes de conception architecturale
Partie 2 :
Les diagrammes de conception
détaillée
Les diagrammes statiques
Les diagrammes dynamiques
Les diagrammes dynamiques
Diagrammes dynamiques de conception détaillée
Le diagramme de séquence
But : décrire les interactions entre objets (de la conception détaillée)
retraitBillets( )
afficher( )
identifier( numRes)
rechercher(numRes )
[OK] : res
payer(somme) accepter(numClient )
valider(carte)
[carte OK]
imprimerBillet(res, numClient)
Les diagrammes dynamiques
Diagrammes dynamiques de conception détaillée
Validation
requête entry : Validation
éteindre Attente
do : identifier
exit :
Interrogation
Non identifié / annuler de la base
identifié
connu inconnu
Payé / imprimer Attente Paie
OK Erreur
entry : afficher prix
Impayé / annuler
Etat composite
Les diagrammes dynamiques
Diagrammes dynamiques de conception détaillée
Le diagramme d’activités
Buts :
1. Décrire en détail le comportement d’une opération
2. Modéliser les processus métiers
Acteur 1 Acteur2
: activité
Interroger Activité
: sous base
Activité [ événement] processus
^base.identifier(numClient)
Objet : activité ValidationEtat
Objet : flux de [inconnu] [connu]
[état] contrôle Afficher
Objet retourner
: flux des faux OK
artefacts ^ecran.afficherOK( )
: mise en
parallèle
: synchronisation
Les diagrammes dynamiques
Diagrammes dynamiques de conception détaillée
Le diagramme de communication
Buts :
1. Décrire l’interaction entre les objets
2. Valider les choix d’analyse et de conception (prototypage)
Aider à élaborer des diagrammes de classes de conception
1 : retraitBillets( )
1 : message : Client
x : ClasseA
: Menu
y : ClasseB [validation]
2 : message
3 : indentifier(numClient)
2 : afficher ( )
z : ClasseB
: Loggin
[Interrogation] 4.1 : accepter(numClient)
4.2 : refuser(numClient)
Exercice
1/ Que représente ce schéma? Quels types de vue et d'architecture
d'application modélise-t-il?
2/ Donnez une autre manière de modéliser en UML la réalisation et
l'utilisation de l'interface "ImageObserver"
<<interface>>
ImageObserv
er
<<use <<realize>
>> >
Image.java Component.jav
a