Prévia do material em texto
WBA0446_v1.0 CASE As principais ferramentas no ciclo de desenvolvimento de softwares Gerenciamento de projetos de software Bloco 1 André Olímpio Projeto • É caracterizado por uma sequência clara e lógica de eventos, planejados e organizados. Início, meio e fim definidos. • Destina a atingir um objetivo claro e estabelecido, sendo conduzido por pessoas dentro de parâmetros de: • Tempo. • Custo. • Recursos envolvidos. • Qualidade. Projeto Processos de inicialização. Processos de planejamento. Processos de execução. Processos de monitoração e controle. Processos de encerramento. Projeto Necessidade (interna ou externa) Requisitos Validações Controle de versionamento • Uma versão é o registro de uma determinada situação do software em seu ciclo de vida. • A manutenção pode ser: • Corretiva: correções de código, não afetando a estrutura do software. • Agregação de recursos: novos recursos serão atribuídos ao software, afetando a estrutura. Controle de versionamento Corretiva: 1.1 1.2 1.3 1.4 Inclusão inicial. Correção da palavra Hello. Correção de palavra World. Inclusão de !!! ao final. Controle de versionamento Agregação de valores: HelloWorld.java 1.0 2.0 3.0 Versão entregue. Módulo de impressão de resultados. Conectividade com BD. DevOps • Integração entre desenvolvimento (Dev) e a operação (Ops). • Garantia da automação e do monitoramento em todas as etapas do processo de desenvolvimento. • Objetivo: fornecer entregas contínuas de pequenos incrementos do sistema, ao final de cada etapa do processo. Pipeline • Canais para garantir o fluxo e processamento de dados durante a execução de cada etapa do desenvolvimento do sistema. • Este fluxo é dividido em três etapas: • Data engineering. • Data preparation. • Analytics. Pipeline • Data engineering é um processo responsável por: • Coletar dados. • Remover possíveis inconsistências. • Inserir esses dados em um ambiente de armazenamento variado. • Data lake: repositório de dados não formatados, geralmente, objetos BLOB. Pipeline • Data preparation: processo de refinamento de dados, adicionando as regras de negócio, gerando uma base consistente para as demais etapas do fluxo. • Analytics: processo de análises sobre os dados que foram gerados na etapa de preparação. Ferramentas CASE para controle de versionamento de software Bloco 2 André Olímpio GitHub • Estrutura em ambiente web. • Plataforma de hospedagem de códigos com controle de versão. • Armazenamento de dados em repositórios que apresentam um histórico de todas as revisões e alterações feitas em um arquivo. GitHub Fonte: teguhjatipras/istock.com Figura 1 - GitHub GitHub Fonte: captura de tela do site GitHub.com. Figura 2 - GitHub GitHub Comando Descrição git branch nome_branch Criar branch. git merge nome_branch Reagrupar branch. git pull Atualizar uma aplicação localmente. git push Enviar versões atualizadas para o servidor web. git clone local_origem : local_destino Criar clone de um repositório. Principais comandos: Ferramentas CASE para gerenciamento de projetos de software Bloco 3 André Olímpio GitHub Desktop • Permite trabalhar, localmente, com repositórios disponibilizados on-line na plataforma do GitHub. • Criação de clones dos repositórios. • Extensão do GitHub. • Versões para Windows e MacOS. GitHub • Serviços disponíveis: • Trabalhar, localmente, e fazer upload diretamente no repositório do GitHub. • Utilizar todos os comandos do Git. • Visualizar mudanças feitas no repositório desde a clonagem. • Integrar projetos em plataformas diferentes. Visual Studio Team System (VSTS) • Também conhecido como Azure DevOps. • Utilizado no gerenciamento do ciclo de vida de aplicativos e projetos de software. • Possui portabilidade para serviços do GitHub. • Arquitetura de serviços em ambiente Web. Visual Studio Team System (VSTS) • Serviços disponíveis: • Utilizar os recursos de DevOps em todo ciclo de vida do software. • Utilizar serviços web semelhantes aos desktop. • Visualizar os serviços de diferentes etapas em uma única interface. • Gerenciar o projeto utilizando comandos do GitHub. Visual Studio Team System (VSTS) Fonte: captura de tela do Azure. Figura 3 - VSTS Redmine • Também conhecido como Easy Redmine. • Baseados em serviços web e correção de bugs. • Conjunto de bibliotecas utilizadas para aumentar a velocidade e a facilidade de criação de websites orientados a banco de dados. Redmine • Serviços disponíveis: • Plugins de recursos de métodos ágeis. • Cronograma de tarefas. • Interface integrada com diferentes serviços. • Integração com Microsoft Excel, Microsoft Project e Jira. Redmine Fonte: captura de tela do Azure. Figura 4 - Redmine Teoria em Prática Bloco 4 André Olímpio Sistema: câmeras inteligentes • Sistema interno de vigilância de um aeroporto. • Uma cidade de 300 mil habitantes que apresenta uma frota, aproximada, de 100 mil carros. • Software de reconhecimento facial. • Auxiliar as autoridades policiais a encontrar pessoas desaparecidas ou procuradas. Sistema: câmeras inteligentes • Identificar de que forma uma ferramenta CASE, para controle de versões, pode ser utilizada. • Qual é a necessidade de rever estados anteriores da codificação? • Como essas ferramentas poderiam auxiliar o trabalho colaborativo da equipe de desenvolvimento? • Quais são as plataformas on-line de gerenciamento de projetos de software para controle e monitoramento das tarefas? Dica do Professor Bloco 5 André Olímpio Outra ferramenta CASE (AWS CodeCommit) • Controle de versionamento de código fonte. • Seguro e confiável. • Múltiplos repositórios. • Integração com o GitHub e Microsoft Azure. Tutorial disponível em: https://www.youtube.com/watch?v=voWo0hF8mQQ. Acesso em: 7 ago 2020. https://www.youtube.com/watch?v=voWo0hF8mQQ Referências • SOMMERVILLE, I. Engenharia de Software. 10. ed. São Paulo: Pearson Education do Brasil, 2018. • PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. • ARTERO, M. A. Gestão de projetos de software. 1. ed. Londrina: Editora e Distribuidora Educacional S.A., 2016. • FILHO, W. P. P. Engenharia de Software: projetos e processos. 4. ed. Rio de Janeiro: LTC, 2019. Bons estudos!