jeudi 7 juillet 2016

Au commencement Dieu créa le ciel et la terre: un modèle de développement pour Angélus

Genèse 1.1 présente l'acte de création comme une démarche de séparation que ce soit entre la lumière et les ténèbres, entre le ciel et la terre et entre la mer et le continent. La lumière est première, également, dans la démarche de développement logiciel. C'est la lumière de l'intelligence. C'est elle qui permet de faire les séparations entre les objets et d'établir des relations entre eux. Dans son prologue Saint Jean assimile cette lumière au Christ qui est également le Logos (l'intelligence).Toute création résulte d'une démarche qui se fait par étapes et se déroule dans le temps (6 jours pour la bible).
Un modèle d'architecture est un schéma global, une superstructure qui donne par sa vue d'ensemble un sens au système tout en permettant d'accéder aux détails que sont les éléments susjacents du modèle. Le modèle architectural de la création proposé si dessous est un modèle chrétien dans la mesure où il est trinitaire. Tiré de genèse 1.1 selon la méthode déjà présentée, il intègre en partie les éléments du prologue de Jean.

Modèle de l'architecture trinitaire de la création

La création y est présentée comme un don du Père au Fils dans l'Esprit. Ce qui est modélisé ici ce n'est pas un système en développement (du type Notre Père) mais un système de développement (du type Genèse). Le terme système est préféré à application car il intègre le matériel et le logiciel. Le ciel et la terre.

Remarque: Ce qui donne consistance à un modèle informatique classique c'est la validité du code final qu'il est capable de générer. Ce qui donne consistance à un modèle Arlequin ou Angélus c'est le texte initial en langage naturel et son modèle SML (Simple Modeling Language) qui portent la sémantique.

Le premier jour de la création est la transcription du texte selon des règles de simple présentation graphique.

Modèle SML de genèse 1.1: le premier jour.
Le passage d'un modèle SML au modèle d'architecture d'une Procession (comme la création) se fait également par étapes et selon des règles qui peuvent être modélisées: C'est ce que fait Angélus comme on va le voir.

Remarque: Angélus ne peut prétendre être une méthode de développement informatique que si elle répond également au premier critère de consistance: validation du résultat par l'analyse lexicale et syntaxique. Ce qui est le cas. Par exemple la génération Acceleo d'une procession en un code java est immédiate. Une classe saintEsprit contenant un programme principal (main) EspritSaint, deux objets Pere et Fils, et deux autres objets cahot et creation passerait l’épreuve des analyses lexicales et syntaxiques. Dieu seul, dans l'espace réel, est maître de son exécution...

Comme on le sait la création du monde selon la bible se fait par étapes en 6 jours. J'ai pris la peine d'en modéliser la procession au niveau N+1. On peut les voir avec une meilleure définition en cliquant sur l'image ci-dessous:
.
Le développé de la création du monde en 6 jours
Rappelons qu'il n'y a pas de validation sémantique mais uniquement formelle ce qui évite des confusions en vérifiant la cohérence d'un texte.

Pour passer de la création du monde au développement d'un système applicatif, il suffit, au niveau N de l'architecture, de faire une projection (ou mapping) de l'espace biblique vers l'espace productique.

Architecture d'une production d'application obtenue par "mapping"
Attention ce n'est pas pour autant que l'on est sorti de l'espace "christologique" qui est garanti par le modèle théologique susjacent. Seule la sémantique est différente. 
Ainsi un même modèle peut-être réutilisé dans de multiple contextes. Il suffit de changer les noms des Personnages et des objets. Par exemple si j'applique cette méthode à Angélus on obtient le modèle du processus de création d'une architecture Angélus:

Création d'une architecture Angélus
C'est l'outil Angélus qui permet de faire cela en partant de la base ObeoDesigner et Sirius 4.0.
L'étape suivante est de poursuivre la métaphore de la genèse pour faire la séparation entre les espèces (ou classes) et les choses (ou instances de Classe). Dans le paradigme Angélus et son vocabulaire philosophique nous parlerons d'Etres et d'Etants.


Alain Salmon



Genèse 1.1 : un modèle de développement système

Il peut paraître prétentieux de plagier la création du monde par Dieu pour l'utiliser à des fins industrielles. En fait ce modèle s'est imposé à moi naturellement comme étant la convergence de multiples réflexions. J'y ai vu également un grand intérêt à la fois pédagogique (en informatique) et catéchétique. Le mélange des genres étant ici assumé à l'adresse d'un monde déchristianisé.
En effet le modèle d'architecture de la création proposé si dessous est un modèle chrétien dans la mesure où il est trinitaire. Tiré de genèse 1.1 selon la méthode déjà présentée, il intègre en partie les éléments du prologue de Jean.

Modélisation trinitaire de la création


La création est présentée comme un don du Père au Fils dans l'Esprit.

Remarque: Ce qui donne consistance à un modèle informatique classique c'est la validité du code final qu'il est capable de générer. Ce qui donne consistance à un modèle arlequin ou angélus c'est le texte initial en langage naturel et son modèle SML (Simple Modeling Language) qui portent la sémantique. Mais Angélus ne peut prétendre à être une méthode de développement informatique que si il répond également au premier critère de validation. Ce qui est le cas. La génération Acceleo d'un code java est immédiate. Une classe saintEsprit contenant un programme principal (main) EspritSaint, deux objets Pere et Fils, et deux autres objets cahot et creation passerait l’épreuve des analyses lexicales et syntaxiques. Dieu seul est maître de son exécution.
Comme on le sait la création du monde selon la bible se fait par étapes en 6 jours. J'ai pris la peine de les modéliser. On peut le voir en suivant le lien développement.


.

mardi 21 juin 2016

Métaphore christologique : le monde réel de la terre et le monde virtuel du ciel

 Il s'agit bien d'une métaphore car on ne peut assimiler le ciel à un monde virtuel comme le sont les mondes des jeux vidéo : c'est un monde réel révélé. C'est l'Autre monde comme le numérique est un autre monde. En poussant la métaphore jusqu'à faire se communiquer le ciel et la terre on construit par analogie le modèle de développement et de programmation d'Angélus.
Même si cela peut conduire à des réflexion théologiques l'important ici c'est que la métaphore fonctionne. Et elle fonctionne en considérant que la terre est le monde réel sensible, visible; le monde des hommes et du Jésus historique et que le ciel est le monde divin de son Père, invisible mais qu'Il nous révèle.
C'est Jésus Christ, vrai Dieu et vrai Homme qui réunit ces deux mondes. Dans la figure ci-dessous je montre comment Angélus spécifie le Christ dans son méta-modèle.

Espace ontologique: essence du Christ selon Angélus
La relation d'héritage (rebaptisée ÊTRE) chère aux méthodes et aux langages objets permet de définir, de manière abstraite, le Christ par son essence à la fois divine et humaine.

Mais je modélise également, plus utilement pour la suite,  la substance du Christ par la relation de composition (appelée ici EST) qu'on trouve dans les mêmes méthodes.

Espace ontologique: substance du Christ selon Angélus
Pour Angélus l'espace dans lequel évolue le Christ se décompose en deux sous-espaces: l'un que j'appellerai immanent à gauche et l'autre transcendant à droite. Il y a entre les deux mondes une frontière que lui-seul peut franchir. On va voir comment.
 
Jésus Christ : une personne en deux natures
Dans le cas du Christ l'homme est un homme singulier Jésus et Dieu est une personne singulière le Fils.
Une vue ne représente qu'un aspect particulier d'un modèle. Le modèle complet (et souvent complexe) existe sous une forme logique dans la mémoire de l'outil. Dans notre modèle de développement les deux mondes sont présents et réunis dans un seul: celui du Christ.
Pour comprendre ce que cela implique dans notre processus de développement reprenons l'exemple du Notre Père.

Déploiement du Notre Père entre le ciel et la terre


L’icône du Notre Père dans l'espace "christologique" est l'en-tête de la prière telle que représentée dessous et précédemment. Le <tag> Jésus-Christ fait référence au méta-modèle du Christ déjà défini. Il doit donc respecter la double nature des personnages que sont Jésus et son Père (terrestre et céleste). La flèche rouge signifie un premier niveau de développement du modèle Notre Père.

La solution Angélus s’appuie sur le modèle trinitaire d'une part et tout naturellement sur ces messagers que sont les Anges. On retrouve doublement le modèle trinitaire en développant au niveau 2 le FILS d'une part et le PERE d'autre part comme le montre la figure ci-dessous:

Modèle de communication entre le ciel et la terre

Le schéma trinitaire est celui, vu précédemment, qui met en communication le Père et le Fils dans la récitation du Notre Père. C'est celui que l'on reprend dans son intégralité sur la terre en vert comme au ciel en bleu. Sauf que sur la terre on remplace le Père par son Ange et que au ciel c'est le Fils qui est remplacé par son Ange. Le comportement des Anges (modélisé dans le Sujet) est identique à celui du Personnage qu'ils figurent. L'état des anges (informé dans l'objet) est identique également à celui du personnage qu'il représente.

