Você está na página 1de 10

Engenharia

Nesta seção você encontra artigos voltados para testes, processo,


modelos, documentação, entre outros

Analisando a gerência de configuração


Entenda por que ela é essencial no processo de desenvolvimento de software

De que se trata o artigo?


Eduardo Jorge Vieira Rocha Apresenta o gerenciamento de configuração de
eduardojvrocha@gmail.com
software como atividade crucial no desenvolvimento e
Profissional com 3 anos de experiência
manutenção de software e destaca aspectos técnicos

V
em gerência de configuração de software.
Bacharel em Ciência da Computação pela ocê já percebeu que o software e organizacionais observados em pesquisa realizada
Universidade Católica de Pernambuco. Cur- está presente no seu cotidiano? junto a empresas do setor. Neste contexto, este artigo
sando MBA em gerenciamento de projetos Um exemplo simples ocorre serve para conscientizar o engenheiro de software da
pela FGV. Certificado ITIL v3 Foundation.
quando você telefona para outra pessoa. necessidade de se ter um processo de gerenciamento
O controle da operação das centrais de configuração de software e componentes chave
Antonio Mendes da Silva Filho telefônicas é todo feito por software. E, desse processo.
antoniom.silvafilho@gmail.com você já foi a alguma casa lotérica para
Professor e consultor em área de tecnologia efetuar um pagamento? Ou já arriscou Em que situação o tema é útil?
da informação e comunicação com mais
jogar na loteria? Quando você vai à casa O artigo identifica questões técnicas e organizacionais do
de 25 anos de experiência profissional, é
autor do livros Introdução a Programação lotérica por qualquer um dos motivos gerenciamento de configuração de software, discute o
Orientada a Objetos com C++, Arquitetura acima, você está usando o sistema que grau de adoção dessas práticas em empresas do segmento
de Software, Programando com XML, todos tem todo seu controle feito por software. de TI e, fortemente, recomenda a incorporação destas
pela Editora Campus/Elsevier, tem diversos O mesmo acontece quando você utiliza práticas em prol da evolução do software.
artigos publicados em eventos nacionais
o caixa eletrônico de um banco. Perceba
e internacionais, colunista para Ciência e
Tecnologia pela Revista Espaço Acadêmico que quase todos os sistemas hoje em dia Resumo DevMan
com mais de 100 artigos publicados, tendo têm seu controle operacional sendo feito A gerência de configuração compreende o desenvol-
feitos palestras em eventos nacionais e no por software. Observe que o software vimento e a aplicação de mecanismos e padrões para
exterior. Foi Professor Visitante da Univer- tem se tornado um companheiro e sido gerenciar artefatos de software durante sua evolução.
sity of Texas at Dallas e da University of
uma ferramenta fundamental de nosso Observe que qualquer mudança que se faça necessária
Ottawa. Formado em Engenharia Elétrica
pela Universidade de Pernambuco, com dia-a-dia. no software será identificada, terá sua execução contro-
Mestrado em Engenharia Elétrica pela Agora, se você ‘olhar’ para trás, poderá lada, além de dispor de recursos de rastreamento. Neste
Universidade Federal da Paraíba (Campi- perceber que há, aproximadamente cinco contexto, este artigo destaca aspectos técnicos e organi-
na Grande), Mestrado em Engenharia da décadas atrás, software constituía uma zacionais sobre a gerência de configuração observados
Computação pela University of Waterloo
pequena, senão ínfima, parcela dos siste- em pesquisa realizada junto a empresas do setor.
e Doutor em Ciência da Computação pela
Univesidade Federal de Pernambuco. mas computacionais quando comparado

Edição 49 - Engenharia de Software Magazine 29


