0% ont trouvé ce document utile (0 vote)
85 vues22 pages

Introduction à l'architecture logicielle

Transféré par

razika boudissa
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
85 vues22 pages

Introduction à l'architecture logicielle

Transféré par

razika boudissa
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture des Systèmes

d’Information

Chapitre 1 : Introduction

CHIKHI Nacim Fateh


Le Génie Logiciel

 Le génie logiciel (GL) est une démarche d’ingénierie qui


traite tous les aspects de la production de logiciels
 „Du cahier des charges jusqu'aux activités de maintenance

 Le GL vise à assurer la production de logiciels en


respectant les aspects :
 „Coût, échéance, qualité

Chapitre 1 – Introduction 2
Architecture logicielle

 C’est une discipline, un processus et un produit.


 Plusieurs définitions :
 L’architecture d’un système logiciel est définie comme l’organisation
fondamentale du système, qui s’incarne dans ses composants, les relations
entre eux et avec leur environnement, et les principes qui guident sa
conception et son évolution (IEEE 1471).
 L’architecture d’un système logiciel est l’ensemble des structures
nécessaires pour raisonner à propos du système, qui comprennent les
éléments logiciels, les relations entre eux et les propriétés de chaque (SEI).
 L'architecture logicielle est l'ensemble des décisions de conception qui, si
elles sont prises de manière incorrecte, peuvent entraîner l’échec du projet
(E. Woods).
 C’est une conception de haut niveau.

Chapitre 1 – Introduction 3
L’architecture logicielle : une
abstraction

 La discipline de l'architecture logicielle est centrée sur


l'idée de réduire la complexité par l'abstraction et la
séparation des préoccupations.
 Une architecture logicielle est une abstraction d’un
système complexe qui sélectionne certains détails et en
écarte d'autres.
 L’architecture s’intéresse à la partie publique des
éléments qui composent le système, c’est-à-dire leurs
interfaces.
 Les éléments écartés sont dits non-architecturaux. Ils
correspondent en général aux détails d’implémentation
des éléments constituant l’architecture.
Chapitre 1 – Introduction 4
Tout système possède une
architecture

 On peut montrer que chaque système comprend des


éléments et des relations entre eux pour permettre un
certain type de raisonnement.
 Dans le cas le plus trivial, un système est lui-même un
élément - une architecture inintéressante et probablement
inutile, mais une architecture néanmoins.
 Cela n’implique pas que l’architecture soit connue de tous.
 C’est pourquoi il est important de distinguer entre
l’architecture d’un système et la représentation de cette
architecture.

Chapitre 1 – Introduction 5
Utilité d’une architecture logicielle

 Compréhension : facilite la compréhension des grands


systèmes complexes en donnant une vue de haut-niveau de
leur structure et de leurs contraintes. Les motivations des
choix de conception sont ainsi mis en évidence
 Réutilisation : favorise l’identification des éléments
réutilisables, parties de conception, composants,
caractéristiques, fonctions ou données communes
 Construction : fournit un plan de haut-niveau du
développement et de l’intégration des modules en mettant en
évidence les composants, les interactions et les dépendances

Chapitre 1 – Introduction 6
Utilité d’une architecture logicielle
(suite)

 Évolution : met en évidence les points où un système peut être


modifié et étendu. La séparation composant/connecteur
facilite une implémentation du type « plug-and-play »
 Analyse : offre une base pour l’analyse plus approfondie de la
conception du logiciel, analyse de la cohérence, test de
conformité, analyse des dépendances
 Gestion : contribue à la gestion générale du projet en
permettant aux différentes personnes impliquées de voir
comment les différents parties du système seront agencées.
L’identification des dépendances entre composants permet
d’identifier où les délais peuvent survenir et leur impact sur la
planification générale

Chapitre 1 – Introduction 7
Importance de l’architecture logicielle :
point de vue technique

 L’architecture détermine si un attribut qualité du système va être


atteint ou non.
 Les décisions prises concernant l’architecture permettent de
raisonner et de gérer le changement lorsque le système évolue.
 L’analyse d’une architecture permet de prédire assez tôt les
attributs qualité du système.
 Une architecture bien documentée améliore la communication
entre les parties prenantes.
 L’architecture abordera très tôt dans le projet les décisions les
plus importantes qui seront difficiles à changer par la suite.
 L’architecture définit un ensemble de contraintes pour
l’implémentation.

Chapitre 1 – Introduction 8
Importance de l’architecture logicielle :
point de vue technique (suite)

 L’architecture est l’élément clé qui permet à l’architecte et au


chef de projet de raisonner sur le coût et le planning du projet.
 Le développement basé architecture focalise beaucoup plus
sur l’assemblage de composants logiciels que sur leur
création.
 En limitant les choix conceptuels, l’architecture canalise la
créativité des développeurs en réduisant la complexité de la
conception et donc du système.
 L’architecture peut être utilisée pour former un nouveau
membre de l’équipe.

Chapitre 1 – Introduction 9
Importance de l’architecture logicielle :
point de vue métier

 Un système est développé pour satisfaire des besoins métier.


 L’architecture du système doit être en phase avec les besoins
métier.
 L’architecture peut influencer la structure organisationnelle
d’une entreprise et vice versa.

Chapitre 1 – Introduction 10
Architecture vs Conception

 Au niveau modèle
 Paquetages, composants et relations
 Niveau de décision plus abstrait
 Les décisions qui doivent être prises à l’avance.
 Les décisions qui sont très couteuses à changer pendant le
