cours GL en IUT 1 - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

cours GL en IUT 1

Description:

7. Quand un utilisateur annule. Si le distributeur est en attente de ... 8. Quand un utilisateur annule. Si le distributeur n'est pas en attente de paiement. Alors ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 37
Provided by: nicol53
Category:

less

Transcript and Presenter's Notes

Title: cours GL en IUT 1


1
De l'analyse des besoins à la spécification
formelle en B un cours en première année d'IUT
Nicole Levy
Journée B L'enseignement de B et des méthodes
formelles Nantes Vendredi 29 Novembre 2002
2
1. Objectifs
  • Donner une vision globale du développement dun
    logiciel basée sur le cycle en V

Analyse des besoins
3
1. Objectifs
  • Cours de Génie Logiciel
  • en première année dIUT
  • et même premier semestre !
  • Public jeune et globalement pas très bon
  • Manque de connaissances
  • en théorie des ensembles et en logique

4
2. Approche proposée
  • Analyse des besoins
  • En dériver des tests dacceptation
  • En 7 semaines 1 cours et 1 TD de 2h
  • Spécification en B
  • Jusquà limplémentation
  • En dériver des tests système
  • En 7 semaines 1 cours,1 TD de 1h1/4 et 1 TP de
    2h

5
Analyse des besoins
  • Approche inspirée des travaux de
  • J. Souquières et M. Heisel
  • Introduisant quelques diagrammes UML
  • (mais ils ne connaissent pas encore les langages
    orientés objets)

6
Étapes danalyse
  • 1ère étape
  • Analyse des interactions
  • Logiciel ? Environnement
  • 2ème étape
  • Définition des propriétés invariantes
  • 3ème étape
  • Étude de quelques comportements
  • 4ème étape
  • Définition du comportement

7
Étapes danalyse
8
Example un distributeur de boissons
Le distributeur à analyser pourra servir 4
boissons différentes et à des prix différents.
Parmi ces boissons, il y a du café pour lequel
lutilisateur pourra indiquer quil désire plus
de sucre ou au contraire nen désire pas du tout.
Lutilisateur devra dans un premier temps choisir
sa boisson puis la payer à laide de pièces de
0.2, 0.5 et 1 euro. Si largent fourni est
suffisant, si le distributeur possède de quoi
rendre la monnaie ainsi que (possède) la boisson
demandée, alors il rendra la monnaie, préparera
la boisson et la délivrera (la boisson). Dans les
autres cas, il rendra largent à lutilisateur.
9
Lecture du cahier des charges un distributeur de
boissons...
Le distributeur à analyser pourra servir 4
boissons différentes et à des prix différents.
Parmi ces boissons, il y a du café pour lequel
lutilisateur pourra indiquer quil désire plus
de sucre ou au contraire nen désire pas du
tout.Lutilisateur devra dans un premier temps
choisir sa boisson puis la payer à laide de
pièces de 0.2, 0.5 et 1 euro. Si largent fourni
est suffisant, si le distributeur possède de quoi
rendre la monnaie ainsi que (possède) la boisson
demandée, alors il rendra la monnaie, préparera
la boisson et la délivrera (la boisson). Dans les
autres cas, il rendra largent à lutilisateur.
10
1ère étape Analyse des Interactions
  • Identifier les acteurs et les actions
  • Acteurs ils interagissent avec le système,
  • ils déclenchent les actions
  • Actions elles modifient létat du système
  • Associer
  • à chaque acteur les actions qu'il pourra
    effectuer
  • au logiciel les actions qu'il effectuera en
    retour
  • ? Diagrammes Use-Case

11
1ère étape Analyse des Interactions un
distributeur de boissons...
  • Utilisateur
  • indiquer quil désire plus ou pas de sucre,
  • choisir une boisson,
  • payer une boisson
  • Distributeur
  • posséder de la monnaie,
  • posséder la boisson demandée,
  • rendre de la monnaie,
  • préparer une boisson,
  • délivrer une boisson,
  • rendre largent

12
2ème étape analyse des propriétés invariantes
  • Comprendre ce qui est attendu du logiciel
  • Faits
  • propriétés statiques du domaine d'application
  • comportement implicite du système
  • ses états
  • les préconditions sur les transitions physiques
  • les préconditions évidentes
  • les limites physiques

13
2ème étape analyse des propriétés invariantes
  • Comprendre ce qui est attendu du logiciel
  • Hypothèses
  • concernant le comportement attendu de
    l'environnement
  • peuvent être remises en causes
  • Besoins
  • concernant le comportement attendu du logiciel
  • propriétés temporelles
  • propriétés structurelles

14
2ème étape propriétés invariantes un
distributeur de boissons...
  • Faits 
  • 1.  le distributeur sert un utilisateur et une
    boisson à la fois
  • 2.   le distributeur peut rendre la monnaie
  • 3.   le prix des boissons peut être payé à laide
  • des pièces acceptées par le distributeur
  •  