ao hardware. Naquela época, os custos de desenvolvimento CM compreende o desenvolvimento e a aplicação de meca-
e manutenção de software eram desprezíveis. Hoje, porém, nismos e padrões para gerenciar artefatos de software durante
software é responsável por significativa porção dos sistemas sua evolução. Observe que qualquer mudança que se faça
computacionais. Encontramos software nas mais diversas necessária no software será identificada, terá sua execução
aplicações. Para obter qualquer software, há necessidade de controlada, além de dispor de recursos de rastreamento.
um processo para guiar o desenvolvimento que é apoiado pelas Como há uma certeza de que o software sofrerá modifi-
‘boas’ práticas da Engenharia de Software. cações, então os artefatos do projeto serão constantemente
De acordo com o IEEE Std 610.12-1990, que contém o IEEE alterados durante o desenvolvimento e evolução do software.
Standard Glossary of Software Engineering Terminology (http:// Consequentemente, há necessidade de controlar as versões
standards.ieee.org/findstds/standard/ 610.12-1990.html), do sistema e de estabelecer mecanismos para acompanhar
Engenharia de Software é definida como “The application of a a evolução do software. Essas atividades fazem parte da ge-
systematic, disciplined, quantifiable approach to the development, rência de configuração ou CM. As seções seguintes destacam
operation, and maintenance of software; that is, the application of quão importante é o gerenciamento de configuração para o
engineering to software.” desenvolvimento e evolução do software e apresenta o grau
A engenharia compreende o uso de princípios e conhe- de adoção desta prática em empresas do segmento para uma
cimentos empírico e científico obtidos a partir de estudos, das metrópoles brasileira.
investigações e experiências visando o desenvolvimento de
um produto, que dependendo da área pode ser um motor, um Importância do gerenciamento de configuração de
dispositivo eletrônico, um prédio ou um sistema de software. software
Para tanto, três aspectos essenciais devem ser considerados: Segundo Sommerville (2009), o gerenciamento de con-
custo (orçamento de desenvolvimento), tempo (cronograma figuração é o desenvolvimento e aplicação de padrões e
de execução) e qualidade. Dentro deste contexto, a engenharia procedimentos para gerenciar um produto de sistema em
de software (a exemplo de outras engenharias) também visa desenvolvimento.
o desenvolvimento de um produto (software) que pressupõe Os artefatos do projeto são constantemente alterados no
satisfazer aos requisitos de qualidade, dentro do prazo e sem processo de desenvolvimento de software. Com o desenvolvi-
estourar o orçamento. mento de várias versões do sistema ao mesmo tempo, fica mais
Sabe-se que software não é uma entidade física e, portanto, complicado manter a integridade do produto. Com isso, caso
não sofre qualquer tipo de desgaste (físico) como geralmente não sejam estabelecidos cuidados para controlar a evolução
acontece com o hardware. Todavia, apesar de não sofrer des- do software, a rastreabilidade do que foi alterado poderá ser
gaste (físico) como o hardware, o software está sujeito a modifi- facilmente comprometida.
cações que ocorrem durante o ciclo de vida. Essas modificações Assim, o uso da gerência de configuração de software visa
podem acontecer devido à inserção de defeitos decorrentes do garantir que a alteração seja efetuada na versão correta do siste-
desenvolvimento os quais são geralmente corrigidos antes da ma, evitando que esforços sejam concentrados na modificação
entrega do produto. Mas, observe que novos defeitos ainda de uma versão errada e, por fim, assegurando produtividade
podem ser (e, geralmente, são) inseridos devido às modifica- e qualidade ao produto.
ções que o software sofre devido a sua evolução. Por exemplo, A gerência de configuração de software abrange atividades
toda vez que uma nova funcionalidade é desejada ou solicitada específicas que auxiliam na obtenção de um produto de qua-
pelo cliente, torna-se necessário adicionar e/ou modificar as lidade, dentre as quais se destacam a identificação dos itens
instruções já existentes no software. Como resultado dessas de configuração, o armazenamento desses itens, o controle
mudanças, novos defeitos podem ser introduzidos e, portanto, de versão e de mudanças, a criação e auditoria das baselines
pode também causar a deterioração na qualidade do software. e o controle da liberação dos releases. Todas essas atividades
Dentro desse contexto, pergunta-se: Afinal, qual o problema integram o plano de gerência de configuração, apresentado
com o software? em seguida.
Software é (quase) sempre modificado, resultando num
produto quase sem garantia. Isso resulta na falibilidade de Plano de gerência de configuração de software
software (ou possibilidade de existência de falhas) e a conse- O plano de gerenciamento de configuração descreve os
quente falta de confiabilidade. Observe que a única certeza padrões e procedimentos que devem ser usados para o ge-
que se tem é a de que o software será modificado e, portanto, renciamento, isto é:
a documentação do projeto é essencial para permitir a rastre- • relata o que será gerenciado, os chamados itens de configu-
abilidade e, mais importante, a manutenibilidade. Para lidar ração e respectivas nomenclaturas;
com essa demanda, tornam-se necessários mecanismos que au- • identifica quem é o responsável pelas atividades de geren-
xiliem o engenheiro de software registrar, controlar e rastrear ciamento de configuração;
os artefatos produzidos no desenvolvimento de um sistema de • descreve o cronograma dessas atividades;
software. Para tanto, a Engenharia de Software dispõe da Ge- • define a estrutura do repositório onde serão armazenados
rência de Configuração, ou Configuration Management (CM). os itens;

30 Engenharia de Software Magazine - Analisando a gerência de configuração


Gerenciamento d e projetos

