“Data : attention à la panne de sens”

Joël Bizingre, associé chez Conix Consulting, publie un post en relation directe avec le chantier PxData. Il exprime une philosophie que nous partageons : l’exploitation de la technologie des x-data (où x vaut “big”, “open”, “smart”, etc.) suppose toujours un effort de “sémantisation”. Pour le dire plus clairement, la donnée n’est utile que quand on retrouve sa signification.

En pratique, on ne peut pas faire l’économie d’un modèle sémantique. L’idée sera même d’anticiper la disponibilité des données et d’enrichir le modèle sémantique de l’entreprise pour pouvoir accueillir plus facilement les données, quand elles se présenteront.

Les entreprises peuvent facilement acquérir des données externes, pour une dépense modique. Cette dépense est tout de même un gaspillage si l’entreprise ne sait pas comment exploiter ces données. La solution passe par un modèle sémantique qui intègre les concepts manifestés par ces données et qui les relie aux objets connus de l’entreprise.

Voir “Data : attention à la panne de sens“.

Ce papier fixe la philosophie qui préside au chantier PxData. Il mentionne, d’ailleurs, deux des procédés disponibles. Le chantier, accompagné par Praxademia, débouchera sur une contribution du cabinet Conix Consulting à Praxeme.

Site web de Conix Consulting

Les six impasses de la conception de processus

L’importance d’une approche par les processus ne se discute plus. Pourtant, si on évalue les retombées des projets de modélisation des processus, on peut parfois se demander si les promesses en matière de productivité, de simplification ou d’innovation, ont été tenues.

Ce bref article examine les six impasses qui réduisent la portée de l’approche par les processus. Un deuxième partie introduit le procédé de conception des processus, proposé par Praxeme.

SOA en quatre messages

1. SOA est un style d’architecture de système informatique

Pour élaborer la structure d’un système informatique, nous recourons toujours à une métaphore : fonction, machine, ville, service, événement, agent… La plus traditionnelle et encore la plus ancrée dans les esprits est celle de l’architecture fonctionnelle, par laquelle nous percevons le système comme un ensemble de fonctions. Elle a montré ses limites puisqu’elle est associée à la décomposition hiérarchique et entraîne un fort taux de redondance. La métaphore la plus actuelle est celle du service, caractéristique de l’approche SOA (service oriented architecture). Elle agrège de nombreuses notions connexes telles que le contrat et l’encapsulation.

Aborder un système par le truchement d’une métaphore est un acte propre à l’architecture logique : la conception d’un système artificiel, dans une relative indépendance par rapport aux choix techniques.

Le premier message de Praxeme pour SOA est l’importance des disciplines d’architecture logique et de conception logique pour tirer parti de l’approche SOA.

Styles

2. Les promesses de SOA ne se concrétisent que quand on consent un effort de restructuration du système

On oppose ainsi :

  • SOA de surface, qui consiste à brancher quelques services sur un système auquel on ne touche pas ;
  • SOA de refonte, qui généralise la métaphore à l’ensemble du système et, progressivement, transforme celui-ci significativement.

Évidemment, si on applique la première approche (on pourrait dire : FOA, la fausse SOA), il ne faudra pas s’étonner que les retombées promises (réutilisation, simplification, interopérabilité, agilité…) n’auront pas été tenues.

FOA versus SOA

3. La mise en place d’une SOA prend son sens dans une stratégie d’urbanisation du système informatique

Cette conclusion découle de la précédente : la conversion d’un système en architecture de services est un processus patient, qui exige une continuité de vision et une grande constance sur le long terme. Tout à fait les caractéristiques de l’urbanisation.

Il convient donc d’articuler soigneusement les deux disciplines de l’urbanisation de SI et de l’architecture logique. Ceci réclame des dispositions pratiques, notamment en ce qui concerne les représentations du système mais aussi en termes d’organisation et de gouvernance SI.

POS versus Graphe d'architecture logique