15
2ème étape propriétés invariantes un
distributeur de boissons...
  • Hypothèses 
  • 4.  le distributeur naccepte que les pièces de
  • 0.2, 0.5 et 1
  • 5.  le distributeur sert 6 boissons différentes
  • dont 3 qui sont du café plus ou moins sucré
  • 6.  le prix de chaque boisson est fixé
  • 7.  lutilisateur peut annuler sa commande
  • mais il faut définir jusquà quand

16
2ème étape propriétés invariantes un
distributeur de boissons...
  • Besoins 
  • 8.   lutilisateur choisit dabord sa boisson
  • (une parmi les 6) puis la paye.
  • 9.   Si le distributeur accepte de servir une
    boisson
  • Alors il doit rendre la monnaie correctement
  • 10.  Si le distributeur naccepte pas de servir
    une boisson
  • Alors il doit rendre tout largent donné par
    lutilisateur
  • 11.  le distributeur accepte de servir une
    boisson ssi
  •          largent fourni est suffisant et
  •          la monnaie est disponible et
  •          la boisson est disponible et
  •        un gobelet est disponible

17
3ème étape description de certains
comportements particuliers
  • Diagrammes de séquence
  • Montre les objets de lenvironnement et le
    logiciel et les messages quils séchangent
  • Les messages sont classés par ordre
    chronologique.
  • Un scénario représente une vue particulière du
    logiciel par un des acteurs.
  • Un scénario est une suite d'actions se produisant
    à partir d'un état donné du système et
    provoquant éventuellement l'exécution d'
    opérations.

18
3ème étape certains comportements un
distributeur de boissons...
  • Utilisateur Distributeur
  •  
  • Choisit une boisson attente choix
  • boisson disponible
  • gobelet disponible
  • Paye attente argent
  • argent suffisant
  • monnaie disponible
  • prépare la boisson
  • Délivre la boisson
  •  
  • Rend la monnaie
  • attente choix
  •  

19
4ème étape Définition du comportement
  • Réaction comportement précis et complet
  • attendu du système
  • pour chaque acteur
  • pour chaque action qu'il peut déclencher
  • pour tous les états possibles du système
  • Expression de chaque réaction selon un format
    standard
  • Ri Quand un acteur déclenche une action
  • Si le logiciel est dans un état donné
  • et Si une propriété est vérifiée
  • Alors le logiciel change d'état
  • et exécute une opération
  • et renvoie une réponse
  • ? Diagrammes d'états-transitions

20
4ème étape réactions un distributeur de
boissons...
  • 1.      Quand un utilisateur choisit une boisson
    (une parmi les 6)
  • Si le distributeur est en attente de choix de
    boisson
  • Et Si la boisson est disponible
  • Alors le distributeur attend que lutilisateur
    paye
  • 2.      Quand un utilisateur choisit une boisson
    (une parmi les 6)
  • Si le distributeur est en attente de choix de
    boisson
  • Et Si la boisson nest pas disponible
  • Alors le distributeur reste dans lattente dun
    choix de boisson
  • Et envoie en réponse un message  boisson non
    disponible 
  • 3.      Quand un utilisateur choisit une boisson
    (une parmi les 6)
  • Si le distributeur nest pas en attente de choix
    de boisson
  • Alors le distributeur ne change pas détat  il
    ne se passe rien
  • 4.      Quand un utilisateur paye (on suppose
    une action unique)
  • Si le distributeur est en attente de paiement
  • Et Si largent donné est suffisant
  • Et Si le distributeur a de quoi rendre la
    monnaie
  • Alors le distributeur rend la monnaie, prépare
    la boisson et
  • la délivre et passe à létat attente dun choix
    de boisson

21
4ème étape réactions un distributeur de
boissons...
  • 5.      Quand un utilisateur paye (action unique
    )
  • Si le distributeur est en attente de paiement
  • Et Si largent donné nest pas suffisant
  • Ou Si le distributeur na pas de quoi rendre la
    monnaie
  • Alors le distributeur rend largent et
  • passe à létat attente dun choix de boisson
  • 6.      Quand un utilisateur paye
  • Si le distributeur nest pas en attente de
    paiement
  • Alors le distributeur rend largent et ne change
    pas détat 
  • 7.      Quand un utilisateur annule
  • Si le distributeur est en attente de paiement
  • Alors le distributeur passe à létat attente
    dun choix de boisson
  • 8.      Quand un utilisateur annule
  • Si le distributeur nest pas en attente de
    paiement
  • Alors le distributeur ne change pas détat 

