Transação: Verificar disponibilidade, reservar e mostrar passagem


Descrição

Sistema emite passagem para um passageiro em um transporte e reserva lugar na 1a ou 2a classe conforme solicitação e disponibilidade de classe e mostra aviso de passagem não emitida.

Reserva(solicitacao) => passagem, disponibilidade, aviso



 disponibilidade 








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



SetaDireitaCimaGrossaAzul


SetaBaixoEsquerdaAzul
aviso



Processo

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

  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 de negocio da transação)
    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, dpc]
    3. mostrar passagem
    N . N .
    1. dsc = dsc -1
    2. passagem = [nome, classe, dsc]
    3. mostrar passagem
    S S N S
    1. dsc = dsc -1
    2. passagem = [nome, classe, dsc]
    3. mostrar passagem
    N N S S
    1. dpc = dpc -1
    2. passagem = [nome, classe, dsc]
    3. mostrar passagem
    . S S .
    1. aviso = passagem não emitida
    2. mostrar aviso

  4. Mostrar passagem
    Mostrar(passagem) =>passagem
  5. Mostrar aviso
    Mostrar(aviso) =>aviso
Requisitos
  • Requisito de ativação: Necessidade de ser transportado
  • Requisito de negocio:
    garantir que o passageiro seja transportado,
    passageiro pode escolher classe e ese aceita troca
    1 transação por passageiro,
    a passagem é identificada por um código
  • Requisito do passageiro:
  • Requisito do sistema:
Especificação
  • Identificação:
  • Ativador: Passageiro
  • Condição de ativação: ter uma solicitação
  • Receptor: Passageiro
  • Condição de término: ter mostrado passagem e aviso
  • Tempo de resposta: 1 seg
  • Frequencia(execução/ciclo): 1 transação/seg
  • Setup(duração/periodo): 1 minuto/transação
  • Agrupamento de dados:
    E - Solicitação: nome, aceita troca de classe(S/N), lugar(1a ou 2a classe)
    S - Passagem (id-passagem,nome,classe,data e hora )e aviso (não disponibilidade)
    BD - disponibilidade: id-transporte,1a classe(dpc),2a classe(dsc)
Design
  • Envolvidos: Passageiro e tela de video
  • Responsabilidades: passageiro: ativar transação
    sistema: mostrar passagem, controla disponibilidade e avisa não disponibilidade
  • Recursos: Ambiente computacional(Smart, Rede wife, internet)

Projeto

Objetivo Aplicação do uso de uma linguagem de descrição de uma transação operacional (componente de um sistema para transportar uma pessoa).

Glossário da linguagem de descrição da transação
    nome_componente: funcao(lista de entrada) => lista de saida

  • Formato:
  • Formato
  • Sintaxe:
  • Diagrama Sintático - Diagrama de Sintaxe LDC componente
  • Semântica: Se a funcao(lista de entrada) for válida então executa lista de saida
  • onde:
    • funcao(lista de entrada) é uma condição
    • " => " siginifica executar e
    • lista de saida significa ação.
  • O nome do componente é o nome de uma transação.
  • Cada componente é um autômato finito, onde cada nó é uma tabela de decisões.
  • Componente pode ser: [lista| atribuição | tabela de decisão| transição | procedimento| programa |
    bloco de construção | qq coisa]
  • Componentes são executados de forma assíncrona, retirando e colocando dados nas diversas filas.
  • O sincronismo é determinado pela condição
  • Ex.: ReservaPassagem: Reserva(solicitacao) => passagem, disponibilidade, aviso
Referência Ldc| Ldc Sintaxe| Lista| Lista Tutorial| Variavel| Blocos de construção| Exemplo| Tabela de Decisoes Tuturial de tabela decisão| Modelo de decisão| Automata Finito| Algoritimo| Método de aprendizado| Tipos de Sistemas| Métodos| Componentes| Estados do Componente