Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CÂMPUS GUARAPUAVA CURSO DE TECNOLOGIA EM SISTEMAS PARA INTERNET REHNAN CARLOS CAROLINO DA SILVA RELATÓRIO FINAL DE ESTÁGIO REHNAN CARLOS CAROLINO DA SILVA RELATÓRIO FINAL DE ESTÁGIO Relatório final apresentado à disciplina de Estágio Curricular Obrigatório do curso de Tecnologia em Sistemas para Internet, Câmpus Guarapuava, da Universidade Tecnológica Federal do Paraná, como requisito parcial para aprovação na referida disciplina. Área de concentração: Desenvolvimento Web com PHP. Orientador: Prof. Ms. Diego Marczal REHNAN CARLOS CAROLINO DA SILVA IDENTIFICAÇÃO DO ESTAGIÁRIO Estagiário: Rehnan Carlos Carolino da Silva RA: 1275704 Período: 5º Período E-mail: rehnancarolino@live.com Unidade Concedente de Estágio (UCE): Fluxo Tecnologia da Informação Endereço: Rua XV de Novembro, 7430, Conj. 3 Bairro: Centro Cidade: Guarapuava Telefone: (41) 4063 9200 Supervisor de Estágio na UCE: Diogo Hartmann Vigência do Estágio: 17/09/2012 a 15/04/2013 Horário do Estágio: Segunda à sexta, das 8h às 12h Professor Orientador: Diego Marczal Área de Concentração: Desenvolvimento Web com PHP 3 LISTA DE SIGLAS IDE Ambiente de Desenvolvimento Integrado SO Sistema Operacional W3C World Wide Web Consortium SCRUM Metodologia ágil de desenvolvimento OS Sistema Gerenciador de Ordens de Serviço VOIP Voz sobre IP SICOB Sistema Inteligente de Cobrança TI Tecnologia da Informação OO Orientação a Objetos PHP HyperText Preprocessor HTML HyperText Markup Language CSS Cascading Style Sheets TSI Tecnologia em Sistemas para Internet Ticket Solicitação de Atendimento (Enviado pela equipe de Suporte) MVC Model View Controller CSV Comma-Separated Values 4 SUMARIO 1 INTRODUÇÃO .................................................................................... 5 1.1 Objetivos ....................................................................................... 6 2 Empresa Concedente ........................................................................ 7 2.1 Equipe de Desenvolvimento .......................................................... 7 3 Atividades Desenvolvidas ................................................................ 8 3.1 Divisão de Tarefas ......................................................................... 8 3.2 Resolução de Problemas ............................................................... 8 3.3 Participação em projetos ............................................................. 10 3.4 Ferramentas Utilizadas ................................................................. 11 4 Dificuldades Encontradas ................................................................13 5 Disciplinas relacionadas ..................................................................14 6 Conclusão .........................................................................................16 Referências ..........................................................................................17 Anexo A – Termo de Acordo ...............................................................19 5 1 INTRODUÇÃO O Estágio Curricular Obrigatório é uma disciplina obrigatória dos Cursos Superiores de graduação, e tem como objetivo complementar o ensino e a aprendizagem do acadêmico. O estágio teve duração exata de 400 horas, onde a mesma teve início no dia 17 de setembro de 2012 e finalizado em 15 de março de 2013. O estágio foi realizado na empresa cedente FluxoTI – Fluxo Tecnologia da Informação, na área de desenvolvimento Web com PHP. As atividades desenvolvidas foram acompanhadas pelo supervisor Diogo Hartmann e pelo Orientador de estágio Diego Marczal. O presente relatório de Estágio Supervisionado tem como objetivo descrever as atividades desenvolvidas durante o período de estágio, as quais se destinam a abordar as experiências adquiridas, participações em projetos, dificuldades e a contribuição do acadêmico para a empresa, além de relatar as situações de trabalho vivenciadas durante todo o período de estágio. As atividades descritas no presente relatório serão conduzidas seguindo a seguinte estrutura: Empresa Cedente: nessa etapa inicial, será relatado um breve histórico da empresa cedente, onde será apresentado um pouco mais sobre o setor de atuação da empresa, atividades desenvolvidas pela mesma e relação e contribuição do estágio para empresa; Atividades Desenvolvidas: nessa etapa do relatório serão enfatizados assuntos sobre a equipe de trabalho, modo de divisão de tarefas, algumas atividades e metodologias ágeis utilizadas, participações em projetos, ferramentas e tecnologias utilizadas pela empresa; Dificuldades: nessa etapa serão abordadas as dificuldades vivenciadas durante o estágio e uma autoavaliação enquanto estagiário; 6 Disciplinas Relacionadas: aqui será apresentada a relação das atividades desenvolvidas com as disciplinas cursadas; Conclusão: conclusão final do relatório, justificativa da importância do estágio curricular obrigatório. 1.1 OBJETIVOS 1. Desenvolvimento de Sistemas em PHP Estruturado e PHP Orientado a Objetos. 2. Desenvolvimento de Ferramentas de Importação de Arquivos. 3. Desenvolvimento de Ferramentas de Exportação de Arquivos CSV, TXT, etc. 4. Engenharia Reversa em Migrações de Bancos de Dados entre Sistemas. 5. Integração entre Servidores e Sistemas – webservice. 6. Manutenção de Banco de Dados (querys SQL). 7. Desenvolvimento de Relatórios. 7 2 EMPRESA CONCEDENTE A FluxoTI é uma empresa que cria soluções customizadas para o mercado coorporativo, atende a empresas do setor financeiro e de cobranças . A empresa tem como foco o desenvolvimento de sistema de cobrança, crediário e telecomunicações. A empresa possui duas sedes, sendo uma em Curitiba e outra Guarapuava. A tecnologia de desenvolvimento utilizada pela empresa é especificamente PHP (PHP OO, PHP estruturado e o Framework CakePHP), no qual se adequa com as tecnologias de desenvolvimento web aprendidas no curso de Tecnologia em Sistemas para Internet da UTFPR. O estágio trouxe novos conhecimentos a empresa, um exemplo é o uso do Framework no desenvolvimento das atividades, consequentemente melhorando padrões e metodologias de desenvolvimento nos projetos, contribuindo de forma direta para uma melhor produtividade, desenvolvimento e crescimento da empresa cedente. 2.1 EQUIPE DE DESENVOLVIMENTO A equipe de programação era composta por seis desenvolvedores, um gerente de programação (supervisor de estágio) e um subgerente de programação. 8 3 ATIVIDADES DESENVOLVIDAS Antes de relatar as atividades desenvolvidas, será apresentado o funcionamento das atividades na empresa e como ocorria a divisão de tarefas na empresa FluxoTI. 3.1 DIVISÃO DE TAREFAS As tarefas a serem desenvolvidas eram denominadas tickets. Tickets são solicitações de atendimento rápidas e eficientes enviadas pela equipe de suporte via e-mail ou telefone ao subgerente, no qual contém em detalhes algum problema relatado pelo usuário cliente da empresa em relação ao sistema de uso dos clientes. Esses tickets eram repassados pela equipe de suporte diretamente ao subgerente via e-mail ou telefone, então eram cadastradas e classificadas no sistema OS – Sistema Gerenciador de Ordem de Serviço pelo subgerente, onde ficavam disponíveispara os desenvolvedores. O OS é um sistema privado da empresa, esse sistema é utilizado para gerenciar as solicitações de atendimento enviadas pela equipe de suporte. É utilizado apenas pelo gerente e subgerente de programação, pois são eles quem e delegam as atividades ao desenvolvedores. O Sistema OS, classifica os tickets por prioridade baixa, média e alta, no qual é relacionada ao desenvolvedor que irá resolvê-lo. 3.2 RESOLUÇÃO DE PROBLEMAS Durante o período de estágio foram desenvolvidas várias atividades, no qual solucionávamos problemas solicitados pelos usuários (clientes da empresa). 9 A resolução de problemas consistia basicamente em dar uma solução ao problema (ticket) utilizando as tecnologias de uso da empresa, com PHP, JQuery e etc. Estas deviam ser finalizadas e entregues dentro do período de tempo determinado pelo subgerente de programação. Os tickets geralmente eram relacionados a alguma funcionalidade defeituosa do sistema que deveria ser corrigida, ou uma nova implementação de alguma funcionalidade a ser adicionada ao sistema solicitada pelo cliente, ou alguma importação de registros que era uma atividade bem frequente na empresa. O ticket era classificado em 3 diferentes tipos de atividades, no qual poderia ser referente à: correção de falhas, nova implementação de uma funcionalidade ou importação de registros. O período de tempo para resolução variava de acordo com a complexidade do ticket. Quando o ticket era relacionado à correção de falhas, o problema era analisado, discutido e esclarecido com o gerente para melhor entendimento, e depois pensa-se em uma solução adequada para resolução do problema solicitado no ticket, e logo implementada (codificada) e por fim testada antes de ser repassada ao subgerente para aprovação e conclusão do ticket. O ticket também podia ser relacionado a uma nova implementação, onde o processo de resolução é semelhante ao tickets de resolução de falhas, mas com a diferença de uma nova implementação ao invés de uma correção, no qual requeria também uma conversa com o gerente e subgerente de programação para um melhor entendimento e consequentemente uma implementação mais adequada. Já os tickets de importação de dados eram considerados mais críticos, pois exigia o dobro de atenção no momento de interpretar e implementar uma solução correta e segura. A importação de dados, consiste em migrar todas as informações pessoais de uma lista de devedores gerado (exportada) pelo sistema em arquivos com extensão .TXT e .CSV no qual uma empresa cliente utiliza como padrão de exportação, e essas informações eram importadas (importação) para o sistema de cobrança da empresa FluxoTI. Ou seja, o ticket de importação já vinham pré- organizados em arquivos .TXT ou .CSV, essa pré-organização é chamada de layout 10 de importação, e esses layouts vinham prontos para serem importados através de uma rotina que deveria ser implementado pelos desenvolvedores (solução) para importar as informações para o sistema de cobrança SICOB da FluxoTI. Assim como as outras atividades, a importação de dados também era estipulado um tempo limite para desenvolvimento, mas por ser um ticket mais crítico, era sempre uma atividade com prioridade alta e um tempo maior para implementação, e para testes finais também. 3.3 PARTICIPAÇÃO EM PROJETOS Tive participação no projeto Intranet, relacionado ao sistema SICOB – Sistema de Cobrança da empresa FluxoTI, um projeto que tinha uma certa resistência a orientação a objetos, pois o sistema SICOB tinha um alto nível de acoplamento. A maior parte do sistema foi desenvolvido com a programação imperativa, uma forma estruturada de programar com PHP. Nesse projeto fora desenvolvidas várias importações e novas implementações de funcionalidades mas a maior parte do desenvolvimento no sistema, era corrigindo falhas. Também tive participação no projeto Discador, um projeto mais inovador, onde obtive um grande ganho tanto no conhecimento quanto nas habilidades em desenvolvimento de PHP OO. Esse projeto estimulou bastante a criatividade e o interesse na pesquisa de novas tecnologias para integração no projeto. O projeto envolveu a plataforma de telefonia Asterisk com o objetivo de criar um sistema de cobrança com o uso da telefonia integrado ao sistema web. Asterisk é uma plataforma de telefonia open source, é uma plataforma flexível, permite os desenvolvedores criarem soluções de comunicação avançada. A ideia do projeto é construir um sistema web utilizando o PHP+JQuery integrado com a tecnologia de telefonia VOIP (voz sobre IP), utilizando a plataforma Asterisk, que permitirá essa comunicação. Enfim, uma participação curta mas de grande ganho. 11 A empresa não estabelecia um padrão para todos os processos de desenvolvimento. Entretanto sempre cobrava as boas práticas dos desenvolvedores: na codificação, comentários nos códigos, nomes legíveis e dedutivos em variáveis e funções, organizações de arquivos e diretórios, indentação e etc. A empresa não tinha uma metodologia bem definida de desenvolvimento, mas tinha fortes características a metodologia SCRUM, por ter pouca documentação e ser mais focado a codificação, além de ser maleável a mudanças solicitadas pelos clientes. Reuniões rápidas entre os desenvolvedores no fim do expediente para que haja uma interação entre os desenvolvedores, falando um pouco o que cada um estava desenvolvendo no momento. Os principais resultados obtidos no projeto Intranet e Discador fora um entendimento melhor sobre o funcionamento de uma importação de dados, no qual consiste basicamente de uma migração de dados de um banco para o outro, através de registros exportados em arquivos de texto. A importância de verificar implementações já existentes, no qual fora implementadas por outros desenvolvedores, onde se encontram disponíveis para uso em algum diretório do projeto relacionado a funções utilizadas pra resolver algum tipo de problema, evitando a perca de tempo na tentativa de implementar algo que já existe, e está pronto pra ser utilizado para a solução de um problema. Além da importância do uso do PHP OO no desenvolvimento dos projetos, por ela proporciona uma organização maior do projeto, onde se destaca a facilidade de manutenção depois da fase de implementação. 3.4 FERRAMENTAS UTILIZADAS A empresa FluxoTI utiliza a distribuição Linux Ubuntu como SO, a IDE open source Eclipse como padrão para uso dos desenvolvedores e a IDE PHP Storm também. Na parte de banco de dados, é utilizávamos os bancos Mysql e o SQL Server e para 12 manipulação dos mesmos, utilizávamos o gerenciador DbVisualizer versão gratuita. As IDE’s Eclipse e PHP Storm eram utilizadas juntamente com o sistema de controle de versão Git. 13 4 DIFICULDADES ENCONTRADAS Assim como qualquer estágio, todos possuem suas respectivas dificuldades. Relatarei as principais que passei durante o período de estágio. Pouco conhecimento na utilização do Framework Javascript JQuery logo de início, por ser um framework de uso padronizado na empresa, tive bastante dificuldade por não ter um conhecimento suficiente para utilização do framework na resolução dos problemas. O uso do PHP OO, utilizando o Framework CakePHP também foi uma dificuldade enorme pra mim, não pelo fato do PHP ser orientado a objetos, mas pelo pouco conhecimento do padrão MVC, que é utilizado todos os Frameworks PHP. Uso de Inner Joins na recuperação de registros de uma ou mais tabelas de um banco de dados, muito utilizada na criação de relatóriosé comum a seleção de várias tabelas com o intuito de apresentar resultados mais específicos, o uso de dessa ferramenta para esse tipo de atividade é essencial, então tive problemas com o uso correto dessa ferramenta. Dificuldade de compreender códigos existentes feitos por outros programadores com poucos comentários, sem indentação, com uma legibilidade ruim, estrutura de pastas sem padrão e desorganizadas. 14 5 DISCIPLINAS RELACIONADAS Várias disciplinas do curso de TSI estão relacionadas as atividades desenvolvidas no estágio, as disciplinas são: Algoritmos Programação para Internet I (HTML, Javascript, W3C) Programação para Internet II (PHP, Estrutura de Pastas) Gerência de Banco de Dados Tecnologia Orientada a Objetos Linguagem Orientada a Objetos Interação Humano-Computador (IHC) A relação das atividades com as disciplinas do curso de TSI: Programação para Internet I, nessa disciplina é evidente a relação, pois na maioria das atividades realizadas no estágio envolviam criação de páginas e manipulação de tags e elementos nas páginas HTML, além do uso de Javascript para deixar a página mais dinâmica; Programação para Internet II, o uso do PHP para a resolução dos problemas; Gerência de Banco de Dados, a utilização de instruções SQL, tanto diretamente no banco quanto na aplicação nos scripts PHP, para manipulação de registros, e manipulação do banco de dados também, além do uso frequente de Joins na seleção de registros nas atividades que envolviam relatórios; 15 Tecnologia Orientada a Objetos e Linguagem Orientada Objetos, disciplinas que deram base ao entendimento do conceito de orientação a objetos e aplicação da teoria na prática, que estão relacionadas ao uso do PHP OO no desenvolvimento das atividades, um exemplo do uso, eram nas atividades de importações de registros, e uso dos Frameworks PHP; Interação Humano-Computador (IHC); a relação dessa disciplina com as atividades era a importância da desenvolvimento de uma interface amigável ao usuário, envolvendo acessibilidade, usabilidade e etc. 16 6 CONCLUSÃO O estágio me proporcionou um conhecimento muito mais amplo no desenvolvimento Web. Pude aprimorar mais minhas habilidades em programação Web com PHP, adquiri muito mais conhecimento tanto prático, quanto teórico, mais experiência e responsabilidade, ensinou-me a trabalhar em equipe. É notável a evolução no desempenho de raciocínio lógico, produtividade e conhecimento que tive depois que conclui o estágio. Isso tudo deve a troca de conhecimentos entre a equipe de desenvolvimento, resolução de problemas nas atividades e pesquisas por soluções eficientes para resolver os problemas. Aprendi muito com os erros, mas pude absorver todos os conselhos e sugestões compartilhadas pelos parceiros de equipe, no qual acrescentou muito na minha formação profissional. O estágio é uma etapa muito importante e essencial na minha formação. 17 REFERÊNCIAS PHP Documentation Group, Manual do PHP. Disponível em <http://php.net/manual/pt_BR/index.php/> Data de acesso: 01 jun. 2013. FLUXOTI, Sobre Nós. Disponível em <http://fluxoti.com/index.php>. Acesso em: 13 jun. 2013. Cake Software Foundation, Getting Started. Disponível em <http://book.cakephp.org/2.0/en/getting-started.html>. Data de acesso: 01 jun. 2013. Asterisk, Get Started. Disponível em < http://www.asterisk.org/get-started>. Data de acesso: 01 jun. 2013 International SCRUM Institute, What is SCRUM?. Disponível em < http://www.scrum-institute.org/What_Is_Scrum.php>. Data de acesso: 01 jun. 2013 World Wide Web Consortium (W3C), About W3C. Disponível em < http://www.w3.org/Consortium/>. Data de acesso: 01 jun. 2013 HostSul, O que é suporte via Ticket ?. Disponível em < http://www.hostsul.com/clientes/knowledgebase/31/O-que-e-suporte-via-Ticket.html>. Data de acesso: 01 jun. 2013 HostSul, O que é suporte via Ticket ?. Disponível em < http://www.hostsul.com/clientes/knowledgebase/31/O-que-e-suporte-via-Ticket.html>. Data de acesso: 01 jun. 2013 W3Schools.com, SQL JOIN. Disponível em < http://www.w3schools.com/sql/sql_join.asp>. Data de acesso: 01 jun. 2013 18 EllisLab, CodeIgniter User Guide Version 2.1.3. Disponível em <http://ellislab.com/codeigniter/user-guide/index.html>. Acesso em: 13 jun. 2013. Tárcio Zemel, MVC (Model-View-Controller). 30 de março de 2009. Disponível em < http://codeigniterbrasil.com/passos-iniciais/mvc-model-view-controller/>. Acesso em: 13 jun. 2013 19 20 21 22 23 24 25 26 27
Compartilhar