12
1 © Petko Valtchev Université de Montréal Septembre 2003 2 Analyse et Conception 1. Introduction et Rappels © Petko Valtchev Université de Montréal Septembre 2003 3 Intro Les Questions l Pourquoi le génie logiciel? l Qu’est-ce qu’on vise? l Quelle portée de la discipline? l Quelles sont les activités-clés?

Analyse et Conception 1. Introduction et Rappels

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

1

© Petko Valtchev Université de Montréal Septembre 2003 2

Analyse et Conception

1. Introductionet

Rappels

© Petko Valtchev Université de Montréal Septembre 2003 3

Intro Les Questions

l Pourquoi le génie logiciel?

l Qu’est-ce qu’on vise?

l Quelle portée de la discipline?

l Quelles sont les activités-clés?

2

© Petko Valtchev Université de Montréal Septembre 2003 4

Intro Le début…

l Aspects historiques

l 1968 Conference d’ OTAN, Garmisch (DE)

l But: résoudre la “Software Crisis”

l Le logiciel avait tendance d’être délivré:

l En retard

l A des coûts exorbitants

l Avec des erreurs

lQuant il était délivré… L

© Petko Valtchev Université de Montréal Septembre 2003 5

Intro L’Essence du Logiciel

l Pourquoi est-ce que les systèmes d’exploitation ne peuvent-

ils être construits comme on construit les ponts?

l Tendance à s’effondrer (“crash”)l Ingénierie imparfaite

l Complexité

l Difficultés de maintenance

l Le Génie Logiciel n’est donc pas un Génie ordinaire!

3

© Petko Valtchev Université de Montréal Septembre 2003 6

Intro Génie Logiciel: Définition

« Ensemble des connaissances, des procédés et des acquis scientifiques et techniques mis en application pour la conception, le développement,

la vérification et la documentation de logiciels, dans le but d'en optimaliser la production, le support et la qualité. »

Office de la langue française, 2000

