30
LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint [email protected] Local M-4123

LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint [email protected] Local M-4123

Embed Size (px)

Citation preview

Page 1: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

LOG 8430: Architecture logicielle et conception avancée

Foutse KhomhProfesseur adjoint

[email protected] M-4123

Page 2: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local 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.

Page 3: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local 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.

Page 4: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Enseignants

Professeur• Foutse Khomh, PhD

Chargé de laboratoire• Zéphyrin SOH, Étudiant de doctorat en

Informatique à l’Ecole Polytechnique de Montréal

Page 5: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Présentation des étudiants

• Nom, prénom

• Niveau d’ étude (B.sc, M.sc, ou Ph.D?)

• Qu’est ce qu’une architecture logicielle?

Page 6: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 7: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Objectifs de l’informatique (2/3)

• Pour créer de bons logiciels– Connaissances– Compréhension– Application– Analyse– Synthèse– Évaluation

Page 8: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 9: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 10: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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.

Page 11: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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).

Page 12: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 13: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 14: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 15: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Répartition des heures du cours (pourra être modifiée)

Hiver 2014

Page 16: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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.

Page 17: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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 %

Page 18: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 19: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 20: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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.

Page 21: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Téléphones et ordinateurs

Autorisé seulement pour les besoins du cours

Page 22: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 23: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 24: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 25: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 26: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

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

Page 27: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Fiches de Lecture

• Une liste d’articles est proposée sur Moodle

Page 28: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local M-4123

Pourquoi ce cours est-il important pour un ingénieur en Informatique?

Page 29: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local 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.

Page 30: LOG 8430: Architecture logicielle et conception avancée Foutse Khomh Professeur adjoint foutse.khomh@polymtl.ca Local 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.