1
Spécifications de Problèmes
2
Plan
Définition
Motivation
Qualités attendues
Types de formalismes
Rappels du cours de programmation
Spécifications structurées
Exemple
Niveaux d'abstraction
3
COMMENT
procedure CalculerMax(t,max)
max=t[1];
For i:=1 to Length(t) do
if t[i]>max then max:=t[i]
QUOI
- On reçoit un tableau d'entiers t
- On calcule max
- A la fin de l'exécution du programme,
max est aussi grand que tous les élément
du tableau t
Spécification:
Définition
Petit Larousse: "Spécifier quelque chose, c'est le déterminer,
l'exprimer de manière précise"
Spécification
= description d'un problème (informatique) à résoudre ou résolu
Dire QUOI (le problème) sans dire COMMENT (une solution)
Solution = algorithme dans un langage de programmation
Problème = indépendant de la façon de le résoudre et du langage de
programmation
Exemple: CalculerMax(t,max):
4
Spécification:
Motivation
Une spécification permet de
Décrire ce que fait un programme existant de
manière plus abstraite pour
le comprendre ou l'expliquer
le refaire ou le changer
Imaginer plusieurs solutions à un problème
Communiquer le problème à quelqu'un qui va le
résoudre
Dériver méthodiquement une solution (par
invariant)
Vérifier (voir prouver) que la solution résoud le
problème
...
5
Spécification: Qualités Attendues
Précise, non-ambiguë
que veut dire aussi grand ?
= ou > ou >= ?
Complète
quid si t est vide?
Minimale (pas d'info superflue)
pas de redondance
pas d'éléments de solution
Cohérente (pas de
contradictions)
Claire et compréhensible
simple
structurée
QUOI
- On reçoit un tableau d'entiers t
- On calcule max
- A la fin de l'exécution du
programme, max est aussi grand
que tous les élément du tableau t
Qualités parfois
complémentaires
ou contradictoires !
1 / 30 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !