TOGAF pour les débutants

Mis en avant

Voici un condensé sur TOGAF (The Open Group Achitecture Framework), le standard d’architecture d’entreprise qui s’impose aujourd’hui.
Dans cet article vous trouverez tout ce que vous devez savoir sur TOGAF sans être obligé de lire les 52 documents de référence en anglais.

TOGAF-les-phases-de-l-ADM-Architecture-Development-Method-01

Voici une série d’articles de notre site web : www.urbanisation-si.com traitant du 1er cadre historique d’architecture d’entreprise : le framework de Zachman, du langage de modélisation des processus métiers BPMN et enfin du langage de modélisation des systèmes complexes SysML :

 

Le meilleur cap pour atteindre son but.

TOGAF est une méthode générique comportant des solutions clés en main à la transformation de l’architecture d’entreprise.

Évidemment l’objectif suprême est la réalisation d’applications opérationnelles.

Pour se faire, il faut une vision globale couvrant les aspects stratégiques, métiers, organisationnels, s’assurer de l’alignement entre le métier et la technique, rechercher constamment l’évolutivité des SI et avoir une culture de l’innovation.

TOGAF intègre les stratégies, les exigences, les processus métiers, les applications, les infrastructures techniques et des associations efficientes entre ces différents aspects et va même jusqu’à la planification et la gestion du changement.

L’ADM (Architecture Development Method) spécifie le cycle des étapes ou phases de la méthode et leurs transitions. Le plancher de la durée d’un cycle ADM peut être de 6 mois et le plafond de 2 ans.

Comme toutes méthodes, pour contribuer à atteindre les objectifs fixés depuis la vision (A) jusqu’à la maintenance de l’architecture déployée (H), les étapes requièrent des artefacts en entrées et fournissent des produits en sortie.

La démarche consiste de connaître l’existant, fixer la cible, établir la meilleure trajectoire pour l’atteindre et mettre en place les moyens pour réaliser avec succès la transformation.

Les déclencheurs pour une mise œuvre de TOGAF peuvent être :

  • la fusion ou rachat de 2 organisations,
  • la conception de services innovants,
  • la réorganisation interne face à la concurrence.

Mes retours d’expérience m’ont montré que l’on doit toujours adapter une méthode au contexte et ne jamais vouloir l’appliquer à la lettre coûte que coûte sinon de risquer que les parties prenantes ne veulent plus s’impliquer.

Qu’en est il des couches d’architecture dans TOGAF.

Dans l’architecture TOGAF, on retrouve à peu de choses près les niveaux de l’urbanisation des Systèmes d’Information (métier, fonctionnel, applicatif, technique) :

  1. L’architecture métier représente la stratégie, les objectifs, les processus métiers, les aspects fonctionnels.
  2. L’architecture des données représente les aspects organisationnels et la gestion des informations
  3. L’architecture applicative représente les applications, les modules ou composants logiciels ainsi que les relations et les communications qui existent entre eux.
  4. L’architecture technique représente le déploiement de ces composants, les frameworks techniques de base, les matériels et les infrastructures réseaux.

N’oublions pas les exigences et les contraintes !

L’OMG (Object Management Group) a défini une norme de modélisation sur les aspects stratégie, objectifs métiers, buts, nommée BMM (Business Motivation Model), voici les liens sur les articles que j’y avais consacré dans la catégorie  BMM  du site www.urbanisation-si.com  :

  1. BMM Business Motivation Model, norme OMG, les idées clés pour mieux comprendre la stratégie d’entreprise
  2. BMM Business Motivation Model, norme OMG, les éléments de modélisation – vision, but, objectif, stratégie, tactique, …
  3. Cours complet BMM Business Motivation Model norme OMG – les concepts de base – les moyens pour parvenir à ses fins
  4. Cours complet BMM Business Motivation Model norme OMG – les facteurs impactants et les évaluations de leurs influences
  5. Positionnement des processus et règles métiers dans la norme BMM Business Motivation Model de l’OMG et autres artefacts génériques

Si vous êtes débutant et que vous vous voulez en savoir plus sur TOGAF, lisez l’article :

TOGAF pour les nuls.

Bonne lecture et à bientôt pour de nouvelles aventures

Rhona Maxwel

@rhona_helena

www.urbanisation-si.com

« Exister consiste à changer, changer à se mûrir, se mûrir à se créer indéfiniment soi-même. »

Henri Bergson

Articles conseillés :

Sur quels critères doivent reposer les indicateurs d’urbanisation d’un système d’information ?

