Appliquer un cadre analytique

Organiser et réutiliser des techniques, des outils et des exemples précieux

Benjamin Lieberman
Publié le 17 avril 2007

Quelque part, un jour, quelqu’un a été confronté à un problème similaire au vôtre et a trouvé comment le résoudre. Et si vous pouviez capturer les informations durement acquises par cette personne et mettre la solution sous une forme réutilisable ? C’est exactement ce que les patrons de conception et d’analyse ont fourni aux ingénieurs logiciels au cours de la dernière décennie. Cependant, ces patrons traitent généralement d’une solution spécifique ; ils ne fournissent pas beaucoup de conseils pour apprendre à identifier le bon patron et à appliquer ce patron en premier lieu.

Heureusement, vous pouvez vous tourner vers les cadres analytiques, qui combinent des solutions réutilisables avec des patrons d’analyse, des recherches, des techniques d’organisation utiles et des exemples spécifiques d’approches réussies. Un cadre d’analyse est un peu comme votre bibliothèque personnelle, adaptée spécifiquement à votre expérience et à vos antécédents.

Les patrons d’analyse sont utilisés dans le développement de logiciels depuis de nombreuses années pour fournir des solutions pour l’accès aux données, le suivi et la gestion des transactions, la sécurité, la messagerie, les interfaces utilisateur et d’autres besoins applicatifs. Ils ne sont pas destinés à être implémentés dans le code, mais plutôt à permettre aux analystes de comprendre des domaines de problèmes complexes.

Les cadres analytiques intègrent de tels modèles et fournissent également une liste de contrôle des compétences, des outils et des techniques nécessaires à la recherche dans un domaine particulier, tel que l’analyse commerciale ou l’architecture système. Cela peut s’avérer très utile pour les entreprises qui recherchent des compétences spécifiques pour répondre à un besoin actuel. Si un candidat peut démontrer l’expérience et les capacités énumérées, il est probable qu’il réussisse la tâche.

Comprendre la structure du cadre analytique

Considérez un instant comment une personne formée au travail du bois s’y prend pour créer des meubles. Un travailleur limité à quelques outils simples et à ses connaissances personnelles peut trouver difficile et long de créer de nouvelles pièces. En revanche, si cette même personne dispose d’un atelier entièrement équipé, d’outils puissants et d’une bibliothèque complète de plans et d’exemples de pièces, il lui sera beaucoup plus facile de créer des meubles complexes et intéressants. De la même manière, les performances d’un analyste peuvent être améliorées par l’accès à un ensemble de modèles d’analyse éprouvés, à des outils et techniques d’analyse puissants et à de multiples exemples d’approches de modélisation efficaces pour la saisie et la présentation d’informations complexes.

Un cadre d’analyse est composé de cinq éléments majeurs : un assortiment d’outils, un ensemble de modèles de solutions utiles, une ou plusieurs formes de modèles, de multiples techniques et compétences de recherche, et des méthodes de regroupement d’informations complexes. Le tableau 1 montre les éléments nécessaires à un cadre d’analyse d’entreprise.

Tableau 1. Cadre d’analyse d’affaires
Élément Description
Outils Traitement de texte, logiciel de modélisation, contrôle de la version des documents
Patrons Patrons spécifiques à l’industrie, patrons de systèmes d’affaires, structures d’organisation d’entreprise
Formes de modèle Organigramme, cas d’entreprise en langage de modélisation unifié (UML), activité UML, cadre Zachman
Techniques Observation, entretien, étude de documents
Compétences Prise de notes, écoute active, animation de réunion, leadership d’équipe, pensée critique, raisonnement par analogie
Catégorisation Cadre des processus d’affaires, hiérarchie des départements, cas d’utilisation de l’entreprise, graphe de dépendance affaires-fonctionnelles

Dans ce cadre d’analyse d’affaires, les outils efficaces pour la découverte et la capture des processus métier comprennent un logiciel de modélisation (en particulier la modélisation UML, si les exigences métier sont capturées sous forme de cas d’utilisation), des aides au traitement de texte et une certaine forme de contrôle de version pour les modèles et les documents. Les outils peuvent être adaptés à des besoins spécifiques ou être des outils plus généraux, tels qu’une simple aide visuelle au dessin.

