GLO-3001 Architecture logicielle. Luc Lamontagne Hiver 2010

Documents pareils
Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Identification du module

Patrons de Conception (Design Patterns)

Chapitre 2 - Architecture logicielle et construction d applications client-serveur

Patrons d architecture des Systèmes d Information

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Messagerie asynchrone et Services Web

Le génie logiciel. maintenance de logiciels.

RTDS G3. Emmanuel Gaudin

Vérifier la qualité de vos applications logicielle de manière continue

Introduction au Génie Logiciel

Méthodologies de développement de logiciels de gestion

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Évaluation et implémentation des langages

CNAM cours NFE107 : Urbanisation et architecture des SI Xavier Godefroy, Rapport sur le BPM, mai Le BPM

Cours en ligne Développement Java pour le web

Rational Unified Process

Chapitre I : le langage UML et le processus unifié

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

UML est-il soluble dans les méthodes agiles?

SECTION 5 BANQUE DE PROJETS

Analyse,, Conception des Systèmes Informatiques

Synergies entre Artisan Studio et outils PLM

CQP Développeur Nouvelles Technologies (DNT)

Génie logiciel (Un aperçu)

IFT2255 : Génie logiciel

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

Un environnement de déploiement automatique pour les applications à base de composants

Présentation du PL/SQL

Analyse,, Conception Objet

Diagrammes de Package, de déploiement et de composants UML

Réussir la modélisation UML des phases amont Techniques de «pré-modélisation» : un pont vers le modèle

Université de Bangui. Modélisons en UML

Architecture d'entreprise : Guide Pratique de l'architecture Logique

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Conception, architecture et urbanisation des systèmes d information

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Les Architectures Orientées Services (SOA)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Développement ebusiness

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Chapitre 9. Assistance à l évolution du logiciel dirigée par la qualité

UML (Paquetage) Unified Modeling Language

Description de la formation

ACCESSNET -T IP Technique système TETRA d Hytera.

Workflow et Service Oriented Architecture (SOA)

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Environnements de Développement

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Génie Logiciel Avancé Cours 3 Le modèle à objets

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Conception fonctionnelle de services d entreprise fondée sur l alignement entre cœur de métier et système d information

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Architecture matériel et logiciel 2

SQL SERVER 2008, BUSINESS INTELLIGENCE

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Alexandru V. Vlad RADIAN Solution Architect, Lead IT developer

Urbanisation des systèmes d information

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Chapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques

En vue de l obtention du. Discipline : Informatique. Présentée et soutenue par Mohamed HADJ KACEM. Le Jeudi 13 Novembre 2008

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

E-Bank Account Management. Dématérialisation de la gestion administrative des comptes bancaires

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Plateforme de capture et d analyse de sites Web AspirWeb

Introduction au génie logiciel

Le développement d'applications informatiques

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

MDA (Model Driven Architecture) principes et états de l art.

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

AngularJS pour une application d'entreprise

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Intégration de systèmes

Eclipse Process Framework et Telelogic Harmony/ITSW

Introduction au projet ebxml. Alain Dechamps

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

Cours Composant 2. Qualité logicielle et spécications algébriques

L enseignement de méthodes agiles dans un contexte d apprentissage actif

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Cours STIM P8 TD 1 Génie Logiciel

1 Introduction à l infrastructure Active Directory et réseau

Analyse structurée de solutions pour BMC Remedy IT Service Management v 7

CC30 Certificat de compétence Conception, développement et animation de sites Web

ITIL V3. Objectifs et principes-clés de la conception des services

CURRICULUM VITAE. Informations Personnelles

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Transcription:

GLO-3001 Architecture logicielle Luc Lamontagne Hiver 2010

Plan Définitions Architecte logiciel Architecture logicielle Une bonne architecture logicielle? Architecture vs. conception Styles, patrons et idiomes Conception logicielle vs. architecture Historique Luc Lamontagne 2

Définitions Génie logiciel (Software engineering) L application systématique et disciplinée d approches quantifiables de développement et de maintenance de logiciels, et l étude de ces approches. (IEEE 610.12) Gestion de projet Besoins Processus & outils Produit logiciel Luc Lamontagne 3

Définitions Architecture logicielle (Software architecture) La structure ou les structures du système, comprenant: les composantes logicielles, les propriétés exposées de ces composantes, et les interactions entre celles-ci. (Bass, Clements et Kazman 2003) A B C Luc Lamontagne 4

Définitions L architecture logicielle = abstraction d un logiciel Collection de composantes Client, serveur, filtre, couche, contrôleur, agent Topologie de composantes (relations) Agrégation, classification, généralisation, association Interactions entre les composantes Connecteurs Propriétés des composantes Mode d interaction Par ex. RPC, Partage de mémoire, synchronisation Luc Lamontagne 5

Définitions Composantes Orientée objet Un module (package, librairie) Un groupe de classes Encapsulation des méthodes Procédurale Connecteurs La signature des composantes Un groupe de fonctions et de structures de données Interfaces et services offerts par une composante Fonctions et propriétés des composantes. Luc Lamontagne 6

Pourquoi un architecte? (maison) Luc Lamontagne 7