La méthode top-down dans l’urbanisme du Sytème d’Information

Objectifs des indicateurs du processus d’urbanisation du Système d’Information

On remet une couche sur le cadre d’urbanisation SI ?

Urbanisation SI : comment marche le méta-modèle ?

Libérez-vous, laissez votre stratégie prendre le leadership »

En cas d’évènements imprévus, votre SI doit savoir jouer les « Transformers » !

Avec un peu de métier, métamodéliser la vue métier pour assurer la traçabilité avec la stratégie

En urbanisation SI, comment définit-on la vue fonctionnelle et quels sont les liens avec la vue métier et applicative ?

En urbanisation SI, comment met on en oeuvre la traçabilité entre la vue applicative et les vues fonctionnelle et infrastructure ?

Comment créer un environnement de Machine Learning ?

Python

Installer Python

D’après l’index TIOBE de Mai 2022, Python arrive en tête du hit parade des langages et il en va de même pour les autres de sites pour ce genre de classement.
Ce score s’explique par la prédominance de cet écosystème dans le domaine de l’Intelligence Artificielle.

Sur la plupart des distributions Linux, Python est installé en standard, sinon il faut télécharger sur le site :
https://www.python.org/downloads/

Vérifier dans un shell en affichant la version :
python3 -V


Je déconseille les toutes dernières versions car dans la vrai vie, les entreprises ont souvent démarré des projets depuis plusieurs années et n’ont pas l’intention de migrer tous les 6 mois.
La version que j’utilise est la 3.8, amplement suffisante pour toutes les librairies de ML.

Il vous maintenant les librairies implémentant les algorithmes mathématiques de ML.

Apprendre Python

Le pré-requis est connaître les fondamentaux de la programmation pas nécessairement la POO (Programmation Orientée Objet) qui est même si c’est un peu cliché un plus.
Si vous ne connaissez pas Python mais que vous connaissez au moins un langage, je vous recommande le tutoriel officiel en français, mieux que n’importe quel autre tuto, référence oblige :
https://docs.python.org/fr/3.10/tutorial/index.html


PIP (Package Installer for Python)

Installer PIP

Assurez-vous que le programme pip est installé sur votre ordinateur.
Pour cela, tapez tout simplement pip dans une console.
Normalement, le programme pip s’est installé en même temps que Python.

python3 -m pip install –upgrade pip

Pour les utilisateurs de linux, il est parfois nécessaire d’ajouter sudo avant la plupart des commandes requiérant les privilèges de root.

Installer un package
pip install <package>
Ex. : pip install scipy

Lister les packages
pip list

Afficher les détails d’un package
pip show <package>

Désinstaller un package
pip uninstall <package>

Rechercher un package
pip search <package>


L’écosystème ML avec Python

scipy

scipy : librairie mathématiques
pip install scipy
pip install wheel


numpy
numpy : pour gérer des matrices
pip install numpy

matplotlib
matplotlib : pour générer des graphiques
pip install matplotlib

seaborn
seaborn : librairie de compléments pour les graphiques
pip install seaborn

pandas
pandas : pour créer des tableaux (ou « Dataframe ») à partir de vos données brutes
pip install pandas

scikit-learn
scikit-learn : librairie qui implémente directement et de manière didactique les différents algorithmes d’apprentissage automatique
pip install scikit-learn
pip install requests



Visual Studio Code (VSC)


Installer VSC

Évidemment il vous faut un IDE. La aussi je n’ai pas d’états d’âme. Si on prend comme critères :

  • open source
  • fonctionnant sous Windows, MacOS et Linux
  • agnostique à un langage
  • possédant un gran nombre d’extensions (la plupart des langages et bien sur l’éco-système Python, versionning comme git, qualité logicielle, tests, …)
  • look et ergonomie modernes



Microsoft qui était le principal éditeur de logiciels commerciaux a changé radicalement de stratégie en devenant le 1er contributeur d’open source au monde !

Télécharger VSC
https://code.visualstudio.com/

Installer l’extension Python
5ème pictogramme dans la barre verticale gauche. Il suffit de saisir python.

Nom : Capture d’écran du 2022-06-01 14-32-02.png
Affichages : 25
Taille : 57,1 Ko

L’extension Python pour VSC comprend notamment le notebook Jupyter.
Un notebook est très pratique, vous pouvez taper plusieurs instructions à la fois.
Vous pouvez même définir des fonctions. Les variables générées dans chaque case seront disponibles dans toutes les cases du notebook.
Jupyter permet aussi de formater de la documentation en markdown.

