Carregamento automatizado de Bases de Dados



Documentos relacionados
RECOLHA DE INFORMAÇÃO DE REMUNERAÇÕES, SUPLEMENTOS E DOS PONTOS DECORRENTES DA AVALIAÇÃO DE DESEMPENHO

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Departamento de Sistemas e Informática. Licenciatura em Engenharia Informática Industrial EDP

Manual de Utilização. GESTOR DE METADADOS DOS AÇORES (GeMA) Setembro de Versão 4.0

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

2 Diagrama de Caso de Uso

MANUAL DE UTILIZAÇÃO

Manual de Integração

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

BACKUP E RESTORE BACKUP (NO MOODLE DO ANO PASSADO)

3.º e 4.º Anos de Escolaridade Competências Conteúdos Sugestões metodológicas Articulações

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

BIBLIOTECA ANACOM MANUAL DO UTILIZADOR

Manual SAGe Versão 1.2 (a partir da versão )

Tutorial exe elearning XHTML editor (versão 1.0x)

Disponibilização da v4.12 do ETPOS, alterações e procedimentos

Microsoft Access XP Módulo Um

Rock In Rio - Lisboa

[GESTÃO DE REFERÊNCIAS BIBLIOGRÁFICAS COM O ENDNOTE]

Guia Rápido de Vodafone Conferencing

Manual de Utilização de Certificados Digitais. Microsoft Word 2010

Organizar a estrutura do site

Manual de utilização do Moodle

Manual de utilização do Moodle

Sistema de Controle de Solicitação de Desenvolvimento

Manual do usuário. Softcall Java. versão 1.0.5

Acronis Servidor de Licença. Manual do Utilizador

Plano Curricular TIC - 1º Ciclo -

Manual de Utilização de Certificados Digitais. Microsoft Word 2003

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

Você acessa seu DISCO Virtual do mesmo modo como faz para seu HD, através de:

Poderá instalar o ZSRest APP diretamente através da Play Store do equipamento.

Tutorial: Do YouTube para o PowerPoint

02 - Usando o SiteMaster - Informações importantes

Guia de utilização. Gestão de Mensagens. Março 2009

Construir um e-portefólio com o Blogger

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Bases de Dados. Lab 1: Introdução ao ambiente

Centro de Competência Entre Mar e Serra. Guia

Manual XML-Validador-Conversor Registar recursos humanos

Criação de Páginas Web - MS Word 2000

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Manual de Utilizador Documentos de Transporte. TOConline. Suporte. Página - 1

Manual de Administração Intranet BNI

Curva ABC. Tecinco Informática Ltda. Av. Brasil, º Andar Centro Cascavel PR

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

GlobalPhone - Central Telefónica. Manual do Portal de Selfcare Utilizador

Microsoft Office FrontPage 2003

Aprend.e Sistema integrado de formação e aprendizagem

12 EXCEL MACROS E APLICAÇÕES

Documento de Análise e Projeto VideoSystem

TRIBUNAL DE CONTAS DO ESTADO DO RIO DE JANEIRO SISTEMA INTEGRADO DE GESTÃO FISCAL MÓDULO DELIBERAÇÃO 260/13 MANUAL DE UTILIZAÇÃO

Aplicações de Escritório Electrónico

Criação de Formulários

bit Tecnologia ao Serviço do Mundo Rural

Manual do Visualizador NF e KEY BEST

[Documentação da Plataforma MY.IPLEIRIA.PT dos Estudantes do IPLeiria]

Universidade do Minho Licenciatura em Engenharia Informática

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

WEBSITE DEFIR PRO

MANUAL DE NAVEGAÇÃO UNICURITIBA VIRTUAL

estiglp-11/ csharp e Fsharp 1 Relatório Linguagens de programação 11/12 João Caixinha nº5946

Pesquisa e organização de informação

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

GUIA BÁSICO DA SALA VIRTUAL

Portal Sindical. Manual Operacional Empresas/Escritórios

Índice. Enquadramento do curso 3 Estrutura Programática 4. Primeiros passos com o e-best Learning 6. Actividades e Recursos 11

PORTO EDITORA AREAL EDITORES LISBOA EDITORA. Manual do Utilizador. Aluno.

SECUNDÁRIA DE CAMARATE Plataforma Office 365. Alojamento de ficheiros - OneDrive para Empresas

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico

Principais Comandos SQL Usados no MySql

SAMUO APP: MANUAL DO ADMINISTRADOR

BEMVINDO AO ONLINE SHIPPING MANUAL

Noções de. Microsoft SQL Server. Microsoft SQL Server

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

TRIBUNAL DE CONTAS DO ESTADO DO RIO DE JANEIRO SISTEMA INTEGRADO DE GESTÃO FISCAL MÓDULO DELIBERAÇÃO 260/13 MANUAL DE UTILIZAÇÃO

Orientação a Objetos

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)

MANUAL DO ALUNO PARA NAVEGAR NO AMBIENTE VIRTUAL DE APRENDIZAGEM - AVA

Novo Guia de uso rápido do PROJUDI

Módulo 3936 ASP.NET. Financiado pelo FSE

Andreia Mota (ci05010) Diana Campos (ci05016) Rita Guimarães (ci05036)

Depois de instalado o software Gestix 5.0 Certificado AT o sistema fica pronto para comunicar as guias de transporte.