4. La bonne volonté et l’intuition sont insuffisantes pour mener à bien la transformation d’un système informatique

Il y faut de la rigueur et des techniques précises, conçues pour affronter la complexité propre aux systèmes d’information. Se lancer dans de tels travaux sans méthode serait naïf et suicidaire. On observe encore trop souvent des équipes qui s’écharpent sur la notion de service, qui s’épuisent en vaines considérations sur la granularité ou la typologie des services, ou qui bricolent de prétendus méta-modèles. Aurait-on accepté un tel gaspillage dans les années 80 ? Non, pas au moment où les managers savaient imposer les méthodes à leurs équipes. Certes, cette attitude était facilitée par l’existence de méthodes de référence largement répandues et appuyées par la Puissance publique. Autre temps, autre mœurs !

Il existe néanmoins une réponse toute prête : Praxeme pour SOA, c’est-à-dire, dans la méthodologie de transformation des entreprises, la partie  dévolue à la conception des systèmes informatiques. Élaborée à partir de 2003 et mise au point sur de grands projets, elle a été appliquée de nombreuses fois et a été consolidée. Sa version 2 est diffusée à travers la formation “SOA, conception d’une architecture de services“. Elle sera publiée en fonction des opportunités (guide “Approche de l’aspect logique” et fiches de procédés).

Postionnement de l'aspect logique

Pour aller plus loin…

Ces quatre messages sont développés dans l’article “Quatre idées fortes de Praxeme pour SOA“.

Formaliser la connaissance du métier

Terminologie, ontologie, sémantique

Quoi que l’on fasse – transformation, innovation, automatisation… -, le point de départ est toujours le même : la connaissance du métier. Non seulement nous devons posséder cette connaissance, mais aussi elle doit se présenter sous une forme telle qu’elle satisfasse à plusieurs critères. Elle doit être :

  • complète, pour éviter les surprises en cours de route,
  • sans ambiguïté, pour empêcher les conflits d’interprétation,
  • précise, pour appuyer une conception pertinente,
  • fidèle, conforme à la réalité,
  • économique, c’est-à-dire exprimée sans redondance, avec le minimum de termes pour dire le maximum de choses,
  • ouverte, affranchie des présupposés qui pourraient réduire sa portée.

Cette qualité d’expression ne se donne pas d’emblée. On ne l’obtient que par de grands efforts et une volonté constante. Elle ne se trouve ni du côté du “métier”, ni du côté de l’informatique. En effet, force est de constater qu’elle n’est pas immédiatement disponible dans l’entreprise. Il suffit de réunir deux experts du métier et de les faire travailler sur des définitions, pour s’apercevoir que les pratiques reposent sur beaucoup de non-dit et que la verbalisation fait voler en éclat l’apparent consensus.

Pour obtenir une bonne expression de la connaissance, nous disposons de plusieurs techniques : la terminologie, les ontologies, la modélisation sémantique. Chacune présente des avantages et des limites. Comment les utiliser ? Peut-on les articuler ? Quel niveau d’exigence viser, selon l’objectif que l’on se donne ?

Voilà quelques-unes des questions abordées dans l’article “Formuler la connaissance“, publié sur le wiki du Praxeme Institute.

Version anglaise : “Formulating Knowledge“.

 

 

Publication d’un article sur le référentiel de description de l’entreprise

Le référentiel de description de l’entreprise

Un dispositif central pour asseoir une approche rationnelle de la transformation d’entreprise

La notion de « référentiel de description de l’entreprise » (RDE) est centrale dans la méthode Praxeme. Elle traduit la volonté de tout dire de l’entreprise et d’encourager une approche interdisciplinaire de la transformation. On se doute que la mise en œuvre de ce concept, pourtant simple, rencontre de nombreux obstacles. Un moyen de les surmonter réside dans les architectures et modèles génériques, aujourd’hui à notre disposition.

 

