• Save
Documentação Final Parte3 Concurso IBM Mainframe 2012 - Luiz Nakazone - IBM0056
Upcoming SlideShare
Loading in...5
×
 

Documentação Final Parte3 Concurso IBM Mainframe 2012 - Luiz Nakazone - IBM0056

on

  • 179 views

Documentação da Parte3 - Final do Concurso IBM Mainframe Brasil 2012

Documentação da Parte3 - Final do Concurso IBM Mainframe Brasil 2012

Statistics

Views

Total Views
179
Views on SlideShare
177
Embed Views
2

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Documentação Final Parte3 Concurso IBM Mainframe 2012 - Luiz Nakazone - IBM0056 Documentação Final Parte3 Concurso IBM Mainframe 2012 - Luiz Nakazone - IBM0056 Document Transcript

    • Documentação do Projeto Parte 3 Final FlySmart (Concurso IBM Mainframe 2012 – Brasil )Nome: Luiz NakazoneID: IBM0056
    • ConteudoVisão.....................................................................................................................................................3Definição do Problema.........................................................................................................................3Objetivos do Negócio...........................................................................................................................3Escopo.................................................................................................................................................. 4Requisitos Funcionais...........................................................................................................................5Requisitos Não Funcionais...................................................................................................................6Casos de Uso........................................................................................................................................ 8Descrição dos Casos de Uso.................................................................................................................9Banco de Dados..................................................................................................................................14Interfaces do Sistema..........................................................................................................................152 IBM0056
    • VisãoDesenvolvimento da arquitetura da aplicação de gerenciamento do aeroporto internacionalFlySmart, garantindo sua qualidade de desenvolvimento.Dentro deste contexto do projeto serão implementados, casos de uso, modelo de dados, JCLs (JobControl Language), banco de dados DB2 e linguagem de programação COBOL em ambientemainframe com sistema z/Os.Definição do ProblemaMesmo com tantas regras impostas pela agência de aviação civil para tentar sanar práticas deoverbooking, atrasos e cancelamentos de voos para um melhor gerenciamento dos processos doaeroporto internacional FlySmart, o problema persiste pois não se encontra em operação no localum sistema de gerenciamento inteligente e unificado que resolva esse problema.Objetivos do NegócioObjetivo PrincipalDesenvolver um programa em linguagem COBOL garantindo a agilidade e unificação dosprocessos 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árioComo objetivo secundário: • Permitir ao usuário do sistema facil acesso unificado dos processos vitais do aeroporto.EscopoComo escopo do projeto tem-se a concepção da arquitetura de desenvolvimento para a aplicação degerenciamento do aeroporto internacional FlySmart contemplando as seguintes tecnologias econceitos em ambiente mainframe z/Os: casos de uso, modelagem de dados, JCLs, banco de dadosDB2 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 ViagensDescrição do caso de uso: Este caso de uso permite que o usuário cadastre os voos no sistema parapoder efetuar as vendas das passagens.Prioridade:  Essencial  Importante  DesejávelEntradas e pré-condições: não tem.Saídas e pós-condição: um voo é cadastrado no sistema. [RF002] Cadastro de ClientesDescrição do caso de uso: Este caso de uso permite que o usuário cadastre clientes no sistema paraa venda das passagens.Prioridade:  Essencial  Importante  DesejávelEntradas 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 cadastradasDescrição do caso de uso: Este caso de uso permite que o usuário visualize um relatório com todosos voos cadastrados no sistema.Prioridade:  Essencial  Importante  DesejávelEntradas 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 lucroDescrição do caso de uso: Este caso de uso permite que o usuário visualize relatório com o lucrototal e por viagens de acordo com as passagens vendidas.Prioridade:  Essencial  Importante  DesejávelEntradas e pré-condições: deve receber como entrada os registros da base de dados referentes aquantidade 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 pistaDescrição do caso de uso: Este caso de uso permite que o usuário visualize relatório de uso depista dos voos cadastrados no sistema.Prioridade:  Essencial  Importante  DesejávelEntradas e pré-condições: recebe como entrada registros da base de dados referente aos vooscadastrados 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çõesreferentes ao voo e horário de entrada e saida da pista.Requisitos Não Funcionais [NF001] UsabilidadeA interface com o usuário é de vital importância para o sucesso do sistema. Principalmente por serum sistema que será utilizado diariamente, o usuário precisa ter fácil e rápido acesso asfuncionalidades do sistema. O sistema terá uma interface em modo texto com as opções a seremescolhidas.Prioridade:  Essencial  Importante  Desejável6 IBM0056
    • [NF002] DesempenhoEmbora não seja um requisito essencial ao sistema, deve ser considerada por corresponder a umfator de qualidade de software.Prioridade:  Essencial  Importante  Desejável [NF003] Hardware e SoftwareVisando criar um produto com maior extensibilidade, reusabilidade e flexibilidade, deve ser adotarcomo linguagem principal de desenvolvimento o Enterprise COBOL para z/Os.Prioridade:  Essencial  Importante  Desejável7 IBM0056
    • Casos de Uso Diagrama de casos de uso8 IBM0056
    • Descrição dos Casos de Uso [UC – 01] UC_Cadastro_de_Viagens[UC-01]Nome: Cadastro de ViagensPrioridade: EssencialFLUXO DE EVENTOSFluxo 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/APós-condição Viagem Cadastrada com sucesso9 IBM0056
    • [UC – 02] UC_Cadastro_de_Clientes[UC-02]Nome: Cadastro de ClientesPrioridade: EssencialFLUXO DE EVENTOSFluxo 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/APós-condição Viagem Cadastrada com sucesso10 IBM0056
    • [UC – 03] UC_Relatório_de_Voos_Cadastrados[UC-03]Nome: Relatórios de Voos cadastradosPrioridade: EssencialFLUXO DE EVENTOSFluxo 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/AFluxos Alternativos N/APós-condição Mostra relatório com todas as viagens cadastradas11 IBM0056
    • [UC – 04] UC_Relatório_de_Lucro[UC-04]Nome: Relatórios de LucroPrioridade: EssencialFLUXO DE EVENTOSFluxo 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/AFluxos Alternativos N/APós-condição Mostra relatório com lucro das viagens vendidas tanto acumulado quanto separado por viagens12 IBM0056
    • [UC – 05] UC_Relatório_de_Pista[UC-05]Nome: Relatórios de PistaPrioridade: EssencialFLUXO DE EVENTOSFluxo 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/AFluxos Alternativos N/APós-condição Mostra relatório com uso da pista mostrando horário de entrada e saida13 IBM0056
    • Banco de DadosComo descrito no pré-requisito de desenvolvimento do sistema será utilizado o DB2 como SGBDcom a criação de duas tabelas CLIENTE e VIAGEM como no modelo abaixo:14 IBM0056
    • Interfaces do SistemaNa figura (Figura 1) a seguir tem-se o protótipo da tela principal, onde o usuário ira digitar eescolher a opção desejada. O sistema sempre começará com essa janela e sempre sairá com essajanela.Figura 1 – Tela Principal15 IBM0056
    • Selecionando a opção “1” Cadastro de Viagens o sistema apresentará a tela com os camposreferente a viagem para serem preenchidos (Figura 2 ). Figura 2 – Cadastro de ViagensNota-se que uma mensagem de sucesso é exibida quando o registro é efetuado com sucesso, se omesmo não for inserido no banco de dados por algum problema uma outra mensagem dizendo parao 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 avenda da passagem ao cliente (Figura 3). Figura 3 – Cadastro de ClientesDa mesma maneira que a mensagem de sucesso e erro é exibida no cadastro de viagens é exibida docadastro de cliente também. Segue abaixo parte do código desenvolvido em COBOL referente averificaçã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-PIC011700 IF SQLCODE = 0011800 DISPLAY ***********************************************011900 DISPLAY * Cadastro realizado com sucesso!!! *012000 DISPLAY ***********************************************012010 DISPLAY * Tecle ENTER para voltar ao menu principal...*012020 DISPLAY ***********************************************012100 ELSE012200 DISPLAY ***********************************************012300 DISPLAY * Erro no cadastramento!!! *012400 DISPLAY ***********************************************012410 DISPLAY * Tecle ENTER para voltar ao menu principal...*012420 DISPLAY ***********************************************012500 DISPLAY SQLCODE = SQLCODE-PIC012600 SQLSTATE = SQLSTATE012700 ADD 16 TO ZERO GIVING RETURN-CODE012800 END-IF.012810 *012820 *****************************************************************Como a venda das passagens é limitada a capacidade de cada voo, foi necessário criar uma regrapara controlar o overbooking e impedir a venda das passagens caso a capacidade tenha sidoesgotada. 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 SQL011505 SELECT COUNT(*) INTO :OV-VENDA FROM CLIENTE011506 WHERE ID_VIAGEM = :ID-VIAC011507 END-EXEC.011517 *****************************************************************011518 EXEC SQL011519 SELECT CAPACIDADE INTO :OV-REC FROM VIAGEM011520 WHERE ID_VIAGEM = :ID-VIAC011521 END-EXEC.011522 *****************************************************************011523 COMPUTE WS-T1 = FUNCTION NUMVAL(WS-COUNT1)011524 COMPUTE WS-T2 = FUNCTION NUMVAL(WS-COUNT2)18 IBM0056
    • 011527 IF011528 WS-T1 >= WS-T2011529 PERFORM ERRO-OVER011530 ELSE011531 PERFORM INCLUI-VENDA011532 END-IF.011533 *****************************************************************Se o usúario do sistema tentar vender uma passagem para um voo com capacidade esgotadareceberá a seguinte tela (Figura 4).Figura 4 – Erro Overbooking19 IBM0056
    • Selecionando a opção “3” Rel. de Voos será exibido na tela relatório com as informações referentesa todos os voos registrados no sistema como na imagem abaixo (Figura 5).Figura 5 – Relatório de VooSelecionando a opção “4” Rel de Lucros será exibido na tela relatório com o lucro acumulado elucro por viagem dependendo do numero de passagens vendidas como mostra a figura abaixo(Figura 6).20 IBM0056
    • Figura 6 - Relatório de LucroAbaixo 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 + 1018210 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-3018400 EXEC SQL FETCH CUR2 INTO :ID-VIL, :V-COUNT018500 END-EXEC.018510 EXEC SQL FETCH CUR3 INTO :ID-VIV, :DEST-VIL, :CUSTO-VIL018520 END-EXEC.018600 *****************************************************************Selecionando a opção “5” Rel de Uso de Pista será exibido na tela relaorio com o tempo de uso depista de cada aeronave com seu horario de entrada como mostradado na figura abaixo (Figura 7). Figura 7 – Relatório de Uso de Pista22 IBM0056
    • Nota-se na imagem acima que um dos pré-requisitos essenciais para o sistema era de mostrar norelatório de uso de pista o horário de entrada e de saida que era a soma de 15 minutos a mais nohorário de entrada. Isso foi possível declarando um cursor com a seguinte sintaxe SQL:000701 *--------------------------------------------------------------*000702 EXEC SQL DECLARE CUR5 CURSOR FOR000703 SELECT ID_VIAGEM, DESTINO, HORARIO,000704 HORARIO + 15 MINUTES AS SAIDA FROM VIAGEM000705 ORDER BY HORARIO000706 END-EXEC.000723 *--------------------------------------------------------------*Ao selecionar a opção “0” Sair o sistema é encerrado como mostrado na figura abaixo (Figura 8 ).23 IBM0056