• estabelece políticas que os integran- Após a fase de seleção dos itens que se- são inevitáveis, seja para fins de correção
tes da equipe devem adotar para o rão controlados, é importante estabelecer de erros no sistema, seja para adequação
gerenciamento de versões e controle de a relação entre eles, o que facilita o proces- às expectativas do cliente. A alteração dos
mudanças; so de manutenção, uma vez que permite a itens de configuração deve ser realizada
• aponta as ferramentas a serem utili- rápida localização dos itens após cada al- em conformidade a um conjunto de proce-
zadas no auxílio dessas atividades; e, teração. Além disso, é importante definir dimentos de gerenciamento de mudanças
por fim; uma nomenclatura específica para cada auxiliado por ferramentas específicas.
• determina quando devem ser cria- item de configuração, onde através dessa O propósito básico do controle de
das as baselines e a estrutura de sua nomenclatura seja possível identificar a mudanças é ter o controle total de todo
nomenclatura. qual projeto esse item pertence, além de e qualquer pedido (ou requisição) de
observar sua evolução. mudança de um produto e de todas as
Seleção e identificação de itens de mudanças implementadas. Todavia, os
configuração de software Armazenamento de itens de confi- procedimentos de gerenciamento de
A atividade de identificação dos itens guração mudanças exigem que seja realizada
de configuração inicia-se com a seleção Tão importante quanto selecionar e uma análise prévia do custo e bene-
dos artefatos que serão controlados. Um identificar os itens de configuração é es- fícios das mudanças propostas para
item de informação – que pode ser um tabelecer uma forma de armazenamento que apenas sejam realizadas aquelas
código-fonte, um plano de projeto do que garanta a integridade destes itens, efetivamente viáveis.
software, um caso de teste ou até mesmo não permitindo que sejam danificados Constatada a viabilidade e realizada
um arquivo de documentação do software – ou até mesmo que desapareçam. O a alteração solicitada, é fundamental
passará a ser chamado de item de con- armazenamento deve ser realizado de para um controle de mudança eficaz
figuração a partir do momento que ele forma organizada, agregando os itens que seja possível a identificação do
fizer parte do plano de gerenciamento de acordo com as suas características e autor dessa mudança, quando ocorreu
de configuração, como um item que será funcionalidades, facilitando, assim, sua e o porquê da modificação, bem como
controlado pela equipe de CM. localização. O local onde são armazena- o que foi alterado. Dessa forma, pode
É importante que esses itens que pas- dos estes itens de configuração é deno- ser obtida a rastreabilidade do que foi
sarão a ser controlados sejam de extrema minado repositório ou biblioteca (library) alterado, garantindo a integridade do
importância para o projeto, pois o con- e é justamente nesse local que os itens produto durante toda a sua evolução,
trole de artefatos que não evoluam no de- devem ser buscados quando houver a conforme apresentado no Fluxo de
correr do processo de desenvolvimento necessidade de serem alterados. Controle de Mudanças da Figura 1.
pode acabar atrapalhando a equipe de
configuração, provocando desperdício Controle de mudanças Controle de versão
de tempo na documentação de itens des- É sabido que durante o processo de As modificações realizadas em um
necessários à evolução do produto. desenvolvimento de software mudanças item de configuração resultam na
criação de diversas versões desse item.
Sendo assim, é também necessário que
haja um controle específico de todas as
versões criadas, mediante um processo
de armazenamento e identificação das
mesmas. Para a realização desse con-
trole de versões, é essencial a utilização
de ferramenta que possa registrar um
número de versão específico para cada
alteração que lhe seja submetida.
Além do controle da versão dos itens
de configuração, é necessário ter um
controle das diversas versões do mes-
mo sistema que são criadas no ciclo de
vida do desenvolvimento. Em distintos
sistemas, por sua vez, pode-se utilizar
versões diferentes de um mesmo item
de configuração, a depender da neces-
sidade envolvida.
A título de exemplo, a Figura 2 de-
Figura 1. Fluxo do controle de mudanças. monstra que enquanto a versão 1.0 do

Edição 49 - Engenharia de Software Magazine 31


sistema “A” utiliza a versão 1.3 de um determinado item de Gerência de configuração e orientações das normas e
configuração “X”, a versão 2.0 do mesmo sistema “A” pode modelos de referência em qualidade
utilizar, paralelamente, a versão 1.6 daquele mesmo item de Dentro do contexto da gerência de configuração de software,
configuração, uma vez que necessita de uma funcionalidade foram criadas normas e modelos que auxiliam tanto na im-
a mais que existe apenas nesta versão. plantação como no planejamento do processo. Essas normas
e modelos fornecem informações e diretrizes “do que se deve
fazer” para que seja obtido o resultado esperado, deixando o
“como fazer” a cargo da própria organização.
Sendo assim, essas normas e modelos, ao serem devidamente
aplicados pelas empresas, garantem a correta execução do pro-
cesso de desenvolvimento de software e, consequentemente, a
melhoria da qualidade do produto final, atendendo às expecta-
tivas exigidas pelo mercado atual e assegurando uma posição
Figura 2. Controle de versão
de destaque em meio à acirrada concorrência.
Baselines A norma internacional NBR ISO / IEC 12207 – Tecnologia
A baseline compreende um conjunto de um ou mais itens de da Informação – Processos de Ciclo de Vida de Software é uti-
configurações identificados e liberados para uso indepen- lizada como referência na maioria dos países, visando alcançar
dente de suas versões. Destina-se a representar um marco um diferencial competitivo, buscando ampliar as condições das
do projeto, podendo ser gerada a qualquer momento. Uma empresas de enfrentar a crescente concorrência no mercado
vez criada, a baseline não mais poderá sofrer alterações, de de desenvolvimento de software. Esta norma abrange todo o
modo a garantir o retrato do estado da última versão dos ciclo de vida do software, desde a sua concepção até sua des-
itens de configuração, como ilustrado na Figura 3. continuidade, estabelecendo uma divisão para os processos
Sendo assim, aconselha-se que uma nova baseline seja envolvidos de acordo com sua natureza.
criada ao final de cada fase do ciclo de vida do software A gerência de configuração de software está inserida na
e, periodicamente, após cada manutenção. Essas baselines norma como um processo de apoio, sendo responsável por
normalmente passam por um processo de auditoria que identificar e definir os itens de software em um sistema e
tem por objetivo verificar se a baseline contém todos os ar- estabelecer suas linhas básicas (baseline); controlar as modifi-
tefatos necessários, conforme especificado anteriormente e cações e liberações dos itens; registrar e apresentar a situação
se atende aos requisitos estabelecidos. dos itens e dos pedidos de mudanças; garantir a conclusão, a
consistência e a correção dos itens; controlar o armazenamento,
a manipulação e a distribuição dos itens de software.
A norma ISO / IEC 15504, conhecida anteriormente como
SPICE (Software Process Improvement and Capability Determina-
tion) foi desenvolvida para avaliação de processos de software,
objetivando a melhoria dos processos e a determinação da
capacidade de processos de uma organização.
O processo de gerência de configuração de software está
inserido na referida norma como um processo de apoio cujo
propósito é estabelecer e manter a integridade dos produtos
de trabalho ou itens de um processo ou projeto, tornando-os
disponíveis para as partes interessadas.
O Modelo de Integração de Maturidade da Capacidade
(CMMI – Capability Maturity Model Integration) foi desenvol-
Figura 3. Baseline vido pelo SEI (Software Engineering Institute) como um modelo
único para atender, por completo, às organizações em todos os
Auditoria do processo de gerência de configuração níveis, e não somente no âmbito do software. Nesse sentido,
Para a garantia de uma correta execução do processo de ge- a gerência de configuração de software é definida no CMMI
rência de configuração de software, são realizadas auditorias como área de processo, fazendo parte inicialmente do nível de
no processo. Essa atividade visa averiguar se as mudanças maturidade 2. Segundo o CMMI, o propósito da Gerência de
foram feitas, se foram adequadamente implementadas e, Configuração de Software é estabelecer e manter a integridade
principalmente, se o processo está realmente sendo seguido. dos produtos de trabalho, utilizando identificação da confi-
Normalmente, quando a gerência de configuração de software guração, controle de configuração, balanço de configuração e
é considerada uma atividade formal dentro da empresa, essa auditoria de configuração.
auditoria é realizada separadamente pelo grupo de garantia Vale ressaltar que o nível 2 do CMMI possui como meta,
de qualidade. dentre outras, a manutenção e otimização dos processos.

32 Engenharia de Software Magazine - Analisando a gerência de configuração


Gerenciamento d e projetos