La livraison n°99 de la Lettre de l’Adeli publie un article demandé à Dominique Vauquier. Cet article présente la notion de référentiel de description, son importance dans la transformation de l’entreprise, puis les modèles génériques qui permettent de construire rapidement ce référentiel et de mettre les projets sur les bons rails.

Article “Le référentiel de description de l’entreprise”

Complexité du système informatique : l’apport de l’architecture logique

Cet article cherche à montrer comment l’architecture logique, en tant que discipline, contribue à la maîtrise des systèmes informatiques. Après quelques rappels sur les règles de cette discipline, il calcule l’impact de ces règles sur la complexité.

Les règles de l’architecture logique

L’architecture logique, en tant que produit, est la structure du système informatique (plus généralement : du système technique), sans le détail des dispositifs techniques. Puisque son objet est un système artificiel, nous pouvons imposer, à cette architecture, des règles structurelles ou contraintes topologiques, dans le but de mieux maîtriser le système. Les plus largement admises sont les suivantes :

  • Prohibition des relations mutuelles : entre deux constituants, il ne peut exister qu’une dépendance, au plus (autrement formulé : les relations entre les constituants sont unidirectionnelles).
  • Stratification (ou architecture en couches) : le système se compose de plusieurs couches ; la communication entre les couches est polarisée. Plus précisément, dans l’approche préconisée par Praxeme, l’architecture logique comprend : une strate « Fondation » qui dérive de l’aspect sémantique (les objets « métier »), une strate « Activation » qui dérive de l’aspect pragmatique (les activités « métier ») et une strate « Interaction », abstraction des composants d’interaction (IHM et communication avec d’autres systèmes). Les seules communications autorisées entre strates vont des constituants de la strate « Interaction » vers ceux de la strate « Activation » et de ces derniers vers la strate « Fondation ». Toutes les autres communications sont prohibées.
  • Prohibition des relations latérales dans la strate « Activation » : les blocs correspondant aux domaines fonctionnels n’entretiennent pas de relations ; ils s’échangent de l’information uniquement à travers la strate « Fondation », le noyau du système. Cette règle résulte de l’importance accordée aux référentiels d’objets dans l’architecture. Ceux-ci, traduisant les domaines d’objets trouvés dans l’aspect sémantique, sont placés dans la strate « Fondation ».
  • Règle de médiatisation : un composant d’interaction échange avec un et un seul composant d’activation principal. Il peut solliciter aussi les services de composants utilitaires ou généraux. Pour un composant d’activation, on peut avoir plusieurs composants d’interaction, un par type de technologie de dialogue.

Cette architecture tolère quelques – rares – dérogations, notamment en ce qui concerne les services utilitaires qui, par construction, doivent avoir une position « transverse ». Mais ces dérogations sont marginales et ne changent pas le raisonnement qui suit, pour le calcul de la complexité.

L’impact sur la complexité du système

Il est facile de montrer comment ces règles d’architecture logique réduisent considérablement la complication du système.

Soit n le nombre d’éléments d’un système. Le nombre maximum de dépendances que l’on peut instaurer entre ces éléments est n².

La prohibition des relations mutuelles réduit ce nombre de moitié.

Le principe de stratification va plus loin. Soient nf, na, ni, les nombres d’éléments de chacune des strates. On a : n = nf + na + ni.

À partir de là, il reste à calculer le nombre maximal de dépendances, autorisé par les contraintes topologiques.

Dans la strate « Fondation », le nombre de dépendances possibles est nf²/2. Les constituants de cette strate ne communiquent pas vers les autres strates.

Dans la strate « Activation », les constituants n’échangent pas entre eux mais « orchestrent » les services de la strate « Fondation ». Au maximum (si chaque constituant d’activation appelle tous les constituants de fondation), le nombre de dépendances est donc : nf. na.

Enfin, les constituants d’interaction ne sont liés qu’à un constituant d’activation. Ceci conduit à ajouter uniquement ni dépendances.

Le raisonnement laisse de côté quelques détails (dérogations, services utilitaires) qui ne changent pas fondamentalement le résultat.

Le simple respect des règles d’architecture logique abaisse donc le nombre de dépendances d’un système de

(nf + na + ni) ²

à

(nf²/2 + nf. na + ni).

La différence est considérable. Si on se place dans le contexte d’un système SOA (service oriented architecture), le nombre de constituants en jeu est de l’ordre de la centaine ou du millier. Pour donner une idée, imaginons un système plutôt simple où nf = na = ni = 100. Sans appliquer les contraintes topologiques, le nombre de dépendances permises est : 90.000. En appliquant les règles, ce nombre tombe à 1.600. Encore n’est-ce là que la valeur maximale autorisée. En réalité, les décisions d’architecture logique vont encore diminuer ce nombre. Par exemple, le « principe de confiance » peut entraîner une réduction de moitié du nombre de dépendances dans la strate « Fondation », en amenant en plus à augmenter l’autonomie des constituants.

La mesure du nombre de dépendances n’est sans doute pas une mesure directe de la complexité mais elle en donne une idée. Elle révèle surtout le couplage, lequel est un des facteurs évidents de la complexité des systèmes artificiels. Notre propos, ici, n’est pas d’élaborer une mesure de la complexité (voir, par exemple, l’article coécrit par Yves Caseau, Daniel Krob et Sylvain Peyronnet), mais de faire sentir l’enjeu d’une vraie pratique d’architecture logique.

Le rôle de l’architecture logique

Ce raisonnement peut paraître théorique. Il ne l’est pas quand l’architecture logique peut réellement s’exercer, et que l’effort de conception permet de reprendre en main le système. Dans les autres cas, on pourrait se dire que la situation n’est pas si critique, que les quelques dizaines d’applications ne peuvent engendrer de tels niveaux de complexité et que le nombre de connexions observées dans le système existant (disons quelques centaines) reste bien inférieur aux nombres évoqués ci-dessus, donc qu’il n’y a pas péril en la demeure. Soyons clairs : c’est faux ! Dans un système constitué d’applications monolithiques, la complexité est cachée. Ce n’est pas parce qu’elle ne se révèle pas à travers les dépendances visibles qu’elle n’existe pas. Dans ces systèmes, la non-application du principe de stratification entraîne une redondance énorme. Cette redondance est une source de complication et un risque effroyable. Elle finit par paralyser les évolutions de nos systèmes, et mobilise des ressources considérables pour une valeur faible.

La donnée : du sens au code

La présentation commentée de la conférence “La donnée : du sens au code”, donnée par Dominique Vauquier lors du Symposium Praxeme 2015, est disponible sur le site du Praxeme Institute : http://wiki.praxeme.org/index.php?n=Syllabus.SYE03.

L’ensemble des matériaux utilisés lors du Symposium, notamment pour la conférence de Joël Bizingre sur les big data et celle de Fabien Villard sur l’estimation des charges, se trouve rassemblé sur la page : http://wiki.praxeme.org/index.php?n=News.Symposium2014.

Big data : la nécessaire sémantisation des données

En exploitant les nouvelles sources de données, à un moment ou à un autre, se pose la question de la signification de ces données. Également, pour tirer un plus grand profit de la connaissance acquise, la donnée doit être rapportée à un concept, c’est-à-dire à l’objet (physique ou abstrait) qui la porte. Elle doit s’articuler aux autres facettes de cet objet.
C’est le rôle de la modélisation sémantique de dégager la signification des données, de les formaliser en tant que propriétés du concept et de les inscrire dans une structure manipulable.

La modélisation sémantique apparaît donc comme un outil incontournable pour bénéficier des techniques X-data. En retour, les X-data influent sur la modélisation sémantique – sinon sur ses procédés, du moins sur son contenu. Notamment :

  • assimilation de nouvelles propriétés dans le modèle sémantique (complétant les classes sémantiques, déjà identifiées, avec des “détails” issus des big data), particulièrement des propriétés de portée classe (valeurs agrégées, indicateurs issus des open data),
  • extension du modèle à des notions nouvelles (par exemple, meilleure description des objets appartenant à l’environnement de l’entreprise, les personnes, leurs relations, leurs comportements, les événements externes…),
  • évolution vers un “style” de modèle qui ménage leur place aux comportements, aux corrélations et aux anticipations (des catégories de propriétés que l’on peut considérer comme nouvelles ou, en tout cas, d’usage rare dans la modélisation classique), avec un enrichissement conséquent des automates à états et de la propagation des changements d’états.

Praxeme exhorte le modélisateur à ne pas réduire la connaissance du métier à celle des données. Le choix du terme “sémantique” en lieu et place de “conceptuel” découle de cette position, ce dernier terme évoquant fortement le modèle conceptuel des données alors que le modèle sémantique prend en charge le concept, tout le concept, sous ses trois facettes réconciliées dans l’unité de la classe : information, action, transformation.

Un modèle de données n’est pas un modèle sémantique

On change plus facilement les appellations que les pratiques. Aujourd’hui, il est de bon ton d’insister sur les objets métier. C’est une très bonne chose… à condition d’en faire des modèles qui ne soient pas que des modèles de données “à l’ancienne”. Je réponds ci-dessous à une question qui m’a été posée sur ce que change l’utilisation d’UML par rapport à Merise.

Qu’est-ce qui fait, fondamentalement, que les entités de Merise sont distinctes de ce que l’on nomme “objets métier” ? En dehors de la notion d’héritage (et donc de spécialisation dans UML), qu’est-ce qui fait, dans le formalisme et dans les principes, qu’UML est plus adapté que Merise pour représenter les objets métier ? Est-ce-qu’en pratique, ce sont les notions d’agrégation et de composition qui changent tout ?

 

Tout d’abord, Merise – méthode de conception informatique – ne nous enseigne pas à représenter la connaissance métier mais impose, dès l’abord, la séparation données-traitements. Le MCD est un modèle de données : c’est dire qu’il ne peut pas représenter toute la connaissance des fondamentaux du métier. Conséquence pratique : certaines informations ne peuvent pas être inscrites sur le modèle, sous prétexte qu’elles sont calculées (ex. l’âge de la personne alors que l’on a la date de naissance). C’est tout à fait justifié pour un modèle de données, ça ne l’est pas pour un modèle sémantique. Du point de vue de l’acteur métier, ces distinctions entre données brutes et données calculées n’ont pas cours : il voit des informations qui font partie du concept.

Plus important encore : la sémantique d’un concept ou d’un objet métier ne s’arrête pas aux propriétés informatives : elle comporte également des propriétés actives (ce que l’objet peut “faire”) et des propriétés transformatives (comment il se comporte ?). Si nous voulons exprimer toute la sémantique, nous devons associer à l’objet métier : les opérations et leurs conditions d’emploi, les contraintes (règles métier), les états (cycles de vie)… bref tout ce qui complique dangereusement nos solutions informatiques faute d’une approche appropriée.

Si la notation UML est bien utilisée, elle peut outiller la modélisation sémantique. Les classes portent les trois types de propriétés : informatives (sous la forme d’attributs, y compris attributs calculés et attributs de portée classe) ; actives (les opérations) ; transformatives (les contraintes et les automates à états).

