Le formalisme de spécification formelle Express-G
La totalité des informations du modèle IFC figure dans des schémas conceptuels reliés les uns aux autres (24 dans la révision 2). Ils sont difficiles à lire parce que justement toutes les entités y figurent, exprimées avec le détail requis pour les informaticiens.
En tant qu'utilisateur des IFC, vous n'êtes pas obligés de savoir lire ces schémas.
Mais si votre objectif professionnel est de devenir expert des outils informatiques en architecture, ingénierie ou construction, ce qui vous oblige à dialoguer avec par exemple des développeurs d'interfaces IFC, cette compétence est indispensable, nous l'avons souligné tout au long de ce cours.
Les auteurs du modèle (BuildingSmart) ont privilégié le langage de description de base de données normalisé ISO EXPRESS[1]. Il était donc naturel qu'ils choisissent un formalisme de spécification graphique en relation avec ce langage. C'est EXPRESS-G[2], qui autorise l'usage d'outils logiciels de traduction de diagrammes directement en instructions de langage.
Ce qui ne fait pas votre affaire, car ce choix vous oblige, cher lecteur, à apprendre une méthode de spécification de plus !
Mais ce sera continuellement le cas durant toute votre vie professionnelle ! Autant vous habituer tout de suite à circuler d'une méthode à l'autre. Ce qui n'est pas bien difficile, car les concepts fondamentaux sont toujours les mêmes. Et puis, possédant déjà les méthodes NIAM[3] et UML[4], ce sera pour vous un jeu d'enfants !
Nous donnons ci-après la syntaxe graphique d'EXPRESS-G[2], avec quelques commentaires.
Pour plus de détails, vous pouvez consulter les documents normalisés ISO de STEP : l'annexe D du volume 11.
Concept et syntaxe Express-G | Commentaires |
---|---|
Entité (entity-name)
| |
Type défini ( new-defined-data-type)
| Type d'entité très utilisé dans les IFC. Correspond au type défini de l'arborescence en annexe, qui est une. Spécialisation de la classe décrite, et dont le nom est normalisé par les IFC ou les utilisateurs. |
Type de données construit : SELECT et ENUMERATION | Donne des indications sur la manière dont on construit ces données par sélection ou énumération à partir d'une classe. Pour les informaticiens. |
Type de données simple Par exemple :
| Indication sur le type de données pour les informaticiens (type entier, réel, chaîne de caractère). |
Relations On distingue dans l'ordre d'importance : les relations d'héritage les relations entre entité les relations de type attribut. | On retrouve les mêmes concepts dans NIAM et UML, avec des nuances. |
Héritage simple
| Le sens de la relation est donné par le petit cercle placé contre le rectangle de l'entité sous-type. Le trait de la relation est épais |
Héritage avec contrainte d'exclusion | Pour exprimer que l'on doive choisir un seul des deux descendants à la fois, (contraintes d'exclusion dans NIAM[3]), on marque le chiffre un sur l'arborescence comme dans NIAM[3] et UML[4], l'héritage multiple n'est pas formalisé. |
Relation simple | Dans le cas général, c'est un trait mince entre les deux entités. Sans autre indication, il n'y a pas de de sens privilégié dans la relation. Exemple : relation entre un objet et un attribut[7]. Pas de nom à cette relation. |
Relation à sens prioritaire | C'est la majorité des cas. On précise toujours le nom de la relation dans le sens prioritaire, qui s'identifie ainsi à l'un des deux rôles[8] dans NIAM[3]. |
Relation qualifiée dans les 2 sens | On précise en plus le nom de la relation dans le sens inverse au sens prioritaire. Ainsi l'information est équivalente aux deux rôles[8] de NIAM[3] ou UML[4]. Mettre le nom sous le trait, précédé du sigle (INV). |
Contraintes de cardinalité | Par défaut, au moins 1, donc plusieurs. C'est différent de NIAM[3] (0 autorisé). En général, après le nom de la relation, on place entre parenthèse les cardinalités minimales et maximales, précédées d'une lettre dont le sens est réservé aux informaticiens : tableau, liste ... ? signifie que le "Max" n'est pas défini. |
Contrainte autres que cardinalités | Quand une entité fait l'objet d'une règle dans une relation, on inscrit un astérisque précède le nom de l'entité objet ou attribut. |
D'autres nuances peuvent être exprimées pour le type des attributs. Nous n'entrerons pas dans le détail d'Express-G.