Vous êtes sur la page 1sur 30

Architecture Logicielle

Chapitre 1 :

Fondements de l’architecture logicielle

Chaabani Marwa
2020-2021
Introduction

Chaabani Marwa 2
Introduction

Un système logiciel ne doit jamais être figé, il doit être toujours


capable d’évoluer soit pour prendre en compte de nouveaux
besoins fonctionnels, techniques ou matériels, soit pour modifier
les besoins déjà exprimés

Chaabani Marwa 3
Introduction

• L’évolution des logiciels est indispensable pour que le


logiciel reste utile et utilisable.
• L’environnement commercial change et de nouveaux besoins
apparaissent.
• Les erreurs découvertes doivent être corrigées.
• L’architecture matérielle de déploiement a évolué et a
amélioré les performances et la fiabilité .
• Les nouvelles technologies sont de plus en plus utilisées …
Chaabani Marwa 4
Introduction

L’évolution logicielle est ainsi une nécessité importante dans le


monde des systèmes informatiques.
Elle permet d’éviter que les systèmes ne soient obsolètes par
rapport aux nouveaux besoins.
En effet, elle allonge la durée de vie des systèmes et ainsi
garantit leur viabilité économique (réduction des coûts et des
délais de développement des logiciels)

Chaabani Marwa 5
Historique et Evolution

Paradigmes de programmation
Langages machine

*
Langages
Assembleur

procéduraux ** services
services

composants

objets
01011
10100
11000
01011

Chaabani Marwa 6
Historique et Evolution
 Programmation non Structurée ( ~1950 )
Assembleur : un langage de bas niveau qui représente le
langage machine sous une forme compréhensible et lisible par
un être humain.

Chaabani Marwa 7
Historique et Evolution
 Programmation Structurée (1960 – 1970 )
Un programme informatique ≈ suite d’étapes (flux de contrôle).

Chaabani Marwa 8
Historique et Evolution
 Programmation orientée objet (POO) (1970- 1990)
-Apparition des nouvelles architectures logicielles:
Architecture en couches , Architecture orientée objets
Architecture client-serveur Centrée sur les données…

-Langages orientés objets :


Action Script , Delphi , Java , JavaScript ,C Sharp , C++ ,
Ocaml , PHP 5 , Python ,Ruby ….

Chaabani Marwa 9
Historique et Evolution
 Programmation orientée Composants (1990-2000)
-Apparition des architectures distribuées & Développement de
l’architecture 3-tiers.

 Programmation orientée services (2000)


-Architectures SOA (Service Oriented Architecture )
-Cloud Computing …

Chaabani Marwa 10
Concepts de base
 L’ objectif des architectures logicielles est de Faire un
système logiciel qui répond à la fois :
- aux exigences des parties prenantes
- aux contraintes qui existent durant sa production

 L’architecture logicielle est l’ensemble des décisions qui font


échouer votre projet , lorsqu’elles sont mal prises.

Chaabani Marwa 11
Concepts de base
• Représenter l’organisation générale d’un système et sa
décomposition en sous-systèmes ou composants

• Déterminer les interfaces et les interactions entre les sous-systèmes

• Décrire les composants utilisés pour implanter les fonctionnalités des


sous-systèmes / Composants :

– Les propriétés

– Le contenu ( classes, autres composants)

– Les machines ou équipements matériels sur lesquels ces modules


seront déployés
Chaabani Marwa 12
Concepts de base

 Une architecture logicielle est une représentation abstraite de


la structure d'un système informatique exprimée
essentiellement à l’aide de composants logiciels et des
connecteurs.

Chaabani Marwa 13
Concepts de base : Composant
Un composant est une unité de déploiement qui :

– Encapsule un traitement et/ou des données

– Encapsule un sous-ensemble de fonctionnalités et/ou de


données du système

– Restreint l’accès à ce sous-ensemble au moyen d’une


interface définie explicitement

Chaabani Marwa 14
Concepts de base : Composant

Exemple :

Chaabani Marwa 15
Concepts de base : Connecteurs

 Le connecteur modélise l’interaction entre deux composants


-Interaction simple : Appel de procédure / méthode
-Interaction complexe : Utilisation d’un protocole (HTTP …)

 Un connecteur peut avoir un ou plusieurs rôles :