Isso significa que a gerência de configuração deveria ser con- Apresentação do questionário
siderada sempre, pois continua sendo otimizada à medida O conjunto de questões gerenciais da pesquisa busca entender
que o processo vai se tornando mais maduro. E, objetivando e avaliar a importância dada pelas empresas ao processo de
investigar como a gerência de configuração tem sido utilizada gerência de configuração de software, bem como o impacto da
e adotada, levando em consideração as normas técnicas e mo- sua utilização no aumento da produtividade, na redução dos
delos de referência em qualidade, a seção seguinte apresenta custos com re-trabalho e na melhoria da qualidade do produto
resultados de pesquisa realizadas junto a empresas de TIC da final. Também é avaliada a relevância do processo na manu-
região metropolitana do Recife. tenção de um produto de software consistente, que é sempre
um objetivo almejado pelas empresas de desenvolvimento de
Pesquisa sobre uso e adoção de gerência de configuração software. Abaixo, é apresentado um subconjunto das questões
No Recife, o setor da Tecnologia da Informação e Comu- que constituíram a pesquisa:
nicação (TIC) cresceu muito nos últimos anos, e o principal • Qual a importância da Gestão de Configuração de Software
responsável para tamanho crescimento foi a criação de um (GCS) no ciclo de vida do desenvolvimento de software?
pólo tecnológico. O Arranjo Produtivo de Tecnologia da In- • Qual a sua avaliação quanto à importância do uso da
formação e Comunicação, mais conhecido como Porto Digital GCS?
(www.portodigital.org), surgiu em Julho de 2000 com o objetivo • Qual a importância da GCS para a melhoria da qualidade
de produzir conhecimento local e exportar serviços de valor do produto?
agregado para todo o mundo. • Qual o impacto da GCS na redução do custo com re-
No Porto Digital, o setor da Tecnologia da Informação e trabalho?
Comunicação constitui ferramenta de desenvolvimento • Qual a influência da GCS no aumento da produtividade no
econômico e social, contando atualmente com mais de cem desenvolvimento de um software?
instituições, entre empresas de TIC e de serviços especiali- • Como você classifica a influência da GCS para organização
zados. Esse ambiente integrado por inúmeras empresas de dos artefatos do projeto de software?
desenvolvimento de software, todas voltadas para o avanço • Qual a importância da GCS na manutenção de um software
e crescimento tecnológico, serviu como base para realização consistente?
desta pesquisa.
As pesquisas, na medida em que consistem em métodos As questões organizacionais referem-se às normas técnicas
confiáveis para levantamento de dados, permitem a obtenção e modelos de referência em qualidade, avaliando se a empresa
de resultados legítimos, que condizem com a realidade da re- possui certificação em qualidade e quais as referidas certifica-
gião em que foi aplicada. Com esse intuito, o referido método ções (CMMI e ISO). Afinal, não é por acaso que os principais
foi aplicado para a realização desta investigação, através do modelos de referência em qualidade e normas técnicas que
qual se buscou conhecer a importância que as empresas de tratam do processo de desenvolvimento de software citam a
desenvolvimento de software da cidade do Recife têm dado gerência de configuração de software como área necessária à
ao processo de gerência de configuração de software. obtenção de um produto de qualidade. Em seguida, são apre-
sentadas as questões referentes a essa parte da pesquisa:
Metodologia da pesquisa • A empresa possui alguma das certificações em qualidade
Esta pesquisa foi desenvolvida a partir do procedimento abaixo? (CMMI e ISO).
técnico denominado “levantamento”, caracterizado pelo ques- • Quem desempenha o papel de gerente de configuração?
tionamento direto das pessoas/empresas cujo comportamento
se deseja conhecer. Tal procedimento envolve o uso de técnicas Cabe ainda destacar que é questionado, para o caso da em-
padronizadas de coleta de dados, a exemplo da aplicação de presa utilizar um processo e possuir certificação de qualida-
questionários e observação sistemática. de, se essa certificação foi responsável pela implantação das
Ao final, os resultados obtidos com as opiniões e infor- atividades da gerência de configuração de software como, por
mações coletadas são traduzidos em números a fim de que exemplo: A certificação de qualidade foi um dos pilares para
sejam classificados e analisados. Para esse objetivo, a pesquisa a implantação do processo de GCS?
lança mão de recursos e de técnicas estatísticas, a exemplo da Já as questões técnicas levantam informações que revelam se
percentagem. A referida pesquisa tem por finalidade obter o processo está sendo seguido de forma completa, ou se apenas
um retrato sobre o grau de utilização do processo de gerência estão sendo realizadas atividades específicas. Verifica-se a
de configuração de software pelas empresas de desenvolvi- utilização de um plano de gerência de configuração, quais os
mento da região metropolitana do Recife. Para esse fim, foi itens de informação que são controlados, a utilização de repo-
elaborado um formulário eletrônico de pesquisa, disponível sitório para armazenamento dos itens, a utilização de baselines.
em https://spreadsheets.google.com/viewform?formkey=dE Analisa-se também a utilização do controle de versão e de
ZZT0FNcjU5ck1YZndiMkhpazN3SUE6MQ, contendo ques- mudanças e suas respectivas ferramentas, além de apurar se
tões que englobam aspectos técnicos e gerenciais referentes essas atividades estão sendo auditadas. Exemplos de questões
ao processo. desta etapa da pesquisa compreendem:

Edição 49 - Engenharia de Software Magazine 33


• Existe plano de gerência de configuração? os outros 39% a classificaram como significativa ao processo
• Quais itens de configuração são controlados pela gerência de desenvolvimento (vide Figura 5).
de configuração?
• É utilizado repositório para armazenamento dos itens de
configuração?
• São utilizadas baselines no projeto?
• É realizada auditoria das baselines?
• Caso seja realizada auditoria de baselines, quem é o respon-
sável pela atividade?
• É realizado controle de versão dos artefatos do projeto?
• Quais as ferramentas são utilizadas no controle de verão?

Estrutura do formulário
Um formulário eletrônico foi elaborado para que a pesquisa
pudesse proceder de forma segura e organizada, através de
uma ferramenta gratuita disponibilizada pelo “Google”, deno- Figura 4. Importância da GCS segundo os participantes da pesquisa
minada “Google Docs”. Essa ferramenta permite a construção
de um formulário eletrônico de forma bastante diversificada,
no qual é possível personalizar toda a pesquisa. O mais inte-
ressante desta ferramenta é que o resultado é automaticamente
organizado em uma planilha eletrônica, facilitando bastante
o trabalho do pesquisador na coleta dos dados.

Perfil dos participantes


