• Aucun résultat trouvé

Cycle de vie du logiciel

N/A
N/A
Protected

Academic year: 2022

Partager "Cycle de vie du logiciel"

Copied!
9
0
0

Texte intégral

(1)

Julie Vachon, Hiver 2006

IFT2251:

Introduction au génie logiciel

Chapitre 2:

Cycle de vie du logiciel

Chap.2 p.2 Copyrights Julie Vachon, 2006

Sommaire

Chapitre 2

« Cycle de vie du logiciel»

2.1 Cycle de vie du logiciel 2.2 Le rôle de l’analyste

…Planification et ingénierie système

2.3 Aperçu des processus de développement

…Modèle en cascade …Modèle par prototypage …Modèle en spirale …Etc.

Chap.2 p.3 Copyrights Julie Vachon, 2006

Références

„

Satzinger et al.

…Chap. 2 …Chap. 3 …Chap. 13

„

Ghezzi et al.

…Chap.1

…Chap.7, section 4

„

Pfleeger

…Chap. 2 (p.45-59)

Chap.2 p.4 Copyrights Julie Vachon, 2006

2.1 Cycle de vie du logiciel

Pour réaliser un logiciel

„ Activités de développement (phases)

„ Organisation de ces activités dans le temps (processus de développement).

Analyse et spécification

Conception et spécification

Implémentation

Vérification

Installation

Maintenance

Activités en continu documentation, validation et vérification,

gestion Planification

Du projet

(2)

Chap.2 p.5 Copyrights Julie Vachon, 2006

Planification (étude préliminaire)

„ Définition globale du problème (diag. contexte)

„

Confirmer la faisabilité

… évaluation des stratégies possibles … évaluation des ressources, coûts et délais

„

Produire le calendrier du projet

„

Trouver le personnel

„

Lancer le projet

Documents:

rapport de planification

Est-ce possible ?

Chap.2 p.6 Copyrights Julie Vachon, 2006

Analyse des besoins

Découvrir et comprendre les besoins

„ Cueillette d’informations

… exigences fonctionnelles / qualités non fonctionnelles

„ Spécification du système

„ Construction de prototypes (pour élaborer la spécification)

„ Prioriser les éléments de la spécifications

„ Produire et évaluer des solutions alternatives

„ Examiner les recommandations avec le chef de projet et/ou le client…

Documents:cahier des charges, document de spécification (analyse), prototype, plan de test.

Quoi faire?

Conception

1.

Conception architecturale: décomposition et organisation de l'application en modules plus simples définis par une interface. Bases de données, environnement d’exploitation, interfaces.

2.

Conception détaillée: pour chaque module, description de la manière dont les services et fonctions sont réalisés:

… algorithmes essentiels

… structures de données utilisées, etc.

Comment faire?

Conception

„ Concevoir et intégrer le réseau

„ Concevoir l’architecture d’application

„ Concevoir les interfaces utilisateur

„ Concevoir les interfaces du système

„ Concevoir et intégrer la base de données

„ Faire un prototype des détails de la conception

„ Concevoir et intégrer les contrôles de sécurité Documents:document de conception (spécification), prototype, plan de test global et plan de test par module.

(3)

Chap.2 p.9 Copyrights Julie Vachon, 2006

Implémentation

Traduction de la conception dans un langage de programmation ou mise en œuvre en utilisant des outils

de développement

„ Construire les composantes logicielles

Documents:dossiers de programmation, code source commenté, prototypes.

Chap.2 p.10 Copyrights Julie Vachon, 2006

Vérification

1. Tests unitaires:

… Tests avec les jeux d'essais par module selon le plan de test.

2. Tests d'intégration:

… Composition progressive des modules … Tests des regroupement de modules

3. Test du système:

… Test en vraie grandeur du système complet selon le plan de test global.

Documents:rapport de vérification par test.

Est-ce bien fait? Le programme répond-t-il à

la spécification?

?

?

?

Chap.2 p.11 Copyrights Julie Vachon, 2006

Installation et maintenance

„

Installation:

…Mise en fonctionnement opérationnel chez les utilisateurs.

…Conversion des données.