Évidemment UML est connotée “logiciel” (et est, d’ailleurs, largement sous-exploitée par les informaticiens dont les pratiques de modélisation ont considérablement régressé au cours de ces dernières décennies). Mais il ne faut pas oublier que les notions et axiomes qui forment la logique objet proviennent de la philosophie de la connaissance (de là le terme “classe”) : ce n’est donc pas un hasard si cette logique et les notations qui l’expriment se prêtent aussi facilement à la représentation des connaissances. A noter aussi que l’élargissement des possibilités de modélisation (dans un modèle sémantique par rapport à un MCD) n’aboutit pas à un simple ajout de propriétés sur le modèle : il en change la structure. Ce que je veux dire par là, ce n’est pas seulement les éléments visibles qu’apporte UML par exemple (héritage, agrégation…) : ces éléments pouvaient être, en partie, restitués dans l’approche classique. C’est qu’en prenant en compte toutes les propriétés des objets métier et en suivant les exigences de généricité et de factorisation, le modélisateur est conduit à arranger différemment l’ensemble des propriétés. Les conséquences de ces changements de structure sont énormes : si on les suit sur toute la chaîne de transformation (conception des processus, automatisation…) l’enjeu se chiffre en millions d’euros. L’exemple d’école est la notion de Personne (ou client, employé, etc.). En appliquant rigoureusement cette approche, on peut diviser le volume des SI par 2, facilement ! Tout en augmentant le confort d’utilisation parce que l’on aura construit des solutions plus proches des représentations naturelles.

En conclusion, un modèle sémantique est bien plus qu’un modèle conceptuel des données (il le contient et on peut, à tout moment, extraire le modèle des données d’un modèle sémantique. Praxeme propose plusieurs filières de dérivation à partir du modèle sémantique, dont celle qui produit le modèle logique des données).
L’appellation “Business Object Model” a servi un peu trop à désigner des MCD (et parfois, même pas bons : on en a de lamentables exemples sur le marché). Ce qu’on appelle un BOM (par exemple celui d’IBM) ou l’Information Model d’ACORD ne sont que des modèles de données (même pas normalisés). Les conséquences sont dramatiques. Mais c’est une autre histoire…

Ce commentaire ne remet pas en cause l’héritage de Merise. UML est une notation, pas une méthode. Merise est une méthode et beaucoup de ses recommandations non seulement restent d’d’actualité mais encore sont nettement supérieures à ce que l’on trouve dans les méthodes orientées objet et dans les pratiques courantes. Donc, nous avons tout intérêt à faire fructifier notre héritage. Praxeme reconnaît bien volontiers sa filiation avec Merise.

L’éthique en entreprise

Ces dernières années, nous avons vu fleurir les chartes et codes éthiques dans les entreprises et se généraliser la notion de responsabilité sociétale de l’entreprise.

Nous pouvons nous réjouir de ce phénomène, qui traduit bien plus que la prise de conscience du rôle et de la nature de l’entreprise : il montre aussi qu’à une époque où les idéologies ont reflué, les institutions normalement porteuses de sens et de morale ne suffisent plus pour produire et actualiser le discours de valeurs.

Cependant, est-ce si naturel, pour l’entreprise, de se mêler de morale ? N’y a-t-il pas des effets secondaires et des risques ?

En préparation au développement des procédés axiologiques (sur les valeurs) dans la méthodologie d’entreprise, un papier vient d’être publié par Dominique VAUQUIER sur le site du Praxeme Institute.

  • Constat : le discours sur les valeurs ; les risques et les enjeux ;
  • Problématique : la morale en entreprise ne va pas de soi ; elle se heurte au fait que l’individu y est considéré comme une ressource, en contradiction avec l’impératif catégorique qui veut que l’être humain doit toujours être considéré comme une fin en soi, jamais comme un moyen (Emmanuel Kant). C’est une bonne chose que l’éthique se développe au sein des entreprises, mais elle ne pourra jamais être sincère que si on affronte son caractère problématique.
  • Méthodologie : le papier présente les procédés “Élucider les valeurs”, “Négocier les valeurs” et la grille d’analyse des modèles éthiques.

Voir : page du site du Praxeme Institute.

Avertissement : ce document n’est pas un élément de la méthode, mais une réflexion préparatoire. Les procédés seront développés en fonction des contributions et des opportunités.