SlideShare uma empresa Scribd logo
1 de 23
Documentação do Projeto Parte 3 Final
                                                 FlySmart
                                 (Concurso IBM Mainframe 2012 – Brasil )




Nome: Luiz Nakazone
ID: IBM0056
Conteudo
Visão.....................................................................................................................................................3
Definição do Problema.........................................................................................................................3
Objetivos do Negócio...........................................................................................................................3
Escopo.................................................................................................................................................. 4
Requisitos Funcionais...........................................................................................................................5
Requisitos Não Funcionais...................................................................................................................6
Casos de Uso........................................................................................................................................ 8
Descrição dos Casos de Uso.................................................................................................................9
Banco de Dados..................................................................................................................................14
Interfaces do Sistema..........................................................................................................................15




2                                                                                                                                       IBM0056
Visão


Desenvolvimento da arquitetura da aplicação de gerenciamento do aeroporto internacional
FlySmart, garantindo sua qualidade de desenvolvimento.

Dentro deste contexto do projeto serão implementados, casos de uso, modelo de dados, JCL's (Job
Control Language), banco de dados DB2 e linguagem de programação COBOL em ambiente
mainframe com sistema z/Os.




Definição do Problema


Mesmo com tantas regras impostas pela agência de aviação civil para tentar sanar práticas de
overbooking, atrasos e cancelamentos de voos para um melhor gerenciamento dos processos do
aeroporto internacional FlySmart, o problema persiste pois não se encontra em operação no local
um sistema de gerenciamento inteligente e unificado que resolva esse problema.




Objetivos do Negócio


Objetivo Principal

Desenvolver um programa em linguagem COBOL garantindo a agilidade e unificação dos
processos do aeroporto internacional FlySmart.

O projeto deve propiciar:

    •   Cadastro de Viagens;

    •   Cadastro de Passageiros;

    •   Emitir relatório de viagens cadastradas;

    •   Emitir relatório de lucro de passagens vendidas;

    •   Emitir relatório de uso de pista com delay do tempo de pouso e decolagem;


3                                                                                      IBM0056
Objetivo Secundário

Como objetivo secundário:

    •   Permitir ao usuário do sistema facil acesso unificado dos processos vitais do aeroporto.




Escopo


Como escopo do projeto tem-se a concepção da arquitetura de desenvolvimento para a aplicação de
gerenciamento do aeroporto internacional FlySmart contemplando as seguintes tecnologias e
conceitos em ambiente mainframe z/Os: casos de uso, modelagem de dados, JCL's, banco de dados
DB2 e linguagem COBOL.

Produtos gerados/esperados

    •   Menu principal em texto com as opções a serem escolhidas contemplando as seguintes
        funcionalidades:

           ✔ Cadastro de viagens;

           ✔ Cadastro de passageiros com limite dependendo da capacidade do voo;

           ✔ Relatorio das viagens cadastradas;

           ✔ Relatório dos lucros das viagens de acordo com as passagens vendidas;

           ✔ Relatório de uso de pista com delay de pouso e decolagem de 15 minutos;

Pré-requisitos

    •   Definição do modelo de dados entre duas tabelas CLIENTE e VIAGEM em DB2;

    •   Desenvolvimento em linguagem COBOL;

    •   Menu em formato texto com as opções a serem escolhidas;




4                                                                                        IBM0056
Requisitos Funcionais



                             [RF001] Cadastro de Viagens

Descrição do caso de uso: Este caso de uso permite que o usuário cadastre os voos no sistema para
poder efetuar as vendas das passagens.


Prioridade:         Essencial               Importante             Desejável

Entradas e pré-condições: não tem.

Saídas e pós-condição: um voo é cadastrado no sistema.



                             [RF002] Cadastro de Clientes
Descrição do caso de uso: Este caso de uso permite que o usuário cadastre clientes no sistema para
a venda das passagens.


Prioridade:         Essencial               Importante             Desejável


Entradas e pré-condições: passagem só será cadastrada se a capacidade do voo não for excedida.

Saídas e pós-condição: o consegue cadastrar o cliente e a venda da passagem.



                    [RF003] Relatório de viagens cadastradas
Descrição do caso de uso: Este caso de uso permite que o usuário visualize um relatório com todos
os voos cadastrados no sistema.


Prioridade:         Essencial               Importante             Desejável


Entradas e pré-condições: recebe como entrada os registros de voos da base de dados.

Saídas e pós-condição: Emite relatório na tela com todos os voos cadastrados na base de dados.



5                                                                                      IBM0056
[RF004] Relatório de lucro
Descrição do caso de uso: Este caso de uso permite que o usuário visualize relatório com o lucro
total e por viagens de acordo com as passagens vendidas.


Prioridade:          Essencial               Importante               Desejável

Entradas e pré-condições: deve receber como entrada os registros da base de dados referentes a
quantidade de passagens vendidas e voos cadastrados.

Saídas e pós-condição: o usuário visualiza na tela o relatório de lucros.

                          [RF005] Relatório de uso de pista
Descrição do caso de uso: Este caso de uso permite que o usuário visualize relatório de uso de
pista dos voos cadastrados no sistema.


Prioridade:          Essencial               Importante               Desejável

Entradas e pré-condições: recebe como entrada registros da base de dados referente aos voos
cadastrados e adiciona 15 minutos ao horário cadastrado em uma nova coluna.

Saídas e pós-condição: o usuário consegue visualizar relatório de uso de pista com informações
referentes ao voo e horário de entrada e saida da pista.



Requisitos Não Funcionais


                                    [NF001] Usabilidade

A interface com o usuário é de vital importância para o sucesso do sistema. Principalmente por ser
um sistema que será utilizado diariamente, o usuário precisa ter fácil e rápido acesso as
funcionalidades do sistema. O sistema terá uma interface em modo texto com as opções a serem
escolhidas.



Prioridade:          Essencial               Importante               Desejável




6                                                                                      IBM0056
[NF002] Desempenho
Embora não seja um requisito essencial ao sistema, deve ser considerada por corresponder a um
fator de qualidade de software.


Prioridade:         Essencial                Importante             Desejável




                             [NF003] Hardware e Software
Visando criar um produto com maior extensibilidade, reusabilidade e flexibilidade, deve ser adotar
como linguagem principal de desenvolvimento o Enterprise COBOL para z/Os.



Prioridade:         Essencial                Importante             Desejável




7                                                                                      IBM0056
Casos de Uso


               Diagrama de casos de uso




8                                         IBM0056
Descrição dos Casos de Uso


                        [UC – 01] UC_Cadastro_de_Viagens


[UC-01]
Nome: Cadastro de Viagens
Prioridade: Essencial
FLUXO DE EVENTOS
Fluxo Principal                         1. O Usuário escolhe a opção “1” Cadastro de
                                        Viagens no menu principal;

                                        2. Ao escolher a opção sera exibida tela com as
                                        seguintes caracteristicas:

                                        Campos de informações para preenchimento:

                                           •   Codigo da Viagem;
                                           •   Destino;
                                           •   Data;
                                           •   Horário;
                                           •   Custo;
                                           •   Capacidade;
                                           •   Status;
Fluxos Excepcionais                     1. Se erro no SQL INCLUDE
                                           1.a Mostrar erro Cadastro não efetuado.
Fluxos Alternativos                      N/A
Pós-condição                            Viagem Cadastrada com sucesso




9                                                                            IBM0056
[UC – 02] UC_Cadastro_de_Clientes



[UC-02]
Nome: Cadastro de Clientes
Prioridade: Essencial
FLUXO DE EVENTOS
Fluxo Principal                          1. O Usuário escolhe a opção “2” Cadastro de
                                         Clientes no menu principal;

                                         2. Ao escolher a opção sera exibida tela com as
                                         seguintes caracteristicas:

                                         Campos de informações para preenchimento:

                                            •   Codigo do cliente;
                                            •   CPF;
                                            •   Nome;
                                            •   Sobrenome;
                                            •   Codigo da Viagem;




Fluxos Excepcionais                      1. Se erro no SQL INCLUDE
                                            1.a Mostrar erro Cadastro não efetuado.
Fluxos Alternativos                      N/A
Pós-condição                             Viagem Cadastrada com sucesso




10                                                                             IBM0056
[UC – 03] UC_Relatório_de_Voos_Cadastrados



[UC-03]
Nome: Relatórios de Voos cadastrados
Prioridade: Essencial
FLUXO DE EVENTOS
Fluxo Principal                        1. O Usuário escolhe a opção “3” Rel. De Voos
                                       no menu principal;

                                       2. Ao escolher a opção sera exibida tela com as
                                       seguintes caracteristicas:

                                       Campos de informações do relatório:

                                          •   Codigo da Viagem;
                                          •   Destino;
                                          •   Horário;
                                          •   Status;




Fluxos Excepcionais                     N/A
Fluxos Alternativos                     N/A
Pós-condição                           Mostra relatório com todas as viagens
                                       cadastradas




11                                                                             IBM0056
[UC – 04] UC_Relatório_de_Lucro



[UC-04]
Nome: Relatórios de Lucro
Prioridade: Essencial
FLUXO DE EVENTOS
Fluxo Principal                         1. O Usuário escolhe a opção “4” Rel. de lucro
                                        no menu principal;

                                        2. Ao escolher a opção sera exibida tela com as
                                        seguintes caracteristicas:

                                        Campos de informações do relatório:

                                           •   Lucro total acumulado das viagens
                                               vendidas;
                                           •   Codigo da Viagem;
                                           •   Destino;
                                           •   Quantidade de cadeiras vendidas;
                                           •   Lucro total por viagens;




Fluxos Excepcionais                     N/A
Fluxos Alternativos                     N/A
Pós-condição                            Mostra relatório com lucro das viagens vendidas
                                        tanto acumulado quanto separado por viagens




12                                                                            IBM0056
[UC – 05] UC_Relatório_de_Pista



[UC-05]
Nome: Relatórios de Pista
Prioridade: Essencial
FLUXO DE EVENTOS
Fluxo Principal                         1. O Usuário escolhe a opção “5” Rel. uso de
                                        pista no menu principal;

                                        2. Ao escolher a opção sera exibida tela com as
                                        seguintes caracteristicas:

                                        Campos de informações do relatório:

                                           •   Codigo da Viagem;
                                           •   Destino;
                                           •   Horário Ent;
                                           •   Horário Sai com adicional de 15 minutos
                                               no tempo;




Fluxos Excepcionais                     N/A
Fluxos Alternativos                     N/A
Pós-condição                            Mostra relatório com uso da pista mostrando
                                        horário de entrada e saida




13                                                                            IBM0056
Banco de Dados

Como descrito no pré-requisito de desenvolvimento do sistema será utilizado o DB2 como SGBD
com a criação de duas tabelas CLIENTE e VIAGEM como no modelo abaixo:




14                                                                                 IBM0056
Interfaces do Sistema

Na figura (Figura 1) a seguir tem-se o protótipo da tela principal, onde o usuário ira digitar e
escolher a opção desejada. O sistema sempre começará com essa janela e sempre sairá com essa
janela.




Figura 1 – Tela Principal




15                                                                                          IBM0056
Selecionando a opção “1” Cadastro de Viagens o sistema apresentará a tela com os campos
referente a viagem para serem preenchidos (Figura 2 ).




     Figura 2 – Cadastro de Viagens


Nota-se que uma mensagem de sucesso é exibida quando o registro é efetuado com sucesso, se o
mesmo não for inserido no banco de dados por algum problema uma outra mensagem dizendo para
o usuário que o registro não foi efetuado é exibida.


16                                                                                   IBM0056
Selecionando a opção “2” Cadastro de Clientes o sistema apresentará tela com os campos refentes a
venda da passagem ao cliente (Figura 3).




     Figura 3 – Cadastro de Clientes


Da mesma maneira que a mensagem de sucesso e erro é exibida no cadastro de viagens é exibida do
cadastro de cliente também. Segue abaixo parte do código desenvolvido em COBOL referente a
verificação de sucesso ou erro na inserção do registro na base de dados.


17                                                                                    IBM0056
011553        *****************************************************************
011560         SQL-CHECK.
011600             MOVE SQLCODE TO SQLCODE-PIC
011700             IF SQLCODE = 0
011800                 DISPLAY '***********************************************'
011900                 DISPLAY '*     Cadastro realizado com sucesso!!!            *'
012000                 DISPLAY '***********************************************'
012010                 DISPLAY '* Tecle ENTER para voltar ao menu principal...*'
012020                 DISPLAY '***********************************************'
012100             ELSE
012200                 DISPLAY '***********************************************'
012300                 DISPLAY '*     Erro no cadastramento!!!                     *'
012400                 DISPLAY '***********************************************'
012410                 DISPLAY '* Tecle ENTER para voltar ao menu principal...*'
012420                 DISPLAY '***********************************************'
012500                 DISPLAY 'SQLCODE   = ' SQLCODE-PIC
012600                          'SQLSTATE = ' SQLSTATE
012700                 ADD 16 TO ZERO GIVING RETURN-CODE
012800             END-IF.
012810        *
012820        *****************************************************************


Como a venda das passagens é limitada a capacidade de cada voo, foi necessário criar uma regra
para controlar o overbooking e impedir a venda das passagens caso a capacidade tenha sido
esgotada. Abaixo o código referente ao controle de overbooking.


011499        *****************************************************************
011500        * Controle de Overboking!!!                                           *
011501        * Se numero de passagens for maior que capacidade nao grava           *
011502        * a venda no banco e mostra erro na tela!!!                           *
011503        *****************************************************************
011504                    EXEC SQL
011505                         SELECT COUNT(*) INTO :OV-VENDA FROM CLIENTE
011506                         WHERE ID_VIAGEM = :ID-VIAC
011507                    END-EXEC.
011517        *****************************************************************
011518                    EXEC SQL
011519                         SELECT CAPACIDADE INTO :OV-REC FROM VIAGEM
011520                         WHERE ID_VIAGEM = :ID-VIAC
011521                    END-EXEC.
011522        *****************************************************************
011523             COMPUTE WS-T1 = FUNCTION NUMVAL(WS-COUNT1)
011524             COMPUTE WS-T2 = FUNCTION NUMVAL(WS-COUNT2)


