Aller au contenu

Proposition de solution pour le TP Guichet Automatique

Etape 1

GAB

Etape 2

GAB

Etape 3

GAB

Etape 4

GAB

Scénario : Retirer Argent avec une CB

Cas d’utilisation : Retirer de l’argent (avec une Carte Bancaire)

Informations générales

Objectif : Effectuer un retrait d’argent avec une Carte Bancaire

Acteur principal : Porteur de Carte Bancaire ou Client de la Banque

Acteur secondaire : aucun

Pré-condition : Le distributeur contient des Billets. Il est dans l’attente d’une opération. Il n’est pas en panne.

Post-condition : Si l’argent a été retiré, la somme restante sur le compte est diminuée du montant du retrait effectué. Dans le cas contraire, la somme sur le compte est inchangée.

Déclencheur : introduction d’une carte bancaire dans le DAB

Scénario Principal

Etape - Acteur - Description de l’action

  1. Client - introduit sa carte bancaire
  2. Système - lit la carte et vérifie sa validité
  3. Système - demande au client de taper son code
  4. Client - tape son code confidentiel et valide
  5. Système - Vérifie que le code correspond à la carte
  6. Client - choisit une opération de retrait
  7. Système - demande le montant à retirer
  8. Client - saisit le montant du retrait souhaité et valide

Scénari alternatifs

Alternative 5a : Carte Invalide

cette alternative est effective à l’étape 2 du scénario principal.

  1. Système - rejette la carte et affiche le message d’information « carte invalide »

Le cas d’utilisation se termine.

Diagramme de Séquence du scénario du DAB

Version PlantUML

@startuml
title Cas d'utilisation : Retirer de l'argent avec une Carte Bancaire

actor Client
participant "Système" as DAB

Client -> DAB : introduireCarteBancaire()
activate DAB
DAB -> DAB : lireCarte()
DAB -> DAB : vérifierValiditéCarte()

alt [Carte valide]
  DAB -> Client : demanderCode()
  Client -> DAB : saisirCode(code)
  DAB -> DAB : vérifierCode(code)

  alt [Code correct]
    DAB -> Client : demanderOpération()
    Client -> DAB : choisirOpération("Retrait")
    DAB -> Client : demanderMontant()
    Client -> DAB : saisirMontant(montant)
    DAB -> DAB : vérifierSoldeEtDisponibilité()
    DAB -> DAB : débiterCompte()
    DAB -> Client : distribuerBillets(montant)
    DAB -> Client : afficherMessage("Retrait effectué")
  else [Code incorrect]
    DAB -> Client : afficherMessage("Code incorrect")
    DAB -> Client : éjecterCarte()
  end

else [Carte invalide]
  DAB -> Client : afficherMessage("Carte invalide")
  DAB -> Client : rejeterCarte()
end
deactivate DAB
@enduml