Espelho Político

Fonte: Wikiversidade

Introdução[editar | editar código-fonte]

O Plano de Gerenciamento de Configuração retrata as atividades do Gerenciamento de Controle de Configuração e Mudança que serão realizadas ao longo do ciclo de vida do produto de software. Suas atividades envolvem apontar a configuração do software e manter sua integridade durante o projeto.

Finalidade[editar | editar código-fonte]

Este documento tem a finalidade de elaborar um padrão a ser praticado pelos integrantes da equipe com o intuito de garantir um controle maior do produto no desenrolar do projeto. Sendo assim, serão detalhados os marcos de entrega das atividades, além de todos os recursos necessários, entre eles, computadores, ferramentas e equipes; e as suas devidas responsabilidades.

Escopo[editar | editar código-fonte]

Este Plano de Gerenciamento de Configuração destina-se aos membros da equipe responsáveis pelo desenvolvimento do projeto do Espelho Político, realizado inicialmente nas disciplinas de Métodos de Desenvolvimento de Software e Gestão de Portifólios e Projetos de Software da Universidade de Brasília, que continua em andamento atualmente, e abrange todo o controle e gerenciamento da configuração do projeto.

Referências[editar | editar código-fonte]

  • Template do Plano de Gerência de Configuração do Rational Unified Process.

Gerenciamento da Configuração do Software[editar | editar código-fonte]

Papéis e Responsabilidades[editar | editar código-fonte]

A equipe é formada pelas alunas Ana Carolina Lopes da Silva e Elaine Cristina Meirelles da Universidade de Brasília. As mesmas realizarão todos os papéis previstos para uma Gerência de Configuração, como: gerente de configuração, gerente de controle de mudança e desenvolvedor, o que incluem as responsabilidades de estabelecer políticas de gerência de configuração, escrever Plano de Gerência de Configuração, configurar ambiente de gerência de configuração, criar e promover baselines, estabelecer processo de controle de mudanças, enviar, revisar e atualizar solicitação de mudança e seguir os padrões e procedimentos definidos no Plano de Gerência de Configuração.

Ferramentas, Ambiente e Infra-estrutura[editar | editar código-fonte]

GERÊNCIA DE CONFIGURAÇÃO
FERRAMENTA FUNÇÃO
Git Responsável pelo controle de versão
GitHub Responsável pela hospedagem web/online do projeto
Wiki (Wikiversidade e GitHub) Responsável pela documentação do projeto

Tabela 1 - Ferramentas de Gerência de Configuração

AMBIENTE DE DESENVOLVIMENTO
FERRAMENTA TIPO
Ubuntu 14.04 LTS Sistema Operacional
LibreOffice Writer Editor de texto
Sublime Text Plataforma de desenvolvimento

Linguagem: Ruby on Rails

Tabela 2 - Ferramentas de Ambiente de Desenvolvimento

As ferramentas de comunicação são:

  • Slack
  • Trello

O Programa de Gerência de Configuração[editar | editar código-fonte]

Configuração da Identificação[editar | editar código-fonte]

Métodos de identificação[editar | editar código-fonte]

Os artefatos devem ser nomeados da seguinte maneira: _.

Exemplo: ESPELHO-POLÍTICO_PGC.pdf

As siglas dos artefatos encontram-se abaixo:

  • PGC - Plano de Gerência de Configuração
  • BLD - Builds do Sistema
  • RLF - Relatório Final

A aprovação do documento é dada pelo membro da equipe responsável pelo artefato em questão através de uma revisão do artefato.

 Baselines do projeto[editar | editar código-fonte]

As baselines do projeto serão definidas ao final de cada sprint. Sendo que cada sprint terá a duração de 7 dias. Elas poderão ser autorizadas pelos integrantes da equipe.

Configuração e Mudança de Controle[editar | editar código-fonte]

Processo de Requerimento por Mudanças e Aprovação[editar | editar código-fonte]