Si je décrypte l'analogie pour son emploi en informatique on comprendra aisément que la terre représente notre monde réel matériel (ma-terre-iel) et que le ciel représente le monde logiciel (logi-ciel).
- Au niveau spécification on a la même architecture trinitaire à l'extérieur et à l'intérieur du système en développement (le Notre Père dans l'exemple).
- Au niveau réalisation la substance "messagère" des anges est graphique (c'est à dire implémentée par l'interface graphique). La substance "priante" du "Fils" est humaine (l'Utilisateur du système) et la substance "agissante" du "Père" est logicielle et exécutable.

C'est le nouveau MVC (Model View Controller) selon Angélus.

Pour retrouver le modèle détaillé du Notre Père il suffit de développer la relation de Coopération, appelée NOTRE PERE, au niveau N+3 (donc une troisième fois).

 Alain Salmon

vendredi 17 juin 2016

Le Notre Pere : un modèle de spécification informatique

En informatique, la spécification est un modèle d'un logiciel. C'est aussi l'étape en génie logiciel qui consiste à décrire ce que le logiciel doit faire. Le Client exprime ce que l'application devra faire au moyen d'une spécification. Pour cela il se met dans la peau d'un futur Utilisateur qui enverra des requêtes (demandes) à son Ordinateur pour obtenir le résultat attendu. Il s'agit formellement d'une prière de l'Utilisateur à l'Ordinateur tout comme le notre père l'est du Fils au Père. 
Je reprends l'architecture relationnelle de la Trinité légèrement modifiée pour faire apparaître que le Fils, qui est sur la terre, demande au Père, qui est au cieux: que la terre soit comme le ciel :


Modèle d'architecture du Notre Père
C'est le Fils qui demande (voir le sens de la flèche) mais c'est le père qui agit. Le Fils offre le monde terrestre à son Père qui en retour lui offre le monde céleste comme résultat, et ce par l'opération du Saint Esprit.
Pour obtenir le contenu de la prière (sa spécification) Angélus permet d’accéder au détail en développant (par un clic) la relation de communication appelée ici Esprit Saint (mais qu'on aurait put appeler Notre Père). On a alors le résultat ci-dessous:


Spécification détaillée du Notre Père
 Il y a une invocation et 7 requêtes. Ces dernières ont la même structure: elles partent du Fils qui s'adresse au Père sous un titre adapté à la demande. Elles contiennent l'objet de la demande (le pain), l'action demandée (donner) au Père et le résultat attendu de celui-ci ([donné]).
Beau programme qu'il nous reste à écrire et exécuter... En fait, s'agissant de cette belle prière,  il appartient à chacun de nous à le mettre en œuvre.  Et l'informatique n'a rien à voir ici. 
Par contre il y a des leçons de développement informatique à tirer de cet exemple. Au départ il convient, comme ici, de décrire le problème à résoudre sous la forme d'une activité incluant une collaboration entre au moins deux personnes ayant des compétences différentes. 
Dans cette première étape il n'est nullement question d'ordinateur. Il nous faut maintenant l'introduire. Comme déjà annoncé c'est grâce à la christologie que nous allons le faire.

mercredi 8 juin 2016

Personnes divines : Personnelles et Relationnelles

J'ai appris en théologie que Dieu était un être relationnel. Une autre représentation de l'Esprit Saint que celle déjà donnée (cliquer sur le lien pour se rafraichir la mémoire) permet de l'illustrer.


Représentation relationnelle de l'Esprit Saint
 Il est important de comprendre qu'une telle représentation ne modifie pas le méta-modèle de l'Esprit Saint car ce dernier hérite à la fois d'un méta-élément de Personne et d'un méta-élément de Relation. Pardon pour le jargon.
Au niveau sémantique cette vue peut faire comprendre que l'Esprit Saint est à la fois la communication entre le Père et le Fils d'une part et  Dieu lui même qui se communique d'autre part. Au niveau formel on verra que c'est le modèle de toute communication humaine ce qui est très utile pour initier un développement informatique. Voir ci-dessous le modèle complet.

Grâce à la prière la communication est bidirectionnelle.
Ce modèle peut être qualifié d'ontologique dans la mesure où il décrit les êtres en tant qu'être. Il correspond au modèle de classes d'un profile UML <trinité>.
Les noms mêmes de père et de fils sont en fait des noms de relations entre des personnes. On peut les représenter ainsi:

Père et fils sont des expressions relationnelles internes à la trinité.
Le modèle ontologique de la trinité à permis de définir plusieurs types de relations. Viennent s'y ajouter l'"association" entre le père et le fils, et la "communication" avec l'"offre" en rouge et la "demande" en bleu. L'Esprit Saint quant à Lui est un modèle de "coopération" entre les personnes.

La prochaine fois je montrerai que le modèle christologique est une métaphore à la fois belle et efficace pour modéliser l'entrée dans le développement d'une application informatique quelconque.

Alain Salmon

mardi 7 juin 2016

Professions de foi

A l'occasion de sa profession de foi je vais offrir à Martin son Credo sous la forme du modèle graphique Angélus SML du Symbole des Apôtres.

Le Symbole des Apôtres en langage SML
Le jeu que je vais lui proposer consistera à lui demander de reconstituer le texte d'origine. J'y vois une façon ludique et moderne de faire de la catéchèse. J'ai l'intuition que cet outil ouvre la voie à de nombreuses possibilités complémentaires de faire le caté.
Comme je l'ai dit, chaque couleur renvoie à une "figure" testamentaire prédéfinie et reliée aux autres comme décrit dans l'article précédent. Ici le Christ tel que déjà défini dans la mémoire d'Angélus sera enrichi de ses étapes historiques et eschatologiques marquantes. On peut alors appliquer au modèle une transformation faisant mieux apparaître le sens de son existence terrestre. Mais la sémantique n'appartient pas au modèle car elle réside dans son interprétation. Ce dernier en est le support et le facilitateur.

Alexis dont la profession de foi est une semaine après celle de Martin recevra la même "cadeau" sur papier glacé.

Alain Salmon

Remarque: J'ai détecté au dernier moment une petite erreur de principe. Le "ciel" apparait deux fois. Il ne devrait y avoir qu'une occurrence de chaque "objet". La correction consiste à supprimer une occurrence de "ciel" et à prolonger l'un des deux liens jusqu'à l'autre "ciel".

mercredi 1 juin 2016

Un seul Dieu en trois Personnes

Je pourrais modéliser le credo en SML et par transformation obtenir le modèle de Procession (CAE) des Personnes Divines. Mais j'ai préféré partir directement du modèle théologique de la Trinité et définir les Personnes et les relations d'Angélus à partir de ce qui devient son méta-modèle. En effet ce qui est premier pour le chrétien c'est l'essence divine.

L'Icône du Dieu Un définit la triade CAE, l'attribut et la relation d'attribution.
Attention au contresens car il ne s'agit pas de dire que Dieu a un corps. Pour Angélus le <corps> est constitué par l'ensemble des attributs divins comme la bonté ou la miséricorde. De même l'<Esprit> n'est pas ici le Saint Esprit mais l'ensemble des sujets qui prennent l'initiative d'exercer cette qualité: Dieu est Miséricordieux lorsqu'il exerce la miséricorde. Quant à l'<AME> elle doit son nom uniquement parce que cette relation est l'organe de transmission entre L'<Esprit> et le <corps> mais elle se définit ici comme l’ensemble des actions initiées par l'<Esprit> pour l'exercice de cette qualité. Par exemple pardonner dans le cas de la miséricorde est déclenché par un <Esprit> Miséricordieux.
Représentation de la Trinité par Angélus et définition des Processions
C'est vrai que c'est moins beau et moins expressif que l'icône de Roubiev mais c'est le propre d'une abstraction que de réduire à l'essentiel. On y voit que Père, Fils et Esprit sont Dieu (relation d'héritage) et que L'Esprit Saint procède du Père et du Fils (relation de procession). 
La Trinité de Roubiev
Le Père, le Fils et l'Esprit Saint sont Dieu. Chacun hérite également des qualités divines. Mais chacun se distingue des autres par un rôle spécifique comme le montre le diagramme suivant:
Définition des relations de composition et de subordination

Le Père est créateur, le Fils est sauveur et le Saint Esprit est consolateur. Aux relations d'héritage j'ai ajouté les relations de composition et de subordination qui relient les personnes divines aux Dieu Un. Je ne prétends pas par là définir la nature de ces relations théologiquement mais uniquement en faire une représentation abstraite dont la sémantique resterait à définir. C'est à l'usage qu'elles pourront se préciser. En fait le diagramme de la trinité est une représentation développée de l'icône divine. Dans le méta-modèle il n'existe pas d'entité trinité à coté d'une entité dieu. Mais c'est uniquement la représentation qui change. Une autre représentation possible est:
Modèle trinitaire semi-développé
Reste à montrer en quoi un tel modèle permet de produire efficacement une application informatique. L'Esprit Saint nous en dira plus dans le prochain article.