Rubens dos Santos Junior DESENVOLVIMENTO UM DE SISTEMA DE COMUNICAÇÃO INTERNA NO IFSP SÃO JOÃO DA BOA VISTA. Trabalho de conclusão de curso apresentado ao Instituto Federal de São Paulo, como parte dos requisitos para a obtenção do grau de Tecnólogo em Sistemas para Internet. Área de Concentração: Engenharia de Software Orientador: Prof. Gustavo Aurélio Prieto Coorientador: Prof. Breno Lisi Romano São João da Boa Vista 2016 Autorizo a reprodução e divulgação total ou parcial deste trabalho, por qualquer meio convencional ou eletrônico, para fins de estudo e pesquisa, desde que citada à fonte. Ficha catalográfica preparada pela Seção de Tratamento da Informação do Serviço de Biblioteca – IFSP Santos, Rubens Junior. S237d Desenvolvimento de sistema de comunicação interna no IFSP São João da Boa Vista. / Rubens Junior Santos. – 2016. – 76 p. – Orientador: Gustavo Aurélio Prieto. – Trabalho de Conclusão (Tecnologia em Sistemas para Internet)– Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, Câmpus São João da Boa Vista, 2016. 1. Sistemas distribuídos. 2. Desenvolvimento de sistemas. 3. Comunicação interna. I. Título. CDD 004.36 AGRADECIMENTOS Agradeço a minha família que me apoiou em todos os momentos. Aos professores que proporcionaram o conhecimento necessário para este trabalho, em especial, meu orientador e coorientador que guiaram meus passos. Aos meus amigos que estiveram presentes em cada momento. E compartilharam comigo os momentos bons e ruins dos últimos anos. Agradeço em especial a Letícia Pereira de Almeida, que me motiva a ser alguém melhor. E agradeço principalmente a Deus pela vida, força e perseverança que me foram dadas em todo o percurso na minha formação. RESUMO Santos, Rubens Junior. (2016). Desenvolvimento de sistema de comunicação interna no IFSP São João da Boa Vista. Trabalho de Conclusão de Curso - Instituto Federal de São Paulo, São João da Boa Vista, 2016. Atualmente, as falhas de comunicação dentro de instituições de ensino podem comprometer toda a estrutura de trabalho da instituição, além de influenciar negativamente na qualidade dos serviços prestados. O desenvolvimento de uma ferramenta de transmissão de mensagens pode solucionar uma parte desse problema, agilizando as transmissões de informações e tornando as relações entre a instituição e seus grupos de receptores, tanto internos quanto externos, mais confiáveis. A fim de identificar possíveis problemas de comunicação dentro do IFSP câmpus São João da Boa Vista, foi desenvolvido um projeto com o intuito de verificar essas falhas de comunicação, estudá-las e propor uma solução para os lapsos encontrados. Para tal, foram efetuadas entrevistas e questionários de modo a detectar as necessidades da instituição. Com os resultados das entrevistas em mãos, foi construído um sistema que, seguindo os requisitos recolhidos, pudesse atuar de forma positiva dentro da instituição. Para esse fim, foram empregados o uso de tecnologias de desenvolvimento de software Web como PHP, MySQL, JavaScript e Bootstrap e desenvolvimento mobile, como framework7 e Cordova. Palavras-chave: Comunicação Interna. Engenharia de Software. Desenvolvimento de Software. Android. ABSTRACT Santos, Rubens Junior. (2016). Developing of an internal communication system in IFSP São João da Boa Vista. Course Conclusion Project – Instituto Federal de São Paulo, São João da Boa Vista, 2016. Usually the failure of communication in educational institution can compromise the whole structure of work of institution, and negatively influence the quality of services provided. The development of a messaging tool can solve part of that problem streamlining the transmission of information and making the relationship between the institution and its groups of both internal and external recipients. In order to identify possible communication problems within the IFSP Campus São João da Boa Vista, a project was developed in order to check these miscommunications , study them and propose a solution to the lapses found . To this end, interviews were conducted and questionnaires to detect the needs of the institution. With the interview results in hand, it built a system that, following the collected requirements, could act positively within the institution. To this end, we employed the use of Web software development technologies such as PHP, MySQL, JavaScript and Bootstrap, and mobile development like Framework7 and Cordova Keywords: Internal Comunication. Software Engineering. Software Development. Android. LISTA DE QUADROS Quadro 1 – Dados sobre desenvolvimento de softwares (2014) ...................... 26 Quadro 2 – Dúvidas frequentes sobre software e Engenharia de Software ..... 28 LISTA DE FIGURAS Figura 1 - Exemplo de interface gráfica do IFNEWS. ....................................... 23 Figura 2 - Exemplo de interface gráfica do IFNEWS. ....................................... 23 Figura 3 - Exemplo de interface gráfica do IFNOTAS....................................... 24 Figura 4 - Exemplo de interface gráfica do IFNOTAS....................................... 25 Figura 5 - Camadas da Engenharia de Software. Fonte: Pressman (2010). .... 29 Figura 6 - Exemplo de fluxo Modelo Cascata.. ................................................. 33 Figura 7 - Modelo de trabalho Scrum. Fonte: Pressman, 2010, p.70. .............. 35 Figura 8 - Passos da metodologia aplicada no projeto. .................................... 43 Figura 9 - Como você se informa das notícias fora da instituição?................... 46 Figura 10 - Como você recebe informações do IFSP dentro da instituição? .... 47 Figura 11 - Com que frequência você entra no site da instituição? . ................ 47 Figura 12 - Você se considera bem informado sobre notícias, eventos, prazos, mudanças de horários e acontecimentos gerais dentro do IFSP? ........................................................................................ 48 Figura 13 - Em qual desses dispositivos você mais acessa a internet? Fonte: Desenvolvido pelo autor...................................................... 49 Figura 14 - Você possui um aparelho smartphone e/ou um Tablet? ................ 49 Figura 15 - Caso de uso da aplicação – Instituição .......................................... 53 Figura 16 - Caso de uso da aplicação – Usuários ............................................ 54 Figura 17 - Diagrama de estrutura do projeto ................................................... 56 Figura 18 - Menu principal da interface Web .................................................... 58 Figura 19 - Modelo lógico do banco de dados com relacionamento mensagem-categoria ..................................................................... 59 Figura 20 - Tela de cadastro de categoria ........................................................ 60 Figura 21 - Lista de mensagens cadastradas ................................................... 61 Figura 22 - Tela de exibição de mensagens ..................................................... 61 Figura 23 - Modelo lógico do banco de dados com relacionamento grupo_email-emails ........................................................................ 62 Figura 24 - Modelo lógico da tabela usuários ................................................... 63 Figura 25 - Modelo lógico do banco de dados completo .................................. 64 Figura 26 - Interface mobile – Tela Inicial ......................................................... 65 Figura 27 - Menu lateral do aplicativo ............................................................... 66 LISTA DE SIGLAS ADT Android Development Tools (Ferramentas de desenvolvimento Android) CSS Cascading Style Sheets (Folhas de Estilo em Cascata) FTP File Transfer Protocol (Protocolo de Transferência de Arquivos) HTML HyperText Markup Language (Linguagem de Marcação de Hypertexto) HTTP Hypertext Transfer Protocol (Protocolo de transferência de Hypertexto) IDE Integrated Development Environmen (Ambiente de Desenvolvimento Integrado) IFCE Instituto Federal de Educação, Ciências e Tecnologia do Ceará IFSP Instituto Federal de Educação, Ciências e Tecnologia de São Paulo ODBC Open Database Connectivity (Conectividade Aberta de Banco de Dados) PHP PHP: Hypertext Preprocessor (PHP: Preprocessador Hypertexto) SDK Software Development Kit (Kit de desenvolvimento de Software) SGBD Sistema Gerenciador de Banco de Dados SMTP Simple Mail Transfer Protocol (Protocolo de tranferência de correio Simples) SOA Service-Oriented Architecture (Arquitetura Orientada a Serviço) SQL Structured Query Language (Linguagem de Consulta Estruturada) SUMÁRIO 1 INTRODUÇÃO .......................................................................................................... 17 1.1 Motivação ............................................................................................................................. 18 1.2 Objetivos ............................................................................................................................... 18 1.3 Objetivos específicos ............................................................................................................ 18 1.4 Organização deste trabalho ................................................................................................... 19 2 PESQUISA BIBLIOGRÁFICA ................................................................................... 21 2.1 Dificuldade de Informação em Instituições de Ensino ......................................................... 21 2.2 Sistemas existentes para comunicação.................................................................................. 22 2.3 Desenvolvimento de software ............................................................................................... 25 2.3.1 Engenharia de Software ..................................................................................................... 27 2.3.1.1 Modelos de projetos ...................................................................................................... 30 2.3.1.1.1 Levantamento de Requisitos................................................................................................ 30 2.3.1.1.2 Análise de Requisitos .......................................................................................................... 31 2.3.1.1.3 Projeto ................................................................................................................................. 31 2.3.1.1.4 Implementação .................................................................................................................... 32 2.3.1.1.5 Testes ................................................................................................................................... 32 2.3.1.1.6 Implantação ......................................................................................................................... 32 2.3.2 Modelos comuns ................................................................................................................ 32 2.3.2.1 Modelo em cascata ........................................................................................................ 32 2.3.2.2 Scrum ............................................................................................................................ 33 2.3.3 Implementação de software ................................................................................................ 35 2.3.3.1 HTML ........................................................................................................................... 36 2.3.3.2 CSS ............................................................................................................................... 36 2.3.3.3 PHP ............................................................................................................................... 36 2.3.3.4 Android ......................................................................................................................... 37 2.3.4 Banco de Dados ................................................................................................................. 38 2.3.4.1 Mysql ............................................................................................................................ 39 2.3.4.2 SQLite ........................................................................................................................... 40 2.3.5 Sistema distribuído ............................................................................................................. 40 2.3.5.1 Web Services ................................................................................................................ 41 3 METODOLOGIA ........................................................................................................43 3.1 Definição de atividades......................................................................................................... 43 3.1.1 1º Passo - Levantamento de requisitos ............................................................................... 44 3.1.2 2º Passo - Análise de requisitos.......................................................................................... 44 3.1.3 3º Passo - Projeto do sistema ............................................................................................. 44 3.1.4 4º Implementação e Teste .................................................................................................. 44 3.2 Execução das atividades ....................................................................................................... 45 3.2.1 Levantamento de requisitos................................................................................................ 45 3.2.1.1 Alunos ........................................................................................................................... 45 3.2.1.2 Acesso à Informação ..................................................................................................... 48 3.2.1.3 Funcionários.................................................................................................................. 50 3.2.1.4 Conclusões das entrevistas............................................................................................ 52 3.2.2 Análise de requisitos .......................................................................................................... 52 3.2.2.1 Estrutura do projeto ...................................................................................................... 55 3.2.3 Implementação e teste ........................................................................................................ 56 4 RESULTADOS ...........................................................................................................67 5 CONCLUSÕES ...........................................................................................................69 REFERÊNCIAS ................................................................................................................71 APÊNDICE A - QUESTIONÁRIO DE ANÁLISE DE CENÁRIO ...............................................74 APÊNDICE B - PERGUNTAS DA ENTREVISTA AOS COORDENADORES ............................. 76 Capítulo 17 1 Introdução Como será apresentada no Capítulo 3, a comunicação interna é um dos problemas enfrentados pelo Instituto Federal de Educação, Ciências e Tecnologia do Estado de São Paulo1 (IFSP) situado na cidade de São João da Boa Vista, localizada no leste paulista, próxima a divisa de Minas Gerais. Fundado em 2008. Esta unidade conta com mais de 10 laboratórios, biblioteca e auditório com 130 lugares; oferece cursos de engenharia, superior em tecnologia, técnicos, ensino médio integrado e EaD. A própria instituição, como comunicadora, necessita enviar diversas informações para vários possíveis interlocutores, dentre eles, alunos, professores e servidores públicos, em geral, trabalhadores da instituição; sem contar a comunidade participativa de seus projetos. O que torna as informações como: comunicação de reuniões, mudança de horários e atividades de importância vital no câmpus; e afetam diretamente os interlocutores, que necessitam dessas informações com antecedência e fácil acesso. Atualmente, um dos mais versáteis e ágeis meios de comunicação é a internet, inicialmente desenvolvida no final da década de 50 como uma rede experimental para comunicação das agências de segurança norte-americana com o nome ARPANET. Com o passar do tempo e o crescimento de dispositivos disponíveis para comunicação via internet, foram criadas novas formas de conexões mais rápidas, eficientes e seguras, como por exemplo, a criação de protocolos de comunicação e de transporte de dados (TANENBAUM, 2011). O desenvolvimento de um sistema que, através da internet, atualize os interlocutores descritos de informações importantes dentro do câmpus pode representar um grande avanço na distribuição de informações dentro do IFSP. Nesse sistema, os receptores destas mensagens devem ser gerenciados através de grupos pré-definidos, podendo manter o envio de informações fechado apenas a remetentes especificados. 1 http://sbv.ifsp.edu.br/ 18 Para melhor acessibilidade por parte dos usuários, o sistema pode ser desenvolvido com uma interface Android que, através de um login, sincroniza as mensagens destinadas a esse usuário e salvá-as em uma base de dados dentro do dispositivo, para poder ser acessada a qualquer momento. 1.1 Motivação A motivação para a realização deste trabalho deve-se a necessidade de modernizar a forma de comunicação interna dentro do IFSP agilizando processos e possibilitando melhor distribuição de mensagens dentro do câmpus. Também a necessidade de melhora na gerência de informações dentro da instituição que tem um grande número de alunos e servidores, com diversas possibilidades de interação possíveis, tornando a distribuição de informações complexas. 1.2 Objetivos O objetivo do trabalho é a concepção de um sistema nas plataformas Android e Web, para troca de mensagens entre a instituição IFSP-SBV para com servidores, alunos, professores e a comunidade externa da faculdade, visando melhorar a comunicação entre eles, aumentando assim a disseminação das informações dentro deste corpo social. 1.3 Objetivos específicos Dentre os objetivos específicos deste trabalho, constam: Apresentar a necessidade de uma atualização das formas de transmissão de mensagens dentro do Instituto Federal. Levantar as necessidades dos interlocutores supracitados, dentro do contexto especificado anteriormente, para a criação desse Sistema Android. 19 Em posse das necessidades, é possível fazer o mapeamento de um sistema que possa sanar as exigências da instituição, no que se refere a troca de mensagens institucionais dentro da mesma, mas ainda não o desenvolvendo. Com tais processos concluídos, é dado início a fase de desenvolvimento do sistema de troca de mensagens entre servidores do (IFSP). Nesse desenvolvimento, disponível no Capítulo 02 – Levantamento Bibliografico e Capítulo 03 – Metodologia, é possível a visualização de todos os elementos constantes aqui, ou seja, desde a concepção do projeto, até sua conclusão e resultados. Resultados esses, que também fazem parte dos objetivos específicos do trabalho, dentre esses resultados pode-se avaliar a satisfação e a eficiência da aplicação, verificando possíveis melhorias para futuras atualizações da mesma. 1.4 Organização deste trabalho Com tais processos concluídos, é dado início a fase de desenvolvimento do sistema de troca de mensagens entre servidores do IFSP. Neste desenvolvimento, disponível no Capítulo 2 – Levantamento Bibliográfico e Capítulo 3 – Metodologia, é possível a visualização de todos os elementos constantes aqui, ou seja, desde a concepção do projeto até sua conclusão e resultados. Resultados estes que também fazem parte dos objetivos específicos do trabalho, dentre estes efeitos. Capítulo 21 2 Pesquisa Bibliográfica Neste capítulo será apresentado um resumo dos maiores problemas encontrados em instituições de ensino quanto à comunicação e algumas aplicações desenvolvidas para solucionar problemas semelhantes em outras instituições. Além disso, será mostrada uma síntese dos temas abordados neste trabalho, de forma que se possa entender os termos e métodos utilizados na produção deste projeto como um todo, tanto a parte teórica como a prática. Serão mostrados os conceitos e tecnologias relacionadas à Engenharia de Software, desenvolvimento de sistemas, princípios de sistemas distribuídos e arquiteturas de redes cliente e servidor. 2.1 Dificuldade de Informação em Instituições de Ensino A comunicação interna geralmente é definida como o método utilizado para manter informados os membros internos da organização sobre os objetivos e interesses organizacionais. Porém ela é muito mais abrangente do que isso, podendo ser definida como ações coordenadas para receber e enviar informações, qualificar e alinhar pensamentos e princípios a fim de desenvolver um conceito positivo sobre a organização (CURVELLO, 2012). Para Ruggiero (2012), a boa comunicação, efetiva e de qualidade, se dá quando existe veracidade nos interlocutores. Quando não existe autenticidade, é criado um cenário de aparências que leva à perda de tempo e desinformação. É de suma importância que o conteúdo informado seja entendido por todos para uma boa utilização do mesmo. Starec (2002) destaca alguns dos maiores problemas dentro de uma instituição de ensino quanto às informações. Ele lista estes problemas e os descrevem como uma reflexão de comportamentos negativos que representam barreiras no fluxo de informação. 22 Para o autor, a concentração de informações em apenas um indivíduo pode apresentar um grande problema se este não tiver a cultura de dividir essas informações ou mesmo se grandes estoques de informações se encontrarem em locais sem acesso aos interessados. A velocidade de transmissão dessa informação também é um ponto importante a ser considerado na visão do autor. No mundo de hoje, informações podem ficar obsoletas muito rápidamente. Uma informação pode ser relevante em um momento, mas pode deixar de o ser muito rápido, logo é preciso se atentar a esse fato. O autor conclui acentuando que a instituição não pode perder suas diretrizes e avaliar todos os pontos relacionados com a distribuição eficiente da mensagem para não se perder informações pelos métodos de comunicação, nem perder conhecimento por falta de informações relevantes. 2.2 Sistemas existentes para comunicação Por ser um problema recorrente em diversas instituições, é possível encontrar alguns trabalhos que se propõe a amenizar as falhas na comunicação dentro das instituições. Um dos trabalhos que pode ser mencionado é o IFNEWS2 distribuído por Murilo Vargas, no repositório virtual de dispositivos Android da Google. Abaixo nas Figuras 1 e 2 estão exemplos da interface do IFNEWS. 2 https://play.google.com/store/apps/details?id=br.edu.ifsp.ifnews&hl=pt_BR 23 Figura 1 - Exemplo de interface gráfica do IFNEWS. Figura 2 - Exemplo de interface gráfica do IFNEWS. Este aplicativo Android, desenvolvido pelo IFSP câmpus Birigui, oferece um acesso rápido às informações do site da instituição e dá possibilidade para marcar uma notícia para facilitar o acesso. 24 Outra aplicação com o mesmo intuito de transmissão de informações é o IFNOTAS3. Este aplicativo tem como objetivo fornecer acesso a serviços como boletins, horários e histórico dos alunos do IFCE4 (Instituto Federal de Educação, Ciência e Tecnologia do Ceará). As Figuras 3 e 4 anexadas abaixo demonstram a interface gráfica do IFNOTAS. Figura 3 - Exemplo de interface gráfica do IFNOTAS 3 https://play.google.com/store/apps/details?id=br.fhs.ifnotas&hl=pt_BR 4 http://www.ifce.edu.br/ 25 Figura 4 - Exemplo de interface gráfica do IFNOTAS Não foi possivel estabelecer contato com os desenvolvedores de ambos os trabalhos para obter mais informações sobre o desenvolvimento. Porém, a existência de tais projetos comprova a validade desse tipo de aplicação. 2.3 Desenvolvimento de software Não há como negar que hoje os softwares são tecnologias únicas, importantes e presentes no cenário mundial. Eles estão inseridos em todas as instâncias de nossas vidas. Vários exemplos como controle do tráfego aéreo, previsões climáticas de alta precisão, transmissão de mensagens e análises médicas utilizam softwares para melhorar seu desempenho, além de outras infindáveis aplicações possíveis que tornam nosso dia a dia mais confortável. As pessoas confiam seus empregos, segurança e, algumas vezes, suas vidas em softwares de computador (PRESSMAN, 2010). Muitas pessoas desenvolvem softwares por diversos motivos possíveis, alguns para facilitar suas atividades cotidianas de trabalho; pesquisadores para compilar e armazenar seus dados; ou ainda, simplesmente para diversão. Porém, a maior parte dos programas de computador são feitos por profissionais com uma atividade definida para propósitos específicos (SOMMERVILLE, 2007). Entretanto esse número de softwares sendo criados 26 gera dados que foram compilados no Chaos Report, um estudo feito pelo Standish Group (CHAOS, 2014) dentro de várias companhias de desenvolvimento de software. Alguns dos resultados encontrados na pesquisa citada acima estão expostos no quadro 1 apresentado abaixo. Nele pode-se analisar que, em média, os projetos de desenvolvimento de softwares ultrapassam valor e tempo esperado e não atingem todas as funcionalidades esperadas no produto final. Quadro 1 – Dados sobre desenvolvimento de softwares (2014) Dados Compilados Softwares custam em media 189% a mais do que o estimado. 94% dos projetos recomeçados. Em media 39% das funcionalidades não são atendidas. Projetos levam, em média, 222% do tempo estimado. Fonte: Standing Group, 2014 Bezerra (2007) define o desenvolvimento de um software como uma atividade complexa. Essa complexidade está diretamente ligada com a quantidade de componentes que esta aplicação utiliza. Na definição de Paula Filho (2009), um software é um elemento central dentro de um sistema de informática, nele são programadas todas as funções, são definidas as estruturas de forma flexível para integrarem-se as demais tecnologias envolvidas, como o hardware e a base de dados utilizada no sistema. E para tentar diminuir esta complexidade e minimizar a quantidade de falhas e até desistências no decorrer deste processo, são definidos processos de desenvolvimento de software (BEZERRA, 2007). Pressman (2010) argumenta que a visão de software mudou muito com os anos. A ideia de o comprador ser dono do software e responsável por todo o seu gerenciamento tem sido cada vez menos aceita. Os softwares têm evoluído cada vez mais para um sistema distribuído no qual os usuários têm a impressão de que a aplicação está rodando em seu dispositivo, mas na verdade, ele roda via internet em um servidor. Esse sistema é vantajoso, pois facilita tanto na distribuição quanto na manutenção do sistema que estará em ambientes controlados. Entretanto essa distribuição também é prejudicial, pois se ocorrer um erro, a distribuição é instantânea, portanto além da necessidade que esses sistemas sejam feitos com a velocidade que o mercado moderno exige, é necessário cada vez mais que os profissionais criem sistemas mais seguros, bem projetados e no menor tempo possível. 27 Tanto a complexidade da criação defendida por Bezera (2004) quanto as evoluções citadas por Presman (2010) mostram a necessidade de uma estruturação que auxilie os profissionais da área na criação destes softwares. A este conjunto de métodos, projetos e ferramentas que auxiliam na criação de sistemas computacionais, é dado o nome de Engenharia de Software. 2.3.1 Engenharia de Software Segundo Sommerville (2011), Engenharia de Software deve apoiar o desenvolvimento profissional de software embasando-se em técnicas, métodos e especificações que normalmente não são relevantes na criação de um software pessoal. Em sua obra, o autor lista algumas perguntas frequentes sobre Engenharia de Software, essa lista responde de forma clara alguns conceitos importantes para o entendimento dos conceitos utilizados nesse trabalho. A compilação destas perguntas e respostas é apresentada no quadro 2 anexado a seguir. 28 Quadro 2 – Dúvidas frequentes sobre software e Engenharia de Software Pergunta Resposta O que é software? Software são programas de computador e documentação associada. Produtos de software podem ser desenvolvidos para um cliente específico ou para o mercado em geral. Quais são os atributos de um Um bom software deve prover a funcionalidade e o bom software? desempenho requeridos pelo usuário. Além disso, deve ser confiável e fácil de manter e usar. O que é Engenharia de Software? É uma disciplina de engenharia que se preocupa com todos os aspectos de produção de software. Quais são as principais Especificação, desenvolvimento, validação e evolução de atividades da Engenharia de software. Software? Qual a diferença entre Engenharia de Software e ciências da computação? Ciência da computação foca a teoria e os fundamentos; Engenharia de Software preocupa-se com o lado prático do desenvolvimento e entrega de softwares úteis. Qual a diferença entre Engenharia de Software e Engenharia de Sistemas? Engenharia de Sistemas se preocupa com todos os aspectos do desenvolvimento de sistemas computacionais, incluindo Engenharia de Hardware, Software e processos. Engenharia de Software é uma parte especifica desse processo mais genérico. Quais são os principais desafios da Engenharia de Software? Lidar com o aumento de diversidade, demandas pela diminuição do tempo para entrega e desenvolvimento de software confiável. Quais os custos da Engenharia de Software? Aproximadamente 60% dos custos são de desenvolvimento; 40% são custos de teste. Para software customizado, os custos de evolução frequentemente superam os custos de desenvolvimento. Quais são as melhores técnicas e métodos da Engenharia de Software? Enquanto todos os projetos de software devem ser gerenciados e desenvolvidos profissionalmente, técnicas diferentes são adequadas para tipos de sistemas diferentes. Por exemplo, jogos devem ser desenvolvidos usando uma série de protótipos, enquanto sistemas de controle críticos de segurança requerem uma especificação analisável e completa. Portanto, não se pode dizer que um método é melhor que outro. Quais diferenças foram feitas pela internet na Engenharia de Software? A internet tornou serviços de software disponíveis e possibilitou o desenvolvimento de sistemas altamente distribuídos baseados em serviços. O desenvolvimento de sistemas baseados em Web gerou importantes avanços nas linguagens de programação e reúso de software. Fonte: SOMMERVELLE (2011, p ) 29 Pressman (2010) define a Engenharia de Softwares como uma tecnologia em camadas, ele mostra essas camadas na imagem abaixo. Figura 5 - Camadas da Engenharia de Software. Fonte: Pressman (2010). Segundo o autor, qualquer engenharia deve estar fundamentada no comprometimento com a qualidade. Deve existir uma cultura de aperfeiçoamento contínuo que possibilite o desenvolvimento de técnicas que gerem abordagens mais efetivas dentro da Engenharia de Software. Para o autor (2010, p.39), “A pedra fundamental que sustenta a Engenharia de Software é o foco na qualidade”. A próxima camada descrita pelo autor é de processos. O processo é o que mantêm as demais fases ordenadas e torna possível o desenvolvimento de software mais racional e dentro do prazo. Ele basicamente é um conjunto de atividades, tarefas e ações que são levadas em conta quando se está criando um produto. Apesar dessas definições, é preciso que o processo seja adaptável, tendo como foco sempre a meta de entregar o software dentro do tempo estimado e com a qualidade necessária. Pressman (2010) descreve a camada de métodos como responsável por fornecer as informações técnicas para desenvolver o software. Ela engloba as fases como: comunicação, levantamento de requisitos, modelagem, construção, teste e suporte. A última camada apresentada pelo autor é a de ferramentas, que representam os suportes automatizados ou semi-automatizados, que podem ser integradas, gerando informações que podem ser utilizadas por outras ferramentas. 30 Mesmo com essas definições, ainda assim a criação de um software pode ser feita de várias formas, seguindo diferentes ordens de processos. Pensando nisso foram criados diversos modelos, que podem ser seguidos para melhorar a metodologia de desenvolvimento. 2.3.1.1 Modelos de projetos Esses modelos são um conjunto de práticas estruturadas que sistematizam o desenvolvimento de um software. Ele atua como um itinerário, oferecendo controle dentro das várias atividades necessárias para finalizar um projeto de qualidade (PRESSMAN, 2010). Apesar de não existir um modelo mais aconselhável a ser seguido, deve-se analisar qual modelo pode ser mais bem aplicado dependendo do seu contexto. Levando em consideração: quantidade de pessoas envolvidas, tempo para o desenvolvimento, conhecimento técnico da equipe, facilidade de comunicação com os usuários, e muitos outros fatores podem definir qual a melhor metodologia a ser seguida (SOMMERVILLE, 2007). Existem muitos modelos, mas é possível analisar dentro deles, atividades comuns dentre a maioria dos modelos existentes. 2.3.1.1.1 Levantamento de Requisitos Segundo Bezerra (2007) pode se definir esta fase como a etapa de alinhamento entre os desenvolvedores e os usuários. São definidas as necessidades dos usuários a partir das funções requisitadas para seu negócio em específico. O autor também afirma que é necessário explorar a forma e as ferramentas atuais que o negócio utiliza. Isso se dá através de métodos como entrevistas com os usuários, análises de soluções em projetos similares, observação do ambiente do negócio. Estes dados devem ser apresentados em um documento de requisitos que exemplifica de forma simples as regras do sistema. Além disso, não deve conter informações técnicas sobre o sistema e devem ser escritos de forma que os usuários possam entender e avaliar. Este documento, em geral, apresenta três seções principais: Requisitos funcionais: as funções do sistema descritas de forma genérica. 31 Requisitos não funcionais: condições desejáveis ao sistema, como confiabilidade e desempenho. Restrições: mostra as restrições do sistema como a tecnologia empregada e plataforma específica. Muitos projetos são prejudicados por negligenciar esta fase do projeto. Ela é de suma importância e deve ser considerada a mais importante quanto à aplicação de recursos, podendo gerar grandes gastos se não feita de forma eficiente. Apesar disso, independente dos esforços aplicados no levantamento de requisitos, será necessário fazer alterações em alguns momentos, pois sempre surgem requisitos e imprevistos que não puderam ser pensados até o desenvolvimento ou os testes das aplicações, então é bom estar preparado para eles. (BEZERRA, 2007) 2.3.1.1.2 Análise de Requisitos Após a definição inicial das necessidades que foram representadas no documento de requisitos, é necessário dividir esse projeto e verificar cada elemento deste. (BEZERRA, 2007). Assim como a fase anterior, esta também não leva em consideração as tecnologias que serão aplicadas, apenas se define a melhor forma de resolver cada um dos problemas de forma isolada. Por isso essa fase sempre deve estar alinhada com os processos de validação, que é a análise se o que está sendo projetado supri as necessidades do cliente; e verificação, que examina se a solução está sendo realizada de forma correta. (BEZERRA, 2007) 2.3.1.1.3 Projeto Esta fase define “como” será feito o software agregando toda a análise feita até agora com os aspectos técnicos a serem seguidos, como linguagens de programação a serem utilizadas, gerenciador de banco de dados, padrões de interface, entre outros pontos relevantes na construção do sistema como um todo. Apesar de apresentados separadamente, a linha que separa o projeto e análise é bem tênue, podendo muitas vezes se misturar, principalmente, dentro de sistemas orientados ao objeto. (BEZERRA, 2007) 32 2.3.1.1.4 Implementação Nesta etapa, a partir dos documentos gerados nas fases de análise, o sistema é transformado em um código executável através de uma ou mais tecnologias de programação. (BEZERRA, 2007) 2.3.1.1.5 Testes Para atingir a qualidade necessária para o projeto, são realizados testes e gerados os relatórios em que são analisados os erros. No fim dessa fase espera-se ter finalmente um produto de software. (BEZERRA, 2007) 2.3.1.1.6 Implantação A fase final do processo. Na qual o sistema é entregue ao cliente junto com sua documentação e, dependendo do sistema, é feita a migração do sistema e dados pré-existentes. (BEZERRA, 2007) 2.3.2 Modelos comuns Partindo dessas atividades, é possível seguir diversos modelos de software existentes. Para este projeto, serão descritos dois modelos comuns de utilização seguindo a literatura de Pressman (2010). 2.3.2.1 Modelo em cascata Considerado o paradigma mais antigo da criação de software, esse modelo basicamente segue o ciclo de vida clássico de um software seguindo um fluxo linear. Esse fluxo é mostrado na figura 6, anexada a seguir. 33 Figura 6 - Exemplo de fluxo Modelo Cascata. Fonte: Adaptado de Pressman (2010). Segundo Pressman (2010), este modelo é funcional quando se tem todos os requisitos bem definidos. Ideal para adaptações de softwares já existentes, pois sua linearidade torna difícil alterar requisitos com o projeto em andamento. Além disso, não se tem uma prévia do software para testes, o que pode tornar-se um problema se alguma adversidade não for identificada nas primeiras fases. O autor destaca que, nas últimas décadas, tem se questionado a funcionalidade deste modelo, pois com a grande necessidade de flexibilidade e possibilidade de alterações no escopo do projeto, um modelo que depende de definições claras de requisitos pode não atender as expectativas de forma positiva. 2.3.2.2 Scrum Scrum é o nome de um dos meios de se reiniciar a partida após uma penalidade dentro do jogo de Rugby, que tem sua filosofia adaptada para um modelo de projetos (PRESSMAN, 2010). Segundo o autor, o Scrum segue o paradigma de modelos ágeis, que são protótipos que seguem uma linha de trabalho baseada na flexibilidade e adaptatividade para alteração de requisitos do sistema. É um modo de trabalho bastante eficiente para aplicações complexas que geralmente apresentam mudanças de requisitos. O Scrum é bastante focado em aumentar a comunicação entre os grupos de desenvolvimento e a distribuição de conhecimento. Bastante adaptável a mudanças, 34 permitindo adição de requisitos sempre que necessário. Além de testes e documentação contínua com o desenvolvimento. (PRESSMAN, 2010). É feito um levantamento de pendências, que demonstram os requisitos que são desejáveis dentro dessa aplicação. O conceito de agilidade se aplica na possibilidade de novas funcionalidades poderem ser adicionadas a qualquer momento do projeto. (PRESSMAN, 2010). A partir das pendências, as equipes de trabalho têm seus prazos de ação definidos, os Sprints, que geralmente acontecem a cada 30 dias. (PRESSMAN, 2010). O autor também destaca que, a base desse paradigma é a constante interação do grupo de trabalho, que tem reuniões curtas, porém constantes, sobre o andamento do projeto, dentro de cada grupo de desenvolvimento. Estas reuniões são chamadas de “reuniões de scrum” e elas têm o objetivo de responder três perguntas: O que você fez desde a última reunião da equipe? Que obstáculos foram enfrentados? O que você planeja realizar até a próxima reunião? Dentro dos grupos deve haver um Scrum Master, um líder que avalia as respostas, e identifica possíveis problemas que possam ser enfrentados futuramente. A figura 7 apresentada a seguir descreve o fluxo de trabalho do Scrum. Nela pode-se visualizar os registros de pendências que é o inicio do projeto, a divisão das pendências por equipes, e os ciclos de reuniões diárias até a entrega da funcionalidade no final do Sprint. 35 Figura 7 - Modelo de trabalho Scrum. Fonte: Pressman, 2010, p.70. 2.3.3 Implementação de software Após todo o projeto do sistema, é iniciado a fase de implementação do software. Esta fase se caracteriza na transição do modelo do sistema para o universo computacional. Para efetuar essa transição, são utilizados algorítimos que traduzem o software em instruções de forma que a plataforma escolhida como destino consiga interpretar e realizar as funções descritas. Segundo Manzano (2007), algorítimos são formas estruturadas de se encontrar e demonstrar uma resolução de um problema. Dentro da computação, eles estão frequentemente ligados a diagramas de bloco. Cormen (2002) complementa dizendo que a utilidade de se estudar algorítimos é que, a partir deles, consegue chegar à melhor e mais eficiente resposta para cada problema. Esses algorítimos mostram a semântica da transição do nosso universo para o computador, mas ainda é necessária uma sintaxe que o computador entenda. Para isso utilizam-se as linguagens de programação. As linguagens de programação são um conjunto de instruções estruturadas que tem a função de traduzir a ideia dos algorítimos de forma que o computador consiga interpretar. 36 Existem diversas linguagens de programação que podem ser aplicadas em diversos fins. A seguir, são apresentadas as linguagens que constituirão o desenvolvimento deste projeto. 2.3.3.1 HTML O HTML (HyperText Markup Language – Linguagem de marcação de Hipertexto) é uma linguagem de marcação desenvolvida em 1993. Sua função é apresentar o conteúdo no navegador formado de elementos e atributos que são atrelados uns aos outros. Os elementos são anexados ao texto através de tags que são interpretadas pelo navegador e exibem o conteúdo necessário (SILVA, 2008). 2.3.3.2 CSS Cascading Style Sheet ou folhas de estilos em cascata é a linguagem criada para aplicar estilo no HTML. Desenvolvida a fim de separar a formatação do conteúdo HTML, ele é responsável pela inserção de cores, tamanhos e estilos dentro de páginas Web (SILVA, 2008). 2.3.3.3 PHP Desenvolvida por Rasmus Lerdorf em 1994, o PHP (PHP: Hypertext Preprocessor – PHP: Pré-processador de hipertexto) é uma linguagen de programação Web muito conhecida. Ela é definida como uma linguagem de criação de scripts embutidos no HTML e interpretada pelo servidor, ou seja, basicamente o PHP é invisível para o usuário final, pois tem pouca ligação com o layout ou eventos que envolvem a aparência da página (SOARES, 2007). Segundo Niederauer (2004), as principais características desta linguagem são seu código de fonte aberto e o fato dele poder ser obtido gratuitamente pelo site oficial. Sua agregação com o HTML proporciona uma grande facilidade aos desenvolvedores, tornando possível a adição de código de marcação e de programação no mesmo arquivo .php 37 que será interpretado pelo servidor como um arquivo que contem linhas de programação (NIEDERAUER, 2004). A característica de a linguagem PHP ser interpretada pelo servidor e devolvê-la já processada proporciona menos uso dos recursos da máquina do cliente, proporcionando versatilidade e flexibilidade quanto à independência. Além de esconder as linhas de programação proporcionando o conceito de segurança por obscuridade (NIEDERAUER, 2004). Sua conectabilidade com diversos bancos de dados também pode ser apontada como um ponto relevante da linguagem. Além disso, vários bancos não suportados nativamente pelo PHP podem ser acessados utilizando o padrão de acesso ODBC (NIEDERAUER, 2004). 2.3.3.4 Android Graças a evolução das formas de utilização dos aparelhos celulares, a empresa Google desenvolveu a plataforma Android para estabelecer-se no mercado de dispositivos móveis (LECHETA, 2010). O desenvolvimento para essa plataforma é feito através da linguagem Android, uma linguagem para dispositivos móveis de código totalmente livre, sendo a primeira do mundo, o que alavancou muito o seu desenvolvimento (LECHETA, 2010). Essa linguagem é baseada na linguagem Java, criada pela empresa SUN em 1995. Esta segue um paradigma de programação conhecido como Orientado a Objeto, largamente difundido pela sua eficiência em desenvolver soluções eficientes para problemas e produzir abstrações relacionadas ao mundo real (DEITEL, 2010). Sua compilação é feita através do SDK (Software Development Kit - Kit de desenvolvimento de Software) Android, que pode ser inserido em diversas IDE´s (Integrated Development Environment - Ambiente de Desenvolvimento Integrado) de programação, e utilizando de um plug-in chamado ADT (Android Development Tools - Ferramentas de desenvolvimento Android), é possível executar um emulador do sistema Android. Tanto o SDK quanto o plug-in ADT são distribuídos gratuitamente pela Google (LECHETA, 2010). 38 2.3.4 Banco de Dados Dentro do sistema proposto, será necessário armazenar de modo que possam ser transmitidos. Esse sistema de persistência de dados deve ser estruturado de modo que seja possível adicionar e consultar informações, além de relacionar os usuários para organizar a transmissão das informações. Esta função de armazenamento é feita por um sistema de banco de dados. Segundo Elmasri e Navathe (2005), dados são ocorrências com significado latente que podem ser armazenados, como nomes, datas e endereços. Um conjunto de dados interligados entre si é chamado banco de dados. Na visão dos autores, apenas essa explicação sobre banco de dados pode ser um pouco genérica. Para complementar esta visão, os autores definem algumas propriedades que são inerentes a um banco de dados. A capacidade de expressar algo do mundo real, sendo afetado pela mudança do mesmo; a coerência e consistência dos dados armazenados e um grupo de pessoas interessadas nos dados armazenados. Os escritores ainda explicam que o tamanho e a complexidade do banco de dados podem variar dependendo da sua função ou importância, podendo ser desde uma pequena lista de endereços até as informações fiscais de um país. Todos os dados devem ser gerenciados de modo que os usuários possam cadastrar novas informações, pesquisar, alterar ou deletar informações já cadastradas. Esse gerenciamento pode ser feito de forma orgânica, ou automatizada com auxílio de computadores. Segundo os autores, um banco de dados com poucas informações ou de baixa complexidade pode ser gerenciado por pessoas com planilhas de papel, se a quantidade de informações e a complexidade de relações aumentam é viável utilizar um Sistema Gerenciador de Banco de Dados (SGBD). Eles também definem, SGBD é um conjunto de programas que oferecem aos usuários todas as funções de um banco de dados, facilitando o projeto, criação, gerenciamento e distribuição dos bancos. Eles também oferecem ferramentas contra falhas e controle de acesso. Esses sistemas oferecem diversas vantagens aos usuários: o controle de dados redundantes, armazenar várias vezes o mesmo dado, de forma que evite problemas tanto de 39 espaço quanto de inconsistência; sistema gerenciamento de permissões, para proteger dados confidenciais; a possibilidade de backup e restauração de dados entre outras são funções que os autores citam como relevantes na escolha de um bom SGBD. Com a criação de um banco de dados, Elmasri e Navathe (2005) descrevem que é possível uma abstração de dados que simplificam o uso. Essa abstração pode ser obtida pelo uso de um modelo de dados. Estes modelos são paradigmas que representam o funcionamento de um banco, além de geralmente incluir algumas operações básicas. Esses modelos são definidos como modelos conceituais e modelos lógicos. Os modelos conceituais são usualmente utilizados pelos especialistas da área de computação e demonstram como os dados são armazenados no computador. Modelos lógicos, por sua vez, orientam o usuário na forma como as informações podem ser trabalhadas. Modelos físicos apresentam os princípios de entidades, atributos e relacionamentos. Entidades representam a abstração de um objeto do mundo real, ou um conceito a ser trabalhado no sistema. Atributos são as características provenientes de cada entidade. E os relacionamentos são descritos como a forma como umas entidades se ligam umas as outras. Para se trabalhar com bancos de dados relacionais é utilizada uma linguagem especializada chamada de Structured Query Language (SQL). Cada sistema utiliza uma própria versão de SQL, porém, por seguirem o mesmo padrão, é possível desenvolver um banco de forma muito parecida em várias plataformas que seguem esse padrão (SUEHRING, 2002). Existem diversos SGBD´s, com vantagens e limitações distintas. No projeto dessa pesquisa serão utilizados dois sistemas de gerenciamentos, um no sistema Web, para o armazenamento dos dados relativos aos usuários e as mensagens; e outro na aplicação Android, para persistência das mensagens localmente nos dispositivos. 2.3.4.1 Mysql Idealizado em conjunto pelos suecos David Axmark e Allan Larsson e o finlandês Michael Widenius, o Mysql é um SGBD relacional que utiliza a linguagem SQL. É um dos 40 mais utilizados no mundo graças a sua velocidade, possibilidade de ser multitarefa e multiusuário (MANZANO, 2007). Segundo Suehring (2002), o Mysql tem um desempenho e uma escalabilidade consideravelmente melhor que alguns SGBD´s. Além de outros pontos onde o Mysql é particularmente muito eficiente. Um desses pontos apresentados pelo autor é a grande compatibilidade com aplicações Web, que geralmente apresentam um grande número de leitura e baixo número de gravações. Outro aspecto apontado por Suehring (2002) é a grande estabilidade em seus recursos e, mesmo com o constante aprimoramento do sistema, um grande interesse em manter sempre todas as funções estáveis. Além desses pontos, o escritor aponta o código aberto e fato do MySql ser mantido por uma empresa, a Mysql AB torna seu suporte efetivo e aberto a sugestões dos usuários, como um ponto muito positivo para o sistema. 2.3.4.2 SQLite SQLite é um banco de dados incorporado. É muito famoso na comunidade de desenvolvimento móvel por ser, naturalmente, bastante leve. Além disso, o SQLite também tem como vantagens a sua facilidade de integração aos sistemas, não necessitando de nenhuma insalação ou configuração para sua utilização; tem o código aberto a comunidade e apresenta uma base de dados bem comentada. 2.3.5 Sistema distribuído Sistemas distribuídos são sistemas onde seus componentes físicos e lógicos estão conectados através de algum tipo de rede. Existem vários tipos de rede; telefones, intranet corporativa e internet são alguns exemplos de rede que conectam disposifivos. (COULOURIS, DOLLIMORE E KINDBERG, 2007). Esse conceito foi desenvolvido a partir da necessidade de compartilhar recursos; desde hardware, como impressoras ou câmeras; quanto software, arquivos ou dados de um banco. 41 2.3.5.1 Web Services Web service são sistemas computacionais que permitem interoperabilidade e interação entre máquinas através de uma rede, utilizando de uma estrutura cliente-servidor onde um cliente interage com o serviço pela internet, acessando uma interface específica. Cada serviço deve ser reutilizável e permitir que aplicações de plataformas distintas possam se comunicar e interagir um com o outro (COULOURIS, DOLLIMORE E KINDBERG, 2007). O sistema acima descrito segue os conceitos do SOA (Arquitetura orientada a serviços). SOA é um paradigma de organização e utilização de competências. Ela é baseada na estrutura de cliente e servidor e basicamente define que uma necessidade de um determinado agente computador pode ser compatível com a competência de outro. Três pontos básicos são as chaves do SOA: a visibilidade, capacidade daquele que tem necessidade e aquele que tem a competência conseguirem se enxergar mutuamente; a interação, que é a troca de informações e requisições entre as partes envolvidas; e por fim, todas as interações culminam no efeiro no mundo real, que é a resposta às interações feitas, elas podem ser o retorno de uma informação requisitada ou a mudança de estado de um objeto (OASIS, 2006). Os termos Servidores Web e Serviços Web não devem ser confundidos, um servidor Web oferece serviços HTTP básico, enquanto um serviço Web fornece um serviço baseado nas operações definidas em sua interface (COULOURIS, DOLLIMORE E KINDBERG, 2007). Segundo os autores acima, com o sistema de Web service permitindo uma combinação de distribuição de interface e aplicação, é possível fornecer várias funcionalidades. A mesma aplicação pode ser utilizada por mais de uma interface. Capítulo 43 3 Metodologia Nesta seção, é apresentada a metodologia utilizada nesse trabalho. Serão apresentados todos os passos tomados até a finalização do projeto além de apresentar os dados obtidos no decorrer do processo. 3.1 Definição de atividades Nesta sessão iremos apresentar os passos da metodologia de projeto. A figura 8 abaixo demonstra a ordem das atividades. Figura 8 - Passos da metodologia aplicada no projeto. Fonte: Desenvolvido pelo autor 44 3.1.1 1º Passo - Levantamento de requisitos Como dito na seção 2.3.1.2, segundo Bezerra (2007), o levantamento de requisitos é a fase na qual o desenvolvedor busca, através de entrevista, questionários e análise dos processos existentes; ter uma visão dos problemas a serem sanados com o produto de software proposto. É uma fase de extrema importância para o desenvolvimento, pois quando não executada corretamente pode trazer uma visão errada do problema, levando a uma solução ineficiente deste. Neste projeto, foram efetuadas entrevistas e questionários com representações de diversos agentes dentro da instituição, buscando entender os métodos e dificuldades quanto à comunicação e transmissão de mensagens. 3.1.2 2º Passo - Análise de requisitos A partir do entendimento do problema a ser tratado, é necessário propor soluções para estas adversidades analisando os resultados obtidos na fase anterior e buscando as soluções mais adequadas dentro do contexto de cada ambiente (BEZERRA, 2007). Para esse estudo, foram sintetizadas e analisadas todas as respostas obtidas pelas entrevistas e questionários aplicados a fim de obter soluções para os problemas apresentados. 3.1.3 3º Passo - Projeto do sistema Na visão de Bezerra (2007), o projeto do sistema deve definir como serão feitas as soluções propostas na fase anterior. Esta etapa deve levar em conta aspectos técnicos como linguagens utilizadas e estrutura do sistema. 3.1.4 4º Implementação e Teste A implementação é a fase onde é colocada em prática toda a documentação gerada pelo projeto do sistema. (BEZERRA, 2007). E teste é definido por Bezerra (2007), como a fase onde são analisadas as funcionalidades e sanados os possíveis erros de codificação. 45 Por se tratar de um projeto realizado por um desenvolvedor, as fases de implementação e teste foram feitas praticamente em paralelo, tornando mais ágil a produção do software e a correção de qualquer falha encontrada nos testes. Após a definição de cada um dos passos, serão apresentados relatórios de cada uma dessas fases dentro do nosso projeto detalhando os resultados obtidos, dificuldades encontradas e soluções efetuadas dentro do contexto do sistema proposto. 3.2 Execução das atividades Nesta seção descreve-se como foram executados os passos listados na seção anterior. 3.2.1 Levantamento de requisitos. 3.2.1.1 Alunos Para analisar o cenário atual da instituição, foi feito um questionário entre os alunos e servidores da instituição a fim de averiguar quais as condições de acessibilidade dos mesmos quanto a comunicação dentro da instituição. Levando-se em consideração tecnologia, frequência e facilidade de acessos à informação. Aos alunos, o questionário foi disponibilizado aos participantes da pesquisa através do serviço GoogleForms, uma plataforma gratuita para criação de formulários na internet. Ao acessar o link do questionário, o entrevistado pode responder as perguntas e enviar para uma planilha on-line com acesso exclusivo do entrevistador. Esse questionário foi elaborado com o objetivo de analisar o recebimento de informações sobre o dia a dia do campus por parte dos alunos, abrangendo alunos de todos os seguimentos do campus. Foi transmitido o link de acesso ao formulário para alunos dentro da sala de aula e acompanhado o preenchimento para sanar quaisquer dúvidas. Esta pesquisa atingiu alunos de todos os níveis de ensino. Entre alunos do ensino médio, técnico e superior, foram entrevistados 133 alunos. Abrangindo várias faixas etárias e níveis sociais. As salas escolhidas para efetuar o teste foram escolhidas de forma que todos os níveis de ensino fossem atingidos. Foram efetuadas três visitas à instituição em diferentes horários e, 46 com a permissão dos professores de cada sala, foi explicada aos alunos qual a intenção do questionario, apresentando uma breve descrição dos objetivos do projeto. Os alunos acessaram o link disponibilizado com o auxilio do aplicador. Com excessão das respostas às dúvidas, não houve nenhuma outra interação com os alunos a fim de que os dados não fossem influenciados pelo aplicador ou pelos docentes. Com as respostas obtidas dos alunos, pode-se verificar a plataforma onde os alunos acessam essas informações dentro e fora do IFSP e a satisfação com as atuais formas de transmissão de informações. A Figura 9, apresentada abaixo, demonstra o resultado das respostas dos alunos quando questionados sobre a forma como recebem informações quando estão fora da instituição. Figura 9 - Como você se informa das notícias fora da instituição? Fonte: Desenvolvido pelo autor. É possível perceber que dentre os alunos que responderam o questionário, muitos consideram os professores fonte de informação e comunicação. Quando questionados sobre a forma como recebem informações quando estão dentro da instituição, foi obtida a Figura 10 apresentado a seguir: 47 Figura 10 - Como você recebe informações do IFSP dentro da instituição? Fonte: Desenvolvido pelo autor. Analisando os resultados dos dois gráficos anteriores pode-se perceber que, tanto dentro quanto fora da instituição, muitos alunos recebem informações por métodos informais como amigos e funcionários ou através de métodos sujeitos a ação de terceiros como o quadro de avisos dentro da instituição. Porém, pode se observar que a maior fonte de informações é o site institucional. Entretanto, quando questionados sobre qual a frequência de acesso ao site, tem-se a Figura 11 demonstrando abaixo. Figura 11 - Com que frequência você entra no site da instituição? Fonte: Desenvolvido pelo autor. 48 Pode-se verificar que a maioria dos alunos entrevistados acessa ao site casualmente e, uma parcela considerável, conecta-se raramente ao portal da instituição. Isso mostra que boa parte das informações podem não ser vistas dentro do tempo hábil. Foi questionado também o nível de satisfação dos usuários com os métodos de transmissão de informações da instituição e foram obtidas as seguintes respostas apresentadas na Figura 12. Figura 12 - Você se considera bem informado sobre notícias, eventos, prazos, mudanças de horários e acontecimentos gerais dentro do IFSP? Fonte: Desenvolvido pelo autor. Avaliado essas respostas, percebe-se que a maior parte dos alunos se considera bem informado sobre as notícias do campus. Entretanto, mais de um terço dos alunos se considera mal informado e 4 % não se considera informado sobre assuntos essenciais dentro do campus. Este cenário mostra um considerável nível de desinformação por parte dos alunos, o que pode levar a casos como perda de prazos ou equívocos quanto a eventos oferecidos pelo IFSP. 3.2.1.2 Acesso à Informação A pesquisa feita com os alunos, também tinha como objetivo avaliar a forma como os alunos acessavam a internet para validar a possibilidade de criação de uma ferramenta Web de transmissão de mensagens institucionais. 49 O questionário abrangia plataforma, frequência e local de acesso à internet. Essas respostas deram origem a gráficos que ilustram a situação em cada um dos casos. A Figura 5 abaixo monstra qual a principal interface de acesso à internet dos alunos. Figura 13 - Em qual desses dispositivos você mais acessa a internet? Fonte: Desenvolvido pelo autor. Dentre os alunos avaliados, pode-se notar que a maior parte utiliza aparelho smartphone para acessar a internet. Entretanto, é necessário conhecer qual o sistema operacional predominante entre os usuários. Esse é um fator que deve ser levado em conta para criação de uma aplicação de transmissão de mensagens que abranja a maior parte dos usuários. Essa questão pode ser respondida com a Figura 14 apresentada abaixo. Figura 14 - Você possui um aparelho smartphone e/ou um Tablet? Fonte: Desenvolvido pelo autor. 50 No gráfico, pode-se notar que existe uma predominância na utilização de aparelhos com o sistema operacional Android seguidos por aparelhos com sistema IOS e Windows. 3.2.1.3 Funcionários Para conhecer o fluxo de informações dentro dos diversos setores do IFSP, foi elaborada uma entrevista dissertativa com os coordenadores de cada setor. Os setores entrevistados foram: Coordenadoria de Registros Escolares Coordenador de Pesquisa Inovação e Pós-Graduação Coordenador de Gestão de Pessoas Coordenadoria de Extensão Coordenadoria de Tecnologia da Informação Essa entrevista teve como base uma lista com seis perguntas que foram feitas aos coordenadores e, a partir das respostas, novas perguntas foram elaboradas com o intuito de melhor compreender quais eram as dificuldades e necessidades dentro do setor com relação à transmissão de informações. As perguntas realizadas na entrevista podem ser vistas no Anexo B. Foi avaliado que, dentro dos diferentes setores, o meio mais comum de difusão de informações é o e-mail. Tanto para indivíduos dentro do mesmo setor quanto para outros setores, o e-mail, quando bem utilizado, é um excelente modo de divulgar uma informação. Entretanto, uma das grandes queixas de vários setores é a não confirmação do recebimento do e-mail, o que leva a incerteza da ciencia das informações. Mesmo com a ferramenta de confirmação de recebimento, ainda assim muitos usuários não têm a cultura de confirmar recebimento. Foram apontadas dificuldades quanto ao gerenciamento de grupos de e-mail e problemas técnicos relacionados à disponibilidade do sistema de e-mail como pontos que necessitam de atenção. 51 Apesar destes pontos, os entrevistados em geral demonstraram conseguir efetuar todas as suas funções sem dificuldades. Qualquer alteração nos processos seria uma forma de aumentar a eficiência da metodologia já existente. Com a resposta dos servidores foi avaliado que, o setor com maior interação com outras áreas do campus é a Coordenadoria de Extensão. Por se tratar de um segmento que tem ligação direta com vários setores, como Coordenadoria de Registro Acadêmico e Coordenadoria de Apoio ao Ensino, é um dos poucos setores que tem contato tanto com alunos ingressos quanto alunos egressos da instituição, além de estar em contato com a comunidade em geral. Segundo o site da instituição, a Coordenadoria de Extensão tem como objetivo orientar os alunos em atividades consideradas de extensão ao seu curso, criar um vínculo entre o aluno e as empresas e, consequentemente, com o mercado de trabalho. Também tem por atribuição de organizar cursos de Formação Inicial e Continuada de modo que existam novas oportunidades para alunos e para a comunidade externa à instituição. Em suma as funções atribuídas ao setor são: Buscar parcerias para a promoção de cursos nos mais diferentes níveis para servidores docentes e técnico-administrativos; Promover palestras, encontros, seminários, visitas técnicas, estágios e outras atividades voltadas para o aperfeiçoamento específico e intelectual de toda a comunidade; Promover a aproximação do campus com a comunidade externa; Buscar apoio externo para eventos institucionais em geral; Planejar, coordenar, controlar e avaliar toda a oferta de cursos extraordinários; Promover convênios de cooperação técnico-científica, visando ao intercâmbio de informações sobre novas tecnologias; Obter doações de materiais e/ou equipamentos para melhorar as condições das oficinas e laboratórios do campus; Promover encontros com empresas e profissionais; e 52 Planejar, organizar, coordenar e controlar a execução das atividades do Serviço de Integração Escola-Empresa (estágios). Por possuir um caráter de interação com os alunos e a comunidade, esse setor utiliza redes sociais como meio de comunicação com seu público. Isto proporciona maior visibilidade ao conteúdo informado. 3.2.1.4 Conclusões das entrevistas Analisando os resultados das entrevistas e dos formulários, pode-se definir que nossos esforços para melhoria dos processos de comunicação, no momento, devem estar correlacionados a interação entre a instituição, pois como visto na Figura 4, 34% dos alunos entrevistados se considera mal informado ou nem mesmo se considera informado quanto acontecimentos do IFSP. Avaliando as Figuras 13 e 14, pode-se definir que a melhor opção para desenvolvimento de uma interface para comunicar-se com os alunos seria uma aplicação para aparelhos Android, baseado na popularidade da plataforma e predominância de uso do smartphones no dia a dia dos entrevistados. Partindo da informação que o setor que apresentou maior interação com o público foco da aplicação é a Coordenadoria de Extensão, pode-se definir que uma ferramenta de Web deve divulgar as informações para os diferentes públicos com o qual ele se relaciona. Definido o setor de Coordenadoria de Extensão como público-alvo, inicia-se na fase de elaboração do sistema proposto, levando em conta as necessidades apresentadas pelo responsável do setor durante a entrevista. 3.2.2 Análise de requisitos Após as entrevistas feitas e analisadas, obteve-se uma noção do problema a ser sanado dentro da instituição. Partindo desse ponto inicia-se a definição de quais as soluções a serem implementadas. Como principal funcionalidade, o sistema deve oferecer um cadastro e visualização de mensagens. Estas mensagens serão compartilhadas com o Facebook, conseguindo assim atingir o público externo a instituição com as mensagens compartilhadas. Ainda nas mensagens, serão definidas categorias de mensagem para melhor localização destas por parte 53 do usuário. Essas mensagens poderão ser acessadas através de um link compartilhado através de extensões aplicações em redes sociais. Esta funcionalidade visa centralizar as informações divulgadas em um só sistema, tornando mais fácil a localização de qualquer mensagem transmitida tanto para o público interno quanto para o público externo. Outra funcionalidade é a criação de grupos de e-mail. Esta funcionalidade tem como objetivo simplificar a criação de grupos para mensagens específicas, que não podem ser vistas pelo público geral, como envio de documentos ou informações a serem transmitidas para grupos fechados. Todas as mensagens deverão ser acessíveis por uma aplicação mobile. Esta interface deverá oferecer a possibilidade de salvar mensagens selecionadas como favoritas em um banco de dados interno ao aparelho para ser acessada off-line. Para melhor definir as funcionalidades e apresentar as funções que cada tipo de usuário poderá executar no sistema, foi elaborado um diagrama de casos de uso. O primeiro diagrama apresentado abaixo na Figura 15 é o de acesso ao sistema Web, dado aos atores existentes dentro do setor de Coordenadoria de extensão. Figura 15 - Caso de uso da aplicação – Instituição Fonte: Desenvolvido pelo autor. 54 É possível identificar cada uma das ações que o usuário representado pela instituição poderá exercer. Pode-se descrever cada umas dessas interações como: Logar no Sistema – Acessar as funcionalidades a partir do login com um usuário pré-cadastrado Gerenciar Usuário – Criar e deletar usuários. Gerenciar Categoria – Criar, visualizar e deletar categorias de mensagem. Gerenciar Mensagens – Criar, visualizar e deletar mensagen. Gerenciar Grupos – Criar, visualizar e deletar grupos de e-mail Enviar E-mails – Enviar e-mails a grupos de e-mail pré-cadastrados Compartilhar Mensagens – Compartilhar mensagens através de rede sociais. A Figura 16, apresentada abaixo, define as funcionalidades na visão dos usuários comuns. Figura 16 - Caso de uso da aplicação – Usuários Fonte: Desenvolvido pelo autor. Pode-se descrever os casos de uso apresentados acima da seguinte maneira: 55 Compartilhar Mensagem – Compartilhar mensagens através de rede sociais. Acessar Mensagens – Visalizar as mensagens cadastradas. Acessar Mensagens por Categoria – Listar as mensagens separadas por categorias. Acessar Mensagens por Dispositivo Móvel – Visualizar as mensagens online através do aplicativo para dispositivos móveis ou as mensagens salvas no dispositivo. Salvar Mensagem no Dispositivo Móvel – Salvar mensagens em dispositivos móveis Pode-se notar que o usuário representado na Figura 16 não tem a possibidade de criar ou gerenciar mensagens, apenas as visualiza. Esse acesso se dará através do link na postagem do Facebook ou da aplicação móvel. Com as funcionalidades definidas, segue-se para a fase de estruturação física do projeto. 3.2.2.1 Estrutura do projeto Para iniciar o desenvolvimento do sistema, foi definida a estrutura desejada para a aplicação. A Figura 17 define a arquitetura utilizada como base para o projeto. 56 Figura 17 - Diagrama de estrutura do projeto Fonte: Desenvolvido pelo autor. Nesta figura pode-se identificar quatro elementos que compõem a estrutura da aplicação. A interface Web com a função de cadastrar e gerenciar as mensagens que serão transmitidas para o servidor, um banco de dados Mysql onde serão persistidos os dados dos usuários da interface Web, uma interface Mobile para os alunos poderem acessar as mensagens compartilhadas e, por fim, um Web Service que fará a ligação entre o banco e a interface mobile. Agora com a estrutura do sistema pronta e a definição das funcionalidades, é possivel inicar a fase de implementação do sistema. Como dito anteriormente, por conta da visão, essa fase foi entrelaçada com a fase de teste e implementação. 3.2.3 Implementação e teste Para o desenvolvimento da aplicação, o primeiro passo tomado foi a criação de um ambiente para a hospedagem do projeto. Todo o projeto foi alocado em um servidor de internet locado pelo desenvolvedor. As configurações do servidor são as seguintes: Memória : 512 MB Armazenamento: SSD 20 GB 57 Sistema Operacional: Ubuntu 14.04.04 x64 IP: 45.55.222.243 Gateway:45.55.192.1 Para atuar como servidor de internet foram instalados, na máquina descrita acima, softwares essenciais fundamentais para ele atuar nesse projeto. Os softwares instalados foram: Web Server : APACHE Servidor de e-mail: Exim SGBD: Mysql Servidor FTP: VSFTPD Os demais serviços instalados no servidor como firewall, antispam e monitor de acesso não participam ativamente da elaboração do projeto, por isso não foram citados. O ambiente de desenvolvimento do sistema é um notebook do desenvolvedor do projeto que apresenta as seguintes configurações: Marca: ACER Modelo: Aspire E5 - 571 Memória: 8 GB Armazenamento HDD: 1TB Processador: Intel(R) Core(TM) i7-5500U 2.40GHz Sistema Operacional: Windows 10 pro 64 Bits A plataforma instalada para o desenvolvimento foi a IDE Netbens 8.0.2 instalada e configurada com acesso ao servidor Web do projeto via FTP(File Trasfer Protocol). Assim todas as alterações feitas são automaticamente salvas no servidor, proporcionando agilidade na visualização do produto final. Um dos problemas encontrados durante o desenvolvimento foi o bloqueio da porta responsável pelo pelo protocolo SMTP (Simple Mail Transfer Protocol), que é o protocolo 58 responsável pela entrega de mensagens de correio eletrônico (TANENBAUM, 2011). Esse bloqueio foi colocado devido a infrações ocorrida aos termos de uso da empresa locadora do servidor quanto ao envio de e-mails. Em nenhum momento da contratação esse bloqueio foi mencionado e em nenhuma página de suporte é citada a forma de desbloqueio. Após duas semanas de configuração, foi aberto um chamado com a empresa locadora do serviço e após a confirmação da necessidade do envio de e-mail no sistema, foi liberada a porta e o serviço de SMTP passou a operar normalmente. Para auxiliar na criação da interface gráfica, foi utilizada o framework de CSS Bootstrap5. Ele permitiu a criação de uma interface estruturada e leve e de fácil utilização, auxiliando a produtividade e qualidade do sistema proposto. A primeira tela criada foi a interface de menu. O menu estará presente em todas as páginas de acesso dos usuários da instituição e o principal método de navegação dentro do sistema. A Figura 18 inserida abaixo apresenta como ficou o designer final do menu. Figura 18 - Menu principal da interface Web Fonte: Desenvolvido pelo autor. Esse menu será repetido em várias páginas, entretanto para não haver reescrita de código nem para que seja necessário refazer o código em todas as páginas a cada alteração, foi utilizado uma técnica onde o cabeçalho e o rodapé de todas as páginas serão feitos em dois arquivos separados e inclusos nas páginas através da função REQUIRE_ONCE( );, uma função que permite adicionar o código fonte de um arquivo dentro de outro arquivo. Assim toda vez que uma página for criada no sistema, utilizando a função citada, o código referente ao cabeçalho e ao rodapé da página será importado dos arquivos criados. A primeira funcionalidade criada foi o gerenciamento de categorias. Estas categorias estarão ligadas diretamente com a classificação das mensagens. Esta página foi criada de forma onde o usuário possa cadastrar, visualizar e excluir as categorias na mesma tela. Essa estrutura visa centralizar todas as funções para a manipulação dessa função. 5 Mais informações acesse < https://getbootstrap.com > 59 A segunda funcionalidade desenvolvida foi a criação de mensagens. Para esse desenvolvimento foi utilizada a ferramenta CKEditor6, um plugin que fornece algumas novas funcionalidades a caixa de texto onde será inserido o corpo da mensagem. Entretanto, diferente da seção categorias, foi decidido separar a página de adição de mensagem e de listagem de mensagens; por serem funcionalidades com maior volume de informação, alocálas na mesma página poderia ser prejudicial para a experiência do usuário. Depois de codificadas essas duas interfaces, foi desenvolvido o banco de dados correspondente a essas funcionalidades. O banco de dados construído fornece uma tabela para persistência de dados de mensagens (representada pela tabela mensagem) e uma para categoria (representada pela tabela categoria), e ainda mais uma tabela para relacionar ambas as tabelas (representada pela tabela categoria_mensagem). O banco de dados foi desenvolvido a partir da ferramenta MySQL Workbench 7, uma ferramenta gráfica de modelagem de banco de dados que permite a configuração e gerenciamento de um banco de dados. A Figura 19 abaixo exemplifica como foi feito esse relacionamento. Figura 19 - Modelo lógico do banco de dados com relacionamento mensagem-categoria Fonte: Desenvolvido pelo autor. 6 Mais informações acesse: < http://ckeditor.com/ > 7 Mais Informações acesse: < https://www.mysql.com/products/workbench/> 60 O relacionamento foi feito de forma que cada mensagem possa estar anexada em uma ou mais categorias e cada categoria possa conter uma ou mais mensagens. Após criada o modelo do banco de dados referente a essa tabela, este banco foi codificado e anexado ao nosso sistema através da interface phpMyAdmin8, um aplicativo de administração de banco de dados adicionado ao MySQL. Após a inserção do banco de dados, foi configurada a conexão do nosso sistema com o banco através da função php Mysqli_connect. Após a configuração da conexão inserindo usuário, senha, nome do banco e servidor onde se encontra o banco, foi feita a validação das funcionalidades criadas até o momento. O primeiro teste foi a adição de duas categorias ao sistema, “Estágios” e “Notificações”. Essa categorias foram adicionadas através da aplicação desenvolvida. A Figura 20 demonstra o resultado dessa inserção. Figura 20 - Tela de cadastro de categoria Fonte: Desenvolvido pelo autor. Nela pode-se ver que a inserção ocorreu com sucesso. Porém após alguns novos testes, foi identificado que campos vazios eram adicionados ao sistema. Para previnir essa falha, foi implementada uma regra através do plugin Jquery Validate9. Essa validação impede que o sistema adicione campos vazios. Essa regra também foi adicionada ao campo correspondente ao nome da categoria para também impedir inserção de campos com o valor vazio. 8 Mais informações acesse: < https://www.phpmyadmin.net/ > 9 Mais Informações acesse: < https://jqueryvalidation.org/> 61 Em seguida foram efetuados testes de inserção de mensagens. Foram inseridas três mensagens; uma na categoria estágio, uma na categoria notificações e a última em ambas as categorias. Abaixo, na Figura 21, pode-se ver o resultado das inserções. Figura 21 - Lista de mensagens cadastradas Fonte: Desenvolvido pelo autor. Como pode se perceber as mensagens foram inseridas com êxito. Para a visualização de mensagens foi criada uma página que servirá de acesso aos conteúdos. Através dessa página, será possível acessar todas as mensagens postadas, podendo ser selecionadas por categorias. A figura abaixo apresenta o design dessa página. Figura 22 - Tela de exibição de mensagens Fonte: Desenvolvido pelo autor. A fim de melhorar a propagação das mensagens, foi desenvolvida uma integração com a rede social Facebook para o compartilhamento das mensagens. 62 Em seguida, as funcionalidades à serem desenvolvidas são cadastros e grupos de email. Assim, como as funções de categorias e mensagens, os grupos de e-mails estão interligadas com os e-mails. O primeiro passo tomado nessa fase foi o desenvolvimento do formulário para criação de grupos. Deste modo, como a seção de categorias, grupos de e-mail é uma tabela relacionada a e-mails no banco de dados. O desenvolvimento do formulário de cadastro de emails foi feito no mesmo modelo da página de categorias no qual, após adicionado os grupos, aparece abaixo a lista de todos os grupos cadastrados. O cadastro de e-mails se dá clicando em um dos grupos e os e-mails serão adicionados apenas aquele grupo. Após a criação da interface gráfica, foi feito o desenvolvimendo do banco de dados relativo a grupos e e-mails. O banco de dados seguiu o mesmo modelo do criado anteriormente. Cada grupo de e-mail poderá ter vários e-mails cadastrados e um e-mail poderá se repetir em mais de um grupo. A Figura 23 abaixo apresenta o modelo do banco de dados criado. Figura 23 - Modelo lógico do banco de dados com relacionamento grupo_email-emails Fonte: Desenvolvido pelo autor. Após a inserção do banco de dados no sistema, foram efetuados os cadastros de alguns elementos em grupos e e-mails para testar as funcionalidades. 63 A próxima função desenvolvida foi o envio de e-mails. Esta função foi a qual se teve a maior quantidade de problemas, pois o envio das mensagens em correios eletrônicos dependem de várias configurações, às vezes, alheias ao desenvolvimento geral. Para fazer o envio foi utilizado o PHPMailer, uma classe desenvolvida especificamente para envios de e-mail10. Esta classe é inserida e configurada no seu código e deve ser configurada com as informações do servidor que será utilizado, próprio ou terceirizado. Neste projeto utilizou-se um servidor SMTP em nosso próprio servidor. A última parte do sistema Web a ser implementada foi o sistema de login. O primeiro passo foi a criação do formulário para cadastramento de usuários com campo para cadastro de e-mail e senha, em seguida, foi criado um formulário de login na página inicial. Logo após foi criado o banco referente a usuários. Este foi o formulário mais simples à ser criado, pois não tem ligação com nenhuma outra tabela. Abaixo na Figura 24 tem-se a representação da tabela criada. Figura 24 - Modelo lógico da tabela usuários Fonte: Desenvolvido pelo autor. Após a criação da tabela em nosso sistema foi testado a inserção de novos usuários. Após todas as funções estarem funcionando, foi desenvolvido o códígo referente a lógica de login no sistema. Este código foi introduzido na página inicial, sempre que um usuário loga 10 Para mais informações acesse < http://phpmailer.worxware.com > 64 no sistema, é criada uma sessão para esse usuário. Em seguida, foi inserida a lógica para impedir que usuários não logados acessem o sistema. Com a conclusão da tabela de usuários, completamos nosso banco de dados MySQL. A Figura 25 mostra todo o banco de dados com suas relações. Figura 25 - Modelo lógico do banco de dados completo Fonte: Desenvolvido pelo autor. Após a criação do sistema Web foi desenvolvido o sistema mobile, que poderá ser uma das principais formas de acesso ao sistema. 65 A criação da interface e estrutura dessa funcionalidade foram baseados no framework Framework711. Um framework para desenvolvimento mobile utilizando HTML, CSS e JavaScript. Após a criação da estrutura, o código foi compilado em uma aplicação Android através da plataforma Cordova12, uma aplicação mantida pela Apache Fundation que tem com função transfomar aplicações desenvolvidas com HTML, CSS e JavaScript em aplicações instaláveis em diversos sistemas operacionais móveis, como IOS, Blackberry e Android. A Figura 26 abaixo apresenta a tela inicial com todas as mensagens cadastradas e, a Figura 27, o menu lateral para acesso as categorias. Figura 26 - Interface mobile – Tela Inicial Fonte: Desenvolvido pelo autor. 11 Para mais informações acesse < http://framework7.io/ > 12 Para mais informações < https://cordova.apache.org/> 66 Figura 27 - Menu lateral do aplicativo Fonte: Desenvolvido pelo autor. Capítulo 67 4 Resultados Nesta seção serão apresentados os resultados obtidos com este projeto, apresentando os rendimentos da pesquisa e do desenvolvimento envolvidos no mesmo. Como primeiro provento do projeto, pode-se apontar a definição do cenário atual da satisfação dos alunos quanto ao recebimento de mensagens por parte da instituição. Foi registrado um grande número de mensagens transmitidas através de meios não registráveis, como informações passadas por professores, funcionários e colegas de classe. Outro ponto que foi apresentado é o nivel de insatisfação dos discentes com essas formas de transmissão, no qual se pode notar que um terço dos alunos entrevistados não se considera bem informado quanto às notícias relacionadas ao IFSP. Alem foi possivel quantificar dntre os alunos entrevistados uma grande utilização de smartphones ou tablet utilizando sistema operacional android, sendo essa plataforma a principal via de acesso dos entrevistados à internet. Sendo assim é possivel indentificar aplicações de comunicação nessa plataforma como uma excelente forma de se atigir a maior quantidade de alunos possivel. Entretanto é preciso adaptar essas informações para que usuarios de outras plataformas tambem possam acessar. No setor de funcionários, podem-se apontar alguns aperfeiçoamentos no modo de trasmição de informações da instituição. A criação de uma rede interna para os usuários, integração dos e-mails institucionais e forma efetiva que combata a cultura de não confirmação de e-mails dentro da instituição, são pontos que, se estudados, podem ser uma grande melhoria para o funcionamento da instituição como um todo. Dentro da entrevista aos setores chave da instituição, foi possivel identificar o fluxo das informações, identificando a Coordenadoria de Extensão um dos setores chaves para a comunicação com todos os setores, tanto internos quanto externos. Por fim, o desenvolvimento de um sistema de transmissão de mensagens que possui integração com redes sociais e a posibilidade de acesso através de dispositivos móveis, visa 68 auxiliar a divulgação referente ao setor aplicado. Esse sistema constituído de um sistema web para gerenciamento e postagem e um aplicativo Android para acesso das informações. Este sistema se diferencia de outras plataformas já existentes que poderiam ser adaptados para o mesmo fim, como e-mail, ou blogs, pois além de oferecer uma maior possibilidade de aprimoramento, oferece uma solução personalizada para as necessidades da instituição. Ambas as aplicações desenvolvidas foram disponibilizadas para no repositório online no git hub13. 13 O código fonte do projeto pode ser acessado no seguinte link < https://github.com/Rubensdsj/IFSP-sbv- Extens-o> Capítulo 69 5 Conclusões Diante dos dados coletados pela pesquisa realizada dentro da instituição, pode-se afirmar que a comunicação institucional dentro do IFSP exibe algumas falhas que atingem vários setores. Estas falhas em formas de transmissão estão associadas tanto com as tecnologias empregadas quanto a cultura atual do ambiente. A partir de entrevistas realizadas na instituição, é possível verificar a necessidade de atuação tanto no segmento de servidores e docentes quanto ao corpo discente, todos apresentando necessidades e características variadas. Cada uma destas características deve ser levada em conta para a elaboração de soluções. O desenvolvimento do sistema apresentou uma considerável complexidade quando as funcionalidades dependendo de requisitos não necessariamente ligados à programação. Configurações e permissões de acesso podem influenciar na progressão do desenvolvimento. Outro fato que se pode perceber é a existência de uma grande variedade de possibilidades dentro do universo computacional para a interação e comunicação. O uso de redes sociais e aplicações móveis para a transmissão de mensagens cria um ambiente onde o acesso à informação pode ser muito mais fácil. Porém é necessário à criação de ferramentas que utilizem esses recursos, criando soluções dinâmicas com o objetivo de melhorar o cenário existente dentro da instituição. Dentro das definições de objetivos propostos por este trabalho, todos foram atingidos, desde a verificação do cenário atual relativo à transmissão de mensagens à análise desse contexto apresentado e o desenvolvimento de um sistema baseado neste contexto. Entretanto diversas funcionalidades podem ser anexadas ao sistema já desenvolvido. Por exemplo, um cadastro de usuários automatizado que possibilite o envio de mensagens para indivíduos específicos através do sistema de e-mail e da aplicação móvel. Outra proposta seria a atualização do sistema a fim de estender suas funcionalidades para os demais setores da instituição. 71 Referências APACHE Cordova. Disponível em: <https://cordova.apache.org/>. Acesso em: 5 jun. 2016. BEZERRA, Eduardo. Príncipios de análise e projeto de sistemas em UML. Rio de Janeiro: Elsevier: Campus, 2007. CONTRIBUTORS, p. phpMyAdmin. Disponível em: <https://www.phpmyadmin.net/>. Acesso em: 5 jun. 2016. CORMEN, Thomas H. et al. Algoritmos - tradução da 2ª edição atualizada: teoria e prática. Rio de Janeiro: Campus: Elsevier, 2002. COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas distribuídos: conceitos e projeto. 4. ed. Porto Alegre: Bookman, 2007 E , oão osé evedo. . São Paulo: Scortecci Editora, 2002. DEITEL, Paul; DEITEL, Harvey. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Assison Wesley, 2005. FRAMEWORK7 - Full Featured Mobile HTML Framework For Building iOS & Android Apps. Disponível em: <http://framework7.io/>. Acesso em: 5 jun. 2016. IFNews - Apps para Android no Google Play. Disponível em: <https://play.google.com/store/apps/details?id=br.edu.ifsp.ifnews&hl=pt_BR>. Acesso em: 2 jun. 2015. 72 IF Notas - Apps para Android no Google Play. Disponível <https://play.google.com/store/apps/details?id=br.fhs.ifnotas&hl=pt_BR>. Acesso em: em: 2 jun. 2015. IFSP – Instituto Federal de Educação, Ciência e Tecnologia de São Paulo. Disponivel em: <http://www.ifsp.edu.br/>. Acesso em: 16 maio 2015 jQuery Validation Plugin | Form validation with jQuery. Disponível em: <https://jqueryvalidation.org/>. Acesso em: 6 jun. 2016. LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 2. ed. São Paulo: Novatec, 2010. MANZANO, José Augusto Navarro Garcia. MySQL 5.0 interativo: guia básico de orientação e desenvolvimento. São Paulo: Érica, 2007. MATOS, Gustavo Gomes de Comunicação - Por que é preciso comunicar? Disponível em: <http://www.rh.com.br/Portal/Comunicacao/Entrevista/4112/por-que-e-precisocomunicar.html>. Acesso em: 15 maio 2015. MARK Otto, a. Bootstrap · The world's most popular mobile-first and responsive front-end framework. Disponível em: <https://getbootstrap.com/>. Acesso em: 3 jun. 2016. MySQL Workbench. Disponível em: <https://www.mysql.com/products/workbench/>. Acesso em: 6 jun. 2016. NIEDERAUER, Juliano. Desenvolvendo Websites com PHP: aprenda a criar Websites dinâmicos e interativos com PHP e banco de dados. São Paulo: Novatec, 2004. PRESSMAN, Roger S. Engenharia de Software. 6. ed. São Paulo: Porto Alegre: Pearson Mcgraw-Hill: Bookman, 2010. 73 PAULA FILHO, Wilson de Pádua. Engenharia de Software: fundamentos, métodos e padrões. 3. ed. Rio de Janeiro: LTC, 2009 RUGGIERO, Alberto Pirró. Qualidade da comunicação interna. Disponível em: <http://www.rh.com.br/Portal/Comunicacao/Artigo/3388/qualidade-da-comunicacaointerna.html>. Acesso em: 15 maio 2015. SILVA, Maurício Samy. Construindo sites com CSS e(X)HTML: sites controlados por folhas de estilo em casca. São Paulo: Novatec, 2008. SOARES, Bruno Augusto Lobo. Aprendendo a linguagem PHP. Rio de Janeiro: Ciência Moderna, 2007. SOMMERVILLE, Ian. Engenharia de Software. 8. ed. São Paulo: Pearson Addison Wesley, 2007. SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. STAREC, Claudio. Informação e Universidade: os pecados informacionais e barreiras na comunicação da informação para a tomada de decisão na universidade. Disponível em: <http://dgz.org.br/ago02/Art_04.htm>. Acesso em: 13 maio 2015. SUEHRING, Steve. MySQL: a bíblia. Rio de Janeiro: Elsevier: Campus, 2002. Tanenbaum, Andrew S. Computer networks. Upper Saddle River, N.J.: Prentice Hall PTR, 1996. TANENBAUM, Andrew S.; WETHERALL, David. Redes de computadores. 5. ed. São Paulo: Pearson Prentice Hall, 2011. WORX International Inc. Disponível em: <http://phpmailer.worxware.com>. Acesso em: 3 jun. 2016. 74 Apêndice A - Questionário de análise de cenário 1 - Você possui um aparelho smartphone e/ou um Tablet? Smartphone – Android Tablet – Android Smartphone – IOS Tablet – IOS Smartphone - Windows Phone Não possuo Outro: 2 - Em qual desses dispositivos você mais acesa a internet? Computador Tablet Smartphone Outro: 3 - Quanto tempo por dia você esta conectado à internet em seu dispositivo móvel ? Mais de 10h por dia Entre 10h e 8h por dia Entre 8h e 6h por dia Entre 6h e 4h por dia Entre 4h e 2h por dia Menos de 2h por dia 4 - Você utiliza o Wi-fi do IFSP? Diariamente Casualmente Raramente Não utilizo 5 - Como você recebe informações do IFSP dentro da instituição? Site Quadro de avisos Facebook Funcionários da instituição E-mail Outro: 6 - Como você se informa das noticias fora da instituição? Site Outro: Telefone Outros Alunos/Funcionários E-mail Facebook 75 7 - Com que frequência você entra no site da instituição? Diariamente Casualmente Raramente Não utilizo 8 - Você se considera bem informado sobre notícias, eventos, prazos, mudanças de horários e acontecimentos gerais dentro do IF? Muito bem informado Bem informado Mal informado Não sou informado 9 - Você considera necessário melhorar as formas de transmissão de informações dentro do instituto? Extremamente necessário Relativamente necessário Pouco necessário Desnecessário 10 - Qual a sua sugestão para melhorar a comunicação dentro da instituição ? 76 Apêndice B - Perguntas da entrevista aos coordenadores Nome:__________________________ Função: _________________________ 1 - Qual a principal ferramenta de comunicação que você utiliza dentro da instituição, e com que frequência é utilizada. 2 - Há falhas nessa forma de comunicação? Descreva. 3 - Como é feita a gerência dessas informações quanto a quem lhe envia e quando lhe envia. E quanto e quando recebem as suas informações recebe? 4 - Liste 3 coisas que você sente falta dentro da atual forma de comunicação? 5 - Quais são os principais setores que você comunica e que se comunica com você? 6 – Quais os tipos de informações que você comunica ou que é comunicado com você. 7 - Comentários