Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAurore Claudine Laporte Modifié depuis plus de 6 années
1
Université Badji Mokhtar-Annaba Master 2 (option: ILC)
Modèles et Architectures Logicielles Modèles et Architectures Logicielles Présenté par Dr F. ATIL
2
Présenter la notion d’architecture logicielle
objectifs Présenter la notion d’architecture logicielle Donner un aperçu des principaux styles architecturaux Présenter les langages de description d’architectures (Acme avec son environnement AcmeStudio) Découvrir le lien entre l’architecture et le déploiement physique à travers le diagramme de déploiement Modèles et Architectures Logicielles Modèles et Architectures Logicielles
3
Modèles et Architectures Logicielles
Contrôle des études • Un cours de 3h par semaine - Nombre d’heure prévu : 40h • Éventuellement un exposé ou TP par binôme • Un contrôle écrit obligatoire • Note finale - Moyenne arithmétique des deux notes ou bien par pondération de la note du contrôle • Nombre de crédits : 4 Modèles et Architectures Logicielles
4
ILC Introduction aux Architectures logicielles
Master 2 ILC Cours 1 ILC Introduction aux Architectures logicielles Introduction aux architectures logicielles
5
Les connecteurs La configuration Un petit historique
Plan dU cours Un petit historique Architecture logicielle Les composants Les connecteurs La configuration
6
Contexte général Le génie logiciel (anglais software engineering) est une 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
7
Evolution du génie logiciel
Un petit historique Commençons par exposer brièvement l’origine et l’évolution du domaine de génie logiciel. Naissance du Génie logiciel 1946 1968 Evolution du génie logiciel Crise du logiciel
8
1946 2014 Un petit historique 68 ans Années
Création du premier ordinateur entièrement électronique ENIAC Il pesait 30 tonnes et occupait une surface de 72 m2
9
1946 1968 Un petit historique Crise du logiciel 22 ans Années
De 1946 à 1968: Il n’y avait aucune approche méthodique de développement. Le développement des logiciels consistait à programmer et à corriger les bogues. Les logiciels évoluaient et les besoins également. Les logicielles devenaient de plus en plus complexes et de moins en moins fiables. Il était très difficile de réaliser les logiciels satisfaisant les cahiers de charge dans les délais prévus parce que le développement ne se faisait pas par étapes. Le gestionnaire ne pouvait pas se baser sur des jalons (repères) pour planifier et suivre adéquatement la progression du développement. Deux exemples d’échecs importants de cette période : le développement du compilateur PL1 de Control Data n’a pas pu être complété. le système d’exploitation OS-360, conçu pour gérer l’ensemble des programmes exécutés par les ordinateurs de la série IBM-360, a été livré très en retard et comportait beaucoup d’anomalies. Crise du logiciel
10
De la crise du logiciel au GL
Un petit historique De la crise du logiciel au GL Problématique: 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
11
De la crise du logiciel au GL
Un petit historique De la crise du logiciel au GL 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
12
1968 Un petit historique 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.
13
1968 2014 Un petit historique 46 ans 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.
14
Nouveaux thèmes de recherche
Un petit historique 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 : 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
15
Un petit historique Les recherche en GL étaient donc toujours d’actualité et de nouvelles approches sont apparues dans les années 90: 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
16
Architecture logicielle
L’architecture logicielle est un domaine du GL qui a reçu une attention particulière ces dernières années. C’est au 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
17
Architecture Logicielle
La conception d’une bonne architecture logicielle peut amener à un produit: 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
18
Architecture logicielle
L’architecture d’un programme ou d’un système informatique est la structure (ou les structures) du système qui comprend les é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
19
Architecture Logicielle
L’architecture implique plusieurs choix dont les technologies, les produits et les serveurs à utiliser 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.
20
Architecture logicielle
Définition j IEEE 1471 standard (2000) « The fundamental organization of a system embodied in its 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. Composant Connecteur
21
Architecture logicielle
Définition k Bass (1998) « The architecture of a computing system is a set of structures 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
22
Architecture logicielle
Motivations: Maîtriser la complexité du système ➔ 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.
23
Architecture logicielle
Exemple (simpliste) : décrire l'architecture logicielle d'un système constitué de deux clients et un serveur. Le service est acquitté, sans connexion
24
Architecture logicielle
Structure explicite Notion de composant, dotés d'interface, interconnectés Compréhension intuitive Avec des boites et des flèches Client Serveur Mais : Serveur mono ou multi-thread ? Activation des composants ? Nécessité de langage de description d’architecture
25
Architecture logicielle Représentations des architectures
Il existe plusieurs représentations graphiques 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
26
Les composants Un composant est un module logiciel répondant à un besoin fonctionnel / applicatif (application, bibliothèque, 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.
27
Serveurs et clients Un serveur est un module logiciel qui répond aux requêtes d’autres modules appelés clients 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
28
Par exemple, une application d’envoi de mails
Une application est un module logiciel qui a un rôle défini dans le système logiciel Par exemple, une application d’envoi de mails
29
Base de données Une base de données est un entrepôt stockant les données sous un format normalisé 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é
30
Vue C&c Client Serveur Base de données Application
31
Connecteur de composant
Le connecteur modélise une interaction entre deux composants. C’est, donc un composant spécialisé dans l'interaction, ne 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
32
JDBC SGBD MySQL Serveur web http Navigateur Exemple de JSP
JSP: JavaServer Pages JDBC: Java DataBase Connectivity) HTTP: HyperText Transfer Protocol
33
Vues d’une architecture
La vue logique d’une architecture logicielle définit les principaux composants d’une architecture sans se soucier des détails 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.
34
Services déployés dans le même serveur
Exemple 1 Services déployés dans le même serveur Serveur 1 Serveur web JDBC SGBD MySQL http Navigateur
35
Services déployés dans des serveurs différents
Exemple 2 Services déployés dans des serveurs différents Serveur 1 Serveur 2 Serveur web JDBC SGBD MySQL http Navigateur
36
Configuration de composant
Graphe de composants et de connecteurs spécifiant tout ou partie d'une architecture selon un certain point de vue ➔ Doit respecter des contraintes syntaxiques, sémantiques, spécifiques ➔ Encapsulable dans un composant (non atomique) et réutilisable
37
Architecture logicielle Finalité d’une architecture
communication (précision et non ambiguïté de la description) rétro-conception d’un système existant évaluation (selon des critères qualité)
38
Architecture logicielle Avantages d’une architecture
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.
39
Architecture Logicielle
Les travaux effectués dans le domaine des architectures logicielles ont permis de réaliser trois avancées majeures: 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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.