Ségio Augusto Cola Dias

Propaganda
UNIVERSIDADE FEDERAL DE MATO GROSSO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
SISTEMAS DE INFORMAÇÃO
RELATÓRIO DE ESTÁGIO SUPERVISIONADO
ANÁLISE E DESENVOLVIMENTO DE UM SISTEMA DE
PREVISÃO DE PAGAMENTOS
SERGIO AUGUSTO COLA DIAS
CUIABÁ – MT
2016
UNIVERSIDADE FEDERAL DE MATO GROSSO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
SISTEMAS DE INFORMAÇÃO
RELÁTORIO DE ESTÁGIO SUPERVISIONADO
ANÁLISE E DESENVOLVIMENTO DE UM SISTEMA DE
PREVISÃO DE PAGAMENTOS
SERGIO AUGUSTO COLA DIAS
Relatório
apresentado
Instituto
de
Computação da Universidade Federal de
Mato Grosso, para obtenção do título de
Bacharel em Sistemas de Informação.
CUIABÁ – MT
2016
UNIVERSIDADE FEDERAL DE MATO GROSSO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
SISTEMAS DE INFORMAÇÃO
SERGIO AUGUSTO COLA DIAS
Relatório de Estágio Supervisionado apresentado à Coordenação do Curso de Sistemas
de Informação como uma das exigências para obtenção do título de Bacharel em
Sistemas de Informação da Universidade Federal de Mato Grosso
Aprovado por:
Prof. MSc. Nilton Hideki Takagi
Instituto de Computação
(COORDENADOR DE ESTÁGIOS)
Prof. Dr. Thiago Meirelles Ventura
Instituto de Computação
(ORIENTADOR)
Marcos Antonio dos Santos
Supervisor de Sistemas
Amaggi Exportação de Importação LTDA.
(SUPERVISOR)
DEDICATÓRIA
Dedico este trabalho a toda a minha família, principalmente aos meus pais, Mônica
e Geraldo e ás minhas irmãs, Roberta e Renata, e à minha namorada, Elen, que me
incentivou de todas as maneiras durante a minha jornada.
AGRADECIMENTOS
Agradeço aos meus familiares, que sempre me deram apoio nas horas difíceis
e sempre acreditaram em mim.
Agradeço minha namorada, Elen, pela paciência e incentivo e apoio em
momentos decisivos da minha vida. Ela sempre esteve ao meu lado mesmo em
momentos de dificuldade.
Aos meus amigos, que acompanharam minha longa trajetória na faculdade
desde que entrei até o presente momento, me ajudando a superar os problemas e
trabalhar com as adversidades da vida, meus sinceros agradecimentos.
Agradeço, também aos meus professores do Instituto de Computação da
UFMT, que ajudaram a formar o profissional que sou hoje. E um agradecimento
especial para o meu orientador, Thiago Meirelles Ventura, que pacientemente me
ajudou em momentos de dúvida.
Obrigado a todos.
SUMÁRIO
SUMÁRIO ............................................................................................................................................ 6
LISTA DE FIGURAS .......................................................................................................................... 8
LISTA DE SIGLAS E ABREVIATURAS ......................................................................................... 9
RESUMO ............................................................................................................................................ 10
INTRODUÇÃO .................................................................................................................................. 11
1.
REVISÃO DE LITERATURA ................................................................................................ 13
1.1.
ENGENHARIA DE SOFTWARE .................................................................................. 13
1.1.1. RATIONAL UNIFIED PROCESS ..................................................................................... 13
1.1.1.1. FASE DE CONCEPÇÃO ............................................................................................... 14
1.1.1.2. FASE DE ELABORAÇÃO ............................................................................................. 15
1.1.1.3. FASE DE CONSTRUÇÃO ............................................................................................. 16
1.1.1.4. FASE DE TRANSIÇÃO .................................................................................................. 17
1.1.1.5. INTERAÇÕES ................................................................................................................ 17
1.1.2. UNIFIED MODELING LANGUAGE ........................................................................... 18
1.1.3. PROTOTIPAÇÃO ......................................................................................................... 19
1.1.4. BANCO DE DADOS .................................................................................................... 21
1.1.5. PROGRAMAÇÃO ORIENTADA A OBJETOS ............................................................. 21
1.1.5.1.
CLASSE ................................................................................................................... 22
1.1.5.2.
OBJETO .................................................................................................................. 22
1.1.5.3.
ENCAPSULAMENTO ............................................................................................. 22
1.1.5.4.
POLIMORFISMO .................................................................................................... 22
1.1.5.5.
HERANÇA ............................................................................................................... 22
2.
MATERIAS, TÉCNICAS E MÉTODOS ............................................................................... 24
2.1.
2.1.1.
2.1.2.
2.2.
2.3.
2.3.1
2.3.2.
2.3.3.
2.3.3.1.
3.
ELICITAÇÃO DE REQUISITOS .................................................................................. 24
ENTREVISTA ............................................................................................................... 24
CASOS DE USO ........................................................................................................... 25
BALSAMIQ MOCKUPS ............................................................................................... 26
ARMAZENAMENTO DE DADOS E PROGRAMAÇÃO .............................................. 27
ORACLE 10G ............................................................................................................... 27
PL/SQL DEVELOPER 11.0.......................................................................................... 27
DELPHI 7 ..................................................................................................................... 28
OBJECT PASCAL.................................................................................................... 28
RESULTADOS ......................................................................................................................... 29
3.1.
3.1.1.
3.1.2.
3.1.3.
3.1.4.
3.1.5.
3.1.6.
3.1.7.
3.2.
3.2.1.
3.2.2.
3.2.3.
3.2.4.
3.2.5.
3.2.6.
3.2.7.
3.2.8.
ANÁLISE DO SISTEMA ............................................................................................... 29
ENTREVISTA COM O USUÁRIO ................................................................................ 29
PROPOSTA DE PROJETO .......................................................................................... 29
DOCUMENTO DE REQUISITOS ............................................................................... 30
DIAGRAMA DE CASOS DE USO ............................................................................... 30
DESCRIÇÕES DOS CASOS DE USO.......................................................................... 31
DIAGRAMA DE CLASSES ........................................................................................... 32
PROTÓTIPO ................................................................................................................ 33
DESENVOLVIMENTO ................................................................................................. 34
TELA DE CONSULTA PRINCIPAL ............................................................................ 34
CADASTRO DE NOVO REGISTRO ............................................................................ 36
ALTERAR REGISTRO .................................................................................................. 38
EXPORTAR .................................................................................................................. 39
CRIAÇÃO E CONTROLE DE REGISTROS DE PREVISÃO ....................................... 40
PROCEDIMENTO DE PREVISÕES ............................................................................ 40
PROCEDIMENTO DE VÍNCULO DE FATURAS ÀS PREVISÕES ............................ 43
TRIGGERS ................................................................................................................... 45
4.
DIFICULDADES ENCONTRADAS ...................................................................................... 49
4.1.1.
4.1.2.
DIFICULDADES DE ANÁLISE ................................................................................... 49
DIFICULDADES DE DESENVOLVIMENTO ............................................................. 49
5.
CONCLUSÕES ......................................................................................................................... 51
6.
REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................... 52
APÊNDICES E/OU ANEXOS .......................................................................................................... 54
APÊNDICE 1 – QUESTÕES INICIAIS PARA A ENTEVISTA ................................................... 54
APÊNDICE 2 – PROPOSTA DE PROJETO .............................................................................. 55
APÊNDICE 3 – DOCUMENTO DE REQUISITOS .................................................................... 59
APÊNDICE 4 – DESCRIÇÕES DE CASOS DE USO ................................................................ 63
8
LISTA DE FIGURAS
FIGURA 1 - FASES DO RUP .................................................................................................................... 14
FIGURA 2 - PARADIGMA DE PROTOTIPAÇÃO DE PRESSMAN ................................................................... 20
FIGURA 3 - TELA INICIAL DO ASTAH COMMUNITY ................................................................................. 25
FIGURA 4 - EXEMPLO DE PROTÓTIPO UTILIZANDO O BALSAMIQ MOCKUPS ........................................... 26
FIGURA 5 - DIAGRAMA DE CASOS DE USO ............................................................................................ 31
FIGURA 6 - DESCRIÇÃO DO CASO DE USO "CONSULTAR PLANILHA" .................................................... 32
FIGURA 7 - DIAGRAMA DE CLASSES...................................................................................................... 33
FIGURA 8 - PROTÓTIPO DA TELA DE EDIÇÃO DE REGISTRO .................................................................... 34
FIGURA 9 - TELA PRINCIPAL SEM DETALHES (PROTÓTIPO) .................................................................... 35
FIGURA 10 - TELA PRINCIPAL DE SEM DETALHES (REAL) ...................................................................... 35
FIGURA 11 - TELA PRINCIPAL COM DETALHES (PROTÓTIPO) .................................................................. 35
FIGURA 12 - TELA PRINCIPAL DE COM DETALHE (REAL)........................................................................ 36
FIGURA 13 - TELA DE NOVO REGISTRO (PROTÓTIPO) ............................................................................. 37
FIGURA 14 - TELA DE CADASTRO DE NOVO REGISTRO (REAL) ............................................................... 37
FIGURA 15 - TELA DE ALTERAÇÃO DE REGISTRO (PROTÓTIPO) .............................................................. 38
FIGURA 16 - TELA DE ALTERAÇÃO DE REGISTRO (REAL) ....................................................................... 39
FIGURA 17 - RELATÓRIO EXPORTADO DO SISTEMA ............................................................................... 40
FIGURA 18 - CURSOR PARA DADOS DE NOMEAÇÃO ............................................................................... 41
FIGURA 19 - CURSOR PARA DADOS DE APLICAÇÃO ............................................................................... 41
FIGURA 20 – VALIDAÇÃO E UPDATE NA TABELA DE PREVISÃO .............................................................. 42
FIGURA 21 - INSERÇÃO NA TABELA (REGISTRO NOVO) .......................................................................... 43
FIGURA 22 - CURSOR PARA DADOS DE FATURA ..................................................................................... 44
FIGURA 23 - VALIDAÇÃO SE EXISTE PREVISÃO OU NÃO......................................................................... 44
FIGURA 24 - VALIDAÇÃO DE ITENS DE FATURA E INSERÇÃO ................................................................. 45
FIGURA 25 - TRIGGER PARA CONTROLE DE DATA DE VENCIMENTO DE NOMEAÇÕES .............................. 45
FIGURA 26 - TRIGGER PARA CONTROLE DE DATA DE VENCIMENTO DE APLICAÇÕES .............................. 46
FIGURA 27 - TRIGGER PARA CONTROLE DE STATUS DE APLICAÇÕES ..................................................... 46
FIGURA 28 - TRIGGER PARA CONTROLE DE STATUS DE FATURAS ........................................................... 47
FIGURA 29 - TRIGGER PARA CONTROLE DE STATUS EM NOMEAÇÕES ..................................................... 48
FIGURA 30 - TRIGGER PARA CONTROLE DE ALTERAÇÃO DE VALOR EM CONTRATO................................ 48
FIGURA 31 - CAPA DO DOCUMENTO DE PROPOSTA DE PROJETO ........................................................... 55
FIGURA 32 - SUMÁRIO DO DOCUMENTO DE PROPOSTA DE PROJETO ..................................................... 56
FIGURA 33 - PÁGINA 3 DO DOCUMENTO DE PROPOSTA DE PROJETO ..................................................... 57
FIGURA 34 - PÁGINA 4 DO DOCUMENTO DE PROPOSTA DE PROJETO ..................................................... 58
FIGURA 35 - CAPA DO DOCUMENTO DE REQUISITOS ............................................................................. 59
FIGURA 36 - ÍNDICE DO DOCUMENTO DE REQUISITOS ........................................................................... 60
FIGURA 37 - PÁGINA 3 DO DOCUMENTO DE REQUISITOS....................................................................... 61
FIGURA 38 - PÁGINA 4 DO DOCUMETO DE REQUISITOS ......................................................................... 62
FIGURA 39 - CAPA DA DESCRIÇÃO DO CASO DE USO CONSULTAR PLANILHA ...................................... 63
FIGURA 40 - ÍNDICE DA DESCRIÇÃO DO CASO DE USO CONSULTAR PLANILHA .................................... 64
FIGURA 41 - PÁGINA 3 DA DESCRIÇÃO DO CASO DE USO CONSULTAR PLANILHA ................................ 65
FIGURA 42 – CAPA DA DESCRIÇÃO DE CASO DE USO FILTRAR REGISTROS........................................... 66
FIGURA 43 - ÍNDICE DA DESCRIÇÃO DE CASO DE USO FILTRAR REGISTROS ......................................... 67
FIGURA 44 - PÁGINA 3 DA DESCRIÇÃO DO CASO DE USO FILTRAR REGISTROS ..................................... 68
FIGURA 45 - CAPA DA DESCRIÇÃO DO CASO DE USO FAZER LANÇAMENTO MANUAL .......................... 69
FIGURA 46 - ÍNDICE DA DESCRIÇÃO DO CASO DE USO FAZER LANÇAMENTO MANUAL ........................ 70
FIGURA 47 - PÁGINA 3 DA DESCRIÇÃO DO CASO DE USO FAZER LANÇAMENTO MANUAL ................... 71
FIGURA 48 - PÁGINA 4 DA DESCRIÇÃO DO CASO DE USO FAZER LANÇAMENTO MANUAL ................... 72
FIGURA 49 - CAPA DA DESCRIÇÃO DO CASO DE USO ALTERAR PREVISÃO ........................................... 73
FIGURA 50 - ÍNDICE DA DESCRIÇÃO DO CASO DE USO ALTERAR PREVISÃO ......................................... 74
FIGURA 51 - PÁGINA 3 DA DESCRIÇÃO DO CASO DE USO ALTERAR PREVISÃO ..................................... 75
9
LISTA DE SIGLAS E ABREVIATURAS
COMEX Comercialização Exterior
IBM
International Business Machines
IDE
Integrated Development Environment
LTDA
Limitada
OMG
Object Management Group
POO
Programação Orientada a Objetos
RAD
Rapid Application Development
RUP
Rational Unified Process
SAP
Systeme, Anwendungen und Produkte in der Datenverarbeitung
SGBD
Sistema de Gerenciamento de Bando de Dados
SQL
Structured Query Language
UFMT
Universidade Federal de Mato Grosso
UML
Unified Modeling Language
VCL
Visual Component Library
10
RESUMO
O presente relatório tem por objetivo apresentar as atividades realizadas
durante a disciplina de Estágio Supervisionado do curso de Sistemas de Informação da
Universidade Federal de Mato Grosso, do discente Sergio Augusto Cola Dias, na
empresa Amaggi Exportação e Importação LTDA. São descritos os conceitos e
métodos de análises, técnicas e ferramentas de desenvolvimento de software, para a
criação de um sistema de previsão de pagamentos, afim de facilitar e aprimorar a
automação do trabalho das áreas de Execução e Engenharia Financeira da empresa. O
sistema foi desenvolvido utilizando o SGBD Oracle, programação em banco de dados
com o PL/SQL Developer para controle de regras de negócio, a ferramenta Delphi,
para criação de telas, exibição de dados, geração de relatórios e definição de layouts.
Todos os conceitos, métodos e ferramentas utilizados para o desenvolvimento desta
aplicação, serão descritos ao decorrer do relatório.
11
INTRODUÇÃO
O presente relatório tem por objetivo exibir as atividades desenvolvidas na
empresa Amaggi Exportação e Importação LTDA., em cumprimento à matéria de
estágio supervisionado, do curso de Sistemas de Informação da Universidade Federal
de Mato Grosso (UFMT).
A Amaggi é uma empresa do ramo do agronegócio e tem suas principais
atividades nas áreas de originação, comercialização de grãos e insumos, produção
agrícola e de sementes de soja, operações portuárias, transporte fluvial e geração e
comercialização de energia elétrica, mas o destaque da empresa se dá pela exportação
de commodities. Para isto, são carregados navios com os produtos, que são levados aos
seus destinos e, assim, distribuídos.
O projeto tem como foco desenvolver uma aplicação que substitua a existente
e que faça o controle e apresentação de previsões de pagamento coerentes para, assim,
tornar mais ágil e fácil o trabalho das equipes de execução e engenharia financeira da
empresa. Para a criação deste sistema de previsão de pagamentos, são utilizados dois
outros sistemas base para gerar as informações.
O sistema de Comercialização Exterior (COMEX) é responsável por todas as
entradas de dados, desde a criação de contratos, nomeações de navios e aplicações de
contratos, até a emissão de faturas para as contrapartes. As previsões de pagamento
são criadas no momentos em que as ações de nomeação de navio ou aplicação de
contratos são feitas. Assim que as faturas são criadas no sistema COMEX, suas
informações são enviadas ao segundo sistema, o SAP, que lê todas estas informações,
valida-as, faz a movimentação nas contas contábeis e retorna se a ação teve êxito ou
não.
O sistema existente, feito na plataforma web, apresenta falhas em regras de
cálculo, funcionalidades desnecessárias, exige muito trabalho manual da parte do
usuário e apresenta lentidão no carregamento dos dados. No fluxo atual, muitas vezes
o usuário deve fazer as nomeações de navios e aplicações de contratos e,
posteriormente, criar a previsão manualmente na planilha, devido às falhas de regra.
A planilha atual não apresenta controle e atualização da previsão quando sua origem
sofre alguma alteração. Ao criar uma fatura correspondente a uma previsão, o usuário
deve informá-la manualmente na planilha. Outro problema apresentado é que uma
12
previsão de pagamento pode ter várias faturas e a planilha atual só permite a inserção
de uma fatura por previsão.
Com base nos pontos apresentados acima, foi proposto o desenvolvimento de
um sistema desktop que atenda todas as necessidades dos usuários, utilizando a
ferramenta RAD padrão da empresa, o Delphi. O novo sistema de previsão de
pagamento permitirá que os usuários façam consultas mais rápidas, com todos os
detalhes necessários e de forma totalmente automatizada. A partir do momento em que
o usuário fizer as nomeações de navio e aplicações de contrato, o sistema criará,
automaticamente, as previsões de pagamento e, ao fazer as faturas, as vinculará às
previsões correspondentes. O sistema apresentará funcionalidades novas para
diferenciação de “faturas de compensação”, edição facilitada de dados, além de um
relatório de conferência para usuários do departamento financeiro.
Na primeira seção deste relatório são apresentadas desde tecnologias,
embasamento teórico, metodologia de desenvolvimento, conceito de prototipação de
software, de bancos de dados e de programação.
Na segunda seção serão apresentadas matérias, técnicas e métodos utilizados
para o desenvolvimento da aplicação. Serão apresentadas as ferramentas de
desenvolvimento e suas linguagens, bem como as de modelagem e prototipação.
Na terceira seção serão apresentados os resultados obtidos na análise e
desenvolvimento da aplicação, seguidos pela descrição de dificuldades encontradas no
projeto e conclusões finais, na quarta e quinta seção, respectivamente. Por fim, serão
apresentados os artefatos criados para desenvolvimento do projeto e as telas do
sistema.
13
1. REVISÃO DE LITERATURA
Nesta seção
são
apresentados
conceitos
e
técnicas
utilizadas
no
desenvolvimento deste projeto de estágio e, também, a fundamentação teórica. O
aprendizado que o curso de Sistemas de Informação proporcionou foi base principal
para a concretização do projeto.
1.1. ENGENHARIA DE SOFTWARE
A engenharia de software é uma disciplina relacionada com todos os aspectos da
produção de software, desde os estágios iniciais de especificação do sistema até a sua
manutenção, depois de entrar em operação (Sommerville, 2007).
Bauer (1969 apud Pressman, 2011) afirma que a engenharia de software é o
estabelecimento e o emprego de sólidos princípios de engenharia de modo a obter
software de maneira econômica, que seja confiável e funcione de forma eficiente em
máquinas reais. Esta definição, apesar de superficial – pois não cita a importância de
prazos, qualidade de software e satisfação do cliente, por exemplo – nos dá uma base
para entendermos do que se trata a engenharia de software.
A IEEE (1992 apud Pressman, 2011), tem uma definição mais abrangente e diz
que engenharia de software é a aplicação de uma abordagem sistemática, disciplinada
e quantificável no desenvolvimento, na operação e na manutenção de software, isto é,
a aplicação de engenharia de software.
Este projeto utilizou técnicas e conceitos de engenharia de software que serão
descritas no decorrer deste trabalho.
1.1.1. RATIONAL UNIFIED PROCESS
Segundo a Rational® Software Corporation, uma família de software da IBM,
o Rational Unified Process (RUP) é um Processo de Engenharia de Software que
fornece abordagens disciplinadas para a atribuição de tarefas e responsabilidades
dentro de uma organização de desenvolvimento. Seu objetivo é assegurar uma
14
produção de software de alta qualidade que atenda as necessidades dos usuários finais,
dentro de uma agenda e orçamento previstos.
A empresa diz, ainda, que o RUP é um guia de como utilizar, efetivamente, o
Unified Modeling Language (UML).
O RUP permite que todos os times do projeto tenham acesso a mesma base de
conhecimento, compartilhando da mesma linguagem e processo de desenvolvimento
de software, não importando a área de atuação das equipes (design, desenvolvimento,
testes, gerenciamento entre outras), aumentando a produtividade.
O ciclo de vida do software é dividido em quatro fases, conforme ilustrado na
figura 1: concepção, elaboração, construção e transição. Cada fase é concluída com
um marco bem definido, objetivos devem ser alcançados e decisões tomadas.
Figura 1 - Fases do RUP
Fonte: http://www.infoescola.com/engenharia-de-software/rup/
1.1.1.1. FASE DE CONCEPÇÃO
Nesta primeira fase, é necessário identificar as entidades que estarão em
contato com o sistema e definir seus papéis de uma forma abstrata. Esta fase é
importante para definir metas e prazos do projeto, por meio dos marcos, identificar
casos de uso do sistema, definir o escopo do projeto e estimar os recursos necessários
para o desenvolvimento do software.
Durante esta fase, é recomendada a criação dos seguintes artefatos:

Documento de visão;
15

Modelo de casos de uso (inicial);

Glossário inicial do projeto;

Casos de negócio, que incluem contextos de negócio e critérios de sucesso;

Avaliação inicial de riscos;

Plano de projeto, mostrando as fases e interações;

Modelo de negócio (se necessário);

Um ou mais protótipos.
Apesar de recomendado, não é obrigatório passar por todas as atividades e criar
todos os artefatos indicados. Esta é uma decisão que cabe ao gestor, dependendo da
realidade do negócio e necessidade do cliente.
O primeiro e um dos principais marcos do projeto aparece ao final da sua fase
de concepção. Ele é chamado, em sua tradução literal, de “Marco dos Objetivos do
Ciclo de Vida” (Lifecycle Objectives). Para que esta fase seja aprovada, serão aplicados
alguns critérios de avaliação, com o risco de o projeto ser cancelado ou totalmente
repensado caso não passe:

Consentimento dos envolvidos na definição do escopo, prazos e custos de
projeto;

Entendimento dos requisitos evidenciados pelos casos usos iniciais;

Credibilidade dos prazos, custos, prioridades, riscos e procedimentos de
desenvolvimento;

Profundidade e amplitude dos protótipos desenvolvidos;

Despesas planejadas versus despesas realizadas.
1.1.1.2. FASE DE ELABORAÇÃO
Nesta fase é definido o segundo marco: o “Marco da Arquitetura do Ciclo de
Vida” (Lifecycle Architecture), que tem por objetivo analisar o domínio do problema,
desenvolver o plano do projeto, estabelecer a arquitetura e mitigar elementos de risco.
Ao final desta fase, o processo de engenharia é considerado concluído e o próximo
passo é decidir se o projeto seguirá parar as próximas fases; construção e transição. Os
artefatos resultantes desta fase incluem:
16