…Parfois restreint (dans un 1er temps) à des utilisateurs sélectionnés.

„

Maintenance:

…Maintenance corrective (corriger erreurs) …Maintenance adaptative (modifications) …Maintenance perfective (améliorations)

…Aussi: maintenance préventive (pour faciliter les opérations de maintenance à venir).

?

?

?

Chap.2 p.12 Copyrights Julie Vachon, 2006

Activités en continu

„ Validation

…Le produit répond-il aux besoins du client? «Construit-on le bon produit?»

…S’assurer de répondre aux exigences du client.

„ Vérification

…Le produit est-t-il correct (par rapport à la spécification)? «Construit-on le produit comme il faut?»

…S’assurer de la qualité du produit (révisions et inspections) …S’assurer de satisfaire la spécification.

„ Gestion

…Du processus de développement (suivi de projet, révision, etc.) …De la configuration: politique de gestion des versions, des documents,

politique de réutilisation …Des ressources humaines …Du risque

„ Documentation

(4)

Chap.2 p.13 Copyrights Julie Vachon, 2006

2.2 Rôle de l’analyste

Analyse Conception architect.

Implémentation

Test d’intégration

Installation Maintenance Test système Tests unitaires

Analyste

Concepteur

Programmeur

Testeur

Formateur Conception détaillée.

Planification

Membres de l’équipe de développement

Chap.2 p.14 Copyrights Julie Vachon, 2006

Rôle de l’analyste

„ Responsabilités:

…chargé de l’analyse et de la conception …invité à participer à la planification stratégique.

„ Titres de poste:

programmeur analyste, consultant, conseiller en administration des affaires, concepteur de systèmes, architecte système, concepteur de page web, ingénieur logiciel, chef ou gestionnaire de projet.

„ Milieu de travail:

entreprise spécialisée dans l’analyse et la conception, entreprise requérant les services d’un analyste pour ses propres projets, à la pige, etc.

„ Exemples:

…Offre d’emploi pour un ingénieur d’étude et de développement …Offre d’emploi : spécialiste en recherche opérationnelle

Rôle de l’analyste

Connaissances et compétences

„ Techniques

…Fonctionnement des ordinateurs, périphériques, bases de données, réseaux, langages de programmation, systèmes d’exploitation et utilitaires.

…Outils de développement et progiciels.

…Technique d’analyse, de gestion, de conception, etc.

„ Administratives

…Compréhension de l’organisation des entreprises en générales…

et en particulier (succès, plan stratégique, traditions, valeurs, etc.)

„ Relations humaines:

…Comprendre comment les gens pensent, apprennent, réagissent, communiquent et travaillent.

…Aptitude à bien communiquer.

L’analyste et l’ingénierie système

l’entreprise

Domaines d’affaires

Analyse des sous-domaines Système d’information

Construction Et intégration Vue du monde WV={D1,D2, .. Dn}

Un logiciel est un système i.e. un ensemble structuré et coordonné.

…Qu’est-ce qu’il y a à l’extérieur ? (frontières) …Qu’est-ce qu’il y a à l’intérieur ? (sous-systèmes) ?

Conception du système Ing.

Log.

(5)

Chap.2 p.17 Copyrights Julie Vachon, 2006

Ingénierie système

„ Étude des systèmes complexesde type informatique (lois qui gouvernent les grands systèmes).

„ Etablissement des besoins relatifsà tous les éléments du système général(matériel, bases de données, utilisateurs, etc.) dans lequel devra s’intégrer le logiciel.

Vue élargie des besoins.

„ Discipline qui traite de la conception de systèmes informatiques, notamment de l'analyse des besoins, de la détermination des spécifications techniques et du type d'architecture du système à développer. (Grand dictionnaire terminologique)

Chap.2 p.18 Copyrights Julie Vachon, 2006

Ingénierie système

analyse conception code test

Ingénierie système

„

Les connaissances de l'ingénieur système sont principalement requises dans les phases d’analyse et de conception.

Chap.2 p.19 Copyrights Julie Vachon, 2006

Ingénierie système

Diagramme de contexte

On peut décrire le cadre du système dans lequel le logiciel s’inscrit par un diagramme de contexte.