Les patrons d’analyse récurrents peuvent être efficaces lorsqu’ils sont appliqués à un domaine d’analyse particulier. Dans le cadre de l’analyse d’entreprise, ces modèles comprennent des modèles de systèmes d’entreprise (tels que la saisie des commandes, le contrôle des stocks et la résolution des conflits), des modèles spécifiques à l’industrie (tels que le routage téléphonique, l’expédition et l’ordonnancement des colis et les contrôles de fabrication des médicaments) et des structures d’entreprise (telles que les matrices, les hiérarchies et les organisations distribuées). Les modèles sont des thèmes qui se répètent dans des domaines d’activité particuliers. Pour plus d’informations sur les moyens de capturer les thèmes récurrents, reportez-vous à « Enterprise Patterns and MDA : Building Better Software with Archetype Patterns and UML ». (Voir la section Sujets connexes pour plus d’informations.)

Vous pouvez utiliser une sélection de formes de modèle pour capturer des informations complexes. Pour les analyses analytiques complexes, il existe un certain nombre de formes de modèles utiles, telles que le langage de modélisation unifié (UML) pour les systèmes à forte intensité logicielle, le langage de modélisation des systèmes (SysML) pour l’ingénierie des systèmes et le cadre Zachman pour les préoccupations transversales de l’organisation. Dans l’exemple de cadre d’analyse d’entreprise présenté dans le tableau 1, les formes de modèles utiles pour étudier les processus d’entreprise comprennent UML (pour la modélisation des processus et des cas d’utilisation), les organigrammes hiérarchiques et une forme potentiellement modifiée du modèle Zachman.

Les techniques et les compétences sont un aspect crucial de toute approche d’analyse. Il est important de pouvoir fournir une évaluation des compétences actuellement disponibles d’un individu ou d’une équipe. Par exemple, la technique de l’entretien requiert des compétences en matière de prise de notes et d’écoute active. L’animation d’un atelier de groupe requiert des compétences en matière de facilitation et de direction d’équipe. L’analyse de système repose sur les capacités à réfléchir de manière critique au problème (en reconnaissant comment le problème peut être divisé en domaines plus petits et plus simples) et à appliquer des solutions similaires trouvées dans d’autres domaines.

Le but de l’analyse est de présenter les résultats à un public. Le meilleur analyste du monde ne réussira pas s’il ne peut pas organiser les informations d’une manière significative et présentable. Les outils automatisés ne fournissent qu’une partie de la solution à ce problème ; l’organisation globale des informations détermine la façon dont le public visé utilisera les données. Dans le cadre d’analyse de l’entreprise, ces principes de catégorisation sont représentés par les processus d’affaires (où l’entreprise est divisée en sous-domaines), les graphiques de dépendance entre les cas d’utilisation de l’entreprise et la structure d’organisation globale (typiquement, hiérarchique).

Application d’un cadre d’analyse

Maintenant que vous savez ce qui compose un cadre d’analyse, vous devez apprendre à en utiliser un. Il existe au moins trois situations où un cadre d’analyse peut s’avérer utile. La première est lorsqu’un individu est amené à changer de rôle. Par exemple, un analyste d’entreprise peut passer à un rôle d’analyste de système ou d’analyste de test. Chaque rôle comporte des responsabilités différentes et génère un ensemble de documents et de produits de travail complètement différents. Si la personne peut s’appuyer sur un cadre analytique préexistant (avec des exemples appropriés), il lui sera beaucoup plus facile de se préparer et de faire la transition vers son nouveau rôle. La personne doit apprendre quels outils, techniques, modèles et approches organisationnelles fonctionnent le mieux dans chaque situation. L’accès à un schéma analytique pour chacun de ces domaines peut réduire considérablement le temps passé à chercher des solutions.

Le deuxième domaine où les schémas analytiques peuvent s’avérer utiles est l’évaluation des compétences et de la préparation d’un groupe d’externalisation. La plupart des organisations qui ont recours à l’externalisation near-shore ou offshore se basent sur l’expérience passée des équipes pour évaluer leur capacité à fournir les artefacts convenus. Si l’équipe d’externalisation est tenue de respecter une norme particulière, définie par un modèle analytique spécifique dont l’efficacité a été prouvée, il est plus probable que l’équipe disposera de la bonne collection de matériaux et de capacités. La même chose peut être dite pour les équipes internes, bien que généralement ces équipes aient déjà prouvé une approche particulière, qui fournit la source du cadre analytique.

