La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IUT de Vélizy Université de Versailles St-Quentin en Yvelines De l'analyse des besoins à la spécification formelle en B : un cours en première année d'IUT.

Présentations similaires


Présentation au sujet: "IUT de Vélizy Université de Versailles St-Quentin en Yvelines De l'analyse des besoins à la spécification formelle en B : un cours en première année d'IUT."— Transcription de la présentation:

1 IUT de Vélizy Université de Versailles St-Quentin en Yvelines 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 Nicole Levy 2 1. Objectifs Donner une vision globale du développement dun logiciel basée sur le cycle en V Conception Architecturale Conception Détaillée Programmation Test dIntégration Tests Unitaires Test Système Spécification Test dacceptation Analyse des besoins

3 Nicole Levy 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 Nicole Levy 4 2. Approche proposée n Analyse des besoins u En dériver des tests dacceptation En 7 semaines 1 cours et 1 TD de 2h n Spécification en B u Jusquà limplémentation u En dériver des tests système En 7 semaines 1 cours,1 TD de 1h1/4 et 1 TP de 2h

5 Nicole Levy 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 Nicole Levy 6 Étapes danalyse n 1 ère étape Analyse des interactions Logiciel Environnement n 2 ème étape Définition des propriétés invariantes n 3 ème étape Étude de quelques comportements n 4 ème étape Définition du comportement

7 Nicole Levy 7 Étapes danalyse

8 Nicole Levy 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 Nicole Levy 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 Nicole Levy 10 1 ère étape: Analyse des Interactions Identifier les acteurs et les actions u Acteurs : ils interagissent avec le système, ils déclenchent les actions u Actions: elles modifient létat du système : Associer n à chaque acteur : les actions qu'il pourra effectuer au logiciel : les actions qu'il effectuera en retour Diagrammes Use-Case

11 Nicole Levy 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 Rendre la monnaie Délivrer la boisson Choisir une boisson Indiquer sucre Payer LOGICIEL distribute ur Utilisateur

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

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

14 Nicole Levy 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 Nicole Levy 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 Nicole Levy 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 Nicole Levy 17 3 ème étape: description de certains comportements particuliers Diagrammes de séquence u Montre les objets de lenvironnement et le logiciel et les messages quils séchangent u Les messages sont classés par ordre chronologique. u Un scénario représente une vue particulière du logiciel par un des acteurs. u 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 Nicole Levy 18 3 ème étape: certains comportements un distributeur de boissons... Utilisateur Distributeur Choisit une boissonattente choix boisson disponible gobelet disponible Payeattente argent argent suffisant monnaie disponible prépare la boisson Délivre la boisson Rend la monnaie attente choix

19 Nicole Levy 19 4 ème étape: Définition du comportement Réaction: comportement précis et complet attendu du système u pour chaque acteur u pour chaque action qu'il peut déclencher u 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 Nicole Levy 20 4 ème étape: réactions un distributeur de boissons 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 Nicole Levy 21 4 ème étape: réactions un distributeur de boissons 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 Nicole Levy 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 Nicole Levy 23 4 ème étape: Comportement un distributeur de boissons... Diagramme d'états-transitions Att_boissonAtt_paiement Panne R1 R2/R6/R8 R3 R3/R6/R8/R10 R4/R5 R9 R7

24 Nicole Levy 24 Génération des tests dacceptation ScCas Testé ActeurÉtat initial Actions + propriétés des données Résultats attendus Nouvel état Résultats obtenus 1NormalUtilAtt_choi x tq Monnaie et boisson dispo Choisir boisson dispo ; Payer tq suffisant (>) Rendre monnaie ; Servir boisson Att_choix

25 Nicole Levy 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 Nicole Levy 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 Nicole Levy 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,/*Hyp4 */ 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 Nicole Levy 28 De lanalyse des besoins à B un distributeur de boissons... OPERATIONS rep <-- 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 Nicole Levy 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 Nicole Levy 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 Nicole Levy 31 Conclusions Ce que jespère quils acquièrent (en vrac): n Réfléchir au comportement désiré avant de programmer n La notion de type et dinvariant n La notion de précondition n Lidée que savoir programmer nest pas forcément leur unique objectif n La vision dun système comme un tout quil faut décomposer n La notion de raffinement n Penser aux tests dès les premières étapes de développement

32 Nicole Levy 32 Conclusions TP avec lAtelier B: n Contrôleur de Type: le plus utilisé n Prouveur: Preuves automatiques uniquement Mais ils doivent savoir lire les Obligations de Preuve n 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 n Surchage du serveur TP à 2 par machine n Problèmes de jetons n Les commentaires disparaissent lors du passage à Latex

33 Nicole Levy 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 Nicole Levy 34 1 ère étape: Analyse des Interactions un distributeur de boissons... Analyse un plus approfondie des interactions DISTRIBUTEUR LOGICIEL Distributeur Utilisateur choisir une boisson indiquer sucre, annuler monnayeur Rendre la monnaie Rendre largent Délivrer une boisson payer capteur gobelet capteur boisson Rendre la monnaie Rendre largent Délivrer une boisson manque gobelet manque boisson

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

36 Nicole Levy 36 Un projet à faire en 3 semaines Lan dernier: Spécification dun système distribué Un système de communication dans réseau complexe Source_do nnées Cible_don nées Nœud sourceNœud cible Agent récepteur Canal de transmission Canal-données Agent émetteur Figure-2-


Télécharger ppt "IUT de Vélizy Université de Versailles St-Quentin en Yvelines De l'analyse des besoins à la spécification formelle en B : un cours en première année d'IUT."

Présentations similaires


Annonces Google