Communication , Coordination (contrôle du calcul, transmission
des données, etc.) , Conversion (interaction entre composants
développés avec des langages différents par exemple) ,
Synchronisation (accès contrôlées aux données partagées )…

Chaabani Marwa 16
Concepts de base

Chaabani Marwa 17
Concepts de base
Du Problème à la Solution

Chaabani Marwa 18
Intérêt et utilité
 Pourquoi développer une architecture logicielle ?

Chaabani Marwa 19
Intérêt et utilité
 Utilité d’une architecture logicielle :
Compréhension : facilite la compréhension des systèmes complexes et
donne une vue de haut-niveau de leur structure et de leurs contraintes.
Réutilisation : facilite l’identification des parties réutilisables, éléments
de conception, composants, fonctions ou données communes.
Évolution : met en évidence les points où un système peut être modifié
et étendu.
Gestion : contribue à la gestion générale du projet en permettant
l’identification des délais et leurs impacts sur la planification générale.

Chaabani Marwa 20
Intérêt et utilité

La qualité d’un logiciel se mesure par rapport à plusieurs critères :


 Exigences fonctionnelles: Une application est créée pour répondre , tout
d’abord, aux besoins fonctionnels des entreprises.
 Exigences Techniques :
◦ Performance : rapidité d’exécution, temps de réponse , montée en charge …
◦ La maintenance: évoluer dans le temps. fermée à la modification et ouverte
à l’extension.
◦ Sécurité ◦ Portabilité ◦ Capacité de communiquer avec d’autres applications
distantes. ◦ Disponibilité et tolérance aux pannes ◦ Design des ses interfaces
graphiques ◦ Coût du logiciel …
Chaabani Marwa 21
Intérêt et utilité

Impact sur la qualité logicielle :


 L'architecture a une forte influence sur les propriétés finales d'un système
 La structuration architecturale favorise ou pénalise les propriétés non
fonctionnelles telles que :
o Performance
o Sécurité
o Sûreté
o Disponibilité
o Maintenabilité …

Chaabani Marwa 22
Intérêt et utilité

Chaabani Marwa 23
Intérêt et utilité
 La représentation de l’architecture facilite :
La définition du plan de travail
La répartition du travail entre les équipes
L’allocation des ressources
L’imposition des contraintes techniques
La structuration des différentes étapes :
o Le développement
o Les tests
o La documentation
o La maintenance Chaabani Marwa 24
l’ Architecte : Un lieu de rencontre

Chaabani Marwa 25
Rôle de l’ Architecte
Par sa position centrale, Il a une vision globale de
l’architecture et des contraintes associées (fonctionnelles,
applicatives et techniques) :
- Prendre connaissance du fonctionnel en récupérant les
informations des analystes
- Assister le concepteur sur les premières modélisations
- Assister le développeur sur le codage des premiers modules
applicatifs
– Le découpage du systèmes en couches
– Les technologies et les framework à mettre en œuvre
– Les design patterns à utiliser
– Les règles de nommages des packages…
- Participer / piloter les phases d’intégration
Chaabani Marwa 26
Rôle de l’ Architecte

Chaabani Marwa 27
Synthése

 Pourquoi développer une architecture logicielle ?

Permettre de mieux comprendre le système


Permettre aux développeurs de travailler en isolation sur des
parties différentes
Préparer les extensions du système & Faciliter sa réutilisation
Permettre la modificabilité et assurer la disponibilité

Chaabani Marwa 28
Chaabani Marwa 29
Références

• https://www.academia.edu/43554698/Architecture_logicielle_et_co
nception_Conception_architecturale
• https://www.yumpu.com/fr/document/view/36462965/cours01-con
ception-architecturale-1pdf
• http://www.ptidej.net/courses/log4430/fall11/Transparents/Cours%
201%20-%20Conception%20architecturale%201.pdf
• https://www.scribd.com/document/51899057/Chapitre4-Conceptio
nArchitecturale
• https://www.yumpu.com/fr/document/view/36462965/cours01-con
ception-architecturale-1pdf

Chaabani Marwa 30

Vous aimerez peut-être aussi