Vous êtes sur la page 1sur 39

Université Badji Mokhtar-Annaba

ILC
2014-2015 Master 2 (option: ILC)

ILC
logicielles
Logicielles
architectures

Modèles et Architectures
Architectures

Logicielles
Modèles etaux
Introduction

Présenté par Dr F. ATIL

1/39
objectifs
ILC
2014-2015

 Présenter la notion d’architecture logicielle


logicielles
Logicielles

 Donner un aperçu des principaux styles


Logicielles

architecturaux
architectures

 Présenter les langages de description d’architectures


Architectures

(Acme avec son environnement AcmeStudio)


etetArchitectures

 Découvrir le lien entre l’architecture et le


aux

déploiement physique à travers le diagramme de


déploiement
Introduction
Modèles
Modèles

2/39
Contrôle des études
ILC
2014-2015

• Un cours de 3h par semaine


- Nombre d’heure prévu : 40h
logicielles
Logicielles

• Éventuellement un exposé ou TP par binôme

• Un contrôle écrit obligatoire


architectures
Architectures

• Note finale
- Moyenne arithmétique des deux notes ou bien par
pondération de la note du contrôle
Modèles etaux
Introduction

• Nombre de crédits : 4

3/39
Master 2 ILC
ILC
2014-2015 Cours 1

ILC
Introduction aux architectures logicielles

Introduction aux Architectures


logicielles

4/39
Plan dU cours
ILC
2014-2015

Un petit historique
Introduction aux architectures logicielles

Architecture logicielle
Les composants
Les connecteurs
La configuration

5/39
Contexte général
ILC
2014-2015

Le génie logiciel (anglais software engineering) est une


Introduction aux architectures logicielles

science de génie industriel qui étudie les méthodes


de travail et les bonnes pratiques des ingénieurs qui
développent des logiciels.

Le génie logiciel s'intéresse en particulier aux procédures


systématiques qui permettent d'arriver à ce que des
logiciels de grande taille correspondent aux attentes
du client, soient fiables, aient un coût d'entretien
réduit et de bonnes performances tout en
respectant les délais et les coûts de construction

6/39
Un petit historique
ILC
2014-2015

Commençons par exposer brièvement l’origine et


Introduction aux architectures logicielles

l’évolution du domaine de génie logiciel.

Naissance du
Génie logiciel

1946 1968 Evolution du génie logiciel

Crise du logiciel

7/39
Un petit historique
ILC
2014-2015
Introduction aux architectures logicielles

1946 68 ans
2014
Années

Création du premier
ordinateur entièrement
électronique

ENIAC
Il pesait 30 tonnes et occupait
une surface de 72 m2

8/39
Un petit historique
ILC
2014-2015
Introduction aux architectures logicielles

1946 22 ans 1968


Années

•De Il 1946
était très
à 1968:
difficile de réaliser les logiciels satisfaisant les
Deux exemples
•cahiers de charge d’échecs importants
dans les de cetteparce
délais prévus période
que:le
• Il n’y avait aucune
développement ne se approche par étapes. Crise
faisait pas méthodique du logiciel
de développement.
le développement du compilateur PL1 de Control Data n’a pas
pu
• Leêtre complété.ne des
développement
gestionnaire logiciels
pouvait pas seconsistait
baser suràdesprogrammer et à
jalons (repères)
corriger
pour les bogues.
planifier et suivre adéquatement la progression du
développement.le système d’exploitation OS-360, conçu pour gérer
l’ensemble desévoluaient
• Les logiciels programmes et lesexécutés
besoins par les ordinateurs de la série
également.
IBM-360, a été livré très en retard et comportait beaucoup
• Les logicielles devenaient de plus en plus complexes et de
d’anomalies.
moins en moins fiables.

9/39
Un petit historique
ILC
2014-2015
De la crise du logiciel au GL

Problématique:
Introduction aux architectures logicielles

- A la fin des années 60, avec l’avènement des machines de


3ième génération est apparu la crise du logiciel. Ces machines
rendaient possible des applications jusqu’alors jamais
réalisées

