Transação: Reservar e mostrar de passagem
descrição
    Sistema emite passagem para um passageiro em um transporte (nome, classe,
    lugar) e reserva lugar na 1a ou 2a classe conforme solicitação (  nome,classe, aceita troca de classe) e disponibilidade de classe (id-transp,dpc,dsc)
    e mostra aviso[não tem lugar]
Forma de abordar o projeto (grafo)


 disponibilidade 








passagem
<==
Reserva
<==
solicitação



SetaDireitaCimaGrossaAzul


SetaBaixoEsquerdaAzul
aviso



    * Reserva (solicitacao) => passagem, disponibilidade, aviso

Detalhe
  1. Sistema inicializa disponibilidade
    rpc=10, rsc=10 => obtém disponibilidade
    • Identificação do transporte (id-transp) = 1
    • Quantidade de lugares disponiveis na 1a classe (dpc) = 10
    • Quantidade de lugares disponiveis na 2a classe (dsc) = 20


  2. Sistema obtem solicitação
    Ler (solicitacao) => nome, classe
    • nome = Le solicitacao (nome)
    • classe = Le solicitacao (classe)

  3. Sistema verifica disponibilidade e prepara para mostrar a passagem (regra da transação)

    Reserva (id-transp, nome, classe, troca, rpc, rsc) => passagem, rpc, rsc, aviso

    A solicitação é para 1a classe (classe=1?)
    | tem didponibilidade na 1a classe (dpc=0?)
    | | tem didponibilidade na 2a classe (dsc=0?
    | | | aceita troca de classe?
    | | | |
    S N . .
    1. dpc = dpc -1
    2. passagem = [ nome, classe, rpc]
    3. emite passagem
    N . N .
    1. dsc = dsc -1
    2. passagem = [nome, classe, rsc]
    3. emite passagem
    S S N S
    1. dsc = dsc -1
    2. passagem = [nome, classe, rsc]
    3. emite passagem
    N N S S
    1. dpc = dpc -1
    2. passagem = [nome, classe, rsc]
    3. mostrar passagem
    . S S .
    1. aviso = passagem não emitida
    2. mostrar aviso


  4. Emissão de passagem
    Imprimir(passagem) =>bilhete



Modelo de decisão|Tuturial de tabela decisão