Logo ESI
Bannière
ESI talents

Bienvenue



Retour - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Syllabus AL
Télécharger



Crédits : 4

AL
Architectures Logicielles
Software architectures

Coef : 4
VH Cours : 30.00
VH TD : 30.00
Pré-requis :
IGL SYSTEME I et II RESEAU I et II

Ingénierie des Compétences

Familles de Compétences
  • CF4 : Concevoir, réaliser et maintenir des logiciels de qualité
Type de compétence: TEC : Technique, MET : Méthodologique, MOD : Modélisation, OPE : Opérationnel,
Niveau de compétence:
Base Intermédiaire Avancé


Famille de Compétence Compétence Elément de Compétence Type
CF4 C4.1: Concevoir et mettre en oeuvre l'architecture d'un logiciel C41.4: Analyser et documenter l'architecture d'un logiciel TEC
C41.5: Proposer et mettre en œuvre une architecture à partir de styles architecturaux existants TEC
C41.6: Proposer et mettre en œuvre des architectures à base de services et de micro-services TEC
C41.7: Mettre en œuvre des modèles de déploiement tels que les conteneurs ou le cloud pour les architectures complexes TEC

Description du programme de la matière

Objectifs:

A la fin de l’unité l’étudiant sera en mesure de :
Souligner les importances des architectures et leur impact sur le produit final
Définir la notion d'architecture et les points de vue architecturaux
Identifier les enjeux des choix architecturaux
Identifier les principaux styles architecturaux
Concevoir une architecture à partir des attributs de qualité
Concevoir une architecture en se basant sur les styles architecturaux
Documenter une architecture
Evaluer les caractéristiques des solutions architecturales
Evaluer les enjeux des services techniques (persistance, transactions) dans les architectures

Contenu:

Chapitres :
I. Introduction et préliminaires 5%
1. Le cycle de vie du logiciel et les différentes catégories de logiciel
2. Les formats d’échange de données
3. La mesure de qualité logiciels : rappel propriété ACID
4. Les besoins, contraintes, exigences et la relation avec la qualité
II. Notions de base 10%
1. Notion d’architecture logiciel, c’est quoi ? pourquoi ?
2. La construction et le développement logiciel
3. Les intervenants et leurs préoccupations
4. Les vues et les perspectives (points de vue) et les modèles
5. La description et documentation de l’architecture (UML, ADL)
III. Les éléments d’une architecture logicielle 40%
1. La notion d’abstraction
2. Les composants d’un logiciel : définition, catégorie et évolution, les interfaces, la logique interne, le descripteur
3. Les connecteurs : définition, catégorie et évolution, la complexité (simple, middleware, bus…)
4. La configuration d’une architecture : définition, rôle et intérêt
IV. Cycle de vie d’une architecture logicielle 30%
1. L’architecture comme première forme du produit logiciel
2. Création ou conception de l’architecture : diverses démarches de passage des besoins à l’architecture
3. Les styles architecturaux et leurs guides avec prise en compte des dernières classifications
i Architectures basées sur les composants.
ii Architectures orientées services
iii Client-Serveur et N-Tiers.
iv Architectures basées sur l’abonnement.
4. L’implémentation des architectures : le passage du style à l’architecture de référence (pattern ou motif architectural), découvrir les technologies qui permette la mise en œuvre
V. Evaluation d’’une architecture logicielle 15%
1. Les attributs de qualité des architectures
2. L’audit et évaluation des architectures
3. Faire évoluer et/ou migrer une architecture

Travaux pratiques :
1. Préliminaires : Les formats d’échange, les propriété ACID et analyse des besoins 5%
2. Eléments d’architecture : Les composants et les connecteurs 30%
3. Cycle de vie : Description (ADL UML) 20%
4. Les styles et les guides des styles 20%
5. Les architectures de référence 20%
6. L’audit et l’évaluation des architectures 5%

Travail Personnel:

Etude de dossier architectural à partir du chapitre 3 évolutif à présenter avec deux jalons et une finale : volume horaire du travail environ 20 heures sur 3 mois

Bibliographie:

Keyes, J., 2002. Software engineering handbook. CRC Press.
Pressman R. S., Software Engineering: A Practitioner's Approach, Third Édition. McGraw-Hill. 1992.
Yourdon E., Software Reuse. Application Development Strategies. vol. 1, n0. 6, p. 28-33, juin 1994.
David Garlan, Robert Allen, John Ockerbloom, Architectural Mismatch: Why Reuse Is So Hard, IEEE Software, Nov./Dec. 1995
Perry D.E, Wolf A.L., Foundation for the study of Software Architecture. ACM Software Eng. Notes, p.40-50, octobre 1992
Philippe B. Kruchten, The 4+1 View Model of Architecture [archive], IEEE Software, novembre 1995.
Jacobson I., Booch G., Rumbaugh J., The Unified Software Development Process, (ISBN 0-201-57169-2)
Bass L., Clement P., Kazman R., Software Architecture in Practice, Addison-Wesley, 1998
David Garlan et Mary Shaw, An Introduction to Software Architecture [archive], CMU-CS-94-166, School of Computer Science, Carnegie Mellon University, janvier 1994
Wirth N., Program Development by Stepwise Refinement, CACM, vol. 14, no. 4, 1971, pp. 221-227
Mark w. Maier, Eberhardt Rechtin, the art of systems architecting, crc press, 3 éd. 2009
Jacques Printz , ARCHITECTURE LOGICIELLE: Concevoir des applications simples, sûres et adaptables, Dunod, 2006
C. Hofmeister, R. Nord, D. Soni, « Applied software architecture », Addison-Wesley, 2000.
J. Garland, R. Anthony, « Large-scale software architecture: a practical guide using UML», Wiley, 2003.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -