FL-DF (FL Display Form): FL (in its default Linear Form): Person_from_a_legal_aspect Person_from_a_legal_aspect Man↙s £ s↘ Woman subtype: Woman ↓i ( Man instance: James_Bond, James_Bond exclusion: Woman ).
Legend. "-s→": subtype; "-i→": instance; "£": exclusion
QW (Question via Wooclap) "La RC de la page 1 du TD 1 ...".
Pour répondre aux questions précédentes (et donc pour décider d'une hiérarchie dans un(e) programme/BdD orienté(e)-objet), il faut généraliser. Pour cela, faites l'exercice suivant.
En supposant que les termes suivants de la liste ci-dessous soient des termes formels qui
réfèrent au sens le plus commun que ces mots ont en anglais,
veuillez les organiser
– en
FL (dans un graphe unique/connecté, pas via des parties séparées ;
faites bien attention à la syntaxe et à l'indentation ; n'utilisez pas FL-DF, c'est compliqué quand il y a
beaucoup de termes)
–
via toutes les relations possibles des types suivants :
subtype/supertype, type/instance, exclusion, ainsi que
actor (dans le sens de "a pour acteur" :
celui/celle qui "joue ce rôle").
Voici la liste (déjà organisée par blocs de termes ayant certains points communs,
pour vous faciliter la tâche; placez les termes un par un dans la hiérarchie de
sous-types, en commençant par le début; ensuite, occupez-vous des autres relations) :
Note: vous pouvez abrévier "subtype: " par "\." et "instance:" par "|.".
Aidez vous des conseils de la page suivante puis, une fois cet exercice terminé,
répondez aux questions de la page précédente.
Solutions.
Quelques règles importantes:
Modélisez - initialement dans le langage que vous souhaitez (UML, XML, C++, ...) -
le schéma d'une BDD (ou document) devant contenir seulement les types d'objets
suivants
(les noms - à utiliser - des types de concept commencent par une majuscule,
ceux des
types de relations sont en italique) :
Citez 4 problèmes conceptuels de cette modélisation en C++
et résolvez-les en C++ (ou autre langage statique et typé)
(attention, cet exercice est indépendant de celui ci-dessus) :
class HumanBeing { bool isMale ; } class Person : HumanBeing ; class Employee : Person ; class Company { Employee employee; }
Ce TD est poursuivi par ce TP sur organisation de types de concepts.