Pourquoi un architecte? (maison) Satisfaire les besoins du propriétaire Assurer la longévité de la maison revente, charpente, catastrophe Planifier pour permettre les extensions possibles Faciliter l entretien et le confort Contenir les coûts Guider les travailleurs qui vont la construire Luc Lamontagne 8

Pourquoi un architecte? (maison) Besoins Longévité de la maison Extensions possibles Entretien Confort Contenir les coûts.. Guider les travailleurs Description du mandat Robustesse Modifiabilité Maintenabilité Utilisabilité Gestion du projet Devis/plan du projet Luc Lamontagne 9

Pourquoi un architecte logiciel? Assurer la stabilité et la robustesse du système Permettre une maintenance relativement facile Permettre les évolutions futures Contenir les coûts Minimiser les complications Guider les programmeurs dans leurs efforts de développement Luc Lamontagne 10

Une bonne architecture? Luc Lamontagne 11

Une bonne architecture Partitionnement en sous parties Vision globale de la conception Vision partagée et comprise des différents intervenants du projet Moyens retenus pour atteindre les objectifs de qualité Communiquer aux développeurs ce qui doit être concrétisé Luc Lamontagne 12

Exemple Construction d horaire Luc Lamontagne 13

Une architecture? Luc Lamontagne 14

Une architecture? Luc Lamontagne 15

Une architecture? Luc Lamontagne 16

Une architecture? Description des cours Prioritisation des cours Allocation de plage horaire Détection de conflits de disponibilité Horaire Obtenir approbation de l usager Détection de conflits inter-cours Luc Lamontagne 17

Architecture vs. conception L architecture est une forme de conception Les conceptions ne sont pas toutes architecturales Plusieurs détails de bas niveau ne sont pas spécifiés dans une architecture Ex. Le choix d une structure de données Ex. Le choix d un algorithme L architecture ne définit pas une implémentation du logiciel Mise plutôt sur la structure et moins sur le domaine d application Les fonctionnalités sont orthogonales à la structure Luc Lamontagne 18

Styles, patrons et idiomes Termes fréquemment utilisés pour décrire Les structures utilisées pour la conception de logiciel Des recettes éprouvées et reconnues des praticiens Des exemples de bonnes pratiques Par opposition aux mauvaises pratiques (anti-patterns) Des trucs et astuces Des spécificités utiles de certaines technologies Luc Lamontagne 19

Styles, patrons et idiomes Styles (macro patterns) Structures de haut niveau pour décrire un logiciel d un point de vue global Ex. Modèle par couche (layered), MVC, Patrons (micro patterns) Solutions abstraites applicables à différents contextes mais qui offrent les mêmes avantages chaque fois Correspond aux Design Patterns Idiomes Décrit de bonnes pratiques liées à un formalisme de programmation à un langage en particulier Luc Lamontagne 20

Documentation - UML Notation préconisée en orienté objet Utilise plusieurs diagrammespour décrire une composante ou un système Ces diagrammes permettent de répondre rapidement et de façon standardisée à plusieurs questions Luc Lamontagne 21

Architecture vs. approche OO Luc Lamontagne 22

Historique Avant 1990 - Les intuitions Terme «Software Engineering» NATO Software Engineering Conference(1968) Travaux de Parnas et Brooks (1972-1975) Développement modulaire: cohésion forte & Couplage faible Logiciel peut être décrit par plusieurs structures Pas uniquement une seule. Travaux de Christopher Alexander (1977) Patrons de conception en architecture Travaux de Beck et Cunningham (1987) Application de patrons en programmation Luc Lamontagne 23

Historique Première moitié 1990 Les fondements du domaine Travaux sur les Design Patternspar le Gang of Four (1994) Travaux de Kruchten(1995) 4+1 Views Logical (Functionnal) Process (Concurrency) Deployment (Physical) Data Use case (Scenario-based) (+1) Luc Lamontagne 24

Historique Première moitié 1990 Les fondements du domaine Travaux de Shaw et Garlan(1996) Identification et catégorisation des styles architecturaux Langage de description de l architecture (ADL) Fin des années 90 Plusieurs livres portant principalement les patrons Recommandations par le IEEE Méthode de conception basée sur les attributs de qualité Vues architecturales + Documentation Implication importante du Software Engineering Institute (SEI) Luc Lamontagne 25

Historique (suite) Actuellement Reconnaissance du rôle d architecte logiciel Prolifération de livres (Software Architecture) Attention le terme semble parfois galvaudé! Conférences scientifiques WIKSA (IEEE) European Workshop on Software Architecture (EWSA) QoSA Méthodes formelles Langage de description architecturale (ADL) Reverse engineering Programmation orientée aspect (AOP) Service oriented architecture (SOA) Model driven architecture... (MDA) Luc Lamontagne 26

Conclusion L architecture est une conception de haut niveau d un logiciel Beaucoup de recettes sont déjà disponibles Ne pas réinventer la roue! La conception architecturale est un élément important de l approche orientée objet L architecture repose moins sur les fonctions que sur la qualité du logiciel Luc Lamontagne 27

La suite Préparation pour le projet de session Étude des designs patterns Points importants Programmation OO et Java Maîtrise des principales notions de Java Familiarité avec UML Utilisé pour décrire les structures classe, séquence, composante, déploiement Éléments de contrôle de qualité Tests unitaires - JUnit Luc Lamontagne 28