Créer un notebook avec VSC
File… > Jupyter Notebook
ou
Ctrl Maj P
Create: New Jupyter notebook
Vous pouvez changer le nom du notebook en cliquant sur son nom actuel, qui est Untitled. Les commandes Python doivent être tapées dans la case devant l’étiquette Entrée [ ] .
Pour le tester, tapez 2 + 5 dans la case (cellule) vide au centre de la fenêtre. Cliquez ensuite sur Exécuter.

Ouvrir un notebook
Il suffit de faire Open folder et de choisir le répertoire où se trouve le fichier du notebook avec l’extension .ipynb

Voilà votre environnement est fin prêt, on pourra dans les prochains billets passer à la pratique.

Rhona Maxwel
urbanisation-si.com
@rhona_helena

« L’amour n’est pas un sentiment, c’est un art » Paul Morand

Articles sur l’Architecture d’Entreprise sur le blog

 https://www.urbanisation-si.com/  

1  Méta-physique ? Non, méta-modélisation !  Thierry BIARDLa sortie récente de la version 5 du Camunda Modeler, permettant de modéliser les processus métier avec la notation BPMN, nous donne l’occasion de faire un rappel sur la notion de méta-modèle, qui se cache souvent derrière le modèle.
2Archi (archimatetool) : essai et analyse de cet outil ArchiMate français gratuit sous Windows, Linux et Mac OS Rhona Maxwel Archi est souvent utilisé par les consultants architectes d’entreprise pour modéliser les vues et points de vue ArchiMate. Open source, simple, conforme au standard TOGAF de l’Open Group, mais peut-il être l’outil de référence pour toute une équipe ? La réponse dans notre essai. 
  3WinDesign : essai et analyse de la version d’évaluation, ce logiciel français est-il un bon outil pour l’Architecture d’Entreprise ? Rhona MaxwelIndéniablement, l’urbaniste de SI trouvera avec l’outil WinDesign toutes les fonctionnalités pour cartographier les niveaux métier, fonctionnel, applicatif et technique. Cette version d’évaluation intègre un cas concret extrêmement détaillé traitant de l’assurance automobile, qui devrait intéresser les néophytes en matière d’urbanisation de SI.
  4  Visual Paradigm : l’eldorado du consultant en quête de présentations dorées, mais est-il un bon outil de modélisation pour l’architecte d’entreprise, voici notre test Rhona MaxwelCet outil gratuit, en français, en mode SaaS dans le cloud, accessible à partir de nombreux appareils mobiles (iOS, Android…), offre un panorama hétéroclite de modèles de visuels, dont voici une liste à la Prévert : cartes cadeaux, anniversaire, menus, albums photos, tableaux de bord, graphiques statistiques, bande dessinée… et ce qui nous intéresse tout particulièrement les diagrammes ArchiMate, BPMN, et UML.   
  5  Essai et évaluation de Modelio : est-il un bon outil de modélisation ? Rhona MaxwelCe test concerne Modelio, le seul outil open source fonctionnant sur Windows, Linux, Mac OS, supportant ArchiMate, TOGAF, BPMN, UML, SysML, MDA et offrant, pour tous ces artefacts de modélisation, un référentiel commun assurant la traçabilité depuis la stratégie jusqu’à la couche technologique. Mais est-il fiable en usage intensif dans les entreprises ou doit-il être plutôt réservé à l’apprentissage de la modélisation ?    
 6 ADOIT:CE pour la gestion de l’Architecture d’Entreprise Thierry BIARDComme le suggère le titre de notre blog, la mise en œuvre de l’Urbanisation du Système d’Information et de l’Architecture d’Entreprise doit se faire avec méthode. Mais sans outil adéquat, l’application d’une méthode s’avère vite laborieuse. Rappelons qu’il s’agit de mettre en place un référentiel d’architecture (généralement stocké dans une base de données) contenant des objets, qui seront ensuite utilisés pour créer des modèles (diagrammes, matrices, listes et rapports). Les articles de notre blog concernant les outils rencontrant généralement un grand succès, en voici un concernant un outil intéressant, et pas seulement parce qu’il est gratuit.  
 7    ADOIT:CE (compléments d’information) Thierry BIARDVoici quelques compléments d’information intéressants qui ont été donnés par l’éditeur BOC Group.