Le troisième domaine où les cadres analytiques sont utiles est celui de la formation. Si vous étudiez le cadre présenté dans le tableau 1, il devrait être évident que ceux-ci peuvent constituer la base d’un plan de formation pour l’amélioration de l’équipe. Vous pouvez effectuer une évaluation pour déterminer si la collection appropriée d’éléments de cadre, d’outils, de modèles et de compétences est déjà disponible au sein des membres de l’équipe ou doit être ajoutée, soit par l’achat d’un outil, soit par la formation du personnel.

Création et adaptation de cadres

Un cadre analytique n’est utile que si les outils sont familiers au modélisateur. En rappelant le menuisier talentueux, les meilleurs outils sont inutiles sans l’application créative d’un artisan formé et talentueux. De la même manière, la construction de modèles esthétiques nécessite l’adaptation d’un ou plusieurs cadres analytiques à un domaine problématique. Vous devez savoir comment sélectionner le cadre le plus pertinent, vous familiariser avec les éléments du cadre et adapter les éléments du cadre au problème à résoudre.

De nombreux problèmes présentent des aspects récurrents, vous pouvez donc souvent adapter un cadre étroitement lié. Par exemple, presque tous les systèmes informatiques hérités ont besoin d’une certaine forme d’enquête sur la conception, ne serait-ce que pour former les nouveaux développeurs à la maintenance et à l’extension du système. Par conséquent, un cadre de conception de système serait plus applicable qu’un cadre de processus métier.

La création d’un nouveau cadre peut être aussi simple que le clonage d’un cadre existant et l’ajout de nouveaux modèles et exemples. En revanche, des cadres plus complexes, comme celui qui peut être développé pour l’analyse et la gestion des projets de systèmes embarqués, peuvent avoir peu de points communs avec d’autres cadres existants, de sorte que vous devrez peut-être les créer de toutes pièces. Vous devez commencer par examiner les outils et les techniques que vous pouvez appliquer au domaine. Par exemple, vous devrez peut-être modifier des techniques existantes, telles que l’entretien ou l’animation de groupe, pour prendre en charge le nouveau domaine. Vous pourrez peut-être fournir d’autres outils au modélisateur pour des tâches spécifiques, comme l’ingénierie logicielle assistée par ordinateur (CASE) pour organiser le contenu d’une fédération de sites Web. Au fil du temps, vous pouvez étendre le cadre pour inclure de multiples exemples. Enfin, à la fin du projet, vous pouvez capturer formellement les techniques et les modèles qui se sont avérés les plus utiles en tant que modèles d’analyse pour les utiliser sur le prochain problème applicable.

Vous devrez peut-être adapter un cadre d’analyse avant qu’il ne soit utilisable dans un contexte particulier. L’adaptation d’un cadre implique l’inclusion de nouveaux modèles ou schémas organisationnels pour mieux répondre aux besoins du sujet. De cette façon, vous pouvez étendre et développer ces cadres pour de nouveaux domaines de problèmes. Au fur et à mesure que de nouveaux outils et techniques sont disponibles, et que de nouveaux schémas d’analyse sont découverts et codifiés, vous pouvez les ajouter à votre boîte à outils et les organiser dans un cadre modifié. Si le niveau de modification est important, cela peut indiquer que vous devriez construire un cadre entièrement nouveau.

Mettre le cadre analytique à profit

Imaginez que vous êtes un développeur senior qui vient d’être affecté à un nouveau poste d’architecte pour un système hérité. Vous n’étiez pas impliqué dans le travail de développement initial, mais vous devez rapidement apprendre le système et mettre à niveau une équipe de nouveaux membres, ce qui exige que vous vous mettiez à niveau en premier. Heureusement, vous avez quelques atouts en votre faveur. Premièrement, vous disposez d’un bon ensemble d’exemples d’architecture provenant d’autres systèmes similaires dans l’entreprise. Deuxièmement, vous avez accès au schéma analytique de l’architecture logicielle (voir le tableau 2).

