Upload
renart-herve
View
139
Download
6
Embed Size (px)
Citation preview
LOG 8430: Architecture logicielle et conception avancée
Foutse KhomhProfesseur adjoint
[email protected] M-4123
Plan de séance
• Introduction.
• Présentation et comparaison des types d’architectures : multi-niveaux, clients/serveurs, extensibles et dynamiques
• Résumé de la séance.
Plan de séance
• Introduction.
• Présentation et comparaison des types d’architectures : multi-niveaux, clients/serveurs, extensibles et dynamiques
• Résumé de la séance.
Enseignants
Professeur• Foutse Khomh, PhD
Chargé de laboratoire• Zéphyrin SOH, Étudiant de doctorat en
Informatique à l’Ecole Polytechnique de Montréal
Présentation des étudiants
• Nom, prénom
• Niveau d’ étude (B.sc, M.sc, ou Ph.D?)
• Qu’est ce qu’une architecture logicielle?
Objectifs de l’informatique (1/3)
• Créer des logiciels– Résoudre des problèmes existants– Résoudre ces problèmes bien
• Logiciel– Programme (code source / binaire)• Architecture• Conception
– Structure de données / données– Documents
Objectifs de l’informatique (2/3)
• Pour créer de bons logiciels– Connaissances– Compréhension– Application– Analyse– Synthèse– Évaluation
Objectifs de l’informatique (3/3)
• Pour créer de bons logiciels– Grammaire
• Algorithmique• Paradigmes
– Vocabulaire• Structure de données• Opérations• Services
– Usages• Pratiques• Efficacité
• Dans le cas de Java par exemple– Grammaire
• Vos cours précédents• Orienté objets
– Vocabulaire• JLS• JVM• Bibliothèque de classes
– Usages• Architectures, patrons de
conception...
Joshua Bloch ; Effective Java ; 2e Édition, Addison Wesley, avril 2008
Objectifs du cours
• Présenter les principaux types d’architectures logicielles et les critères permettant de choisir un type spécifique d’architecture
• Présenter des approches basées sur des patrons de conception pour la réalisation d’application (distribuées)
• Donner un aperçu des approches émergentes de conception logicielle
Objectifs spécifiques d'apprentissage
À la fin du cours, l’étudiant sera en mesure de :
• concevoir l’architecture d’un logiciel en choisissant et en justifiant les architectures, les patrons de conception et les techniques de conception avancée utilisés (entre autres à la méta-programmation, la programmation par composants, les patrons d’architecture distribuée, les architectures orientées services);
• concevoir les composantes de l’architecture d’un logiciel (classes orientées-objets, composants logiciels ou services logiciels) à l’aide de techniques avancées et à partir de patrons d’architecture distribuée parmi les plus utilisés et de justifier ses choix;
• juger de la conception de l’architecture d’un logiciel et de suggérer des changements à cette architecture.
Situation du cours dans le programme
• Le cours LOG8430 termine la chaîne de cours portant sur l’implantation, la conception et l’architecture des logiciels, commencée par – les cours de programmation procédurale
(INF1005C), – le cours de programmation orientée objets
(INF1010) et – le cours de conception logicielle (LOG2410).
Méthodes d’enseignement
Niveau Activités1. Connaissance Mémoriser des informations, définir des terminologies, des
techniques, etc.2. Compréhension Comprendre un article afin d'en faire un résumé
3. Application Utiliser les connaissances de l'apprenant pour les appliquer dans une situation concrète (« la vraie vie »)
4. Analyse Demander à l'apprenant de disséquer un sujet, d'en expliquer les tenants et les aboutissants
5. Synthèse Reformuler les parties d'un sujet ensemble mais d'une toute nouvelle manière en se basant sur plusieurs sources
6. Évaluation Juger la valeur d'un sujet dans un but spécifique
Travail personnel du cours
Le triplet horaire indique 4.5 heures de travail personnel par semaine. Pendant ces heures, il est conseillé de:• D’ étudier les notions présentés durant les
séances de cours, en particulier les nombreux exemples
• Appliquer les concepts vu en cours ainsi que ceux présentés dans les articles discutés en cours
• Travailler sur les travaux pratiques du cours
Séances de travaux pratiques
Durant les séances de travaux pratiques, les étudiants• Travailleront à la conception d’un logiciel en utilisant les
techniques et les concepts avancés de conception architecturale
• Evalueront des solutions alternatives développées par leurs camarades
L’idée est de donner aux étudiants un aperçu des techniques et concepts ainsi qu’un point de comparaison qui leur permet alors de comprendre les avantages et les inconvénients de chaque architecture, patron de conception et technique avancée en contexte
Répartition des heures du cours (pourra être modifiée)
Hiver 2014
Répartition des heures du cours (pourra être modifiée)
Hiver 2014
Exceptionnellement les présentations auront lieu le jeudi 30 janvier à l’heure de travaux pratiques car je serai absent le Mardi 4 février pour raison de participation à une conférence internationale.
Il y aura travaux pratiques le Mardi 4 février 2014.
Contrôles du cours• L'évaluation est constituée de 6 travaux pratiques, 6
évaluations de travaux pratiques, 3 évaluations d’articles (fiche de lecture) et d’un examen final selon la pondération indiquée ci-dessous.
Nature Nombre PondérationTravaux pratiques de conception (en équipe)
6 20 %
Jugements sur des conceptions d’architectures (en équipe)
6 20%
Fiches de lecture (individuel) 3 20 %
Examen final (individuel) 1 40 %
Notes importantes
• Toutes matière présentée en cours est sujet à Contrôles
• Les travaux pratiques remis en retard seront pénalisés de 10% par jour de retard
• En cas d’absence à un examen, toute demande d’examen différé devra être motivée auprès du bureau des affaires académiques
Notes importantes
• Pour les travaux pratiques, les étudiants travaillent par groupes de 2 à 3 et ces groupes sont IMMUABLES pendant la session
• Les fiches de lecture sont à rendre par courriel au professeur en format doc ou PDF au plus tard le dimanche soir (à 23h59 ) précédent la date de la présentation. Elles devraient faire un minimum de 1 page et un maximum de 2 pages
Notes importantes
Les règlements relatifs au plagiat (annuaire 2013-2014 du programme de baccalauréat de l’ École polytechnique de Montréal) s’appliquent en tout temps.
Téléphones et ordinateurs
Autorisé seulement pour les besoins du cours
La présence en classe est fortement recommandée
Quelques bonnes raisons d’assister au cours• La matière du cours vous intéresse• Les explications du professeur vous aident à
mieux comprendre la matière du cours• Les étudiants qui assistent régulièrement au
cours réussissent mieux le cours en général• Le professeur a du plaisir à échanger avec vous• Les travaux pratiques et l’examen final
porteront sur le contenu des séances de cours
Manuel du cours• Software engineering : a practitioner's approach, Roger S. Pressman. 5th ed.
Boston, Mass. ; Toronto : McGraw Hill, c2001
• The unified software development process, Ivar Jacobson, Grady Booch, James Rumbaugh. Boston ; Montreal : ACM Press/Addison Wesley c1999
• Software architecture in practice , Len Bass, Paul Clements, Rick Kazman. Reading, Mass. ; Don Mills, Ont. : Addison-Wesley, c1998
• Software architecture design patterns in Java, Partha Kuchana. Boca Raton, FL : Auerbach Publications, c2004
• Architecture logicielle : concevoir des applications simples, sûres et adaptables, Printz, Jacques. Paris, Dunod, c2006
Contenu du cours
Cours Sujets
Cours 1 Architectures : multi-niveaux, clients/serveurs, extensibles et dynamiques
Architectures: style architecturaux (suite) et conception détailléeCours 2
Cours 3 Bibliothèques et chargement de composantes dynamiques
1ère séance de présentationCours 4
Cours 5 Cadres et plugiciels
Composition et architectures par composantsCours 6
Cours 7 Patrons pour la conception d’applications distribuées
2ème séance de présentationCours 8
Contenu du coursCours 9 Patrons pour la conception d’applications distribuées (suite)
Applications de base de la conception orientée aspect : surveillance, traçage et profilage
Cours 10
Cours 11Introduction aux architectures Orientée Service
3ème séance de présentationsCours 12
Cours 13 Retour sur les évaluations + Révisions
Contenu des travaux pratiquesSujets
Conception d’un système de gestion de fichiers « simple » et choix/justification de l’architecture
Conception du même système de gestion de fichiers en utilisant les techniques avancées de chargement de composantes dynamiques
Conception du même système de gestion de fichiers en utilisant un cadriciel lui-même à base de « plugiciels »
Conception du même système de gestion de fichiers en utilisant la programmation par composants
Conception du même système de gestion de fichiers en utilisant des patrons de conception d’applications distribuées permettant la parallélisation des traitements sur les fichiers
Application de base de la conception orientée aspect : surveillance, traçage et profilage à un système de gestion de fichiers
Fiches de Lecture
• Une liste d’articles est proposée sur Moodle
Pourquoi ce cours est-il important pour un ingénieur en Informatique?
Plan de séance
• Introduction.
• Présentation et comparaison des types d’architectures : multi-niveaux, clients/serveurs, extensibles et dynamiques
• Résumé de la séance.
Plan de séance
• Introduction.
• Présentation et comparaison des types d’architectures : multi-niveaux, clients/serveurs, extensibles et dynamiques
• Résumé de la séance.