Modelisation de L'architecture Logicielle
Modelisation de L'architecture Logicielle
Modelisation de L'architecture Logicielle
Un modèle est une abstraction de la réalité permettant de mieux comprendre le système, Il est
important d’étudier le système logiciel selon son architecture et d’exprimer comment ses
composants et ses entités interagissent pour remplir une fonction logiciel dans un langage donné.
La modélisation à base de graphiques est généralement plus précise qu’une description informelle
en langage naturel. C’est un premier niveau de formalisme, suffisamment léger pour être compris
par le client, suffisamment formel pour pouvoir proposer une première analyse.
Modélisation
Le processus de modélisation vise à obtenir une solution répondant aux exigences du client. La
solution finalement retenue n’est pas obtenue en une seule itération. Plusieurs étapes sont
nécessaires, ces étapes successives permettent de raffiner le niveau de détails du système à réaliser.
Les premières étapes donnent une vision à très gros grains et permettent d’avancer dans la
compréhension du problème.
Par analogie avec un architecte qui dessine plusieurs plans pour concevoir une maison, la conception
d’un système informatique est organisée dans une architecture de modélisation qui prévoit plusieurs
visions du même problème pour aider à trouver une solution acceptable. La cohérence entre les
différentes vues du système est importante, chaque vue ciblant des catégories différentes
d’intervenants ayant des besoins différents.
Lorsqu’une équipe collabore au développement d’un système informatique (de taille conséquente),
trop de détails empêchent d’avoir une vue synthétique compréhensible par tous les participants au
projet informatique, et trop peu d’informations conduit à des interprétations différentes et
contradictoires. À partir d’une certaine taille et complexité, l’informatisation d’un système nécessite un
processus de modélisation.
Quelque soit la taille du problème, une phase de modélisation est une aide au développement du
système informatique. Cependant, souvent, le nombre de personnes qui participent à la résolution du
problème (clients, équipe de développement, équipe de maintenance) est un des éléments jouant
fortement dans la décision de passer par une phase de modélisation. Plus le nombre de personnes est
important, plus les échanges de documents sont importants.
Le processus de modélisation est nécessaire pendant toute la durée de vie du projet : discussion avec
les clients, analyse du système à réaliser, documentation commune entre les développeurs, etc.
La pérennité de l’informatisation réalisée est un autre élément justifiant la décision de modéliser le
système. En effet, le développement mais aussi la maintenance corrective et la maintenance évolutive
du système bénéficient de l’existence du modèle en tant que documentation de référence.
Le modèle permet donc de spécifier le système à réaliser/réalisé, de valider le modèle vis-à-vis des
clients, de fournir un guide pour la construction du système pour organiser les structures de données
et le comportement du système, et de documenter le système et les décisions prises.
Un modèle est une abstraction de la réalité. C’est donc une simplification du monde réel. La
problématique consiste alors à trouver le bon niveau d’abstraction et à exprimer les concepts du
monde réel dans un langage assez abstrait mais aussi précis qu’un langage de programmation pour que
ce langage soit interprétable par un programme informatique.
Le processus d’informatisation consiste à définir des étapes pour aller d’un cahier des charges rédigé
en langage naturel à une mise en œuvre dans un code source particulier. Le modèle du système dans les
premières phases de ce processus est nécessairement une simplification du système réel. Le processus
de modélisation vise à mieux cerner les limites du système à réaliser. Ensuite, les modèles sont raffinés
de plus en plus pour aboutir au code.
Limites de la
modélisations
Le souci avec les modélisations est que on voit des diagrammes d’architecture dans tous les
systèmes d’information. On reconnaît leur utilité. La plupart des équipes en font pour documenter
leur solution. Les architectes s’en servent pour dessiner les interactions entre les systèmes. Par
contre, ils n’ont jamais le même formalisme
De plus, les outils permettant de modéliser sont également très hétérogènes. Il y a les outils dédié à
un standard, comme UML. Après on a les outils plus génériques comme Visio, draw.io, Google
Drawings… On voit également des diagrammes faits dans Powerpoint ou équivalent. Tout ceci ne
favorise pas vraiment le partage et la collaboration !
Enfin, la plupart des outils ne permettent pas de visualiser facilement différents niveaux
d’abstraction selon le but recherché : vue du système, détail d’un composant Finalement, on a besoin
d’une solution standardisée et simple.
C’est là qu’intervient C4
C’est quoi ce C4 ?
Le C4 model apparaît comme une solution simple pour modéliser une architecture
logicielle. Les différents niveaux de détail de visualisation sont très bien pensés et
permettent d’éviter de mettre trop de détails sur un diagramme. Ils servent
également à communiquer avec des publics différents de façon claire.