Os formulários eletrônicos foram direcionados aos profis-
sionais da área de TIC atuando como analistas de sistemas,
analistas em gerência de configuração de software, engenhei-
ros de software, incluindo também arquitetos de software e
gerentes de projetos.
Figura 5. Importância da GCS no ciclo de vida de desenvolvimento
Avaliação da pesquisa sobre uso/adoção de práticas segundo os participantes.
da engenharia de configuração nas empresas de TI do
Recife Nas questões referentes à importância da GCS em fatores
Antes de proceder à análise dos resultados obtidos com a como a melhoria da qualidade do software, redução dos custos
pesquisa sobre o uso e adoção da gerência de configuração de com re-trabalho, aumento da produtividade, organização dos
software pelas empresas da cidade do Recife, cumpre salientar artefatos e manutenção de um software consistente (discutidos
que atualmente existem cerca de 130 empresas do ramo de adiante), a análise dos resultados obtidos demonstra que
Tecnologia da Informação e Comunicação (TIC), segundo o aproximadamente 44% dos participantes classificaram como
Porto Digital. essencial a utilização da GCS para obtenção desses fatores
Em uma análise geral, observando-se o resultado obtido acima citados. Outros 41%, informaram ser significativa a
com a aplicação da pesquisa, verifica-se que dentre o total utilização deste processo para se chegar a um produto de
das empresas, 17 (dezessete) responderam ao questionário, software com qualidade, organização a um custo reduzido e
representando cerca 13% (treze por cento) do total. no menor prazo possível.
Ainda é possível destacar que 9% dos pesquisados consideraram
Análises das questões gerenciais que a influência da GCS nos fatores mencionados é classificada
De acordo com avaliação da maioria dos participantes, o pro- como média, enquanto outros 4% consideram-na moderada. Por
cesso de gerência de configuração de software é considerado fim, 2% acreditam que a GCS não possui qualquer influência
essencial ou significativo. De fato, 50% classificaram a GCS sobre esses fatores. A Figura 6 ilustra a situação abordada.
como essencial, e outros 46% informaram considerar o processo Tratando-se da importância da GCS na melhoria da qualidade
significativo. Apenas 01 Engenheiro de Software classificou o do produto, 50% dos participantes atribuíram caráter significa-
processo como Moderado, representando apenas 4% do total, tivo à influência deste processo. Outros 43% o definiram como
conforme a Figura 4. essencial, e apenas 7% como moderado. Essas informações
Ao serem questionados acerca da importância da GCS no ciclo demonstram a tamanha importância que a utilização da GCS
de vida de desenvolvimento de software, 17 dos 28 participantes, representa na busca por um software de qualidade, conforme
representando 61% do total, julgaram-na essencial, enquanto apresenta a Figura 7.

34 Engenharia de Software Magazine - Analisando a gerência de configuração


Gerenciamento d e projetos

da influência da GCS sobre o aumento da produtividade no


desenvolvimento de software. A maioria dos participantes,
aproximadamente 43%, classificou como significativa a uti-
lização da GCS para melhorar a produtividade no desenvol-
vimento de software. Nesse sentido considera-se de extrema
valia a utilização da GCS quando se busca um aumento de
produtividade visto que se reduz o tempo de identificação
de problemas de forma significante, facilitando a correção
de defeitos, além de manter a rastreabilidade das mudanças
realizadas ao longo do processo de desenvolvimento.
Acreditando na importância do processo de GCS para o
desenvolvimento de software de forma eficaz, 07 dos 28
Figura 6. Importância da GCS.
participantes classificaram a atividade como essencial para o
aumento da produtividade, de modo que acreditam na contri-
buição da GCS para que as tarefas sejam realizadas no menor
tempo possível, garantindo-se a agilidade no desenvolvimento
do produto.
Outros cinco participantes informaram considerá-la de média
importância. Por fim, dois a classificaram como moderada
e outros dois afirmaram que a GCS não teria influência no
aumento da produtividade no âmbito do desenvolvimento de
software, conforme apresentado na Figura 9.

Figura 7. Importância da GCS na melhoria da qualidade do software.


Quanto à importância dada pelos participantes à GCS no
contexto da redução dos custos com o re-trabalho, metade deles
considerou essencial a utilização do processo para minimizar
os gastos com a realização de atividades que já foram efetuadas
devido a erros na sua execução primária. Além disso, aproxi-
madamente 36% dos participantes afirmaram ser significativa
a utilização da GCS para a diminuição do valor gasto com
re-trabalho, fato que ressalta ainda mais a importância desse
processo. Apenas 11% do total de pessoas que responderam Figura 9. Importância da GCS no aumento da produtividade.
ao questionário a definiram como média, tendo uma minoria
de 4% classificada como moderada a relevância da GCS neste Fazendo um comparativo entre a importância da GCS na
contexto, conforme Figura 8. organização dos artefatos e na manutenção de um software
consistente, 16 participantes responderam que a GCS é essen-
cial para manutenção de um software consistente, enquanto
12 classificaram como essencial a utilização do processo de
GCS para organização dos artefatos. 12 pessoas consideraram
como significativa a atividade de GCS para a organização dos
itens do projeto, assim como outras 10 tratam também como
significativa a influência da GCS sobre a manutenção de um
software consistente. A Figura 10 apresenta um comparati-
vo que demonstra essas situações abordadas, entre outros
aspectos.
A partir das informações gerenciais obtidas, constata-se que,
de fato, a gerência de configuração de software constitui fator
imprescindível no ciclo de vida de desenvolvimento de sof-
Figura 8. Importância da GCS na redução dos custos com re-trabalho. tware, que pode conferir uma maior qualidade ao processo de
desenvolvimento e, consequentemente, ao produto final. Deste
Além de abordar temas como a importância da GCS na me- modo, as informações coletadas demonstram a importância do
lhoria da qualidade do produto de software e na redução de processo de GCS quando se busca redução dos valores gastos
custos com re-trabalho, a pesquisa também questionou acerca com re-trabalho, a melhoria do índice de produtividade, e a

