introduction au logiciel

Transcription

introduction au logiciel
maintenance difficile et coûteuse
délais en général dépassés
non portables
non modifiables ou adaptables
peu efficaces
❑
❑
❑
❑
❑
Analyse orientée objets
coûts imprévisibles et prohibitifs
❑
3
contiennent trop d'erreurs
❑
Conception de systèmes programmables II
ne correspondent pas aux besoins
CRISE DU LOGICIEL
❑
Laboratoire
d'Informatique
Technique
INTRODUCTION AU LOGICIEL
les spécifications
les méthodes d'analyse et de conception
❑
❑
20
40
60
80
Conception de systèmes programmables II
Laboratoire
d'Informatique
Technique
1955
4
Matériel
Analyse orientée objets
1970
1990
Maintenance
Développement
TENDANCE DES COUTS
Analyse orientée objets
l'analyse, la conception et leur frontière
❑
2
le cycle de vie du logiciel
❑
Conception de systèmes programmables II
les principes du génie logiciel
le génie logiciel et ses objectifs
❑
❑
la "crise du logiciel"
CONTENU
❑
Laboratoire
d'Informatique
Technique
L'influence des mythes
❑
DEVELOPPER DU LOGICIEL EST UN METIER
PREMIERES CONCLUSIONS
Conception de systèmes programmables II
7
Analyse orientée objets
UNE BONNE EQUIPE DE DEVELOPPEMENT DE LOGICIEL
COMPREND AUSSI DES SPECIALISTES DU DOMAINE A
AUTOMATISER
UNE DEMARCHE DE MODELISATION ET DE SIMPLIFICATION
EST INDISPENSABLE
Laboratoire
d'Informatique
Technique
Analyse orientée objets
Le manque de modélisation
❑
5
L'absence de droit à l'erreur
❑
Conception de systèmes programmables II
L'absence d'échelle
QUELQUES CAUSES
❑
Laboratoire
d'Informatique
Technique
en cas de retard, il suffit de rajouter des programmeurs
❑
LE CREDO
Conception de systèmes programmables II
8
Analyse orientée objets
IL EST NECESSAIRE ET POSSIBLE DE SORTI DE LA CRISE
DU LOGICIEL
Laboratoire
d'Informatique
Technique
Analyse orientée objets
les spécifications peuvent changer car le logiciel est
facilement modifiable
❑
6
quand le programme fonctionne, c'est terminé
❑
Conception de systèmes programmables II
une idée grossière du logiciel est suffisante pour
commencer
QUELQUES MYTHES
❑
Laboratoire
d'Informatique
Technique
LE GENIE LOGICIEL ET SES OBJECTIFS
sûrs
compréhensibles
qui répondent aux spécifications
✔
✔
✔
Analyse orientée objets
LES OBJECTIFS: efficacité
9
Analyse orientée objets
règle des 80 - 20
✔
11
efficacité macroscopique (vue unifiée du problème)
✔
Conception de systèmes programmables II
efficacité microscopique (généralement considérée trop
tôt)
✔
L'efficacité résulte d'un compromis entre le temps d'exécution et
l'encombrement:
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
efficaces
✔
en respectant les délais
aisément modifiables
✔
Le génie logiciel a été créé en réaction à la crise, avec pour
objectif de créer des logiciels:
Laboratoire
d'Informatique
Technique
LES OBJECTIFS: sûreté et lisibilité
Analyse orientée objets
12
Analyse orientée objets
LISIBILITE
✔ directement liée à la gestion de la complexité
✔ on écrit le code une fois, mais on le lit à de
nombreuses occasions
SURETE
✔ prévention des pannes
✔ récupération en cas de pannes
✔ doit être considérée très tôt dans le processus de
développement
Conception de systèmes programmables II
❑
❑
Laboratoire
d'Informatique
Technique
10
il faut séparer le quoi du comment
Conception de systèmes programmables II
✔
la conception doit transparaître dans la solution
il faut assurer l'invariance logique vis à vis des
modifications matérielles
✔
✔
on doit pouvoir connaître les effets d'un changement
LES OBJECTIFS: modifiables
✔
Laboratoire
d'Informatique
Technique
LES PRINCIPES DU GENIE LOGICIEL
✔
l'uniformité
la complétude
la "confirmabilité"
✔
✔
✔
LES PRINCIPES DU GENIE LOGICIEL
DISSIMULATION DE L'INFORMATION
Analyse orientée objets
évite de base des décisions à haut niveau sur des
caractéristiques de bas niveau
✔
15
renforce l'abstraction en supprimant les détails
✔
Conception de systèmes programmables II
renforcée par des interfaces bien définies
✔
C'est rendre inaccessibles les détails de l'implantation
Laboratoire
d'Informatique
Technique
Analyse orientée objets
on peut se baser sur plusieurs types d'abstraction:
fonctionnelle, de donnée, d'objet
✔
la structuration
✔
13
principale technique de gestion de la complexité
✔
la modularité
✔
Conception de systèmes programmables II
chaque niveau de décomposition doit représenter une
abstraction
✔
la dissimulation de l'information
✔
Analyse orientée objets
16
Analyse orientée objets
moyens de vérification (couplage et cohésion)
✔
Conception de systèmes programmables II
2 approches:
top-down (descendante)
bottom-up (ascendante)
nécessite des interfaces bien définies
permet de gérer la complexité
LES PRINCIPES DU GENIE LOGICIEL
LA MODULARITE ET LA STRUCTURATION
14
✔
✔
✔
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
omettre temporairement les autres
✔
extraire les éléments essentiels
LES PRINCIPES DU GENIE LOGICIEL
L'ABSTRACTION
l'abstraction
Laboratoire
d'Informatique
Technique
✔
Pour atteindre ses objectifs, le génie logiciel fait appel à 7
principes:
Laboratoire
d'Informatique
Technique
systèmes réactifs
✔ systèmes interactifs
✔ systèmes temps-réel
❑
Analyse orientée objets
Analyse orientée objets
exemples typiques
❑
le temps de réponse n'est pas très critique
exemples typiques
❑
❑
19
Analyse orientée objets
programmes de CAO
Minitel / Videotex
traitement de texte / éditeurs / tableurs
Conception de systèmes programmables II
✓
✓
✓
Conception de systèmes programmables II
20
Analyse orientée objets
commandes de machines, de robots ou de procédés industriels
commutation téléphonique
applications aéronautiques, spatiales et militaires
...
ne doivent pas mettre en danger le système externe
❑
✓
✓
✓
✓
fonctionnent en général indéfiniment
❑
❑
ne font rien sans demande préalable de l'utilisateur
❑
plusieurs stimuli peuvent se produire et doivent être traités
en parallèle
en dialogue avec un ou des utilisateurs via des capteurs et
des actionneurs
❑
doivent réagir dans un temps borné aux sollicitations du
système externe
SYSTEMES TEMPS-REEL
18
❑
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
exemples typiques
✔ programmes de calcul
✔ gestion de la paie
✔ ...
❑
sont connectés à un système externe (procédé)
SYSTEMES INTERACTIFS
17
le temps d'exécution n'est pas critique
prennent ou demandent des données en entrée et
produisent un résultat
❑
❑
ont une durée de fonctionnement limitée
SYSTEMES TRANSFORMATIONNELS
❑
Laboratoire
d'Informatique
Technique
❑
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
peu de systèmes tombent dans une seule catégorie
systèmes transformationnels
❑
CLASSIFICATION DES SYSTEMES INFORMATIQUES
Laboratoire
d'Informatique
Technique
0.2
23
Analyse orientée objets
Conception de systèmes programmables II
24
Analyse orientée objets
les résultats des analyses de faisabilité
❑
1
0.5
les sources d'information sur le domaine
❑
2
Acceptation
Opération
L'ANALYSE
Analyse orientée objets
les exigences du client
Test
22
C'est le processus qui partant des exigences du client vise à
obtenir un cahier des charges, c'est à dire une description précise
de ce que doit faire le logiciel. Entrent dans ce processus:
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
❑
Exigences
Codage
Conception
COUT DES ERREURS
Analyse orientée objets
développement
20-50%
conception
30%
codage
15-20%
analyse
25%
tests
20-25%
CYCLE DE VIE (proportions)
maintenance
50-80%
Laboratoire
d'Informatique
Technique
5
10
20
Conception de systèmes programmables II
Laboratoire
d'Informatique
Technique
21
Mort
définition
du logiciel
validation conception
préliminaire
validation conception
détaillée
validation codage &
dévermin.
test de dével.tests & préopérations
test de valid. opérations
& mainten.
revalidation
abandon
CYCLE DE VIE (modèle de la chute d'eau)
Conception de systèmes programmables II
validation
préanalyse
Laboratoire
d'Informatique
Technique
c'est à ce niveau que se pratiquent les études de
faisabilité
❑
les spécifications
❑
Conception de systèmes programmables II
27
Analyse orientée objets
Analyse orientée objets
en cas d'arrêt d'urgence, les sorties doivent être mise en
état de sécurité
❑
28
à la mise sous tension, le système doit s'auto-tester
❑
Conception de systèmes programmables II
le système doit être capable d'acquérir 1000 points par
seconde
omissions
contradictions
ambiguïtés
duplicata
imprécisions
trop de conception
pas de priorités
informations sans objet ou inutiles
❑
✔
✔
✔
✔
✔
✔
✔
✔
si un noeud du réseau tombe en panne, le réseau doit se
reconfigurer dynamiquement
❑
il y d'ordinaire un ou plusieurs des problèmes suivants
❑
tous les calculs doivent se faire avec 10 chiffres
EXEMPLES DE "QUOI"
❑
Laboratoire
d'Informatique
Technique
les exigences du client sont rarement "propres"
PROBLEMES AVEC LES EXIGENCES
frontière entre analyse et conception
❑
Analyse orientée objets
meta-exigences
❑
26
l'analyse dit le "QUOI" non le "COMMENT"
❑
Conception de systèmes programmables II
problèmes avec les exigences
ANALYSE et CONCEPTION: les difficultés
❑
Laboratoire
d'Informatique
Technique
❑
Laboratoire
d'Informatique
Technique
Analyse orientée objets
il est bon de faire précéder l'analyse d'une étude du
domaine
❑
25
les erreurs à ce niveau ne sont souvent découvertes que
très tard
❑
Conception de systèmes programmables II
c'est un processus difficile qui fait appel aux capacités de
l'analyste à
✓ manipuler l'abstraction
✓ modéliser
LE PROCESSUS D'ANALYSE
❑
Laboratoire
d'Informatique
Technique
la fin du fichier sera le caractère VT
❑
FRONTIERE ENTRE ANALYSE ET CONCEPTION
un description précise et complète de la solution qui sera fournie au client,
ainsi qu'un moyen de juger les alternatives de conception
✓
Analyse orientée objets
la proposition de 2 ou 3 solutions possibles avec analyse complète et
précise de ces solutions
✓
31
la description de l'interaction du concept, système ou phénomène avec
l'environnement existant ou proposé
✓
Conception de systèmes programmables II
un examen du concept, système ou phénomène avec l'intention de le
comprendre et de le décrire de façon précise
✓
dire que l'analyse ne concerne que le quoi n'est pas suffisant, il
faut que sorte de l'analyse
Laboratoire
d'Informatique
Technique
Analyse orientée objets
l'état des fins de course devra être lu dans un registre de 8
bits
❑
29
pour remplacer une fiche d'outil, il faut d'abord détruire
l'ancienne puis ajouter la nouvelle
❑
Conception de systèmes programmables II
les fonctions sin et cos seront évaluées avec des
approximations en séries
EXEMPLES DE "COMMENT"
❑
Laboratoire
d'Informatique
Technique
= description précise
SPECIFICATIONS ou CAHIER DES CHARGES
Conception de systèmes programmables II
32
Analyse orientée objets
pour être certain qu'un programme fasse exactement ce que l'on
veut, il faut d'abord dire exactement ce que l'on veut qu'il fasse
Laboratoire
d'Informatique
Technique
Analyse orientée objets
Il faut minimiser le nombre des meta exigences
❑
30
C'est une décision de conception effectuée par le client.
❑
Conception de systèmes programmables II
Une meta-exigence est l'indication de la manière
d'accomplir un comportement particulier du système qui
est fourni et exigé par le client. Il peut, par exemple,
spécifier l'algorithme de cryptage
META-EXIGENCES
❑
Laboratoire
d'Informatique
Technique
✓
✓
✓
✓
✓
✓
✓
✓
✓
spécifications standardisées
spécifications semi-formelles
spécifications formelles
❑
❑
❑
Analyse orientée objets
spécifications informelles
❑
35
n'existent pas
FORMES DES SPECIFICATIONS
Analyse orientée objets
❑
Conception de systèmes programmables II
Laboratoire
d'Informatique
Technique
33
une description précise et concise du probléme
l'ordinateur cible (matériel, système d'exploitation)
les fonctions du logiciel
les caractéristiques d'utilisation
(performances, contraintes, qualité)
ce qu'il ne faut pas faire
l'interface utilisateur
les extensions envisagées
un glossaire des termes utilisé
coûts et délais
CONTENU DU CAHIER DES CHARGES
Conception de systèmes programmables II
Laboratoire
d'Informatique
Technique
complètes et cohérentes
précises et vérifiables
structurées et homogènes
modifiables
si en langage naturel, au présent
✔
✔
✔
✔
✔
34
Analyse orientée objets
36
❑
Analyse orientée objets
méthodes
✓ SADT (fonctions)
✓ OORA (objets)
✓ Statemate (temps réel)
✓ Buhr (tâches)
✓ formelles (VDM, ...)
✓ Pamela, ER (données)
✓ ...
langages
✓ réseaux de Petri
✓ GRAFCET
✓ français
✓ State charts
✓ VDM
✓ Z
✓ ...
METHODES ET LANGAGES SPECIFICATIONS
Conception de systèmes programmables II
❑
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
adaptées aux lecteurs
✔
mais d'abord qu'elles existent
conformes aux besoins
QUALITES DES SPECIFICATIONS
✔
Laboratoire
d'Informatique
Technique
39
Analyse orientée objets
Conception
✓ Object Oriented Design (OOD)
-
Conception de systèmes programmables II
Analyse
✓ Object Oriented Requirement Analysis (OORA)
METHODES ORIENTEES SUR LES OBJETS
-
Laboratoire
d'Informatique
Technique
Analyse orientée objets
Extension au temps réel
✓ SART
-
37
Conception
✓ Structured Design
-
Conception de systèmes programmables II
Analyse
✓ Structured Analysis, SADT, PSL, ...
METHODES DITES STRUCTURES
-
Laboratoire
d'Informatique
Technique
40
Analyse orientée objets
Inconvénients
✓ nécessitent de l'expérience
✓ peu d'outils les supportent
✓ moins connues
❑
Conception de systèmes programmables II
Avantages
✓ moins de couplage
✓ meilleure structuration
✓ supportent la réutilisation de logiciels
✓ passage facile de l'analyse à la conception
✓ supportées par les systèmes d'exploitation
METHODES ORIENTEES SUR LES OBJETS
Analyse orientée objets
❑
Laboratoire
d'Informatique
Technique
38
Inconvénients
✓ ne font pas usage de tous les principes du génie
logiciel
✓ nécessitent beaucoup de flair et d'expérience
✓ pas de support pour la réutilisation
✓ passage de l'analyse à la conception difficile
❑
Conception de systèmes programmables II
Avantages
✓ faciles à comprendre
✓ supportées par des outils (CASE)
METHODES DITES STRUCTUREES
❑
Laboratoire
d'Informatique
Technique
METHODES FORMELLES
Analyse orientée objets
Analyse orientée objets
4. basées sur des spéc. mathématiques bien plus faciles à
comprendre que des programmes
4. nécessitent des mathématiciens ultra qualifiés
Conception de systèmes programmables II
43
Analyse orientée objets
7. ne sont pas utilisées à large échelle pour des logiciels
réels
6. sont inacceptables pour les clients
Conception de systèmes programmables II
44
Analyse orientée objets
7. utilisées sur des vrais projets dans l'industrie
6. peuvent aider le client à comprendre ce qu'il achète
5. peuvent réduire les coûts de développement
3. utiles pour n'importe quel type d'application
3. ne sont utiles que pour les logiciels dont la sécurité est
critique
5. accroissent les coûts de développement
2. fonctionnent parce qu'elles obligent à réfléchir
attentivement aux spécifications
1. très utiles pour trouver les erreurs très tôt
7 VERITES CONCERNANT LES METHODES FORMELLES
Laboratoire
d'Informatique
Technique
42
Inconvénients
✓ plus difficiles à comprendre
✓ pratiquement pas de support d'outils
❑
Conception de systèmes programmables II
Avantages
✓ permettent de prouver la conformité du logiciel aux
spécifications
✓ permettent de révéler contradictions, ambiguïtés et
manques
✓ permettent parfois de se passer de la conception et
du codage
METHODES FORMELLES
❑
Laboratoire
d'Informatique
Technique
2. ne concernent que la preuve du logiciel
1. permettent de garantir que le logiciel est parfait
7 MYTHES CONCERNANT LES METHODES FORMELLES
Laboratoire
d'Informatique
Technique
41
des directives d'utilisation
✓
Conception de systèmes programmables II
une base mathématique stricte
✓
Une telle méthode se caractérise par
Laboratoire
d'Informatique
Technique
LES LANGAGES DE PROGRAMMATION
Analyse orientée objets
Conception de systèmes programmables II
47
Analyse orientée objets
6. représentation graphique pour le développement OO
6.1 représentations statiques
6.2 représentations dynamiques
Conception de systèmes programmables II
48
Analyse orientée objets
8. implantation de chaque élément
8.1 raffinement par étape de l'interface des objets et classes
interfaces
8.2 raffinement par étape de l'interface des autres objets et
classes
8.3 application récursive du processus de développement
orienté objets
CONCEPTION DE LOGICIELS OO (fin)
46
5. décision sur l'implantation des objets et classes
5.1 objets et classes identifiés durant l'analyse
5.2 objets (classes) identifiés durant la conception
Laboratoire
d'Informatique
Technique
Conception de systèmes programmables II
3.3.1 décomposition en opérations primitives
3.3.2 découplage des objets et classes
3. Identif. des opérations requises et subies par les OCI
3.1 identification des opérations d'intérêt (OI)
3.2 association des attributs avec les OI
3.3 traitement des objets composites
7. Etablissement de l'interface pour chaque élément
7.1 objets et classes
7.2 systèmes d'objets
7.3 sous-systèmes
CONCEPTION DE LOGICIELS OO (suite)
CONCEPTION DE LOGICIELS ORIENTES OBJETS
2. Identification des objets et classes d'intérêt (OCI)
2.1 développement d'une stratégie informelle
2.2 Identification des objets et classes d'intérêt
2.3 Association des attributs avec les OCI
Laboratoire
d'Informatique
Technique
4. création des spécifications de classes et objets pour les objets
de conception
4.1 mise ensemble des objets, classes et opérations
4.2 examen de la complétude des objets et classes
Laboratoire
d'Informatique
Technique
Analyse orientée objets
avoir une pérennité suffisante
❑
45
permettre une gestion de projet efficace
✓ suffisamment expressif
✓ suffisamment rigide pour éviter le style hacker
✓ être bien supporté par des outils de développement
(compilateurs, éditeurs syntaxiques, dévermineurs
symboliques
❑
Conception de systèmes programmables II
supporter les concepts du génie logiciel
❑
le choix d'un langage n'est pas sans effet sur le projet. Un
langage doit:
Laboratoire
d'Informatique
Technique