LOG4430 : Architecture logicielle et conception avancée



Documents pareils
LOG4430 : Architecture logicielle et conception avancée

Application Form/ Formulaire de demande

LOG4430 : Architecture logicielle et conception avancée

IFT2255 : Génie logiciel

Analyse,, Conception des Systèmes Informatiques

Instructions Mozilla Thunderbird Page 1

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

PIB : Définition : mesure de l activité économique réalisée à l échelle d une nation sur une période donnée.

FÉDÉRATION INTERNATIONALE DE NATATION Diving

Consultants en coûts - Cost Consultants

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

Editing and managing Systems engineering processes at Snecma

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

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

Forthcoming Database

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

WEB page builder and server for SCADA applications usable from a WEB navigator

We Generate. You Lead.

Package Contents. System Requirements. Before You Begin

RAPID Prenez le contrôle sur vos données

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

Évaluation et implémentation des langages

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Stéphane Lefebvre. CAE s Chief Financial Officer. CAE announces Government of Canada participation in Project Innovate.

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

Logiciel Libre & qualité. Présentation

Lean approach on production lines Oct 9, 2014

Contents Windows

Paxton. ins Net2 desktop reader USB

Nouveautés printemps 2013

Elégance et raffinement Elegance & sophistication

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

Cliquez pour modifier les styles du texte du masque

THE OUAGADOUGOU RECOMMENDATIONS INTERNET INFRASTRUCTURE FOR AN AFRICAN DIGITAL ECONOMY 5-7 MARCH 2012

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations

NOM ENTREPRISE. Document : Plan Qualité Spécifique du Projet / Project Specific Quality Plan

Programming Server-Side Web Applications with Object-Oriented PHP NC Group Syllabus. Duration: 75 hours 1-2-2

How to Login to Career Page

EN UNE PAGE PLAN STRATÉGIQUE

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

Improving the breakdown of the Central Credit Register data by category of enterprises

Chapitre I : le langage UML et le processus unifié

Francoise Lee.

Once the installation is complete, you can delete the temporary Zip files..

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

BNP Paribas Personal Finance

APPENDIX 6 BONUS RING FORMAT

Bourses d excellence pour les masters orientés vers la recherche

Guide d'installation rapide TFM-560X YO.13

Frequently Asked Questions

Natixis Asset Management Response to the European Commission Green Paper on shadow banking

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

Bill 69 Projet de loi 69

Ingénierie et gestion des connaissances

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION

Génie logiciel. Systèmes et sous-systèmes. Modèliser des grands systèmes. Problématique. SS S-Syst1 SS S-Syst2 SS S-Syst3. Système.

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM APPLICATION FORM

UNIVERSITY OF MALTA FACULTY OF ARTS. French as Main Area in an ordinary Bachelor s Degree

Formulaire d inscription (form also available in English) Mission commerciale en Floride. Coordonnées

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Les Langages Informatiques

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+

Discours du Ministre Tassarajen Pillay Chedumbrum. Ministre des Technologies de l'information et de la Communication (TIC) Worshop on Dot.

Institut français des sciences et technologies des transports, de l aménagement

The assessment of professional/vocational skills Le bilan de compétences professionnelles

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

The impacts of m-payment on financial services Novembre 2011

INVESTMENT REGULATIONS R In force October 1, RÈGLEMENT SUR LES INVESTISSEMENTS R En vigueur le 1 er octobre 2001

AUDIT COMMITTEE: TERMS OF REFERENCE

BILL 203 PROJET DE LOI 203

Institut d Acclimatation et de Management interculturels Institute of Intercultural Management and Acclimatisation

Gestion des prestations Volontaire

Logiciel Libre Cours 2 Fondements: Programmation

Archived Content. Contenu archivé

Présentation par François Keller Fondateur et président de l Institut suisse de brainworking et M. Enga Luye, CEO Belair Biotech

Interest Rate for Customs Purposes Regulations. Règlement sur le taux d intérêt aux fins des douanes CONSOLIDATION CODIFICATION

RISK-BASED TRANSPORTATION PLANNING PRACTICE: OVERALL METIIODOLOGY AND A CASE EXAMPLE"' RESUME