Edição 49 - Engenharia de Software Magazine 35


garantia da qualidade do produto final. O resultado obtido
ressalta a importância dada pelos profissionais da área de TI
ao processo de gerência de configuração de software, demons-
trando os benefícios da sua utilização.

Figura 12. Demonstração das certificações de qualidade ostentadas


pelas empresas.

Figura 10. Demonstrativo entre a importância da GCS na organização


dos artefatos e na manutenção de um software consistente

Análises das questões organizacionais


Partindo para a análise das questões organizacionais, ini-
cialmente serão analisadas as informações resultantes da
verificação do grau de utilização da GCS pelas empresas. Das
empresas participantes, 13 afirmaram utilizar o processo de
gerência de configuração de software, ou seja, 76% do total,
conforme demonstra a Figura 11.
Figura 13. Percentual de empresas que implantaram o processo de GCS
por influência das normas técnicas e modelos de referência em qualidade

Entre as empresas que não utilizam o processo de GCS, todas


elas afirmam que o motivo da não utilização se deve ao fato
da ausência de capacitação profissional e à inexistência de
modelos de referência para implantação do processo. Apenas
duas empresas não souberam informar se utilizam o processo
de GCS.

Análises das questões técnicas


Figura 11. Grau de utilização do processo de GCS na cidade do Recife Após a análise das questões organizacionais, é feita a verifi-
cação dos resultados obtidos a partir das questões técnicas, as
De acordo com o resultado obtido, das 17 empresas participan- quais apenas foram submetidas às empresas que informaram
tes, seis não possuem certificação em qualidade e apenas um não utilizar o processo de GCS. As informações obtidas com esta
soube informar. Entre as empresas certificadas, quatro são pelo fase da pesquisa demonstraram quais as atividades de GCS
CMMI, ISO e MPS.Br, um pelo CMMI e ISO e 01 pelo CMMI e estão sendo utilizadas.
MPS.Br. Também foram identificadas empresas que só possuem Entre todas as empresas pesquisadas, num total de 13, 77%
a certificação CMMI, totalizando três, e apenas um possui ape- estabeleceram um plano de gerência de configuração, docu-
nas a certificação MPS.Br como mostra a Figura 12. mentando todo o processo, desde as atividades, ferramentas
Inclusive, foi analisado o motivo que levou a empresa a utilizadas até os responsáveis por cada uma dessas atividades.
utilizar o processo de gerência de configuração de software. Apenas dois empresas afirmaram não utilizar o plano de GCS,
Neste levantamento foi constatado que 43% das empresas enquanto um não soube informar. A Figura 14 demonstra os
passaram a utilizar GCS devido a exigências das normas percentuais representativos dessa situação.
técnicas e modelos de referência em qualidade para obten- Quanto à utilização de um repositório para organização dos
ção da certificação. Outros 29% informaram não ter sido artefatos do projeto que são controlados pela equipe de GCS,
esse o motivo e 14% não souberam informar, como mostra cerca de 85% das empresas participantes informaram utilizá-
a Figura 13. lo, enquanto os outros 15%, representado por apenas dois

36 Engenharia de Software Magazine - Analisando a gerência de configuração


Gerenciamento d e projetos

empresas, não souberam informar. Ao se falar de repositório, 11 utilizam esse tipo de controle, representando 85% do
uma importante prática é obter o controle de acesso sobre esse total. Apenas uma empresa afirmou não utilizá-lo e outra
repositório, restringindo as possibilidades de escrita e leitura a não soube informar.
um documento apenas para quem realmente deve obter essas
possibilidades. Como resultado obtido desse levantamento,
92% das empresas utilizam o controle de acesso e apenas 8%
não souberam informar.

Figura 14. Informações referentes à utilização ou não do plano de


Figura 16. Informações sobre a utilização do controle de versão e do
gerência de configuração.
controle de mudanças.
As empresas também foram questionadas sobre a utilização de
baselines, oportunidade em que 11 delas informaram utilizá-las, A pesquisa também tratou de questionar as empresas quanto
porém apenas sete afirmaram realizar auditorias nestas base- à utilização de build automatizado, responsável por efetuar
lines. As auditorias são importantes, podendo-se através desta a construção do executável do sistema de forma automática.
atividade, garantir a integridade da baseline. Como mostra a Figura 17, dez empresas utilizam forma auto-
Apenas um empresa informou não utilizar baselines, e um não mática para fazer a construção do executável do sistema, um
soube informar. Quanto à auditoria, cinco empresas informa- não a utiliza e dois não souberam informar.
ram que não realizam auditoria e apenas um não soube informar.
A Figura 15 representa essa situação.

Figura 17. Grau de utilização do processo de construção do executável


automaticamente.

Para fins de averiguar a preocupação das empresas com a


