Guide de l'Architecture Logicielle
Guide de l'Architecture Logicielle
Présenté par :
Brayan Esneider Guativa Rincón
Fiche 1966781B
Programme ADSI
Bogotá
avril 2020
INTRODUCTION
Ce document contient la définition de l'architecture logicielle complétée par
quelques termes qui aideront le lecteur à mieux comprendre ce concept ; De
même, 5 auteurs sont cités, comme Beyond Software Architecture : Création et
maintien de solutions gagnantes de Luke Hohmann, Domain-Driven Design :
Tackling Complexity in the Heart of Software d'Eric Evans, entre autres, qui
clarifient de leur propre point de vue la conception de ce sujet dans une brève
introduction à ses livres.
Par rapport à ces études et théories, je donne mon analyse du sujet avec des
connaissances de base en la matière et avec l'appui de la documentation acquise
via Internet afin de conclure avec ce petit livre.
CONTENU Pages
Cadre théorique Page 1
Livres supplémentaires Page 3
Analyse contextuelle de l'architecture Page 6
logicielle
Littérature Page 8
Cadre théorique
Le SEI a compilé une liste de définitions modernes, classiques et bibliographiques
de l'architecture logicielle. Les définitions modernes proviennent de Software
Architecture in Practice et de la norme ANSI/IEEE Std 1471-2000, Recommandée
pour la description architecturale des systèmes à forte intensité logicielle. Les
définitions classiques apparaissent dans certains des livres et documents les plus
importants ou les plus influents sur l'architecture. Les définitions bibliographiques
sont tirées d'articles et d'articles de notre bibliographie sur l'architecture logicielle.
(Voir lien 1)
Une définition reconnue est celle de Clements [Cle96a] : SA est, d'une manière
générale, une vision du système qui inclut les principaux composants du système,
le comportement de ces composants tel que perçu du reste du système, et la
manière dont Les composants interagissent et se coordonnent pour réaliser la
mission du système. La vue architecturale est une vue abstraite, offrant le plus
haut niveau de compréhension et la suppression ou le report des détails inhérents
à la plupart des abstractions.
L'architecture logicielle est devenue une partie importante des projets logiciels.
Lorsque vous construisez une architecture logicielle solide, vous sélectionnez les
parties importantes d'un système, réfléchissez à la manière dont ces parties
s'emboîtent et prenez des décisions cruciales lors de la conception de ces
systèmes. C'est la base de tout projet de développement logiciel. En fait, il peut
être intéressant de lire un article sur les avantages et l’importance de l’architecture
logicielle.
Il y a une grande différence entre un développeur senior et un architecte logiciel.
En tant qu'architecte, vous devez avoir plus d'expérience pour pouvoir concevoir
une solution de bout en bout.
En architecture logicielle, la théorie est aussi importante que la pratique, c'est
pourquoi notre équipe de développeurs et d'architectes de logiciels a dressé une
liste des meilleurs livres d'architecture logicielle à lire cette année. Ces livres sur
l'architecture logicielle sont très utiles pour comprendre et appliquer efficacement
les principes de l'architecture logicielle dans des projets logiciels réels.
Une architecture logicielle, également appelée architecture logique, consiste en un
ensemble de modèles et d'abstractions cohérents qui fournissent un cadre défini et
clair pour interagir avec le code source du logiciel.
Une architecture logicielle est sélectionnée et conçue en fonction d'objectifs
(exigences) et de contraintes. Les objectifs sont ceux prédéterminés pour le
système d'information, mais pas seulement les objectifs fonctionnels, mais aussi
d'autres objectifs tels que la maintenance, l'audit, la flexibilité et l'interaction avec
d'autres systèmes d'information. Les restrictions sont les limitations dérivées des
p. 1
technologies disponibles pour mettre en œuvre les systèmes d'information.
Certaines architectures sont plus recommandées à mettre en œuvre avec
certaines technologies tandis que d'autres technologies ne sont pas adaptées à
certaines architectures. Par exemple, il n’est pas possible d’utiliser une
architecture logicielle à trois niveaux pour mettre en œuvre des systèmes temps
réel.
L'architecture logicielle définit, de manière abstraite, les composants qui effectuent
certaines tâches informatiques, leurs interfaces et la communication entre eux.
Chaque architecture doit être implémentable dans une architecture physique, ce
qui consiste simplement à déterminer à quel ordinateur sera assigné chaque
tâche.
p. 2
Livres supplémentaires
Ensuite, je citerai quelques petits concepts correspondant au sujet.
p. 3
projets logiciels confrontés à des domaines complexes. Ce livre est excellent car il
intègre de nombreux exemples basés sur des projets réels pour illustrer
l'application de la conception axée sur le domaine au développement de logiciels
réels. Les lecteurs apprennent à utiliser un modèle de domaine pour rendre un
effort de développement complexe plus ciblé et plus dynamique.
3. 97 choses que tout architecte logiciel devrait savoir : la sagesse collective
des experts par Richard Monson-Haefel
Le troisième sur la liste des livres sur l'architecture logicielle se trouve « 97 choses
que tout architecte logiciel devrait savoir ». Dans cet ouvrage technique
véritablement unique, les principaux architectes logiciels d'aujourd'hui présentent
des principes précieux sur des questions clés de développement qui vont au-delà
de la technologie. Plus de quatre douzaines d'architectes, dont Neal Ford, Michael
Nygard et Bill de Hora, proposent des conseils pour communiquer avec les parties
prenantes, éliminer la complexité, responsabiliser les développeurs et bien
d'autres leçons pratiques qu'ils ont tirées de leurs années d'expérience. Parmi les
97 principes de ce livre, vous trouverez des conseils utiles tels que : « La simplicité
avant la généralité, l'usage avant la réutilisation » – Kevlin Henney. Pour réussir en
tant qu'architecte logiciel, vous devez maîtriser à la fois les affaires et la
technologie. Ce livre vous explique ce que les meilleurs architectes logiciels
considèrent comme important et comment ils abordent un projet. Si vous souhaitez
améliorer votre carrière, ce livre est une lecture indispensable.
4. Modèles d'intégration d'entreprise : conception, création et déploiement de
solutions de messagerie par Gregor Hohpe, Bobby Woolf
La quatrième place sur la liste des meilleurs livres sur l'architecture logicielle est
« Modèles d'intégration d'entreprise ». Ce livre fournit un catalogue inestimable de
soixante-cinq modèles, avec des solutions concrètes. Les auteurs incluent
également des exemples couvrant diverses technologies d'intégration différentes,
telles que JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP et XSL.
Il explore également en détail les avantages et les limites des architectures de
messagerie asynchrone. Les auteurs présentent des conseils pratiques sur la
conception de code qui connecte une application à un système de messagerie et
fournissent des informations détaillées pour vous aider à déterminer quand
envoyer un message, comment le diriger vers la destination appropriée et
comment surveiller l'état d'un système de messagerie. . Si vous voulez savoir
comment gérer, contrôler et entretenir un système de messagerie une fois utilisé,
lisez ce livre !
5. Architecture logicielle en pratique par Len Bass, Paul Clements, Rick
Kazman
Le premier sur la liste des meilleurs livres sur l'architecture logicielle est « Software
Architecture in Practice ». Super livre pour apprendre l'architecture logicielle ! Il se
p. 4
concentre sur des sujets clés de l'architecture logicielle : les « ilités », les
modèles/styles, la documentation sur l'architecture et l'évaluation de l'architecture.
Les auteurs partagent leur propre expérience, couvrant les sujets techniques
essentiels pour concevoir, spécifier et valider un système. Ils soulignent également
l'importance du contexte commercial dans lequel les grands systèmes sont
conçus. Son idée était de présenter l'architecture logicielle dans un environnement
réel, reflétant à la fois les opportunités et les contraintes auxquelles les entreprises
sont confrontées. Ils présentent également différentes études de cas décrivant une
architecture logicielle réussie.
p. 5
Analyse contextuelle de l'architecture logicielle
Dans cet espace actuel, je présente mon point de vue en tant qu'étudiant actuel
avec des connaissances de base sur le concept et avec le soutien du sujet lu
précédemment. Par conséquent, l'analyse présentée est très simple, mais je
considère qu'il s'agit d'une explication complète d'un développement. qui
commence à s'aventurer dans ce monde merveilleux du développement :
De mon concept je considère que le logiciel est la base principale des systèmes
intelligents où je le considère comme le corps humain où il est divisé en deux
fractions qui le déterminaient 1. Comme le système nerveux central (Le matériel)
2. Le système musculaire et squelettique (Le matériel) ; qui se complètent et tous
deux doivent pouvoir générer une action entre eux.
Je complète ce qui précède de la manière suivante :
Le système nerveux central est l'architecture fondamentale du corps qui donne la
conscience au même point ; Nous en sommes là au point de l'ingénierie système
du logiciel plus précisément de son architecture dans la base principale de chacun
de nos ordinateurs depuis ceux-ci.
Le système musculaire et squelettique est ce que je considère comme le
complément de tout ce visuel ; Au niveau de l'ingénierie système, il s'agit de la
souris, des moniteurs, du clavier, du disque dur, entre autres (ce sujet ne sera pas
abordé dans ce sujet puisque le livre est axé sur les logiciels).
En raison de ce qui précède, nous pouvons considérer que le système
informatique et le corps pourraient être considérés comme similaires dans de
nombreuses actions quotidiennes ; où l’action même de manger pourrait être
considérée comme une chaîne de commandes contrôlées.
Je pense aussi qu'il est pertinent de vous dire que ce système d'information est
très important dans les avancées et dans les grandes entreprises, où il peut aussi
présenter des erreurs fatales comme je le mentionnerai ci-dessous :
p. 6
Malheureusement, plutôt que d’être une exception, la détection de bogues dans
les logiciels est un problème courant. Dans de nombreux cas, ces erreurs ne sont
qu'une nuisance sans conséquences graves et sont corrigées avec une nouvelle
version du logiciel sans causer de dommages supplémentaires.
Mais il ne faut pas oublier que les logiciels sont partout et qu'une erreur dans un
logiciel bureautique peut nous rappeler la mère du programmeur de service, mais
une erreur dans un logiciel de contrôle de systèmes médicaux ou critiques peut
avoir des conséquences bien plus fatales.
Comme cette erreur peut être trouvée, avec un examen rigoureux, la panne peut
être détectée et une solution pertinente peut être trouvée, qu'elle soit logicielle ou
matérielle, selon les besoins. Ainsi, comme mentionné ci-dessus, les deux sont
complémentaires.
p. 7
Littérature
Links:
https://apiumhub.com/es/tech-blog-barcelona/libros-sobre-arquitectura-de-
software/
https://es.wikipedia.org/wiki/Software_Architecture
http://cic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:introarq.pdf
https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=513807
https://ingenieriadesoftware.es/grandes-errores-historia-software-informatico/
p. 8