Tableau 2. Schéma analytique de l’architecture logicielle
Elément Description
Outils Profileur de code, outil de rapport de base de données, modèle de document d’architecture logicielle, logiciel de modélisation, analyse de code
Patrons Patrons de déploiement de logiciels, patrons d’architecture, patrons de conception de systèmes, patrons de stockage de données
Formes de modèles Modèles dynamiques (tels que séquence UML, diagrammes d’algorithme, état UML et activité UML), diagrammes entité-relation de base de données, modèles structurels (tels que la carte des classes et des appels de fonctions UML), diagrammes de flux de données, modèles de systèmes d’entreprise
Techniques Réflexion abstraite, organisation et catégorisation, analyse critique, prise de notes
Compétences Structure de code, analyse de flux, profilage du matériel, comportement du système
Catégorisation Comportement fonctionnel, dépendance du sous-système, dépendance des composants, conditionnement du déploiement

En utilisant le cadre d’architecture logicielle, votre première étape consiste à assembler tous les outils recommandés. L’outil de modélisation offre la possibilité de visualiser le code existant dans un modèle UML, ce qui vous permet d’étudier la structure existante du code. Le profileur d’exécution est précieux pour enregistrer les piles d’appels au fur et à mesure que la fonctionnalité de l’application est exécutée.

Puis, vous pouvez étudier les modèles architecturaux communs présents dans l’application. Vous pouvez identifier ces patterns, s’ils sont présents, en utilisant les descriptions de patterns communs notées dans le framework, en particulier les patterns d’analyse et de conception. De nombreux patrons de ce type sont publiés ; connaître les plus courants suffira souvent pour un effort d’analyse architecturale.

La familiarisation avec une variété de formes de modèles, tels que les diagrammes entité-relation (ERD), UML et d’autres approches de modélisation orientées système, vous fournira un large éventail d’options de modélisation. En classant ces modèles par comportement fonctionnel, comparaison logique avec la structure physique et états de comportement interne, vous obtiendrez un enregistrement utile de l’architecture globale du système. Enfin, il est important de connaître vos propres limites. L’auto-évaluation est une tâche difficile mais nécessaire pour s’assurer et se rassurer que toutes les compétences réellement nécessaires sont disponibles pour l’équipe. L’utilisation de l’ensemble des compétences attendues énumérées dans le cadre analytique de l’architecture logicielle constitue un bon point de départ pour déterminer les types de capacités requises pour une tâche d’analyse architecturale. Le cadre analytique vous fournit une liste de contrôle de la quantité minimale d’éléments dont vous avez besoin pour réussir. Des compétences supplémentaires peuvent être requises pour les architectures spécialisées, telles que les réseaux de transport.

Sommaire

Étudier et comprendre des systèmes logiciels complexes peut être une tâche difficile. Pour réussir, vous devez employer une variété d’outils et de techniques pour rassembler, organiser et présenter les descriptions de systèmes. En créant et en adaptant des cadres d’analyse, vous pouvez vous préparer bien à l’avance et recueillir des outils et des exemples utiles à utiliser dans votre situation actuelle. Maintenant que vous savez quels sont les éléments qui composent un cadre analytique réussi, comment réutiliser les cadres et comment créer de nouveaux cadres, vous serez bien préparé pour faire face à de nombreuses situations courantes rencontrées sur les problèmes complexes d’aujourd’hui.

Ressources téléchargeables

  • PDF de ce contenu
  • Pour plus d’informations sur les archétypes métier, lisez Enterprise Patterns and MDA : Building Better Software with Archetype Patterns and UML, par Jim Arlow et Ila Neustadt (Addison-Wesley Professional, 2003).
  • Voyez la série en trois parties (PDF) de Ben Lieberman sur L’art de la modélisation, qui vous apprend à construire un cadre analytique, l’organisation et la construction de modèles, et la composition visuelle (developerWorks, août 2003).
  • Apprenez à modéliser avec des formes structurelles, des thèmes d’organisation et des pivots de diagramme dans l’article de Ben Lieberman,  » Construire des modèles de système efficaces  » (developerWorks, mars 2007).

Laisser un commentaire