garantia da integridade do processo de GCS, os participantes
foram questionados acerca da utilização da auditoria de confi-
Figura 15. Levantamento quanto à utilização de baselines e a realização
de suas auditorias.
guração. Nesse contexto, 6 empresas afirmaram realizarem au-
ditoria no processo de GCS, enquanto outras quatro disseram
As empresas também foram submetidas a questões acerca que não a utilizam. Por fim, três não souberam informar.
da utilização das atividades do controle de versão e do con- É importante observar que a maioria das empresas que
trole de mudanças, as mais importantes da GCS. A Figura 16 participaram da pesquisa utiliza grande parte das atividades
demonstra a situação observada quanto à utilização dessas que compõem o processo de gerência de configuração, o que
atividades. demonstra a ciência dessas empresas acerca da importância da
Quanto à utilização do controle de versão, o gráfico aponta GCS para qualidade do processo de desenvolvimento de sof-
que 92% das empresas que responderam a pesquisa afir- tware e, consequentemente, para a qualidade do produto final.
maram utilizá-lo, e apenas 8% não souberam informar. Já Entretanto, foi observado que apenas pouco mais de 45% das
quanto ao controle de mudanças, 85% informaram utilizar empresas realizam auditoria do processo de GCS. Esse índice é
essa atividade, 8% disseram não utilizar e outros 8% não preocupante na medida em que é por meio dessa auditoria que
souberam informar. Os participantes também foram ques- se verifica a correta execução das atividades integrantes da GCS,
tionados quanto à utilização de um controle de liberação sendo certo que a sua incorreta realização pode comprometer
por parte das empresas. Das 13 empresas participantes, o resultado esperado.

Edição 49 - Engenharia de Software Magazine 37


O produto final resultante de uma má execução da GCS Embora a pesquisa tenha demonstrado um resultado bastante
durante o processo de desenvolvimento pode, certamente, satisfatório quanto à utilização da GCS pelas empresas do
ser equiparado àquele obtido a partir de um processo que não Recife, importante salientar que, por outro lado, evidenciou
utilize a GCS. Isso porque a incorreta aplicação deste processo que apenas 46% (aproximadamente) das empresas realizam
resulta no aumento dos custos com re-trabalho e, consequente- auditoria do processo de gerência de configuração de softwa-
mente, na redução da produtividade, aspectos característicos re, o que significa que grande quantidade das empresas não
de um processo de desenvolvimento realizado sem a utilização possui garantia da correta execução da GCS. É crucial que a
da gerência de configuração de software. GCS seja utilizada adequadamente com o objetivo de controlar
custos e esforços envolvidos na realização das mudanças de
Conclusão um sistema.
Gerenciamento de configuração é uma atividade essencial
da engenharia de software, e mais ainda para manutenção de Referências
software, que realiza o gerenciamento de mudanças de sistema
para artefatos de software. O gerenciamento de configuração SOMMERVILLE, I. Engenharia de Software. 8a. Ed. Pearson, 2009.
provê suporte à verificação, validação e auditoria de cada passo Creating a Software Engineering Culture
para identificar, autorizar, implementar e liberar artefatos de http://www.processimpact.com/articles/culture.pdf
software. Cabe destacar que não se trata apenas de prover
suporte à rastreabilidade, quando se acompanha ocorrências Software Engineering Body of Knowledge
como as CR’s (change requests) ou PR’s (problem reports). http://www.computer.org/portal/web/swebok
Nesse sentido, diante da importância da GCS durante o
ciclo de vida de desenvolvimento do software, empresas do The Nature of Software: What’s So Special About Software Engineering?
setor têm sido cada vez mais adeptas de sua aplicação. Esta http://www.ibm.com/developerworks/rational/library/4700.html
constatação foi observada na análise dos resultados obtidos
com a pesquisa realizada para investigar o uso e a adoção do ISO/IEC - 14764 IEEE Std 14764-2006 - Software Engineering — Software Life
processo de gerência de configuração de software pelas em- Cycle Processes — Maintenance
presas do Recife. Vale ressaltar que embora a pesquisa tenha http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=11168
sido realizada apenas em uma cidade, ela abordou questões
cruciais ao gerenciamento de configuração e também à ma- SOFTWARE CONFIGURATION MANAGEMENT(Chapter 7) in Guide to the Software
nutenção de software. Engineering Body of Knowledge (SWEBOK)
Analisando-se os dados levantados com a referida pesquisa, http://www.computer.org/portal/web/swebok/html/ch7
verificou-se um elevado índice de utilização da GCS pelas
empresas participantes, as quais demonstraram executar
Dê seu feedback sobre esta edição! Feedback
eu
grande parte das atividades específicas integrantes desse

s

processo. Aproximadamente 76% destas empresas empregam A Engenharia de Software Magazine tem que ser feita ao seu gosto.

sobre e
gerenciamento de configuração em suas atividades, sendo que Para isso, precisamos saber o que você, leitor, acha da revista!

s
ta
cerca de 43% informaram que a implantação da GCS decorreu
edição
Dê seu voto sobre este artigo, através do link:
principalmente do cumprimento de exigências necessárias à
www.devmedia.com.br/esmag/feedback
obtenção de certificação em qualidade.

38 Engenharia de Software Magazine - Analisando a gerência de configuração

Você também pode gostar