Modelo de casos de uso (todos os casos de uso e atores identificados e
descrição de alguns casos de uso);

Requisitos funcionais e não funcionais;

Descrição de arquitetura do software;

Protótipo funcional;

Lista revisada de riscos e casos de uso;

Manual de usuário preliminar.
Para decidir se o projeto segue para as próximas fases ou é cancelado (ou
repensado), a avaliação para a fase de elaboração se dá pelas respostas às seguintes
perguntas:

A visão do produto é estável?

A arquitetura é estável?

O plano de construção é suficientemente detalhado e preciso?

As entidades envolvidas estão de acordo com o que foi apresentado até aqui?

Despesas planejadas versus despesas realizadas são aceitáveis?
1.1.1.3. FASE DE CONSTRUÇÃO
A terceira fase do projeto, segundo a Rational®, é o processo de produção com
ênfase no gerenciamento de recursos e controle de operações, com o objetivo de
otimizar custos, além de qualidade e custo de software. Nesta fase todos os
componentes construídos devem ser testados, a fim de decidir se o software e os
usuários estão preparados para entrarem em operação real.
Ao final deste marco – o “Marco da Capacidade Operacional Inicial” (Initial
Operational Capability), o sistema está pronto para ser liberado ao usuário final e
precisa atender os seguintes pontos:

Produto e plataforma devem estar adequadamente integrados;

O manual do usuário deve estar pronto.
17
Caso este marco não passe na avaliação, os prazos são estendidos. A avaliação é
feita pelas respostas às seguintes perguntas:

O sistema está estável para ser liberado aos usuários?

As entidades envolvidas estão preparadas para a transição?

Despesas planejadas versus despesas realizadas ainda são aceitáveis?
1.1.1.4. FASE DE TRANSIÇÃO
A quarta e última fase define o marco de “Liberação do Produto” (Product
Release). Nesta fase, o produto é liberado aos usuários para que possam fazer a
primeira utilização, onde podem-se encontrar bugs não previstos, elaborar novas
funcionalidades e sugerir melhorias nas funcionalidades desenvolvidas. É uma fase de
muita interação entre os usuários do sistema e os times de desenvolvimento, pois é
liberada a então chamada “versão beta” do sistema, além de haver treinamento dos
usuários e divulgação do sistema.
Os objetivos desta fase são:

Garantir que o usuário consiga utilizar o sistema sem acompanhamento;

Garantir que haja consentimento das entidades envolvidas.
Neste ponto, é avaliado se o sistema atende o que era esperado e se será necessário
começar outro ciclo de desenvolvimento. Para isto, é necessário que as perguntas
abaixo sejam respondidas:

O usuário final está satisfeito?

Despesas planejadas versus despesas realizadas ainda são aceitáveis?
1.1.1.5. INTERAÇÕES
Cada marco do projeto pode, ainda, ser dividido em interações, que permite
que o sistema seja construído de forma gradual até ser alcançado o produto final. A
abordagem interativa tem alguns benefícios quando comparado ao modo tradicional:

Riscos são identificados mais cedo;

Facilidade em mudanças;
18

Maior nível de reuso;

O time de projeto pode aprender ao longo do caminho;

No geral, o produto final tem mais qualidade.
1.1.2. UNIFIED MODELING LANGUAGE
De acordo com Martin Fowler (2005), UML é uma família de notações gráficas
apoiada por um meta-modelo único, que ajuda na descrição e no projeto de sistemas
de software, particularmente daqueles construídos utilizando o estilo orientado a
objetos (OO).
Para Guedes (2009), o UML é uma linguagem visual utilizada para modelar
softwares baseados no paradigma de orientação a objetos. É uma linguagem de
modelagem de propósito geral que pode ser aplicada a todos os domínios de aplicação.
Guedes reforça que a UML não é uma linguagem de programação, mas, sim, de
modelagem que auxilia os engenheiros de softwares a modelarem o sistema,
identificando suas características, requisitos e interações necessárias.
Com o surgimento do UML 2.0 muitos diagramas originais sofreram uma retenção
ou expansão. Na versão 2.0, a linguagem evoluiu para ajudar engenheiros e
modeladores de sistemas a detalhar mais todas as etapas do processo de criação de
software. Segundo a Object Management Group (2005), existem treze tipos de
diagramas, divididos em categorias, sendo seis diagramas para estrutura, três para
comportamento e quatro para interações, conforme descrito abaixo:
Diagramas de estrutura:

Diagrama de classes

Diagrama de Objetos

Diagrama de Componente

Diagrama de Estrutura Composta

Diagrama de Pacotes

Diagrama de Implantação
19
Diagramas de Comportamento:

Diagrama de Casos de Uso

Diagrama de Atividades

Diagrama de Estado de Máquina
Diagramas de Interação:

Diagrama de Sequência

Diagrama de Comunicação

Diagrama de Tempo