Administração da disciplina

Relatório SHST

ENGENHARIA DE SOFTWARE

Manual de Integração

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Manual de Instalação

Transcrição:

Carregamento automatizado de Bases de Dados André Neiva de Lemos nº 21276 Trabalho realizado sob a orientação de João Paulo Ribeiro Pereira Engenharia Informática 2014/2015

Carregamento automatizado de Bases de Dados Relatório da UC de Projeto Licenciatura em Engenharia Informática Escola Superior de Tecnologia e Gestão André Neiva de Lemos 2014/2015 iii

A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório. iv

Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. João Paulo Ribeiro Pereira Orientador Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Arguente Aceite para avaliação da UC de Projeto v

vi

Dedicatória Este projeto é dedicado aos meus pais que com grande esforço possibilitaram a realização desta etapa importante da minha vida e ao meu irmão. À minha família, por sempre me apoiar. Aos meus amigos, que sempre me apoiaram ao longo de todo o percurso académico. vii

viii

Agradecimentos Queria agradecer especialmente ao meu orientador, Professor João Paulo Ribeiro Pereira, pelo tempo dispensado e pela total disponibilidade na ajuda da realização deste trabalho, queria também agradecer á Professora Luísa Jorge pela total disponibilidade que sempre teve para comigo. Agradeço também a todos os professores que tive nas diferentes cadeiras ao longo do curso, pelos conhecimentos transmitidos, que me ajudaram na realização deste projeto. ix

x

Resumo O presente projeto teve como objetivo o desenvolvimento de uma aplicação de Carregamento automatizado de Base de Dados. A aplicação foi implementada em C#, tendo sido, realizado uma análise detalhada às funcionalidades a implementar recorrendo a diagramas de caso de uso e diagramas de sequência. Foi utilizada a linguagem de programação C# para criar a aplicação, no que diz respeito a base de dados foi implementada no MySQL. A aplicação disponibiliza ao utilizador fazer o carregamento de ficheiros para a base de dados e contem também a opção de por a aplicação a funcionar de forma autónoma. Ao nível de informações a aplicação permite fazer pesquisa de produtos na base de dados e fornece informações relativamente a integridade e dados redundantes, permite também exportar uma tabela da base de dados para um ficheiro Excel. Palavras-chave: Carregamento, BasedeDados, C#, MySQL, Autónoma. xi

xii

Abstract This project aimed at developing an automated loading application database. The application was implemented in C # and was conducted a detailed analysis of the features to be implemented using use case diagrams, sequence diagrams and diagrams entity / relationship. It was used the C # programming language to create the application, with respect to database was implemented in MySQL. The application provides the user to load files to the database and also contains the option for the application to work independently. At the application level information allows product search in the database and provides information on the integrity and redundant data, allows you to download a table from database to Excel file. Keywords: Loading, database, C#, MySQL xiii

xiv

Conteúdo 1 Introdução... 21 1.1 Enquadramento... 21 1.2 Objetivo... 22 1.3 Estrutura do Documento... 22 2 Descrição do problema... 23 2.1 Modelo de Desenvolvimento Utilizado... 23 2.1.1 Identificação de Requisitos... 25 2.1.2 Analise Detalhada... 26 2.1.2.1 Diagramas de Caso de Uso... 26 2.1.2.1.1 Casos de Uso do Utilizador... 27 2.1.2.2 Diagramas de Sequência... 28 2.1.2.3 Diagramas de Entidade/Relação (ER)... 32 2.1.3 Desenho... 33 3 Proposta de Solução... 35 3.1 Solução dos Problemas... 35 4 Ferramentas... 37 4.1 UML... 37 4.2 C# (CSharp)... 38 4.3 MySQL... 38 4.4 MySQL Workbench... 39 4.5 Enterprise Architect... 39 4.6 Código Open-Source... 39 5 Implementação... 41 5.1 Funcionalidades... 41 5.2 Interfaces... 42 5.2.4 Interface Principal... 42 5.2.4.1 Interface dos Ficheiros... 43 5.2.4.1.1 Interface Ficheiros TXT... 43 5.2.4.1.2 Interface Ficheiros PDF... 44 5.2.4.1.3 Interface Ficheiros CSV... 45 5.2.4.1.4 Interface Ficheiros XML... 46 5.2.4.1.5 Interface Ficheiros HTML... 47 5.2.5 Interface Forma Autónoma... 48 5.2.5.1 Iniciar Forma Autónoma... 49 5.2.5.2 Agendar Carregamento... 50 5.2.5.3 Ver Agenda... 50 xv

5.2.6 Interface Informações... 51 5.2.6.1 Pesquisar Produto... 52 5.2.6.2 Dados Duplicados... 53 5.2.6.3 Ver Tabelas... 53 5.2.6.4 Exportar a Base de dados... 54 6 Testes... 55 6.1 Testes Realizados... 55 7 Conclusões... 57 7.1 Conclusões... 57 7.2 Trabalho Futuro... 57 A Manual de Utilização... 1 A.1 Menu Principal... 1 A.1.1 Tipo de Ficheiros... 2 A.1.1.1 Carregar Ficheiro TXT... 2 A.1.1.2 Carregar Ficheiro HTML... 3 A.1.2 Agendar Carregamento... 4 A.1.2.1 Iniciar Forma Autónoma... 5 A.1.2.2 Agendar Carregamento... 5 A.1.2.3 Ver Agenda... 6 A.1.3 Informações da Base de Dados... 7 A.1.3.1 Pesquisar Produto... 7 A.1.3.2 Dados Duplicados... 8 A.1.3.3 Ver Tabelas... 9 A.1.3.4 Exportar a Base de dados... 9 16

Lista de Figuras Figura.1 Modelo Cascata.... 28 Figura.2 Casos de Uso Utilizador... 28 Figura.3 Diagrama de Sequência Carregar Ficheiro.... 30 Figura.4 Diagrama de Sequência Pesquisar Produto.... 31 Figura.5 Diagrama de Sequência Agendar Carregamento da Base de Dados.... 32 Figura.6 Diagrama de Sequência Verificar Agenda.... 33 Figura.7 Diagrama de Sequência Iniciar Forma Autónoma.... 34 Figura.8 Diagrama de Sequência Informações da Base de Dados.... 35 Figura.9 Diagrama de Sequência Informações da Base de Dados.... 35 Figura.10 Modelo ER.... 36 Figura.11 Layout da Aplicação.... 37 Figura.12 Interface Principal.... 44 Figura.13 Interface Ficheiros... 45 Figura.14 Interface Ficheiros TXT.... 46 Figura.14 Interface Ficheiros PDF.... 47 Figura.14 Interface Ficheiros CSV.... 48 Figura.14 Interface Ficheiros HTML.... 49 Figura.14 Interface Ficheiros XML.... 50 Figura.19 Forma Autonoma.... 51 Figura.20 Iniciar Forma Autónoma.... 52 Figura.21 Agendar Carregamento... 52 Figura.22 Agenda.... 53 Figura.23 Informações.... 54 Figura.24 Pesquisar Produto.... 54 Figura.25 Dados Duplicados.... 55 No table of figures entries found. xvii

xviii

Lista de Abreviações TXT- é a extensão de um ficheiro de texto. PDF- Portable Document Format, Formato Portátil de Documento. CSV- Comma Separated Values, Valores separados por vírgula. HTML - Hypertext Markup Language, Linguagem de Marcação de Hipertexto. XML - Extensible Markup Language, Linguagem de marcação extensível. C# CSharp, Linguagem de programação; SQL Structured Query Language, Linguagem de consulta estruturada; MySQL Sistema de gestão de base de dados; UML Unified Modeling Language; Linguagem unificada de modelação; SI Sistema de Informação; xix

xx

Capítulo 1 1 Introdução 1.1 Enquadramento O trabalho apresentado neste relatório foi desenvolvido no âmbito da unidade curricular de Projeto do 3º ano da Licenciatura em Engenharia Informática do Instituto Politécnico de Bragança, tendo como orientador o professor João Paulo Pereira. Com a evolução da tecnologia, o dia-a-dia do ser humano está em constante mudança, cada vez mais as atividades que estava habituado a realizar com recurso a meios físicos estão a ser simplificadas com recurso aos sistemas de informação que tem ao seu dispor. Estas tarefas vão do simples enviar de um correio eletrónico em vez de recorrer ao correio comum até à própria gestão da vida pessoal, que passa já pelos meios eletrónicos e pela internet, assim como a gestão de negócios e atividades, e todas as vantagens que essa prática proporciona. Hoje em dia um organismo público ou privado recorre aos sistemas de informação para obter melhores resultados tanto a nível funcional como financeiro. No caso da aplicação de Carregamento da Base de Dados, a utilização da aplicação permite otimizar os seus serviços, proporcionar ao utilizador maior facilidade nas tarefas relativas as funções que desempenham, divulgação de informações úteis ao utilizador relativamente a dados redundantes e integridade. 21

1.2 Objetivo O objetivo principal deste projeto foi o de criar uma aplicação que permita o carregamento de uma base de dados a partir de vários suportes. A aplicação deverá reconhecer o formato do ficheiro e importar os dados para uma base de dados. Deverá também suportar funções de alerta relativamente a informações relevantes notificando o utilizador sobre dados redundantes, integridade, etc. A aplicação deverá também permitir uma calendarização para qua a aplicação funcione de forma autónoma. 1.3 Estrutura do Documento Para melhor orientação, o relatório está dividido em sete capítulos e está estruturado da seguinte forma: O 1º Capítulo apresenta o motivo da realização deste trabalho e expõe os objetivos propostos. No 2º Capítulo é apresentado o modelo que foi seguido na implementação do SI, os passos realizados e as tecnologias usadas através dos diagramas de caso de uso e de sequência. O 3º Capítulo apresenta a proposta de solução que foi encontrada para a realização da aplicação. O 4º Capítulo apresenta as ferramentas utilizadas para a realização do projeto. O 5º Capítulo apresenta a implementação, explicando as funcionalidades implementadas. O 6º Capítulo apresenta os testes que foram realizados a aplicação após a sua conclusão. O 7º Capítulo apresenta as Conclusões, e ainda o trabalho futuro. 22

