Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nilópolis - RJ 2020 ALEXANDRE DA SILVA ALVES JONATHAN DE SOUZA SANTOS LEONARDO NUNES DA SILVA WELERSON BARBOSA CUPERTINO SISTEMA DE ENSINO SEMIPRESENCIAL SUPERIOR EM TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Sistema Zer@Dengue Nilópolis - RJ 2020 Sistema Zer@Dengue Trabalho de Atividades Interdisciplinares apresentado à Universidade Pitágoras Unopar como requisito parcial para a obtenção de média semestral nas disciplinas de: Projeto orientado a Objetos. Engenharia e projeto de Software II. Programação para Web II. Orientadores: Eduardo Viana de Almeida Edison Jose de Paula ALEXANDRE DA SILVA ALVES JONATHAN DE SOUZA SANTOS LEONARDO NUNES DA SILVA WELERSON BARBOSA CUPERTINO SUMÁRIO 1 INTRODUÇÃO.................................................................................................................. 1 2 DESENVOLVIMENTO ...................................................................................................... 2 3 TAREFA 1 – ENGENHARIA E PROJETO DE SOFTWARE...............................................2 4 TAREFA 2 – PROJETO ORIENTADO A OBJETOS.........................................................12 5 TAREFA 3 – PROGRAMAÇÃO PARA WEB II.............................................................17 CONCLUSÃO ...................................................................................................................... 22 REFERÊNCIAS ................................................................................................................... 23 1 1. Introdução Das mais diferentes áreas, cada tecnologia ganha seu espaço quando aplicada uma nova funcionalidade, ou quando apresenta uma nova forma de executar seu propósito. Em meio às diversas tecnologias evolucionárias e disruptivas que surgem, as aplicações que conseguem sempre evoluir e adicionar novas funcionalidades continuam sendo utilizadas. As que não fazem isso, podem ser substituídas por alguma outra que apresente novidades. Como cita Rohers (2017) “A inovação é o motor da Administração moderna, somente ela é que atrai de forma intensa a atenção do cliente, de stakeholders, a empresa que não inova está sujeita ao fracasso”. A dengue é um grande problema de Saúde Pública que atinge todo o mundo. No Brasil, as condições climáticas tem favorecido a proliferação do mosquito ocasionando um aumento significativo do número de casos nos últimos anos. Devido ao número crescente de casos de dengue por todo país, foi solicitado que criássemos uma ferramenta que facilitasse aos cidadãos na hora de realizar denúncias de focos encontrados de mosquitos da dengue. E assim pudessem ajudar no combate à doença. Neste trabalho que será apresentado a seguir, mostraremos toda a parte web focada exclusivamente no cadastro de usuários e denúncias que podem ser feitas por cidadão comuns, afim de ajudar no combate dengue. 2 2. Desenvolvimento Tarefa 1 - Engenharia e Projeto do Software 1 - Plano de gerenciamento de projeto de software: Descrição do mundo real a ser modelado pela aplicação. Descrição dos objetivos da aplicação O Sistema Zer@Dengue foi desenvolvido com o propósito de aperfeiçoar e facilitar a forma como os cidadãos realizam denúncias no combate contra a dengue. O objetivo principal é facilitar e incentivar os cidadãos para que cada vez mais eles ajudem no combate à dengue. Problemas encontrados atualmente para se fazer denúncias de focos de dengue: Faltam ferramentas que facilitem aos cidadãos de realizarem suas denúncias. Não há um controle sobre as denúncias feitas. Burocratização do processo. Não há uma divulgação de locais para que sejam feitas as denúncias. Falta de interação entre as prefeituras e os cidadãos. Solução da nossa empresa: Escopo do projeto: A fim de resolver esses problemas, nossa empresa comprometeu-se em fazer um ótimo sistema WEB para gerenciar denúncias que ajudem no combate à dengue através de uma página simples e intuitiva. O Sistema Zer@Dengue, realizará cadastros de usuários, e permitirá que os mesmos realizem denúncias de focos de dengue de forma rápida, simples e prática. Com apenas alguns minutos em nosso site, o usuário poderá fazer sua denúncia, cadastrar imagens que comprovem de fato a denúncia, indicar o endereço e colocar as descrições que julgar mais necessária afim de facilitar a identificação do local. 3 Cronograma planejado para o desenvolvimento: Figura 1 – Cronograma de Desenvolvimento Ciclo de vida do software: Figura 2 – Ciclo de vida do software 4 2 – Declaração de objetivos (descrição do processo de desenvolvimento do software) Metodologia Adotada: RUP O Processo Unificado da Rational conhecido como RUP (Rational Unified Process), é um processo de engenharia de software criado para apoiar o desenvolvimento orientado a objetos, fornecendo uma forma sistemática para se obter vantagens no uso da UML. Foi criado pela Rational Software Corporation e adquirido em fevereiro de 2003 pela IBM. O principal objetivo do RUP é atender as necessidades dos usuários garantindo uma produção de software de alta qualidade que cumpra um cronograma e um orçamento previsíveis. Assim, o RUP mostra como o sistema será construído na fase de implementação, gerando o modelo do projeto e, opcionalmente, o modelo de análise que é utilizado para garantir a robustez. O RUP define perfeitamente quem é responsável pelo que, como as coisas deverão ser feitas e quando devem ser realizadas, descrevendo todas as metas de desenvolvimento especificamente para que sejam alcançadas. O RUP organiza o desenvolvimento de software em quatro fases, onde são tratadas questões sobre planejamento, levantamento de requisitos, análise, implementação, teste e implantação do software. Cada fase tem um papel fundamental para que o objetivo seja cumprido, distribuídos entre vários profissionais como o Analista de sistema, Projetista, Projetista de testes, entre outros. Fases do RUP: Fase de Concepção / Iniciação: Esta fase do RUP abrange as tarefas de comunicação com o cliente e planejamento. É feito um plano de projeto avaliando os possíveis riscos, as estimativas de custo e prazos, estabelecendo as prioridades, levantamento dos requisitos do sistema e preliminarmente analisá-lo. Assim, haverá uma anuência das partes interessadas na definição do escopo do projeto, onde são examinados os objetivos para se decidir sobre a continuidade do desenvolvimento. Fase de Elaboração: Abrange a Modelagem do modelo genérico do processo. O objetivo desta fase é analisar de forma mais detalhada a análise do domínio do problema, revisando os riscos que o projeto pode sofrer e a arquitetura do projeto começa a ter sua forma básica. Indagações como "O plano do projeto é confiável?", "Os custos são admissíveis?" são esclarecidas nesta etapa. Fase de Construção: Desenvolve ou Adquire os componentes de Software. O principal objetivo desta fase é a construção do sistema de software, com foco no desenvolvimento de componentes e outros recursos do sistema. É na fase de Construção que a maior parte de codificação ocorre. Fase de Transição: Abrange a entrega do software ao usuário e a fase de testes. O objetivo desta fase é disponibilizar o sistema, tornando-o disponível e compreendido pelo usuário final. As atividades desta fase incluem o treinamento dos usuários finais e também a realização de testes da versão beta do sistema visando garantir que o mesmo possua o nível adequado de qualidade. 5 3 - Descrição do Método de desenvolvimento do software:A UML (Unified Modeling Language), que significa Linguagem Unificada de Modelagem é uma linguagem padrão para modelagem orientada a objetos. Ela surgiu da fusão de três grandes métodos, do BOOCH, OMT (Rumbaugh) e OOSE (Jacobson). Esta linguagem de modelagem não proprietária de terceira geração, não é um método de desenvolvimento. Têm como papel auxiliar a visualizar o desenho e a comunicação entre objetos. Ela permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados, e é muito usada para criar modelos de sistemas de software. Além de fornecer a tecnologia necessária para apoiar a prática de engenharia de software orientada a objetos, a UML poderá ser a linguagem de modelagem padrão para modelar sistemas concorrentes e distribuídos. Utiliza-se de um conjunto de técnicas de notação gráfica para criar modelos visuais de software de sistemas intensivos, combinando as melhores técnicas de modelagem de dados, negócios, objetos e componentes. É uma linguagem de modelagem única, comum e amplamente utilizável. Embora com a UML seja possível representar o software através de modelos orientados a objetos, ela não demonstra que tipo de trabalho deve ser feito, ou seja, não possui um processo que define como o trabalho tem que ser desenvolvido. O objetivo então é descrever "o que fazer", "como fazer", "quando fazer" e "porque deve ser feito". É necessária a elaboração completa de um dicionário de dados, para descrever todas as entidades envolvidas, refinando, com isso, os requisitos funcionais do software. A Linguagem Unificada de Modelagem possui diagramas (representações gráficas do modelo parcial de um sistema) que são usados em combinação, com a finalidade de obter todas as visões e aspectos do sistema. Técnicas de modelagem adotadas no nosso Sistema: Diagramas Estruturais: De Classe: Este diagrama é fundamental e o mais utilizado na UML e serve de apoio aos outros diagramas. O Diagrama de Classe mostra o conjunto de classes com seus atributos e métodos e os relacionamentos entre classes. Diagramas Comportamentais: De Caso de Uso (Use Case): Geral e informal para fases de levantamento e análise de Requisitos do Sistema. De Máquina de Estados: Procura acompanhar as mudanças sofridas por um objeto dentro de um processo. De Atividades: Descreve os passos a serem percorridos para a conclusão de uma atividade. De Sequência: Descreve a ordem temporal em que as mensagens são trocadas entre os objetos. 6 4- Modelagem das atividades básicas do sistema: - Diagrama de casos de uso: - Digrama de Classes: 7 - Digrama de Máquinas de Estado: - Diagrama de Atividades: 8 - Diagrama de Sequência: 5- Descrição da arquitetura lógica e física: Tecnologias Adotadas: JavaScript Também capaz de aumentar a capacidade de processamento do browser. O JavaScript é uma linguagem de script que pode ser embutida na página HTML, oferecendo algumas formas de controle da página, como a validação de campos. O JavaScript pode ser usado em quase todos os browsers, sendo que o Internet Explorer apresenta diferenças na sintaxe dos comandos, o que dificulta a capacidade multiplataforma das aplicações Web que utilizam o JavaScript. CSS: Cascading Style Sheet (CSS) permite que os estilos dos elementos da página (espaçamento, cores, fontes, margens, etc.) sejam especificados separadamente da estrutura do documento, facilitando dessa forma, uma futura modificação no estilo da página PHP: Hypertext Preprocessor (PHP) segue a mesma filosofia do ASP, porém pode ser executada por diferentes servidores, principalmente na plataforma Unix (Solaris, Linux, etc.). Diferentemente do ASP, o PHP utiliza sintaxe baseada em C, Java e Perl. É uma tecnologia não-proprietária. SSI: O Server Side Includes (SSI) utiliza rótulos especiais (tags), inseridos no documento HTML que são interpretados pelo Web Server, possibilitando assim que as tags sejam substituídas 9 por conteúdo dinâmico, de acordo com o processamento realizado no servidor. As tags do SSI são específicas para cada servidor Web. Banco de Dados: Como banco de dados, as opções são muitas. Existem bancos de dados open-source como o Interbase e o PostgreSQL, freewares, como o MySQL, e comerciais, como Oracle, Informix, DB2 e Sybase, sendo estes mais voltados ao mercado corporativo. A escolha de cada tipo de banco de dados vai depender da necessidade de segurança, desempenho, escalabilidade da aplicação e das limitações financeiras. WampServer 3.1.7: WampServer (conhecido anteriormente como o acrônimo WAMP5) é um software que efetua a instalação automática de um conjunto de softwares no computador, de modo a facilitar a configuração de um software interpretador de scripts local e um banco de dados no sistema Windows. Conjunto desenvolvido pela PHP Team sob licença GNU General Public License. A partir da versão 2 ocorreu a mudança do nome, de WAMP5 para WampServer. Possui suporte a adição de add-ons (funções extras), disponíveis por download, como por exemplo, a função de ativar o uso de PHP 4 ao invés do PHP 5. Uma ferramenta que auxilia no desenvolvimento, permitindo aos programadores de websites testarem o trabalho em seus próprios computadores, sem necessitar acesso à Internet. Astah UML 6.6.4/41775 (Evaluation): O programa de computador Astah, anteriormente denominado JUDE, é uma ferramenta UML criado pela empresa japonesa Change Vision. O JUDE recebeu o prêmio "Software Product Of The Year 2006", pela Information-Technology Promotion Agency (Japão).[1] O nome do programa é um acrônimo de Java and UML Developers Environment (Ambiente para Desenvolvedores UML e Java). Astah – Utilizada nos diagramas dinâmicos, essa ferramenta já é bastante consolidada, voltada para a modelagem de sistemas utilizando a UML, utiliza como recurso adicional a modelagem MAS ML. BrModelo 3.0: Em 2005 foi desenvolvida uma ferramenta de código aberto e totalmente gratuita voltada para ensino de modelagem de banco de dados relacionais com base na metodologia defendida por Carlos A. Heuser no livro “Projeto de Banco de Dados”. A ferramenta foi concebida pelo autor como trabalho de conclusão do curso de especialização em banco de dados pelas universidades UFSC (SC) e UNIVAG (MT), orientado pelo Professor Dr. Ronaldo dos Santos Mello, após se constatar a inexistência de uma ferramenta nacional que pudesse ser utilizada para essa finalidade. Em junho de 2006 foi realizado o lançamento da versão 2.0 da ferramenta. Naquela época acreditava-se que a modelagem de bancos de dados relacionais poderia ser substituída nos próximos dez anos por ferramentas de desenvolvimento de software orientadas a objeto, que propunham a persistência do modelo de classes diretamente em um sistema de gerência de banco de dados (SGBD), sem, portanto, a necessidade de uma análise do modelo voltada exclusivamente para os dados. 10 Em 2015, passados dez anos de disponibilização da primeira versão da ferramenta, verifica- se ainda a existência de grande demanda por conhecimentos na área de modelagem de dados relacionais e, inclusive, a produção de novos artefatos para abstração dos diagramas de dados, em especial, os conceitos relacionados à modelagem conceitual e lógica. O mercado não substituiu os SGBDs relacionais e novas funcionalidades têm sido implementadas. Também por isso, a ferramenta brModelo continua a ser utilizada em várias universidades e centros de ensinos técnicos no país e até mesmo no exterior. Tudo isso motivou-nos a continuar os trabalhos de desenvolvimento e a publicar uma nova versão do brModelo, também baseada em código aberto, porém em linguagem de programação mais atual e com possibilidade de trabalhos colaborativos, cujo beta 0.1 foi lançado no site da ferramenta na data do evento Escola Regional de Banco deDados 2017 - Passo Fundo, oportunidade onde foram colhidas sugestões de melhoria pelo público para análise e possíveis aprimoramentos. PhpMyAdmin 4.9.0.1: phpMyAdmin é um aplicativo web livre e de código aberto desenvolvido em PHP para administração do MySQL pela Internet. A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves. O phpMyAdmin é muito utilizado por programadores web que muitas vezes necessitam manipular bases de dados. Normalmente, o phpMyAdmin é tratado como uma ferramenta obrigatória em quase todas as hospedagens da web, além de pacotes off-line, como o WAMPServer, XAMPP, EasyPHP e PHP Triad. Notepad++: É um editor de texto e de código fonte de código aberto sob a licença GPL. Suporta várias linguagens de programação rodando sob o sistema Microsoft Windows (possível utilização no Linux via Wine). O Notepad++ é distribuído como um Software livre. O projeto foi hospedado no SourceForge.net, onde foi baixado mais de 27 milhões de vezes e ganhou duas vezes o prêmio "SourceForge Community Choice Award" por melhor ferramenta de desenvolvimento. O projeto foi hospedado no TuxFamily desde 2010 até 2015 depois foi movido para o GitHub. Ele é baseado no Scintilla, é escrito em C++ utilizando a API Win32 e usa a STL. O objetivo do Notepad++ é oferecer um esguio e eficiente binário com uma interface gráfica totalmente modificável. As linguagens de programação suportadas pelo Notepad++ são: C, C++, Java, C#, XML, HTML, PHP, JavaScript, makefile, ASCII art, doxygen, ASP, VB/VBScript, Unix Shell Script, BAT, SQL, Objective-C, CSS, Pascal, Perl, Python, Lua, Tcl, Assembly, Ruby, Lisp, Scheme, Smalltalk, PostScript e VHDL. Além disto, usuários podem definir suas próprias linguagens usando um "sistema de definição de linguagem" integrado, que faz do Notepad++ extensível, para ter realce de sintaxe e compactação de trechos de código. Ele suporta auto complemento, busca e substituição com integração de expressões regulares, divisão de tela, zoom, favoritos, etc. Tem suporte para macros e plugins. Um plugin de usuário chamado TextFX, que provê opções de transformação de textos, é incluído por padrão. 11 HeidiSQL: (anteriormente conhecido como MySQL-Front) é um programa livre e cliente código-aberto para o MySQL, Microsoft SQL SERVER e PostgreSQL desenvolvido pelo programador alemão Ansgar Becker que é conhecido pelo seu pseudônimo Anse (www.anse.de). As versões com numeração abaixo de 3.0 são conhecidas com MySQL-Front até a versão 2.5. O programa foi renomeado em 2006 para HeidiSQL, quando, em abril do mesmo ano, Ansgar Becker disponibilizou seus códigos como um projeto livre sem fins lucrativos no SourceForge. Existe também um aplicativo comercial chamado "MySQL-Front 3.0", o qual foi desenvolvido por outro programador entre 2004 até 2006 e possui um código completamente redesenhado. O time que compõe o HeidiSQL atualmente consiste de cinco desenvolvedores oficiais [ligação inativa] e um designer. Os membros que estão trabalhando no HeidiSQL em suas horas livres disponíveis e remanescem de diferentes países: Alemanha, Dinamarca, Holanda, China e Brasil. Modelo Entidade Relacionamento: O Modelo Entidade Relacionamento (também chamado Modelo ER, ou simplesmente MER), como o nome sugere, é um modelo conceitual utilizado na Engenharia de Software para descrever os objetos (entidades) envolvidos em um domínio de negócios, com suas características (atributos) e como elas se relacionam entre si (relacionamentos). Em geral, este modelo representa de forma abstrata a estrutura que possuirá o banco de dados da aplicação. Obviamente, o banco de dados poderá conter várias outras entidades, tais como chaves e tabelas intermediárias, que podem só fazer sentido no contexto de bases de dados relacionais. Digrama de Caso de Uso (Use Case): Geral e informal para fases de levantamento e análise de Requisitos do Sistema. Diagrama de Máquina de Estados: Procura acompanhar as mudanças sofridas por um objeto dentro de um processo. Diagrama de Atividades: Descreve os passos a serem percorridos para a conclusão de uma atividade. Diagrama de Sequência: Descreve a ordem temporal em que as mensagens são trocadas entre os objetos. 12 Tarefa 2 - Projeto Orientado à Objetos 1 - Linguagem utilizada: A linguagem escolhida para o desenvolvimento do sistema Zer@Dengue foi a linguagem PHP. Pois é uma das linguagens de programação mais usadas no mundo. Com ela, programadores e desenvolvedores podem criar sites dinâmicos, extensões para aplicativos e otimizar programas e sistemas operacionais. Além de ser uma das linguagens de programação mais utilizadas do mundo. Fácil de Aprender: A linguagem PHP é uma das mais acessíveis para aprender a usar. A sintaxe (as regras que regem a lógica das configurações) tem padrões fáceis de memorizar e entender. E, se você já tem alguma noção de linguagem C ou Java, então, vai se sentir em um ambiente familiar e propício ao desenvolvimento das suas habilidades Alto Desempenho: O PHP é capaz de suportar grandes quantidades de dados. Com isso, a linguagem consegue executar muitas funções e consumir muitos recursos ao mesmo tempo. E sem comprometer o desempenho e a velocidade do servidor em que está hospedado. É Código Aberto: Isso significa que a linguagem PHP é gratuita para qualquer usuário. Mais do que isso, desenvolvedores e programadores experientes com acesso ao código- fonte podem fazer atualizações e melhorias periódicas. Isso significa mais recursos, funcionalidades, estabilidade e menos bugs (erros). É Multiplataforma: É a facilidade que os usuários têm de poder usar e rodar a linguagem PHP numa variedade de sistemas operacionais. Windows, Linux (e suas distribuições) e MacOS são alguns deles. O mesmo acontece entre os navegadores: Chrome, Safari, Edge, Firefox e Opera, entre outros, são todos compatíveis. Compatibilidade com Bancos de Dados. Um banco de dados é o local onde você guarda todos os dados e informações do seu projeto (site, blog ou loja virtual) na internet. A linguagem PHP é compatível com os principais tipos de bancos de dados, como MySQL, SQLite, Firebird, Interbase e Oracle. O Que é Possível Fazer com PHP? A linguagem PHP pode ser empregada em praticamente qualquer utilidade que você queira fazer ou desenvolver na internet. Isso inclui desde a criação de sites até o desenvolvimento de aplicações de serviços e sistemas na web. 1. Sites Dinâmicos Sites dinâmicos são aqueles em que os elementos mostrados neles não ficam estáticos. Suas páginas são gerenciadas por uma aplicação hospedada em um servidor. Com o PHP, é o usuário que determina como uma página será mostrada quando for carregada em navegador. Você pode fazer isso com plataformas de publicação de conteúdos dinâmicos, como WordPress, Drupal, Joomla, Magento e OpenCart. 2. Aplicações para Internet O PHP permite criar aplicações para qualquer tipo de finalidade na internet. Digamos que você queira incluir um formulário de contatos no seu blog. Ou um fórum de discussões para 13 fazer com que os visitantes do seu site interajam uns com os outros. Ou, ainda, desenvolver e publicar uma galeria de imagens estilizada para sua loja virtual. Tudo isso é possível usando a linguagem de programação. 3. Plugins para WordPress Plugins são extensões que adicionam novos recursos e funcionalidade ao WordPress, o CMS (Sistema de Gerenciamento de Conteúdo) mais usado no mundo. A plataforma é extremamente popular e sua comunidade de usuários e desenvolvedores é tão engajada que atualizações, melhorias e novos aplicativos são lançados com bastante frequência. Com o PHP, é possível criar plugins para o WordPress e cobrar por isso. 4. Sistemas para WebSistemas são conjuntos de dados e informações que se integram e se comunicam uns com os outros. No caso da web, são serviços que você pode desenvolver com PHP para atender a uma determinada finalidade. Pense em um sistema de cursos online com páginas de textos, vídeos, jogos interativos e telas e de logins e senhas. Ou numa rede interna de uma empresa que só os funcionários podem acessar, receber novidades, ver o planejamento das tarefas do dia e o ponto eletrônico. Concluímos que o PHP é uma das linguagens de programação mais versáteis e intuitivas que existem. Ela é muito usada não só por programadores experientes, mas também por quem está começando a aprender a como programar. Está esperando o quê para colocar a “mão na massa” e começar a desenvolver seu próprio site e aplicativo para internet? 1 - Padrões de projetos utilizados: Padrões GRASP Os padrões GRASP, sigla para General Responsibility Assignment Software Patterns (or Principles), consistem de um conjunto de práticas para atribuição de responsabilidades a classes e objetos em projetos orientados a objeto. Os padrões GRASP (General Responsibility Assignment Software Patterns), são responsáveis pela descrição de princípios de fundamental importância para a atribuição de responsabilidades em projetos orientados a objetos, oferecendo um melhor desempenho do código, e trabalhando acerca de solucionar problemas, garantindo melhor interface do projeto. Sendo assim, é importante sabermos que a qualidade do projeto orientado a objetos está diretamente relacionada com a distribuição dessas obrigações, que promovem a não sobrecarga de objetos já que ocorre nesse processo a delegação de atividades, ou seja, cada objeto terá uma função específica, de modo que, o que ele não souber fazer será repassado para o objeto que está mais preparado para fazer. Todos esses padrões servem para a resolução de problemas comuns e bastante típicos de desenvolvimento de software orientado a objeto. Portanto, tais técnicas apenas documentam e normatizam as práticas já consolidadas, testadas e conhecidas no mercado. Os padrões GRASP estão mais como uma ferramenta mental ou uma filosofia de design, mas que ainda assim são úteis para o aprendizado e desenvolvimento de um bom design de software. Note que alguns padrões GoF implementam soluções correspondentes com padrões GRASP. 14 Exemplos de Padrões: Padrões Básicos: Information Expert (ver Especialista na Informação); Creator (ver Factory Method); High Cohesion (ver Coesão); Low Coupling(ver Acoplamento); Controller (ver Model-view-controller). Padrões Avançados: Polymorphism (ver Polimorfismo); Pure Fabrication; Indirection (ver Indireção); Protected Variations (ver Variações Protegidas). 2 - Frameworks: Um framework, de modo geral, é um modelo de códigos já existentes para uma função específica necessária ao desenvolvimento de outros softwares. Em outras palavras, trata- se de uma ferramenta que une códigos comuns a diversos projetos para que o desenvolvedor não precise programar um código novo para funções que já existem. Também chamado de arcabouço, trata-se de um modelo de códigos, e não de um software a ser executado. Portanto, prevê facilidades no âmbito de sistemas operacionais e não de aplicações. Seu principal objetivo é oferecer determinadas funcionalidades prontas aos programadores, as quais servem de base para o desenvolvimento de novos projetos, gerando, assim, mais produtividades e lucratividade ao economizar tempo e cortar custos. A utilidade de um framework está nas necessidades em comum que certos projetos possuem, desde que essas semelhanças em demandas sejam razoavelmente grandes, pois, como os códigos são abstratos e genéricos, devem atender ao maior número possível de aplicações. Nesse sentido, uma de suas características muito importante é a integração entre funções diferentes. Ou seja, as funções são programadas da forma mais abrangente possível para se adequar às mais variadas circunstâncias. É preciso atentar-se também ao domínio, pois os frameworks podem ser de tipos vertical ou horizontal. Um framework vertical é direcionado a atender demandas de um domínio específico. Pode ser utilizado por diversos softwares, desde que dentro do mesmo domínio. Já os frameworks horizontais não são presos ao domínio, portanto são ainda mais genéricos. Importância em projetos de sistemas orientados à objetos: Reduzir o esforço de desenvolvimento de frameworks – Infelizmente, este processo incremental do desenvolvimento é frequentemente lento e imprevisível. Aumentar o foco do domínio específico dos frameworks – há relativamente poucos exemplares extensamente documentados de frameworks de empresas para os domínios chaves dos negócios tais como: operações bancárias, de seguros e sistemas médicos. 15 Frameworks caixa-preta – muitos peritos em frameworks favorecem frameworks caixa-preta sobre frameworks caixa-branca já que enfatizam relacionamentos dinâmicos do objeto. Documentação exata e compreensível do framework – documentar frameworks é uma atividade trabalhosa já que as ferramentas contemporâneas focalizam frequentemente na documentação de métodos orientados a baixo nível, e não captura os papéis e as colaborações estratégicas entre componentes da estrutura. Processos para controlar o desenvolvimento de frameworks – Este nível de abstração faz com que seja difícil de projetar sua qualidade e de controlar sua produção. Consequentemente, é essencial capturar e articular os processos do desenvolvimento que podem assegurar o desenvolvimento e o uso bem-sucedidos do framework. Economia do framework – auxílios para medir quanto de código foi reusado e quanto foi economizado em dinheiro com a utilização do framework. Também é necessário determinar os benefícios do framework em torno do seu investimento. Exemplos de Frameworks interessantes para utilização: Bootstrap: Simplesmente o framework mais conhecido e famoso do mundo front-end. Criado em agosto de 2011 por dois engenheiros do Twitter, a ferramenta logo se tornou uma das mais famosas na hora de criar interfaces web. Hoje estima-se que cerca de 7 milhões de sites utilizem o Bootstrap como framework front- end. Entre suas vantagens, podemos citar a documentação farta e a comunidade muito ativa, a infinidade de componentes que podem ser facilmente chamados em suas aplicações, além da boa base de padrões estéticos, que permitem criar páginas belas e funcionais. Pode parecer muito elogio, mas o Bootstrap realmente merece atenção, porque as páginas criadas com ele ficam atrativas e eficientes. Foundation: Além de ser um dos frameworks front-end mais utilizados no mundo. A vantagem de ser construído em SASS é que ele permite uma construção de aplicações mais rápida, chamando diversas funções de estilo prontas. Além disso, ele também possui integração com o JavaScript, o que permite diferentes efeitos em sua utilização. Por seguir os princípios de mobile first e melhoria progressiva, o Foundation tem a vantagem de manter um código enxuto e conciso, além de estar adaptado para os diferentes tipos de tela. Estes são alguns dos elementos que o fazem ser tão conhecido e utilizado. 3 - Arquitetura de software: Padrão MVC: O padrão de desenvolvimento de software MVC (Model view controller) traz consigo grandes vantagens para o desenvolvimento de aplicações. Vantagens como: Reusabilidade de código; uma funcionalidade já implementada em uma parte do sistema, pode ser novamente utilizada em outra parte, sem ser necessário o seu redesenvolvimento. 16 Exemplo: em um sistema toda vez que um usuário altera sua senha, ele recebe um e-mail informando a alteração. Neste mesmo sistema quando ocorre uma venda, também é enviado um e-mail informando este usuário. Os e-mails enviados possuem assunto e conteúdo diferentes, mas ambos utilizama funcionalidade de envio de e-mail. Sendo assim não é necessário realizar o desenvolvimento de um novo código de envio de e-mails, basta somente utilizar a funcionalidade existente, modificando os dados a serem enviados. Desenvolvimento rápido: neste modelo é possível que desenvolvedores e designers trabalhem simultaneamente na aplicação. Cada um trabalharia em uma camada diferente da aplicação, tornando o desenvolvimento produtivo. Fácil manutenção: como o código é dividido em partes distintas, se torna fácil adicionar novas funcionalidades e alterar características antigas. O código também fica mais fácil de ser compreendido por outros desenvolvedores. Exemplo: um sistema de uma transportadora foi feito por um desenvolvedor que não presta mais serviços para mesma. No futuro está transportadora precisa realizar uma modificação em uma parte específica do sistema, é contratado outro desenvolvedor para a tarefa. Quando o responsável pela rotina na transportadora informar o mesmo ao desenvolvedor, ele conseguirá facilmente identificar o reportado no código do sistema. Vantagens do modelo MVC: Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil manter testar e atualizar sistemas múltiplos. É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles. Torna a aplicação escalável. É possível ter desenvolvimento em paralelo para o modelo, visualizador e controle pois são independentes. 17 Tarefa 3 – Programação para web 2 Index – Página inicial do site 18 Página onde o usuário realiza seu cadastro. Mensagem de sucesso após o usuário realizar o seu cadastro. 19 Após realizar o seu cadastro, o usuário é redirecionado para Tela de Cadastro da denúncia. Mensagem de sucesso após o usuário realizar sua denúncia em nosso sistema. 20 Tela onde o usuário realiza o login no sistema para verificar o Status da denúncia feita em nosso sistema. 21 Após realizar o login, o usuário pode verificar os Status das suas denúncias no nosso sistema (no exemplo abaixo, o usuário ainda não possui nenhuma denúncia cadastrada no sistema). 22 3. Conclusão O fato de vivenciarmos no nosso cotidiano o elevado número de casos de dengue e termos o conhecimento que as medidas de prevenção são bastante simples e eficazes para a sua redução, consideramos de suma importância buscar mecanismos junto com a comunidade local para a construção de propostas de efetivo combate à dengue. O sistema Zer@Dengue, desenvolvido nesse trabalho de conclusão de período, foi modelado e implementado visando cumprir todos os objetivos previstos. Após o cumprimento do cronograma ele satisfez os objetivos. Foi desenvolvida uma ferramenta web capaz de dar ao usuário a possibilidade de se cadastrar, realizar denúncias de focos de mosquitos da dengue em qualquer parte do país, com facilidade, rapidez e eficiência. Algumas melhorias ainda precisam ser implantadas, mas tomaremos isso como foco futuramente afim de melhorar cada vez mais o sistema. 23 REFERÊNCIAS: Fonte: Vivao Linux Acesso em: 25 abril 2020. <https://www.vivaolinux.com.br/artigo/MVC-Conceito-e-exemplo-em-PHP> Fonte: Blog revelo Acesso em: 23 abril 2020. <https://blog.revelo.com.br/o-que-e-framework-exemplos-e-aplicacoes> Fonte: Web Link Acesso em: 05 maio 2020. https://www.weblink.com.br/blog/php/o-que-e-php-conheca/ Fonte: Macoratti Acesso em: 20 abril 2020. <http://www.macoratti.net/vbn_mvc.htm> Fonte: Infoescola Acesso em: 10 abril 2020. <https://www.infoescola.com/engenharia-de-software/uml/> Fonte: DevMedia Acesso em: 30 abril 2020. <https://www.devmedia.com.br/desenvolvimento-com-qualidade-com-grasp/28704> <https://www.devmedia.com.br/modelo-entidade-relacionamento-mer-e-diagrama- entidade-relacionamento-der/14332> Fonte: Computação Unitri Acesso em 12 abril 2020. <http://computacao.unitri.edu.br/downloads/monografia/49351143168297.pdf> Fonte:Arkan Acesso em 28 abril 2020. <https://arkansystem.com.br/desenvolvimento-de-softwares_e_seus_processos/
Compartilhar