=Paper=
{{Paper
|id=Vol-547/paper-65
|storemode=property
|title=Approche pour la génération des Diagrammes UML à partir de l'Univers de Discours et l'ontologie de domaine
|pdfUrl=https://ceur-ws.org/Vol-547/hafiz.pdf
|volume=Vol-547
|dblpUrl=https://dblp.org/rec/conf/ciia/BekkiB09
}}
==Approche pour la génération des Diagrammes UML à partir de l'Univers de Discours et l'ontologie de domaine==
Approche pour la génération des Diagrammes UML à
partir de l’Univers de Discours et l'ontologie de domaine
Khadir Bekki1,Ghalem Belalem2
1 Département Informatique, Faculté des Sciences et Sciences de l’Ingénieur,
Université de Tiaret
Bekki_kh@Yahoo.fr
2 Département Informatique, Faculté des Sciences, Université d’Oran (Es-Sénia)
BP 1524, El M’Naouer, Oran, Algérie
Ghalem1dz@Yahoo.fr
Résumé. Aujourd’hui, le langage de modélisation unifié (UML) a été largement
accepté par l’industrie et s’est établi comme le langage commun pour l’analyse
et la conception en génie logiciel orienté objet. Néanmoins, il souffre de manque
d'outils et de syntaxe qui lui permettent de raffiner davantage la sémantique de
données à partir de l'univers de discours. Ce raffinement est maîtrisé dans la
méthode Niam (Nijssen Information Analysis Methodology), qui se base sur la
modélisation des systèmes d’informations à partir des exemples simples du do-
maine en utilisant une procedure appelée CSDP (Conceptual Schema and rela-
tional database Design Procedure). Afin de bénéficier de la puissance de cette
procédure pour l'élaboration de diagrammes UML sémantiquement plus expres-
sifs, on propose dans cet article, une adaptation de CSDP à la notation UML.
L’utilisation des ontologies dans le développement des systèmes d’informations
peut servir divers aspects. Elle permet d’optimiser l`analyse conceptuelle, de
minimiser l’intervention de l’expert de domaine, d’enrichir la conception,
d’éviter l’ambiguïté dans la spécification et de soutenir l'automatisation du pro-
cessus de vérification de la fiabilité des systèmes. Notre approche est consolidée
par l'utilisation de l'ontologie de domaine, afin de générer des diagrammes UML
sémantiquement riches.
Mots clés : CSDP, NIAM, Système d’information, UML, ORM, Ontologie.
1 Introduction
La capture des informations pose un problème dû essentiellement à l'hétéro-
généité des acteurs qui vont créer le système. Il fallait donc proposer une méthodolo-
gie qui permette une communicabilité importante et des facilités d’utilisation telles
que toutes les populations d’intervenants puissent se retrouver face à des mêmes
modèles dans un langage universel. Le seul moyen que tous les hommes aient en
commun c’est le langage naturel. Toute phrase peut se ramener à la forme sujet-
verbe-complement. Cette forme peut être facilement formulée par des prédicats binai-
res. Pour cela, Nijssen [3,13] a mis au point une méthode appelée Niam pour la cons-
truction de schémas conceptuels de base de données en utilisant le modèle relationnel
binaire. Son principe est d'exprimer ce que l'on veut à l`aide de phrases simples (indé-
composables) sans perte d'informations. Cette méthode a prouvé une puissance sé-
mantique dans la capture des données nécessaires à partir du domaine de l'U°D (Uni-
vers de Discours). L'un des facteurs de sa puissance est la possession d'une procédure
nommé CSDP permettant de passer des rapports de sortie et/ou formulaires d'entrée
en un schéma conceptuel [15]. Ce travail a pour objectif de proposer une démarche
nommée UDDPO (Uml Diagrams Design Procedure based Ontology) similaire à celle
de la procédure CSDP de Niam pour obtenir des modèles orientés objets d'UML
(diagramme de classes et diagramme d'objets) [1,2,11,14,16] à partir d'une partie de
l'U°D (tableaux, rapports,…), tout en bénéficiant de la puissance de cette procédure
dans le raffinement des modèles de structures d'UML.
2 Présentation de la CSDP
L'idée de base de la CSDP [15] est d’exprimer les concepts du schéma conceptuel
(SC) en phrases élémentaires du langage naturel. L'approche fondamentale est de
construire une conception incrémentale en commençant avec des exemples spécifi-
ques et puis suivre une procédure bien définie utilisant des diagrammes visuels signi-
ficatifs facilement peuplés pour des buts de validation. On obtient en dernier un
schéma conceptuel final de Niam. La CSDP est présentée comme une séquence de
neuf étapes:
1. Décomposer des exemples d'informations familiers en idées élémentaires et
appliquer des versifications de qualité.
2. Dessiner un premier brouillon du SC avec une vérification de population.
3. Eliminer les types d'entités en surplus et les rôles communs et identifier le types
d'idées dérivés.
4. Ajouter les contraintes d'unicité pour chaque type d'idée.
5. Vérifier que les types d'idées sont de (l'ordre droit).
6. Ajouter les contraintes de type d'entité, de totalité, de sous type et de fréquence
d'occurrence.
7. Vérifier que chaque entité peut être identifiée.
8. Ajouter des contraintes d'égalité, d'exclusion, de sous ensemble et d'autres
contraintes.
9. Vérifier que le schéma conceptuel est cohérent avec les exemples originaux, n'a
pas de redondance et complet.
La procédure débute avec l'analyse des exemples d'informations qui vont consti-
tuer les entrée au système d`information. Fondamentalement, les trois premières éta-
pes sont concernées par l`identification des types idées (stockées ou dérivées). Dans
les autres étapes, on ajoute les contraintes aux types d`idées stockées. Tout au long de
cette procédure des vérifications sont accomplies pour s'assurer qu'aucune erreur n'a
été faite.
3 Démarche UDDPO (Uml Diagram Design Procedure based
ontology)
La démarche proposée est inspirée de la procédure CSDP et basée sur un ensemble de
règles proposées dans les travaux de Halpin [4][5][6][7][8] et enrichie par l'utilisation
de l'ontologie de domaine.
3.1 Des exemples aux concepts élémentaires
Les Uses cases de la notation UML ont pour objectifs de modéliser un processus,
capter les différentes spécifications. D'une façon analogue à la CSDP, on commence
par les exemples familiers de l'univers de discours. Ces Data Uses cases peuvent être
souvent augmentés par des informations de différents types (tables, formes,
graphiques, diagrammes). Donc, cette étape consiste à la verbalisation de ces
exemples en phrases simples (idées élémentaires).
Tableau 1. Matrice de données brutes d’un exemple de listing d’un système d’information
Em- Dept Super- Fonction Situation N° Tel Année Nbre Allocat
ployé viseur familiale Ma- En- ($)
(Sit fam) riage fants
Jones D1 Fegan Chef. Serv. M 3715821 1964 2 1000
Mouvem. Prd
Edwards D1 Jones Acheteur C - - - -
Giles D2 Jones Vendeur M - 1975 - -
Fegan D2 * Chef Dept. M 3783437 1973 0 0
Commercial
N.B : « * » = ‘non-exitant’ « - » = ‘non enregsitré’
i) Résultats
Employé avec le nom ‘Jones’ travaille dans le département de code ‘D1’ ;
Employé avec le nom ‘Jones’ a une situation familiale de code ‘M’;
Employé avec le nom ‘Fegan’ est un superviseur de l’employé avec le nom ‘Jones’
Employé avec le nom ‘Edwards’ occupe la fonction 'acheteur'.
Employé avec le nom ‘Giles’ occupe la fonction 'vendeur'.
Employé avec le nom ‘Jones’occupe la fonction 'Chef de serv. mouvements produits'.
Employé avec le nom ‘Fegan’ occupe la fonction 'Chef de département commercial'
Le mariage de l'employé avec le nom 'Giles' était en ‘1975’.
Le superviseur avec le nom ‘Jones’ a le numéro de téléphone ‘3715821’
Le superviseur avec le nom ‘Jones’ a un nombre d'enfants égal à ‘2’
Chaque superviseur supervise au maximum deux employés.
ii) Vérification de qualité sur les idées élémentaires
La vérification consiste à se poser les questions suivantes :
Est-ce que les relations sont bien identifiées ? Est-ce que les relations peuvent être
divisées en idées plus petites sans perte d'informations ?
3.2 Premier brouillon élémentaire des diagrammes de classes et d’objets et de
cas d'utilisation
Cette étape consiste à dessiner un diagramme de classes à partir des relations élémen-
taires exprimées. Tout d'abord, on présente un diagramme d'occurrences à partir des
relations élémentaires (idée élémentaire) au sens de Niam [12,13,15], on aura le dia-
gramme d’occurrences suivant:
E m p lo y é D é p a r te m e n t.
A v e c n o m A v e c D e p t#
J o n e s D 1
E d w a r d s
G ile s D 2
F e g a n
C h e f D p t C o m D e p t#
N o m E m p lo y é
A c h e te u r
V e n d e u r
C h e f s e r v M v t
F o n c tio n
Fig. 1. Diagramme d’occurrences
Pour notre univers de discours, chaque employé a un et un seul nom, et chaque nom
de personne se réfère exactement un employé. Ce type de référence est représenté
dans le système de référence 1:1. Quand ce cas existe, on doit mettre le mode de réfé-
rence entre parenthèses à coté du nom du type d'entité. De la même façon avec les
autres idées , on aura les concepts suivants :
On reconnaît trois types d'objets. les entités sont les objets simples dans l'U°D. Les
étiquettes sont les objets lexicaux qui sont utilisées pur se référer aux entités. Dans
certains cas, on considère les objets et leurs relations comme des objets et on les ap-
pellera des objets composés.
O ccu p ée p ar o ccu p e T ra v a ille d a n s E m p lo y e u r D e p t
F o n c tio n E m p lo y é
E s t d é s ig n é e p a r A le n o m A le c o d e
E s t le c o d e d e
E s t la d e s ig n .d e E s t le n o m d e
E m p lo y é C o d e
D e s ig n
Fig. 2. Diagramme de schéma conceptuel correspondent en Niam
Pour représenter les diagrammes de classes et d'objets, on s'est basé sur un ensemble
de règles proposées dans [7,8]:
- Les classes utilisées pour illustrer les types d'entités (NO Lexical Object Type);
- Les objets pour illustrer les entités;
- Les associations pour illustrer les types d'idées;
- Les liens pour illustrer les idées;
- Les rôles en UML pour illustrer les rôles de point de vue Niam;
- Les attributs pour illustrer les types d'étiquettes (Lexical Object Type) en Niam;
Concernant le premier diagramme d'utilisation, on transforme les associations en cas
d'utilisation et les objets en acteurs.
On commence par présenter un diagramme d’objets pour les idées exprimées :
Vendeur:Fonction Giles:Employé
Superviseur
Chef serv Mvt:Fonction Jones:Employé D1:Dept
Superviseur
Acheteur:Fonction Edwards:Employé D2:Dept
Chef dpt Com:Fonction Fegan:Employé
Superviseur
Fig. 3. Diagramme d’objets d’UML
Le diagramme de classes déduit à partir du diagramme d’objets est représenté par
la figure suivante :
Dept
Employé
Code
Nom
Foncion
Design
Fig. 4. Diagramme de classes d’UML Fig. 5. Diagramme de cas d'utilisation
3.3 Arrangement des diagrammes et identification des attributs dérivés
Ayant dessiné notre premier brouillon du diagramme du schéma conceptuel et ac-
compli une vérification de population. Cette étape consiste à éliminer les associations
en surplus ou les rôles communs et identifier n'importe quelles attributs dérivés. Dans
cette étape, les questions pertinentes que nous nous posons, peuvent être résumées
ainsi :
1. Est ce qu'un objet peut être instance de deux classes? Si oui combiner les classes
en une seule.
2. Est ce que des objets de classes différentes peuvent être comparées d'une façon
significative? Si oui combiner les classes en une seule.
3. Est ce que toutes les instances de deux classes différentes peuvent jouer le même
rôle? Si oui combiner les classes en une seule et si nécessaire ajouter une nouvelle
classe aux deux pour préserver la distinction originale.
4. Est ce qu'un attribut est dérivable à partir d'autres attributs ? Si c'est le cas, mar-
quer le début de l'attribut dérivé par un slach "/" (selon la documentation d'Uml)
ou le transformer en une opération qui encapsule le calcul de l'attribut.
5. Est-ce qu'il y a des cas d'utilisation ou acteurs en surplus? Si oui les supprimer.
6. Est ce que des cas d'utilisation différents peuvent être comparées d'une façon signi-
ficative? Si oui combiner les cas d'utilisation en un seul.
En vérifiant notre brouillon de schéma conceptuel, on trouve que la valeur de
Allocation enfants peut être dérivée de la valeur de Nombre d’enfants par la règle
suivante : Allocation enfants=500*nombre enfants, alors on applique la règle 4 sur le
schéma conceptuel de Superviseur marié, on obtient :
S uperviseur M arié
N bre enfants
/A llocation enfants ()
Fig. 6. Classe de Superviseur Marié du Diagramme de classes d’UML
Quant au cas d'utilisation, on constate que les deux cas d'utilisation travail et oc-
cupation peuvent être combinés en un seul par exemple tache. Les acteurs départe-
ment et fonction sont des acteurs en surplus, on les supprime.
Fig.7. Diagramme de cas d'utilisation d’UML
3.4 Contraintes de multiplicité
Dans cette étape, on ajoute les contraintes de multiplicité dans le diagramme de classe
obtenu, à partir des règles de passage présentées dans [8,9] (voir Fig. 6) et de la popu-
lation de départ.
a b 1 :N a b N :1
a b 1 :1 a b N :M
Fig. 8. Règles proposées de Niam pour la multiplicité en UML
Pour la population des classes dans les associations, on applique la multiplicité sur les
associations, et pour la population des attributs, on applique la multiplicité sur les
attributs. Quant aux contraintes sur la population qu’on ne peut pas exprimer à l’aide
de contraintes dans Uml, on utilise les notes textuelles.
A B
A B
Anr{P} Bnr{p}
(Anr) (Bnr)
xz/st xz_B[ ?..1] :bnr st_A[?..*]: anr
chaque élément de st_A référencie au
maximum un seul B
Fig. 9. Exemple de passage des multiplicités en UML
On peut également proposer d’autres types de contraintes si elles sont présentées en
Niam ou déduites à partir de l’univers de discours, à l’aide des contraintes d’UML
{Complet, Incomplet, Disjoint, …}.
3.5 Vérification de l’ordre
Cette étape vérifie que les relations ont un ordre exact. Si nous sommes plus précis
dans les étapes précédentes, alors cette étape n’est pas exigée.
On vérifie l’ordre d’une association (type idée au sens Niam) de telle sorte qu’elle ne
soit ni trop longue, ni trop courte par rapport à ce qu’elle doit être. Trois démarches
sont possibles:
1. Utiliser le bon sens ou la connaissance antécédente de l’U°D pour décider si
l’information sera perdue par une division d’association.
2. Utiliser les règles de division de la petite clé.
3. Fournir une table d’idée significative pour l’association, diviser ceci par projec-
tion et ensuite re-combiner par jointure naturelle. Si de nouvelles instances appa-
raissent alors l’association est indivisible.
4. Pour les cas d'utilisation, on substitue les cas d'utilisation génériques par des cas
d'utilisation spécifiques.
Dans notre exemple, on substitue le cas d'utilisation "tache" par les activités spécifi-
ques pour chaque fonction.
Fig.10. Diagramme de cas d'utilisation d’UML
3.6 Adjonction des contraintes de multiplicité, d’agrégation, de généralisation
et de fréquence et les liens d'extension et d'utilisation.
Elles spécifient une restriction sur les valeurs possibles des instances d’un type
d’entité données.
i) Les rôles impératifs et optionnels
Dans la notation UML, il n’existe pas une syntaxe pour exprimer qu’un rôle est impé-
ratif. Alors, on exprime ça par une contrainte textuelle ajoutée comme note.
ii) L’agrégation
Une agrégation représente une association non symétrique dans laquelle une des ex-
trémités joue un rôle prédominant par rapport à l’autre extrémité. La contribution de
l’expert de l’U°D est importante pour déterminer les relations d’agrégations entre les
classes. La composition est un cas particulier de l’agrégation. Elle implique une
contrainte sur la valeur de la multiplicité du coté de l’agrégat. : elle ne peut prendre
que les valeurs 0 ou 1.
La composition et les attributs sont sémantiquement équivalents. La notation par
composition s’emploie dans un diagramme de classes lorsqu’un attribut participe à
d’autres relations dans le modèle [2,11,14]. A partir de cette définition, on peut noter
que, si un attribut participe dans une relation dans le modèle et que sa participation
est validée par une population du domaine, alors il devient une classe composite.
iii) La généralisation
Pour identifier les relations de généralisation entre les différentes classes, on utilise
soit :
- Notre intuition et l’assistance de l’expert de l’U°D,
- Une technique connue par l’analyse de la matrice de sous typage [15]. Supposons
qu’on a une entité A et qu’on veut lui appliquer le sous typage, on commence par
diviser A en groupes où chaque membre d’un groupe a exactement le même rôle
enregistré. Les détails enregistrés pour chaque membre de A forment
l’enregistrement du modèle. Plusieurs groupes doivent avoir des modèles diffé-
rents. Ayant partitionné A en groupes sur des modèles de base, nous les affichons
à l’aide d’une matrice Partitions/Détails.
Tableau 2. Matrice Partitions/Détails du tableau 1.
Employé Dept Fonction Supervis. Sit fam N° Tel Année Mariage Nbre Enf Allocat ($)
(1) 1 1 1 1 1 1 1 1
(2) 1 1 1 1 0 0 0 0
(3) 1 1 1 1 0 1 0 0
(4) 1 1 1 1 1 0 0 0
Groupes A A A A B C D D
Le groupe A a les sous types B, C et D , le groupe B a le sous type D,
Le groupe C a le sous type D
Donc, le graphe de sous typage du tableau 2 est représenté par la Fig. 8.
E m p l o y é
E m p l o y é
S u p e r v i s e u r M a r i é
S u p e r v i s e u r
M a r i é
Fig. 11. Graphe de sous typage
iv) Fréquences d’occurrences
La fréquence d’occurrences représente soit :
- le nombre de fois qu’une entité d’un type donné peut être enregistrée pour jouer un
rôle donné ;
- le nombre de fois que les étiquettes peuvent apparaître dans une colonne d’une rela-
tion donnée.
En UML, cette fréquence n’est pas toujours exprimée par les contraintes de multipli-
cité, dans le cas contraire, on utilise des contraintes textuelles.
v) Liens d'extension et d'utilisation:
On ajoute les liens d'extension et d'utilisation entre les cas d'utilisation. Générale-
ment, pour y arriver, on fait recours à l'expert de domaine.
Dept
Employé
< Supervise < Emploi Code :{D1, D2}
Nom
1 Sit fam
1..2 1..1
Occupe>
0..* Chaque Dept utilise ce rôle deux fois
Fonction
Design
Employé Marié
Superviseur
Année (Date)
N° Tel
Superviseur Marié
Nbr enfants
Allocation ()
Fig. 12. Diagramme de classes d’UML Fig.13.Diagramme de cas d'utilisation d’UML
3.7 Alignement avec l’ontologie de domaine.
Pour enrichir la sémantique de la conception obtenue, minimiser l’intervention de
l’expert de domaine, nous utilisons l’ontologie de domaine.
L’identification des relations de l’univers de discours à travers de l’ontologie de do-
maine se base sur la similarité des classes de modèle et les concepts (ou classes) de
l’ontologie. Ainsi, une classe de modèle est similaire à une classe de l’ontologie [13],
si :
- Les deux entités (classe et concept) possèdent le même nom.
- Les deux entités (classe et concept) possèdent les mêmes attributs.
- Ils ont en commun un certain nombre d’attributs.
Notons ici que l’enrichissement du schéma conceptuel par les concepts de l’ontologie
est relatif à l’intervention du concepteur validant les résultats.
Dans notre exemple, nous utilisons une ontologie de domaine d’une organisation qui
décrit le domaine d’une personne et ses intérêts [14].
Les classes et les propriétés de cette ontologie sont :
Personne
Employé Groupe social
-Nom Fonction
-Date de naissance
-Sexe
-Age
-Photo Les relations sont:
-Adresse
Organisation Membre de (Personne, Groupe social)
Repos Travaille a (Employé, Organisation)
Assurer (Employé, Fonction).
Avec l’utilisation de l’ontologie du domaine, la description de la classe employé est
plus détaillée et le diagramme est enrichi avec une nouvelle classe ‘groupe social’ et
une nouvelle association ‘est membre de’.
3.8 Contraintes lexicales et qualifications
Dans cette étape on spécifie les contraintes lexicales sur les attributs, sur la base de la
population de domaine ou on utilise l’avis de l’expert de l’U°D.
Dans notre exemple, l’attribut nom de la classe Employé, par exemple, est une chaîne
de taille de 20 caractères. Alors, on ajoute le type chaîne à coté de cet attribut.
Les restrictions sur les associations (clés) peuvent être spécifiées par des qualifica-
tions.
3.9 Contraintes supplémentaires
Les contraintes d’égalité, d’exclusion et de sous ensemble peuvent être appliquées sur
les associations. La syntaxe d’UML permet de représenter les contraintes ou-exclusif,
disjoint, incomplet, complet, …, sur les associations.
3.10 Vérifications finales
Cette étape consiste à vérifier que le schéma conceptuel est consistant avec les exem-
ples originaux , qu’ il n’est pas redondant et qu’il est complet. On distingue deux
étapes :- On vérifie si les contraintes exprimées sont validées par la population ini-
tiale, sinon on effectue des modifications nécessaires.
- On élimine la redondance des classes, des attributs et associations.
D ep t
E m p lo y é
< E m p lo i 1 ..1 C o d e :{ D 1 , D 2 }
< S u p e rv is e N o m
1 S it fa m , a d r e s s e ,
F o n c tio n , s it f a m
1 ..2
O ccu p e>
0 .. * C h a q u e D e p t u tilis e c e r ô le d e u x f o is
C h a q u e S u p e r v is e u r tr a v a ille d a n s
u n d é p a rte m en t
E m p lo y é M a rié
G ro u p e s o c ia l S u p e r v is e u r
D es ig n A n n é e (D a te)
N ° T el
S u p e r v is e u r M a r ié
N b r e n fa n ts
A llo c a tio n ()
Fig. 14. Diagramme de classes d’UML enrichi par les contraintes textuelles
4 Conclusion
Pour élaborer des diagrammes UML sémantiquement riche et de qualité meilleure,
nous avons proposée dans cet article une approche hybride (ascendante et descen-
dante) faisant intervenir des sources sémantiques : de bas niveau d’abstraction (i.e.
des exemples d’un système existant : tables, états…) et de haut niveau d’abstraction
(i.e. l’ontologie de domaine).
La capture de la sémantique dans notre démarche s’est matérialisée par plusieurs
façons, à savoir :La reprise de l’existant par des exemples significatifs de l’univers
de discours, les connaissances de l’expert de domaine, l’utilisation d’un langage
pseudo naturel pour assurer une meilleure communication entre les intervenants
(l’expert, l’utilisateur et le système),utilisation de l’ontologie de domaine.
L’usage des ontologies dans le processus de spécification des systèmes d’information
est une discipline récente. Il permet de faciliter le processus d’identification des be-
soins du système et de comprendre les liens sémantiques de ses composants et de
réduire considérablement le temps nécessaire pour l’analyse conceptuelle.
Le processus de notre démarche appelée UDDPO (UML Diagram Design Procedure
based on Ontology) se déroule en dix étapes successives, il commence par la verbali-
sation des exemples de l’univers de discours et se termine par la génération du sché-
ma conceptuel en UML.
L’approche actuelle permet d'élaborer les digrammes de classes, d'objets et de cas
d'utilisation UML. Elle pourrait être étendue pour élaborer les autres diagrammes en
utilisant les ontologies de tâches ou d’autres techniques.
Cette proposition pourrait être adaptée à la re-ingénierie des ontologies et la re-
ingénierie des applications web en des applications orientées services web en exploi-
tant l'ontologie de tache OWL-S.
References
1. Andre P. Vailly A. « Spécification des logiciels : Deux exemples de pratiques récentes (Z et
UML) », Ellipses, 2001.
2. Booch G. Rumbaugh J. Jacobson I. «The Unified Modeling Language User Guide», Addi-
son-Wesley, Reading MA, USA, 1999.
3. Habrias H. «Le modèle relationnel binaire : Méthode IA (NIAM)», Eyrolles, 1988.
4. Halpin T. A. «Object Role Modeling (ORM/NIAM) », Handbook on Architectures of In-
formation Systems, P. Bernus, K. Mertins & G. Schmidt eds, Springer-Verlag, Berlin, pp.
81-101, 1998.
5. Halpin T. A. «Object Role Modeling: an overview», 1998, available online at
http://www.orm.net/overview.html.
6. Halpin T. A. «UML data models from an ORM perspective: Parts 1-10», Journal of Concep-
tual Modeling, InConcept, Minneapolis USA, 1998, available online from:
www.orm.net/uml_orm.html.
7. Halpin, T.A. Bloesch, A.C. 1998, ‘A comparison of UML and ORM for data modeling’,
Proc. EMMSAD’98: 3rd IFIP WG8.1 Int. Workshop on Evaluation of Modeling Methods
in Systems Analysis and Design, Pisa, Italy (June).
8. Halpin T. A. «Data modeling in UML and ORM revisited», Proc. EMMSAD’99: 4th IFIP
WG8.1 Int. Workshop on Evaluation of Modeling Methods in Systems Analysis and De-
sign, Heidelberg, Germany (June), 1999.
9. Halpin, T.A. «Integrating fact-oriented modeling with object-oriented modeling», Informa-
tion Modeling in the New Millenium, eds M. Rossi & K. Siau, Idea Group Publishing
Company, Hershey, USA, 2000.
10. Halpin, T.A. «Augmenting UML with Fact-orientation», In workshop proceedings: UML: a
critical evaluation and suggested future, HICCS-34 conference, Maui, January 2001.
11. Jacobson, I., Booch, G. & Rumbaugh, J. «The Unified Software Development Process»,
Addison-Wesley, Reading MA, USA, 1999.
12. Leung C. M. R., Nijssen G. M. «Relational database design using the NIAM conceptual
schema», Information Systems, Volume 13, Number 2, 219-227, 1988.
13. Mitilian G. Rampnoux R. «Informatique: Méthoded d’Analyse pour la Gestion et
l’Informatique», Ellipses, 1991.
14. Muller P. A. « Modélisation objet avec UML », Edition 2, Eyrolles, 2000.
15. Nijssen G. M. Halpin T. A. «Conceptual schema and relational database Design Procedure:
a fact oriented approach», Prentice Hall, 1989.
16. Rumbaugh J. Jacobson I. Booch G. «The Unified Modeling Language Reference Manual»,
Addison-Wesley, Reading MA, USA, 1999.
17. Heflin J., Personal ontology, Univ. of Maryland, 2001.
http://www.cs.umd.edu/projects/plus/DAML/onts/personal1.0