Os requerimentos de mudança serão feitos através de issues, criadas no repositório do projeto que se encontra no GitHub. As issues deverão conter labels, que especificam seu tipo (prioridade, nível de dificuldade, se é bug, funcionalidade, etc), quem será responsável por ela e a descrição da issue (qual seu objetivo). Podendo também conter algum link que ajude na resolução da issue. Para a issue ser aprovada, deverá ser feito um pull request, onde será feita uma avaliação, se esse for aprovado, será feito o merge. Se não, será comentado o porque do pull request não ter sido aceito, para que sejam feitas as correções solicitadas. Quando o pull request for aceito, a issue deverá ser fechada. Será criada uma branch para cada requerimento de mudança.

Configuração do Status da Conta[editar | editar código-fonte]

Mídia de Armazenamento do Projeto e Processo de Entrega[editar | editar código-fonte]

Uma vez por semana será feito um backup da versão mais recente ou estável do projeto na máquina das integrantes da equipe.

Milestones[editar | editar código-fonte]

Para a melhor realização deste projeto preve-se a finalização de cada marco nas seguintes datas:

  • (13.05) Sprint 1 - Implementar Integração contínua: Travis/Jenkins
  • (20.05) Sprint 2 - Implementar Build: Chef
  • (27.05) Sprint 3 - Implementar Build: Vagrant
  • (03.06) Sprint 4 - Refatoração (se necessário)
  • (10.06) Release 1 - Verificação do Andamento dos projetos
  • (24.06) Release 2 -Apresentação Final

Treinamento e Recursos[editar | editar código-fonte]

Os recursos e treinamentos serão adquiridos durante a ministração das aulas da disciplina de Gerência de Configuração de Software ofertada pela UnB.

Andamento em 10/06[editar | editar código-fonte]

Andamento do Projeto
Atividade Ferramenta Status O que faltava?
Integração Contínua Travis CI em andamento - 30% Descobrir erro no script de .travis.yml
Build Chef solo 12.3.0 em andamento - 80% Descobrir erro na receita do chef
Build Vagrant em andamento - 90% Fazer shell provision de instalação de pacotes básicos

Tabela 3 - Status do andamento do projeto em 10/06.

Etapa Final - Relatório[editar | editar código-fonte]

Espelho Político[editar | editar código-fonte]

Website desenvolvido em Ruby on Rails durante as disciplinas de Métodos de Desenvolvimento de Software e Gestão de Portifólios e Projetos de Software da Universidade de Brasília.

Foi implementado com base no conceito de Dados Abertos, onde seu principal objetivo é mostrar, de forma transparente, para a população quais os políticos que realmente estão fazendo a diferença no Brasil. Isso é demonstrado através de gráficos com a quantidade e nomes de proposições de leis criadas por eles e rankings dos que mais elaboram essas proposições.

O projeto original encontra-se em: <https://github.com/EspelhoPolitico/espelho-politico>

Ferramentas Utilizadas[editar | editar código-fonte]

GitHub[editar | editar código-fonte]

Serviço de Web Hosting Compartilhado para projetos que usam o controle de versionamento Git. Possui funcionalidades de uma rede social como feeds, seguidores, wiki e um gráfico demonstrando os trabalhos dos desenvolvedores nas versões de seus projetos/ repositórios.

Git[editar | editar código-fonte]

Um sistema de controle de versão distribuído e um sistema de gerenciamento de código fonte, com ênfase em velocidade. Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central.

Jenkins[editar | editar código-fonte]

Fornece serviços de integração contínua para desenvolvimento de software. É um sistema baseado em servidor que funciona em um servlet container como o Apache Tomcat. Ele suporta ferramentas de SCM incluindo AccuRev, CVS, Subversion, Git, entre outras.

Chef[editar | editar código-fonte]

Ferramenta de gerência de configuração escrito em Ruby e Erlang. Utiliza uma DSL Ruby para criar scripts de ambiente. O chef é usado para simplificar a tarefa de configuração e manutenção de servidores de uma empresa e consegue descrever o que consiste a infra-estrutura do sistema e a maneira pela qual cada parte deve ser implantada, configurada e testada. Além disso, pode se integrar com plataformas baseadas em nuvem, como Rackspace, Internap, Amazon EC2, Cloud Platform Google, OpenStack, SoftLayer e Microsoft Azure, e automaticamente provisionar e configurar novas máquinas.

