Arquivo de tag SCM

Gerenciamento da Configuração Software CMS

Hoje muitas empresas que trabalham com a engenharia de software encontram-se com o seguinte CENÁRIO ATUAL:

  • Projetos cada vez mais complexos em relação ao tamanho, sofisticação e tecnologias envolvidas;
  • Grandes equipes geograficamente dispersas ;
  • Requisitos de execução do sistema em diferentes plataformas de hardware e software ;
  • Suporte a diferentes línguas e culturas ;
  • Crescente velocidade da comunicação entre clientes sobre a ocorrência de defeitos ;
  • Diminuição dos tempos de desenvolvimento e de correção de defeitos para preservar a reputação da empresa ;
  • Necessidade de lidar com o inevitável caos relacionado à atividade criativa, buscando métodos e ferramentas para maximizar a produtividade e minimizar os erros.

 As mesmas empresas que apresentam o cenário apresentado acima podem está apresentando os seguintes problemas com a AUSÊNCIA da CM

  • Perda de código-fonte ;
  • Bibliotecas inesperadamente não funcionam mais ;
  • Impossibilidade de determinar o que aconteceu com um programa, ou parte dele ;
  • Impossibilidade de determinar quem, porque e quando foram efetuadas modificações ;
  • Requisitos já documentados desaparecem ;
  • Requisitos implementados desaparecem do código ;
  • O programa em execução e o seu código fonte estão em diferentes versões .

Definição

Mediante exposto acima, posso informar que a Gerenciamento de configuração (CM) poderá ajudar a solucionar estes conflitos, pois a CM refere-se a uma disciplina para avaliar, coordenar, aprovar ou desaprovar, e implementar mudanças nos artefatos usados ​​para construir e manter sistemas de software.

Um artefato pode ser um pedaço de hardware ou software ou documentação. CM permite o gerenciamento de artefatos a partir do conceito inicial através do design, implementação, teste de linha de base, construção, lançamento e manutenção.

CM visa eliminar a confusão e o erro provocado pela existência de diferentes versões de artefatos.

As alterações que são realizadas para corrigir erros, proporcionar melhorias, ou simplesmente refletir o refinamento evolutivo da definição do produto, a CM as mantém a sob controle.

 

Outras Definições

 Roger Pressman

“conjunto de atividades projetadas para controlar as mudanças pela identificação dos produtos do trabalho que serão alterados, estabelecendo um relacionamento entre eles, definindo o mecanismo para o gerenciamento de diferentesversões destes produtos, controlando as mudanças impostas, e auditando e relatando as mudanças realizadas.”

 Steve McConnell

“CM é a prática de lidar com modificações de forma sistemática, permitindo que o sistema tenha a sua integridade mantida com o passar do tempo.”

CMMI

O propósito de CM é estabelecer e manter a integridade dos produtos de trabalho utilizando identificação da configuração, controle da configuração, contabilização da situação da configuração e auditoria da configuração

MPS.BR

O propósito do processo de Gerência de Configuração é estabelecer e manter a integridade de todos os produtos de trabalho de um processo ou projeto e disponibilizá-los a todos os envolvidos

Atividades que envolvem o Gerenciamento de Configuração- PDCA

Políticas e Normas que definição CM

  • Conjunto de Artefatos (itens de configuração), sob a jurisdição da CM;
  • Nomeação dos artefatos;
  • Como os artefatos entrão e saem do conjunto controlado;
  • Como um artefato sob CM é pode ser modificado;
  • Como diferentes versões de um artefato sob CM são disponibilizados e em que condições cada um pode ser usado;
  • Como as ferramentas de CM são usadas para habilitar e fazer cumprir as regras.

Estas políticas e normas estão documentados em um plano CM que informa todos na organização apenas como CM é realizado.

Contra Definição

CM não é (somente) controle de versões!
CM não é configuração de conteúdo/dados!
CM não é backup!
CM não é simples!
CM não é impossível!
CM não é modismo!
CM não é opcional!
CM não é uma panacéia!
CM não evita que ocorram modificações!
CM não termina nela mesma!
CM não é somente para sistemas grandes e complexos!
CM não é somente para grandes equipes geograficamente distribuídas!

Ferramentas de Apoio

Atividades
Observações
Ferramentas
Controle de Versão
Apoia as atividades de controle de mudança e integração contínua. Fornecendo os serviços de identificação, armazenamento dos artefatos sob CM e de suas versões durante todo o ciclo de vida do software, geração histórico de todas as alterações efetuadas nos artefatos sob CM, criação de rótulos e ramificações no projeto e Faz a recuperação de uma configuração em um determinado momento desejado do tempo.
  • Git
  • Subversion
  • CVS
Controle de Mudanças
Fornece um serviço complementar ao sistema de controle de versão, identifica, rastrea, analisa e controla as mudanças nos itens de configuração.
  • Trac
  • Redmine
  • Mantis
Integração Continua
O objetivo é garantir que as mudanças no projeto são construídas, testadas e relatadas tão logo quanto possível depois de serem introduzidas.
  • Jenkins
  • Bitten
  • SCons
  • Maven

Escolha do Autor

Escolha do Autor
Controle de Versão
Subversion
Subversion é uma ferramenta open source de controle de versão centralizado que foi construída para substituir o CVS, mas seguindo o mesmo modelo de funcionamento.
Controle de Mudanças
Redmine
É um software livre, gerenciador de projetos baseados na web e ferramenta de gerenciamento de bugs. Ele contém calendário e gráficos de Gantt para ajudar na representação visual dos projetos e seus deadlines (prazos de entrega). Ele trabalhar com múltiplos projetos.
Integração Continua
Jenkins
Jenkins é uma ferramenta para integração contínua que gerencia os passos de construção, teste automatizados é escrito em Java, com mais de 300 plugins para suportar todos os tipos de desenvolvimento de software.

Conclusão

 A busca da melhoria do processo de desenvolvimento vem sendo impulsionada por exigências do mercado por mais qualidade e da produtividade do desenvolvimento. Muitas empresas têm revisto seus processos e procurado se capacitar no mercado cada vez mais competitivo.

A Gerência de Configuração é necessária para manter o desenvolvimento de software controlável. Contudo, ainda é grande o número de empresas que ainda não utilizam nenhum tipo de CMS ou que utilizam apenas o controle de versão nos seus projetos.

Gerência de Configuração é uma atividade que deve ser usada em todos os projetos de desenvolvimento de software. A existência de várias opções de ferramentas open source torna a implantação da CMS mais fácil principalmente para micro e pequenas empresas.

 

Vídeo Sugerido