ETABLISSEMENT D ENSEIGNEMENT OU ORGANISME DE FORMATION / UNIVERSITY OR COLLEGE:

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

EU- Luxemburg- WHO Universal Health Coverage Partnership:

CALCUL DE LA CONTRIBUTION - FONDS VERT Budget 2008/2009

RÉSUMÉ DE THÈSE. L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

LADIES IN MOBILITY. LIVE TWEET Innovative City

POLICY: FREE MILK PROGRAM CODE: CS-4

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Appointment or Deployment of Alternates Regulations. Règlement sur la nomination ou la mutation de remplaçants CONSOLIDATION CODIFICATION

Cette Leçon va remplir ces attentes spécifiques du curriculum :

Notice Technique / Technical Manual

ANGULAR JS AVEC GDE GOOGLE

Macroscope et l'analyse d'affaires. Dave Couture Architecte principal Solutions Macroscope

UML : Unified Modeling Language

Projet de réorganisation des activités de T-Systems France

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

Small Businesses support Senator Ringuette s bill to limit credit card acceptance fees

ERA-Net Call Smart Cities. CREM, Martigny, 4 décembre 2014 Andreas Eckmanns, Responsable de la recherche, Office Fédéral de l énergie OFEN

Loi sur la Semaine nationale du don de sang. National Blood Donor Week Act CODIFICATION CONSOLIDATION. S.C. 2008, c. 4 L.C. 2008, ch.

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION

Transcription:

LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours récurrent Informaticien(ne)s célèbres Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc, 2012

Informaticien(ne)s célèbres Frances E. Allen Grady Booch Frederick Brooks Ole-Johan Dahl et Kristen Nygaard Erich Gamma Grace Murray Hopper Manny Lehman Barbara Liskov John McCarthy Dave Parnas Edward Yourdon 2/34

Frances E. Allen Frances E. Allen Né le 4 août 1932 Pionnière de la compilation optimisée, optimisation du code et parallélisation Frances E. Allen *1932 AWC Augusta Ada Lovelace Award en 2002 ACM Turing Award en 2006 Cf. http://en.wikipedia.org/wiki/frances_e._allen 3/34

Frances E. Allen Avant 1966 Depuis les années 30 Ordinateurs programmables Depuis les années 50 Premiers compilateurs par Grace Murray Hopper Langages de programmation FORTRAN : premier compilateur complet COBOL : premier langage compilé pour différentes architectures machines (UNIVA II et RCA 501) 4/34

Frances E. Allen Avant 1966 En 1955 Grammaires non-contextuelles inventées par Noam Chomsky En 1966 LR Parsing inventé par Donald Knuth 5/34

Frances E. Allen En 1966 Program Optimization En 1970 Introduction des graphes pour décrire les programmes et permettre leurs optimisations Control Flow Analysis et A Basis for Program Optimization En 1974 Intervalles pour les analyses du flot de contrôle Interprocedural data flow analysis Analyses inter-procédurales de programmes complets 6/34

Grady Booch Grady Booch Né le 27 février 1955 Grady Booch *1955 Père de UML avec I. Jacobson et J. Rumbaugh Stevens Award en 2003 Cf. http://en.wikipedia.org/wiki/grady_booch 7/34

Grady Booch UML Contexte 8/34

Grady Booch Three Amigos and their methods Grady Booch, Booch Method (design) Ivar Jacobson Objecto Oriented Softwre Engineering, OOSE (use cases) James Rumbaugh Object Modeling Technique, OMT (analysis) Rational Software Corporation UML 9/34

Frederick Brooks Frederick Brooks Né le 19 avril 1931 Père de la loi de Brooks Frederick Brooks *1931 IEEE J. von Neumann Medal en 1993 ACM Turing Award en 1999 Cf. http://en.wikipedia.org/wiki/fred_brooks 10/34

Frederick Brooks Principe de la loi de Brooks Contexte 1956 1964 Livre Gestionnaire du projet de développement du IBM OS/360 Retards dans la livraison The Mythical Man-Month: Essays on Software Engineering Principe Adding manpower to a late software project makes it later 11/34