Vagrant[editar | editar código-fonte]

Software que cria e configura ambientes de desenvolvimento virtuais. Pode ser visto como um wrapper de nível superior em torno de um software de virtualização como o VirtualBox, Vmware, KVM e Linux Containers (LXC), e em torno de software de gerenciamento de configuração, como Ansible , Chef, Salt e Puppet.

Resultados[editar | editar código-fonte]

O projeto Espelho Político não possuía nenhuma gerência de configuração. Sendo assim, o objetivo deste trabalho era iniciar essa gerência com ferramentas que visam facilitar o uso do ambiente de desenvolvimento do software e melhorar a qualidade do mesmo a partir da integração contínua. Para isso, foi realizado um fork do projeto, encontrado em <https://github.com/ecmeirelles/espelho-politico>, onde fez-se as mudanças relacionadas a integração contínua. Além disso, foi criado um novo repositório na organização, encontrado em <https://github.com/EspelhoPolitico/automacao>, onde realizou-se a inclusão do Vagrant e Chef.

Em virtude de dificuldades iniciais com a integração contínua, o primeiro passo completado foi a configuração da Vagrant, utlizada para manter em comum o ambiente de desenvolvimento para todos os desenvolvedores. O sistema operacional configurado na máquina virtual foi o Ubuntu 14.04 LTS, 64 bits, através da imagem base (conhecida como box) ubuntu/trusty64, encontrada em <https://atlas.hashicorp.com/ubuntu/boxes/trusty64>. Além disso, fez-se uso de shell script provision para a instalação dos pacotes necessários para o total e correto funcionamento do software.

Logo após, foi intregado a Vagrant o chef-solo, versão 12.3.0. Foram instalados diversos cookbooks, relacionados ao banco de dados e linguagem de programação. Além disso, foram feitas receitas e atributos.

Por último, foi implantada a integração contínua. Para isso foi utilizada a ferramenta Jenkins CI. Para a configuração do Jenkins foram utilizados plugins para o Github, reposítório oficial do projeto, para o Git, utilizado para o controle de versão, além de plugins referentes a Ruby on Rails, linguagem utilizada no projeto.

Para um melhor entendimento dos colaboradores (antigos e possíveis novos), foi realizado, adicionalmente, um passo-a-passo de instalação no arquivo README, tanto do arquivo forkado do projeto, quanto do novo repositório.

Dificuldades[editar | editar código-fonte]

As integrantes desconheciam, inicialmente, a gerência de configuração em si, juntamente com as suas ferramentas de apoio. Fator que culminou em pequenas dificuldades de configuração e uso no começo do trabalho.

Outra dificuldade, que resultou na mudança da ferramenta de integração contínua, foi a de escrita do script de testes do arquivo .travis.yml, utilizado pela ferramenta Travis CI. Até o momento não foi descoberta a causa do erro.

Instalação[editar | editar código-fonte]

As instruções para a instalação do software Espelho Político em uma máquina virtual estão no README.md do projeto que pode ser acessado pelo link <https://github.com/EspelhoPolitico/automacao>.

O README também contém as instruções para instalação da ferramenta de integração contínua Jenkins.

Referências[editar | editar código-fonte]

GALE, Andy. Getting started with chef: First steps with chef. Disponível em: < http://gettingstartedwithchef.com/first-steps-with-chef.html >. Último acesso em junho de 2015.

VAGRANT DOCS. Getting started. Disponível em: < https://docs.vagrantup.com/v2/getting-started/index.html >. Último acesso em junho de 2015.

REYNOLDS, Rick. Setting up Jenkins for GitHub, Rails & Rspec. Disponível em: < http://www.webascender.com/Blog/ID/522/Setting-up-Jenkins-for- GitHub-Rails-Rspec#.VYmjYend88o >. Último acesso em junho de 2015.