SlideShare une entreprise Scribd logo
1  sur  121
Télécharger pour lire hors ligne
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
Pattern du type-
  exemplaire

        2
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                    Des rôles mieux définis




03/11                                        4 /88
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
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
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
Structuration en
   packages

        8
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        10 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        11 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        12 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        13 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        14 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        15 /88
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
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
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        17 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        18 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        19 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                Structuration en packages




03/11                                        20 /88
Vers la conception :
choix des itérations

         21
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                        Choix des itérations                                      On a




03/11                                        22 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                        Choix des itérations                                      On a




03/11                                        23 /88
Pattern méta.   Packages   Itérations     Séquences     Archi.   Classes.   BD.


                        Choix des itérations                                          On a
                                            Itération 2’

                                                         Itération 1

                                        Itération 3’

                                        Itération 2

                                        Itération 3

                                      Itération 1’’


                                        Itération 4

03/11                                           24 /88
Des diagrammes de
   séquence en
    conception

        25
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.



                         Vers l’architecture




         Pas
   d’interaction
    directe du
       client!


03/11                                        26 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


 Objet
Frontière
                         Vers l’architecture




03/11                                        27 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.



                               Enrichissement                               Classes

                                Paramètres




                                   soumettre(Cours)
                                                                        Valider(Cours)




03/11                                        28 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.



                               Enrichissement                               Entité




                                   soumettre(Cours)




03/11                                        29 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                     Scénario : raffinement




                    Quelles sont les informations pertinentes ?


03/11                                        30 /88
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
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
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
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
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
Si c’est nécessaire...Après...
• avec l’addon Firefox :
• http://pencil.evolus.vn/en-US/Downloads/Application.aspx




                                                  36
Vers la conception :
   Architecture
      Système

         37
Diagramme de Use-cases
Afficher Informations : niveau Analyse
Gérer Informations : niveau Analyse (0)
Diagramme de Use-cases
             Itération 1


             Itération 1I
Choix d’Architecture
  Présentation



Logique applicative   Gérer les informations

                               CREATE TABLE `information` (
     Stockage                  `titre` varchar(20) NOT NULL,
                               `date` varchar(22) NOT NULL,
                      `identifiant` int(11) NOT NULL auto_increment,
                                PRIMARY KEY (`identifiant`))
Choix d’Architecture
  Présentation



Logique applicative   Gérer les informations

                               CREATE TABLE `information` (
     Stockage                  `titre` varchar(20) NOT NULL,
                               `date` varchar(22) NOT NULL,
                      `identifiant` int(11) NOT NULL auto_increment,
                                PRIMARY KEY (`identifiant`))
Choix d’Architecture
  Présentation



Logique applicative   Gérer les informations

                               CREATE TABLE `information` (
     Stockage                  `titre` varchar(20) NOT NULL,
                               `date` varchar(22) NOT NULL,
                      `identifiant` int(11) NOT NULL auto_increment,
                                PRIMARY KEY (`identifiant`))
Choix d’Architecture
  Présentation



Logique applicative   Gérer les informations

                               CREATE TABLE `information` (
     Stockage                  `titre` varchar(20) NOT NULL,
                               `date` varchar(22) NOT NULL,
                      `identifiant` int(11) NOT NULL auto_increment,
                                PRIMARY KEY (`identifiant`))
Choix d’Architecture
                                                                        clickOn()


  Présentation                                              IHM
                                                                 créer Information

                                              Contrôleur
Logique applicative
                      Gérer les informations : métier
                                 CREATE TABLE `information` (
     Stockage                    `titre` varchar(20) NOT NULL,
                                 `date` varchar(22) NOT NULL,
                        `identifiant` int(11) NOT NULL auto_increment,
                                  PRIMARY KEY (`identifiant`))
Architecture
en couches
     &
  Fichiers
Afficher Informations : niveau Conception


       index_SI_View.php
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; }
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>';
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>';
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>';
Créer Information : niveau Conception
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>
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();
                  	    	     	    }
modifier Information : niveau Conception
Des diagrammes
 de séquence et
   d’activités

aux diagrammes
   de classes
       49
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
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


               Classes : corps de méthode




03/11                                        52 /88
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
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
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
Compléments sur les
classes : vers la mise
      en oeuvre

           56
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.    BD.



                                    Visibilité
         Différentes      visibilités des membres d'une classe

                         public = +                                         usager


  Interface            protégé = #
                                                                            héritier

                          privé = -
                                                                            implémenteur
        corps


03/11                                        57 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                                   Visibilité
 Représentation


                                      Classe
                               +a1 : T1
                               -a2 : T2
                               #m1 (p1,P2,p3)
                               +m2 (p1,P2,p3)




 Pas      de sens en analyse...
03/11                                        58 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.

                               Les opérations




03/11                                        59 /88
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
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
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
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
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
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
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
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.

                                Les attributs




03/11                                        60 /88
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
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
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
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
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
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
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
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
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
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
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


          Classes et Opérations abstraites




03/11                                        64 /88
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
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
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
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
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                       Pattern Composite...




03/11                                        70 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Anti-Patterns
         Blob ou la
        classe Dieu




03/11                                        71 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Anti-Patterns
         Blob ou la
        classe Dieu




03/11                                        71 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Anti-Patterns
         Blob ou la
        classe Dieu




03/11                                        71 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Anti-Patterns
         Blob ou la
        classe Dieu




03/11                                        71 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Anti-Patterns
         Blob ou la
        classe Dieu




03/11                                        71 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Anti-Patterns




                                                                                A
                                                                             Améliorer
                                                                             encore...


03/11                                        72 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Association...




03/11                                        73 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


                               Association...




03/11                                        74 /88
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.

                   Association:
        De la conception à l’implémentation




03/11                                        75 /88
D’un modèle à
   classes
 au modèle
 relationnel
      76
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
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
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
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
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
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
Pattern méta.   Packages   Itérations   Séquences   Archi.   Classes.   BD.


        Classes… Identification des clefs



                                                                            Identifiant
                                                                              généré




03/11                                        80 /88
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
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
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
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
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
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
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
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

Contenu connexe

En vedette

Analyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationAnalyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationMireille Blay-Fornarino
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec SymfonyMohammed Rhamnia
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionLilia Sfaxi
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Ben Abdelwahed Slim
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
Flores para el pueblo..
Flores para el pueblo..Flores para el pueblo..
Flores para el pueblo..Adalberto
 
Congrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèque
Congrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèqueCongrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèque
Congrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèqueAssociation des Bibliothécaires de France
 
Agenda para octubre
Agenda para octubreAgenda para octubre
Agenda para octubreAdalberto
 
Imprimer des étiquettes d’adresses avec Access
Imprimer des étiquettes d’adresses avec AccessImprimer des étiquettes d’adresses avec Access
Imprimer des étiquettes d’adresses avec AccessVotre Assistante
 
