Le génie logiciel. maintenance de logiciels.



Documents pareils
Analyse,, Conception des Systèmes Informatiques

Processus d Informatisation

2. Activités et Modèles de développement en Génie Logiciel

Évaluation et implémentation des langages

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

Cours Gestion de projet

Introduction au génie logiciel

Chapitre I : le langage UML et le processus unifié

Développement spécifique d'un système d information

M Études et développement informatique

But de cette introduction à la gestion de projets :

Fiche méthodologique Rédiger un cahier des charges

Rational Unified Process

IFT2255 : Génie logiciel

GL Processus de développement Cycles de vie

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Génie logiciel (Un aperçu)

M Études et développement informatique

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Outil de gestion et de suivi des projets

Université de Bangui. Modélisons en UML

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

2.DIFFERENTS MODELES DE CYCLE DE VIE

IFT3913 Qualité du logiciel et métriques. Chapitre 2 Modèles de processus du développement du logiciel. Plan du cours

Gestion Projet. Cours 3. Le cycle de vie

Identification du module

LOG2420 Analyse et conception d interfaces utilisateur

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

LES INTERFACES HOMME-MACHINE

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Développement itératif, évolutif et agile

DEVELOPPEMENT ET MAINTENANCE DE LOGICIEL: OUTIL DE PILOTAGE

Merise. Introduction

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

LICENCE : INFORMATIQUE GENERALE

Vérifier la qualité de vos applications logicielle de manière continue

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

UNITE U 6.2 : PROJET TECHNIQUE OBJET DE L'EPREUVE.

Groupe Eyrolles, 2004 ISBN :

Test et Validation du Logiciel

Conception, architecture et urbanisation des systèmes d information

Etabli le : Par : Pascal Kramer / Valentin Borin Remplace la version du :

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Sujet de thèse CIFRE RESULIS / LGI2P

ITIL V3. Transition des services : Principes et politiques

Gé nié Logiciél Livré Blanc

Qu'est-ce que le BPM?

Vérification et Validation

Construire un tableau de bord par Marc Maisonneuve

Plateforme de capture et d analyse de sites Web AspirWeb

Extrait des Exploitations Pédagogiques

Programmation sous QT

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

INDUSTRIALISATION ET RATIONALISATION

Analyse des Besoins (Spécifications)

Gestion de projets logiciels. Xavier Dubuc

Chapitre 9. Assistance à l évolution du logiciel dirigée par la qualité

Concepteur Développeur Informatique

Profil d études détaillé. Section : Informatique et systèmes Finalité : Technologie de l informatique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Analyse par Objets. avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I

Méthodes de développement. Analyse des exigences (spécification)

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Annexe : La Programmation Informatique

CONDUITE D UN PROJET INFORMATIQUE. - Partie Suivi de Projet - C.Crochepeyre Conduite de Projet 1

Les méthodes itératives. Hugues MEUNIER

Nom de l application

Simulation de systèmes. Logiciel de simulation

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

La reconquête de vos marges de manœuvre

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Proposition pour la création d un site de gestion de projet

Analyse structurée de solutions pour BMC Remedy IT Service Management v 7

URBANISME DES SYSTÈMES D INFORMATION

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Programmation en Java IUT GEII (MC-II1) 1

CHAPITRE 3 : LES METHODES AGILES?

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

INTRODUCTION AUX TECHNOLOGIES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Urbanisme du Système d Information et EAI

Le développement d'applications informatiques

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

Comité Français des Tests Logiciels. Testeur Certifié. Version 2012

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Scrum/XP adapté au BI/DW

2. Technique d analyse de la demande

GESTION DE PROJET. - Tél : N enregistrement formation :

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Transcription:

Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels.

Introduction et Définitions Maintenance? Page 3

Introduction et Définitions Définition du génie logiciel Terme anglais: Software Engineering Autres définitions possibles - L'application pratique de l'informatique, de la gestion de projets et d'autres sciences à l'analyse, à la conception, à la réalisation, à la maintenance du logiciel et à la documentation nécessaire à l'utilisation et à la maintenance du logiciel. - Une science qui applique les concepts de l'analyse, de la conception, de la réalisation, de la vérification, de la documentation et de la gestion de projets. - L application systématique de procédures, méthodes, outils et techniques pour atteindre les besoins ou les objectifs attendus d un logiciel. Page 4

Les logiciels en opération aujourd hui Navette spatiale : 100,000 lignes Les programmes de contrôle de mission : 3,000,000 lignes de code Un logiciel de télécommutation de NORTEL : 5,000,000 lignes de code Un interstitiel / serveur d applications : 10,000,000 + Etc.