- Les mécanismes utilisés pour les petits systèmes voyaient


leur limite sur ces grosses applications.

- Les systèmes étaient peu fiable, difficiles à maintenir et avec


de faible performance

10/39
Un petit historique
ILC
2014-2015
De la crise du logiciel au GL
Introduction aux architectures logicielles

Besoins:

-De nouvelles techniques et méthodes pour concevoir et


maîtriser ces nouveau logiciels devenaient indispensable

-Nécessité de passer d’une démarche artisanale à une


discipline d’ingénieur

11/39
Un petit historique
ILC
2014-2015
Introduction aux architectures logicielles

1968
Années

• Pour sortir de la crise, en 1968 sous le parrainage de l’OTAN, un groupe de


chercheurs et de praticiens crée le génie logiciel (anglais, software engineering)

• Le génie logiciel est défini comme un domaine qui couvre les méthodes, la
modélisation, les techniques, les outils, les activités, les biens livrables et la
gestion de projets relatifs au développement et à la maintenance du logiciel.

• En s’appuyant sur une approche méthodique, l’équipe de développement accroit sa


productivité et réalise des logiciels de qualité. De plus, il devient plus facile aux
gestionnaires de « prédire » l’échéancier puisque les étapes sont connues.

12/39
Un petit historique
ILC
2014-2015
Introduction aux architectures logicielles

1968 46 ans 2014


Années

Depuis 1968, on assiste à une prolifération et à une


évolution continue :
• des méthodes d’analyse et des notations pour spécifier les
fonctionnalités d’un logiciel;

• des techniques de conception et des notations pour


exprimer la solution;

• des techniques et des langages de programmation;

• des procédures de validation et de vérification pour


assurer la qualité du logiciel;

• des procédures de maintenance.

13/39
Un petit historique
ILC
2014-2015
Nouveaux thèmes de recherche
De nombreux thèmes de recherche se sont alors développés
et ont contribués à l’élaboration de ce nouveaux domaine :
Introduction aux architectures logicielles

- La spécification et analyse des besoins


- La conception et la modélisation
- Les langages de programmation et les environnements de
développement
- La validation et le test
- L’ingénierie inverse et la maintenance
- La gestion de projets
- Etc

14/39
Un petit historique
ILC
2014-2015

Les recherche en GL étaient donc toujours d’actualité et de


nouvelles approches sont apparues dans les années 90:
Introduction aux architectures logicielles

- Les systèmes distribués


- Les modèles de composants
- La création d’un standard de modélisation à travers UML
- L’architecture logicielle
- Etc.

Aujourd’hui, les gros logiciels représentent des millions de lignes de


code Réaliser et faire évoluer de tels logiciels reste encore un défi

15/39
Architecture logicielle
ILC
2014-2015

L’architecture logicielle est un domaine du GL qui a reçu


une attention particulière ces dernières années. C’est au
Introduction aux architectures logicielles

cours de la décennie 1970–80 que les grands principes


architecturaux furent élaborés.

Les éditeurs de logiciels ont pris conscience qu’une


architecture est un facteur critique dans la réussite du
développement et facilite la maintenance et l’évolution
du logiciel

Une architecture contribue à la maîtrise des grands


logiciels

16/39
Architecture Logicielle
ILC
2014-2015

La conception d’une bonne architecture logicielle peut amener à un


produit:
Introduction aux architectures logicielles

- Qui répond aux besoins des clients


- Qui peut être modifiés facilement pour rajouter de nouvelles
fonctionnalités

Une architecture inappropriée peut avoir des conséquences


désastreuses jusqu’à l’arrêt du projet

17/39
Architecture logicielle
ILC
2014-2015

• L’architecture d’un programme ou d’un système informatique est


la structure (ou les structures) du système qui comprend les
Introduction aux architectures logicielles

éléments logiciels, leurs propriétés visibles et leur relations

• L’architecture d’un système est sa conception de haut niveau

• N’importe quel système complexe est composé de sous-


systèmes qui interagissent entre eux

• La conception de haut niveau est le processus qui consiste à