18                                                                                      IBM0056
011527               IF
011528               WS-T1 >= WS-T2
011529               PERFORM ERRO-OVER
011530               ELSE
011531               PERFORM INCLUI-VENDA
011532               END-IF.
011533         *****************************************************************


Se o usúario do sistema tentar vender uma passagem para um voo com capacidade esgotada
receberá a seguinte tela (Figura 4).




Figura 4 – Erro Overbooking




19                                                                                 IBM0056
Selecionando a opção “3” Rel. de Voos será exibido na tela relatório com as informações referentes
a todos os voos registrados no sistema como na imagem abaixo (Figura 5).




Figura 5 – Relatório de Voo


Selecionando a opção “4” Rel de Lucros será exibido na tela relatório com o lucro acumulado e
lucro por viagem dependendo do numero de passagens vendidas como mostra a figura abaixo
(Figura 6).




20                                                                                      IBM0056
Figura 6 - Relatório de Lucro


Abaixo parte do código referente a fazer a operação aritimetica do relatório de lucro:


018000           *****************************************************************
018100             PRINT-AND-GET3.
018200                 COMPUTE QUANT = QUANT + 1
018210                 COMPUTE V-NUM = FUNCTION NUMVAL(V-COUNT)
018220                 COMPUTE CUSTO-V = FUNCTION NUMVAL(CUSTO-VIL)
018230                 MULTIPLY V-NUM BY CUSTO-V GIVING CUSTO-T.


21                                                                                       IBM0056
018300                 PERFORM PRINT-A-LINE-3
018400                    EXEC SQL FETCH CUR2 INTO :ID-VIL, :V-COUNT
018500                    END-EXEC.
018510                    EXEC SQL FETCH CUR3 INTO :ID-VIV, :DEST-VIL, :CUSTO-VIL
018520                    END-EXEC.
018600           *****************************************************************


Selecionando a opção “5” Rel de Uso de Pista será exibido na tela relaorio com o tempo de uso de
pista de cada aeronave com seu horario de entrada como mostradado na figura abaixo (Figura 7).




     Figura 7 – Relatório de Uso de Pista


22                                                                                     IBM0056
Nota-se na imagem acima que um dos pré-requisitos essenciais para o sistema era de mostrar no
relatório de uso de pista o horário de entrada e de saida que era a soma de 15 minutos a mais no
horário de entrada. Isso foi possível declarando um cursor com a seguinte sintaxe SQL:


000701        *--------------------------------------------------------------*
000702                  EXEC SQL DECLARE CUR5 CURSOR FOR
000703                        SELECT ID_VIAGEM, DESTINO, HORARIO,
000704                                HORARIO + 15 MINUTES AS SAIDA FROM VIAGEM
000705                        ORDER BY HORARIO
000706                  END-EXEC.
000723        *--------------------------------------------------------------*


Ao selecionar a opção “0” Sair o sistema é encerrado como mostrado na figura abaixo (Figura 8 ).




23                                                                                       IBM0056

Mais conteúdo relacionado

Semelhante a Gerenciamento de voos no aeroporto FlySmart

Apresentação dos Sistemas Federais
Apresentação dos Sistemas FederaisApresentação dos Sistemas Federais
Apresentação dos Sistemas FederaisLegisWeb .
 
ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...
ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...
ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...Embarcados
 
Visys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresaVisys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresaSonia Fernandes Bogo
 
Visys apresentação call center módulos adicionais
Visys apresentação call center módulos adicionaisVisys apresentação call center módulos adicionais
Visys apresentação call center módulos adicionaisSonia Fernandes Bogo
 
Plano de Projeto - OUTLAY
Plano de Projeto - OUTLAYPlano de Projeto - OUTLAY
Plano de Projeto - OUTLAYJocelino Neto
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
 
Sistemas supervisorios de processos industriais
Sistemas supervisorios de processos industriaisSistemas supervisorios de processos industriais
Sistemas supervisorios de processos industriaisWagner Gomes
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...tdc-globalcode
 
Apresentação proposta site hotel fazenda
Apresentação proposta site hotel fazendaApresentação proposta site hotel fazenda
Apresentação proposta site hotel fazendaFernando Gomes Chaves
 
Apresentação do sistema superius advanced
Apresentação do sistema superius advancedApresentação do sistema superius advanced
Apresentação do sistema superius advancedSILVESTREROSSI
 
II SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa Aeroespacial
II SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa AeroespacialII SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa Aeroespacial
II SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa AeroespacialAtech S.A. | Embraer Group
 
SCCA 2008 - Especificação V2003
SCCA 2008 - Especificação V2003SCCA 2008 - Especificação V2003
SCCA 2008 - Especificação V2003Andre Sazonov
 