Comment s y prendre? Décomposer le «développement» d un logiciel en un processus ayant des étapes plus «gérables» Décire le logiciel selon plusieurs perspectives (modèles), chacune mettant l emphase sur un aspect particulière

Qu est ce qu un processus? Une suite d étapes impliquant des activités, des acteurs, des ressources, et des contraintes pour produire un résultat escompté Différents modèles de processus de développement ont été proposés

Modèles de processus de développement Faisabilité Le modèle en cascade Définition Planification besoin Analyse Conception Conception Codage Réalisation Installation Maintenance Tests unitaires Intégration Tests d intégration Installation Tests système Maintenance Tests de nonrégression Page 6

Modèles de développement Le modèle par prototypage Analyse des besoins Conception rapide Construction d un prototype Évaluation du prototype et raffinement des besoins Élaboration du produit Page 7

Modèles de développement Le modèle en spirale Coûts cumulés Identification des objectifs, des alternatives et des contraintes Évaluation des alternatives Identification des risques Analyse du risque Analyse du risque Analyse du risque Prototype Prototype Prototype Prototype opérationnel Plan de développement Intégration et tests Planification des phases suivantes Plan du cycle de vie Définition conceptuelle Analyse besoins Validation besoins Validation conception Installation Simulation Conception Code logiciel Tests unitaires Tests d intégration Tests d acceptation Conception détaillée Développement Page 8

Modèles de développement Le modèle pour la réutilisation Concevoir l architecture du système Spécifier les composants Chercher les composants réutilisables Incorporer les composants dans le système Page 9

Modèles de développement Modèle de développement OO Page 10

Cycle de vie d un logiciel Analyse et définition des besoins Analyse et définition des besoins Spécification Conception Développement Réalisation Vérification Exploitation Maintenance Exploitation et maintenance Page 11

Cycle de vie d un logiciel Analyse et définition des besoins Préciser les services qui seront rendus par le logiciel à l'utilisateur * Le cahier des charges (ou document d'analyse des besoins) - Identification des concepts pertinents au problème. - Définition des propriétés ou des contraintes, décrites de façon précise, qu'un logiciel doit satisfaire. Complet Cohérent Tout ce que le logiciel aura à faire doit être exprimé. Aucun des besoins exprimés ne doit être en conflit avec un autre. Les méthodologies d analyse et de conception * Exemple de méthodologies - Orientées Données - Merise - Methode/1 (Arthur Andersen) - Productivité + (DMR) - Orientées Temps réel - Ward-Mellor Analysis & Design - Boeing-Hatley Analysis & Design - Orientées Objet - Coad-Yourdon - Booch - OMT, etc. Page 12

Cycle de vie d un logiciel Spécification Analyse et définition des besoins Spécification Conception Développement Réalisation Vérification Exploitation Maintenance Exploitation et maintenance Page 13

Les trois vues d'un logiciel Processus (fonctionnel) Données (structurel) Événements (dynamique) La plupart des méthodologies permettent de décrire cet aspect tridimensionnel du logiciel. - L aspect structurel - Point de vue des données - L aspect fonctionnel - Point de vue des traitements Structure 1 Structure 2 Relation Entrée Processus Sortie - L aspect temps événementiel - Point de vue des événements État 1Les Événement 1 État 2 Événement 2 Page 5

Cycle de vie d un logiciel Spécification Les spécifications décrivent la fonctionnalité du système; ce que le système est supposé faire mais pas nécessairement comment. Différents types de spécifications Les spécifications en langage naturel Les spécifications formelles - Les spécifications graphiques Type données : diagrammes de flux de données, modèle conceptuel de données, etc. Type données/évènements : machines d état finis, réseaux de Petri, etc. - Les spécifications à l aide de langages formels VDM CSP Lotos Langage Z Page 14

Cycle de vie d un logiciel Conception Analyse et définition des besoins Spécification Conception Développement Réalisation Vérification Exploitation Maintenance Exploitation et maintenance Page 15

Cycle de vie d un logiciel Conception La conception doit préciser comment les fonctions seront réalisées. Conception architecturale et spécification fonctionnelle - Interprétation des spécifications et des fonctionnalités ciblées - Identification des composants logiciels ou matériels d un logiciel intégré et cohérent - Construction architecturale du produit - Description détaillée de chacune des abstractions utilisées Page 16

Cycle de vie d un logiciel Réalisation Analyse et définition des besoins Spécification Conception Développement Réalisation Vérification Exploitation Maintenance Exploitation et maintenance Page 16

Cycle de vie d un logiciel Réalisation Choix d un ou de plusieurs langages adéquats Assemblage Procédural (COBOL, FORTRAN, PASCAL, C, etc. ) Fonctionnel ( LISP) Logique (PROLOG) Orienté-Objet (C++, Smalltalk, Eiffel, Java, C#, etc.) Page 18

Cycle de vie d un logiciel Vérification Analyse et définition des besoins Spécification Conception Développement Réalisation Vérification Exploitation Maintenance Exploitation et maintenance Page 19

Cycle de vie d un logiciel Vérification Les différents tests possibles Tests unitaires Tests de modules Tests de sous-systèmes Tests d'intégration Tests d'acceptation La validation des documents générés dans différentes phases Revues par pair Revues structurées Inspections Page 20

Cycle de vie d un logiciel Maintenance Analyse et définition des besoins Spécification Conception Développement Réalisation Vérification Exploitation Maintenance Exploitation et maintenance Page 21

Qualité du logiciel et maintenance Maintenance - Les tendances du logiciel (étude de Lehman & Belady 1985) - Loi du changement continuel - Loi de l accroissement de la complexité - Loi de l évolution des grands programmes - Les trois aspects de la maintenance Répartition de l effort de maintenance Corrective Adaptative Perfective (17 %) (18 %) (65 %) - Maintenance perfective - Effectuer les changements demandés par les utilisateurs ou par les programmeurs du système - Maintenance adaptative - Adapter le logiciel aux changements de son environnement - Maintenance corrective - Corriger les erreurs Page 22

Qualité du logiciel et maintenance Nature du logiciel Nature particulière du logiciel - Développement versus processus de production - Produit difficilement tangible, mesurable... Difficultés du logiciel - Produit abstrait et donc difficilement compréhensible - La construction d un produit est souvent reprise de zéro - L estimation est difficile - Définition des besoins en perpétuel changement - Manque de compréhension de l impact des changements - Absence de modèles de fabrication contrôlables Retombées floues - Procédure d acceptation de produit mal définie - Procédure d acceptation des besoins mal définie - Acceptation de produits incomplets Page 23

Qualité du logiciel et maintenance Qualités souhaitables d un logiciel Maintenabilité Flexibilité Testabilité RÉVISION TRANSITION Portabilité Réutilisabilité Interfaçabilité EXPLOITATION Exactitude Fiabilité Efficacité Intégrité Commodité Sécurité Page 24

Qualité du logiciel et maintenance Définition des qualités d un logiciel Les qualités d'exploitation - Exactitude (Fait-il ce que je veux?) - Fiabilité (Le fait-il fidèlement à chaque fois?) - Efficacité (S'exécute-t-il sur ma machine aussi vite que nécessaire?) - Intégrité (Est-il intègre?) - Commodité (Suis-je capable de l'utiliser?) - Sécurité (Est-il sécuritaire?) Les qualités de révision - Maintenabilité (Puis-je le corriger?) - Flexibilité (Puis-je le modifier?) - Testabilité (Puis-je le tester?) Les qualités de transition - Portabilité (Pourrai-je l'utiliser sur une autre machine?) - Réutilisabilité (Pourrai-je réutiliser une partie de mon logiciel?) - Interfaçabilité (Pourrai-je l interfacer avec un autre système?) Page 25

Qualité du logiciel et maintenance Quantification du logiciel La quantification du logiciel vise à mesurer les produits et les processus du développement logiciel dans le but de les améliorer. Pourquoi utiliser des mesures - Planification de projet - Évaluation de produits et de méthodes - Contrôle des processus de développement - Amélioration des processus de développement Que mesurer? - Les mesures directes - le coût - l effort - le nombre de lignes de code - la performance - la taille mémoire - le nombre d erreurs - Les mesures indirectes - la complexité - la portabilité - la fiabilité - la maintenabilité Les différentes classifications de mesures - Les mesures de produits - Les mesures de processus - Les mesures de ressources - Les mesures d attributs externes et internes Page 26

Outils CASE Qu est-ce qu un outil CASE? Définition L utilisation d outils automatiques pour le développement du logiciel Objectifs - Améliorer la productivité - Favoriser la réutilisabilité et la portabilité - Automatiser le processus de développement du logiciel - Améliorer la qualité - Formaliser et standardiser la documentation - Limiter le nombre d erreurs (nombre et gravité) Caractéristiques - Interface graphique - Dictionnaire - Capacités de vérification automatique Exemples - Générateurs de diagrammes de flux de données - Outils d analyse et d inspection du code - Outils de mesures - Système à base de connaissance pour l aide à la conception Page 27

Outils CASE Caractéristiques des outils CASE - Des outils d aide dans chaque phase du cycle de vie - Un référentiel pour gérer et stocker toute l information concernant le logiciel - Une interface graphique pour dessiner des diagrammes de structure - Un ensemble d outils intégrés partageant la même interface - Des outils de prototypage - Génération automatique de code à partir des spécifications Page 28