Title: Les structures de donnes
1Les structures de données
La théorie sans la pratique est inutile la
pratique sans la théorie est aveugle. Immanuel
Kant
2Objectif de la séquence
- Compétence visée
- Pré-requis
- Être capable de lire la notation UML,
particulièrement le diagramme de classes, y
compris avec les éléments exotiques - Associations qualifiées, ternaires
- Dérivation
- Avoir compris les objectifs et contraintes de
larchitecture logique - FML-04, FML-08
Être capable de concevoir et documenter les
formats de structures de données
Durée de la séquence 1/2 h
3Contenu de la séquence
- Les structures de données
- La localisation des types
- La construction des types
- Les relations entre SD
4Les structures de données
1
- Origine des SD
- Conclusion pratique
- Formulation du type SD
- Visibilité de la SD
5Lorigine de la structure de données
- Les classes du modèle sémantique contiennent
des attributs - Cette liste dattributs pourrait être dérivée
sous deux formes - Des attributs attachés directement à la machine
- Il faudrait alors augmenter le nombre de
paramètres dans la signature des services - fin de passer linformation
- Une structure encapsulant lensemble des
attributs de la classe, et constituant lunique
attribut de la machine - Correspondant au flux
- La style darchitecture retenu opte pour la
deuxième solution - La structure de données est détachée de la
machine - Elle permet de construire les flux qui circulent
dans le système - Entrants ou sortants
6La formulation de la structure de données
- Syntaxe
- Cest un type au sens UML (data type, type
complexe) - Signification
- Les instances du type nont pas didentité
dobjet - Passage par valeur
- Possibilité
- Un type peut posséder des opérations (ex.
get , set , estVide ) - Les types peuvent référencer dautres types
- Quand un attribut a pour nature un type
- Les informations sont manipulées par la notation
pointée
7Les noms des types
- Convention
- Pour une MLM
- Le nom du type est le nom de lobjet métier,
préfixé par Info - Pour une MLO
- Le nom du type est le nom du cas dutilisation
(tel que repris par le nom de la machine),
préfixé par Info
On dit aussi "type Info"
8Lutilisation des types complexes
- La signature des services fait référence aux
types - Les services dune machine logique reçoivent le
flux sur lequel ils vont sexercer - La machine logique nest pas une classe dont les
instances possèdent implicitement leur
information - Elle fonctionne comme une machine à laquelle on
apporte une matière pour en obtenir un service - Cest la métaphore de notre architecture de
services - Larchitecture technique actuelle fonctionne de
la même façon - Le flux est reçu par le premier paramètre,
inscrit dans la signature du service - Si le service modifie linformation, le flux émis
est le résultat du service - Dans la signature, type du service
9Exemples
- Pour lobjet métier Sinistre
- La machine
- MSinistre
- Le type complexe
- InfoSinistre
Flux reçu
Flux émis
10Le lien avec les machines
- Le type décrivant la SD est relié à la machine en
tant quattribut - Cet attribut est public
- Il porte un nom générique sd
- Remarque sur la notation
- UML ne permet pas dassocier une classe et un
type par une dépendance
11La localisation des types
2
- Origine de la localisation des types
- Organisation des types
12La décision darchitecture pour les types Métier
- Nécessité découlant des choix darchitecture
logique - Le langage partagé par toutes les composantes
du système - La communication se fait, dans tout le système,
grâce aux types SD - nature des paramètres dans les services
- Toutes les parties du système doivent pouvoir
comprendre ce langage - Tous les types SD Métier sont concentrés dans
un unique paquetage Taxinomie - Au sein de la fabrique fUtilitaires
- Toutes les parties du système y ont accès
- Même la strate Présentation
- Cette solution est la plus simple, car les
ateliers de la strate Métier sont fermés on
ne peut pas y déposer les types - Ce choix résulte de la négociation logique /
technique
13La décision darchitecture pour les types Organi
sation
- Les machines logique Organisation possèdent,
également, une structure de données - Ce sont les données nécessaires au dialogue
- Par décision darchitecture, les ateliers
de la strate Organisation sont ouverts - Contrairement aux ateliers de la strate
Métier - La strate Présentation accède directement aux
MLO - Conséquence
- Le type SD reste avec la MLO
- À lintérieur de latelier logique
Organisation
14Lorganisation des types
- Par commodité, le paquetage Taxinomie se
décompose en sous-paquetages - Un par fabrique logique
- Si besoin, possibilité de sous-paquetages plus
fins - Mais sans reproduire toute la structure de
larchitecture logique - Ce serait une redondance structurelle
- Pas dimpératif technique uniquement question
de commodité - Aucune limite de volume indiquée par
larchitecture technique - Critères pour décider
- Faisabilité et performance au niveau logiciel
- Commodité dans la manipulation du modèle
- Maîtrise de larchitecture
- Possibilité de réduire le couplage conceptuel
quand un point du système fonctionne en
connaissant moins de types
15La construction des types
3
- Passage de la sémantique aux structures
de données - Les règles de déduction
- Exemple
- Les erreurs à éviter
16Le passage du sémantique aux SD
- Comment déterminer les types Info de la
strate Métier à partir du modèle sémantique ? - Pour une MLM
- La SD correspond à la liste des attributs de la
classe sémantique - Pour une MLO
- Cf. séquence FML-12
- Les questions qui se posent
- Les règles de nommage
- Cf. Convention de nommage , document OLQ-02x
- Associé au Dossier darchitecture de services
- Les frontières des types englobants
- /
17La question des frontières
- Lexemple
- Du point de vue sémantique comme du point de vue
de lutilisation - Linformation portant sur un sinistre couvre la
description des dommages - Si on parle des dommages, cest pour aborder la
couverture - La couverture fait sens comme une relation à une
garantie - Etc.
- Le problème
- Le type InfoSinistre doit-il recouvrir toutes
ces informations ?
18Les deux réponses possibles
- Option incorporation
- Lattribut de la SD est lui-même un type SD
- Dans InfoSinistre, il y a une liste de type
InfoDommage - Option référence
- Lattribut contient lidentifiant pour retrouver
lobjet distant - Dans IndoSinistre, lattribut idContrat
Incorporation
Référence
19La décision
- La décision respecte les limites des ateliers
- La SD ne peut englober que linformation des
objets qui appartiennent au même atelier - Les liens inter-ateliers ne peuvent se faire
que par référence - À lintérieur dun atelier
- Le type couvre plus ou moins le périmètre de
latelier - Prise en compte de critères de volume et de
dynamique - La décision sinscrit dans le type complexe
20Illustration autour de Sinistre
- Le diagramme de classes, dans le modèle sémantique
21Les types utilisés
- Dans latelier logique de la strate Métier
- aSinistre
22Résultats sur lexemple
- Les types déduits du diagramme de classes
- InfoSinistre
- /
- InfoDommage
- InfoDommageMateriel
- InfoDommageCorporel
- InfoCouverture
- Les types référencés
- InfoAdresse
- InfoObjet
- InfoContrat
23Les relations entre SD
4
- La représentation des relations entre les types
complexes - Les cas dhéritage
24Représentation
25Le recours à lhéritage
- Lhéritage est utilisé dans le modèle sémantique
- Pour construire des classifications
- Exemple Dommage ? Matériel, Corporel
- Au niveau logique
- On cherche à réduire le nombre de machines
logiques - Une seule machine élémentaire MDommage
- En revanche, entre les types, lhéritage est le
bienvenu - Pour ajuster la structure de données
26Lhéritage entre types SD exemple
Alors que
27Lexemple de Dommage
- Il ny a quune seule machine élémentaire
MDommage - La nature du flux est définie par le type le plus
générique
28Lhéritage et les SD
- Les cas dhéritage
- Reprise de lhéritage du modèle sémantique
- En plus compact, si possible
- Exemple InfoDommage, InfoObjet, InfoPersonne
- ? simplification de la signature des services
(polymorphisme) - Reproduction de la relation de généralisation
entre cas dutilisation - Exemple entre InfoDecrireSinistre et
InfoDeclarerSinistre - ? lIHM ninteragit quavec la première, sur
laquelle elle trouve tous les services de la
seconde - On ne répète pas les attributs sur les sous-types
29Les points particuliers
5
- La variable détat
- Les attributs dérivés
- La visibilité des attributs
- Les structures de données de la machine logique
30La variable détat
- Quand une machine logique possède un automate
à états, la valeur de létat courant est
véhiculée dans le type Info - Lattribut a toujours le même nom cdEtat
- Les valeurs sont traitées comme des codifications
- Chaîne de caractères
- Le type de codification renvoie à la machine
- Libellé du type État de la machine ltgt
- Cas des sous-états
- On ne conserve que les valeurs les plus profondes
- Cas des états concurrents
- La SD contient autant dattributs détats que de
régions concurrentes - Le nom de lattribut reprend le nom de la région
cdEtatltrégiongt
31Les attributs dérivés
- La classe sémantique peut contenir des attributs
dérivés - Informations résultant dun calcul
- Exemple de Sinistre
- Le tableau des coûts
- Que deviennent ces attributs sur les types
complexes, dans le modèle logique ? - La question se pose uniquement pour les attributs
publics de la classe sémantique - On nadmet pas dattributs dérivés sur les types
complexes - Ils représentent les flux et sont purement
passifs - Ils sont repris sous la forme dattributs
ordinaires - Leur valorisation est assurée par les services de
la machine - Normalement service générique demarrer
32La visibilité des attributs
- Les attributs du type complexe sont publics
- Le flux est destiné à être porté jusquà la
strate Présentation - Donc, à être publié
- Par exception, on peut admettre que le type
complexe véhicule des informations cachées - Des attributs privés
- Cas unique par souci doptimisation
- Pour que la machine puisse être une nouvelle fois
sollicitée sur le même objet métier , sans
avoir besoin de rechercher les informations
privées en tables - Rappel les instances des objets ne sont pas
persistantes, donc la machine ne peut pas
conserver les informations privées - La machine travaille sur le flux quelle reçoit
33Les structures de données de la machine logique
- On distingue, pour une machine logique, trois
structures de données - La structure apparente
- Attributs publics de la classe plus déventuelles
informations nécessaires pour lexploitation du
flux - Cest le flux qui circule dans le système et
travers les strates - La structure sous-jacente
- Les données disponibles pendant lexécution des
services de la ML - Conçues pour optimiser les traitements
- Exemple totaux calculés à la volée
- La structure persistante
- Les attributs conservés dune exécution à une
autre - Les informations de la base de données
34Le croisement entre visibilité et type
de structure
- Le type de structure
- Un même attribut peut appartenir à deux
structures - Il y a opposition entre apparent et sous-jacent
- Les deux caractéristiques, visibilité et type de
SD, sont irréductibles
35Récapitulatif des acquis
- Rappel de la compétence visée
- Notions clefs
- Lorigine des structures de données
- Leur lien avec les machines lattribut sd
- La localisation des types (Taxinomie)
- La construction des types
- Les relations entre SD
Être capable de concevoir et documenter
les formats de structures de données
Compétence Performance
36Exercices (a)
- Pour quelle raison a été créée la SD, dun point
de vue architecture logique ? - Comment est-elle représentée ?
- Quel est le lien entre la SD et lautomate
détats de la ML ? - Où sont stockées les SD ?
37Exercices (b)
- Quelles sont les différences entre incorporation
et référence dans la construction dune SD ? - Comment se retrouve lhéritage sémantique entre
classes au niveau SD ?
38Gamme opératoire
- Tâches du concepteur pour cette partie
- Dériver les listes dattributs des classes
sémantiques en structures de données - Structurer les types SD au sein du paquetage
Taxinomie - Structurer les types entre eux
- Décider entre incorporation et référence
Compétence Performance