Les qualités d’un bon modèle, Agilité Logicielle, Event Driven Architecture, Architecture Hexagonale et Domain Driven Design

  8  Le PILI était-il un bon modèle ? Thierry BIARDEn fin d’année 2021, la RATP a mis en vente aux enchères du mobilier réformé, au profit d’une œuvre caritative (belle initiative). Parmi les 215 lots mis en vente figuraient quatre PILI (Panneaux Indicateurs Lumineux d’Itinéraires).  
  9Agilité logicielle : quelle solution pour diminuer le couplage entre sous-systèmes et obtenir une architecture logicielle agile ? Rhona MaxwelDes plus petites aux plus grandes entreprises, le concept de bounded context est aujourd’hui au cœur de la conception d’architecture logicielle, mais se pose l’éternelle question de quelle méthode pour parvenir à un découpage produisant le couplage le plus faible, augmentant ainsi l’évolutivité, l’autonomie et l’agilité.  
10  Un problème cornélien de l’EDA, Event Driven Architecture, est de s’assurer de l’exactitude sémantique de livraison d’un message, Kafka l’aurait-il résolu ? Rhona Maxwel  Comment gérer l’idempotence de l’envoi d’un même message ?
La non réception d’un accusé signifie que le broker (serveur de messages asynchrones) n’a pas pu écrire le message et dans ce cas il faut que le producteur l’envoie à nouveau ce qui correspond au mode de livraison “au moins un”. 
Ou bien le broker l’a bien écrit mais un dysfonctionnement est survenu juste après l’empêchant d’envoyer l’accusé auquel cas le producteur le renverra en double, correspondant au mode de livraison “au plus un”. 
Tel est le dilemme cornélien auquel l’EDA est confrontée. Disruptif, l’open source Kafka tente d’apporter des solutions, y parvient-il réellement ?   
  11Architecture Hexagonale, un exemple de mise en pratique de la méthode DDD Domain Driven Design Rhona MaxwelL’architecture hexagonale (ou encore Ports & Adapters Architecture, ce qui est moins sexy) créée par Alistair Cockburn garantit la réutilisabilité de la logique métier en la rendant agnostique techniquement.
12Les couches de l’Architecture Microservices et la méthode de conception DDD (Domain Driven Design) Rhona MaxwelCet article présente le rôle des différentes couches de l’Architecture Microservices et le lien avec la méthode de conception DDD.

Architecture Micro-Services

Tandis que les principes de l’Architecture Micro-Services sont généralement partagés par tous, car ils constituent autant d’avantages, les inconvénients sont plus rarement évoqués.

Ces inconvénients sont bien souvent les conséquences de ces principes et constituent parfois des contradictions.

Il est toutefois possible d’atténuer ces inconvénients : c’est en fait là que réside le talent de l’architecte.

Voir :

Inconvénients de l’Architecture Micro-Services

de Thierry BIARD

https://www.urbanisation-si.com/inconvenients-de-l-architecture-micro-services-1

Bonne lecture

Rhona Maxwel
@rhona_maxwel

Débuter dans l’architecture des microservices

Toujours à la recherche des perspectives d’évolution de l’architecture d’entreprise et des impacts provoqués par les innovations de la transformation numérique, https://architectureentrepriseblog.wordpress.com/ vous propose une nouvelle série d’articles sur l’Architecture Micro-Services.

L’Architecture Micro-Services, pour ceux qui aiment les définitions en une phrase, repose sur la séparation des responsabilités. Cela ne vous rappelle rien ? Mais oui, c’est bien sûr la POO (Programmation Orientée Objet) avec les principes SOLID (Single responsibility ; Open closed ; Liskov substitution ; Interface segregation ; Dependency inversion).

A priori, cela semble logique, mais n’est-ce pas uniquement la face immergée de l’iceberg ou des élucubrations de théoriciens ? Dans la vraie vie, cela donne quoi ? Comment identifier, modéliser, concevoir et réaliser des micro-services à partir de zéro ? Et si l’on part d’une application monolithique mainframe-COBOL-CICS, voire même d’une architecture plus récente N-tiers en Java, quelle est la démarche d’intégration, voire de migration ? Si les points positifs de l’architecture micro-services sont nombreux, quels sont les points négatifs ?

Pour avoir les réponses à toutes ces questions, illustrées de manière pédagogique par une étude de cas complète, voici une liste de liens utiles :

L’Architecture Micro-Services expliquée à ma fille

de Thierry BIARD

https://www.urbanisation-si.com/larchitecture-micro-services-expliquee-a-ma-fille-1

Bonne lecture.

Rhona Maxwel
@rhona_maxwel