Evaluación 8 .docx
Evaluación 8 .docxEvaluación 8 .docx
Evaluación 8 .docxAdalberto
 
Dictamen numero 81 reforma a la ley general de educación
Dictamen numero 81   reforma a la ley general de educaciónDictamen numero 81   reforma a la ley general de educación
Dictamen numero 81 reforma a la ley general de educaciónAdalberto
 
Principes et fonctionnalités d'un portail open data www.open datasoft.com
Principes et fonctionnalités d'un portail open data   www.open datasoft.comPrincipes et fonctionnalités d'un portail open data   www.open datasoft.com
Principes et fonctionnalités d'un portail open data www.open datasoft.comOpenDataSoft
 

En vedette (20)

Uml & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
 
Diagramme d'activité en UML
Diagramme d'activité en UMLDiagramme d'activité en UML
Diagramme d'activité en UML
 
Analyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationAnalyse et conception des systèmes d’information
Analyse et conception des systèmes d’information
 
Analyse et cahier des charges
Analyse et cahier des chargesAnalyse et cahier des charges
Analyse et cahier des charges
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec Symfony
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
Exposé 1
Exposé   1Exposé   1
Exposé 1
 
Génie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyseGénie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyse
 
Génie Logiciel : Conception
Génie Logiciel : ConceptionGénie Logiciel : Conception
Génie Logiciel : Conception
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
Flores para el pueblo..
Flores para el pueblo..Flores para el pueblo..
Flores para el pueblo..
 
Congrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèque
Congrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèqueCongrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèque
Congrès ABF 2016 - La création : l'artiste, les scientifiques et la bibliothèque
 
Agenda para octubre
Agenda para octubreAgenda para octubre
Agenda para octubre
 
Imprimer des étiquettes d’adresses avec Access
Imprimer des étiquettes d’adresses avec AccessImprimer des étiquettes d’adresses avec Access
Imprimer des étiquettes d’adresses avec Access
 
Evaluación 8 .docx
Evaluación 8 .docxEvaluación 8 .docx
Evaluación 8 .docx
 
Renvil
RenvilRenvil
Renvil
 
Dictamen numero 81 reforma a la ley general de educación
Dictamen numero 81   reforma a la ley general de educaciónDictamen numero 81   reforma a la ley general de educación
Dictamen numero 81 reforma a la ley general de educación
 
Principes et fonctionnalités d'un portail open data www.open datasoft.com
Principes et fonctionnalités d'un portail open data   www.open datasoft.comPrincipes et fonctionnalités d'un portail open data   www.open datasoft.com
Principes et fonctionnalités d'un portail open data www.open datasoft.com
 
Issue 1
Issue 1Issue 1
Issue 1
 