identifier ces sous-systèmes ainsi que les relations qu’ils
entretiennent entre eux

• L’architecture d’un système est le résultat de ce processus

18/39
Architecture Logicielle
ILC
2014-2015

• L’architecture implique plusieurs choix dont les technologies, les


produits et les serveurs à utiliser
Introduction aux architectures logicielles

• Il n’y a pas une architecture unique permettant de réaliser le


système, il y en a plusieurs.

• Le concepteur ou l’architecte tâchera de choisir la meilleure


architecture possible selon plusieurs critères dont la nature du
projet, les compétences de l’équipe, les budgets et outils
disponibles, …etc.

19/39
Architecture logicielle
ILC
2014-2015 Définition

• IEEE 1471 standard (2000)
« The fundamental organization of a system embodied in its
Introduction aux architectures logicielles

components, their relationships to each other and to the


environment, and the principles guiding its design and
evolution »

 L’architecture logicielle fournit une description de haut niveau de la


structure d’un système.

Elle est définie par des composants, des connecteurs et des


configurations.

Connecteur
Composant Composant
20/39
Architecture logicielle
ILC
2014-2015 Définition
• Bass (1998)

« The architecture of a computing system is a set of structures
Introduction aux architectures logicielles

which comprise software components, the externally visible


properties of these components and the relationships among
them »

Autrement dit :
• Plusieurs points de vue sur une architecture
• Un point de vue : une structure, sa représentation pour une
finalité donnée
• Propriétés d’un composant : description du comportement
attendu
 Services fournis ou requis
Performance
Protocole de communication
21/39
Architecture logicielle
ILC
2014-2015
Motivations:

 Maîtriser la complexité du système


Introduction aux architectures logicielles

➔ Vision globale, modèle structuré, hiérarchique

 Servir de racine commune pour :


➔ Conception détaillée et implantation
➔ Estimation des coûts et gestion de projet
➔ Analyses et validation
➔ Évolutions

 Support pour la réutilisabilité des systèmes logiciels


➔ Des composants, des sous-systèmes, des
«principes »
de conception, etc.
22/39
Architecture logicielle
ILC
2014-2015

Exemple (simpliste) : décrire l'architecture


Introduction aux architectures logicielles

logicielle d'un système constitué de deux clients


et un serveur. Le service est acquitté, sans
connexion

23/39
Architecture logicielle
ILC
2014-2015

Avec des boites et des flèches


•Structure explicite
Introduction aux architectures logicielles

•Notion de composant, dotés


d'interface, interconnectés
•Compréhension intuitive

Client

Serveur
Client
Mais :
•Serveur mono ou multi-thread
?
•Activation des composants ?

Nécessité de langage de description d’architecture


24/39
Architecture logicielle
ILC
2014-2015
Représentations des architectures

Il existe plusieurs représentations graphiques


Introduction aux architectures logicielles

des architectures.

Une des représentations les plus utilisées est la


représentation C&C : Composants et
Connecteurs

La représentation C&C est un graphe contenant


des composants et des connecteurs

25/39
Les composants
ILC
2014-2015

• Un composant est un module logiciel répondant à un


besoin fonctionnel / applicatif (application, bibliothèque,
Introduction aux architectures logicielles

module, …etc.) ou un entrepôt de données

• Un composant est identifié par son nom qui indique son


rôle dans le système

• Les composants communique entre eux en utilisant des


ports (ou interfaces)

• Les architectures utilisent des composants standards :


serveurs, bases de données, application, clients, …etc.

26/39
Serveurs et clients
ILC
2014-2015

• Un serveur est un module logiciel qui répond aux requêtes


d’autres modules appelés clients
Introduction aux architectures logicielles

• Généralement, les services et les clients sont hébergés


dans des machines différentes et communiquent via le
réseau (intranet / internet)

• Par exemple, le service http répond aux requêtes des


clients qui sont les navigateurs web

27/39
application
ILC
2014-2015

• Une application est un module logiciel qui a un rôle défini


dans le système logiciel
Introduction aux architectures logicielles