Semelhante a Gerenciamento de voos no aeroporto FlySmart (20)

Palestra mack ibm system z overview
Palestra mack  ibm system z overviewPalestra mack  ibm system z overview
Palestra mack ibm system z overview
 
RodoCap no JustJava 2008
RodoCap no JustJava 2008RodoCap no JustJava 2008
RodoCap no JustJava 2008
 
Apresentação dos Sistemas Federais
Apresentação dos Sistemas FederaisApresentação dos Sistemas Federais
Apresentação dos Sistemas Federais
 
ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...
ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...
ScadaBR: A ferramenta de Monitoramento e Controle mais Acessível e Barata de ...
 
Visys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresaVisys: Potencialize o seu atendimento com a soluções de nossa empresa
Visys: Potencialize o seu atendimento com a soluções de nossa empresa
 
Visys apresentação call center módulos adicionais
Visys apresentação call center módulos adicionaisVisys apresentação call center módulos adicionais
Visys apresentação call center módulos adicionais
 
Apresentacao ponto acesso_v0.5
Apresentacao ponto acesso_v0.5Apresentacao ponto acesso_v0.5
Apresentacao ponto acesso_v0.5
 
GCO - OPTMUS
GCO - OPTMUSGCO - OPTMUS
GCO - OPTMUS
 
Case UX - EBAI 2009
Case UX - EBAI 2009Case UX - EBAI 2009
Case UX - EBAI 2009
 
Plano de Projeto - OUTLAY
Plano de Projeto - OUTLAYPlano de Projeto - OUTLAY
Plano de Projeto - OUTLAY
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
Sistemas supervisorios de processos industriais
Sistemas supervisorios de processos industriaisSistemas supervisorios de processos industriais
Sistemas supervisorios de processos industriais
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
 
Az008 workflow
Az008   workflowAz008   workflow
Az008 workflow
 
Opc marcos fonseca
Opc marcos fonsecaOpc marcos fonseca
Opc marcos fonseca
 
Apresentação Sistema PONTO SECULLUM 4
Apresentação Sistema PONTO SECULLUM 4Apresentação Sistema PONTO SECULLUM 4
Apresentação Sistema PONTO SECULLUM 4
 
Apresentação proposta site hotel fazenda
Apresentação proposta site hotel fazendaApresentação proposta site hotel fazenda
Apresentação proposta site hotel fazenda
 
Apresentação do sistema superius advanced
Apresentação do sistema superius advancedApresentação do sistema superius advanced
Apresentação do sistema superius advanced
 
II SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa Aeroespacial
II SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa AeroespacialII SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa Aeroespacial
II SDTA - Ciclo de C2 e a Evolução das Soluções de Defesa Aeroespacial
 
SCCA 2008 - Especificação V2003
SCCA 2008 - Especificação V2003SCCA 2008 - Especificação V2003
SCCA 2008 - Especificação V2003
 