Diagrama de Visão Geral
Com a criação de diagramas, os envolvidos no projeto podem ter uma visão mais
completa do sistema, facilitando tanto o entendimento ao construí-lo, quanto ao
modificá-lo, se necessário.
Na seção a seguir, é mostrada uma parte muito importante em um projeto de
desenvolvimento de software: a prototipação.
1.1.3. PROTOTIPAÇÃO
Segundo Guedes (2009), a prototipação é uma técnica bastante popular e de
fácil aplicação, que consiste em desenvolver rapidamente um “rascunho” do que seria
o sistema de informação quando ele estivesse finalizado. Um protótipo, normalmente,
apresenta pouco mais do que a interface do software a ser desenvolvido, ilustrando
como as informações seriam inseridas e recuperadas no sistema, apresentando alguns
exemplos com dados fictícios dos quais seriam os resultados apresentados pelo
software, principalmente em forma de relatórios. O autor diz, ainda, que o processo de
prototipação pode evitar que, depois de meses ou, até mesmo, anos de
desenvolvimento, ao implantar o sistema, seja descoberto que o software não atende
as necessidades do cliente. A prototipação pode, também, mostrar falhas de
comunicação nas entrevistas iniciais.
Sommerville (2007) define um protótipo como uma versão inicial de um
sistema de software usado para demonstrar conceitos, experimentar opções de projeto
e, geralmente, conhecer mais sobre o problema e suas possíveis soluções.
20
O paradigma da prototipação, por Pressman (2011), figura 2, é apresentado em
uma sequência de ações que começam com a Comunicação, seguida pelo Projeto
Rápido, Modelagem de Projeto rápido, Construção de um protótipo e, fechando o
ciclo, Emprego, Entrega e Realimentação.
Na fase de Comunicação, são definidos os objetivos principais do sistema e é
identificado se há necessidade de melhor definição em alguma das áreas. O Projeto
Rápido apresenta os aspectos palpáveis para o cliente, como o layout. Esta fase tem
como consequência a Modelagem de Projeto Rápido, que podemos chamar de
protótipo. A última fase é a fase de feedback do sistema, onde a equipe de
desenvolvimento pode apresentar o protótipo para verificar se as necessidades do
cliente estão sendo atendidas.
Figura 2 - Paradigma de prototipação de Pressman
Explicados os conceitos de planejamento e modelagem do projeto, são
apresentadas, abaixo, a definição das ferramentas utilizadas para a implementação
deste software.
21
1.1.4. BANCO DE DADOS
Segundo Ramakrishnan (1999), um banco de dados é uma coleção de dados,
tipicamente descrevendo as atividades de uma ou mais organizações relacionadas. O
autor define, também, o Sistema de Gerenciamento de Banco de Dados (SGBD) como
um software desenhado para auxiliar na manutenção e utilizar grandes coleções de
dados, levando em consideração que os dados de um sistema em utilização crescem
rapidamente.
A Oracle (2016), diz que um banco de dados é uma coleção de informações
tratadas como uma unidade e tem como propósito coletar, armazenar e recuperar as
informações relacionadas para uso de aplicações de bancos de dados. SGBD é
definido, pela Oracle (2016), como um software que controla o armazenamento,
organização e recuperação de dados.
A implementação das regras de negócio deste sistema foi feita, em sua grande
maioria, via procedimentos em banco de dados, utilizando a linguagem PL/SQL, da
Oracle.
1.1.5. PROGRAMAÇÃO ORIENTADA A OBJETOS
Segundo Farinelli (2007), a Orientação a Objetos é uma tecnologia que enxerga
os sistemas como sendo uma coleção de objetos integrantes, permitindo aplicar o reuso
e extensibilidade dos softwares e, ainda, que Orientação a Objetos consiste em
considerar os sistemas computacionais como uma coleção de objetos que interagem
de maneira organizada.
De acordo com Schildt (2014), a Programação Orientada a Objetos é uma
forma poderosa de programação que combinou as melhores ideias da programação
estruturada e as combinou com diversos novos conceitos. Para auxiliar na POO, todas
a linguagens de programação apresentam alguns traços em comum: classe, objeto,
encapsulamento, polimorfismo e herança, que o autor define conforme abaixo.
22
1.1.5.1. CLASSE
Uma classe é um modelo que define a forma de um objeto, especificando as
variáveis que contém e os métodos que opera. A classe é, essencialmente, um conjunto
de planos de como construir um objeto, é uma abstração lógica.
1.1.5.2. OBJETO
O objeto nada mais é do que a “materialização” da classe. Diferentemente da
classe, o objeto, assim que instanciado, “ganha vida” e pode executar as operações
predefinidas pela sua classe.
1.1.5.3. ENCAPSULAMENTO
Encapsulamento é um mecanismo de programação que une o código e os dados
que manipula e os mantém reservados dentro da classe, evitando que haja
interferências externas e o uso inapropriado.
Estes métodos e atributos podem ser definidos como públicos ou privados.
Quando privados, eles são protegidos dentro da classe. Quando públicos, outras partes
do programa podem acessá-los.
1.1.5.4. POLIMORFISMO
Polimorfismo é uma qualidade que permite que uma interface acesse uma
classe geral de ações. O conceito de polimorfismo pode ser expressado pela frase “uma
interface, diversos métodos”, o que significa que é possível desenhar uma interface
genérica para um grupo de atividades relacionadas.
1.1.5.5. HERANÇA
Herança é o processo no qual um objeto pode adquirir propriedades de outro.
Utilizando esta característica da POO, os objetos precisam apenas definir quais as
qualidades que o diferem da classe genérica.
23
Os paradigmas da POO foram utilizados na ferramenta Delphi, que é uma das
principais ferramentas utilizadas nos sistemas legado da empresa. Sua definição é
apresentada no tópico 2.3.3. deste arquivo.
24
2. MATERIAS, TÉCNICAS E MÉTODOS
Nesta seção, são abordadas as tecnologias, ferramentas e técnicas que foram
utilizadas para o desenvolvimento das atividades de análise e desenvolvimento para
atendimento deste estágio.
O desenvolvimento da parte estrutural do sistema foi feito utilizando a
tecnologia Delphi e a implementação de regras de negócio foram feitas via
procedimentos em banco de dados utilizando a ferramenta PL/SQL Developer, versão
11.1, e os dados armazenados no banco de dados Oracle 10g.
Nos próximos tópicos serão abordadas todas as técnicas e tecnologias que
auxiliaram no desenvolvimento do software; elicitação de requisitos, prototipação e
desenvolvimento, respectivamente.
2.1. ELICITAÇÃO DE REQUISITOS
Para identificar as dificuldades dos usuários com o sistema existente, bem
como entender suas necessidades para o novo sistema, considerando que a empresa
facilita bastante a conversa entre analistas e usuários, não necessitando de reuniões
formais, foi feita uma entrevista informal, porém seguindo um pequeno roteiro para
ter um ponto de partida e manter o foco da conversa. Em complemento a entrevista,
foram feitos os casos de uso para que sejam ilustradas as ações dos usuários em relação
ao sistema. Ambas as técnicas são definidas nos próximos tópicos.
2.1.1. ENTREVISTA
Segundo Sommerville (2007), entrevistas formais ou informais com os
stakeholders do sistema fazer parte da maioria dos processos de engenharia de
software. O autor diz que as entrevistas são úteis para obter um entendimento geral
sobre o que os stakeholders fazer, como eles podem interagir com o sistema e as
dificuldades que enfrentam ao utilizar os sistemas atuais.
A entrevista é uma técnica simples e que, geralmente, gera bons resultados,
pois, por mais que a conversa comece utilizando um roteiro, os stakeholders acabam
25
se abrindo mais em relação ao que esperam do sistema e pontos que, possivelmente,
não estavam previstos são tocados, melhorando ainda mais a percepção da equipe de
desenvolvimento sobre o sistema.
2.1.2. CASOS DE USO
De acordo com Fowler e Scott (1997 apud Sommerville, 2007), um caso de uso
engloba um conjunto de cenários, sendo cada cenário um encadeamento isolado ao
longo do caso de uso. Se um cenário incluir vários encadeamentos, existirá um cenário
para interação normal e mais cenários para cada possível exceção.
Guedes (2009) diz que o diagrama de casos de uso é o diagrama mais geral e
informal da UML, utilizado, normalmente, nas fases de levantamento e análise de
requisitos do sistema, embora venha a ser consultado durante todo o processo de
modelagem e possa servir de base para outros diagramas.
O diagrama de casos de uso do presente sistema foi criado utilizando a
ferramenta Astah Community. Na figura 3 a tela inicial do software é mostrada.
Figura 3 - Tela inicial do Astah Community
Ainda antes de começar o desenvolvimento, de fato, foi feita a prototipação do
sistema para ilustrar um modelo próximo à realidade. Foi utilizada a ferramenta
Balsamiq Mockups, descrita a seguir.
26
2.2. BALSAMIQ MOCKUPS
Segundo a Balsamiq (2016), o Balsamiq Mockups é uma ferramenta de desenho
de interface para criar wireframes (também conhecidos como mockups ou protótipos
de baixa fidelidade). A ferramenta ajuda a gerar rascunhos digitais de ideias de produto
afim de facilitar as discussões e entendimentos antes de começar a codificação. Na
figura 4 é apresentado um exemplo de prototipação de software.
Figura 4 - Exemplo de protótipo utilizando o Balsamiq Mockups
Fonte: Balsamiq (2016)
O Balsamiq Mockups oferece uma vasta biblioteca de componentes que vai de
botões até painéis, menus, formulários, mídia, símbolos, entre outros. A ferramenta é
de fácil utilização por utilizar a tecnologia drag-and-drop.
Na próxima seção, são citadas as tecnologias de armazenamento de dados e
programação em banco de dados, utilizando ferramentas da Oracle.
27
2.3. ARMAZENAMENTO DE DADOS E PROGRAMAÇÃO
Nos próximos tópicos serão abordadas as ferramentas para armazenamento e
controle de dados e desenvolvimento de software.
2.3.1 ORACLE 10G
O Oracle 10g, da Oracle, é primeiro SGBD desenhado para a utilização de
computação em grid, o que melhora a facilidade de manipulação dos dados e,
consequentemente, a qualidade do serviço.
Tendo a sua primeira versão liberada em janeiro de 2004, o Oracle 10g
proporciona diversas vantagens que alteram o jeito em que os data centers operam. A
computação em grades representa a culminação de estratégias de longo prazo em
reduções dramáticas no custo de computação, ao passo em que aumenta sua qualidade.
Para a implementação de regras de negócio, procedimentos de cálculo e
inteligência de sistema, foi utilizada a ferramenta PL/SQL Developer, também da
Oracle, descrita abaixo.
2.3.2. PL/SQL DEVELOPER 11.0
Segundo a Allround Automations (2016), o PL/SQL Developer é um Ambiente
de Desenvolvimento Integrado (do inglês, Integrated Development Environment, IDE)
que é especificamente utilizado para o desenvolvimento de procedimentos para bancos
de dados Oracle.
Esta ferramenta apresenta algumas características facilitadoras para o
desenvolvimento em banco, como, por exemplo, assistente de código, dicas de
compilação, ferramenta de endentação automática, debugger integrado, entre outras.
O PL/SQL foi utilizado para o desenvolvimento de procedimentos
responsáveis pelo controle de regras de negócio. Os procedimentos são executados por
Jobs com um tempo pré-definido. O desenvolvimento de layout de sistema, exposição
de dados e de relatório utilizaram a ferramenta Delphi, descrito no próximo tópico, que
é a principal ferramenta de desenvolvimento dos sistemas legado da empresa.
28
2.3.3. DELPHI 7
De acordo Leão (2003), o Delphi 7 é uma ferramenta de desenvolvimento
rápido de aplicações (RAD), criada pela Borland Software Corporation, que alia a
faciliade do Visual Basic ao poder da linguagem Object Pascal. O Delphi aprsenta uma
biblioteca de componentes inteiramente desenvolvida em Object Pascal, a VCL
(Visual Component Library), na qual cada componente é representado por uma classe.
2.3.3.1. OBJECT PASCAL
Segundo o Guia da Linguagem Object Pascal, da Borland Software
Corporation, o Object Pascal é uma linguagem de programação de alto nível que
suporta tanto a programação estruturada, quanto a POO. Seus benefícios incluem
códigos de fácil leitura, rápida compilação e a utilização de múltiplas unidades de
arquivos para programação modular.
29
3. RESULTADOS
Nesta disciplina de estágio supervisionado, o objetivo era desenvolver um sistema
que fizesse previsões de pagamentos para cada operação de nomeação de navio e/ou
aplicação de contrato da empresa, afim de facilitar o controle para o fluxo de baixa da
empresa.
Nesta seção são apresentados os resultados obtidos com a utilização dos conceitos,
tecnologias e ferramentas apresentadas nas seções anteriores.
3.1. ANÁLISE DO SISTEMA
Nesta fase, alguns artefatos foram produzidos como resultado da análise do sistema
a ser desenvolvido, conforme sugere o processo unificado da Rational®.
3.1.1. ENTREVISTA COM O USUÁRIO
Para ajudar no entendimento das dificuldades encontradas utilizando o sistema
atual, bem como para esclarecimento das necessidades dos usuários para o novo
sistema, foram feitas entrevistas de cunho indireto, apesar de haver um roteiro para
iniciação da conversa e, também, para manter o foco nas características do sistema. As
perguntas iniciais da entrevista podem ser verificadas no Apêndice 1.
3.1.2. PROPOSTA DE PROJETO
O documento de proposta de projeto é fundamental para que sejam
identificados, junto aos stakeholders, quais são os objetivos do projeto, as principais
dificuldades com o sistema atual, qual é o escopo de atuação do novo sistema, bem
como o seu não-escopo, premissas e restrições.
A proposta de projeto nos fornece uma visão geral do que se trata o sistema e,
também, uma noção inicial dos requisitos do sistema. O documento pode ser visto no
Apêndice 2.
30
3.1.3. DOCUMENTO DE REQUISITOS
No Apêndice 3, é apresentado o documento de requisitos. Este é um dos
principais artefatos da análise de sistemas, pois é a apresentação oficial do que os
desenvolvedores devem implementar. Deve incluir os requisitos de usuário e uma
especificação detalhada dos requisitos de sistema (Sommerville, 2007).
3.1.4. DIAGRAMA DE CASOS DE USO
O diagrama de casos de uso foi desenhado para que fique clara a forma que os
usuários irão interagir com o sistema, apresentando suas principais funcionalidades,
conforme é apresentado na figura 5.
Todos os usuários envolvidos podem executar a ação Visualizar Planilha, pois
é a principal funcionalidade do sistema, bem como filtrar registros. A ação de Alterar
Registro, só pode ser acessada pelos analistas do departamento de Execução. A
alteração de um registro tem suas limitações, isto é, como os dados das previsões são
oriundos de contratos fechados, nomeações de navios e aplicações de contratos, o
usuário não pode modificar nenhum dado sensível a estas três funcionalidades do
sistema, sendo permitida, assim, apenas a alteração de datas de vencimento e status. O
lançamento manual de registros pode ser feito apenas pelo Gerente do departamento
de execução. Esta funcionalidade foi solicitada para caso haja alguma falha nos
procedimentos regulares, levando em consideração que todos os procedimentos e
regras de negócios são controlados via banco de dados.
31
Figura 5 - Diagrama de Casos de Uso
3.1.5. DESCRIÇÕES DOS CASOS DE USO
A descrição de um caso de uso tem o objetivo de detalhar os passos da ação do
usuário, apresentando seus atores, premissas, fluxos principais, alternativos e de
exceção e, também, os resultados da ação. A figura 6 demonstra a descrição do caso
de uso “Consultar Planilha”, que é a ação principal do usuário no sistema.
Na fase de análise do sistema, foram desenvolvidos artefatos de descrição de casos
de uso para cada uma das ações do usuário no sistema, conforme apresentado no
Apêndice 4.
32
Figura 6 - Descrição do Caso de Uso "Consultar Planilha"
3.1.6. DIAGRAMA DE CLASSES
Segundo Guedes (2009), o diagrama de classes, como o próprio nome diz, define
a estrutura de classes utilizadas pelo sistema, determinando os atributos e métodos que
cada classe tem, além de estabelecer como as classes se relacionam e trocam
informações entre si.
O Diagrama de Classes do presente sistema, apresentado abaixo, na figura 6,
demonstra características de cada classe e as relações entre si, começando pelas ações
de usuário com as validações de login e permissões, detalhando os atributos de uma
previsão e, posteriormente de suas faturas.
33
Figura 7 - Diagrama de Classes
3.1.7. PROTÓTIPO
Para este projeto, foram desenvolvidos protótipos descartáveis das telas do sistema
e apresentados ao usuário para melhor esclarecimento de como o sistema deveria
funcionar quando pronto e levantar requisitos não previstos na entrevista.
Foram construídos protótipos para cada tela do sistema, apresentados no Apêndice
5. Na figura 7 é apresentado um exemplo do protótipo criado para a tela de edição de
registro. Como demonstrado, o sistema limita o usuário a fazer apenas modificações
em que não há impacto nos calculos de previsão e nem alteração de dados sensíveis,
evitando inconsistência entre os dois sistemas.
34
Figura 8 - Protótipo da tela de edição de registro
3.2. DESENVOLVIMENTO
Ao fim do término da fase de análise, foi dado o início da fase de desenvolvimento
para colocar tudo o que foi acordado com os stakeholders em prática. As telas do
sistema estão representadas nos tópicos abaixo.
3.2.1. TELA DE CONSULTA PRINCIPAL
A tela principal do sistema são exibidos os dados de previsão, como contrato,
quantidade e valo da previsão, datas de aplicação e vencimento, produto, navio, entre
outros. A tela disponibiliza, também, botões de novo registro, exportação e
processamento (para atualizar os registros). O usuário tem a opção de ver detalhes da
previsão, para quando há faturas vinculadas.
Abaixo é demonstrada a comparação entre o que foi prototipado para o usuário
e seu resultado final. As figuras 9 e 10 representam o protótipo da tela principal sem
35
detalhamento e o resultado real da tela, respectivamente. As figuras 11 e 12 mostram
a mesma tela com detalhes de fatura.
Figura 9 - Tela principal sem detalhes (protótipo)
Figura 10 - Tela principal de sem detalhes (real)
Figura 11 - Tela principal com detalhes (protótipo)
36
Figura 12 - Tela principal de com detalhe (real)
3.2.2. CADASTRO DE NOVO REGISTRO
A funcionalidade de lançamento manual de registros foi criada apenas para caso
haja alguma falha de sistema, como comunicação do banco com o sistema. Quando o
usuário, com permissão para tal, tenta criar um novo registro, é necessário informar o
contrato em que esta previsão será vinculada e o sistema apenas deixa criar aplicações
que existem para o contrato, de forma a manter sempre a previsão em linha com o que
acontece no sistema. As figuras 13 e 13 demonstram seu protótipo e a tela real,
respectivamente.
37
Figura 13 - Tela de novo registro (protótipo)
Figura 14 - Tela de cadastro de novo registro (real)
38
3.2.3. ALTERAR REGISTRO
Como o sistema preza em manter os dados de previsão consistentes com o que é
apresentado no sistema, a tela de alteração de registro mantém todos os campos
sensíveis bloqueados, permitindo apenas a alteração da data de vencimento e status da
previsão. As figuras 15 e 16 demonstram a prototipação e a tela real de alteração de
registros, respectivamente.
Figura 15 - Tela de alteração de registro (protótipo)
39
Figura 16 - Tela de alteração de registro (real)
3.2.4. EXPORTAR
Os usuários podem exportar os dados de previsão para Excel, afim de que possam
fazer suas análises e conferências em uma plataforma mais maleável. O resultado do
relatório é apresentado na figura 12.
40
Figura 17 - Relatório exportado do sistema
3.2.5. CRIAÇÃO E CONTROLE DE REGISTROS DE PREVISÃO
A criação e o controle das previsões de pagamento são feitos via procedimento em
banco de dados. As tabelas que armazenam os dados de nomeação de navio e aplicação
de contrato possuem uma flag de controle para informar se a previsão de pagamento
já foi criada para aquele registro.
Os procedimentos são executados por um job no banco de dados, a cada minuto,
ou podem ser executados manualmente pelo botão “Processar”, na tela. Existem dois
procedimentos para controle de previsões: um exclusivo para previsões de pagamento
e outro para inserção de registros de previsão que não são originados em aplicações
regulares, como por exemplo, faturas. Estes dois procedimentos são explicados nos
dois próximos tópicos.
3.2.6. PROCEDIMENTO DE PREVISÕES
O que este procedimento faz é levantar os registros de nomeações e aplicações
de contrato, por meio de dois cursores, demonstrados nas figuras 13 e 14,
respectivamente, que possuem o status de “previsão não criada”.
41
Figura 18 - Cursor para dados de nomeação
Figura 19 - Cursor para dados de aplicação
Após levantar os dados, o sistema faz validações para ver se é um registro novo
ou se ele já existe na tabela de previsões de pagamento para, enfim, inseri-lo ou
42
editá-lo. Este controle é demonstrado na figura 15 e a inserção na figura 16. As
mesmas validações são feitas utilizando o cursor de aplicações.
Figura 20 – Validação e update na tabela de previsão
43
Figura 21 - Inserção na tabela (registro novo)
3.2.7. PROCEDIMENTO DE VÍNCULO DE FATURAS ÀS PREVISÕES
O procedimento de criação de vínculo de faturas às previsões olha para a tabela de
faturas, ao invés das tabelas de aplicações, afim de que sejam identificadas as faturas
criadas para as previsões feitas e, também, para atender a previsão de custos (bancos,
taxas portuárias, entre outros), pois não são definidos no momento da nomeação ou
aplicação do contrato. As previsões, neste caso, são criadas a partir do momento em
que as faturas são contabilizadas.
Analogamente ao procedimento de criação de previsão para nomeações e
aplicações, existe uma flag na tabela de faturas que possibilita a identificação de quais
já estão no sistema de previsão. Ao levantar os dados da fatura (figura 17), o sistema
identifica se esta tem relacionada a alguma previsão existente no sistema (figura 18),
se sim, o procedimento inclui esta fatura para a previsão, se não (caso custos) o sistema
cria a previsão (figura 18) e vincula a fatura a ela (figura 19).
44
Figura 22 - Cursor para dados de fatura
Figura 23 - Validação se existe previsão ou não
45
Figura 24 - Validação de itens de fatura e inserção
3.2.8. TRIGGERS
O controle de modificações de previsão é feito via triggers. Quando um usuário
faz qualquer tipo de modificação, sensível à previsão, em um registro de nomeação ou
aplicação, o sistema as triggers são ativadas e o status de “previsão criada” retorna
para o status “0” (não). Os procedimentos lerão novamente este registro e farão as
atualizações na previsão conforme deve ser. Para este projeto, são utilizadas seis
triggers; três para controle de status de previsão, duas para controle de data de
vencimento e uma para controle de valor de previsão.
Figura 25 - Trigger para controle de data de vencimento de nomeações
46
Figura 26 - Trigger para controle de data de vencimento de aplicações
Figura 27 - Trigger para controle de status de aplicações
47
Figura 28 - Trigger para controle de status de faturas
48
Figura 29 - Trigger para controle de status em nomeações
Figura 30 - Trigger para controle de alteração de valor em contrato
49
4. DIFICULDADES ENCONTRADAS
Durante este projeto, foram encontradas algumas dificuldades tanto na análise,
quanto no desenvolvimento do sistema. Tais dificuldades são descritas abaixo,
divididas por tópicos específicos.
4.1.1. DIFICULDADES DE ANÁLISE
Apesar do ambiente empresarial permitir o contato facilitado com os
stakeholders, foram enfrentadas algumas dificuldades na fase de análise relacionadas
ao funcionamento do novo sistema. O sistema antigo não apresentava documentação
alguma. Além disso, os usuários, no começo do projeto, não sabiam explicar como
gostariam que o novo sistema funcionasse e não propunham novas ideias para as
soluções defasadas do sistema antigo por acharem que seu modelo era o máximo que
se podia conseguir de um sistema de previsão de pagamentos. Apenas depois de
algumas conversas informais foi possível começar a realmente explicar tudo o que era
possível fazer e que algumas regras do sistema antigo estavam equivocadas e
desnecessárias.
A demora no entendimento e alinhamento de ideias, causou atraso na análise
e, consequentemente, no desenvolvimento do sistema.
4.1.2. DIFICULDADES DE DESENVOLVIMENTO
Na empresa, existem algumas equipes de desenvolvimento para diferentes
sistemas em diferentes plataformas. O sistema base, o qual gera as informações para a
o sistema de previsão, é um sistema na plataforma .Net, desenvolvido na linguagem
Visual Basic. A exigência era para que o novo sistema fosse desenvolvido parte em
banco de dados (via procedimentos e jobs) e parte utilizando a ferramenta Delphi (que
é a ferramenta mais utilizada em sistemas legados). Como o desenvolvedor Delphi,
selecionado pelo gerente, não tinha familiaridade com o funcionamento do sistema
50
base, foram despendidas algumas horas de conversa para a explicação de como o
sistema funciona.
Outro ponto de dificuldade foi a falta de familiaridade com a ferramenta
Delphi. Foi necessário despender algumas horas de estudo da ferramenta para que
fossem entendidas as suas limitações e características.
51
5. CONCLUSÕES
Durante o projeto foram aplicadas diversas técnicas e métodos de engenharia
de software para a análise e desenvolvimento do sistema de previsão de pagamentos.
A fase de análise foi de grande importância para a realização do projeto, pois com os
artefatos gerados durante esta fase, como diagrama de casos de uso e documento de
requisitos, pudemos ter um entendimento aprimorado das regras de negócio junto ao
usuário. Tais artefatos poderão ser utilizados em melhorias futuras no sistema.
As tecnologias escolhidas para o desenvolvimento do sistema se deram
devido à urgência da implementação de um sistema coerente com o negócio; o Delphi
para desenvolvimento rápido de telas e funcionalidades básicas, como controles de
usuário, exibição de dados, geração de relatórios e layouts, e o banco de dados como
controle de regras de negócio, via procedimentos e triggers.
Em suma, este projeto de estágio supervisionado proporcionou a
oportunidade de ter experiências novas e aprimorar conhecimentos, obtidos durante o
curso de Sistemas de Informação, tanto na área de análise quanto na de
desenvolvimento de sistemas, ajudou a entender mais sobre as regras de negócio e
operações da empresa. Apesar do curto período de disponibilidade para a realização
desta atividade, foi uma experiência muito proveitosa.
52
6. REFERÊNCIAS BIBLIOGRÁFICAS
Allround
Automations;
2016,
PL/SQL
Developer
11.0,
Disponível
em
https://www.allroundautomations.com/plsqldev.html (Acessado em setembro de
2016).
Balsamiq;
2016,
Mockups
Application
Overview,
Disponível
em
https://docs.balsamiq.com/desktop/overview/ (Acessado em setembro de 2016)
LEÃO, Marcelo; 2003, Borland® Delphi™ 7 Curso Completo, Sem Edição, Rio de
Janeiro, Axcel Books do Brasil Editora Ltda.
Borland Software Corporation, 2002, Object Pascal Language Guide, Edição única,
Califórnia
FOWLER, Martin; 2007, UML Essencial, um breve guia para a linguagem-padrão de
modelagem de objetos, 3ª Edição, Porto Alegre, Artmed® Editora S.A.
Farinelli, Fernanda; 2007, Conceitos Básicos de Programação Orientada a Objetos,
Edição Única, Editora não informada
GUEDES, Gilleanes T. A., 2009, UML 2, uma abordagem prática, Sem Edição, São
Paulo, Novatec Editora LTDA.
Juliana
Kolb,
Prototipagem.
Disponível
em
https://julianakolb.wordpress.com/tag/prototipagem/ (Acessado em setembro de
2016)
Marina Martinez. RUP. Disponível em http://www.infoescola.com/engenharia-desoftware/rup/ (Acessado em setembro de 2016)
Object Management Group, Introduction to OMG’s Unified Modeling Language®
(UML®). Disponível em http://www.uml.org/what-is-uml.htm (Acessado em
setembro de 2016)
Oracle,
Introduction
to
Oracle
Database,
Disponível
https://docs.oracle.com/cd/E11882_01/server.112/e40540/intro.htm#CNCPT001
(Acessado em setembro de 2016)
em
53
Oracle, Oracle Database 10g Release 2: A Revolution in Database Technology,
Disponível
em
http://www.oracle.com/technetwork/pt/database/database10g/overview/index.html
(Acessado em setembro de 2016)
Oracle,
Oracle
Database
12c
PL/SQL,
Disponível
em
http://www.oracle.com/technetwork/database/features/plsql/index.html (Acessado em
setembro de 2016)
PRESSMAN, Roger S.; 2011, Engenharia de software, uma abordagem profissional,
7ª Edição. Porto Alegre: AMGH Editora Ltda
Rational® Software. Rational Unified Process, Best Pratices For Software
Development
Teams.
Disponível
em
https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/125
1_bestpractices_TP026B.pdf (Acessado em setembro de 2016)
RAMAKRISHNAN, Raghu, GEHRKE, Johannes; 1999, Sistemas de Gerenciamento
de Banco de Dados, 2ª Edição. Sem local. Sem editora
SCHILDT, Herbert; 2014, Java™, A Beginner’s Guide, 6ª Edição, Estados Unidos,
McGraw-Hill Education
SOMMERVILLE, Ian; 2007. Engenharia de software. 8ª Edição. São Paulo: Addison
Wesley
54
APÊNDICES E/OU ANEXOS
APÊNDICE 1 – QUESTÕES INICIAIS PARA A ENTEVISTA
55
APÊNDICE 2 – PROPOSTA DE PROJETO
Figura 31 - Capa do Documento de Proposta de Projeto
56
Figura 32 - Sumário do Documento de Proposta de Projeto
57
Figura 33 - Página 3 do Documento de Proposta de Projeto
58
Figura 34 - Página 4 do Documento de Proposta de Projeto
59
APÊNDICE 3 – DOCUMENTO DE REQUISITOS
Figura 35 - Capa do Documento de Requisitos
60
Figura 36 - Índice do Documento de Requisitos
61
Figura 37 - Página 3 do Documento de Requisitos
62
Figura 38 - Página 4 do Documeto de Requisitos
63
APÊNDICE 4 – DESCRIÇÕES DE CASOS DE USO
Figura 39 - Capa da Descrição do Caso de Uso Consultar Planilha
64
Figura 40 - Índice da Descrição do Caso de Uso Consultar Planilha
65
Figura 41 - Página 3 da Descrição do Caso de Uso Consultar Planilha
66
Figura 42 – Capa da Descrição de Caso de Uso Filtrar Registros
67
Figura 43 - Índice da Descrição de Caso de Uso Filtrar Registros
68
Figura 44 - Página 3 da Descrição do Caso de Uso Filtrar Registros
69
Figura 45 - Capa da Descrição do Caso de Uso Fazer Lançamento Manual
70
Figura 46 - Índice da Descrição do Caso de Uso Fazer Lançamento Manual
71
Figura 47 - Página 3 da Descrição do Caso de Uso Fazer Lançamento Manual
72
Figura 48 - Página 4 da Descrição do Caso de Uso Fazer Lançamento Manual
73
Figura 49 - Capa da Descrição do Caso de Uso Alterar Previsão
74
Figura 50 - Índice da Descrição do Caso de Uso Alterar Previsão
75
Figura 51 - Página 3 da Descrição do Caso de Uso Alterar Previsão
Download