« (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is

the application of engineering to software.(2) The study of approaches as in (1). »

IEEE Standards Collection: Software Engineering

© Petko Valtchev Université de Montréal Septembre 2003 7

Intro

Software Engineering

Technologie par couches

Génie Logiciel

orienté-“qualité”

processus (modèle)

méthodes

outils

[Pressman 2001]

4

© Petko Valtchev Université de Montréal Septembre 2003 8

Intro Qualité

l Qu’est-ce que c’est? (Question ouverte)

l Types de facteurs:l internes (visibles par les développeurs),

l externes (visibles par les utilisateurs)

l Quelques critères :

l Validité, Fiabilité (ou robustesse), Efficacitél Extensibilité, Réutilisabilité, Compatibilité, Portabilité

l Vérifiabilité, Intégrité

l Facilité d'emploi

© Petko Valtchev Université de Montréal Septembre 2003 9

Intro Qualité (suite)

l Validité : aptitude d'un produit logiciel à remplir exactement ses

fonctions, définies par le cahier des charges et les spécifications.

l Extensibilité : facilité avec laquelle un logiciel se prête à une

modification ou à une extension des fonctions qui lui sont

demandées.

l Réutilisabilité : aptitude d'un logiciel à être réutilisé, en tout ou

en partie, dans de nouvelles applications.

l Vérifiabilité : facilité de préparation des procédures de test.

l Intégrité : aptitude d'un logiciel à protéger son code et ses

données contre des accès non autorisés.

5

© Petko Valtchev Université de Montréal Septembre 2003 10

Intro “Quality is free”

Qualité

Effort

© Petko Valtchev Université de Montréal Septembre 2003 11

Intro Le Processus

l La manière dont nous produisons le logiciel:

l Le modèle de cycle de vie du logiciel

l Les participants individuels

l Les outils – CASE

l Différent chez chaque organisation!

l Standards pour l’évaluation (SEI)

Notrepréoccupationprincipale!

6

© Petko Valtchev Université de Montréal Septembre 2003 12

Intro

statusquo

définitiondu

problème

techniquedéveloppement

solution

intégrationde la

Le Processus Logiciel

La Résolution de Problèmes

© Petko Valtchev Université de Montréal Septembre 2003 13

Intro Le Modèle Linéaire

analysis design code test

System/informationengineering

7

© Petko Valtchev Université de Montréal Septembre 2003 14

Intro Les étapes

Analyse

l Pourquoi : répondre à l'évolution des matériels, des systèmes, des

langages de programmation, et surtout la complexité toujours

croissantes des logiciels.

l Objectifs

l Besoins : Comprendre le problème

l Spécification : Identifier les caractéristiques requis dusystème

l La question prédominante: QUOI

© Petko Valtchev Université de Montréal Septembre 2003 15

Intro Les étapes (suite)

Conception

l Pourquoi : réduire la complexité du passage entre la description

du problème et sa solution.

l Objectif

l Traduction progressive des spécifications (Le Problème)

vers une description du système (La Solution) sans pour

autant produire ce système.

l La question prédominante: COMMENT

8

© Petko Valtchev Université de Montréal Septembre 2003 16

Intro Modèles Itératifs

Prototyping

Rapid ApplicationDevelopment

© Petko Valtchev Université de Montréal Septembre 2003 17

Intro Le Modèle Incrémental

analysis design code test

System/informationengineering

analysis design code test

analysis design code test

analysis design code test

increment 2

increment 3

increment 4

increment 1

delivery of1st increment

delivery of2nd increment

delivery of3rd increment

delivery of4th increment

temps

9

© Petko Valtchev Université de Montréal Septembre 2003 18

Intro Coût Relatif par Étape

l Données de la période 1976–1981

l Le coût de la maintenance!

© Petko Valtchev Université de Montréal Septembre 2003 19

Intro Les deux étapes

Analyse et Conception

l Pourquoi s’y intéresser plus qu’à la mise au point ou à la

maintenance?

l Après tout, la SOLUTION est produite lors de la phase du

codage?

l Et tous sont d’accord que c’est la maintenance qui est la

plus laborieuse?

10

© Petko Valtchev Université de Montréal Septembre 2003 20

Intro Coût des erreurs

Coût de détection et de correction des erreurs selon les phases

© Petko Valtchev Université de Montréal Septembre 2003 21

Intro Les défauts

l 60 à 70 % des défauts sont des erreurs de spécification

et de conception

l Données de Kelly, Sherif, et Hops [1992]

l 1.9 erreurs par page de spécification

l 0.9 erreurs par page de conception

l 0.3 erreurs par page de code

11

© Petko Valtchev Université de Montréal Septembre 2003 22

Intro Les défauts (suite)

l Données de Bhandari et al. [1994]

l Erreurs à la fin de la phase de conception d’une nouvelle

version du produit

l 13% des erreurs provenant de la version précédente duproduit

l 16% des erreurs provenant des nouvelles spécifications

l 71% des erreurs provenant de la nouvelle conception

© Petko Valtchev Université de Montréal Septembre 2003 23

Intro En guise de conclusion…

Importance des phases d’Analyse et Conception:

l Chacune constitue un modèle du système logiciel,

l Le système est la solution du problème à résoudre, lesrésultats des deux étapes ne sont que des représentations dece système, abstraites et souvent très approximatives.

l Principales transformations

l Conjointement, les deux phases opèrent les principalestransitions d’informations concernant le système.

l Difficultés:

l faire converger les idées vagues sur le système que lesintéressés ont au début du projet vers un modèle détaillé deconception qui guide le codage.

l Primordiales pour l’assurance de la qualité du logiciel

12

© Petko Valtchev Université de Montréal Septembre 2003 24

Intro Lectures

l R. Pressman, Software Engineering: A Practitioner’s

Approach

l Lire les châpitre 11 et 12 pour la prochaine fois