Diagramme de contexte: Graphique montrant l’ampleur d’un système.

„ Le système

„ Les objets externes

„ Flots de données Exo

Chap.2 p.20 Copyrights Julie Vachon, 2006

Ingénerie système

Diagramme de contexte

Système de contrôle d’un ascenseur

Système de contrôle moteur

frein Bouton

cabine

Bouton D’appel Cmde_activation

No_étage

No_étage

Cmde_activation

(6)

Chap.2 p.21 Copyrights Julie Vachon, 2006

2.3 Processus de développement

Processus de développement: Description abstraite et idéalisée des différentes manières d'organiser les

activités du développement d’un logiciel.

1.

Décrit un ensemble de tâches ordonnées impliquant

…

des activités (celles du cycle de vie)

…

des contraintes (sur le temps, ressources, etc.)

…

des

ressources

(humaines, matérielles, etc.)

Chap.2 p.22 Copyrights Julie Vachon, 2006

Processus de développement

2.

Doit être «personnalisé» pour l'entreprise de façon à définir l'ordonnancement idéal des activités.

… spécifier les artéfactsà produire (types de documents, format, échéancier).

… attribuer activités & artéfactsaux développeurs … proposer des critères pour superviserl'évolution du

projet, ses résultats et prévoir plans futurs (vérification, validation, documentation, etc.)

… proposer une méthodologie pour gérer les

changementstant dans le processus et que le logiciel.

Processus de développement

„

Le processus de développement est à définir en équipe, de préférence, car ce travail permet:

…

Bénéficier de l’expertise et des points de vue des autres.

„Meilleure identification des incohérences, redondances et omissions dans le processus.

„Identification et prise en compte de certaines particularités du projet.

…

Compréhension commune des activités, ressources et contraintes.

Processus de développement Quelques modèles existants

… à personnaliser

„

Modèle en cascade

„

Modèle en V

„

Modèle par prototypage

„

Modèle en spirale

„

Etc..

(7)

Chap.2 p.25 Copyrights Julie Vachon, 2006

Modèle en cascade

„ Etapes réalisées de façon strictement séquentielle.

„ L’attention est centrée sur les artéfacts produits à la fin chaque étape. (document- driven)

Analyse et spécification

Conception et spécif.

(architect. et détaillée) Programmation

Test (unitaire, intégration, système)

Installation Maintenance

Chap.2 p.26 Copyrights Julie Vachon, 2006

Modèle en cascade

Avantages

„ Plan simplede ce qu'il faut faire.

„ Facileà comprendre

„ Cette première définition a permis la normalisation des cadres conceptuels et terminologiques des différentes activités.

„ Pertinent dans le cas des anciens systèmes

…Plus faciles à analyser et modéliser;

…de conception et mise en oeuvre coûteuses (ex.

temps de compilation: 2 jours!)

Inconvénients

„ Hypothèses souvent irréalistesque l'on peut dès le départ définir complètement et en détail

…ce qu'on veut réaliser …les résultats intermédiaires

obtenus

„ Ne reflète pas la façon dont le code est réellement développé.

„ Trop rigide, manque de flexibilité pour imprévus.

„ Pas de «feedback»avant la livraison au client....

Chap.2 p.27 Copyrights Julie Vachon, 2006

Modèle en V

„ Variation du modèle en cascade

„ Attention centrée sur la correction: vérification et validation

Analyse et spécification

Conception architecturale

Programmation

Test du système Installation et

maintenance

Conception détaillée

Test unitaire et d’intégration

Test de validation validation

vérification

Chap.2 p.28 Copyrights Julie Vachon, 2006

Modèle par prototypage

„ À chaque étape, un ou plusieurs prototypes sont soumis au client pour évaluation/révision.

„ Permet d'examiner et d'explorer certains aspects du système pour évaluer et choisir les meilleures stratégies/solutions.

Analyse

des besoins Conception Implémentation Test Analyse,

construction et évaluation de prototype Révision du prototype

Besoins

(description informelle,

souvent incomplète) Installation &

maintenance Analyse,

construction et évaluation de prototype

Analyse, construction et évaluation de prototype

(8)

Chap.2 p.29 Copyrights Julie Vachon, 2006

