Documente Academic
Documente Profesional
Documente Cultură
• Cours 1
Méthodologie objet Introduction
Présentation d’UML
Modèle fonctionnel (utilisation)
Modèle structurel (1)
• Cours 2
UML et RUP : un survol Modèle structurel (2)
Modèle dynamique (1)
• Cours 3
Modèle dynamique (2)
T. Libourel Modèle d’implémentation
Projection vers les Bases de Données
libourel@lirmm.fr
• Cours 4
M Huchard Projection vers la programmation
huchard@lirmm.fr Méthodologie (RUP)
Plan Introduction
• Cours 1 Modélisation
Introduction
Présentation d’UML
Modèle fonctionnel (utilisation) Produire une représentation simplifiée du monde
Modèle structurel (1) réel pour :
• accumuler et organiser des connaissances,
• décrire un problème,
• trouver et exprimer une solution,
• raisonner, calculer.
1
Introduction Introduction
Difficultés de la modélisation
Introduction
Introduction
Difficultés de la modélisation
Les méthodes = des guides structurants
Évolution des applications
évolution des besoins des utilisateurs • Décomposition du travail
réorientation de l'application
• Organisation des phases
évolution de l'environnement technique (matériel et
spécialisation métier
Assurent une démarche reproductible
pour obtenir des résultats fiables
2
Introduction Introduction
• Phases
• Processus de développement
analyse, conception, codage, validation, etc.
Phases séquentielles
• Niveaux d’abstraction
Itération sur les phases
conceptuel (besoins)
logique (solution informatique abstraite)
physique (solution informatique concrète)
Introduction Introduction
3
Introduction Plan
4
La portée d’UML s’explique par Genèse d’UML
l’importance de l’approche par objets
Au début des années 90, une cinquantaine de méthodes objet,
Omniprésence technique de l’Objet liées uniquement par un consensus autour d’idées communes
dans les langages de programmation, les bases de (objets, classes, sous-systèmes, ...)
données, les interfaces graphiques, ... et les méthodes
d’analyse et de conception.
Recherche d’un langage commun unique utilisable par toute
méthode objet
Universalité de l’Objet
la notion d’objet, plus proche du monde réel, dans toutes les phases du cycle de vie,
est compréhensible par tous et facilite la communication compatible avec les techniques de réalisation actuelles.
entre tous les intervenants d’un projet.
Commentaires du public
OMG UML 1.2
Standardisation à l’OMG - Novembre 97 UML 1.1
5
Concepts généraux Concepts généraux
Quatre modèles pour concrétiser ces points de vue
Points de vue sur le système Modèle structurel
Types d'objets
et leurs relations
Vue
structurelle Vue
implémentation
Modèle Implémentation
Vue Modèle d’utilisation
Composants
Cas d’utilisation Fonctionnalités Fichiers BD
Vue Vue Projection sur le
dynamique architecture matériel
(déploiement) Modèle Dynamique
Stimuli des objets
<------- Logique Physique ------> et leurs réponses
Concepts généraux
Concepts généraux
Chaque modèle est une représentation abstraite Diagrammes (représentations graphiques de modèles)
d ’une réalité, il fournit une image simplifiée du Diagrammes
Diagrammes
monde réel selon un point de vue. de collaboration
de classes de séquences
Il permet : d’instances d'états, d’activités
6
Concepts généraux Aspects du langage
Les diagrammes sont majoritairement des graphes
Démarche uniforme sur le cycle de vie
Même notation Noeuds
Arcs
noms, étiquettes,
Chaînes de caractères
Analyse Conception Implémentation mots clefs << interface >>
Notes
Plan
Modèle d’utilisation
7
Modèle d’utilisation
Modèle d’utilisation
On part de l’analyse des besoins ….
Deux concepts Acteur (rôle 2)
Modèle d’utilisation
Modèle d’utilisation
Acteur (rôle 2)
0..1 0..*
« include » Acteur (rôle 2)
« extend » Acteur (rôle 1)
association
système
Les cas d ’utilisation peuvent être liés par des relations :
0..1
- d’utilisation « include » (le cas origine contient obligatoirement l’autre)
<< actor >>
- de raffinement « extend » (le cas origine peut être ajouté optionnellement )
- de généralisation/spécialisation « generalizes » role
8
Modèle d’utilisation Modèle d’utilisation
Commander
extension Commander
« include » « include » « include » « include »
« extend »
Décrire Procéder au Décrire Procéder au
Client produits paiement Client produits paiement
Demande
catalogue « specializes »
Modèle d’utilisation
Modèle d’utilisation
Descriptions complémentaires
Délimiter le système
Textes, diagramme de séquences ou d’activités
- ce qui est extérieur et qui communique avec le
système Une proposition courante
- ce qui est interne au système 9 Sommaire d’identification
9 Titre, résumé, acteurs, dates création maj, version, auteurs
Définir les fonctionnalités du système du point de vue des 9 Description des enchaînements
utilisateurs 9 Pré-conditions, scénario nominal, alternatives, exceptions,
post-conditions
9 Besoins IHM
Donner une description cohérente de toutes les vues que
l’on peut avoir du système 9 Contraintes non fonctionnelles
9 Temps de réponse, concurrence, ressources machine, etc.
9
Plan
Modèle structurel
Modèle structurel
Modèle structurel
Objets du monde réel Objets informatiques Etat ---> évolue au cours du temps
10
Modèle structurel Modèle structurel
11
Modèle structurel Modèle structurel
12
Modèle structurel Modèle structurel
Opérations et méthodes de classe Opérations et méthodes de classe
Date Produit
jour:int Référence : String
mois:int PrixHT : float
annee:int TauxTVA : float
nomDesMois[12]:String={« janvier », « fevrier » ..}
getJour():int setPrixHT(f:float)
……… affichePrix()
getFormatEtendu():String ……..
…….. fixeTauxTVA(f:float)
getNomMois(in i:int)
13
Modèle structurel Modèle structurel
Association en général binaire (degré = 2) mais ..
Association / Lien
(analogie Classe / Instance) nom d'association
emprunte
Adhérent Exemplaire
Une association est l’abstraction d’un groupe de liens
dont les caractéristiques sont communes
lire
• même type d’origine
• même type de destination association ternaire
association
• même attributs
binaire
DispositifDeLecture
employeur employé
A assoc n Société emploie 1..* Personne
B *
rb nom nom
travaille-pour date de nais. chef
adresse
n°SS 0..1
adresse
encadre
travailleur 1..*
- n instances de B peuvent être en relation avec une instance
fixée de A
- une instance de B joue le rôle rb pour une instance de A dans le
contexte de assoc
14
Modèle structurel Modèle structurel
Multiplicité
exactement 1 Conseils pour la modélisation d'association
1
Classe
0..1 au plus 1
Classe
- verbes candidats possibles
0..* aucun, 1 ou plusieurs (défaut)
Classe
1..* - ne pas "dériver vers la conception"
au moins 1 (pointeurs ou attributs référentiels)
Classe
2..4 de 2 à 4
Classe
Classe 2,4
2 ou 4
1..*
Voiture Couleur
Possède-des-
Entreprise actions Personne
* 1..*
type : String {changeable}
marque : String nom capital actionnaire nom
adresse date de nais.
adresse
Ligne de
Un attribut à valeur multiple est souvent référentiel portefeuille
quantité
15
Modèle structurel Modèle structurel
Classe association Classe d’association
Modèle structurel
Plan
Association qualifiée
est_client
Banque 1..* 1..* Personne
• Cours 2
Modèle structurel (2)
Dossier_C Modèle dynamique (1)
num_client
est_client
Banque Personne
num_client
1..* 0..1
16
Modèle structurel
Modèle structurel
Composition
D ’autres « abstractions » Association particulière Tout /partie
Palmier
associations particulières
(composition / agrégation)
0..2
0..* 0..1
Régime
Feuille
Inflorescence
0..1
Sémantique Collection/Élément
Pays
Contraintes
1
Site
17
Modèle structurel Modèle structurel
Généralisation / Spécialisation Généralisation / Spécialisation
Personne
Mécanismes d’inférences intellectuelles de
caractéristiques nom
adresse
Soit on affine (spécialisation)
Équipement Véhicule
Type d'équipement
18
Modèle structurel
Modèle structurel
Composition/Agrégation ou généralisation ? Généralisation / Spécialisation
Une sous-classe “hérite” des descriptions de
Agrégation
sa super-classe :
lien entre instances
les déclarations d'attributs,
un arbre d'agrégation est composé
les définitions d'opérations,
d'objets qui sont parties d'un objet
les associations définies sur la super-classe,
composite
les contraintes (on en parle plus tard).
Généralisation
Une sous-classe peut redéfinir de façon plus
lien entre classes
spécialisée une partie ou la totalité de la
description « héritée ».
Les contraintes sont des prédicats, pouvant porter sur Exemples de contraintes sur associations
plusieurs éléments du modèle statique, qui doivent être
vérifiés à tout instant.
membreDe
Les contraintes permettent de rendre compte de détails à SOL
* *
un niveau de granularité très fin dans un diagramme de Personne {subset} Comité
classe. Elles peuvent exprimer des conditions ou des 1 préside *
restrictions.
En UML, les contraintes sont exprimées sous forme 1..* {ordered} contrainte entre
contrainte sur
textuelle, entre accolades et de préférence en OCL (Object Strates extrémité
2 associations
Constraint Language). d'association
Les contraintes sont héritées.
19
Modèle structurel Modèle structurel
Les contraintes Quelques compléments de notation
Exemple de contraintes à différents niveaux
contrainte stéréotype
{ actif = passif } «instance of»
sur classe
subordonné employeur
relation de dépendance
Personne Société
* 1..* 0..1
0..1
<dirige chef actif : Real {value ≥ 0}
passif : Real Un stéréotype est un label qui permet d'apporter
une précision supplémentaire à un élément de
{ Personne.employeur =
Personne.chef.employeur }
contrainte notation (classe, relation, …)
sur attribut
contrainte
sur 2
associations
Modèle structurel
Modèle structurel
Classes abstraites
Opérations abstraites
Une classe abstraite est une classe non
instanciable, c'est à dire qu'elle n'admet pas Une opération abstraite est une opération
d'instances directes. n'admettant pas d'implémentation : au niveau de la
Une classe abstraite est une description d'objets classe dans laquelle est déclarée, on ne peut pas
destinée à être « héritée » par des classes plus dire comment la réaliser.
spécialisées. Les opérations abstraites sont particulièrement
Pour être utile, une classe abstraite doit admettre utiles pour mettre en œuvre le polymorphisme.
des classes descendantes concrètes. Toute classe concrète sous-classe d'une classe
abstraite doit “concrétiser” toutes les opérations
La factorisation optimale des propriétés abstraites de cette dernière.
communes à plusieurs classes par généralisation
nécessite le plus souvent l'utilisation de classes
abstraites.
20
Modèle structurel Modèle structurel
Classes abstraites Interfaces
classe FormeGéométrique
abstraite
Une interface est une collection d'opérations
centre : Point opération utilisée pour spécifier un service offert par une
abstraite
classe dessiner() classe.
abstraite déplacer(delta : Vecteur) Une interface être vue comme une classe sans
(dessiner() est classe attributs et dont toutes les opérations sont abstraites.
héritée et non concrète
concrétisée) Une interface est destinée à être “réalisée” par une
classe (celle-ci en hérite toutes les descriptions et
Polygone Ellipse concrétise les opérations abstraites).
régulier : Boolean grandDiam : Vecteur Une interface peut en spécialiser une autre, et
petitDiam : Vecteur intervenir dans des associations avec d'autres
Polygone opération
utile que si dessiner()
concrétisée
interfaces et d'autres classes.
spécialisée
21
Modèle structurel Plan
diagrammes de séquences
- Aspects temporels, comportementaux : Contrôle
22
Modèle dynamique Modèle dynamique
La communication Les messages
Systèmes informatiques : Société d'objets travaillant en
synergie pour réaliser les fonctions de l'application Types Synchronisation
simple
constructeurs
destructeurs
Communication synchrone
sélecteurs
Client dérobant
modificateurs
itérateurs
Acteur minuté
Serveur asynchrone
message
A B C
M1
2: M2
1: M1 B M2
5: M5
A 4: M4 M3
C 6: M6 M4
message 3: M3 M5
M6
23
Modèle dynamique Modèle dynamique
La ligne de vie
« create »
:C1 :Palmier :Feuille :Inflorescence :Régime
op
Création par le message «create»
temps
Activation de l’objet qui
exécute une opération op
« destroy »
Modèle dynamique
Modèle dynamique
24
Modèle dynamique Modèle dynamique
Événement
État
• pas de durée
Modèle dynamique
Modèle dynamique
Diagrammes d'États
Transitions gardées
création
e2 demande création fermeture fermeture accomplie
Créé Avec inflorescence
Avec feuille en création Ouvert Fermé
e1
[C] retrait (s) dépôt(s)
25
Modèle dynamique
Modèle dynamique
Opération
elle peut être attachée à une transition ou à un état.
Opération elle est exécutée en réponse à l'événement ou à l'état.
Activité / Action
Action
opération instantanée, non interruptible,
souvent utilisée pour faire des mises à jour de valeurs,
Événement 1 [Cond1] / Action1 attachée à une transition.
État 1 (attrib) État 2
faire : Activité 1 ... Envoyer un événement est une action
Activité
opération qui prend du temps, interruptible par un événement,
perpétuelle ou finie,
nécessairement attachée à un état.
Généralisation Agrégation
- permet une meilleure structuration des diagrammes d'états une classe "agrégat" aura un état défini par l'agrégation des états
de ses composants.
Un objet dans un état du diagramme général doit
être dans un des états du diagramme imbriqué Agrégation concurrente (relation et)
(relation ou entre les états)
E1 Ecomp1 Ecomp2
E3 E4
E2
E5 E6
26
Modèle dynamique
Modèle d’implémentation
Les packages
Heuristiques d’élaboration du modèle dynamique
• Utiliser les scénarios pour commencer à construire Un package ou sous-système est un regroupement
les diagrammes d'état logique de classes, associations, contraintes ..
Un sous-système est généralement défini par les
• Ne construire un diagramme d'état que pour les classes services qu’il rend
au comportement temporel significatif Les liens entre sous-systèmes sont des liens de
dépendance
• Contrôler la cohérence Les « packages » servent à structurer une application
• Utiliser des diagrammes structurés Ils sont utilisés dans certains LPO (Java) ce qui assure
une bonne « traçabilité » de l ’analyse à
l ’implémentation
Les packages
n ce
nda
épe
ns de d • Cours 3
Lie
Modèle dynamique (2)
Modèle d’implémentation
Projection vers les Bases de Données
27
Du modèle objet ... aux BD Du modèle objet ... aux BD
• Classes vs Types
persistants vs éphémères • LDD, LMD, L Hôte équivalents LPO
• Points d’entrée (racine de persistance) • Langage de requête « like » SQL
• Regroupements • Transactions
28
Du modèle objet ... aux BD Du modèle objet ... aux BD
Classes PERSONNE
Associations
NSS {unique}
Schéma relationnel Nom PERSONNE ADRESSE
Prénom
Date-naissance NSS 1 a 1 N°
Rue
Attributs ....
CP
Ajout de l’identifiant Ville
Schéma Personne
Attribut Domaine Non Null Schéma Personne Attribut Domaine Non Null
Clé primaire
Clés primaires
candidates
Id_Pers Identifiant Oui NSS NSS String(13) ID Oui
Id_adresse NSS String(13) Oui Nom String(35) Oui
Clé étrangère
NSS Prénom String(30) Non Id_adresse Id_adresse Identifiant Oui
Date-nais Date Non
On préfère NSS
Schéma Compte Attribut Domaine Non Null Schéma Adhère Attribut Domaine Non Null
Clé primaire Clé primaire
Id-compte NSS NSS Id String(13) Oui
N° Id_compte Identifiant Oui Id_bibliothèque Id_bibliothèque Identifiant Oui
On choisit N° N° String(35) Id Oui
Rque : Date_adhésion Date Oui
NSS Identifiant Oui Type_adhésion String(10) Oui
Clé étrangère Date
NSS Type
29
Du modèle objet ... aux BD Plan
30
Classe Adhérent en Java (extrait) Classe Adhérent en C++ (extrait)
public class Adherent //………. Adherent.h ……………………………………………………
{ Champs class Adherent
private String adr = ``adresse inconnue``; {
private int[] numeroInsee; private:
Constructeurs string adr; Champs
public Adherent(){numeroInsee=new int[6];} int* numeroInsee;
public Adherent(String na, int[] ni){adr=na; numeroInsee=ni;} public:
Adherent(); Constructeurs
public String getAdr(){return adr;}
Accesseurs Adherent(string na, int* ni);
protected void setAdr(String nouvelleAdresse) virtual ~Adherent(); Destructeurs
{adr=nouvelleAdresse;} virtual string getAdr() const;
public int[] getNumeroInsee(){return numeroInsee;} virtual void setAdr(string nouvelleAdresse); Accesseurs
protected void setNumeroInsee(int[] ni){numeroInsee=ni;} virtual int* getNumeroInsee()const;
Méthodes virtual void setNumeroInsee(int* ni);
public boolean cotisationAjour(){…….} virtual boolean cotisationAjour()const; Méthodes
} };
31
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
Utilité de l’encapsulation Encapsulation
Consensuel
Liste GestionPersonnel
privé ... implémentation
public ... spécification
ajoute En pratique
32
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
Classes abstraites, méthodes abstraites Traduction des interfaces en Java
33
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
Associations Navigabilité dans un seul sens Associations Navigabilité dans les deux sens
Gestionnaire Java
class PERSONNE {private : string nom;....}
class BIBLIOTHEQUE {private : ....} public class Personne{}
num public class Gestionnaire
class ADHESION
{private : adresse extends Personne {}
Réification
PERSONNE adhérent;
BIBLIOTHEQUE biblio;
DATE dateadhésion;
String typeAdhesion; ....}
34
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
Héritage Héritage : adéquation des deux relations
Implémentation de la relation de spécialisation par Flot
l’héritage, quelques problèmes ....
good()
eof()
...
• adéquation des deux relations
FlotLecture FlotEcriture
• représentation et traitement des conflits lire(nbOctets) écrire(blocOctets)
... ...
• spécialisation des attributs
extends
public class Square implements Isquare classe FlotLectureEcriture
implements
{public float getCote(){….} ….}
implémentation Cas de Java : héritage simple pour l’implémentation, multiple pour les interfaces
... côté classes, ...
public class x
les méthodes de FlotLecture et FlotEcriture doivent être réécrites dans FlotLectureEcriture
{…. public void meth(Isquare i) {…} …..}
35
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
Spécialisation/Généralisation .... Spécialisation/Généralisation ....
multiples
Conflit portant sur le nom des propriétés Conflit portant sur les valeurs ou le domaine
d’une propriété
Objet
ObjetNautique
couleur (rouge, vert ...)
zoneNav
Elément de jeu
Il y a clairement deux propriétés Le pédalo n’a qu’une propriété zoneNav, mais quel sera son domaine ?
Seule issue : vérification des contraintes dans les méthodes (surtout accesseurs) ...
36
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
Héritage : redéfinition Java
redéfinition seulement si les signatures
Héritage : surcharge statique et redéfinition sont strictement identiques,
C++
Magnitude redéfinition si les types des paramètres
Surcharge statique <(Magnitude)
sont identiques, le type de retour peut
être spécialisé
coexistence de méthodes de même nom
dans des classes différentes Date Time Magnitude
appel déterminé par le type de la variable (statique) jour heure <(Magnitude)
mois minute
année secondes
Redéfinition Date Time
<(Date) <(Time)
coexistence de méthodes de même nom jour
mois
heure
minute
dans des classes comparables année secondes
appel déterminé par le type de l’objet (dynamique) Java, C++ : on ne peut pas
représenter directement une <(Magnitude) <(Magnitude)
spécialisation des paramètres
habiller(Vêtement) Liste
QuiSePorte
habiller(Vêtement, Chaussure) ajoutFin
37
Du modèle objet ... à la programmation Du modèle objet ... à la programmation
A partir du modèle dynamique - diagrammes de séquence
Généricité paramétrique jim:Etudiant
En C++ : template
afficheResultats()
template<typename T>
class Pile afficheMoyenneEtMention()
{… push(T element) …}
T
Pile [moyenne<10]
Pile<int> p; afficheModulesObtenus()
T En Java : simulé
public class Etudiant
push(t:T) class Pile {
pop():T {…. push(Object element) ….} public void afficheResultats()
top():T {
Pile p = new Pile(); afficheMoyenneEtMention();
if (getMoyenne()<10)
problèmes : afficheModulesObtenus();
- contrôle des éléments insérés }
- cast des éléments retirés
}
Plan
Du modèle objet ... à la programmation
A partir du modèle dynamique - diagrammes de collaboration
*[i:=0..nbEtudiants-1]:moyenne()
cnam03:Promotion
:Etudiant
• Cours 4
public class Promotion Projection vers la programmation
{ Méthodologie (RUP)
private Vector listeEtudiants; Patrons de conception
……….
public float moyenneGenerale()
{
double mg=0;
for (int i=0; i<listeEtudiants.size(); i++
mg+=((Etudiant)(listeEtudiants.get(i))).moyenne();
return mg/listeEtudiants.size();
}
}
38
Historique
Méthodologie
Méthode ou Processus de développement • Méthodes cartésiennes
39
Concepts généraux Modèle de cycle en cascade
Analyse
• Cycles de développement
Conception
- en cascade
Implémentation
- en V
Tests
- en spirale
- tridimensionnel Maintenance
40
Modèle de cycle en V Modèle de cycle en V
Expression Validation
des besoins des besoins
9Approche descendante dans les phases précédant
Spécification Validation l’implémentation : on décompose le système au fur
fonctionnelle fonctionnelle et à mesure qu’on le construit
Conception Tests du
du système système 9Approche ascendante dans les phases suivantes : on
recompose le système en testant les parties
Conception Tests des
des composants composants
9Hiérarchie de tests : les différents tests provoquent
Implémentation un retour d’information directement sur la phase
permettant de corriger les erreurs.
Analyse
9Pour :
Conception Spécifications
9 Décomposition du système en sous-systèmes Besoins
9 Hiérarchie de tests et retours facilités
9 Vérification ascendante
Implémentation Validation
9Contre :
9 Validation en fin de cycle (erreurs d’analyse Tests
coûteuses)
41
Modèle de cycle en spirale Modèle de cycle en spirale
9Pour :
9 Réalisation de plusieurs prototypes (versions) avant
9 Modèle itératif la réalisation du système réel (définitif)
9 On passe par toutes les phases du cycle de vie 9 Validation progressive et précoce
plusieurs fois 9 Souplesse dans le choix des prototypes
9 Modèle incrémental 9Contre :
9 On améliore à chaque passage 9 Mise en œuvre parfois coûteuse
9 Un passage peut aussi bien permettre d’évaluer un 9 Possibilité de divergence, nombre de prototypes
nombre réduit de fonctionnalités ou l’organisation difficile à déterminer
générale du système de façon non détaillée ¾Le RUP est une réponse à ces critiques
Mots-clefs :
RUP
)développement itératif
)développement incrémental
)pilotage par les cas d’utilisation
Objectory OMT BOOCH )centré sur l’architecture
)configurable
42
RUP (Rational Unified Process) RUP (Rational Unified Process)
1- Les grandes activités
1- Les grandes activités
2- La notion d’architecture logicielle
3- L’organisation itérative des activités
Plannification modélisation
Allocation des tâches et des responsabilités - de la structure
Allocation des ressources - du fonctionnement
Etude de faisabilité et des risques de l’organisation où le système sera déployé
43
RUP (Rational Unified Process) RUP (Rational Unified Process)
1- Les grandes activités 1- Les grandes activités
44
RUP (Rational Unified Process) RUP (Rational Unified Process)
1- Les grandes activités 1- Les grandes activités
• unitaires (test d’une classe, d’un module isolément) • Benchmark (sur un ensemble de données type)
• intégration (plusieurs modules ensembles) • Configuration/installation
• validation (les fonctionnalités du système sont • Charge
assurées) • Fiabilité, stress
• recette (souvent contractualisés, avec le client) • Performance
Distribuer le logiciel dans son environnement Gérer pendant l’avancement du projet l’évolution :
opérationnel des besoins des utilisateurs,
Installation, test du niveau des développeurs,
Formation des utilisateurs de la technologie, etc.
Migration des données
plan de modification
diagrammes de déploiement tous les métiers !
formateur, graphiste, rédacteur de
documentation, testeur, implémenteur
(scripts d’installation)
45
RUP (Rational Unified Process) RUP (Rational Unified Process)
1- Les grandes activités 2- L’architecture logicielle
activité 9. ENVIRONNEMENT
• Analogie avec l’architecture dans le domaine du
Activité de support du développement bâtiment
sélection des outils de travail,
administration système et réseau, • Désigne un ensemble de descriptions de haut
administration BD, niveau (les « plans de construction »)
formation de l’équipe de travail, etc.
Plans de construction
La vue de l’architecte est générale et sert à :
Logique Réalisation
classes/dynamique composants
• contrôler l’intégrité du système
Cas d’utilisation
• identifier les éléments réutilisables use case + scenarii
Processus
Déploiement
• baser le partage du travail scenarii sur composants
composants
concurrence
projetés sur le matériel
distribution
tolérance aux pannes
46
RUP (Rational Unified Process) RUP (Rational Unified Process)
2- L’architecture logicielle 3- L’organisation itérative des activités
Une définition de la notion d’architecture
47
RUP (Rational Unified Process) RUP (Rational Unified Process)
3- L’organisation itérative des activités 3- L’organisation itérative des activités
Bénéfices
Définition
• Cours 4
Projection vers la programmation Un patron de conception est une solution de conception
générique pour résoudre un problème de conception
Méthodologie (RUP)
récurrent
Patrons de conception
Micro-architecture d’une application
48
Patrons de conception Patrons de conception
Un exemple : Résumé du patron « objets composite »
Résumé du patron « objets composite » Exemple 1
Problème
Dans un éditeur de dessin, une figure géométrique est
simple ou se compose d’autres figures.
Nous désirons représenter des objets qui se décrivent par
Toutes les figures peuvent être dessinées, déplacées,
une hiérarchie d’objets, avec les deux particularités :
effacées, agrandies, etc.
• la hiérarchie est une hiérarchie d’agrégation
Exemple 2
• tous les objets jusqu’au plus haut niveau présentent un
Dans un système d’exploitation, les fichiers peuvent être
même comportement (on peut leur appliquer un même
ordinaires, ou bien des liens, ou encore des répertoires qui
ensemble de méthodes)
contiennent eux-mêmes d’autres fichiers.
Tout fichier peut être déplacé, détruit, renommé, etc.
FigureSimple FigureGroupee
Feuille Composite
+ dessine + dessine
+ operation + operation + deplace + deplace
+ ajout(c:Composant) + ajoute(f:Figure)
appliquer operation
à tous les fils Cercle Carré Trait
49