Frederick Brooks Raisons It takes some time for the people added to a project to become productive. Brooks calls this the "ramp up" time. New workers must first become educated about the work that has preceded them; also integrate with a team composed of multiple engineers who must educate the new worker in their area of expertise in the code base, day by day Communication overheads increase as the number of people increases. The number of different communication channels increases along with the square of the number of people 12/34

Frederick Brooks Commentaires, solutions Brooks' Law often applies to projects that are already late The quantity, quality and role of the people added to the project also must be taken into consideration Good management and development practices also help to minimize the impact of Brooks' Law Rather than depending on heroes to carry the day with extraordinary efforts, Wiegers argues that a team of ordinarily-skilled individuals can repeatedly deliver timely results in the right work environment 13/34

Frederick Brooks Critiques How to quadruple your productivity with an army of student interns Tolerate a little crowding Locate next to a deep pool of hackers Know who the best people are and only hire them Pay well Divide tasks to be as loosely-coupled as possible Design your intern projects in advance 14/34

Dahl Nygaard Ole-Johan Dahl Né le 12 octobre 1931, 29 juin 2002 Co-créateur du paradigme des objets Ole-Johan Dahl *1931 2002 ACM Turing Award en 2001 IEEE J. von Neumann en 2002 Cf. http://www.olejohandahl.info/ Cf. http://en.wikipedia.org/wiki/ole-johan_dahl 15/34

Dahl Nygaard Kristen Nygaard Né le 27 août 1926, 10 août 2002 Co-créateur du paradigme des objets Kristen Nygaard *1926 2002 ACM Turing Award en 2001 IEEE J. von Neumann en 2002 Cf. http://www.ifi.uio.no/in_memoriam_kristen/ Cf. http://en.wikipedia.org/wiki/kristen_nygaard 16/34

Dahl Nygaard Paradigme des objets Contexte 1961 Le langage de programmation impérative Algol Classes, objets, encapsulation, héritage, polymorphisme Simula I Simula 67 17/34

Dahl Nygaard Programmation par objets Smalltalk Xerox Parc, 1970 1983 GUI Icônes WYSIWYG Souris (cf. Stanford Research Institute) Alan Kay Typage dynamique Réflexion Ramasse-miettes 18/34

Dahl Nygaard Programmation par objets C++ AT&T Bell Labs Bjarne Stroustrup 1980 Typage statique Héritage multiple Cf. http://www.approximity.com/ruby/ Comparison_rb_st_m_java.html 19/34

Dahl Nygaard Programmation par objets Oberon ETH Zurich Niklaus Wirth 1986 Typage statique Ramasse-miettes Vérification des bornes des tableaux 20/34

Erich Gamma Erich Gamma Né en 1961 Père des patrons de conception logiciel Erich Gamma *1961 Dahl-Nygaard Prizes en 2006 Cf. http://en.wikipedia.org/wiki/erich_gamma Cf. http://c2.com/cgi/wiki?erichgamma 21/34

Erich Gamma Patrons de conception logiciel Contexte 1977 et 1979 Christopher Alexander 1990 A Pattern Language: Towns, Buildings, Construction et l idée de «generative patterns» The Timeless Way of Building et l idée de perfection en architecture Les programmes par objets sont parmi nous 22/34

Erich Gamma A Pattern Language: Towns, Buildings, Construction 253 patrons Grammaire générative «At the core... is the idea that people should design for themselves their own houses, streets and communities. This idea... comes simply from the observation that most of the wonderful places of the world were not made by architects but by the people» Design Patterns: Elements of Reusable Object- Oriented Software 23 patrons Pas un langage? «Dynamic, highly parameterized software is harder to understand and build than more static software» 23/34

Erich Gamma Design Patterns: Elements of Reusable Object-Oriented Software Dahl-Nygaard Prizes à Ralph Johnson Richard Helm Erich Gamma John Vlissides 24/34