22
4ème étape réactions un distributeur de
boissons...
  • On ajoute un état PANNE et une action de
    détection de panne 
  • 9.      Quand une panne est détectée
  • Si le distributeur est en attente de choix de
    boisson
  • ou de paiement
  • Alors le distributeur passe à létat panne
  • Et envoie en réponse un message  distributeur
    HS 
  • 10.  Quand une panne est détectée
  • Si le distributeur est en déjà en panne
  • Alors le distributeur ne change pas détat  il
    ne se passe rien
  •  

23
4ème étape Comportement un distributeur de
boissons...
  • Diagramme d'états-transitions

24
Génération des tests dacceptation
25
De lanalyse des besoins à la Spécification en B
  • Formaliser les besoins
  • Des Faits, Hypothèses et besoins
  • ?La partie statique
  • Des réactions
  • ?La partie dynamique

26
De lanalyse des besoins à B un distributeur de
boissons...
  • Exemple
  • Faits 
  • 3.   le prix des boissons peut être payé à laide
    des pièces acceptées par le distributeur
  • ? variable pièces_acceptées de type P(NATURAL)
  •  Hypothèses 
  • 4.  le distributeur naccepte que les pièces de
  • 0.2, 0.5 et 1
  • ? variable pièces_acceptées 20,50,100

27
De lanalyse des besoins à B un distributeur de
boissons...
  • DISTRIBUTEUR_BOISSON
  • SETS
  • BOISSON
  • ETAT att_boisson, att_paiement, panne
  • REPONSE boisson_non_disponible,
    veuillez_payer,
  • prenez_la_boisson, somme_versee_insuffisante
  • CONSTANTS
  • cafe_sucre, cafe_non_sucre, cafe_plus_sucre,
    pas_de_choix,
  • prix_boisson , /Hyp6 / piece_acceptees,/Hy
    p4 /
  • boissons_servies
  • PROPERTIES
  • cafe_sucre BOISSON
  • cafe_non_sucre BOISSON
  • cafe_plus_sucre BOISSON
  • pas_de_choix BOISSON
  • prix_boisson NATURAL
  • piece_acceptees POW (NATURAL)
  • boissons_servies POW(BOISSON)
  • card(boissons_servies) 6 /Hyp5 /

28
De lanalyse des besoins à B un distributeur de
boissons...
  • OPERATIONS
  • rep lt-- Choisir_boisson (boi)
  • PRE boi BOISSON boi / pas_de_choix
  • etat_courant att_boisson THEN
  • IF boi boissons_disponibles THEN /réact
    1/
  • utilisateur boi
  • etat_courant att_paiement
  • rep veuillez_payer
  • ELSE
  • rep boisson_non_disponible/réact 2/
  • END
  • END/réact 3/

29
Spécification en B
  • On ne peut pas tout voir alors jai choisi de
    montrer
  • Comment modéliser
  • ensembles, relations, fonctions et suites
  • Comment raffiner
  • très rapidement et sur des exemples très simples
  • Pour arriver à la génération de code
  • Toujours une seule machine

30
Conclusions
  • Public jeune et globalement pas très bon
  • Mais sans a priori et très réceptif
  • Un choc dès leur arrivée
  • des maths et
  • la génération automatique de code !
  • Pour certains cest très dur
  • pour dautre au contraire pas du tout
  • Mais ils prennent tous des bonnes habitudes

31
Conclusions
  • Ce que jespère quils acquièrent (en vrac)
  • Réfléchir au comportement désiré avant de
    programmer
  • La notion de type et dinvariant
  • La notion de précondition
  • Lidée que savoir programmer nest pas forcément
    leur unique objectif
  • La vision dun système comme un tout quil faut
    décomposer
  • La notion de raffinement
  • Penser aux tests dès les premières étapes de
    développement

32
Conclusions
  • TP avec lAtelier B
  • Contrôleur de Type le plus utilisé
  • Prouveur Preuves automatiques uniquement
  • Mais ils doivent savoir lire les Obligations de
    Preuve
  • Lanimateur inadéquat et manque cruellement
  • Un regret
  • pas de version gratuite quils puissent
    télécharger chez eux
  • Et puis. Des petits problèmes tels que
  • Surchage du serveur ? TP à 2 par machine
  • Problèmes de jetons
  • Les commentaires disparaissent lors du passage à
    Latex

33
Et après ? .
  • En deuxième année
  • Le projet tutoré
  • et un suivi dans le module génie logiciel
  • Lanalyse des besoins et les fiches de test
  • pas de spécification B
  • Mais UML

34
1èreétape Analyse des Interactions un
distributeur de boissons...
  • Analyse un plus approfondie des interactions

35
Exemples dexercices
  • Des distributeurs en tous genres
  • Un réseau téléphonique
  • Lorganisation dun séminaire

36
Un projet à faire en 3 semaines
  • Lan dernier
  • Spécification dun système distribué
  • Un système de communication dans réseau complexe
Write a Comment
User Comments (0)
About PowerShow.com