Modèles évolutifs

„ Le processus de développement d’un logiciel peut être très long (mois, années…)

„ Le logiciel est un produit de nature évolutive…

„ Pour être compétitif, il faut réduire le temps de mise en marchéet pouvoir

… produire versions partielles du système

… ajouter graduellement de qualités et fonctionnalités.

Solution:

Modèle évolutif: développement au cours duquel des versionsdu logiciel de plus en plus complexeset

détaillées sont développées.

„ Deux versions du logiciel existent alors en parallèle 1. logiciel opérationnel (version utilisée actuellement) 2. logiciel en développement (prochaine version)

Chap.2 p.30 Copyrights Julie Vachon, 2006

Modèle évolutif - incrémental

„

Approche incrémentale

…division du système en sous-systèmes (un par fonctionnalité).

…1re version: système partiel.

…Chaque nouvelle version ajoute un nouveau sous- système.

Version 1

cycle de vie complet

Version 2

cycle de vie complet noyau

Version 3

Modèle évolutif - itératif

„

Approche itérative

…division du système en sous-systèmes (un par fonctionnalité).

…1re version: coquille complète du système.

… Chaque nouvelle version apporte une modification/amélioration à un sous-système.

cycle de vie complet cycle de vie

complet

Version 1 Version 2 Version 3

Modèles évolutifs

Avantages

„ Formation précoce des utilisateurs. Réponse rapide possible.

„ Création précoce de nouveaux marchés pour nouvelles fonctionnalités.

„ Focus sur nouveau domaine d'expertise à chaque étape (version).

„ Détection précoces des problèmes imprévus (correction immédiate du système en

développement).

Inconvénients

„ Risque de la remise en cause du noyau (fonctionnalités de base) au cours du

développement.

(9)

Chap.2 p.33 Copyrights Julie Vachon, 2006

Modèle en spirale (Boehm 88)

„ Modèle cyclique. Chaque cycle est composé de 4 étapes

„ A chaque cycle:

…spécification de nouveaux besoins

…critères de robustesse deviennent des critères de correction 1. Définition

des objectifs, alternatives, contraintes

2. Identification des risques et solutions pour les réduire

3. Développement et vérification/validation de la prochaine version du produit 4. Planification des

cycles suivants

Élaboration de prototypes Analyse des risques

validatiobesoinsn conception codage

Tests unitaires Intégration Acceptation Plan du cycle de vie Plan de tests et intégration

Chap.2 p.34 Copyrights Julie Vachon, 2006

Parmi les objectifs d’apprentissage

„

Expliquer le but et les tâches des diverses phases du cycle de vie d’un logiciel.

„

Décrire ce qu’est l’ingénierie système et comment on détermine la portée d’un nouveau système.

„

Expliquer le rôle principal de l’analyste dans une entreprise.

„

Identifier et expliquer l’importance des compétences techniques, humaines et commerciales et de la probité professionnelle pour un analyste.

„

Définir ce qu’est un processus de

développement et expliquer son utilité.

Références

Documents relatifs

7) Les équations des réactions : En pratique, le réducteur qui réduit les oxydes de fer est le monoxyde de carbone CO (g) , qui résulte de la réaction du dioxyde de carbone CO 2 (g)

Une mole d'espèces chimiques identiques (atomes, ions ou molécules) est une quantité de matière contenant le nombre N A d'espèces chimiques. Plus simplement, une mole

Vachon - Chap.3, sect.1, p.11 Copyrights Julie Vachon, 20064. 3.1.2 Processus d’analyse des

Vachon - Chap.3, sect.2, p.10 Copyrights Julie Vachon, 2006. Modélisation –

Chap.4, Sect.2, p.13 Copyrights Julie Vachon,

Le système confirme la transaction en enregistrant chaque prêt individuellement dans le compte du client, en indiquant la date du prêt, la date de retour et le nom de

Chap.5, Sect.1,bis p.2 Copyrights Julie Vachon, 2006.. Catalogue de

L’analyse structurelle d’un réseau de Petri permet de prouver certaines propriétés du réseau sans avoir à construire le graphe des marquages accessibles.. Matrice d’incidence