GL P1 Caractérisations P2 Langages

download GL P1 Caractérisations P2 Langages

of 13

Transcript of GL P1 Caractérisations P2 Langages

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    1/13

    © C. Kolski

    Génie Logiciel

    Christophe Kolski Professeur en Informatique

    LAMIH-UMR CNRS 8201

    Groupe de Recherche en Informatique “Décision, Interaction, Mobilité” 

    Université de Valenciennes et du Hainaut-Cambrésis

    http://www.univ-valenciennes.fr/LAMIH/ 

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    2/13

    © C. Kolski

    Introduction

    Statistiques (fin

    des années 80,

    gros projets) :

    => Pb très actuels

    Délivré mais pas utilisé

    (avec succés)29 %

    Fortementremodelé

    19 %

    Utilisé 5%

    Payé mais pasdélivré47 %

    Résultat : Coûts :

    Coûts de lamaintenance :

    Conception

    15 %

    Maintenance65 %

    Codage 5%

    Test 15%

    Changement despécifications

    41%

    Corrections21%

    Divers 6%

    Améliorations 6%

    Changement dematériel 6%

    Changementformat desdonnées 20%

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    3/13

    © C. Kolski

    Introduction 

    Autopsie globale

    (REDOUIN, 1991) :

    Mise en cause

    de la pérennité

    de l'entreprise

    Inadéquation

    du système

    réalisé

    Incapacité des

    applications à

    communiquer

    entre elles

    Organisation

    non-optimisée

    Pérennité de

    système

    informatique

     problématique

    Pertes

    d'exploitation

    Le pay back

     prévu ne se

    réalise

     jamais

    Le système

    comporte

    des erreurs

    Projets plus

    couteux et

     plus longs

    que prévu

    Absence de

    conduite

    de projet

    Absence planification

    informatique

    Concertation

    insuffisanteavec la

    direction

    Documentation

    technique

    insuffisante

    ou absente

    Charge de

    maintenance

    trop

    importante

    Spécifications

    incomplètes

    Le passif

    d'application

    ne cesse de

    croitreProfusion

    de demandes

    non coordonnées

    Les informaticiens

    se confinentdans la technique

    Documentation

    d'utilisation

    insuffisante

    ou inexistante

    Qualité de

    dialogue

    avec usagers

    insuffisante

    Formation

    des usagésinsuffisante

    Matériel

    saturé

    Incapacité à

    alimenter

    le système

    de pilotage

    Impossibilité

    de l'utilisation

    stratégique

    Incapacité à

    intégrer lesévolutions

    de l'entreprise

    Absence de

    méthode et

    technique

    d'analyse Processus de

    spécification et

    de conception

    non maîtrisé

    Conception

    technique des

    applications

    inappropriée

    Temps de

    réponse

    non optimisé

     Non utilisationdes potentialités

    de l'outil

    Légende

    Problèmeà l'originede tous

    les autres

    Problèmeintermédiaire

    Problèmeconséquence

    de tous

    les autres

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    4/13

    © C. Kolski

    Plan 

    Introduction

    Définitions et caractérisations du Génie Logiciel

    Les langages et le Génie Logiciel

    Modèles de développement de logiciel

    Qualité du logiciel et qualimétrie

    Les méthodes du Génie Logiciel

    Techniques de base

    Méthodes cartésiennes

    Méthodes systémiques Méthodes orientées objets (Cf. UML en Master 1, S7)

    Quelques éléments de planification et estimation des projets

     

    Conclusion et avenir du Génie Logiciel

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    5/13

    © C. Kolski

    Définitions et caractérisations du Génie Logiciel

    - Science de l'ingénieur ; finalité : fabrication de systèmes informatisés (complexes) ;

    terme apparu en 1968, Department of Defense (DoD)

    - Définitions :"Ensemble des activités de conception et de mise en oeuvre des produits et des

     procédures tendant à rationaliser la production de logiciel et son suivi"

    (Arrêté ministériel du 30/12/1983)

    "Ensemble des procédures, méthodes, langages, ateliers, imposés ou préconisés par les

    normes adaptées à l'environnement d'utilisation, afin de favoriser la production et la

    maintenance de composants logiciels de qualité" (JAULENT, 1990)

    ► Logiciels sûrs, conviviaux, évolutifs, économiques

    - Caractéristiques de la production industrielle de logiciels :

    ► Projet, taille importante, longue durée ; travail en équipe

    ► Produits de longue durée de vie

    ► Complexité ; haut degré de fiabilité ; confidentialité

    ► Assurance qualité

    ► Réutilisation de produits (ou composants) existants► Utilisation systématique d'outils informatique

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    6/13

    © C. Kolski

    Définitions et caractérisations du Génie Logiciel

    (selon CONSTANTINIDIS, 2006) 

    - Projet : ensemble d’activités dont on a défini l’objectif, les délais et les ressources 

    = œuvre (ensemble de travaux) destinée à produire (concevoir, réaliser, installer) un ouvrage conforme à ses spécifications

    Expression des besoins Ouvrage

    Oeuvre

    Maîtrise d’ouvrage 

    Pilotage - décision

    Maîtrise d’oeuvre 

    Conduite

    Utilisateurs

    consultation

    Equipe projet

    réalisationExpertise

    Conseil aux différents acteurs

    - Maître d’ouvrage : propriétaire du produit du projet ; responsable de l’expression des 

     besoins auxquels doit satisfaire l’ouvrage final, agit au nom de l’ensemble des futurs 

    utilisateurs de l’ouvrage 

    - Maître d’oeuvre : conduit les travaux (l’œuvre) en respectant les conditions de coûts et  

    de délais, doit livrer un résultat (ouvrage) de qualité

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    7/13© C. Kolski

    Définitions et caractérisations du Génie Logiciel-Tentatives de typologie des logiciels :

    1 : Informatique de gestion / Informatique Industrielle

    2 : Source "Le Génie Logiciel », collection « Que sais-je » (PRINTZ, 1995, cf. aussi la

    5ème éd., 2005)

    Domaine

    Gestion

    Analyse numérique,simulation

    Télécommunications

    Temps réel

    Traitement etanalyse des données

    Systèmes d'exploitation,compilateur 

    Structure

    de données

    Difficile

    Simple

    Simple

    Simple

    Très difficile

    Très difficile

    Algorithmes  

    Simples

    Difficiles

    Simples

    Difficiles

    Difficiles

    Difficiles

    Contrôle  

    Simple(sauf si client-serveur)

    Simple

    Très difficile

    Difficile

    Simple

    Difficile

    - Prépondérance du logiciel dans les systèmes socio-techniques, problèmes de sûreté

    (ARLAT et al., 1995) :► Risque humains (transports, contrôle de la navigation aérienne...) 

    ► Risques économiques (transactions  boursières, centres téléphoniques...), écologiques

    ► Risques sociaux (rejets par les utilisateurs, délinquance informatique...)

    ► Erreurs humaines d'analyse, de conception, de programmation (conséquences critiques,sérieuses, modérées, tolérables)

    ► Purger le logiciel de ses erreurs (techniques mais aussi ergonomiques), nécessité de méthodesde travail rigoureuses et systématiques (certaines dites centrées utilisateur)

    A généraliser :

    -Web- Réalité virtuelle

    - Jeux

    - etc.

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    8/13© C. Kolski

    Définitions et caractérisations du Génie Logiciel

    - Prépondérance des systèmes interactifs dans tous les domaines de la société : 

    ► Systèmes multimédia (sites Web, CD-ROM…) ; applications ludiques, culturelles, pédagogiques... ► Systèmes d'information dans les entreprises, Systèmes Interactifs d‘Aide à la Décision (SIAD)

    ► Logiciels de bureautique, environnements de développement, CAO► Systèmes de services grand public► Salles de contrôle de systèmes industriels complexes… 

    Nécessitéde systèmes interactifs de plus en plus conviviaux , intelligents , adaptés aux besoinsdes uti l isateurs

    Théorie de l’action de NORMAN (1986) 

    Importance des interactions

    homme-machine

    Tâches complexes, travail coopératif… 

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    9/13© C. Kolski

    Définitions et caractérisations du Génie Logiciel

    - Caractéristique des coûts/revenus pour un progiciel :

    - Veiller au déroulement du processus de fabrication :

    ► Coûts, délais dans des limites fixées au départ

    ► Répondre aux besoins du client, le satisfaire

    ► Respecter un contrat de service (performance, sûreté de fonctionnement,

    ergonomie, sécurité...) lors de l'exploitation future du logiciel

    Revenus

    Coûts

    Temps

    T1(1ère

    livraison)

    Amortissement

    des coûts de développement

    Gains

    T2 T3

    Problèmes fréquents :Retard de livraison -> (T2, T3)Manque de fiabilité -> Coût de maintenance

    Maintenance corrective

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    10/13© C. Kolski

    Les langages et le Génie Logiciel

    FORTRAN

    ALGOL 58

    FLOWMATIC

    IPL/V

    Première "vague" : 1954-1958

    BCPL

    ALGOL 60

    COBOL

    LISPSeconde "vague" : 1959-1961

    B ALGOL 68BASIC LISP 1.5

    FORTH PASCALSIMULA 67 GAP 68

    Troisième "vague" : 1962-1970

    FLAVORS MODULA 2CLU Smalltalk 72

    C L4GPLASMA

    Quatrième "vague" : 1971-1980

    Smalltalk 80

    Objective COBJVLISP C++

    ACT1/ACT2

    ADA 83FORMES

    Cinquième "vague" : 1981-1985

    LOOPS

    YAFOOL OBJLOG EIFFEL ART

    ACT1/ACT2  New FlavorsCLOS

    Sixième "vague" : 1986-1990

    ABCL/1

    Années 90

    ADA 95 Visual C++

    JAVA

    Prolog II

    Prolog III

    etc

    etc

    etc

    etc

    etc

    etc

    etc

    Visual BasicProlog IV +langages à basede contraintes

    Années 00

    Programmation par composant, approches à base de modèles

     Source d’inspiration 

    initiale : JAULENT (1990)

    , 10 et suivantes

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    11/13© C. Kolski

    Les langages et le Génie Logiciel

    - Quatre grands courants de pensée, association à des types de langage

    - Pensée impérative : prône une programmation algorithmique, à

    l'origine de la programmation structurée, langages compilés

    Procédurale : à partir des successeurs d'Algol (Fortran, Pascal, C...)

    Modulaire : à partir des langages de type Modula 2 et ADA

    ► G.L. : apparition de méthodes d'analyse et de conceptiondites structurées ou cartésiennes (tels SADT, SASD, SA-RT)

    - Pensée applicative : développe une pensée purement fonctionnelle et déclarative

    A partir des fils de Lisp (Plasma, Caml, Smalltalk...), langages interprétés

    Généralisation par la programmation par objets, LOO

    ► G.L. : apparition de méthodes d'analyse et de conception dites

    orientées objets ; actuellement : UML (nécessaire association à

    un processus méthodologique), recherches à ce sujet… 

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    12/13© C. Kolski

    Les langages et le Génie Logiciel

    - Pensée acteurs (actuellement : agents) :

    Propose de nouvelles structures de contrôle liées

    au parallélisme, langages ACT1, ACT2...

    ► G.L. : manque de méthodes associées ; vers des

    méthodes orientées agents (entités humaines et logiciels constituant une

    organisation), influences de l'Intelligence Artificielle Distribuée (SMA :

    Systèmes Multi-Agents) ; lire : FERBER (1995), MANDIAU et al. (2002)

    ► Sujets de projets et de thèse dans le thème :

    « Interaction et agents » au LAMIH

    (Contact : Prof. René MANDIAU)

    - Pensée logique : par raisonnement simulant la logique humaine

    (Cf. cours d'Intelligence Artificielle)

    Langage de référence : Prolog

    ► G.L. : pas de méthodes associées (cf. les méthodes de Génie Cognitif ,

    conception de systèmes intelligents, à base de connaissances, ex. : KADS)

    http://images.google.fr/imgres?imgurl=http://www.deskdeco.net/movies/terminator/t3_3.jpg&imgrefurl=http://www.koreus.com/modules/news/article4093.html&usg=__sc1FRtKCfWhJK7dzsE680_9I2c4=&h=768&w=1024&sz=78&hl=fr&start=45&um=1&tbnid=byK_Uzdumtx8wM:&tbnh=113&tbnw=150&prev=/images%3Fq%3Dterminator%26ndsp%3D21%26hl%3Dfr%26sa%3DN%26start%3D42%26um%3D1

  • 8/19/2019 GL P1 Caractérisations P2 Langages

    13/13© C K l ki

    ARLAT J. et collègues (1995). Guide de la sûreté de fonctionnement . Cépaduès Editions,

    Toulouse.

    CONSTANTINIDIS Y. (2006). Définition des besoins pour le logiciel . Editions Hermes,Paris.

    FERBER J. (1995). Les systèmes multi-agents. InterEditions, Paris.

    JAULENT P. (1990). Génie Logiciel, les méthodes. Armand Colin, Paris.

    MANDIAU R., GRISLIN-LE STRUGEON E., PENINOU A. (2002). Organisation et

    applications des SMA, Paris: Hermes, 2002.

     NORMAN D.A. (1986). Cognitive engineering. In D.A. Norman & S.W Draper (Eds),User centred system design : new perspectives on human computer interaction.

    Hillsdale, NJ : Erlbaum.

    PRINTZ J. (1995).  Le génie logiciel . Collection Que sais-je ?, Paris, Presses

    Universitaires de France. Cf. la cinquième édition de 2005.

    REDOUIN P. (1991).  Réussir en ingénierie de l'information. Les Editions

    d'Organisation, Paris.

    Pour un complément d’introduction, voir :

    http://tisserant.org/cours/qualite-logiciel/qualite_logiciel.html

    Bibliographie

    Webographie