Capítulo 2 2 Descrição do problema 2.1 Modelo de Desenvolvimento Utilizado O modelo de desenvolvimento a seguir é um passo importante no caminho para um sistema de informação sólido e com as características e funcionalidades que se necessita. Para isso estes modelos apresentam diferentes maneiras de abordar o desenvolvimento de um Sistema de Informação, apresentando diferentes metodologias e fases. O modelo de desenvolvimento do Sistemas de Informação escolhido para o desenvolvimento do presente projeto foi o Modelo em Cascata (Waterfall Model). (figura.1) Este é um modelo tradicional de DSI em que as tarefas são executadas sequencialmente, ou seja, apenas quando uma tarefa está concluída é que se inicia a próxima. [1] Está estruturado nas seguintes etapas: Identificação de Requisitos Análise Detalhada Desenho Implementação Testes 23

As principais vantagens do uso deste modelo de desenvolvimento de Sistemas de Informação são: Processo de desenvolvimento estruturado Fácil utilização Fácil interpretação e compreensão Visão clara da estrutura do projeto Como todos os modelos de desenvolvimento também existem algumas desvantagens: Este modelo não suporta iterações do desenvolvimento Os requisitos têm que ser definidos inicialmente, tornando-se difícil de os alterar durante o processo. [2] Figura.1 Modelo em Cascata. 24

Nos subcapítulos seguintes são abordadas com mais detalhe as fases seguidas no desenvolvimento da aplicação. 2.1.1 Identificação de Requisitos Depois de analisar alguns dos requisitos para a aplicação e tendo uma ideia de como deverá funcionar o carregamento da base de dados, cheguei aos requisitos fundamentais para a aplicação. Assim decidi elaborar um menu inicial onde o utilizador terá 3 opções. A primeira opção será fazer o carregamento de um ficheiro individualmente, a segunda opção será agendar o carregamento automático, ou seja por a aplicação a funcionar de forma autónoma, a terceira opção será recolher informações sobre a base de dados. 1ª Opção, ira aparecer um outro menu onde o utilizador deverá selecionar o tipo de ficheiro que pretende importar para a base de dados, apos selecionar o tipo de ficheiro terá de selecionar para qual a base de dados que pretende importar a informação ou criar uma nova, em seguida devera selecionar o ficheiro no computador ou introduzir o endereço para o ficheiro, após selecionar o ficheiro deverá verificar se o ficheiro contém a informação correta para importar ou seja ver se o nome das tabelas e campos da base de dados existem, para finalizar terá de importar a informação. 2ª Opção, irá aparecer um menu, onde o utilizador irá ter três opções. A primeira opção será de por a aplicação a funcionar de forma autónoma, onde apenas terá de selecionar o tipo de produto que pretende importar. A segunda será introduzir uma data e o tipo de produto e a aplicação irá funcionar de forma autónoma na data marcada, porém a aplicação a funcionar de forma autónoma não ira verificar se existem produtos semelhantes na base de dados nem se o cabeçalho da tabela se encontra correto. A terceira será ver a agenda de carregamentos, onde pudera ver os próximos carregamentos bem como eliminar um carregamento marcado. 25

3ª Opção, o utilizador neste caso encontra-se no menu de informações, onde poderá optar por pesquisar um produto na base de dados para ver as suas características, optar por recolher informações da base de dados relativamente a dados redundantes ou integridade ou optar por fazer uma exportação da base de dados para um ficheiro Excel. 2.1.2 Analise Detalhada Nesta fase de desenvolvimento, optei por uma análise com recurso a diagramas de Caso de Uso para descrever as interações do utilizador da aplicação com o sistema, diagramas de Sequencia para descrever com mais detalhe os casos de uso mais relevantes e ainda diagrama de entidade/relação (ER) para definir as tabelas e campos necessários na construção da base de dados. 2.1.2.1 Diagramas de Caso de Uso Estes diagramas servem para identificar as fronteiras do sistema e descrever os serviços ou casos de uso que devem ser disponibilizados para o utilizador do sistema conhecido como ator. São utilizados para definir os requisitos funcionais do sistema. [3] Elementos que compõem estes diagramas: Casos de Uso Atores Mensagens Relacionamentos De seguida são apresentados os Diagramas de Casos de Uso que foram utilizados para definir as interações que o utilizador da aplicação terá com o sistema assim como uma breve explicação. 26

2.1.2.1.1 Casos de Uso do Utilizador O utilizador da aplicação tem à sua disponibilidade uma consulta de informações relativamente aos produtos bem com a base de dados. Pode também fazer o carregamento de ficheiros neste caso terá que selecionar o tipo de Produtos a importar, selecionar o ficheiro e em seguida fazer o upload do ficheiro, e ainda tem a possibilidade de fazer a aplicação de forma autónoma para este tem duas possibilidades a primeira é simplesmente iniciar a aplicação de forma autónoma selecionado apenas o tipo de produto e a segunda possibilidade a agendar uma data para que a aplicação funcione de forma autónoma. Contém ainda uma funcionalidade que permite ao utilizador exportar a base de dados. Estas são as interações por parte do utilizador com a aplicação como podemos verificar na seguinte figura. (figura 2). Figura.2 Casos de Uso Utilizador. 27

2.1.2.2 Diagramas de Sequência O Diagrama de Sequência é uma das ferramentas UML usadas para representar interações entre objetos de um cenário prático, realizadas através de procedimentos ou funções. Este diagrama é construído a partir do Diagrama de Casos de Usos e define a sequência de operações de um dado caso de uso. [4] Elementos que compõe estes diagramas: Atores Objetos Gate Fragmento Linha de vida Em seguida são apresentados alguns diagramas de sequência relativos aos casos de uso mais importantes. Figura.3 Diagrama de Sequência Carregar Ficheiro. 28

