Prévia do material em texto
Identificação e Planejamento da Configuração Apresentação Muito se fala e respeito da importância do gerenciamento de configuração de software aplicado ao desenvolvimento de produtos de software. Gestão de configuração é um conjunto de atividades que permitem absorções, de forma ordenada, de mudanças peculiares ao desenvolvimento de software, preocupando-se em manter a integridade e a estabilidade do decorrer evolutivo dos projetos de software. Nesta Unidade de Aprendizagem, você estudará a importância, os itens aplicáveis, assim como as etapas de identificação e planejamento da gerência de configuração no desenvolvimento de software. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Reconhecer a importância do gerenciamento de configuração no desenvolvimento de software. • Listar itens de configuração. • Descrever as etapas de identificação e planejamento da configuração. • Desafio Os sistemas de controle de versões permitem que os artefatos sejam obtidos do repositório por meio da operação conhecida como check-out. Essa operação serve para que, ao iniciar os trabalhos em um artefato já existente, seja possível iniciar o trabalho no qual as alterações sejam as mais recentes possível. Por meio dessa ação é mais difícil que ocorram erros ou, ainda, que o trabalho seja realizado em uma versão antiga do software. Você trabalha como configurador de ambientes de desenvolvimento de software para uma empresa e recebeu a seguinte tarefa: Apresentar três ferramentas para gerenciamento de configuração de software e suas aplicações, mostrando as diferenças entre elas e escolher a ferramenta mais adequada para trabalhar com o controle de versões para desenvolvimento de softwares. Infográfico A gerência de configuração de software emergiu da necessidade de controlar essas modificações, por meio de métodos e ferramentas, para maximizar a produtividade e minimizar os erros cometidos durante a evolução do produto. Por meio da visão gerencial, o processo de gerência de configuração de software pode ser dividido em cinco etapas: identificação, controle de alterações, controle de versão, auditoria de configuração e relatórios. Acompanhe o Infográfico e veja as principais vantagens da gerência de configuração de software. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/db659bbe-bcf2-44ba-865c-e094550fe163/0325fa30-1a7d-48bb-9459-de8a975a3055.png Conteúdo do Livro O planejamento da configuração de software tem como propósito a definição de procedimentos a serem seguidos em relação à gerência de configuração de software. O controle de versões é uma ferramenta primordial na gestão de tecnologia da informação de empresas, principalmente no que se refere a empresas desenvolvedoras de software. No capítulo Identificação e planejamento da configuração, da obra Testes de Software e Gerência de Configuração, você aprenderá a reconhecer a importância da gerência de configuração aplicada ao desenvolvimento de software, saberá identificar e listar os itens de configuração e aprenderá as etapas de identificação e planejamento da configuração. Boa leitura. TESTES DE SOFTWARE E GERÊNCIA DE CONFIGURAÇÃO Priscila Gonçalves Identificação e planejamento da configuração Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Reconhecer a importância do gerenciamento de configuração no desenvolvimento de software. Listar itens de configuração. Descrever as etapas de identificação e planejamento da configuração. Introdução A gerência de configuração de software serve como base para outras áreas da engenharia de software. Por isso, é tratada como requisito de implementação em níveis iniciais de vários modelos de maturidade de processos de desenvolvimento, como CMMI-DEV, SPICE e MPS-Br. Segundo Sommerville (2011), a gerência de configuração é um con- junto de atividades de rastreamento e controle iniciadas quando um projeto de engenharia de software começa. Essas atividades terminam apenas quando o software sai de operação. Neste capítulo, você vai verificar a importância da gerência de con- figuração aplicada ao desenvolvimento de softwares. Você também vai ver como identificar e listar os itens de configuração. Além disso, vai conhecer as etapas de identificação e planejamento da configuração. A importância do gerenciamento de configuração Para começar, você precisa conhecer o conceito de gerenciamento de con- fi guração aplicado ao desenvolvimento de softwares. Considere o seguinte: a gestão de confi guração de software (software confi guration management — SCM) é uma atividade do tipo “guarda-chuva”, aplicada através de toda a gestão de qualidade. Como as mudanças podem ocorrer em qualquer ins- tante, as atividades SCM são desenvolvidas para (1) identifi car a alteração, (2) controlar a alteração, (3) assegurar que a alteração esteja sendo implementada corretamente e (4) relatar as alterações a outros interessados. [...] É um con- junto de atividades de rastreamento e controle iniciadas quando um projeto de engenharia de software começa e [que] termina apenas quando o software sai de operação (SOMMERVILLE, 2011). As atividades da gerência de configuração de software incluem: controlar e acompanhar as mudanças, registrar todas as evoluções do sistema e estabelecer e manter a integridade. Como você sabe, todas as alterações realizadas no desenvolvimento de um software devem ser controladas. Esse controle está diretamente atrelado à qualidade do software entregue. Assim, a gerência é parte essencial da gestão de qualidade (PRESSMAN; MAXIM, 2016). Itens de configuração Como você viu, o gerenciamento de confi guração aplicado ao desenvolvimento de softwares é baseado em um conjunto de atividades: controle de mudanças; controle de versões; integração contínua. Nas próximas seções, você vai conhecer melhor cada uma dessas ativi- dades, verificando como funcionam e quais são as ferramentas disponíveis para executá-las. Controle de mudanças O controle de mudanças colabora com o controle de versão e tem como foco avaliar, aceitar e aplicar as mudanças propostas. As mudanças ocorrem frequen- temente no decorrer do desenvolvimento do software e devem ser registradas, avaliadas e agrupadas de acordo com a prioridade da modifi cação solicitada. Trata-se de um item importante pois, diante das informações geradas a partir dos registros, da avaliação e das prioridades, é possível planejar o Identificação e planejamento da configuração2 escopo, os prazos e os custos de um projeto, mantendo a rastreabilidade desde a solicitação até a implantação e a disponibilização do produto. Entre as fer- ramentas disponíveis para executar o controle de mudança, estão: BitBucket, GitHub, Trac e Bugzilla. Controle de versão Quando ocorre a implementação de uma mudança, deve-se acrescentar o seu registro no histórico do incremento. Esse incremento é correspondente a uma confi guração (versão), ou seja, ao conjunto de itens que formam o software. Entre as funcionalidades do controle de versões, duas se destacam: viabilizar a edição concorrente nos arquivos, que ocorre quando duas ou mais pessoas estão trabalhando no mesmo código-fonte, por exemplo; e criar variações no projeto. O controle de versão é a principal atividade da gerência de configuração de software, pois é a ponte entre o controle de mudanças e a integração con- tínua. São exemplos de ferramentas utilizadas para o controle de versão: Git, Mercurial e SubVersion. No controle de versão, existem os branches (“ramos”). Eles permitem que execuções simultâneas de atividades diferentes, e até mesmo incompatíveis, ocorram. Por exemplo: a codificação em arquivos iguais, testes, etc. Existem três tipos de branches. Veja a seguir. Principal, também conhecido como trunk(SubVersion), master (Git) e default (Mercurial): trata-se do primeiro e mais importante, pois concentra as correções, melhorias e funcionalidades que deverão ser disponibilizadas na próxima versão entregue. Dedicado, também conhecido como feature branch: mantém de forma isolada as implementações demoradas e complexas, que não podem ser realizadas no trunk. Manutenção, também conhecida como branch release: é correspondente a uma versão liberada, em produção, que necessita de correção, porém sem alterar as funcionalidades. A Figura 1 mostra que o branch de manutenção é criado para manter a versão de produção. Note que as correções são realizadas no branch de manutenção e passadas para o trunk por merges (mesclagens). 3Identificação e planejamento da configuração Figura 1. Tipos de branches. Fonte: Dias (2016, documento on-line). Integração contínua Esse item de gerência de confi guração tem como objetivo verifi car se o software foi desenvolvido de acordo com os elementos registrados na confi guração. Ou seja, a integração é realizada por meio de scripts que deixam a construção, os testes e a coleta de métricas de qualidade automatizados. As ferramentas de integração contínua acompanham o controle de versão e disparam scripts a cada nova configuração registrada. São exemplos de ferramentas de integração contínua: Jenkins, Drone.io, CodeShip, entre outras. Etapas de identificação e planejamento da configuração A gerência de confi guração de software é fundamental para desenvolver softwares de qualidade. Para executá-la corretamente, você deve entender os conceitos, defi nir os processos, realizar a integração e utilizar as ferramentas disponíveis. Realizar o planejamento da configuração de software é de suma impor- tância, pois a maioria das rotinas são repetitivas. Para fazer um planejamento adequado, você precisa considerar alguns itens. Veja a seguir. Definição de atividades: é necessário determinar as atividades que serão executadas e a maneira como serão realizadas. Identificação e planejamento da configuração4 Termos utilizados: sem exceção, todos os envolvidos no planejamento devem entender tudo o que for relacionado à terminologia do conteúdo. Geralmente, é indicado incluir um glossário ao projeto para facilitar o entendimento. Recursos envolvidos: deve-se definir com antecedência as pessoas envolvidas, o tipo de hardware, o espaço e os sistemas utilizados. Cronograma: é preciso definir os prazos para cada etapa do planeja- mento inicial. Dentro da identificação e do planejamento da configuração, há algumas etapas a serem cumpridas para que o sucesso seja garantido. É o que você pode ver na Figura 2. Figura 2. Fluxograma das etapas de identificação e planejamento da gerên- cia de configuração. Baseline Repositório Controle de mudança e con�guração Estimativa de status de con�guração Treinamentos e recursos Identi�cação de marcos 5Identificação e planejamento da configuração A partir do plano de configuração, o programa de gerenciamento de confi- guração pode ser implantado. Para isso, deve-se seguir um escopo do processo, que é necessário para definir o que será feito no projeto. Existem métodos de identificação que conterão o detalhamento para a nomeação dos artefatos de pastas do produto de software. Tais métodos serão detalhados no documento do projeto. Um plano de gestão de configuração de software define a estratégia do projeto para a gestão de alterações. Por sua vez, o processo de controle de alterações produz requisições de alterações de software, relatórios e ordens de alteração de engenharia (PRESSMAN; MAXIM, 2016). Ele é composto por: documento de arquitetura; documento de implantação; plano de gerenciamento de configuração; documento de permissões de pastas e acessos por perfil; documento de controle de baselines; documento de negócio; plano do projeto; planilha de contagem de ponto de função; documento de processo de negócio; checklist de revisão técnica; relatório de revisão técnica; plano de teste; plano de resultado de teste; roteiros de teste; especificação de caso de uso. As baselines do projeto são definidas a cada mudança de fase do projeto, e uma delas é utilizada para o encerramento. As baselines tem quatro fases mais o encerramento. Veja: 1. Apresentação dos seguintes itens de configuração: documento de ar- quitetura, documento de implantação e plano de gerenciamento de configuração. 2. Apresentação dos seguintes itens: documento de permissões de pastas e acessos por perfil, documento de controle de baselines e documento de negócio. 3. Apresentação dos seguintes documentos: plano do projeto, planilha de contagem de ponto de função e documento de processo de negócio. Identificação e planejamento da configuração6 4. Apresentação dos seguintes documentos: checklist de revisão técnica, relatório de revisão técnica e plano de teste. 5. Encerramento: apresentação de todos os itens gerados anteriormente e do termo de encerramento. Em gerência de configuração de software, repositório é um conjunto de mecanismos e estruturas de dados que possibilita que a equipe de software gerencie as alterações. O detalhamento da estrutura do repositório é a etapa seguinte à das baselines. Nela, o documento do projeto é esmiuçado e dispo- nibilizado na pasta de gerência de configuração. No controle de configuração e mudança, são apresentados: o processo de solicitação de mudança, em que são descritos e submetidos os problemas e as mudanças, assim como a revisão e a disposição. o comitê de controle de mudança, com a descrição dos membros do comitê e dos procedimentos necessários para processar as solicitações de mudanças e aprovações. Na etapa de estimativa do status de configuração, existem as tarefas listadas a seguir. Processo de armazenamento e liberação do projeto: descrição das políticas de retenção e dos planos de backup, assim como de erros irreversíveis e recuperação. Nesse item, também é descrito o modo como a mídia deve ser mantida (se on-line ou off-line), o tipo de mídia e o formato. Esse processo também descreve o conteúdo do release, a quem é destinado e se há problemas conhecidos ou ainda instruções de instalação. Relatórios e auditorias: os relatórios são utilizados para avaliar a quali- dade do software em qualquer fase do seu ciclo de vida. São elaborados relatórios sobre os defeitos com base nas solicitações de mudança, fornecendo indicadores com a finalidade de alertar a administração e os desenvolvedores em relação a áreas prioritárias do desenvolvimento. Na etapa de identificação dos marcos, os internos devem ser percebidos. Os marcos do fornecedor são relacionados ao esforço da gerência de confi- guração do software ou projeto. Eles incluem detalhes sobre o momento em que o plano de gestão de configuração deve ser atualizado. 7Identificação e planejamento da configuração Os treinamentos e recursos fazem parte da etapa seguinte, em que são descritas ferramentas de software, pessoal e treinamento. Essas três catego- rias de recursos são requisitos para a implementação e a especificação das atividades de gerência de configuração. DIAS, A. F. Tipos de ramos do controle de versão. 2016. Disponível em: https://blog.pronus. io/posts/tipos-de-ramos-do-controle-de-versao/. Acesso em: 27 jun. 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson, 2011. Leituras recomendadas GERENCIAMENTO de configuração de software. [2010]. Disponível em: http://www. alexandresmcampos.adm.br/informatica/outros/gcs.htm. Acesso em: 27 jun. 2019. REIS, C. Caracterização de um processo de software para projetos de software livre. 2003. Dissertação (Mestrado em Ciências da Computação) – Instituto de Ciências Matemática e Computação, São Carlos, 2003. SCHACH, S. R. Engenhariade software: os paradigmas clássicos & orientado a objetos. 7. ed. Porto Alegre: AMGH, 2009. SCHWARTZ, J. I. Construction of software. In: HOROWITZ, E. Practical strategies for developing large systems. Menlo Park: Addison-Wesley, 1975. Identificação e planejamento da configuração8 Dica do Professor Softwares mudam frequentemente, os sistemas podem ser pensados como um conjunto de versões, e cada qual precisa ser mantida e gerenciada. Segundo Sommerville (2011), a gestão de configuração de software se interessa pelas políticas, processos e ferramentas para o gerenciamento de sistemas de software que sofrem mudanças. É muito necessária porque torna-se fácil perder a noção de quais mudanças e versões de componentes foram incorporadas em cada versão do sistema. Assista à Dica do Professor para saber mais. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/fed6211b95d328680bf22c652808e73a Exercícios 1) A gerência de configuração de software está diretamente ligada à baseline, na qual são criados os marcos de versionamento de artefatos. Diante dessa afirmação, assinale a alternativa correta em relação às características: A) Trata-se de um repositório de itens de configuração com controle de acesso, no qual são armazenados os itens de configuração. B) Ajuda a controlar as mudanças sem impedir seriamente as mudanças justificáveis. C) É um local sob controle de acesso que armazena os relatórios e as mudanças solicitadas pelo cliente. D) É o método utilizado para trabalhar com itens de configuração que já estão no repositório. E) Realiza uma seleção de itens a serem revisados para entender a sua relevância. 2) Manter o controle das múltiplas versões de componentes do sistema e assegurar que as alterações feitas aos componentes por diferentes desenvolvedores não interfiram umas com as outras (SOMMERVILLE, 2011). Pode-se compreender que esse conceito está relacionado ao: A) Gerenciamento de mudanças. B) Gerenciamento de versões. C) Gerenciamento de releases. D) Gerenciamento de acesso. E) Gerenciamento de verificações. 3) As mudanças no que diz respeito ao desenvolvimento de sistemas/ softwares são constantes, geralmente, porque as necessidades dos solicitantes e usuários mudam. Dentre os fatores na análise de mudança, pode-se citar: A) Gerenciamento de acesso. B) Ciclo de release do software. C) Auditorias de software. D) Análise de implementação. E) Análise de configuração. 4) O retorno de uma pesquisa na Internet foi: Critérios de escolha de ferramenta: eficácia, desempenho, simplicidade e fácil adaptabilidade. Pode ser utilizada para solucionar alguns problemas, tais como, registro de evolução de projeto, viabilização de trabalho em equipe e manutenção de variações do projeto. Ferramentas como Git, Subversion e Mercurial cumprem os requisitos da necessidade. A pesquisa era sobre qual tipo de ferramenta? A) Governança de tecnologia de informação. B) Gerenciamento e assinatura de documentos eletronicamente. C) Controle e gerenciamento de versão. D) Controle e gerenciamento de mudanças. E) Auditorias realizadas com base em workflow. 5) A configuração de software/sistema trata-se de uma coleção que contém versões definidas de itens de configuração de acordo com desenvolvimentos específicos para uma finalidade particular. Durante o processo de desenvolvimento de software, o gerenciamento da configuração de software identifica a sua configuração: A) Apenas no início do ciclo de vida do software. B) Somente ao final do ciclo de vida do software. C) Antes de iniciar o ciclo de vida do software. D) Apenas uma ou duas vezes, no máximo, antes de encerrar o ciclo de vida do software. E) Em pontos predefinidos durante o ciclo de vida do software. Na prática O controle de mudanças tem como responsabilidade colaborar com o controle de versão. Por sua vez, o controle de versão tem como foco avaliar, aceitar e aplicar as mudanças propostas. Imagine que um funcionário da gerência de configuração de software é o responsável pelo controle da atividade de controle de mudanças e terá que explicar a um novo integrante da equipe como funciona essa atividade passo a passo. Conheça, Na Prática a seguir, a explicação apresentada. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/8c198f57-7796-4780-a109-c34f68f57638/62252b03-6996-4334-badc-8ef3bb4b065e.jpg Saiba mais Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Introdução ao processo de gerência de configuração de software Acesse ao link e conheça mais a respeito de gerência de configuração, entendendo um pouco mais do processo, das manutenções de software, dos itens de configuração de software, da auditoria e das ferramentas de auxílio. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Gerência de configuração e mudanças Acesse ao site e leia mais a respeito de gerência de configuração e mudanças em modelos de ciclo de vida de desenvolvimento de sistemas. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.webartigos.com/artigos/introducao-ao-processo-de-gerencia-de-configuracao-de-software/10807 https://www.devmedia.com.br/gerencia-de-configuracao-e-mudancas/31327