Grace Murray Hopper Grace Murray Hopper (contre-amiral) Née le 9 décembre 1906, décédée le 1 janvier 1992 Mère du premier compilateur, du terme debugging, de COBOL et des standards Grace Hopper *1906 1992 Defense Distinguished Service Medal aux USA en 1986 Cf. http://en.wikipedia.org/wiki/grace_hopper 25/34

Grace Murray Hopper 1944 La seconde guerre mondiale est sur le point de finir Les calculateurs ont fait leurs preuves Dehomag D11 (Allemagne/USA, 1930s) : gestion des fiches d identité Zuse Z3 (Allemagne, 1941) : calcul du flottement de décrochage Colossus Mark 1 (Grande Bretagne, 1943) : déchiffrement de messages Harvard Mark I (USA, 1944) : production de tables de calculs pour la marine de guerre 26/34

Grace Murray Hopper Principe des calculateurs Relais électromécaniques ou électromagnétiques Deux relais actifs rendent un troisième relais actif Relais «3» et «6» rendent relais «9» actifs pour une addition 1947 27/34

Grace Murray Hopper 1950 Les calculateurs deviennent des ordinateurs programmables avec des langages de plus haut-niveau que le microcode ou l assembleur 1954 UNIVAC I : recensement A-0 (Arithmetic Language version 0) Chargeur ou lieur plus que compilateur B-0 (Business Language version 0) aussi connu comme FLOW-MATIC 28/34

Grace Murray Hopper 1959 Conférence CODASYL (Conference on Data Systems Languages) COBOL comme successeur de FLOW-MATIC Proche de l anglais 1970s Avocate de tests standards pour les langages et FORTRAN en particulier 29/34

Manny Lehman Meir M. «Manny» Lehman Décédé le 29 décembre 2010 Père des lois de l évolution Manny Lehman *1925 2010 Stevens Award en 2003 Cf. http://www.doc.ic.ac.uk/news/archive/story/ manny-lehman Cf. http://www.ieeeghn.org/wiki/index.php/oral- History:Meir_Lehman 30/34

Manny Lehman Lois de l évolution logicielle Contexte 1974 IMB OS/360 et OS/370 Types de programmes S : peuvent être spécifiés formellement P : sont soumis à un processus itératif E : sont partis intégrante de notre environnement 31/34

Manny Lehman Huit lois 1. Continuing change: E-type systems must be continually adapted or they become progressively less satisfactory 2. Increasing complexity: As an E-type system evolves its complexity increases unless work is done to maintain or reduce it 3. Self regulation: E-type system evolution process is self regulating with distribution of product and process measures close to normal 4. Conservation of organisational stability: The average effective global activity rate in an evolving E-type system is invariant over product lifetime 32/34

Manny Lehman Huit lois 5. Conservation of familiarity: As an E-type system evolves all associated with it must maintain mastery of its content and behaviour to achieve satisfactory evolution. The average incremental growth remains invariant as the system evolves 6. Continuing growth: The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime 7. Declining quality: The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes 8. Feedback system: E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base 33/34

Barbara Liskov Barbara Liskov Née le 7 novembre 1939 Mère du principe de substitution de Liskov Barbara Liskov *1939 IEEE J. von Neumann Medal en 2004 ACM Turing Award en 2008 Cf. http://en.wikipedia.org/wiki/ Liskov_substitution_principle 34/34

Barbara Liskov Principe de substitution de Liskov Contexte 1987 Boom du paradigme de la programmation par objets Principe Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T 35/34

Barbara Liskov Principe Sous-typage comportemental différent et plus fort que la notion de sous-typage en théorie des types En théorie des types Contravariance des paramètres : un paramètre peut être «réduit» de S à T, pour éviter une confusion de la méthode a appeler Covariance du type de retour : le type de retour peut être «agrandit» de T à S, pour permettre aux méthodes gabarits de fonctionner avec les méthodes surchargées En plus Les pré-conditions ne peuvent plus fortes dans un sous-type Les post-conditions ne peuvent être moins forte dans S Le sous-type S doit conserver les invariants du type T 36/34