Figura.4 Diagrama de Sequência Pesquisar Produto. Figura.5 Diagrama de Sequência Agendar Carregamento da Base de Dados. 29

Figura.6 Diagrama de Sequência Verificar Agenda. Figura.7 Diagrama de Sequência Iniciar Forma Autónoma. 30

Figura.8 Diagrama de Sequência Informações da Base de Dados. Figura.9 Diagrama de Sequência Exportar Tabela da Base de Dados. 31

2.1.2.3 Diagramas de Entidade/Relação (ER) O modelo ER é um modelo usado na engenharia de software para definir de maneira sistemática um processo de negócio, este é modelado em entidades (tabelas) que possuem atributos e se encontram ligadas por relacionamentos que expressam as dependências entre si. É este modelo que suporta e define as tabelas e dependências da base de dados que se vai utilizar. Em seguida apresento o modelo ER da aplicação este será apenas um exemplo pois a aplicação cria as tabelas consoante a informação que se encontre nos ficheiros a importar. Figura.10 Modelo ER. 32

2.1.3 Desenho Nesta fase de desenvolvimento da aplicação, procura-se transformar os resultados da análise de requisitos numa solução capaz de ser facilmente interpretada pelo programador do sistema. O desenho deve ser eficiente ou seja o sistema deve ser capaz de efetuar as funções de maneira rápida e eficaz e flexível permitindo alterar e incorporar novas funcionalidades e requisitos sempre que necessário. Figura.11 Layout da Aplicação. 33

34

Capítulo 3 3 Proposta de Solução Neste capítulo é apresentada a solução proposta para a resolução dos problemas apresentados no capítulo anterior. 3.1 Solução dos Problemas A ferramenta utilizada para a construção da aplicação foi o C# porque já tinha trabalhado com esta ferramenta e sabia que iria ser bastante útil. As funcionalidades implementadas para a resolução do problemas passaram por: Carregar um ficheiro TXT para a base de dados; Carregar um ficheiro CSV para a base de dados; Carregar um ficheiro PDF para a base de dados; Carregar um ficheiro XML para a base de dados; Carregar um ficheiro HTML para a base de dados; Implementar Timers; Ligações a Base de Dados; Criar tabelas na base de dados a partir de um ficheiro; Em relação a base de dados optei pelo MySQL porque tem interface gráfica intuitiva, Configuração fácil e bom desempenho e estabilidade. 35

36

Capítulo 4 4 Ferramentas Esta secção tem como objetivo dar a conhecer e apontar algumas das características que marcam as linguagens de modelação e programação que foram utilizadas no desenvolvimento da Aplicação. 4.1 UML A Unified Modeling Language é uma linguagem que utiliza notação padrão para especificar, construir, visualizar e documentar sistemas de informação. O UML por ser uma linguagem de conceitos simples, facilita o desenvolvimento de um Sistema de Informação. Permite integrar os aspetos da natureza organizacional que constituem o negócio e os elementos de natureza tecnológica, que constituirão o sistema de informação, ajudando a dominar a complexidade das regras associadas às necessidades do sistema que se pretende implementar assim como definir os processos e fluxos informativos. Faz uso de um conjunto de símbolos padrão que funcionam como um meio de comunicação entre os diversos elementos do processo, clientes, gestores e programadores. No âmbito deste projeto foram desenvolvidos diagramas de caso de uso e diagramas de sequência que foram apresentados posteriormente neste documento. 37

4.2 C# (CSharp) C# (CSharp) é uma linguagem de programação orientada a objetos criada pela Microsoft, faz parte da sua plataforma.net. A sua sintaxe orientada a objetos foi baseada no C++ mas inclui muitas influências de outras linguagens de programação, como Object Pascal e Java. 4.3 MySQL O MySQL é um sistema de gestão de base de dados. Algumas das suas características são: Software pouco exigente a nível de recursos de hardware Interface gráfica intuitiva Configuração fácil Bom desempenho e estabilidade Software de uso livre No desenvolvimento deste projeto foi usado o sistema de gestão de base de dados MySQL, por ser bastante robusto e eficiente assim como de fácil utilização por ter na minha opinião, um interface user friendly e por já ter sido usado anteriormente no desenvolvimento de trabalhos em outras unidades curriculares garantindo assim um maior à vontade na sua utilização. 38

4.4 MySQL Workbench MySQL Workbench é uma ferramenta de desenho visual de base de dados que integra desenvolvimento, administração, desenho de base de dados, criação e manutenção num ambiente integrado de desenvolvimento para o sistema de base de dados MySQL. É uma ferramenta oficial disponibilizada pela MySQL de uso gratuito e está disponível para os três principais sistemas operativos, Windows, Linux e MAC OS. 4.5 Enterprise Architect O Enterprise Architect foi a ferramenta escolhida na elaboração dos diagramas UML utilizados no desenvolvimento da Aplicação. É uma ferramenta excecional com diversas funcionalidades ao nível do desenho de SI, é estável e tem uma interface fácil de utilizar. A única desvantagem é que esta é uma aplicação paga, tendo neste projeto sido utilizada uma versão de teste. 4.6 Código Open-Source Foi utilizado código Open-Source apenas para fazer a conversão do ficheiro PDF para ficheiro TXT e para ler ficheiros HTML porque o C# não possui nenhuma libraria para tal. using itextsharp.text.pdf; PdfReader reader = new PdfReader(@tb_path.Text); for (int page = 1; page <= reader.numberofpages; page++) { ITextExtractionStrategy its = new itextsharp.text.pdf.parser.locationtextextractionstrategy(); string s = PdfTextExtractor.GetTextFromPage(reader, page, its); s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); Text = text + s; richtextbox1.text = text; using HtmlAgilityPack; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.load(url); 39