Gerenciamento de voos no aeroporto FlySmart

  • 1. Documentação do Projeto Parte 3 Final FlySmart (Concurso IBM Mainframe 2012 – Brasil ) Nome: Luiz Nakazone ID: IBM0056
  • 2. Conteudo Visão.....................................................................................................................................................3 Definição do Problema.........................................................................................................................3 Objetivos do Negócio...........................................................................................................................3 Escopo.................................................................................................................................................. 4 Requisitos Funcionais...........................................................................................................................5 Requisitos Não Funcionais...................................................................................................................6 Casos de Uso........................................................................................................................................ 8 Descrição dos Casos de Uso.................................................................................................................9 Banco de Dados..................................................................................................................................14 Interfaces do Sistema..........................................................................................................................15 2 IBM0056
  • 3. Visão Desenvolvimento da arquitetura da aplicação de gerenciamento do aeroporto internacional FlySmart, garantindo sua qualidade de desenvolvimento. Dentro deste contexto do projeto serão implementados, casos de uso, modelo de dados, JCL's (Job Control Language), banco de dados DB2 e linguagem de programação COBOL em ambiente mainframe com sistema z/Os. Definição do Problema Mesmo com tantas regras impostas pela agência de aviação civil para tentar sanar práticas de overbooking, atrasos e cancelamentos de voos para um melhor gerenciamento dos processos do aeroporto internacional FlySmart, o problema persiste pois não se encontra em operação no local um sistema de gerenciamento inteligente e unificado que resolva esse problema. Objetivos do Negócio Objetivo Principal Desenvolver um programa em linguagem COBOL garantindo a agilidade e unificação dos processos do aeroporto internacional FlySmart. O projeto deve propiciar: • Cadastro de Viagens; • Cadastro de Passageiros; • Emitir relatório de viagens cadastradas; • Emitir relatório de lucro de passagens vendidas; • Emitir relatório de uso de pista com delay do tempo de pouso e decolagem; 3 IBM0056
  • 4. Objetivo Secundário Como objetivo secundário: • Permitir ao usuário do sistema facil acesso unificado dos processos vitais do aeroporto. Escopo Como escopo do projeto tem-se a concepção da arquitetura de desenvolvimento para a aplicação de gerenciamento do aeroporto internacional FlySmart contemplando as seguintes tecnologias e conceitos em ambiente mainframe z/Os: casos de uso, modelagem de dados, JCL's, banco de dados DB2 e linguagem COBOL. Produtos gerados/esperados • Menu principal em texto com as opções a serem escolhidas contemplando as seguintes funcionalidades: ✔ Cadastro de viagens; ✔ Cadastro de passageiros com limite dependendo da capacidade do voo; ✔ Relatorio das viagens cadastradas; ✔ Relatório dos lucros das viagens de acordo com as passagens vendidas; ✔ Relatório de uso de pista com delay de pouso e decolagem de 15 minutos; Pré-requisitos • Definição do modelo de dados entre duas tabelas CLIENTE e VIAGEM em DB2; • Desenvolvimento em linguagem COBOL; • Menu em formato texto com as opções a serem escolhidas; 4 IBM0056
  • 5. Requisitos Funcionais [RF001] Cadastro de Viagens Descrição do caso de uso: Este caso de uso permite que o usuário cadastre os voos no sistema para poder efetuar as vendas das passagens. Prioridade:  Essencial  Importante  Desejável Entradas e pré-condições: não tem. Saídas e pós-condição: um voo é cadastrado no sistema. [RF002] Cadastro de Clientes Descrição do caso de uso: Este caso de uso permite que o usuário cadastre clientes no sistema para a venda das passagens. Prioridade:  Essencial  Importante  Desejável Entradas e pré-condições: passagem só será cadastrada se a capacidade do voo não for excedida. Saídas e pós-condição: o consegue cadastrar o cliente e a venda da passagem. [RF003] Relatório de viagens cadastradas Descrição do caso de uso: Este caso de uso permite que o usuário visualize um relatório com todos os voos cadastrados no sistema. Prioridade:  Essencial  Importante  Desejável Entradas e pré-condições: recebe como entrada os registros de voos da base de dados. Saídas e pós-condição: Emite relatório na tela com todos os voos cadastrados na base de dados. 5 IBM0056
  • 6. [RF004] Relatório de lucro Descrição do caso de uso: Este caso de uso permite que o usuário visualize relatório com o lucro total e por viagens de acordo com as passagens vendidas. Prioridade:  Essencial  Importante  Desejável Entradas e pré-condições: deve receber como entrada os registros da base de dados referentes a quantidade de passagens vendidas e voos cadastrados. Saídas e pós-condição: o usuário visualiza na tela o relatório de lucros. [RF005] Relatório de uso de pista Descrição do caso de uso: Este caso de uso permite que o usuário visualize relatório de uso de pista dos voos cadastrados no sistema. Prioridade:  Essencial  Importante  Desejável Entradas e pré-condições: recebe como entrada registros da base de dados referente aos voos cadastrados e adiciona 15 minutos ao horário cadastrado em uma nova coluna. Saídas e pós-condição: o usuário consegue visualizar relatório de uso de pista com informações referentes ao voo e horário de entrada e saida da pista. Requisitos Não Funcionais [NF001] Usabilidade A interface com o usuário é de vital importância para o sucesso do sistema. Principalmente por ser um sistema que será utilizado diariamente, o usuário precisa ter fácil e rápido acesso as funcionalidades do sistema. O sistema terá uma interface em modo texto com as opções a serem escolhidas. Prioridade:  Essencial  Importante  Desejável 6 IBM0056
  • 7. [NF002] Desempenho Embora não seja um requisito essencial ao sistema, deve ser considerada por corresponder a um fator de qualidade de software. Prioridade:  Essencial  Importante  Desejável [NF003] Hardware e Software Visando criar um produto com maior extensibilidade, reusabilidade e flexibilidade, deve ser adotar como linguagem principal de desenvolvimento o Enterprise COBOL para z/Os. Prioridade:  Essencial  Importante  Desejável 7 IBM0056
  • 8. Casos de Uso Diagrama de casos de uso 8 IBM0056
  • 9. Descrição dos Casos de Uso [UC – 01] UC_Cadastro_de_Viagens [UC-01] Nome: Cadastro de Viagens Prioridade: Essencial FLUXO DE EVENTOS Fluxo Principal 1. O Usuário escolhe a opção “1” Cadastro de Viagens no menu principal; 2. Ao escolher a opção sera exibida tela com as seguintes caracteristicas: Campos de informações para preenchimento: • Codigo da Viagem; • Destino; • Data; • Horário; • Custo; • Capacidade; • Status; Fluxos Excepcionais 1. Se erro no SQL INCLUDE 1.a Mostrar erro Cadastro não efetuado. Fluxos Alternativos N/A Pós-condição Viagem Cadastrada com sucesso 9 IBM0056
  • 10. [UC – 02] UC_Cadastro_de_Clientes [UC-02] Nome: Cadastro de Clientes Prioridade: Essencial FLUXO DE EVENTOS Fluxo Principal 1. O Usuário escolhe a opção “2” Cadastro de Clientes no menu principal; 2. Ao escolher a opção sera exibida tela com as seguintes caracteristicas: Campos de informações para preenchimento: • Codigo do cliente; • CPF; • Nome; • Sobrenome; • Codigo da Viagem; Fluxos Excepcionais 1. Se erro no SQL INCLUDE 1.a Mostrar erro Cadastro não efetuado. Fluxos Alternativos N/A Pós-condição Viagem Cadastrada com sucesso 10 IBM0056
  • 11. [UC – 03] UC_Relatório_de_Voos_Cadastrados [UC-03] Nome: Relatórios de Voos cadastrados Prioridade: Essencial FLUXO DE EVENTOS Fluxo Principal 1. O Usuário escolhe a opção “3” Rel. De Voos no menu principal; 2. Ao escolher a opção sera exibida tela com as seguintes caracteristicas: Campos de informações do relatório: • Codigo da Viagem; • Destino; • Horário; • Status; Fluxos Excepcionais N/A Fluxos Alternativos N/A Pós-condição Mostra relatório com todas as viagens cadastradas 11 IBM0056
  • 12. [UC – 04] UC_Relatório_de_Lucro [UC-04] Nome: Relatórios de Lucro Prioridade: Essencial FLUXO DE EVENTOS Fluxo Principal 1. O Usuário escolhe a opção “4” Rel. de lucro no menu principal; 2. Ao escolher a opção sera exibida tela com as seguintes caracteristicas: Campos de informações do relatório: • Lucro total acumulado das viagens vendidas; • Codigo da Viagem; • Destino; • Quantidade de cadeiras vendidas; • Lucro total por viagens; Fluxos Excepcionais N/A Fluxos Alternativos N/A Pós-condição Mostra relatório com lucro das viagens vendidas tanto acumulado quanto separado por viagens 12 IBM0056
  • 13. [UC – 05] UC_Relatório_de_Pista [UC-05] Nome: Relatórios de Pista Prioridade: Essencial FLUXO DE EVENTOS Fluxo Principal 1. O Usuário escolhe a opção “5” Rel. uso de pista no menu principal; 2. Ao escolher a opção sera exibida tela com as seguintes caracteristicas: Campos de informações do relatório: • Codigo da Viagem; • Destino; • Horário Ent; • Horário Sai com adicional de 15 minutos no tempo; Fluxos Excepcionais N/A Fluxos Alternativos N/A Pós-condição Mostra relatório com uso da pista mostrando horário de entrada e saida 13 IBM0056
  • 14. Banco de Dados Como descrito no pré-requisito de desenvolvimento do sistema será utilizado o DB2 como SGBD com a criação de duas tabelas CLIENTE e VIAGEM como no modelo abaixo: 14 IBM0056
  • 15. Interfaces do Sistema Na figura (Figura 1) a seguir tem-se o protótipo da tela principal, onde o usuário ira digitar e escolher a opção desejada. O sistema sempre começará com essa janela e sempre sairá com essa janela. Figura 1 – Tela Principal 15 IBM0056
  • 16. Selecionando a opção “1” Cadastro de Viagens o sistema apresentará a tela com os campos referente a viagem para serem preenchidos (Figura 2 ). Figura 2 – Cadastro de Viagens Nota-se que uma mensagem de sucesso é exibida quando o registro é efetuado com sucesso, se o mesmo não for inserido no banco de dados por algum problema uma outra mensagem dizendo para o usuário que o registro não foi efetuado é exibida. 16 IBM0056
  • 17. Selecionando a opção “2” Cadastro de Clientes o sistema apresentará tela com os campos refentes a venda da passagem ao cliente (Figura 3). Figura 3 – Cadastro de Clientes Da mesma maneira que a mensagem de sucesso e erro é exibida no cadastro de viagens é exibida do cadastro de cliente também. Segue abaixo parte do código desenvolvido em COBOL referente a verificação de sucesso ou erro na inserção do registro na base de dados. 17 IBM0056
  • 18. 011553 ***************************************************************** 011560 SQL-CHECK. 011600 MOVE SQLCODE TO SQLCODE-PIC 011700 IF SQLCODE = 0 011800 DISPLAY '***********************************************' 011900 DISPLAY '* Cadastro realizado com sucesso!!! *' 012000 DISPLAY '***********************************************' 012010 DISPLAY '* Tecle ENTER para voltar ao menu principal...*' 012020 DISPLAY '***********************************************' 012100 ELSE 012200 DISPLAY '***********************************************' 012300 DISPLAY '* Erro no cadastramento!!! *' 012400 DISPLAY '***********************************************' 012410 DISPLAY '* Tecle ENTER para voltar ao menu principal...*' 012420 DISPLAY '***********************************************' 012500 DISPLAY 'SQLCODE = ' SQLCODE-PIC 012600 'SQLSTATE = ' SQLSTATE 012700 ADD 16 TO ZERO GIVING RETURN-CODE 012800 END-IF. 012810 * 012820 ***************************************************************** Como a venda das passagens é limitada a capacidade de cada voo, foi necessário criar uma regra para controlar o overbooking e impedir a venda das passagens caso a capacidade tenha sido esgotada. Abaixo o código referente ao controle de overbooking. 011499 ***************************************************************** 011500 * Controle de Overboking!!! * 011501 * Se numero de passagens for maior que capacidade nao grava * 011502 * a venda no banco e mostra erro na tela!!! * 011503 ***************************************************************** 011504 EXEC SQL 011505 SELECT COUNT(*) INTO :OV-VENDA FROM CLIENTE 011506 WHERE ID_VIAGEM = :ID-VIAC 011507 END-EXEC. 011517 ***************************************************************** 011518 EXEC SQL 011519 SELECT CAPACIDADE INTO :OV-REC FROM VIAGEM 011520 WHERE ID_VIAGEM = :ID-VIAC 011521 END-EXEC. 011522 ***************************************************************** 011523 COMPUTE WS-T1 = FUNCTION NUMVAL(WS-COUNT1) 011524 COMPUTE WS-T2 = FUNCTION NUMVAL(WS-COUNT2) 18 IBM0056
  • 19. 011527 IF 011528 WS-T1 >= WS-T2 011529 PERFORM ERRO-OVER 011530 ELSE 011531 PERFORM INCLUI-VENDA 011532 END-IF. 011533 ***************************************************************** Se o usúario do sistema tentar vender uma passagem para um voo com capacidade esgotada receberá a seguinte tela (Figura 4). Figura 4 – Erro Overbooking 19 IBM0056
  • 20. Selecionando a opção “3” Rel. de Voos será exibido na tela relatório com as informações referentes a todos os voos registrados no sistema como na imagem abaixo (Figura 5). Figura 5 – Relatório de Voo Selecionando a opção “4” Rel de Lucros será exibido na tela relatório com o lucro acumulado e lucro por viagem dependendo do numero de passagens vendidas como mostra a figura abaixo (Figura 6). 20 IBM0056
  • 21. Figura 6 - Relatório de Lucro Abaixo parte do código referente a fazer a operação aritimetica do relatório de lucro: 018000 ***************************************************************** 018100 PRINT-AND-GET3. 018200 COMPUTE QUANT = QUANT + 1 018210 COMPUTE V-NUM = FUNCTION NUMVAL(V-COUNT) 018220 COMPUTE CUSTO-V = FUNCTION NUMVAL(CUSTO-VIL) 018230 MULTIPLY V-NUM BY CUSTO-V GIVING CUSTO-T. 21 IBM0056
  • 22. 018300 PERFORM PRINT-A-LINE-3 018400 EXEC SQL FETCH CUR2 INTO :ID-VIL, :V-COUNT 018500 END-EXEC. 018510 EXEC SQL FETCH CUR3 INTO :ID-VIV, :DEST-VIL, :CUSTO-VIL 018520 END-EXEC. 018600 ***************************************************************** Selecionando a opção “5” Rel de Uso de Pista será exibido na tela relaorio com o tempo de uso de pista de cada aeronave com seu horario de entrada como mostradado na figura abaixo (Figura 7). Figura 7 – Relatório de Uso de Pista 22 IBM0056
  • 23. Nota-se na imagem acima que um dos pré-requisitos essenciais para o sistema era de mostrar no relatório de uso de pista o horário de entrada e de saida que era a soma de 15 minutos a mais no horário de entrada. Isso foi possível declarando um cursor com a seguinte sintaxe SQL: 000701 *--------------------------------------------------------------* 000702 EXEC SQL DECLARE CUR5 CURSOR FOR 000703 SELECT ID_VIAGEM, DESTINO, HORARIO, 000704 HORARIO + 15 MINUTES AS SAIDA FROM VIAGEM 000705 ORDER BY HORARIO 000706 END-EXEC. 000723 *--------------------------------------------------------------* Ao selecionar a opção “0” Sair o sistema é encerrado como mostrado na figura abaixo (Figura 8 ). 23 IBM0056