De l'analyse à la conception

  • 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
  • 2. Pattern du type- exemplaire 2
  • 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
  • 4. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Des rôles mieux définis 03/11 4 /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
  • 8. Structuration en packages 8
  • 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
  • 10. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 10 /88
  • 11. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 11 /88
  • 12. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 12 /88
  • 13. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 13 /88
  • 14. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 14 /88
  • 15. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 15 /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
  • 19. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 17 /88
  • 20. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 18 /88
  • 21. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 19 /88
  • 22. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Structuration en packages 03/11 20 /88
  • 23. Vers la conception : choix des itérations 21
  • 24. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Choix des itérations On a 03/11 22 /88
  • 25. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Choix des itérations On a 03/11 23 /88
  • 26. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Choix des itérations On a Itération 2’ Itération 1 Itération 3’ Itération 2 Itération 3 Itération 1’’ Itération 4 03/11 24 /88
  • 27. Des diagrammes de séquence en conception 25
  • 28. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Vers l’architecture Pas d’interaction directe du client! 03/11 26 /88
  • 29. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Objet Frontière Vers l’architecture 03/11 27 /88
  • 30. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Enrichissement Classes Paramètres soumettre(Cours) Valider(Cours) 03/11 28 /88
  • 31. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Enrichissement Entité soumettre(Cours) 03/11 29 /88
  • 32. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Scénario : raffinement Quelles sont les informations pertinentes ? 03/11 30 /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
  • 38. Si c’est nécessaire...Après... • avec l’addon Firefox : • http://pencil.evolus.vn/en-US/Downloads/Application.aspx 36
  • 39. Vers la conception : Architecture Système 37
  • 41. Afficher Informations : niveau Analyse
  • 42. Gérer Informations : niveau Analyse (0)
  • 43. Diagramme de Use-cases Itération 1 Itération 1I
  • 44. Choix d’Architecture Présentation Logique applicative Gérer les informations CREATE TABLE `information` ( Stockage `titre` varchar(20) NOT NULL, `date` varchar(22) NOT NULL, `identifiant` int(11) NOT NULL auto_increment, PRIMARY KEY (`identifiant`))
  • 45. Choix d’Architecture Présentation Logique applicative Gérer les informations CREATE TABLE `information` ( Stockage `titre` varchar(20) NOT NULL, `date` varchar(22) NOT NULL, `identifiant` int(11) NOT NULL auto_increment, PRIMARY KEY (`identifiant`))
  • 46. Choix d’Architecture Présentation Logique applicative Gérer les informations CREATE TABLE `information` ( Stockage `titre` varchar(20) NOT NULL, `date` varchar(22) NOT NULL, `identifiant` int(11) NOT NULL auto_increment, PRIMARY KEY (`identifiant`))
  • 47. Choix d’Architecture Présentation Logique applicative Gérer les informations CREATE TABLE `information` ( Stockage `titre` varchar(20) NOT NULL, `date` varchar(22) NOT NULL, `identifiant` int(11) NOT NULL auto_increment, PRIMARY KEY (`identifiant`))
  • 48. Choix d’Architecture clickOn() Présentation IHM créer Information Contrôleur Logique applicative Gérer les informations : métier CREATE TABLE `information` ( Stockage `titre` varchar(20) NOT NULL, `date` varchar(22) NOT NULL, `identifiant` int(11) NOT NULL auto_increment, PRIMARY KEY (`identifiant`))
  • 50. Afficher Informations : niveau Conception index_SI_View.php
  • 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>';
  • 55. Créer Information : niveau Conception
  • 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(); }
  • 58. modifier Information : niveau Conception
  • 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
  • 66. Compléments sur les classes : vers la mise en oeuvre 56
  • 67. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Visibilité  Différentes visibilités des membres d'une classe public = + usager Interface protégé = # héritier privé = - implémenteur corps 03/11 57 /88
  • 68. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Visibilité  Représentation Classe +a1 : T1 -a2 : T2 #m1 (p1,P2,p3) +m2 (p1,P2,p3)  Pas de sens en analyse... 03/11 58 /88
  • 69. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Les opérations 03/11 59 /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
  • 78. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Les attributs 03/11 60 /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
  • 90. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Classes et Opérations abstraites 03/11 64 /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
  • 96. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Pattern Composite... 03/11 70 /88
  • 97. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Anti-Patterns Blob ou la classe Dieu 03/11 71 /88
  • 98. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Anti-Patterns Blob ou la classe Dieu 03/11 71 /88
  • 99. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Anti-Patterns Blob ou la classe Dieu 03/11 71 /88
  • 100. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Anti-Patterns Blob ou la classe Dieu 03/11 71 /88
  • 101. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Anti-Patterns Blob ou la classe Dieu 03/11 71 /88
  • 102. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Anti-Patterns A Améliorer encore... 03/11 72 /88
  • 103. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Association... 03/11 73 /88
  • 104. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Association... 03/11 74 /88
  • 105. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Association: De la conception à l’implémentation 03/11 75 /88
  • 106. D’un modèle à classes au modèle relationnel 76
  • 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
  • 113. Pattern méta. Packages Itérations Séquences Archi. Classes. BD. Classes… Identification des clefs Identifiant généré 03/11 80 /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

  1. \n
  2. \n
  3. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  4. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\n
  5. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\n
  6. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\n
  7. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nPenser &amp;#xE0; ajouter un numero au livre physique pour le g&amp;#xE9;rer dans la biblioth&amp;#xE8;que alors qu&amp;#x2019;il est omis dans l&amp;#x2019;&amp;#xE9;nonc&amp;#xE9;.\n\n\n\n
  8. \n
  9. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  10. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  11. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  12. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  13. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  14. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  15. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  16. Un vol g&amp;#xE9;n&amp;#xE9;rique peut exister par lui meme pas le vol.\n
  17. Un vol g&amp;#xE9;n&amp;#xE9;rique peut exister par lui meme pas le vol.\n
  18. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  19. p90 de UML 2 par la pratique \nEs-ce le coup de l&amp;#x2019;anti pattern?\n\nOn ne parle pas des m&amp;#xEA;mes vols dans les deux questions\n\n
  20. \n
  21. \n
  22. je stoppe car j&amp;#x2019;en ai marre mais cela pourrait etre r&amp;#xE9;utilis&amp;#xE9; p 121 de l&amp;#x2019;edition 7\n\n\n
  23. \n
  24. \n
  25. je stoppe car j&amp;#x2019;en ai marre mais cela pourrait etre r&amp;#xE9;utilis&amp;#xE9; p 121 de l&amp;#x2019;edition 7\n\n\n
  26. \n
  27. \n
  28. \n
  29. \n
  30. Les messages sont num&amp;#xE9;rot&amp;#xE9;s s&amp;#xE9;quentiellement, &amp;#xE0; partir de un. Si un mes- \nsage est envoy&amp;#xE9; alors que le traitement du pr&amp;#xE9;c&amp;#xE9;dent n&amp;#x2019;est pas termin&amp;#xE9;, il \nest possible d&amp;#x2019;utiliser une num&amp;#xE9;ration compos&amp;#xE9;e (voir figure 5.3) o&amp;#xF9; l&amp;#x2019;envoi \ndu message 2 intervient pendant l&amp;#x2019;ex&amp;#xE9;cution du message 1. \n\n
  31. Les messages sont num&amp;#xE9;rot&amp;#xE9;s s&amp;#xE9;quentiellement, &amp;#xE0; partir de un. Si un mes- \nsage est envoy&amp;#xE9; alors que le traitement du pr&amp;#xE9;c&amp;#xE9;dent n&amp;#x2019;est pas termin&amp;#xE9;, il \nest possible d&amp;#x2019;utiliser une num&amp;#xE9;ration compos&amp;#xE9;e (voir figure 5.3) o&amp;#xF9; l&amp;#x2019;envoi \ndu message 2 intervient pendant l&amp;#x2019;ex&amp;#xE9;cution du message 1. \n\n
  32. Les messages sont num&amp;#xE9;rot&amp;#xE9;s s&amp;#xE9;quentiellement, &amp;#xE0; partir de un. Si un mes- \nsage est envoy&amp;#xE9; alors que le traitement du pr&amp;#xE9;c&amp;#xE9;dent n&amp;#x2019;est pas termin&amp;#xE9;, il \nest possible d&amp;#x2019;utiliser une num&amp;#xE9;ration compos&amp;#xE9;e (voir figure 5.3) o&amp;#xF9; l&amp;#x2019;envoi \ndu message 2 intervient pendant l&amp;#x2019;ex&amp;#xE9;cution du message 1. \n\n
  33. Les messages sont num&amp;#xE9;rot&amp;#xE9;s s&amp;#xE9;quentiellement, &amp;#xE0; partir de un. Si un mes- \nsage est envoy&amp;#xE9; alors que le traitement du pr&amp;#xE9;c&amp;#xE9;dent n&amp;#x2019;est pas termin&amp;#xE9;, il \nest possible d&amp;#x2019;utiliser une num&amp;#xE9;ration compos&amp;#xE9;e (voir figure 5.3) o&amp;#xF9; l&amp;#x2019;envoi \ndu message 2 intervient pendant l&amp;#x2019;ex&amp;#xE9;cution du message 1. \n\n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. je stoppe car j&amp;#x2019;en ai marre mais cela pourrait etre r&amp;#xE9;utilis&amp;#xE9; p 121 de l&amp;#x2019;edition 7\n\n\n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. Les objets sont repr&amp;#xE9;sent&amp;#xE9;s par des barres verticales au dessus desquelles figure l&amp;#x2019;objet et sa classe d&amp;#x2019;appartenance (m&amp;#xEA;me formalisme que dans les diagrammes d&amp;#x2019;objets). Le nom de la classe ou de l&amp;#x2019;objet peut &amp;#xEA;tre omis.\nLes messages entre objets sont repr&amp;#xE9;sent&amp;#xE9;s par des fl&amp;#xEA;ches partant d&amp;#x2019;un objet et arrivant &amp;#xE0; un autre objet.\n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. Classe et associations : mieux que les types non primitifs\n\n
  85. En termes d&amp;#x2019;analyse, indique seulement une contrainte entre valeurs et non une indication de ce qui doit &amp;#xEA;tre calcul&amp;#xE9; et ce qui doit &amp;#xEA;tre m&amp;#xE9;moris&amp;#xE9; \n
  86. Les objets sont repr&amp;#xE9;sent&amp;#xE9;s par un rectangle, avec leur nom suivi de : puis le nom de leur classe, le tout soulign&amp;#xE9;. Les objets, instances des classes, sont manipul&amp;#xE9;s dans les &amp;#xAB;collaboration diagramm&amp;#xBB;\nLes classes d&apos;objets, ou plus simplement classes, poss&amp;#xE8;dent des attributs et des op&amp;#xE9;rations. Les attributs peuvent avoir un type et une valeur par d&amp;#xE9;faut. Les op&amp;#xE9;rations peuvent avoir des param&amp;#xE8;tres, typ&amp;#xE9;s ou non, et une valeur de retour.\n\nDans un souci de clart&amp;#xE9; des diagrammes, on peut consid&amp;#xE9;rer que telle ou telle information n&apos;est pas importante &amp;#xE0; ce niveau de l&apos;analyse et donc d&amp;#xE9;cider de ne pas la faire appara&amp;#xEE;tre.\nPour la m&amp;#xEA;me raison, les zones des attributs et des op&amp;#xE9;rations sont optionnelles.\nUne ellipse &amp;#xE0; la fin d&amp;#x2019;une liste d&amp;#x2019;attributs ou d&amp;#x2019;op&amp;#xE9;rations signifie qu&amp;#x2019;il existe d&amp;#x2019;autres &amp;#xE9;l&amp;#xE9;ments dans le mod&amp;#xE8;le, mais qu&amp;#x2019;ils d&amp;#xE9;pendent de crit&amp;#xE8;res de s&amp;#xE9;lection qui ne les font pas appara&amp;#xEE;tre.\n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. revoir dans le livre UML2 par la pratique : p95 le d&amp;#xE9;coupage en package; r&amp;#xE9;duction du couplage, y compris p101, r&amp;#xE9;duction et couplage\n
  96. Trois visibilit&amp;#xE9;s sont disponibles pour les attributs et op&amp;#xE9;rations d&apos;une classe (pas sur les relations) :\nPublic : accessible pour tout utilisateur d&amp;#x2019;une classe, y compris la classe elle-m&amp;#xEA;me.\nProt&amp;#xE9;g&amp;#xE9; : accessible seulement par la classe elle-m&amp;#xEA;me, et par ses h&amp;#xE9;ritiers.\nPriv&amp;#xE9; : accessible seulement par la classe elle-m&amp;#xEA;me.\nLes visibilit&amp;#xE9;s sont fondamentales en phase de conception technique.\n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. MERISE ET UML: APPROCHE SYSTEMIQUE \n MERISE UML \nLa m&amp;#xE9;thode MERISE s&apos;int&amp;#xE9;resse aux syst&amp;#xE8;mes ouverts en \nrelation permanente avec leur environnement ( &amp;#xE0; partir du \nniveau 3. Cf. Cours de syst&amp;#xE9;mique ). Trois propri&amp;#xE9;t&amp;#xE9;s \nmajeures sont alors consid&amp;#xE9;r&amp;#xE9;es. \n\nGLOBALITE \nContrairement au mod&amp;#xE8;le Cart&amp;#xE9;sien, le comportement d&apos;un \nsyst&amp;#xE8;me n&apos;est pas la somme des comportements de ses \nparties \n\nRETROACTION \nLe syst&amp;#xE8;me r&amp;#xE9;agit &amp;#xE0; toute stimulation en g&amp;#xE9;n&amp;#xE9;rant des \nr&amp;#xE9;sultats selon des boucles d&apos;actions-r&amp;#xE9;actions mises en \noeuvre au sein de ses composants. ( feed-back d&apos;ordre 3 ) \n\nFINALITE \nLe syst&amp;#xE8;me ne peut &amp;#xEA;tre stabilis&amp;#xE9; que si on lui fournit des \nvaleurs acceptables pr&amp;#xE9;alablement d&amp;#xE9;finies. \n\nL&apos;APPROCHE UML \nL&apos;approche par les CAS D&apos;UTILISATION constitue de fait une \napproche SYSTEMIQUE. Les ACTEURS et les MESSAGES \n&amp;#xE9;chang&amp;#xE9;s sont pris en compte. \n\nCOMMENTAIRES \nLa Ma&amp;#xEE;trise des concepts de la syst&amp;#xE9;mique \n ( ENVIRONNEMENT, ENTREES, SORTIES, OBJECTIFS, \nSTRUCTURE et PROCESSUS ) permet de r&amp;#xE9;aliser une \napproche constructive et consciente des cas d&apos;utilisation. Elle \nfacilite la d&amp;#xE9;termination des CAS D&apos;UTILISATION selon un \ndouble process TOP-DOWN et BOTTOM-UP. L&apos;avantage est \nque le PROCESSUS m&amp;#xE9;tier du syst&amp;#xE8;me est mieux d&amp;#xE9;crit et \nplus compr&amp;#xE9;hensible par les utilisateurs. \n\nFINALITES:Raisons d&apos;&amp;#xEA;tre, vocation d&apos;un syst&amp;#xE8;me. Se d&amp;#xE9;clinent et se formalisent en BUTS. Elles ne sont pas op&amp;#xE9;ratoires. ( Cf. FACTEURS ). Par \nexemple: &quot;Recentrer l&apos;activit&amp;#xE9; de l&apos;entreprise sur son m&amp;#xE9;tier de base qui est la vente de contrats d&apos;assurances&quot;. \n\nBUT:Formalisation des FINALITES. Elles se d&amp;#xE9;clinent en OBJECTIFS qui eux, doivent &amp;#xEA;tre op&amp;#xE9;ratoires. ( Cf. CRITERES ). Par exemple: &quot;Recentrer \nles r&amp;#xE9;sultats de la compagnie sur les primes d&apos;assurances plut&amp;#xF4;t que sur les march&amp;#xE9;s financiers&quot; \n\nOBJECTIFS:Concr&amp;#xE9;tisation des BUTS sur la base de crit&amp;#xE8;res d&apos;&amp;#xE9;valuations auxquels sont affect&amp;#xE9;s des niveaux quantifi&amp;#xE9;s &amp;#xE0; atteindre. ( Cf. \nMETRIQUES ). Par exemple: &quot;Les cotisations d&apos;assurances doivent contribuer &amp;#xE0; 60% du r&amp;#xE9;sultat de la compagnie &quot;. \n\nACTEURS:Classe st&amp;#xE9;rotyp&amp;#xE9;e repr&amp;#xE9;sentant une abstraction faisant partie de l&apos;ENVIRONNEMENT du syst&amp;#xE8;me &amp;#xE9;tudi&amp;#xE9;. \nOSITEC-Consultants 40/45 18/03/2005\n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. Les carr&amp;#xE9;s et les cercles ont toutes les propri&amp;#xE9;t&amp;#xE9;s des objets graphiques, cependant une forme graphique est obligatoirement un carr&amp;#xE9; ou un cercle.\nLe mot clef abstract entre accolades indique graphiquement qu&amp;#x2019;une classe est abstraite.\n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. Le calcul de la surface d&amp;#x2019;une forme graphique n&amp;#xE9;cessite de conna&amp;#xEE;tre sa nature exacte car la formule de calcul va d&amp;#xE9;pendre de cette nature (L2 pour un carr&amp;#xE9;, &amp;#x3A0;xR2 pour un cercle). Cependant on sait calculer la surface de toute forme graphique.\nLe mot clef abstract entre accolades indique graphiquement qu&amp;#x2019;une op&amp;#xE9;ration est abstraite.\n
  127. \n
  128. \n
  129. Les intervalles sur les cardinalit&amp;#xE9;s exprime le domaine des valeurs admises pour une relation. Il est pr&amp;#xE9;f&amp;#xE9;rable qu&amp;#x2019;il soient ordonn&amp;#xE9;s.1..4,7,10 est pr&amp;#xE9;f&amp;#xE9;rable &amp;#xE0; 7,1..4,10.\nLa contrainte {or} sur les relations exprime qu&amp;#x2019;une seule des deux relations sera instanci&amp;#xE9;e sur l&amp;#x2019;objet Compte en effet un compte est soit celui d&amp;#x2019;une Societe soit celui d&amp;#x2019;un particulier.\nLes templates ou classes g&amp;#xE9;n&amp;#xE9;riques expriment leurs param&amp;#xE8;tres formles non born&amp;#xE9;s &amp;#xE0; travers un rectangle pointill&amp;#xE9; situ&amp;#xE9; en haut et &amp;#xE0; gauche de la classe.\n
  130. \n
  131. \n
  132. \n
  133. MERISE ET UML: APPROCHE SYSTEMIQUE \n MERISE UML \nLa m&amp;#xE9;thode MERISE s&apos;int&amp;#xE9;resse aux syst&amp;#xE8;mes ouverts en \nrelation permanente avec leur environnement ( &amp;#xE0; partir du \nniveau 3. Cf. Cours de syst&amp;#xE9;mique ). Trois propri&amp;#xE9;t&amp;#xE9;s \nmajeures sont alors consid&amp;#xE9;r&amp;#xE9;es. \n\nGLOBALITE \nContrairement au mod&amp;#xE8;le Cart&amp;#xE9;sien, le comportement d&apos;un \nsyst&amp;#xE8;me n&apos;est pas la somme des comportements de ses \nparties \n\nRETROACTION \nLe syst&amp;#xE8;me r&amp;#xE9;agit &amp;#xE0; toute stimulation en g&amp;#xE9;n&amp;#xE9;rant des \nr&amp;#xE9;sultats selon des boucles d&apos;actions-r&amp;#xE9;actions mises en \noeuvre au sein de ses composants. ( feed-back d&apos;ordre 3 ) \n\nFINALITE \nLe syst&amp;#xE8;me ne peut &amp;#xEA;tre stabilis&amp;#xE9; que si on lui fournit des \nvaleurs acceptables pr&amp;#xE9;alablement d&amp;#xE9;finies. \n\nL&apos;APPROCHE UML \nL&apos;approche par les CAS D&apos;UTILISATION constitue de fait une \napproche SYSTEMIQUE. Les ACTEURS et les MESSAGES \n&amp;#xE9;chang&amp;#xE9;s sont pris en compte. \n\nCOMMENTAIRES \nLa Ma&amp;#xEE;trise des concepts de la syst&amp;#xE9;mique \n ( ENVIRONNEMENT, ENTREES, SORTIES, OBJECTIFS, \nSTRUCTURE et PROCESSUS ) permet de r&amp;#xE9;aliser une \napproche constructive et consciente des cas d&apos;utilisation. Elle \nfacilite la d&amp;#xE9;termination des CAS D&apos;UTILISATION selon un \ndouble process TOP-DOWN et BOTTOM-UP. L&apos;avantage est \nque le PROCESSUS m&amp;#xE9;tier du syst&amp;#xE8;me est mieux d&amp;#xE9;crit et \nplus compr&amp;#xE9;hensible par les utilisateurs. \n\nFINALITES:Raisons d&apos;&amp;#xEA;tre, vocation d&apos;un syst&amp;#xE8;me. Se d&amp;#xE9;clinent et se formalisent en BUTS. Elles ne sont pas op&amp;#xE9;ratoires. ( Cf. FACTEURS ). Par \nexemple: &quot;Recentrer l&apos;activit&amp;#xE9; de l&apos;entreprise sur son m&amp;#xE9;tier de base qui est la vente de contrats d&apos;assurances&quot;. \n\nBUT:Formalisation des FINALITES. Elles se d&amp;#xE9;clinent en OBJECTIFS qui eux, doivent &amp;#xEA;tre op&amp;#xE9;ratoires. ( Cf. CRITERES ). Par exemple: &quot;Recentrer \nles r&amp;#xE9;sultats de la compagnie sur les primes d&apos;assurances plut&amp;#xF4;t que sur les march&amp;#xE9;s financiers&quot; \n\nOBJECTIFS:Concr&amp;#xE9;tisation des BUTS sur la base de crit&amp;#xE8;res d&apos;&amp;#xE9;valuations auxquels sont affect&amp;#xE9;s des niveaux quantifi&amp;#xE9;s &amp;#xE0; atteindre. ( Cf. \nMETRIQUES ). Par exemple: &quot;Les cotisations d&apos;assurances doivent contribuer &amp;#xE0; 60% du r&amp;#xE9;sultat de la compagnie &quot;. \n\nACTEURS:Classe st&amp;#xE9;rotyp&amp;#xE9;e repr&amp;#xE9;sentant une abstraction faisant partie de l&apos;ENVIRONNEMENT du syst&amp;#xE8;me &amp;#xE9;tudi&amp;#xE9;. \nOSITEC-Consultants 40/45 18/03/2005\n
  134. \n
  135. \n
  136. These buttons are different in terms of structure, behavior, or interface\n
  137. These buttons are all the same -- they differ only in context, not in structure, behavior, or interface\n
  138. These buttons are all the same -- they differ only in context, not in structure, behavior, or interface\n
  139. Most often, subclasses are extended and specialized at the same time\n
  140. \n
  141. D&amp;#xE9;finition du mot BLOB, Binary Large Object, soit un &amp;#xAB;&amp;#xA0;grand objet binaire&amp;#xA0;&amp;#xBB;, souvent audio ou vid&amp;#xE9;o, qui peut peser jusqu&apos;&amp;#xE0; plusieurs Go. D&amp;#xE9;signe &amp;#xE9;galement un objet 3D produit par les alt&amp;#xE9;rations structurelles de plusieurs sph&amp;#xE8;res rentrant en contact&amp;#xA0;\n
  142. D&amp;#xE9;finition du mot BLOB, Binary Large Object, soit un &amp;#xAB;&amp;#xA0;grand objet binaire&amp;#xA0;&amp;#xBB;, souvent audio ou vid&amp;#xE9;o, qui peut peser jusqu&apos;&amp;#xE0; plusieurs Go. D&amp;#xE9;signe &amp;#xE9;galement un objet 3D produit par les alt&amp;#xE9;rations structurelles de plusieurs sph&amp;#xE8;res rentrant en contact&amp;#xA0;\n
  143. D&amp;#xE9;finition du mot BLOB, Binary Large Object, soit un &amp;#xAB;&amp;#xA0;grand objet binaire&amp;#xA0;&amp;#xBB;, souvent audio ou vid&amp;#xE9;o, qui peut peser jusqu&apos;&amp;#xE0; plusieurs Go. D&amp;#xE9;signe &amp;#xE9;galement un objet 3D produit par les alt&amp;#xE9;rations structurelles de plusieurs sph&amp;#xE8;res rentrant en contact&amp;#xA0;\n
  144. D&amp;#xE9;finition du mot BLOB, Binary Large Object, soit un &amp;#xAB;&amp;#xA0;grand objet binaire&amp;#xA0;&amp;#xBB;, souvent audio ou vid&amp;#xE9;o, qui peut peser jusqu&apos;&amp;#xE0; plusieurs Go. D&amp;#xE9;signe &amp;#xE9;galement un objet 3D produit par les alt&amp;#xE9;rations structurelles de plusieurs sph&amp;#xE8;res rentrant en contact&amp;#xA0;\n
  145. D&amp;#xE9;finition du mot BLOB, Binary Large Object, soit un &amp;#xAB;&amp;#xA0;grand objet binaire&amp;#xA0;&amp;#xBB;, souvent audio ou vid&amp;#xE9;o, qui peut peser jusqu&apos;&amp;#xE0; plusieurs Go. D&amp;#xE9;signe &amp;#xE9;galement un objet 3D produit par les alt&amp;#xE9;rations structurelles de plusieurs sph&amp;#xE8;res rentrant en contact&amp;#xA0;\n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. http://www4.utc.fr/~nf17/DOCS/modules/01/\n\n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. 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&apos;s health plan is identifying. A dependent must &quot;belong&quot; 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
  161. 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&apos;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 &quot;Union Employee&amp;#x201D;, a &quot;Non-Union Employee&amp;#x201D;, and &quot;Management&quot;.\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
  162. \n
  163. \n
  164. 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&amp;#xE8;re g&amp;#xE9;n&amp;#xE9;rale il convient de limiter les clefs compos&amp;#xE9;es. Chaque fois que l&apos;on aura le choix entre la cr&amp;#xE9;ation d&apos;une clef num&amp;#xE9;rique, et une clef naturelle mais compos&amp;#xE9;e, il sera pr&amp;#xE9;f&amp;#xE9;rable de cr&amp;#xE9;er une clef num&amp;#xE9;rique, &amp;#xE0; de tr&amp;#xE8;s rares exceptions pr&amp;#xE8;s.\nEn effet les SGBDR sont plus &amp;#xAB; &amp;#xE0; l&amp;#x2019;aise &amp;#xBB; lorsqu&amp;#x2019;ils ont &amp;#xE0; manipuler des clefs purement num&amp;#xE9;rique. De plus une clef est un concept purement informatique.\nPar exemple le n&amp;#xB0; de s&amp;#xE9;curit&amp;#xE9; sociale est une mauvaise clef en g&amp;#xE9;n&amp;#xE9;rale : un individu &amp;#xE9;tranger qui arrive sur le sol fran&amp;#xE7;ais est dot&amp;#xE9; d&amp;#x2019;une immatriculation provisoire et ne conna&amp;#xEE;t son num&amp;#xE9;ro d&amp;#xE9;finitif que plusieurs mois apr&amp;#xE8;s avoir rempli les conditions requises par l&amp;#x2019;administration.\nPar exemple l&amp;#x2019;immatriculation d&amp;#x2019;un v&amp;#xE9;hicule est une mauvaise clef : en effet, du fait de la fiscalit&amp;#xE9; sur les v&amp;#xE9;hicules &amp;#xE0; moteur (et en particulier les vignettes), les soci&amp;#xE9;t&amp;#xE9;s n&amp;#x2019;h&amp;#xE9;sitent pas &amp;#xE0; faire immatriculer leur parc de v&amp;#xE9;hicules dans le d&amp;#xE9;partement o&amp;#xF9; les taxes sont les moins &amp;#xE9;lev&amp;#xE9;es (le 51). Cette immatriculation peut donc &amp;#xEA;tre amen&amp;#xE9;e &amp;#xE0; changer.\nOr toute clef &amp;#xE9;volutive est un danger pour le syst&amp;#xE8;me informatique : si la valeur de la clef change, nous verrons qu&amp;#x2019;il faut la modifier dans tous les fichiers dans laquelle elle est r&amp;#xE9;f&amp;#xE9;renc&amp;#xE9;e. Il est vrai que certains SGBDR autorise automatiquement ce genre de man&amp;#x153;uvre, mais cette automatisation tr&amp;#xE8;s contraignante p&amp;#xE9;nalise lourdement le fonctionnement du SGBDR.\nOn veillera donc &amp;#xE0; prendre une clef totalement ind&amp;#xE9;pendante des attributs ordinaires de l&amp;#x2019;entit&amp;#xE9;.\nDe plus une clef a int&amp;#xE9;r&amp;#xEA;t &amp;#xE0; &amp;#xEA;tre la plus courte possible afin que son stockage soit limit&amp;#xE9; &amp;#xE0; quelques octets dans les fichiers et donc le temps de recherche le plus rapide possible.\n\nLe plus simple consiste donc &amp;#xE0; introduire dans le descriptif de l&amp;#x2019;entit&amp;#xE9; une clef strictement &amp;#xAB; informatique &amp;#xBB; qui se r&amp;#xE9;sumera en g&amp;#xE9;n&amp;#xE9;ral &amp;#xE0; un num&amp;#xE9;ro (entier long) que l&amp;#x2019;on pourra incr&amp;#xE9;menter automatiquement.\n\nParfois, il arrive qu&amp;#x2019;une clef ait &amp;#xE9;t&amp;#xE9; cr&amp;#xE9;&amp;#xE9;e sp&amp;#xE9;cifiquement pour les besoins des syst&amp;#xE8;mes informatiques. C&amp;#x2019;est en particulier le cas des indicatifs t&amp;#xE9;l&amp;#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&amp;#x2019;entit&amp;#xE9;.\n\n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. Personne contient les personnes qui ne sont ni etudiant ni enseignant\n
  173. 132 &amp;#xA9; &amp;#xC9;ditions Eyrolles \nS&amp;#x2019;il existe une contrainte de totalit&amp;#xE9; ou de partition sur l&amp;#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&amp;#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 &amp;#xA9; &amp;#xC9;ditions Eyrolles \nL&amp;#x2019;exemple 2-33 d&amp;#xE9;crit une contrainte de partition dans l&amp;#x2019;association d&amp;#x2019;h&amp;#xE9;ritage (aucun personnel \nne peut &amp;#xEA;tre &amp;#xE0; la fois PNT et PNC et il n&amp;#x2019;existe pas un personnel n&amp;#x2019;&amp;#xE9;tant ni PNT ni PNC). Les \ndeux relations h&amp;#xE9;ritent du contenu int&amp;#xE9;gral de la relation issue de la sur-classe (Personnel). \nLa relation Personnel n&amp;#x2019;appara&amp;#xEE;t plus au niveau logique et n&amp;#x2019;est pas n&amp;#xE9;cessaire, car aucun \n\n
  174. 132 &amp;#xA9; &amp;#xC9;ditions Eyrolles \nS&amp;#x2019;il existe une contrainte de totalit&amp;#xE9; ou de partition sur l&amp;#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&amp;#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 &amp;#xA9; &amp;#xC9;ditions Eyrolles \nL&amp;#x2019;exemple 2-33 d&amp;#xE9;crit une contrainte de partition dans l&amp;#x2019;association d&amp;#x2019;h&amp;#xE9;ritage (aucun personnel \nne peut &amp;#xEA;tre &amp;#xE0; la fois PNT et PNC et il n&amp;#x2019;existe pas un personnel n&amp;#x2019;&amp;#xE9;tant ni PNT ni PNC). Les \ndeux relations h&amp;#xE9;ritent du contenu int&amp;#xE9;gral de la relation issue de la sur-classe (Personnel). \nLa relation Personnel n&amp;#x2019;appara&amp;#xEE;t plus au niveau logique et n&amp;#x2019;est pas n&amp;#xE9;cessaire, car aucun \n\n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. 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 &amp;#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
  185. Once the system&amp;#x2019;s external environment is defined, the analyst must identify key objects and classes and their relationships. \n
  186. Used to gain a first-cut object list. Identify the nouns then evaluate them as a potential objects. \n
  187. \n
  188. \n
  189. \n
  190. Transactions are finite instances of associations between objects. For example: bus messages and queued data \n
  191. \n
  192. \n
  193. These scenarios map to the use cases that these objects will collaborate to realize\n
  194. \n
  195. \n
  196. Trois visibilit&amp;#xE9;s sont disponibles pour les attributs et op&amp;#xE9;rations d&apos;une classe (pas sur les relations) :\nPublic : accessible pour tout utilisateur d&amp;#x2019;une classe, y compris la classe elle-m&amp;#xEA;me.\nProt&amp;#xE9;g&amp;#xE9; : accessible seulement par la classe elle-m&amp;#xEA;me, et par ses h&amp;#xE9;ritiers.\nPriv&amp;#xE9; : accessible seulement par la classe elle-m&amp;#xEA;me.\nLes visibilit&amp;#xE9;s sont fondamentales en phase de conception technique.\n
  197. \n
  198. \n
  199. \n
  200. MERISE ET UML: APPROCHE SYSTEMIQUE \n MERISE UML \nLa m&amp;#xE9;thode MERISE s&apos;int&amp;#xE9;resse aux syst&amp;#xE8;mes ouverts en \nrelation permanente avec leur environnement ( &amp;#xE0; partir du \nniveau 3. Cf. Cours de syst&amp;#xE9;mique ). Trois propri&amp;#xE9;t&amp;#xE9;s \nmajeures sont alors consid&amp;#xE9;r&amp;#xE9;es. \n\nGLOBALITE \nContrairement au mod&amp;#xE8;le Cart&amp;#xE9;sien, le comportement d&apos;un \nsyst&amp;#xE8;me n&apos;est pas la somme des comportements de ses \nparties \n\nRETROACTION \nLe syst&amp;#xE8;me r&amp;#xE9;agit &amp;#xE0; toute stimulation en g&amp;#xE9;n&amp;#xE9;rant des \nr&amp;#xE9;sultats selon des boucles d&apos;actions-r&amp;#xE9;actions mises en \noeuvre au sein de ses composants. ( feed-back d&apos;ordre 3 ) \n\nFINALITE \nLe syst&amp;#xE8;me ne peut &amp;#xEA;tre stabilis&amp;#xE9; que si on lui fournit des \nvaleurs acceptables pr&amp;#xE9;alablement d&amp;#xE9;finies. \n\nL&apos;APPROCHE UML \nL&apos;approche par les CAS D&apos;UTILISATION constitue de fait une \napproche SYSTEMIQUE. Les ACTEURS et les MESSAGES \n&amp;#xE9;chang&amp;#xE9;s sont pris en compte. \n\nCOMMENTAIRES \nLa Ma&amp;#xEE;trise des concepts de la syst&amp;#xE9;mique \n ( ENVIRONNEMENT, ENTREES, SORTIES, OBJECTIFS, \nSTRUCTURE et PROCESSUS ) permet de r&amp;#xE9;aliser une \napproche constructive et consciente des cas d&apos;utilisation. Elle \nfacilite la d&amp;#xE9;termination des CAS D&apos;UTILISATION selon un \ndouble process TOP-DOWN et BOTTOM-UP. L&apos;avantage est \nque le PROCESSUS m&amp;#xE9;tier du syst&amp;#xE8;me est mieux d&amp;#xE9;crit et \nplus compr&amp;#xE9;hensible par les utilisateurs. \n\nFINALITES:Raisons d&apos;&amp;#xEA;tre, vocation d&apos;un syst&amp;#xE8;me. Se d&amp;#xE9;clinent et se formalisent en BUTS. Elles ne sont pas op&amp;#xE9;ratoires. ( Cf. FACTEURS ). Par \nexemple: &quot;Recentrer l&apos;activit&amp;#xE9; de l&apos;entreprise sur son m&amp;#xE9;tier de base qui est la vente de contrats d&apos;assurances&quot;. \n\nBUT:Formalisation des FINALITES. Elles se d&amp;#xE9;clinent en OBJECTIFS qui eux, doivent &amp;#xEA;tre op&amp;#xE9;ratoires. ( Cf. CRITERES ). Par exemple: &quot;Recentrer \nles r&amp;#xE9;sultats de la compagnie sur les primes d&apos;assurances plut&amp;#xF4;t que sur les march&amp;#xE9;s financiers&quot; \n\nOBJECTIFS:Concr&amp;#xE9;tisation des BUTS sur la base de crit&amp;#xE8;res d&apos;&amp;#xE9;valuations auxquels sont affect&amp;#xE9;s des niveaux quantifi&amp;#xE9;s &amp;#xE0; atteindre. ( Cf. \nMETRIQUES ). Par exemple: &quot;Les cotisations d&apos;assurances doivent contribuer &amp;#xE0; 60% du r&amp;#xE9;sultat de la compagnie &quot;. \n\nACTEURS:Classe st&amp;#xE9;rotyp&amp;#xE9;e repr&amp;#xE9;sentant une abstraction faisant partie de l&apos;ENVIRONNEMENT du syst&amp;#xE8;me &amp;#xE9;tudi&amp;#xE9;. \nOSITEC-Consultants 40/45 18/03/2005\n
  201. \n
  202. Most often, subclasses are extended and specialized at the same time\n
  203. These buttons are different in terms of structure, behavior, or interface\n
  204. These buttons are all the same -- they differ only in context, not in structure, behavior, or interface\n
  205. \n
  206. \n
  207. \n
  208. \n
  209. \n
  210. \n
  211. Although signature gets the most attention, it is the easiest to get right &amp;#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 &amp;#x2013; pre-conditions as to units and ranges weren&amp;#x2019;t adhered to.\n
  212. How the sensor provides its services and it&amp;#x2019;s internal structure are hidden away behind the interface\n
  213. Attributes should generally not be directly accessible from outside the object\n
  214. container example: \n&quot;goto right branch &amp; goto left branch&quot;\nvs.\n&quot;get first &amp; get next&quot;\n
  215. \n
  216. \n
  217. \n
  218. \n
  219. \n
  220. \n
  221. Les carr&amp;#xE9;s et les cercles ont toutes les propri&amp;#xE9;t&amp;#xE9;s des objets graphiques, cependant une forme graphique est obligatoirement un carr&amp;#xE9; ou un cercle.\nLe mot clef abstract entre accolades indique graphiquement qu&amp;#x2019;une classe est abstraite.\n
  222. Le calcul de la surface d&amp;#x2019;une forme graphique n&amp;#xE9;cessite de conna&amp;#xEE;tre sa nature exacte car la formule de calcul va d&amp;#xE9;pendre de cette nature (L2 pour un carr&amp;#xE9;, &amp;#x3A0;xR2 pour un cercle). Cependant on sait calculer la surface de toute forme graphique.\nLe mot clef abstract entre accolades indique graphiquement qu&amp;#x2019;une op&amp;#xE9;ration est abstraite.\n
  223. \n
  224. Les intervalles sur les cardinalit&amp;#xE9;s exprime le domaine des valeurs admises pour une relation. Il est pr&amp;#xE9;f&amp;#xE9;rable qu&amp;#x2019;il soient ordonn&amp;#xE9;s.1..4,7,10 est pr&amp;#xE9;f&amp;#xE9;rable &amp;#xE0; 7,1..4,10.\nLa contrainte {or} sur les relations exprime qu&amp;#x2019;une seule des deux relations sera instanci&amp;#xE9;e sur l&amp;#x2019;objet Compte en effet un compte est soit celui d&amp;#x2019;une Societe soit celui d&amp;#x2019;un particulier.\nLes templates ou classes g&amp;#xE9;n&amp;#xE9;riques expriment leurs param&amp;#xE8;tres formles non born&amp;#xE9;s &amp;#xE0; travers un rectangle pointill&amp;#xE9; situ&amp;#xE9; en haut et &amp;#xE0; gauche de la classe.\n
  225. \n
  226. \n
  227. \n
  228. \n
  229. \n
  230. UML d&amp;#xE9;finit des st&amp;#xE9;r&amp;#xE9;otypes de base sur les &amp;#xE9;l&amp;#xE9;ments de mod&amp;#xE9;lisation tels que :\n&amp;#xAB;constructor&amp;#xBB; ou &amp;#xAB;destructor&amp;#xBB; qui permettent de &amp;#xAB;typer&amp;#xBB; certaines op&amp;#xE9;rations particuli&amp;#xE8;res.\n&amp;#xAB;utility&amp;#xBB; pour pr&amp;#xE9;ciser qu&amp;#x2019;une classe est une classe utilitaire d&amp;#x2019;un package.\n&amp;#xAB;event&amp;#xBB; pour pr&amp;#xE9;ciser qu&amp;#x2019;une classe est de type &amp;#xE9;v&amp;#xE9;nement.\n&amp;#xAB;actor&amp;#xBB; pour pr&amp;#xE9;ciser q&amp;#x2019;une classe est de type acteur.\n&amp;#xAB;extends&amp;#xBB; ou &amp;#xAB;uses&amp;#xBB; pour pr&amp;#xE9;ciserle type de relations entre uses-cases\n&amp;#xAB;friends&amp;#xBB; ou &amp;#xAB;instanciates&amp;#xBB; pour pr&amp;#xE9;ciser les liens d&amp;#x2019;utilisation entre classes\n&amp;#xAB;local&amp;#xBB;, &amp;#xAB;global&amp;#xBB;, &amp;#xAB;transient&amp;#xBB; ... pour qualifier des objets\n...\nLes st&amp;#xE9;r&amp;#xE9;otypes peuvent &amp;#xEA;tre hi&amp;#xE9;rarchiques. La hi&amp;#xE9;rarchie sera celle des classes du m&amp;#xE9;ta mod&amp;#xE8;les sur lesquelles, ils se basent.\n
  231. \n
  232. La notation utilis&amp;#xE9;e pour les notes est un rectangle corn&amp;#xE9; contenant du texte.\n
  233. \n
  234. \n
  235. \n
  236. \n
  237. \n
  238. \n
  239. \n
  240. \n
  241. \n
  242. \n
  243. \n
  244. \n
  245. \n
  246. \n
  247. \n
  248. A relay port is also referred to as a delegation port\n
  249. \n
  250. \n
  251. \n
  252. \n
  253. \n
  254. La destruction d&amp;#x2019;un resultat dans resultat a entraine la destruction du resultat dans resultat.\nOn ne peut pas l&amp;#x2019;exprimer &amp;#xE0; l&amp;#x2019;envers ??\n
  255. \n
  256. \n
  257. \n
  258. \n
  259. \n
  260. \n
  261. \n
  262. \n
  263. \n
  264. \n
  265. \n
  266. \n
  267. \n
  268. \n
  269. \n
  270. 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 &quot;no order records for active customers can be deleted,&quot; 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 &quot;free-standing&quot; 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
  271. \n
  272. 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
  273. \n
  274. 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
  275. 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&amp;#x2022; Separate Tables &amp;#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&amp;#x2022; Merge Supertype to Subtypes &amp;#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&amp;#x2022; Merge Subtypes to Supertype &amp;#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&amp;#x2022; Prompt for Each Super/Sub Group &amp;#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&amp;#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&amp;#x2018;_&amp;#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 (&amp;#x2018;_&amp;#x2019;).\n
  276. 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
  277. \n