40

Capítulo 5 5 Implementação Neste subcapítulo é apresentada a implementação da Aplicação. São descritas as funcionalidades que foram implementadas, linguagens utilizadas na codificação e a base de dados. 5.1 Funcionalidades Quanto às funcionalidades que foram implementadas, destacam-se as funcionalidades de carregamento de forma autónoma onde a aplicação reconhece o formato do ficheiro e faz o seu carregamento, destaca-se também as funcionalidades para ler o ficheiro e reconhecer que na base de dados se encontra um produto idêntico e ainda verifica se o cabeçalho do ficheiro é idêntico ao da base de dados, contem ainda funcionalidades para agendar uma data para fazer o seu carregamento, contem uma funcionalidade para fazer a pesquisa do ficheiro na base de dados, bem como as funcionalidades de informação da base de dados e ainda uma funcionalidade que exporta a base de dados para um ficheiro Excel. 41

5.2 Interfaces 5.2.4 Interface Principal No interface principal temos três opções cada uma destas opções enviam o utilizador para um interface diferente, a primeira opção é para fazer o carregamento manualmente ou seja o utilizador terá de selecionar o ficheiro, selecionar o tipo de produto e em seguida fazer o upload, a segunda opção é para o utilizador agendar o carregamento de forma autónoma, ver agenda de carregamentos ou por a aplicação em modo autónomo, a terceira opção é relativa a informações a cerca dos produtos e da base de dados. Figura.12 Interface Principal. 42

5.2.4.1 Interface dos Ficheiros Caso o utilizador selecione a primeira opção (Carregar Ficheiros) será enviado para este interface, neste interface o utilizador apenas terá de escolher o formato do ficheiro que pretende fazer o upload. Figura.13 Interface Ficheiros. 5.2.4.1.1 Interface Ficheiros TXT Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida selecionar o ficheiro no computador ou introduzir o caminho para o ficheiro, após o utilizador clicar em Verificar Ficheiro a aplicação irá ler o ficheiro, verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois irá criar uma DataTable com a informação do ficheiro txt, quando clicar em Importar Dados irá criar uma tabela caso não exista no MySQL, e irá transportar a informação da DataTable para a Base de Dados, para finalizar a aplicação irá mover o ficheiro para uma pasta com a data e hora do seu upload. 43

Figura.14 Interface Ficheiros TXT. 5.2.4.1.2 Interface Ficheiros PDF Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida selecionar o ficheiro no computador ou introduzir o caminho para o ficheiro, após o utilizador clicar em Verificar Ficheiro a aplicação irá ler o ficheiro e fazer a conversão do ficheiro PDF para um ficheiro TXT, após criar o ficheiro TXT a aplicação irá ler o ficheiro, verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois irá criar uma DataTable com a informação do ficheiro txt, quando clicar em Importar Dados irá criar uma tabela caso não exista no MySQL, e irá transportar a informação da DataTable para a Base de Dados, para finalizar a aplicação irá mover o ficheiro para uma pasta com a data e hora do seu upload. 44

Figura.15 Interface Ficheiros PDF. 5.2.4.1.3 Interface Ficheiros CSV Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida selecionar o ficheiro no computador ou introduzir o caminho para o ficheiro, após o utilizador clicar em Verificar Ficheiro a aplicação irá ler o ficheiro, verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois irá criar uma DataTable com a informação do ficheiro CSV, quando clicar em Importar Dados irá criar uma tabela caso não exista no MySQL, e irá transportar a informação da DataTable para a Base de Dados, para finalizar a aplicação irá mover o ficheiro para uma pasta com a data e hora do seu upload. 45

Figura.16 Interface Ficheiros CSV. 5.2.4.1.4 Interface Ficheiros XML Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida terá duas opções, a primeira opção será selecionar o ficheiro no computador ou introduzir o caminho para o ficheiro, após o utilizador clicar em Verificar Ficheiro a aplicação irá ler o ficheiro, verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois irá criar uma DataTable com a informação do ficheiro XML, quando clicar em Importar Dados irá criar uma tabela caso não exista no MySQL, e irá transportar a informação da DataTable para a Base de Dados. A segunda opção será introduzir o endereço da pagina web, a aplicação ira ler a pagina e criar uma nova pagina no computador contento toda a informação da pagina web, em seguida irá ler o ficheiro e verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois cria uma DataTable com a informação do ficheiro XML, em seguida irá criar uma tabela caso não exista no MySQL, para finalizar a aplicação irá mover o ficheiro para uma pasta com a data e hora do seu upload. 46

Figura.17 Interface Ficheiros XML. 5.2.4.1.5 Interface Ficheiros HTML Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida terá duas opções, a primeira opção será selecionar o ficheiro no computador ou introduzir o caminho para o ficheiro, após o utilizador clicar em Verificar Ficheiro a aplicação irá ler o ficheiro, verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois irá criar uma DataTable com a informação, quando clicar em Importar Dados irá criar uma tabela caso não exista no MySQL, e irá transportar a informação da DataTable para a Base de Dados. A segunda opção será introduzir o link da pagina web, a aplicação ira ler a pagina e criar uma nova pagina no computador contento toda a informação da pagina web, em seguida irá ler o ficheiro e verificar se não existem produtos repetidos e se o cabeçalho do ficheiro é idêntico ao cabeçalho da tabela, depois cria uma DataTable com a informação, em seguida irá criar uma tabela caso não exista no MySQL, para finalizar a aplicação irá mover o ficheiro para uma pasta com a data e hora do seu upload. 47

Figura.18 Interface Ficheiros HTML. 5.2.5 Interface Forma Autónoma Neste interface o utilizador poderá optar por uma de três opções a primeira opção será simplesmente clicar no botão Iniciar Carregamento Automático onde terá de selecionar o tipo de produtos que pretende carregar e a aplicação irá funcionar de forma autónoma ate o utilizador clicar no botão Parar Carregamento Automático quando o utilizador parar a forma autónoma a aplicação irá informar o utilizador de quantos ficheiros fez o upload para a Base de dados. A segunda opção o utilizador irá introduzir uma data e hora e o tipo de produtos a importar e a aplicação nessa data ira funcionar de forma autónoma durante 1 minuto, a aplicação irá informar o utilizador de quantos ficheiros fez o upload para a Base de dados. A terceira opção será para o utilizador ver a agenda onde poderá ver os próximos carregamentos e ainda poderá eliminar os que entender. 48

Figura.19 Forma Autónoma. 5.2.5.1 Iniciar Forma Autónoma Neste interface o utilizador terá de selecionar que tipo de produtos pretende importar para a base de dados e a aplicação ira verificar se existem ficheiros numa pasta previamente defina, caso existam ira fazer a importação dos dados para a base de dados. Figura.20 Iniciar Forma Autónoma. 49

5.2.5.2 Agendar Carregamento Neste interface o utilizador terá de selecionar uma data, uma hora, e o tipo de produto que pretende carregar, aplicação guarda os dados inseridos numa tabela. Figura.21 Agendar Carregamento. 5.2.5.3 Ver Agenda Neste interface o utilizador pode ver os próximos carregamentos, onde a aplicação vai verificar na base de dados se existem carregamentos agendados e ainda tem a possibilidade de eliminar um carregamento simplesmente selecionando a data e clicar em Remover carregamento, que será eliminado através da referência. 50

Figura.22 Agenda. 5.2.6 Interface Informações Neste interface o utilizador terá quatro opções a primeira será fazer uma pesquisa de produtos na Base de dados através da referência do produto, a segunda será receber informações sobre dados redundantes e integridade da base de dados, a terceira será para ver a base de dados, e a quarta opção será para exportar a tabela do tipo de produto que pretender para um ficheiro Excel. 51

Figura.23 Informações. 5.2.6.1 Pesquisar Produto Neste interface o utilizador deve introduzir o tipo de produto que pretende pesquisar e em seguida introduzir a referência do produto, onde a aplicação ira a base de dados buscar as informações. Figura.24 Pesquisar Produto. 52

5.2.6.2 Dados Duplicados Neste interface o utilizador apenas deve selecionar o tipo de produtos que pretende verificar e a aplicação irá verificar se existem produtos repetidos na base de dados. Figura.25 Dados Duplicados. 5.2.6.3 Ver Tabelas Neste interface o utilizador apenas deve selecionar o tipo de produtos que pretende ver e a aplicação irá mostrar a sua tabela da base de dados. 53

Figura.26 Tabela de Produtos da Base de dados. 5.2.6.4 Exportar a Base de dados Neste interface o utilizador apenas deve selecionar o tipo de produtos que pretende exportar para um ficheiro Excel. Figura.27 Exportar Base de Dados. 54

Capítulo 6 6 Testes Neste capítulo é apresentado os teste que foram realizados a aplicação. 6.1 Testes Realizados Nesta fase todas as funcionalidades da aplicação foram testadas para garantir o seu pleno funcionamento e para certificar que os requisitos identificados tinham sido abrangidos. Foram efetuados três diferentes testes. 1º Teste, foi testado o carregamento manual dos vários tipos de ficheiros, bem como foi testada a inserção de endereços de páginas web. 2ºTeste, foi testada a funcionalidade autónoma para garantir que a aplicação esta a funcionar corretamente e também foi testado o agendamento de carregamentos. 3ºTeste, foram elaborados testes relativamente as informações da base de dados, e foi ainda testado todas as ligações e redireccionamentos presentes nos diferentes interfaces para garantir a perfeita interligação entre estes. 55

56

Capítulo 7 7 Conclusões 7.1 Conclusões A realização deste projeto permitiu-me aprofundar conhecimentos nas tecnologias ligadas a aplicação bem como conhecer algumas novas funcionalidades das ferramentas utilizadas. A aplicação conta com diversas funcionalidades de carregamento da base de dados, recolha de informação. Os objetivos principais deste projeto foram alcançados. Na minha opinião a aplicação está bem concebido e as funcionalidades que foram implementadas estão a funcionar corretamente. 7.2 Trabalho Futuro Para trabalho futuro seria interessante abranger mais ficheiros para alem dos cinco já implementados de maneira a tornar a aplicação uma ferramenta bastante útil para os utilizadores, e ainda melhorar as informações podendo implementar mais funcionalidades acerca das informações fornecidas sobre a base de dados. 57

Referências bibliográficas [1] http://www.codeproject.com/?cat=3 consultado em Novembro de 2014 [2] http://en.wikipedia.org/wiki/mysql_workbench consultado em Novembro de 2014 [3] http://stackoverflow.com/questions/942277/mysql-c-sharp-text-encoding-problems consultado em Novembro de 2014 [4] http://pt.wikipedia.org/wiki/diagrama_de_caso_de_uso consultado em Dezembro de 2014 [5] http://pt.wikipedia.org/wiki/diagrama_de_sequência consultado em Dezembro de 2014 [6] http://pt.wikipedia.org/wiki/mysql consultado em Fevereiro de 2015 [7] http://stackoverflow.com/questions/11094008/how-to-use-timer-in-c-sharp consultado em Fevereiro de 2015 [8] http://stackoverflow.com/search?q=c%23+winfroms consultado em Março de 2015 [9] http://www.codeproject.com/?cat=3 consultado em Abril de 2015 [10] http://www.dotnetperls.com/datagridview consultado em Abril de 2015 [11] http://www.dotnetperls.com/datatable consultado em Março de 2015 [12] http://www.dotnetperls.com/timer consultado em Março de 2015 [13] http://stackoverflow.com/ consultado em junho de 2015 [14] http://www.codeproject.com/?cat=3 consultado em junho de 2015 [15] http://www.dotnetperls.com/timer consultado em Agosto de 2015 [16] http://stackoverflow.com consultado em Setembro de 2015 [17] http://stackoverflow.com/questions/6073382/read-sql-table-into-c-sharp-datatable consultado em Setembro de 2015 [18] http://www.codeproject.com/questions/159811/ consultado em Setembro de 2015 58

Anexo A A Manual de Utilização A.1 Menu Principal Neste menu o utilizador tem três opções disponíveis. A primeira opção permite carregar os dados de um ficheiro para a base de dados manualmente, a segunda permite por a aplicação a funcionar de forma autónoma, e a terceira permite verificar informação acerca da base de dados. Figura.28 Menu Principal. A1

A.1.1 Tipo de Ficheiros Neste menu o utilizador terá de selecionar que tipo de ficheiro pretende carregar para a base de dados. Figura.29 Tipo de Ficheiro. A.1.1.1 Carregar Ficheiro TXT Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida selecionar o ficheiro no computador ou introduzir o caminho para o ficheiro, após o utilizador clicar em Importar Ficheiro a aplicação irá ler o ficheiro e importar os dados para a base de dados Base de Dados. 2

Figura.30 Ficheiro TXT. A.1.1.2 Carregar Ficheiro HTML Neste interface o utilizador terá de selecionar o tipo de produtos que pretende carregar ou criar um novo tipo de produtos em seguida terá duas opções, a primeira opção será selecionar o ficheiro no computador ou introduzir o endereço da página web, em seguida irá Importar Dados e a aplicação ira enviar os dados para a Base de Dados. A3

Figura.31 Ficheiro HTML. A.1.2 Agendar Carregamento Neste Interface o utilizador terá três opções disponíveis a primeira será por a aplicação a funcionar de forma autónoma, a segunda será agendar um carregamento e a terceira será ver agenda de carregamentos. Figura.32 Menu Agenda. 4

A.1.2.1 Iniciar Forma Autónoma Neste interface o utilizador terá de selecionar que tipo de produtos pretende importar para a base de dados. Figura.33 Forma Autónoma. A.1.2.2 Agendar Carregamento Neste interface o utilizador terá de selecionar uma data, uma hora, e o tipo de produto que pretende carregar, e a aplicação irá funcionar de forma autónoma na data inserida. A5

Figura.34 Agendar Carregamento. A.1.2.3 Ver Agenda Neste interface o utilizador pode ver os próximos carregamentos e ainda tem a possibilidade de eliminar um carregamento simplesmente selecionando a data e clicar em Remover carregamento. Figura.35 Agenda. 6

A.1.3 Informações da Base de Dados Neste menu o utilizador terá quatro opções a primeira será pesquisar um produto na base de dados, a segunda será ver se existem produtos duplicados, a terceira será ver a base de dados, e a quarta opção é para converter a base de dados para um ficheiro Excel. Figura.36 Informações da Base de Dados. A.1.3.1 Pesquisar Produto Neste interface o utilizador deve introduzir o tipo de produto que pretende pesquisar e em seguida introduzir a referência do produto. A7

Figura.37 Pesquisar Produto. A.1.3.2 Dados Duplicados Neste interface o utilizador apenas deve selecionar o tipo de produtos que pretende verificar. Figura.38 Dados Duplicados. 8

A.1.3.3 Ver Tabelas Neste interface o utilizador apenas deve selecionar o tipo de produtos que pretende ver. Figura.39 Tabela de Produtos da Base de dados. A.1.3.4 Exportar a Base de dados Neste interface o utilizador apenas deve selecionar o tipo de produtos que pretende exportar para um ficheiro Excel. Figura.40 Exportar Base de Dados. A9