• Par exemple, une application d’envoi de mails

28/39
Base de données
ILC
2014-2015

• Une base de données est un entrepôt stockant les données sous


un format normalisé
Introduction aux architectures logicielles

• L’interrogation et la modification des données se fait en utilisant


un langage spécial appelé SQL

• La plupart des bases de données obéissent au modèle


relationnel

• Un SGBD (Système de Gestion de Base de Données) est une


base de données puissante et accessible sur le réseau conçue
généralement pour les gros systèmes

• SQL Server, Oracle, MySQL sont des exemples de SGBD connus


sur le marché

29/39
Vue C&c
ILC
2014-2015
Introduction aux architectures logicielles

Client Serveur

Base de données Application

30/39
Connecteur de composant
ILC
2014-2015

• Le connecteur modélise une interaction entre deux composants.


C’est, donc un composant spécialisé dans l'interaction, ne
Introduction aux architectures logicielles

répondant pas directement à un besoin fonctionnel / applicatif

• Un connecteur peut modéliser une interaction simple (appel de


procédure) ou une interaction complexe (par exemple utilisation
d’un protocole comme http)

• Un connecteur propose des rôles aux composants (ex :


producteur, consommateur, etc.)

• C’est une entité de même rang que les composants applicatifs

31/39
Exemple de JSP
ILC
2014-2015

JDBC
Introduction aux architectures logicielles

ht
tp Serveur web SGBD MySQL

Navigateur

JSP: JavaServer Pages


JDBC: Java DataBase Connectivity)
HTTP: HyperText Transfer Protocol

32/39
Vues d’une architecture
ILC
2014-2015

• La vue logique d’une architecture logicielle définit les principaux


composants d’une architecture sans se soucier des détails
Introduction aux architectures logicielles

physiques (équipements, machines, …etc.)

• La vue physique s’intéresse au déploiement physique des


différents services

• La vue physique est peu précise lors de la conception. Elle


devient concrète lors de la phase de déploiement.

33/39
Exemple 1
ILC
2014-2015 Services déployés dans le même serveur

Serveur 1
Introduction aux architectures logicielles

Serveur web SGBD MySQL


JDBC

ttp
h

Navigateur

34/39
Exemple 2
ILC
2014-2015 Services déployés dans des serveurs différents

Serveur 1 Serveur 2
Introduction aux architectures logicielles

Serveur web SGBD MySQL


JDBC

ttp
h

Navigateur

35/39
Configuration de composant
ILC
2014-2015

 Graphe de composants et de connecteurs


spécifiant tout ou partie d'une architecture selon un
Introduction aux architectures logicielles

certain point de vue

➔ Doit respecter des contraintes syntaxiques,


sémantiques, spécifiques

➔ Encapsulable dans un composant (non


atomique) et réutilisable

36/39
Architecture logicielle
ILC
2014-2015
Finalité d’une architecture

 communication (précision et non ambiguïté de la


Introduction aux architectures logicielles

description)

 rétro-conception d’un système existant

 évaluation (selon des critères qualité)

37/39
Architecture logicielle
ILC
2014-2015
Avantages d’une architecture
Introduction aux architectures logicielles

 L’architecture logicielle offre de nombreux avantages tout au


long du cycle de vie du logiciel. La présence d’une
représentation de l’architecture logicielle du système étudié
favorise le passage de l’étape de conception à l’étape
d’implémentation.

 De même lors de l’étape de maintenance corrective, elle facilite


la localisation des erreurs résiduelles. Egalement, elle favorise
l’extensibilité du logiciel lors de l’étape de maintenance
évolutive.

38/39
Architecture Logicielle
ILC
2014-2015

 Les travaux effectués dans le domaine des architectures logicielles


ont permis de réaliser trois avancées majeures:
Introduction aux architectures logicielles

 Le développement de langages de description d’architecture


(ADL) et d’outils associés

 La formalisation d’architectures logicielles standard et la


définition d’un vocabulaire commun

 La promulgation de ce domaine à travers des livres et des cours


dans les universités

39/39

Vous aimerez peut-être aussi