Barbara Liskov Mise en pratique dans Java Java < 1.5 Redéfinition /* Classe mère */ public T foo(string a, String b) {...} /* Classe fille */ public T foo(string a, String b) {...} Surcharge Java > 1.5 /* Classe mère */ public T foo(string a, String b) {...} /* Classe fille */ public T foo(string a, Integer c) {...} Redéfinition /* Classe mère */ public T foo(string a, String b) {...} /* Classe fille */ public S foo(string a, String b) {...} 37/34

John McCarthy John McCarthy Né le 4 septembre 1927 Décédé le 24 octobre 2011 John McCarthy *1927 2011 Père de l intelligence artificielle, de LISP, contributeur aux systèmes à temps partagé, inventeur du «SaaS» ACM Turing Award en 1971 National Medal of Science aux USA en 1991 Cf. http://en.wikipedia.org/wiki/john_mccarthy_(computer_scientist) 38/34

John McCarthy Intelligence artificielle, 1956 Champion de la programmation logique Collaboration avec Marvin Minsky Inventeur de LISP, 1960 Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I, 1960 Lambda calcul Ramasse-miettes 39/34

John McCarthy Système à temps-partagé Multiprogrammation et multitâches DEC PDP-1, c. 1960 Changement de paradigme le plus important en informatique en 1970 Partage des ressources pour éviter la «perte de temps de calculs» SaaS Software as a Service Architecture/ingénierie basée sur les services 40/34

Dave Parnas Dave Parnas Né le 10 février 1941 Père des critère de décomposition en conception modulaire Dave Parnas *1941 IEEE Computer Society 60th Anniversary Award en 2007 Cf. http://en.wikipedia.org/wiki/david_parnas 41/34

Dave Parnas Conception modulaire Contexte 1972 Langages de programmation impératifs et par objets Diagrammes de flots Décomposition des programmes en modules, classes 42/34

Dave Parnas Critères [I]t is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others Information hiding = Encapsulation 43/34

Dave Parnas Révision du critère en termes de Cohésion Couplage Concepts «inventés» par Larry Constantine en 1968 et publié en 1972, dans W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13 (2), 115-139, 1974. Un module doit avoir une forte cohésion et un fable couplage avec les autres modules 44/34

Edward Yourdon Edward Yourdon Né le 30 avril 1944 Promoteur des sept types de cohésion Edward Yourdon *1944 Cf. http://en.wikipedia.org/wiki/edward_yourdon 45/34

Edward Yourdon Conception modulaire Contexte 1972 1987 Langages de programmation impératifs et par objets Diagrammes de flots Décomposition des programmes en modules, classes Boom du paradigme de la programmation par objets 46/34

Edward Yourdon Critère de cohésion 1. Accidentel : décrivant le niveau le plus faible où le lien entre les différentes méthodes est inexistant ou bien créé sur la base d'un critère futile Classes utilitaires 2. Logique : lorsque les méthodes sont reliées logiquement par un ou plusieurs critères communs Toutes les classes qui traitent des matériels d entrée, souris, clavier, etc. 3. Temporel : lorsque les méthodes doivent être appelées au cours de la même période de temps Une méthode appelée dans un «catch», etc. 47/34

Edward Yourdon Critère de cohésion 4. Procédural : lorsque les méthodes doivent être appelées dans un ordre spécifique Une méthode qui vérifie les permissions et une méthode qui ouvre un fichier 5. Communicationnel : lorsque les méthodes manipulent le même ensemble spécifique de données Toutes les classes qui portent sur des dates, etc. 48/34

Edward Yourdon Critère de cohésion 6. Séquentiel : lorsque les méthodes qui manipulent le même ensemble de données doivent être appelées dans un ordre spécifique Un analyseur syntaxique : les entrées d une classe provient des sorties d une autre 7. Fonctionnel : réalise le niveau le plus élevé lorsque la classe ou le module est dédié à une seule et unique tâche bien spécifique Classes qui contribuent à remplir un même besoin 49/34

À suivre ACM A. M. Turing Award Cf. http://awards.acm.org/homepage.cfm? awd=140 AITO Dahl-Nygaard Prize http://www.aito.org/dahl-nygaard/ IEEE J. von Neumann Medal Cf. http://www.ieee.org/about/awards/bios/ vonneumann_recipients.html 50/34