LOG4430 : architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Professeur agrégé yann-gael.gueheneuc@polymtl.ca Local M-4103 Guéhéneuc, 2011
1. Introduction 1. Professeur et chargée de lab. 2. Objectifs de l informatique 3. Objectifs du cours 4. Méthodologie du cours 5. Évaluation du cours 2/20
1.1. Prof. et chargée de lab. (1/4) Yann-Gaël Guéhéneuc Diplôme d ingénieur de l École des Mines de Nantes, France (option informatique) Doctorat en informatique de l université de Nantes (rétroconception des programmes) Professeur adjoint au DIRO de 2003 à 2008 Professeur agrégé au DGIGL depuis 2008 Chaire de recherche du Canada sur les patrons logiciels et les patrons de logiciels depuis 2009 3/20
1.1. Prof. et chargée de lab. (2/4) Yann-Gaël Guéhéneuc Deux ans à Object Technology International, Inc., Ottawa (maintenant IBM, Eclipse) Développement de l «ancêtre» de Eclipse Enseignement de nombreux cours (génie logiciel, qualité) et recherche sur les patrons Plus de soixante étudiants supervisés au bac., en maitrise et au doctorat www.ptidej.net/members/guehene 4/20
1.1. Prof. et chargée de lab. (3/4) Aminata Sabané Diplôme d analyste programmeur, École supérieure d informatique, Burkina Faso Diplôme d ingénieur de conception en informatique, École supérieure d informatique, Burkina Faso Mémoire avec le Serli de Poitiers sur la visualisation temps-réel des mouvements d un robot Python et la gestion des collisions Étudiante en doctorat en informatique Thèse sur la testabilité logicielle et les patrons de conception 5/20
1.1. Prof. et chargée de lab. (4/4) Aminata Sabané Cheffe de service informatique, IDRI Gestionnaire des bases de données, Sonabel Responsable de la sécurité informatique, Celtel (Zain BF) Enseignante à l ISIG et à l IST Intérêts de recherche Tests logiciels et testabilité logicielle Analyse de l évolution du logiciel Identification de patrons récurrents dans un logiciel www.ptidej.net/members/sabaneam 6/20
1. Introduction 1. Professeur et chargée de lab. 2. Objectifs de l informatique 3. Objectifs du cours 4. Méthodologie du cours 5. Évaluation du cours 7/20
1.2. 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 8/20
1.2. Objectifs de l informatique (2/3) Pour créer de bons logiciels Connaissances Compréhension Application Analyse Synthèse Évaluation 9/20
1.2. Objectifs de l informatique (3/3) Joshua Bloch ; Effective Java ; 2 e Édition, Addison Wesley, avril 2008 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... 10/20
1. Introduction 1. Professeur et chargée de lab. 2. Objectifs de l informatique 3. Objectifs du cours 4. Méthodologie du cours 5. Évaluation du cours 11/20
1.3. Objectifs du cours (1/4) 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 12/20
1.3. Objectifs du cours (2/4) Taxonomie de Bloom Niveau Activités 1. 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 13/20
1.3. Objectifs du cours (3/4) Organisation du cours Répartition Description Niveau Lectures Cours 1 Présentation et comparaison des types d architectures : multi-niveaux, clients/serveurs, extensibles et dynamiques 1 Cours 2 Exercice sur les architectures logicielles 2, 3 Personnel Cours 3 Cours 4 Évaluation d une autre solution sur les architectures logicielles Retour sur les évaluations + Bibliothèques et chargement de composantes dynamiques Exercice sur les bibliothèques et le chargement de composantes dynamiques 6 1 2, 3 Personnel Évaluation d une autre solution sur les bibliothèques et le chargement de composantes dynamiques... 6 14/20
1.3. Objectifs du cours (4/4) Modèle de Dreyfus 15/20
1. Introduction 1. Professeur et chargée de lab. 2. Objectifs de l informatique 3. Objectifs du cours 4. Méthodologie du cours 5. Évaluation du cours 16/20
1.4. Méthodologie du cours (1/5) Connaissances Cours magistraux Jeudi, 13h45-16h30 6 séances Lectures personnelles 17/20
1.4. Méthodologie du cours (2/5) Compréhension, application Exercices en cours Jeudi, 13h45-16h30 6 séances 20% 18/20
1.4. Méthodologie du cours (3/5) Analyse et synthèse Travaux pratiques 3 TPs 20% Examen final 40% 19/20
1.4. Méthodologie du cours (4/5) Évaluation Évaluation des exercices en cours 6 évaluations à rendre 20% Examen final 40% 20/20
1.4. Méthodologie du cours (5/5) Transparents, ressources en ligne www.ptidej.net/teaching/log4430/winter11/ 21/20
1. Introduction 1. Professeur et chargée de lab. 2. Objectifs de l informatique 3. Objectifs du cours 4. Méthodologie du cours 5. Évaluation du cours 22/20
1.5. Évaluation du cours Examens Évaluation des exercices (6) : 20% Évaluation des évaluations (6) : 20% Travaux pratiques (3) : 20% Examen final (1) : 40% 23/20