quinta-feira, 18 de março de 2010

Gerenciamento de Configuração de Software

Gerenciamento de Configuração de Software é uma atividade que visa a qualidade do software, procura garantir que todos os itens de um produto sejam rigorosamente mantidos sob controle, com isso todas as alterações são registradas com a finalidade de ter registro e garantia de recuperação dos dados, nesses registros são encontrado as razões das modificações solicitadas, quem solicitou e quem realizou a modificação.

PRESSMAN define Gestão de Configuração de Software como:
Gestão de configuração de software é um conjunto de atividades de acompanhamento e controle que começa quando o projeto de engenharia de software tem início e só termina quando o software é retirado de operação (PRESSMAN, 2006, p. 599).

Percebemos aqui que o autor indica o momento em que devemos iniciar a atividade de gestão de configuração de software, isto é, deve ser iniciada já nos primeiros passos para se desenvolver um software, isto é, projeto inicial, levantamento de requisitos e todo os demais artefatos que são produzidos até a entrega do software ao cliente, sua manutenção durante sua vida útil e o momento em que o software é retirado definitivamente de operação.

Paula Filho (2003, p. 8) também nos explica, que um produto de software é composto por muitos artefatos: códigos executáveis, códigos fontes, modelos, relatórios, e outros documentos. Alguns destes artefatos são resultados oficiais do projeto; a aprovação dos resultados assinala que um marco do projeto foi cumprido. Outros artefatos têm caráter mais informal; por exemplo, documentos e modelos temporários de trabalhos dos desenvolvedores.

A maioria dos artefatos evolui ao longo de um projeto, isto é, ao longo de toda a vida de um produto. Mesmo depois de terminar um projeto, é importante que os resultados sejam guardados e controlados. Pode ser necessário atualizá-los em caso de manutenção. Documentos e modelos consistentes são indispensáveis para facilitar a manutenção e evitar a introdução novos defeitos, mesmo em projetos pequenos, assim afirma Paula Filho (2003):

[…] Mesmo um pequeno projeto pode gerar muitos resultados diferentes, cada um com mais de uma dezena de versões. Organizar e controlar a proliferação dos artefatos é o objetivo da disciplina de gestão de configuração. Sem gestão de configurações, é impossível atingir sequer níveis razoáveis de qualidade. (PAULA FILHO, 2003, p.8).

Tratando de Gerenciamento de Configuração de Software ou Gestão de Configuração de Software como é chamado por Paula Filho (2003), temos que ter em conta que a documentação pertinente a um projeto de software deve ser guardada e atualizada, seu acesso para fins de consulta, seja por parte da equipe de desenvolvimento, gerentes de projeto, engenheiros de software e clientes, deve ser facilitado e ainda de acordo com Paula Filho:

As modificações devem ser estritamente controladas para evitar inconsistências e perda de configuração. Só o processamento disciplinado dos artefatos de um projeto garante que esses manterão a qualidade, a consistência e a atualidade ao longo das mudanças que acontecem durante a vida dos projetos e produtos. (PAULA FILHO, 2003, p. 286).

Em um ambiente de desenvolvimento de software, os artefatos que devem ser controlados incluem a documentação, os modelos e o próprio código (fonte e executáveis). Mesmo para projetos de porte muito pequeno, um mínimo de controle de versões é necessários para evitar o desperdício de trabalho. Com o controle de versões, conservam-se versões antigas dos artefatos, que contêm material que pode vir a ser novamente aproveitado, e evita-se que versões mais antigas venham, de forma inadvertida, a tomar o lugar de versões mais novas. Esse tipo de erro é comum mesmo em projetos individuais.

Um dos pontos principais na gestão de configuração é a linha de base (baseline). As linhas de base representam estados principais de configuração dois itens do projeto, a partir dos quais as demais configurações são derivadas. No caso de projetos em andamento, cada linha de base é composta pelos conjuntos de resultados finais e intermediários associados a marcos importantes do projeto, estes marcos podem ser entendidos como a passagem das fases de um processo de desenvolvimento de software, que podem incluir a Percepção, Concepção, Elaboração, Construção, Homologação e Implantação, dependendo da metodologia de desenvolvimento utilizada. Paula Filho define linha de base como:

Uma linha de base é um conceito de Gestão de Configurações de Software que permite controlar as mudanças que ocorrem nos resultados de um projeto, durante a sua execução. Uma linha de base consiste em um ou mais itens de configuração de software aprovados através dos procedimentos previstos pelos respectivos padrões e pelo Plano da Qualidade do Software de um projeto. Uma linha de base deve ser um conjunto completamente consistente; por exemplo, especificações, desenhos, descrições de testes, código e documentação de usuários devem esta no mesmo nível de revisão e ser perfeitamente rastreáveis entre si. (PAULA FILHO, 2003, p. 292).

Nenhum comentário:

Postar um comentário