1. Analyse et Conception avec UML
De l’analyse à la
conception détaillée :
esquisses
blay@unice.fr
www.polytech.unice.fr/~blay
IUT Nice-Sophia Antipolis
mars 2011
Site web du module : http://anubis.polytech.unice.fr/iut/
1
3. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Exemple de problème
- Existe-t-il des vols Nice-Paris le lundi matin?
- Réserver le vol Nice-Paris du lundi 28/2/11 à 8h
- Les vols Nice-Tunisie sont annulés pour les 15 prochains
jours... Comment les recréer ?
03/11 3 /88
5. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Des rôles mieux définis
ea
qu e
ri d
né e
gé iod
ol ér ....
v p
n e
U un lid ité
va
03/11 5 /88
6. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Des rôles mieux définis
Métaclasse ou Type
Classe ou Exemplaire
03/11 6 /88
7. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Autre exemple
Un livre et des exemplaires :
La bibliothèque nous a donné la définition suivante.
Nous gérons des livres. Un livre est caractérisé par une
date de parution, un numéro ISBN, un titre. Certains livres
sont en mauvais état. Un adhérent peut emprunter un
livre. Pour certains livres nous en avons plusieurs
exemplaires.
03/11 7 /88
9. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Structuration en packages
Cohérence et Indépendance
- Finalité : des services de - Minimiser les dépendances
même nature - Eviter absolument les
- Evolution : Stabilité (le dépendances mutuelles
métier)/Evolutive
(Applicative)
- Cycle de vie des objets
03/11 9 /88
16. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Structuration en packages
Un vol est ouvert ou fermé à la
réservation par la compagnie aérienne
03/11 16 /88
17. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Structuration en packages
Un vol est ouvert ou fermé à la
réservation par la compagnie aérienne
03/11 16 /88
18. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Structuration en packages
Un vol est ouvert ou fermé à la
réservation par la compagnie aérienne
03/11 16 /88
33. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Scénario : précisions
Les interfaces des “classes” se précisent.
03/11 31 /88
34. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Scénario : précisions
rechercher(Information)
Les interfaces des “classes” se précisent.
03/11 32 /88
35. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Scenario et réification
Des “classes” d’implémentation sont identifiées.
03/11 33 /88
36. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Scénario : identification des bases de
données et des tables
03/11 34 /88
37. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Scenario : Identification des interfaces
utilisateur
Vue IHM Description
Sélection Sélection d’une équipe dans une liste triée des équipes du
Equipe laboratoire ou par des critères de recherche.....
Visualisation
Visualisation d’une équipe par ses membres, ...
d’une équipe
03/11 35 /88
51. Afficher Informations : niveau Conception
index_SI_View.php
var data_url = "./index.php?controller=SI&action=display";";
business.js
var bindings = new Array();
bindings["info"] = function(data) {
var result="<div id="info">";
result += data.getElementsByTagName("titre")[0].textContent;
result += "</div>"
return result; }
52. Afficher Informations : niveau Conception
index_SI_View.php
var data_url = "./index.php?controller=SI&action=display";";
business.js
var bindings = new Array();
bindings["info"] = function(data) {
var result="<div id="info">";
result += data.getElementsByTagName("titre")[0].textContent;
result += "</div>"
return result; }
class SI_Controller {
public function index($args) {
$view = new Index_SI_View();
$view->display();
}
SI_Controller.php
public function display($args) {
header('Content-type: text/xml');
$res='<?xml version="1.0"?><data>';
$infos = Information::findAll();
foreach($infos as $tmpInformation) {
$res = $res.$tmpInformation->toXML() ;
}
$res=$res.'</data>';
53. Afficher Informations : niveau Conception
index_SI_View.php
class SI_Controller {
public function index($args) {
$view = new Index_SI_View();
$view->display();
}
SI_Controller.php
public function display($args) {
header('Content-type: text/xml');
$res='<?xml version="1.0"?><data>';
$infos = Information::findAll();
foreach($infos as $tmpInformation) {
$res = $res.$tmpInformation->toXML() ;
}
$res=$res.'</data>';
54. Afficher Informations : niveau Conception
class Information implements iCRUD
{
private $_id;
private $_titre;
index_SI_View.php private $_date;
Information.php
public static function findAll() {
$informations = array();
Database::connect();
$query = "SELECT * FROM information";
$res = mysql_query($query);
while($line = mysql_fetch_assoc($res)){
$titre = $line["titre"];
$date = $line["date"];
$key = $line["identifiant"];
$info = new Information($titre,$date,$key);
array_push($informations, $info);
}
Database::disconnect();
return $informations;
class SI_Controller {
public function index($args) {
$view = new Index_SI_View();
$view->display();
}
SI_Controller.php
public function display($args) {
header('Content-type: text/xml');
$res='<?xml version="1.0"?><data>';
$infos = Information::findAll();
foreach($infos as $tmpInformation) {
$res = $res.$tmpInformation->toXML() ;
}
$res=$res.'</data>';
56. Créer Information : niveau Conception
class Index_Admin_View extends Main_Global_View {
admin_View
private $infosListe;
public function Index_Admin_View($args) {
$this->infosListe = $args['infosListe'];
}...
<h1>Gestion des Informations</h1>
<h2> Liste des informations </h2>
<form id="infoModifForm" name="infoModifForm" method="post" action="./">
<p>
57. Créer Information : niveau Conception
class Admin_Controller {
public function index($args) {
$args['infosListe'] = Information::findAll();
$view = new Index_Admin_View($args);
$view->display();
} Admin_Controller.php
public function confirmer_modifier($args) {
$key = $_POST["key"];
$newTitre = $_POST["NouveauTitre"];
$info = Information::read($key);
$info->setTitre($newTitre);
$info->update();
$args['infosListe'] = Information::findAll();
$view = new Index_Admin_View($args);
$view->display();
}
public function create($args) {
$titre = $_POST["Titre"];
$info = new Information($titre, $this->today());
$info->create();
$args['infosListe'] = Information::findAll();
$view = new Index_Admin_View($args);
$view->display();
}
59. Des diagrammes
de séquence et
d’activités
aux diagrammes
de classes
49
60. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Des diagrammes de séquence aux
classes
Classe Relations?
Classe
Classe
03/11 50 /88
61. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Opération
Le comportement d’une
classe est constitué de
ses opérations
On identifie les
opérations en examinant
les diagrammes
d’interactions
03/11 51 /88
62. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classes : corps de méthode
03/11 52 /88
63. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Attributs
La structure d’une classe est donnée par ses attributs
Les attributs sont identifiés en examinant les définitions des
classes, les besoins du problème et en faisant intervenir la
connaissance du domaine
Cours
numéro
Chaque offre de cours lieu
Possède un numéro, date
un lieu et une date
03/11 53 /88
64. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Attributs
Comment trouver les attributs ?
Informations pertinentes du domaine d’application
Comment placer les attributs ?
Dans la classe qui modélise l’objet du monde réel que
décrit l’attribut
Une seule valeur par instance de la classe
Un seul endroit pour chaque attribut dans le diagramme
de classe
Eviter les types non primitifs
03/11 54 /88
65. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Relations
On identifie les relations en examinant les diagrammes
d’interaction
Si deux objets doivent communiquer, il doit exister un
chemin entre eux
03/11 55 /88
70. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
03/11 59 /88
71. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
03/11 59 /88
72. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
Visibilité : +, -, #
+ : public - visible et modifiable par tout objet du même paquetage
- : private - seulement visible et modifiable par les opérations de l'objet
auquel i appartient. Le principe de masquage impose de rendre chaque
attribut private
# : protected - seulement accessible et modifiable par les opérations des
classes descendantes
03/11 59 /88
73. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
Visibilité : +, -, #
+ : public - visible et modifiable par tout objet du même paquetage
- : private - seulement visible et modifiable par les opérations de l'objet
auquel i appartient. Le principe de masquage impose de rendre chaque
attribut private
# : protected - seulement accessible et modifiable par les opérations des
classes descendantes
03/11 59 /88
74. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
Visibilité : +, -, #
+ : public - visible et modifiable par tout objet du même paquetage
- : private - seulement visible et modifiable par les opérations de l'objet
auquel i appartient. Le principe de masquage impose de rendre chaque
attribut private
# : protected - seulement accessible et modifiable par les opérations des
classes descendantes
Args : Direction Id : Type [= DefaultVal]
03/11 59 /88
75. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
Visibilité : +, -, #
+ : public - visible et modifiable par tout objet du même paquetage
- : private - seulement visible et modifiable par les opérations de l'objet
auquel i appartient. Le principe de masquage impose de rendre chaque
attribut private
# : protected - seulement accessible et modifiable par les opérations des
classes descendantes
Args : Direction Id : Type [= DefaultVal]
Direction : in, out, inout (in est la valeur par défaut)
03/11 59 /88
76. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
Visibilité : +, -, #
+ : public - visible et modifiable par tout objet du même paquetage
- : private - seulement visible et modifiable par les opérations de l'objet
auquel i appartient. Le principe de masquage impose de rendre chaque
attribut private
# : protected - seulement accessible et modifiable par les opérations des
classes descendantes
Args : Direction Id : Type [= DefaultVal]
Direction : in, out, inout (in est la valeur par défaut)
Remarque : contradiction apparente entre in et type retourné par
une opération
03/11 59 /88
77. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les opérations
Représente un service spécifique offert par un objet
Syntaxe : Visibilité Id ( [Args] ) : Type [{Propriété}]
Visibilité : +, -, #
+ : public - visible et modifiable par tout objet du même paquetage
- : private - seulement visible et modifiable par les opérations de l'objet
auquel i appartient. Le principe de masquage impose de rendre chaque
attribut private
# : protected - seulement accessible et modifiable par les opérations des
classes descendantes
Args : Direction Id : Type [= DefaultVal]
Direction : in, out, inout (in est la valeur par défaut)
Remarque : contradiction apparente entre in et type retourné par
une opération
Une opération peut être précédée d'un stéréotype tel <<crée>>, ...
03/11 59 /88
79. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
03/11 60 /88
80. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
03/11 60 /88
81. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
… : liste d'attributs incomplète
03/11 60 /88
82. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
… : liste d'attributs incomplète
Syntaxe : Visibilité Id [Multiplicité] : Type [InitVal]
[{Propriété}]
03/11 60 /88
83. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
… : liste d'attributs incomplète
Syntaxe : Visibilité Id [Multiplicité] : Type [InitVal]
[{Propriété}]
Visibilité = +, -, #
03/11 60 /88
84. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
… : liste d'attributs incomplète
Syntaxe : Visibilité Id [Multiplicité] : Type [InitVal]
[{Propriété}]
Visibilité = +, -, #
Multiplicité : intervalle ou nombre
03/11 60 /88
85. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
… : liste d'attributs incomplète
Syntaxe : Visibilité Id [Multiplicité] : Type [InitVal]
[{Propriété}]
Visibilité = +, -, #
Multiplicité : intervalle ou nombre
Propriété : par ex. mutabilité i.e. gelé, variable,
ajoutUniquement
03/11 60 /88
86. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Les attributs
Sémantique : constitue un élément de l'état de l'objet
Visualisé ou pas, selon le niveau de détail souhaité
… : liste d'attributs incomplète
Syntaxe : Visibilité Id [Multiplicité] : Type [InitVal]
[{Propriété}]
Visibilité = +, -, #
Multiplicité : intervalle ou nombre
Propriété : par ex. mutabilité i.e. gelé, variable,
ajoutUniquement
Attribut dérivé : attribut qui peut être déduit par le calcul (/
Attribut) et qui conduit en implémentation à une opération
03/11 60 /88
87. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classes et Opérations abstraites
Une opération/Classe abstraite apparaît en
italique.
03/11 61 /88
88. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classes et Opérations abstraites
Une classe abstraite est une classe non instanciable,
c'est à dire qu'elle n'admet pas d'instances directes.
Une classe abstraite est une description d'objets
destinée à être « héritée » par des classes plus
spécialisées.
Pour être utile, une classe abstraite doit admettre des
classes descendantes concrètes.
La factorisation optimale des propriétés communes à
plusieurs classes par généralisation nécessite le plus
souvent l'utilisation de classes abstraites.
03/11 /88
89. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Représentation de classes
abstraites
Classes sans instances immédiates
Forme
Carre Cercle
Une instance de «Forme» est
obligatoirement une instance de la
classe Carre ou de la classe Cercle
03/11 63 /88
91. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Opérations abstraites
Une opération abstraite est une opération
n'admettant pas d'implémentation : au niveau de la
classe dans laquelle est déclarée, on ne peut pas dire
comment la réaliser.
Les opérations abstraites sont particulièrement utiles
pour mettre en œuvre le polymorphisme.
Toute classe concrète sous-classe d'une classe
abstraite doit “concrétiser” toutes les opérations
abstraites de cette dernière.
03/11 /88
92. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classes abstraites
classe FormeGéométrique
abstraite
centre : Point opération abstraite
classe abstraite dessiner()
(dessiner() est déplacer(delta : Vecteur)
héritée et non
classe concrète
concrétisée)
Polygone Ellipse
régulier : Boolean grandDiam : Vecteur
petitDiam : Vecteur
Polygone opération
utile que si dessiner() concrétisée
spécialisée
03/11 /88
93. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Etre abstrait et précis avec UML
Compte
{solde>=plancher}
solde: Somme
plancher: Somme
créditer (montant : Somme)
{pre: montant > 0}
{post: solde = solde @pre + montant}
débiter (s: Somme)
{pre: montant > 0 and montant<=solde-plancher}
{post: solde = solde @pre - montant}
Analyse précise ou “analyse par contrat”
03/11 67 /88
94. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Opérations du niveau de la
classe : Static
Une opération «statique» est soulignée.
03/11 68 /88
95. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Mauvaise généralisation
Attention à la généralisation multiple:
Quel execute 2 copies de
est exécuté ? l’Attribut id.
This is also known as the Diamond of Death. (IBM)
03/11 69 /88
107. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Conversion d’un modèle de classes
en schéma relationnel
À partir d’un diagramme de classes décrit en UML,
On sélectionne les classes qui correspondent à des données
persistantes
Puis on passe au schéma relationnel correspondant.
L’objectif est donc de :
représenter toutes les informations présentes dans le
diagramme des classes sélectionné (classes et associations) ;
éviter les redondances (répétition des mêmes associations) ;
limiter le nombre de relations (schéma complexe) ;
limiter les valeurs absentes (e.g., les valeurs NULL).
http://www.math-info.univ-paris5.fr/~pellier/teaching/others/bd/cours/Modelisation.pdf
03/11 77 /88
108. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Affecter les clefs
Clef naturelle – un attribut qui fait du sens dans l'environnement
métier
(e.g. Numéro de sécurité sociale pour une personne... Mais Danger !!)
Clef de substitution – une clé qui n'a aucune signification sens (e.g. a
attribut «compteur»)
Utilisez pour la performance
Utiliser quand il n'est pas facile à identifier de manière unique une
entité
Clé composite – une clef de plus d'un champ
Peut être utilisé pour identifier l'entité de manière unique
Clé étrangère - représente un ou plusieurs champs d'une autre entité
utilisée pour maintenir les relations entre les «rangées»
03/11 78 /88
109. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classe identifiée comme «entité»…
Implémentations des attributs, généralisations,
et associations sous forme de tables
03/11 79 /88
110. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classe identifiée comme «entité»…
Implémentations des attributs, généralisations,
et associations sous forme de tables
Identification des clefs primaires (ici utilisation de stéréotype)
03/11 79 /88
111. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classe identifiée comme «entité»…
Implémentations des attributs, généralisations,
et associations sous forme de tables
--
-- Structure de la table `personnel`
--
CREATE TABLE `personnel` (
`nom` varchar(15) NOT NULL default '',
`prenom` varchar(15) default NULL,
`adresse` longtext,
`telephone` varchar(12) default NULL,
PRIMARY KEY (`nom`)
);
Identification des clefs primaires (ici utilisation de stéréotype)
03/11 79 /88
112. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Classe identifiée comme «entité»…
Implémentations des attributs, généralisations,
et associations sous forme de tables
--
-- Structure de la table `personnel`
--
CREATE TABLE `personnel` (
`nom` varchar(15) NOT NULL default '',
`prenom` varchar(15) default NULL,
`adresse` longtext,
`telephone` varchar(12) default NULL,
PRIMARY KEY (`nom`)
);
Identification des clefs primaires (ici utilisation de stéréotype)
03/11 79 /88
114. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Héritage
UML 2 pour
les bases de données,
Christian Soutou
Trois décompositions sont possibles
- décomposition par distinction
- décomposition descendante
- décomposition ascendante
03/11 81 /88
115. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Décomposition par distinction
Chaque sous-classe est transformée en une relation.
La clé primaire de la sur-classe migre
dans la (les) relation(s) issue(s) de la (des) sous-classe(s) et
devient à la fois clé primaire et clé étrangère.
Personne[NSS, nom]
Etudiant[NSS#, num]
Enseignant[NSS#, numeroPoste, grade]
03/11 82 /88
116. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Décomposition descendante de
S’il existe une contrainte
totalité ou de partition sur
l’association, il est possible
de ne pas traduire la relation
issue de la sur-classe. Il faut
alors faire migrer tous ses
attributs dans la (les)
relation(s) issue(s) de la
(des) sous-classe(s).
Qui a été oublié ?
Etudiant[NSS, nom, num]
Enseignant[NSS, nom, numeroPoste, grade]
03/11 83 /88
117. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Décomposition ascendante
Il faut supprimer la (les) relation(s) issue(s) de la (des) sous-
classe(s) et faire migrer les attributs dans la relation issue de la
sur-classe.
Personne[NSS, nom, grade, numeroPoste, num]
03/11 84 /88
118. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Transformation des associations
Les règles de transformation que nous allons voir
dépendent des cardinalités/multiplicités maximales
des associations. Nous distinguons trois familles
d’associations :
un-à-plusieurs ;
plusieurs-à-plusieurs ou classes-associations, et n-
aires ;
un-à-un.
03/11 85 /88
119. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Association mono-multi
Ajouter un attribut de type clé étrangère dans la relation fils de
l’association. L’attribut porte le nom de la clé primaire de la
relation père de l’association.
03/11 86 /88
120. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Association multi-multi
L’association devient une relation dont la clé primaire est
composée par la concaténation des identifiants des
entités (classes) connectés à l’association.
03/11 87 /88
121. Pattern méta. Packages Itérations Séquences Archi. Classes. BD.
Association mono-mono
Il faut ajouter un attribut
clé étrangère dans la
relation dérivée de
l’entité ayant la
cardinalité minimale
égale à un.
03/11 88 /88
Notes de l'éditeur
\n
\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nPenser &#xE0; ajouter un numero au livre physique pour le g&#xE9;rer dans la biblioth&#xE8;que alors qu&#x2019;il est omis dans l&#x2019;&#xE9;nonc&#xE9;.\n\n\n\n
\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
Un vol g&#xE9;n&#xE9;rique peut exister par lui meme pas le vol.\n
Un vol g&#xE9;n&#xE9;rique peut exister par lui meme pas le vol.\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
p90 de UML 2 par la pratique \nEs-ce le coup de l&#x2019;anti pattern?\n\nOn ne parle pas des m&#xEA;mes vols dans les deux questions\n\n
\n
\n
je stoppe car j&#x2019;en ai marre mais cela pourrait etre r&#xE9;utilis&#xE9; p 121 de l&#x2019;edition 7\n\n\n
\n
\n
je stoppe car j&#x2019;en ai marre mais cela pourrait etre r&#xE9;utilis&#xE9; p 121 de l&#x2019;edition 7\n\n\n
\n
\n
\n
\n
Les messages sont num&#xE9;rot&#xE9;s s&#xE9;quentiellement, &#xE0; partir de un. Si un mes- \nsage est envoy&#xE9; alors que le traitement du pr&#xE9;c&#xE9;dent n&#x2019;est pas termin&#xE9;, il \nest possible d&#x2019;utiliser une num&#xE9;ration compos&#xE9;e (voir figure 5.3) o&#xF9; l&#x2019;envoi \ndu message 2 intervient pendant l&#x2019;ex&#xE9;cution du message 1. \n\n
Les messages sont num&#xE9;rot&#xE9;s s&#xE9;quentiellement, &#xE0; partir de un. Si un mes- \nsage est envoy&#xE9; alors que le traitement du pr&#xE9;c&#xE9;dent n&#x2019;est pas termin&#xE9;, il \nest possible d&#x2019;utiliser une num&#xE9;ration compos&#xE9;e (voir figure 5.3) o&#xF9; l&#x2019;envoi \ndu message 2 intervient pendant l&#x2019;ex&#xE9;cution du message 1. \n\n
Les messages sont num&#xE9;rot&#xE9;s s&#xE9;quentiellement, &#xE0; partir de un. Si un mes- \nsage est envoy&#xE9; alors que le traitement du pr&#xE9;c&#xE9;dent n&#x2019;est pas termin&#xE9;, il \nest possible d&#x2019;utiliser une num&#xE9;ration compos&#xE9;e (voir figure 5.3) o&#xF9; l&#x2019;envoi \ndu message 2 intervient pendant l&#x2019;ex&#xE9;cution du message 1. \n\n
Les messages sont num&#xE9;rot&#xE9;s s&#xE9;quentiellement, &#xE0; partir de un. Si un mes- \nsage est envoy&#xE9; alors que le traitement du pr&#xE9;c&#xE9;dent n&#x2019;est pas termin&#xE9;, il \nest possible d&#x2019;utiliser une num&#xE9;ration compos&#xE9;e (voir figure 5.3) o&#xF9; l&#x2019;envoi \ndu message 2 intervient pendant l&#x2019;ex&#xE9;cution du message 1. \n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
je stoppe car j&#x2019;en ai marre mais cela pourrait etre r&#xE9;utilis&#xE9; p 121 de l&#x2019;edition 7\n\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Les objets sont repr&#xE9;sent&#xE9;s par des barres verticales au dessus desquelles figure l&#x2019;objet et sa classe d&#x2019;appartenance (m&#xEA;me formalisme que dans les diagrammes d&#x2019;objets). Le nom de la classe ou de l&#x2019;objet peut &#xEA;tre omis.\nLes messages entre objets sont repr&#xE9;sent&#xE9;s par des fl&#xEA;ches partant d&#x2019;un objet et arrivant &#xE0; un autre objet.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Classe et associations : mieux que les types non primitifs\n\n
En termes d&#x2019;analyse, indique seulement une contrainte entre valeurs et non une indication de ce qui doit &#xEA;tre calcul&#xE9; et ce qui doit &#xEA;tre m&#xE9;moris&#xE9; \n
Les objets sont repr&#xE9;sent&#xE9;s par un rectangle, avec leur nom suivi de : puis le nom de leur classe, le tout soulign&#xE9;. Les objets, instances des classes, sont manipul&#xE9;s dans les &#xAB;collaboration diagramm&#xBB;\nLes classes d'objets, ou plus simplement classes, poss&#xE8;dent des attributs et des op&#xE9;rations. Les attributs peuvent avoir un type et une valeur par d&#xE9;faut. Les op&#xE9;rations peuvent avoir des param&#xE8;tres, typ&#xE9;s ou non, et une valeur de retour.\n\nDans un souci de clart&#xE9; des diagrammes, on peut consid&#xE9;rer que telle ou telle information n'est pas importante &#xE0; ce niveau de l'analyse et donc d&#xE9;cider de ne pas la faire appara&#xEE;tre.\nPour la m&#xEA;me raison, les zones des attributs et des op&#xE9;rations sont optionnelles.\nUne ellipse &#xE0; la fin d&#x2019;une liste d&#x2019;attributs ou d&#x2019;op&#xE9;rations signifie qu&#x2019;il existe d&#x2019;autres &#xE9;l&#xE9;ments dans le mod&#xE8;le, mais qu&#x2019;ils d&#xE9;pendent de crit&#xE8;res de s&#xE9;lection qui ne les font pas appara&#xEE;tre.\n
\n
\n
\n
\n
\n
\n
\n
\n
revoir dans le livre UML2 par la pratique : p95 le d&#xE9;coupage en package; r&#xE9;duction du couplage, y compris p101, r&#xE9;duction et couplage\n
Trois visibilit&#xE9;s sont disponibles pour les attributs et op&#xE9;rations d'une classe (pas sur les relations) :\nPublic : accessible pour tout utilisateur d&#x2019;une classe, y compris la classe elle-m&#xEA;me.\nProt&#xE9;g&#xE9; : accessible seulement par la classe elle-m&#xEA;me, et par ses h&#xE9;ritiers.\nPriv&#xE9; : accessible seulement par la classe elle-m&#xEA;me.\nLes visibilit&#xE9;s sont fondamentales en phase de conception technique.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
MERISE ET UML: APPROCHE SYSTEMIQUE \n MERISE UML \nLa m&#xE9;thode MERISE s'int&#xE9;resse aux syst&#xE8;mes ouverts en \nrelation permanente avec leur environnement ( &#xE0; partir du \nniveau 3. Cf. Cours de syst&#xE9;mique ). Trois propri&#xE9;t&#xE9;s \nmajeures sont alors consid&#xE9;r&#xE9;es. \n\nGLOBALITE \nContrairement au mod&#xE8;le Cart&#xE9;sien, le comportement d'un \nsyst&#xE8;me n'est pas la somme des comportements de ses \nparties \n\nRETROACTION \nLe syst&#xE8;me r&#xE9;agit &#xE0; toute stimulation en g&#xE9;n&#xE9;rant des \nr&#xE9;sultats selon des boucles d'actions-r&#xE9;actions mises en \noeuvre au sein de ses composants. ( feed-back d'ordre 3 ) \n\nFINALITE \nLe syst&#xE8;me ne peut &#xEA;tre stabilis&#xE9; que si on lui fournit des \nvaleurs acceptables pr&#xE9;alablement d&#xE9;finies. \n\nL'APPROCHE UML \nL'approche par les CAS D'UTILISATION constitue de fait une \napproche SYSTEMIQUE. Les ACTEURS et les MESSAGES \n&#xE9;chang&#xE9;s sont pris en compte. \n\nCOMMENTAIRES \nLa Ma&#xEE;trise des concepts de la syst&#xE9;mique \n ( ENVIRONNEMENT, ENTREES, SORTIES, OBJECTIFS, \nSTRUCTURE et PROCESSUS ) permet de r&#xE9;aliser une \napproche constructive et consciente des cas d'utilisation. Elle \nfacilite la d&#xE9;termination des CAS D'UTILISATION selon un \ndouble process TOP-DOWN et BOTTOM-UP. L'avantage est \nque le PROCESSUS m&#xE9;tier du syst&#xE8;me est mieux d&#xE9;crit et \nplus compr&#xE9;hensible par les utilisateurs. \n\nFINALITES:Raisons d'&#xEA;tre, vocation d'un syst&#xE8;me. Se d&#xE9;clinent et se formalisent en BUTS. Elles ne sont pas op&#xE9;ratoires. ( Cf. FACTEURS ). Par \nexemple: "Recentrer l'activit&#xE9; de l'entreprise sur son m&#xE9;tier de base qui est la vente de contrats d'assurances". \n\nBUT:Formalisation des FINALITES. Elles se d&#xE9;clinent en OBJECTIFS qui eux, doivent &#xEA;tre op&#xE9;ratoires. ( Cf. CRITERES ). Par exemple: "Recentrer \nles r&#xE9;sultats de la compagnie sur les primes d'assurances plut&#xF4;t que sur les march&#xE9;s financiers" \n\nOBJECTIFS:Concr&#xE9;tisation des BUTS sur la base de crit&#xE8;res d'&#xE9;valuations auxquels sont affect&#xE9;s des niveaux quantifi&#xE9;s &#xE0; atteindre. ( Cf. \nMETRIQUES ). Par exemple: "Les cotisations d'assurances doivent contribuer &#xE0; 60% du r&#xE9;sultat de la compagnie ". \n\nACTEURS:Classe st&#xE9;rotyp&#xE9;e repr&#xE9;sentant une abstraction faisant partie de l'ENVIRONNEMENT du syst&#xE8;me &#xE9;tudi&#xE9;. \nOSITEC-Consultants 40/45 18/03/2005\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Les carr&#xE9;s et les cercles ont toutes les propri&#xE9;t&#xE9;s des objets graphiques, cependant une forme graphique est obligatoirement un carr&#xE9; ou un cercle.\nLe mot clef abstract entre accolades indique graphiquement qu&#x2019;une classe est abstraite.\n
\n
\n
\n
\n
\n
\n
\n
Le calcul de la surface d&#x2019;une forme graphique n&#xE9;cessite de conna&#xEE;tre sa nature exacte car la formule de calcul va d&#xE9;pendre de cette nature (L2 pour un carr&#xE9;, &#x3A0;xR2 pour un cercle). Cependant on sait calculer la surface de toute forme graphique.\nLe mot clef abstract entre accolades indique graphiquement qu&#x2019;une op&#xE9;ration est abstraite.\n
\n
\n
Les intervalles sur les cardinalit&#xE9;s exprime le domaine des valeurs admises pour une relation. Il est pr&#xE9;f&#xE9;rable qu&#x2019;il soient ordonn&#xE9;s.1..4,7,10 est pr&#xE9;f&#xE9;rable &#xE0; 7,1..4,10.\nLa contrainte {or} sur les relations exprime qu&#x2019;une seule des deux relations sera instanci&#xE9;e sur l&#x2019;objet Compte en effet un compte est soit celui d&#x2019;une Societe soit celui d&#x2019;un particulier.\nLes templates ou classes g&#xE9;n&#xE9;riques expriment leurs param&#xE8;tres formles non born&#xE9;s &#xE0; travers un rectangle pointill&#xE9; situ&#xE9; en haut et &#xE0; gauche de la classe.\n
\n
\n
\n
MERISE ET UML: APPROCHE SYSTEMIQUE \n MERISE UML \nLa m&#xE9;thode MERISE s'int&#xE9;resse aux syst&#xE8;mes ouverts en \nrelation permanente avec leur environnement ( &#xE0; partir du \nniveau 3. Cf. Cours de syst&#xE9;mique ). Trois propri&#xE9;t&#xE9;s \nmajeures sont alors consid&#xE9;r&#xE9;es. \n\nGLOBALITE \nContrairement au mod&#xE8;le Cart&#xE9;sien, le comportement d'un \nsyst&#xE8;me n'est pas la somme des comportements de ses \nparties \n\nRETROACTION \nLe syst&#xE8;me r&#xE9;agit &#xE0; toute stimulation en g&#xE9;n&#xE9;rant des \nr&#xE9;sultats selon des boucles d'actions-r&#xE9;actions mises en \noeuvre au sein de ses composants. ( feed-back d'ordre 3 ) \n\nFINALITE \nLe syst&#xE8;me ne peut &#xEA;tre stabilis&#xE9; que si on lui fournit des \nvaleurs acceptables pr&#xE9;alablement d&#xE9;finies. \n\nL'APPROCHE UML \nL'approche par les CAS D'UTILISATION constitue de fait une \napproche SYSTEMIQUE. Les ACTEURS et les MESSAGES \n&#xE9;chang&#xE9;s sont pris en compte. \n\nCOMMENTAIRES \nLa Ma&#xEE;trise des concepts de la syst&#xE9;mique \n ( ENVIRONNEMENT, ENTREES, SORTIES, OBJECTIFS, \nSTRUCTURE et PROCESSUS ) permet de r&#xE9;aliser une \napproche constructive et consciente des cas d'utilisation. Elle \nfacilite la d&#xE9;termination des CAS D'UTILISATION selon un \ndouble process TOP-DOWN et BOTTOM-UP. L'avantage est \nque le PROCESSUS m&#xE9;tier du syst&#xE8;me est mieux d&#xE9;crit et \nplus compr&#xE9;hensible par les utilisateurs. \n\nFINALITES:Raisons d'&#xEA;tre, vocation d'un syst&#xE8;me. Se d&#xE9;clinent et se formalisent en BUTS. Elles ne sont pas op&#xE9;ratoires. ( Cf. FACTEURS ). Par \nexemple: "Recentrer l'activit&#xE9; de l'entreprise sur son m&#xE9;tier de base qui est la vente de contrats d'assurances". \n\nBUT:Formalisation des FINALITES. Elles se d&#xE9;clinent en OBJECTIFS qui eux, doivent &#xEA;tre op&#xE9;ratoires. ( Cf. CRITERES ). Par exemple: "Recentrer \nles r&#xE9;sultats de la compagnie sur les primes d'assurances plut&#xF4;t que sur les march&#xE9;s financiers" \n\nOBJECTIFS:Concr&#xE9;tisation des BUTS sur la base de crit&#xE8;res d'&#xE9;valuations auxquels sont affect&#xE9;s des niveaux quantifi&#xE9;s &#xE0; atteindre. ( Cf. \nMETRIQUES ). Par exemple: "Les cotisations d'assurances doivent contribuer &#xE0; 60% du r&#xE9;sultat de la compagnie ". \n\nACTEURS:Classe st&#xE9;rotyp&#xE9;e repr&#xE9;sentant une abstraction faisant partie de l'ENVIRONNEMENT du syst&#xE8;me &#xE9;tudi&#xE9;. \nOSITEC-Consultants 40/45 18/03/2005\n
\n
\n
These buttons are different in terms of structure, behavior, or interface\n
These buttons are all the same -- they differ only in context, not in structure, behavior, or interface\n
These buttons are all the same -- they differ only in context, not in structure, behavior, or interface\n
Most often, subclasses are extended and specialized at the same time\n
\n
D&#xE9;finition du mot BLOB, Binary Large Object, soit un &#xAB;&#xA0;grand objet binaire&#xA0;&#xBB;, souvent audio ou vid&#xE9;o, qui peut peser jusqu'&#xE0; plusieurs Go. D&#xE9;signe &#xE9;galement un objet 3D produit par les alt&#xE9;rations structurelles de plusieurs sph&#xE8;res rentrant en contact&#xA0;\n
D&#xE9;finition du mot BLOB, Binary Large Object, soit un &#xAB;&#xA0;grand objet binaire&#xA0;&#xBB;, souvent audio ou vid&#xE9;o, qui peut peser jusqu'&#xE0; plusieurs Go. D&#xE9;signe &#xE9;galement un objet 3D produit par les alt&#xE9;rations structurelles de plusieurs sph&#xE8;res rentrant en contact&#xA0;\n
D&#xE9;finition du mot BLOB, Binary Large Object, soit un &#xAB;&#xA0;grand objet binaire&#xA0;&#xBB;, souvent audio ou vid&#xE9;o, qui peut peser jusqu'&#xE0; plusieurs Go. D&#xE9;signe &#xE9;galement un objet 3D produit par les alt&#xE9;rations structurelles de plusieurs sph&#xE8;res rentrant en contact&#xA0;\n
D&#xE9;finition du mot BLOB, Binary Large Object, soit un &#xAB;&#xA0;grand objet binaire&#xA0;&#xBB;, souvent audio ou vid&#xE9;o, qui peut peser jusqu'&#xE0; plusieurs Go. D&#xE9;signe &#xE9;galement un objet 3D produit par les alt&#xE9;rations structurelles de plusieurs sph&#xE8;res rentrant en contact&#xA0;\n
D&#xE9;finition du mot BLOB, Binary Large Object, soit un &#xAB;&#xA0;grand objet binaire&#xA0;&#xBB;, souvent audio ou vid&#xE9;o, qui peut peser jusqu'&#xE0; plusieurs Go. D&#xE9;signe &#xE9;galement un objet 3D produit par les alt&#xE9;rations structurelles de plusieurs sph&#xE8;res rentrant en contact&#xA0;\n
\n
\n
\n
\n
\n
http://www4.utc.fr/~nf17/DOCS/modules/01/\n\n
\n
\n
\n
\n
\n
\n
\n
\n
Relationships\nRelationships between entities correspond to foreign key constraints between tables in the physical data model. There are three different types of relationship lines to draw in a logical model: one for parent/child relations (Identifying and Nonidentifying), one for Non-specific relations, and one for Super-sub relations.\nIdentifying\nAn identifying relation indicates that the existence of the child entity is completely dependent on the parent entity. Identifying relations specify that the existence of the parent entity is mandatory for the child entity to exist. A child entity in an identifying relationship does not have to have its own primary key; the primary key of the parent entity is part of the primary key of the child entity.\nExample: the relationship between the entity Employee and the entity Dependent in a company's health plan is identifying. A dependent must "belong" to an employee, because the company does not insure dependents of non-employees. In this example, the primary key of the parent entity Employee is Social Security Number. This also serves as part of the primary key of the entity Dependent.\n
Non-Identifying\nA non-identifying relation indicates that the child entity does not rely on the parent entity for its existence. The child entity must, therefore, have its own unique primary key. The parent may be specified as mandatory or optional in a non-identifying relationship.\nIn Telelogic System Architect, the foreign keys that are propagated through a non-identifying relation line in the entity relation model are not primary key attributes in the child entity.\nExample: the relationship between the entity Company and the entity Employee is non-identifying.\nNon-Specific\nThe non-specific relationship line is used during conceptual modeling, when you just want to relate two entities, but don't want to spend time figuring out the exact details of the relationship. \nThis relationship type is not included in any integrity checks, nor can foreign keys be propagated from it. Also, a non-specific relation cannot be converted to an identifying or non-identifying relation. \nExample: you may draw a non-specific relationship between any two entities at the start of your modeling effort, if you do not want to think about the specifics of the relationship between them. \nSuper- and Sub-Relationships\nThe super-sub relationship indicates that one entity may have types. Each sub-entity inherits attributes from Customer, and each has specific attributes of its own.\nExample: you may specify different types of Employees in an organization, for example, a "Union Employee&#x201D;, a "Non-Union Employee&#x201D;, and "Management".\nThe super-sub relationship m99y be complete or incomplete. That is, the sub-entities in the model may be all the possible types or just a sample of types. In standard ERD modeling, there is no way to differentiate between a complete and incomplete relationship; in IDEF1X modeling, the line is drawn differently in order to differentiate.\n
\n
\n
Primary Keys from one Entity are replicated as Foreign Keys within another Entity when you select Dictionary, Update FKs. This replication takes place through a One-to-Many or One-to-One Relationship from Parent to Child entity.\nForeign Keys are identified by the FK column within the Attributes grid of an Entity definition. This property is read only; it is toggled on and off automatically whenever foreign keys are updated. If the Relationship is identifying, the Parent identifies child checkbox will be enabled and the Foreign Key will also be a Primary Key.\n\n\n\nDe mani&#xE8;re g&#xE9;n&#xE9;rale il convient de limiter les clefs compos&#xE9;es. Chaque fois que l'on aura le choix entre la cr&#xE9;ation d'une clef num&#xE9;rique, et une clef naturelle mais compos&#xE9;e, il sera pr&#xE9;f&#xE9;rable de cr&#xE9;er une clef num&#xE9;rique, &#xE0; de tr&#xE8;s rares exceptions pr&#xE8;s.\nEn effet les SGBDR sont plus &#xAB; &#xE0; l&#x2019;aise &#xBB; lorsqu&#x2019;ils ont &#xE0; manipuler des clefs purement num&#xE9;rique. De plus une clef est un concept purement informatique.\nPar exemple le n&#xB0; de s&#xE9;curit&#xE9; sociale est une mauvaise clef en g&#xE9;n&#xE9;rale : un individu &#xE9;tranger qui arrive sur le sol fran&#xE7;ais est dot&#xE9; d&#x2019;une immatriculation provisoire et ne conna&#xEE;t son num&#xE9;ro d&#xE9;finitif que plusieurs mois apr&#xE8;s avoir rempli les conditions requises par l&#x2019;administration.\nPar exemple l&#x2019;immatriculation d&#x2019;un v&#xE9;hicule est une mauvaise clef : en effet, du fait de la fiscalit&#xE9; sur les v&#xE9;hicules &#xE0; moteur (et en particulier les vignettes), les soci&#xE9;t&#xE9;s n&#x2019;h&#xE9;sitent pas &#xE0; faire immatriculer leur parc de v&#xE9;hicules dans le d&#xE9;partement o&#xF9; les taxes sont les moins &#xE9;lev&#xE9;es (le 51). Cette immatriculation peut donc &#xEA;tre amen&#xE9;e &#xE0; changer.\nOr toute clef &#xE9;volutive est un danger pour le syst&#xE8;me informatique : si la valeur de la clef change, nous verrons qu&#x2019;il faut la modifier dans tous les fichiers dans laquelle elle est r&#xE9;f&#xE9;renc&#xE9;e. Il est vrai que certains SGBDR autorise automatiquement ce genre de man&#x153;uvre, mais cette automatisation tr&#xE8;s contraignante p&#xE9;nalise lourdement le fonctionnement du SGBDR.\nOn veillera donc &#xE0; prendre une clef totalement ind&#xE9;pendante des attributs ordinaires de l&#x2019;entit&#xE9;.\nDe plus une clef a int&#xE9;r&#xEA;t &#xE0; &#xEA;tre la plus courte possible afin que son stockage soit limit&#xE9; &#xE0; quelques octets dans les fichiers et donc le temps de recherche le plus rapide possible.\n\nLe plus simple consiste donc &#xE0; introduire dans le descriptif de l&#x2019;entit&#xE9; une clef strictement &#xAB; informatique &#xBB; qui se r&#xE9;sumera en g&#xE9;n&#xE9;ral &#xE0; un num&#xE9;ro (entier long) que l&#x2019;on pourra incr&#xE9;menter automatiquement.\n\nParfois, il arrive qu&#x2019;une clef ait &#xE9;t&#xE9; cr&#xE9;&#xE9;e sp&#xE9;cifiquement pour les besoins des syst&#xE8;mes informatiques. C&#x2019;est en particulier le cas des indicatifs t&#xE9;l&#xE9;phoniques (33 pour la France) ou des code de pays (F pour France). Dans ce dernier cas on devra alors utiliser la clef commune, comme clef de l&#x2019;entit&#xE9;.\n\n
\n
\n
\n
\n
\n
\n
\n
Personne contient les personnes qui ne sont ni etudiant ni enseignant\n
132 &#xA9; &#xC9;ditions Eyrolles \nS&#x2019;il existe une contrainte de totalit&#xE9; ou de partition sur l&#x2019;association, il est possible de ne pas \ntraduire la relation issue de la sur-classe. Il faut alors faire migrer tous ses attributs dans la \n(les) relation(s) issue(s) de la (des) sous-classe(s). \n&#x2022; Dans le cas contraire, il faut faire migrer tous ses attributs dans la ou les relation(s) issue(s) de \nla (des) sous-classe(s) dans la (les) relation(s) issue(s) de la (des) sous-classe(s). \n\n132 &#xA9; &#xC9;ditions Eyrolles \nL&#x2019;exemple 2-33 d&#xE9;crit une contrainte de partition dans l&#x2019;association d&#x2019;h&#xE9;ritage (aucun personnel \nne peut &#xEA;tre &#xE0; la fois PNT et PNC et il n&#x2019;existe pas un personnel n&#x2019;&#xE9;tant ni PNT ni PNC). Les \ndeux relations h&#xE9;ritent du contenu int&#xE9;gral de la relation issue de la sur-classe (Personnel). \nLa relation Personnel n&#x2019;appara&#xEE;t plus au niveau logique et n&#x2019;est pas n&#xE9;cessaire, car aucun \n\n
132 &#xA9; &#xC9;ditions Eyrolles \nS&#x2019;il existe une contrainte de totalit&#xE9; ou de partition sur l&#x2019;association, il est possible de ne pas \ntraduire la relation issue de la sur-classe. Il faut alors faire migrer tous ses attributs dans la \n(les) relation(s) issue(s) de la (des) sous-classe(s). \n&#x2022; Dans le cas contraire, il faut faire migrer tous ses attributs dans la ou les relation(s) issue(s) de \nla (des) sous-classe(s) dans la (les) relation(s) issue(s) de la (des) sous-classe(s). \n\n132 &#xA9; &#xC9;ditions Eyrolles \nL&#x2019;exemple 2-33 d&#xE9;crit une contrainte de partition dans l&#x2019;association d&#x2019;h&#xE9;ritage (aucun personnel \nne peut &#xEA;tre &#xE0; la fois PNT et PNC et il n&#x2019;existe pas un personnel n&#x2019;&#xE9;tant ni PNT ni PNC). Les \ndeux relations h&#xE9;ritent du contenu int&#xE9;gral de la relation issue de la sur-classe (Personnel). \nLa relation Personnel n&#x2019;appara&#xEE;t plus au niveau logique et n&#x2019;est pas n&#xE9;cessaire, car aucun \n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
An Access Path (also called an Alternate Key) is a separate storage structure used to enforce uniqueness of data and provide a faster access path to the data &#x2013; something like a card catalog in a library. You create an Access Path for an entity by specifying the attributes that can be used to locate an individual record that is represented by the entity.\nA Primary Key is in essence an Access Path. By default an access path is created for the Primary Key using the Entity name and the extension _PK. This name can be changed if required, but this access path cannot be deleted.\nYou may also want to create alternate Access Paths, for example, create an access path to look up a book by Author, then Title, then Publishing Date, or create another Access Path to look up a book by Publisher, then Title, then Date.\nWhereas the primary key access path is always unique, the component attributes of other access paths can have duplicates. So you may create Access Paths with the same attributes, but differing orders, for example, Title, then Author, then Date.\nAn Access Path is the equivalent concept to an index in the physical data model.\nA Unique access path represents a Candidate Key. This means that the set of attributes specified for the access path is capable of uniquely identifying an instance of the Entity; therefore, it is capable of being the Primary Key for the Entity. Since only one primary key is permitted for any entity, and there may be many candidate keys, the unique access path provides a means of documenting other alternatives. In the physical model, a unique index may be generated from the unique access path.\n
Once the system&#x2019;s external environment is defined, the analyst must identify key objects and classes and their relationships. \n
Used to gain a first-cut object list. Identify the nouns then evaluate them as a potential objects. \n
\n
\n
\n
Transactions are finite instances of associations between objects. For example: bus messages and queued data \n
\n
\n
These scenarios map to the use cases that these objects will collaborate to realize\n
\n
\n
Trois visibilit&#xE9;s sont disponibles pour les attributs et op&#xE9;rations d'une classe (pas sur les relations) :\nPublic : accessible pour tout utilisateur d&#x2019;une classe, y compris la classe elle-m&#xEA;me.\nProt&#xE9;g&#xE9; : accessible seulement par la classe elle-m&#xEA;me, et par ses h&#xE9;ritiers.\nPriv&#xE9; : accessible seulement par la classe elle-m&#xEA;me.\nLes visibilit&#xE9;s sont fondamentales en phase de conception technique.\n
\n
\n
\n
MERISE ET UML: APPROCHE SYSTEMIQUE \n MERISE UML \nLa m&#xE9;thode MERISE s'int&#xE9;resse aux syst&#xE8;mes ouverts en \nrelation permanente avec leur environnement ( &#xE0; partir du \nniveau 3. Cf. Cours de syst&#xE9;mique ). Trois propri&#xE9;t&#xE9;s \nmajeures sont alors consid&#xE9;r&#xE9;es. \n\nGLOBALITE \nContrairement au mod&#xE8;le Cart&#xE9;sien, le comportement d'un \nsyst&#xE8;me n'est pas la somme des comportements de ses \nparties \n\nRETROACTION \nLe syst&#xE8;me r&#xE9;agit &#xE0; toute stimulation en g&#xE9;n&#xE9;rant des \nr&#xE9;sultats selon des boucles d'actions-r&#xE9;actions mises en \noeuvre au sein de ses composants. ( feed-back d'ordre 3 ) \n\nFINALITE \nLe syst&#xE8;me ne peut &#xEA;tre stabilis&#xE9; que si on lui fournit des \nvaleurs acceptables pr&#xE9;alablement d&#xE9;finies. \n\nL'APPROCHE UML \nL'approche par les CAS D'UTILISATION constitue de fait une \napproche SYSTEMIQUE. Les ACTEURS et les MESSAGES \n&#xE9;chang&#xE9;s sont pris en compte. \n\nCOMMENTAIRES \nLa Ma&#xEE;trise des concepts de la syst&#xE9;mique \n ( ENVIRONNEMENT, ENTREES, SORTIES, OBJECTIFS, \nSTRUCTURE et PROCESSUS ) permet de r&#xE9;aliser une \napproche constructive et consciente des cas d'utilisation. Elle \nfacilite la d&#xE9;termination des CAS D'UTILISATION selon un \ndouble process TOP-DOWN et BOTTOM-UP. L'avantage est \nque le PROCESSUS m&#xE9;tier du syst&#xE8;me est mieux d&#xE9;crit et \nplus compr&#xE9;hensible par les utilisateurs. \n\nFINALITES:Raisons d'&#xEA;tre, vocation d'un syst&#xE8;me. Se d&#xE9;clinent et se formalisent en BUTS. Elles ne sont pas op&#xE9;ratoires. ( Cf. FACTEURS ). Par \nexemple: "Recentrer l'activit&#xE9; de l'entreprise sur son m&#xE9;tier de base qui est la vente de contrats d'assurances". \n\nBUT:Formalisation des FINALITES. Elles se d&#xE9;clinent en OBJECTIFS qui eux, doivent &#xEA;tre op&#xE9;ratoires. ( Cf. CRITERES ). Par exemple: "Recentrer \nles r&#xE9;sultats de la compagnie sur les primes d'assurances plut&#xF4;t que sur les march&#xE9;s financiers" \n\nOBJECTIFS:Concr&#xE9;tisation des BUTS sur la base de crit&#xE8;res d'&#xE9;valuations auxquels sont affect&#xE9;s des niveaux quantifi&#xE9;s &#xE0; atteindre. ( Cf. \nMETRIQUES ). Par exemple: "Les cotisations d'assurances doivent contribuer &#xE0; 60% du r&#xE9;sultat de la compagnie ". \n\nACTEURS:Classe st&#xE9;rotyp&#xE9;e repr&#xE9;sentant une abstraction faisant partie de l'ENVIRONNEMENT du syst&#xE8;me &#xE9;tudi&#xE9;. \nOSITEC-Consultants 40/45 18/03/2005\n
\n
Most often, subclasses are extended and specialized at the same time\n
These buttons are different in terms of structure, behavior, or interface\n
These buttons are all the same -- they differ only in context, not in structure, behavior, or interface\n
\n
\n
\n
\n
\n
\n
Although signature gets the most attention, it is the easiest to get right &#x2013; compilers will typically raise errors if the signature is wrong.\nPre- and post conditions are much more difficult to ensure correctness. This is why we lost the Mars Global Surveyor &#x2013; pre-conditions as to units and ranges weren&#x2019;t adhered to.\n
How the sensor provides its services and it&#x2019;s internal structure are hidden away behind the interface\n
Attributes should generally not be directly accessible from outside the object\n
container example: \n"goto right branch & goto left branch"\nvs.\n"get first & get next"\n
\n
\n
\n
\n
\n
\n
Les carr&#xE9;s et les cercles ont toutes les propri&#xE9;t&#xE9;s des objets graphiques, cependant une forme graphique est obligatoirement un carr&#xE9; ou un cercle.\nLe mot clef abstract entre accolades indique graphiquement qu&#x2019;une classe est abstraite.\n
Le calcul de la surface d&#x2019;une forme graphique n&#xE9;cessite de conna&#xEE;tre sa nature exacte car la formule de calcul va d&#xE9;pendre de cette nature (L2 pour un carr&#xE9;, &#x3A0;xR2 pour un cercle). Cependant on sait calculer la surface de toute forme graphique.\nLe mot clef abstract entre accolades indique graphiquement qu&#x2019;une op&#xE9;ration est abstraite.\n
\n
Les intervalles sur les cardinalit&#xE9;s exprime le domaine des valeurs admises pour une relation. Il est pr&#xE9;f&#xE9;rable qu&#x2019;il soient ordonn&#xE9;s.1..4,7,10 est pr&#xE9;f&#xE9;rable &#xE0; 7,1..4,10.\nLa contrainte {or} sur les relations exprime qu&#x2019;une seule des deux relations sera instanci&#xE9;e sur l&#x2019;objet Compte en effet un compte est soit celui d&#x2019;une Societe soit celui d&#x2019;un particulier.\nLes templates ou classes g&#xE9;n&#xE9;riques expriment leurs param&#xE8;tres formles non born&#xE9;s &#xE0; travers un rectangle pointill&#xE9; situ&#xE9; en haut et &#xE0; gauche de la classe.\n
\n
\n
\n
\n
\n
UML d&#xE9;finit des st&#xE9;r&#xE9;otypes de base sur les &#xE9;l&#xE9;ments de mod&#xE9;lisation tels que :\n&#xAB;constructor&#xBB; ou &#xAB;destructor&#xBB; qui permettent de &#xAB;typer&#xBB; certaines op&#xE9;rations particuli&#xE8;res.\n&#xAB;utility&#xBB; pour pr&#xE9;ciser qu&#x2019;une classe est une classe utilitaire d&#x2019;un package.\n&#xAB;event&#xBB; pour pr&#xE9;ciser qu&#x2019;une classe est de type &#xE9;v&#xE9;nement.\n&#xAB;actor&#xBB; pour pr&#xE9;ciser q&#x2019;une classe est de type acteur.\n&#xAB;extends&#xBB; ou &#xAB;uses&#xBB; pour pr&#xE9;ciserle type de relations entre uses-cases\n&#xAB;friends&#xBB; ou &#xAB;instanciates&#xBB; pour pr&#xE9;ciser les liens d&#x2019;utilisation entre classes\n&#xAB;local&#xBB;, &#xAB;global&#xBB;, &#xAB;transient&#xBB; ... pour qualifier des objets\n...\nLes st&#xE9;r&#xE9;otypes peuvent &#xEA;tre hi&#xE9;rarchiques. La hi&#xE9;rarchie sera celle des classes du m&#xE9;ta mod&#xE8;les sur lesquelles, ils se basent.\n
\n
La notation utilis&#xE9;e pour les notes est un rectangle corn&#xE9; contenant du texte.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
A relay port is also referred to as a delegation port\n
\n
\n
\n
\n
\n
La destruction d&#x2019;un resultat dans resultat a entraine la destruction du resultat dans resultat.\nOn ne peut pas l&#x2019;exprimer &#xE0; l&#x2019;envers ??\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Indexes\nIndexes specify columns that can be used to locate individual records within a database table. A unique index represents a candidate key, that is, the columns that comprise the index can uniquely identify an individual record. The primary key index is a unique index comprised of the columns in the primary key constraint.\nAn index is the physical equivalent of an access path in the entity relation model.\n\nTriggers\nTriggers enforce the relationship between the parent and child tables. Triggers are used to enforce business rules during database modification. For example, if the business rule is "no order records for active customers can be deleted," a trigger may be used to control the deletion of records from the ORDER table.\nTelelogic System Architect automatically generates update, insert, and delete triggers based on the properties of the relationship or constraint. The names of automatically-generated triggers are prefaced with it_, ut_, and dt_. You may change the name through the Update trigger name, Delete trigger name, and Insert trigger name properties.\nAll triggers are related to specific tables; a trigger cannot be "free-standing" in the database. Depending on the DBMS, triggers may be programmed to fire after, during, or instead of an action.\nUser-defined triggers are added to the project dictionary via the trigger editor. Trigger templates are included with Telelogic System Architect and can be used in whole or part with triggers you write. You can access the templates from within the Explorer.\nConstraint Lines\nA constraint line in the physical data model is the equivalent of an Identifying or Non-Identifying relation line in a logical data model. The non-specific relationship of a logical data model does not exist in a physical data model.\nThe constraint line in the PDM is a visual representation of the foreign key constraints in the database schema that is represented by the diagram. The foreign key constraints control referential integrity in the database, ensuring, for example, that a row in the parent table will not be deleted if there are corresponding rows in the child table.\nIdentifying Constraint Lines: An identifying constraint indicates that an instance of the parent table identifies an instance of the child table; that is, if there is no PARENT table there can be no corresponding CHILD TABLE. The primary keys of the parent table are foreign key components of the child table, pictured on the diagram as [PK] [FK].\nNon-Identifying Constraint Lines: Non-identifying constraints are used when an instance of the parent table does not identify a corresponding instance of the child table. The primary key of the parent table is propagated to the child table as [FK] -- it is a foreign key but not primary key.\n
\n
Telelogic System Architect supports the process of migration between an Entity Relation Diagram and Physical Data Models. Multiple Physical Data Models can be generated from the same single Logical Model, to support the characteristics of the target RDBMS, hardware and other implementation specific features. Physical data models can be created from a Model Diagram or a Subject Area Diagram.\n
\n
When designing a database system, it is often advantageous to adhere to the rules of data normalization during the logical design stage. This assures that data redundancy is minimized.\nOnly if you separate the logical and physical design stages, can the logical design be normalized even though the physical data model is denormalized.\n
Super/Sub Resolution Method\nIf Super/Sub Relationships have been defined in the Logical Model, the method for handling them in the Physical Model can be specified.\n&#x2022; Separate Tables &#x2013; a table is created for each entity in the group. Each super/sub relation line is converted to an identifying one-to-one constraint.\n&#x2022; Merge Supertype to Subtypes &#x2013; a table is created for each sub-entity in the group. Each table contains columns representing the attributes in its source sub-entity and in its supertype.\n&#x2022; Merge Subtypes to Supertype &#x2013; a table is created for the supertype. It includes columns for each attribute in the source super-entity and each attribute in every sub-entity.\n&#x2022; Prompt for Each Super/Sub Group &#x2013; you are prompted for the resolution method for each super/sub group.\n\nResolve Non-Specific Relations: Toggling this choice automatically creates a Table that resolves Many to Many Non-specific relationships on the Logical Model. The Table&#x2019;s name is provided by the Relation line being resolved and the Column names will be Foreign Keys from the attached Tables.\n\nName Mapping: You may specify how to map the names of entities-to-tables, attributes-to-columns, relationship-lines-to-constraints, and access-paths-to-indexes: either retain the case as they are, mapped to all upper case, or mapped to all lower case.\n\n&#x2018;_&#x2019; for Special Characters: Specify that special characters (any character that is not a letter, a digit, or an underscore, such as @, #, $, and %) get mapped to an underscore (&#x2018;_&#x2019;).\n
Distributed systems are logically one database system, but physically multiple database systems. Separation of logical and physical models allows distributed databases to be effectively modeled and reported on.\nIn Telelogic System Architect, you can create a Project Data Model comprised of multiple subject area ER diagrams, each of which represents a different database in the distributed system. Then you can generate a physical model from each entity relation subject area diagram.\n