développement.
 Pertinente pour les exigences non-fonctionnelles
 Elle inclut:
 Modules
 Bases/technologies de données
 Environnement d’exécution et de déploiement

Chapitre 1 – Introduction 11
Architecture vs Conception (suite)

 Éléments plus concrets


 Classes
 Méthodes/Fonctions
 Tables de données
 Pertinente pour les exigences fonctionnelles
 Éléments qui peuvent être changés pendant le développement
(phase de maintenance)
 Réingénierie (refactoring)
 Evolution
 Adaptation

Chapitre 1 – Introduction 12
Architecture vs Conception (suite)

 “All architecture is design, but not all design is architecture”

 L’architecture laisse plusieurs décisions de conception


ouvertes qui seront prises par les concepteurs ou les
programmeurs.

Chapitre 1 – Introduction 13
Architecture ou Conception ?

 «On veut une couche d’interface graphique, une couche


d’analyse et une couche de stockage des données.»

 «Toutes les nouvelles applications doivent étendre l’interface


Application.»

 «L’application sera disponible comme un service déployé


sur le cloud.»

 «On a besoin d’une base de données NoSQL avec un taux de


disponibilité élevé. »

Chapitre 1 – Introduction 14
Activités liées à l’architecture dans le
processus de développement

 Quel que soit le processus de développement adopté, on


retrouve les activités suivantes liées à l’architecture :
 Justifier le développement du nouveau système
 Comprendre les besoins importants d’un point de vue
architectural
 Créer ou sélectionner l’architecture
 Documenter et communiquer l’architecture
 Analyser ou évaluer l’architecture
 Implémenter et tester le système en se basant sur
l’architecture
 S’assurer que l’implémentation est conforme à
l’architecture
Chapitre 1 – Introduction 15
Standard ISO/IEC/IEEE 42010-2011

Chapitre 1 – Introduction 16
Standard ISO/IEC/IEEE 42010-2011
(suite)

 Architecture Description : Une description d'architecture est un


produit de travail utilisé pour exprimer l'architecture d'un système
d'intérêt. Elle décrit une architecture possible pour un système
d'intérêt. Elle peut prendre différentes formes (document, un
ensemble de modèles, etc.)

 System-of-Interest : Le standard ne définit pas ce qu’est un système.


Ca peut être un système logiciel, une entreprise, un système de
systèmes, etc.

 Stakeholders : Les parties prenantes sont des individus, des groupes


ou des organisations préoccupés par le système d'intérêt. Exemples
de parties prenantes: client, propriétaire, utilisateur, consommateur,
fournisseur, concepteur, mainteneur, auditeur, PDG, autorité de
certification, architecte.

Chapitre 1 – Introduction 17
Standard ISO/IEC/IEEE 42010-2011
(suite)

 Concern : Une préoccupation est tout intérêt dans le système.


Exemples de préoccupations: objectif (du système), fonctionnalité,
structure, comportement, coût, prise en charge, sécurité,
interopérabilité.

 Architecture Viewpoint : Un point de vue d'architecture est un


ensemble de conventions pour la construction, l'interprétation,
l'utilisation et l'analyse d'un type de vue d'architecture. Un point de
vue comprend des types de modèles, des langages et des notations
de points de vue, des méthodes de modélisation et des techniques
analytiques pour encadrer un ensemble spécifique de
préoccupations. Exemples de points de vue : opérationnel,
systèmes, technique, logique, déploiement, processus, information.

Chapitre 1 – Introduction 18
Standard ISO/IEC/IEEE 42010-2011
(suite)

 Architecture View : Une vue d'architecture exprime l'architecture du


système d'intérêt du point de vue d'une ou de plusieurs parties
prenantes pour répondre à des préoccupations spécifiques, en
utilisant les conventions établies par son point de vue. Une vue
d'architecture se compose d'un ou de plusieurs modèles
d'architecture.

 Architecture Model : Une vue est composée de modèles


d'architecture. Chaque modèle est construit conformément aux
conventions établies par son type de modèle, généralement défini
dans le cadre de son point de vue directeur. Les modèles fournissent
un moyen de partager des détails entre des vues et d'utiliser
plusieurs notations dans une vue.

Chapitre 1 – Introduction 19
Qu’est-ce-que la description d’une
architecture logicielle ?

 La description de l’architecture logicielle consiste à :


 Décrire l’organisation générale d’un système et sa
décomposition en sous-systèmes ou composants
 Déterminer les interfaces entre les sous-systèmes
 Décrire les interactions et le flot de contrôle entre les sous-
systèmes
 Décrire également les composants utilisés pour implanter les
fonctionnalités des sous-systèmes
 Les propriétés de ces composants
 Leur contenu (classes, autres composants)
 Les machines ou dispositifs matériels sur lesquels ces modules
seront déployés

Chapitre 1 – Introduction 20
Compétences d’un architecte

 Leardership

 Communication

 Négociation

 Compétences techniques

 Gestion de projet

 Compétences analytiques

Chapitre 1 – Introduction 21
Pourquoi développer une architecture
logicielle ?

 Pour permettre à toutes les parties prenantes (utilisateur


final, ingénieurs système, développeurs, testeurs, …) de
mieux comprendre le système
 Pour permettre aux développeurs de travailler sur des
parties individuelles du système en isolation
 Pour préparer les extensions du système
 Pour faciliter la réutilisation et la réutilisabilité

Chapitre 1 – Introduction 22

Vous aimerez peut-être aussi