Vous êtes sur la page 1sur 33

FACULDADE DE TECNOLOGIA DE ITAQUAQUECETUBA CURSO DE TECNOLOGIA EM INFORMTICA PARA GESTO DE NEGCIOS RODNEY SANTOS DE MOURA

GERNCIA DE CONFIGURAO: APRESENTAO DE PRTICAS, MODELOS E NORMAS PARA A GARANTIA DE QUALIDADE NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

ITAQUAQUECETUBA 2011

INTRODUO
A partir de meados dos anos 60, surgiu o termo crise do software, termo que demonstrava um grande problema no processo de desenvolvimento e manuteno de softwares. Perodo em que houve uma crescente demanda por programas de computador cada vez mais complexos, devido importncia que o mundo dos negcios percebeu que o software poderia trazer. Sendo considerada a indstria de softwares um dos fatores dominantes no mundo dos negcios. Mas um dos fatores mais crticos que determinou o termo crise do software foi a falta de qualidade nos produtos produzidos pelas fbricas de software. Para resolver os problemas ocorrentes nessa poca em relao aos produtos de software e suas incertezas tanto s empresas desenvolvedoras como aos clientes surgiu em meados dos anos 70 a Engenharia de Software com o objetivo de estabelecer processos e mtodos para o desenvolvimento e manuteno para produo de softwares de qualidade. Qualidade objeto de desejo por todos os envolvidos na produo de um software, sejam eles desenvolvedores ou clientes, tanto no processo de fabricao como em uso depois de pronto, atendendo especificaes, sem falhas e erros. A Gerncia de Configurao um dos pilares na Engenharia de Software para adquirir um processo controlado no desenvolvimento e manuteno do software, apoiando equipes de desenvolvimento na soluo de problemas inerentes as atividades de produo e manuteno, atravs de atividades que cobrem todo o ciclo de vida do software, sendo considerado por Pressman (2006) uma das atividades guarda-chuva da Engenharia de Software, para aquisio de qualidade no produto desenvolvido, mantendo a integridade e confiabilidade do software. A GCS responsvel por controlar a evoluo do software, pois um software sempre est em constante mutao, e existem diversos fatores para que ele esteja sempre mudando, se tornando complexo manter um software, pois existe uma grande quantidade de artefatos e itens que so criados e que quando no so controlados pode tornar o processo de desenvolvimento e manuteno um verdadeiro caos. O objetivo principal controlar, acompanhar e documentar a evoluo das mudanas durante seu desenvolvimento. Atualmente existem normas nacionais e internacionais e modelos em que a Gesto de Configurao est inclusa e um dos fatores principais de sucesso para

obteno de qualidade tanto no processo de fabricao como no resultado final do produto ao cliente. DELIMITAO DO TEMA O trabalho de pesquisa proposto tem por objetivo apresentar prticas, modelos e normas de Gerncia de Configurao, gesto especfica dentro da Engenharia de Software que aplicado em organizaes de desenvolvimento, proporcionam benefcios s equipes de desenvolvimento, aos gerentes de projetos e garante a integridade e controle sob todas as alteraes do software durante todo o ciclo de vida de desenvolvimento do projeto. GCS garante a qualidade do software e que os projetos entregues estaro atendendo requisitos estabelecidos e que todos os seus itens estejam devidamente identificados e documentados. PROBLEMATIZAO A problemtica apresentada neste trabalho envolve a complexidade que se torna desenvolver e dar manuteno ao software durante a evoluo de suas partes integrantes. Sendo que a ocorrncia de alteraes so inevitveis e com o tempo se torna difcil manter um software em que no possvel saber qual verso est sendo usada, qual as ltimas alteraes, os motivos das mudanas, documentao das modificaes e do projeto, controle das alteraes em relao aos seus impactos e reais necessidades. Problemas que pode fazer do processo de manuteno um caos no garantindo ao cliente e usurio a integridade e confiabilidade do produto entregue e colocado em funcionamento. A questo que levou ao estudo e desenvolvimento deste trabalho : Como a Gerncia de Configurao de Software pode colaborar com gerentes de projetos e equipes de desenvolvimento a garantir a qualidade do projeto a ser entregue ao cliente?

JUSTIFICATIVA

De acordo com Pressman (1995), no decorrer do desenvolvimento de um software inevitvel a ocorrncia de diversas alteraes. Alteraes de novas condies de negcios e de mercado, novas necessidades de clientes, so mudanas que impactam nas informaes produzidas pelo software, prioridades do software, na estrutura do time de desenvolvimento e nas regras de negcio. Se essas modificaes no tiverem um controle adequado, ou seja, pela GCS, podem causar consequncias em outras partes existentes, no estando em conformidade com os requisitos, consequentemente interferindo no cronograma e elevando custos no ciclo de vida do sistema. O desenvolvimento deste trabalho pode contribuir na soluo de problemas intrnsecos ao software, como: tempo de entrega do produto, custo, sua integridade e principalmente continuar atendendo aos requisitos esperados pelo cliente. OBJETIVO GERAL Demonstrar como a adoo de Mtodos e Prticas para utilizao de Gerncia de Configurao de Software, em empresas de desenvolvimento, pode apoiar gerentes de projetos analistas de sistemas, equipes no processo de fabricao de projetos de softwares na resoluo de problemas intrnsecos, relacionados ao controle da evoluo do produto ao longo da fabricao do projeto ou manuteno do mesmo, no afetando ao cronograma e garantindo que o resultado esteja de acordo com os requisitos. OBJETIVOS ESPECFICOS Descrever os modelos e padres de qualidades de software em que a Gesto est presente. Apresentar de forma clara como o gerenciamento de configurao de software. Mostrar mtricas e tarefas da GCS. Analisar como este controle de mudanas no ciclo de vida de softwares pode apoiar gerentes de projetos e equipes de desenvolvimento.

HIPTESE Por meio da Gesto de mudanas possvel garantir a qualidade do produto entregue ao cliente. A mudana constante, enquanto o sistema no for descartado e estiver sendo necessrio realizar mudanas, a GC estar trabalhando para que essas alteraes no impactem o que foi desenvolvido e est funcionando, verificando se realmente essas alteraes so necessrias e se realmente atendero as necessidades esperadas. Essa gesto especfica na Engenharia de software se utiliza de modelos, mtodos e ferramentas. A adoo da GCS pode trazer alguns benefcios: - Facilidades para acomodar mudanas; - Maior controle sobre os produtos; - Economia de tempo de desenvolvimento de software. ORGANIZAO DO TRABALHO No captulo 1 realizada a fundamentao terica do trabalho, mostrando as origens das necessidades de se aplicar mtodos e procedimentos a fim de buscar qualidade no processo de desenvolvimento e manuteno de softwares e citando a utilizao da Gerncia de Configurao. No segundo captulo apresentado a Gerncia de Configurao de Software, abordando alguns conceitos inerentes, sua histria, o motivo da existncia de GCS, identificar e analisar os processos e tarefas envolvidos. O captulo 3 tem por objetivo identificar as principais normas nacionais e internacionais e modelos em que a Gesto de Configurao est presente, analisalas e mostrar seu funcionamento. J no captulo 4 apresentado o estudo de caso aplicado em uma equipe de desenvolvimento de software, mostrando os benefcios da aplicabilidade da GCS. E, finalmente, o captulo 5 apresenta as consideraes finais do trabalho.

PROCEDIMENTOS METODOLGICOS O trabalho se utilizar de pesquisa bibliogrfica e de um estudo de caso. A instituio pesquisada a Faculdade de Tecnologia de So Paulo, situada no bairro do Bom Retiro, SP. O setor responsvel por desenvolver sistemas internos e externos da instituio o Centro de Pesquisas (CEPE). Sero analisadas as ferramentas e metodologias utilizadas pelo setor da instituio, para identificar quais os benefcios dessas ferramentas utilizadas e metodologias e o que poderia ser adicionado nesse tipo de gerenciamento para maiores benefcios ao setor.

Captulo 1
FUNDAMENTAO TERICA 1.1. Engenharia de Software
Engenharia de Software uma rea de conhecimento da informtica, que composto de processos, mtodos e ferramentas para o desenvolvimento de softwares de qualidade (PRESSMAN, 2006). rea responsvel por tudo que conhecido atualmente no aspecto de fabricao de software. Os princpios utilizados pela Engenharia de Software, como seu prprio nome demonstra, so os de engenharia que indica anlise, construo e manuteno. Software, programa de computador, sistema, aplicao, produto ou projeto sero com muita frequncia abordada no decorrer deste trabalho, o qual tem o mesmo significado. um conjunto de instrues que quando executadas, interagindo com os dados de entrada passados pelo usurio ou no, geram informaes, aes e efeitos desejados no meio em que est inserido. Transformando atividades manuais em instrues de computador, a fim de agilizlos e apoiar o homem em atividades complexas suscetveis a erros, sendo mais precisos. Executam vrias aes em intervalos menores, substituindo at o homem em determinadas funes, tornando-se algo primordial nas organizaes para sucesso dos negcios. Outra palavra que ser muito usada processo, compreendido como o conjunto de recursos e atividades inter-relacionadas, conjunto de atividades, mtodos, prticas e tecnologias que os desenvolvedores utilizam para desenvolver ou manter o software, pelas quais um produto passa at ficar pronto, com o objetivo de que o resultado seja de qualidade. A definio de Fritz Bauer para Engenharia de Software (Pressman, 2006, p. 17), O estabelecimento e uso de slidos princpios de engenharia para que se possa obter economicamente um software que seja confivel e que funcione eficientemente em mquinas reais. Uma definio mais abrangente por IEEE para Engenharia de Software (Pressman, 2006, p. 17), aplicao de uma abordagem sistemtica, disciplinada e

quantificvel para o desenvolvimento, operao e manuteno do software, isto , a aplicao da engenharia ao software. A Engenharia de Software surgiu em meados da dcada de 70, a fim de estabelecer uma estrutura formalizada a ser seguida na produo do software, para resolver problemas que ocorriam nesse perodo, e incertezas em relao ao software tanto as empresas desenvolvedoras de software como aos clientes por falta de qualidade. Na dcada de 60, surgiu uma expresso que demonstrava esses problemas ocorrentes, denominada crise do software, porque os softwares produzidos no satisfaziam os requisitos dos envolvidos (clientes, usurios e desenvolvedores), no atendiam cronogramas, grande volume de falhas e custos excedentes ao combinado.

Figura 1 Engenharia de Software em camadas (Pressman, 2006, p. 24).

Pressman (2006) afirma que a base em que qualquer abordagem de engenharia de software deve se apoiar e ter compromisso com a qualidade, como apresentado na figura acima, todas as abordagens desenvolvidas devem ser baseadas em um processo contnuo de aperfeioamento. O objetivo da ES a busca de um processo de desenvolvimento em que o componente mais importante a Qualidade. Pressman (2006) afirma ainda que na Engenharia de Software existem algumas atividades, denominadas por ele como atividades guarda-chuva, que so aplicveis em todos os projetos de software independentemente de seu tamanho ou complexidade, que segundo ele so pontos de garantia de qualidade. E dentre essas atividades, est a Gerncia de Configurao de Software, o qual ser tratado com mais detalhes no prximo captulo. Gesto responsvel em apoiar as esquipes de desenvolvimento e seus envolvidos na soluo de problemas que podem ocorrer durante o processo de desenvolvimento e manuteno de software, mantendo sua

integridade e confiabilidade, garantindo qualidade tanto no processo de fabricao do produto como na garantia de qualidade do software a ser entregue ao cliente.

1.2. Processo de Desenvolvimento


No processo de desenvolvimento de software, existem trs fases genricas, independentemente do paradigma de ciclo de vida, da rea de aplicao, tamanho do projeto ou complexidade, devem ser realizadas: definio, desenvolvimento e manuteno (Pressman, 1995). Paradigma de ciclo de vida so modelos, no qual consiste de um conjunto de fases que so aplicadas durante o processo de desenvolvimento de software, que satisfazem as necessidades de um projeto. Na fase de definio, so levantados quais os objetivos esperados pelo cliente, suas funes, restries e os critrios de validao para que o produto seja considerado terminado. Segundo Pressman (1995), trs etapas ocorrem: Anlise do Sistema: Uma anlise minuciosa dos elementos que o comporo, definindo suas aes; Planejamento do projeto de software: Anlise dos riscos, recursos, custos e definio das tarefas a serem executadas; e Anlise dos Requisitos: Antes do incio das tarefas necessrio detalhar as funes esperadas do software. Na fase de desenvolvimento, so definidos pelos desenvolvedores a arquitetura do software, como sero implementadas as tarefas e como os testes devem ser realizados, onde trs passos so executados: Projeto de Software: Descrio da arquitetura, os procedimentos e caractersticas de interface; Codificao e realizao dos testes. Por ltimo, a fase de manuteno reaplicada os passos das fases de definio e desenvolvimento nas manutenes que forem necessrias realizarem no software, que podem ser por: Correo de defeitos; Adaptao de ambientes internos ou externos ao sistema; e adio de novas funcionalidades ao produto.

1.3. Manuteno do Software


Manuteno uma das fases do ciclo de vida do desenvolvimento de software, geralmente so realizadas no software depois de liberado ao cliente e

colocado em uso. Responsvel por realizar alteraes no produto por diversas razes determinando a categoria das mudanas a serem executadas. As categorias das mudanas so: a) Manuteno Corretiva: categoria que identifica e corrige erros de cdigofonte do projeto, ou seja, manuteno que ser executada por razo de existncia de defeitos, falhas e erros. b) Manuteno Adaptativa: mudanas ao software para que ele possa se adaptar ao ambiente operacional em que est em uso, caracterizada pela evoluo contnua existente no mundo real. c) Manuteno Perfectiva: No decorrer do tempo, os clientes e usurios tendem a querer mudar e melhorar funcionalidades existentes e incluir novas funcionalidades , a fim de aperfeioar as funes exercidas pelo software. d) Manuteno Preventiva: Melhorar o cdigo-fonte do produto para que futuramente seja fcil dar manuteno, alm de no futuro melhorar a confiabilidade do software e facilitar a incluso de novas funcionalidades. O que caracteriza esse tipo de manuteno melhorar a manutebilidade e prevenir problemas ocasionados pelo cdigo futuramente. As alteraes no software so inevitveis, um dos problemas que ocorre nessa fase so custos maiores do que a etapa de desenvolvimento, como demanda tempo para a realizao das modificaes despendido maior esforo de pessoas para execuo da manuteno para que essas alteraes no impactem no cronograma estipulado, porque no processo de qualquer mudana requer entendimento do que o software faz, interpretao da estrutura de dados, ou seja, analisar, avaliar, projetar, codificar e testar as alteraes. Dentre as dificuldades do processo de manuteno est a dificuldade em analisar a evoluo do software, alteraes no documentadas, documentao do projeto inexistente e se existe difcil sua compreenso ou est desatualizada. O processo de manuteno de software considerado um dos fatores importantes para obteno de qualidade do produto de software, pela sua complexidade em relao ao processo de desenvolvimento de software.

1.4.

Qualidade de Software

Qualidade de Software objeto de desejo por todos que participam do desenvolvimento de um produto, sejam eles clientes, desenvolvedores ou gerentes de projetos. No importa o que cada um entende por qualidade, pois cada um entende de uma forma diferenciada, por ngulos diferentes, mas todas as partes desejam e tm uma viso de qualidade. Por exemplo, para o desenvolvedor um software de qualidade quando o cdigo fonte est organizado e de fcil manutebilidade; para o usurio comum de um sistema, um erro no programa pode ser falta de qualidade. Essas vises diferenciadas, que de certa maneira no esto erradas, so incompletas. E por esse motivo que Molinari (2007) afirma que no existe uma nica forma de se tratar de qualidade de software, pois para alcan-la depende muito do ambiente e finalidade do software. A partir da afirmao de Koscianki (2007, p. 35): Qualidade de Software no mais um fator de diferenciao e sim condio essencial para empresas e profissionais serem bem sucedidos, percebemos que qualidade de software era considerada pelas empresas de desenvolvimento de software pelo motivo de diferenciao dos seus produtos no mercado perante seus concorrentes. Diferente do passado, atualmente, tornou-se essencial nas organizaes do ramo, pois o objetivo da qualidade atender aos requisitos e necessidades do cliente, e atingindo esse objetivo, tanto a empresa como os profissionais envolvidos se tornam bem sucedidos. A partir da afirmao de Pressman (2006, p.1):
Hoje, o software de computadores a tecnologia nica mais importante no palco mundial. (...) Ningum na dcada de 1950 poderia ter previsto que o software fosse se tornar uma tecnologia indispensvel para negcios, cincia e engenharia; que o software fosse permitir a criao de novas tecnologias (...) ningum poderia ter previsto que milhes de programas de computador tivessem de ser corrigidos, adaptados e aperfeioados medida que o tempo passasse, e que o nus de realizar essas atividades de manuteno absorveria mais pessoas e mais recursos que todo o trabalho aplicado na criao de novos softwares.

Podemos identificar o cenrio atual do desenvolvimento de software. Uma busca crescente pelo desenvolvimento de novas tecnologias baseadas no desenvolvimento de softwares de computadores, a fim de melhorar os processos

antes existentes com o objetivo de melhor-los e agiliz-los tornando-se indispensveis aos negcios. No decorrer dos anos, percebemos que esse grande volume de produtos desenvolvidos tiveram que ser corrigidos, adaptados e aperfeioados por motivo de novas condies de negcios e mercado, e novas necessidades de clientes. Alteraes que impactam nas informaes produzidas pelo software, prioridades do software, na estrutura do time de desenvolvimento e nas regras de negcio. Devido a essas manutenes serem grandes, o nus para realiz-las seria maior do que a criao de um novo software. Da dcada de 1950 at o presente momento ainda persistem algumas questes referentes ao processo de fabricao e manuteno do software (Pressman, 2006, p. 3):
- Por que leva tanto tempo para concluir o software? - Por que os custos de desenvolvimento so to altos? - Por que no podemos achar todos os erros antes de entregar o software aos clientes? - Por que gastamos tanto tempo e esforo mantendo programas existentes? - Por que continuamos a ter dificuldade em avaliar o progresso enquanto o software produzido?

Questes decorrentes de problemas ocasionados por mudanas necessrias ao software, processo que no to simples para as equipes de desenvolvimento de software. Para avaliar a qualidade de um software, existem algumas mtricas, que nada mais do que a medio de alguns atributos que segundo Pressman (1995) podem ser diretos (exemplo: custos, esforos e erros) ou indiretos (exemplo: usabilidade e manutebilidade). A importncia de se medir pontos de um software entender problemas e aperfeioar o processo de desenvolvimento, melhorando a gerencia de projetos, reduzindo a falta de cumprimento de prazos estipulados, indicando a qualidade de um produto de software, avaliao da produtividade, avaliar benefcios de novos mtodos e ferramentas, identificar melhores prticas de desenvolvimento, melhorar estimativas e identificar melhorias no processo de desenvolvimento de software. Para resolver esses problemas, inerente ao processo de desenvolvimento e manutebilidade do software, existe uma disciplina especfica dentro da Engenharia de Software responsvel em resolv-los, que identificada como Gerncia de

Configurao de Software. Entre os problemas relacionados esto: perda do cdigofonte, dificuldade em gerenciar o histrico das alteraes realizadas, o tempo dispendido para localizao do cdigo-fonte, falhas decorrente por falta de documentao do cdigo e regras de negcio, gerenciar alteraes que pode impactar outras partes que esto funcionando.

Captulo 2
GERNCIA DE CONFIGURAO DE SOFTWARE
A Gerncia de Configurao um ramo da Engenharia de Software que, atualmente, mostra-se como uma rea a ser implantada nas organizaes desenvolvedoras de software. De acordo com Pressman (2006, p. 181):
Conjunto de atividades projetadas para controlar as mudanas pela identificao dos produtos do trabalho que sero alterados, estabelecendo um relacionamento entre eles, definindo o mecanismo para o gerenciamento de diferentes verses destes produtos, controlando as mudanas impostas, e auditando e relatando as mudanas realizadas.

A Gesto de Configurao tem-se mostrado importante em relao qualidade de projetos modernos e complexos, e at mesmo se tornando um diferencial competitivo entre empresas de desenvolvimento, sendo que, h uma corrida pela qualidade nos produtos oferecidos a seus clientes (ESTUBLIER, 2005). uma gesto que garante a qualidade de softwares por meio de mtodos e prticas. Segundo Valeriano (1998), no se insere, contudo, na rea de Qualidade de Software, uma vez que at mesmo a qualidade controlada por GCS (Gerncia de Configurao de Software), e tem um momento predefinido no cronograma do projeto. Molinari (2007) cita que essa qualidade alcanada a partir de alguns processos que envolvem o gerenciamento de configurao que, identificam, rastreiam e controlam as mudanas nos elementos do software. Atualmente com o maior conhecimento e ateno que vem sendo dado a essa rea, desenvolvem-se diversas tecnologias que servem como suporte gerencial. Esse tipo de gesto no se aplica somente a um determinado ponto do ciclo de vida do projeto e, sim, em todo o decorrer do desenvolvimento do projeto, inclusive quando ele est em manuteno contnua. A GC trabalha paralelamente a qualquer outra atividade que compe o ciclo de desenvolvimento. A Gesto s encerrada a partir do momento em que o produto no sofre mais nenhuma alterao, ou seja, o projeto acompanhado at o descarte final.

Um projeto est sempre em constante mutao, ou seja, as alteraes encontradas e realizadas em meio ao processo de fabricao precisam ser gerenciadas, para se obter um maior controle das mudanas o que levou a mudana, seu efeito como um todo no que j estava pronto, at o momento em que necessrio realizar alguma alterao no escopo planejado. Alm de controlar o que foi alterado, necessrio documentar os artefatos envolvidos para que, no futuro, possam ser facilmente identificados. A partir de um histrico de mudanas gerado por GCS, possvel responder as seguintes questes bsicas: quem, quando, o qu, onde e o porqu das alteraes. Dessa forma, segundo Oliveira (2001, p.7):
As organizaes hoje so constantemente desafiadas para se adaptar s mudanas ambientais, levando em considerao as expectativas dos clientes, estratgias competitivas, avanos tecnolgicos, leis governamentais, condies instveis na economia e na sociedade. [...] a globalizao dos mercados financeiros pressupe um novo paradigma quanto funo, importncia e impacto da informao tanto como fator de competitividade das empresas e organizaes em geral, quanto como fator determinante de sua adaptabilidade a essas mudanas ambientais.

Por meio da Gerncia de Configurao possvel fazer com que a equipe de desenvolvimento tenha maior produtividade e, assim, diminuir erros com o gerenciamento dos artefatos (SOMMERVILE, 2006). Alm de garantir a qualidade por meio de algumas prticas que sero abordadas a seguir, importante frisar alguns benefcios que essa gesto traz como reduo de custos e melhoria da curcia dos prazos e estimativas. Gesto de Configurao uma rea da Engenharia de Software que tem por objetivo controlar todos os processos e itens de configurao envolvidos no processo de desenvolvimento de softwares, a fim de garantir uma maior qualidade do produto a ser entregue ao cliente. Segundo Oliveira (2001), prope-se a minimizar problemas que surgem durante o ciclo de vida do produto por meio de controles sistemticos sobre as modificaes. Permitindo assim, manter a integridade dos sistemas no decorrer do tempo atravs de algumas atividades, tais como: controle das modificaes dos itens, registro da situao dos itens e das requisies das alteraes, armazenamento das alteraes, manipulao das alteraes, liberao e entrega dos itens alterados (ISO/IEC 12207, 1995).

Esse tipo de gesto, Gerncia de Configurao, um processo abrangente, tanto tcnico como gerencial. Aplica-se a todas as atividades da engenharia de sistemas, por meio de normas controlando sistematicamente a criao e alterao de itens de configurao informaes produzidas em grande quantidade durante o desenvolvimento de softwares, tais como: especificaes, planos de projeto, arquivos de cdigo fonte, casos e planos de testes, manuais, arquivos de dados, entre outros (PRESSMAN, 2005). As Informaes geradas durante o ciclo de vida so geralmente controladas por gerentes de projetos e analistas de sistemas em perodos pr-determinados no processo de desenvolvimento de software. Esses perodos que tem incio e trmino definidos so determinados baselines. Trata-se de linhas de referncia para quem tem o papel de monitoramento das criaes e alteraes de itens de configurao compreendidos nesses prazos. Consequentemente o que foi produzido e/ou alterado identificado, analisado, corrigido, passado por uma aprovao e aps isso so armazenadas as configuraes. As principais atividades envolvidas em GC, de acordo com IEEE (2005), so: Identificao da Configurao; Controle de Modificao; Auditoria e Reviso da Configurao; Contabilidade do Status da Configurao; Gerencia de Liberao. Para melhor entendimento dos termos que sero tratados no decorrer do trabalho sero apresentados alguns conceitos bsicos dentro do gerenciamento de mudanas: Configurao: um conjunto de caractersticas funcionais e/ou fsicas localizadas nas descries de documentaes tcnicas (VALERIANO, 1998); Itens de Configurao (IC): qualquer informao criada ou alterada que fica sob controle, como parte do processo, da gerncia de configurao. Um item de configurao pode ser um componente fsico ou lgico, por exemplo, uma especificao de requisitos, um caso de teste, o cdigo-fonte de um programa. (PRESSMAN, 2006; VALERIANO, 1998); Artefato: so documentos, componentes de software (inclusive cdigofonte) e qualquer informao necessria para a execuo de uma atividade ou produzida por esta dentro de um processo de software. Dessa maneira, os artefatos so todos os itens de dados manipulados, criados e utilizados durante o desenvolvimento de software (LIMA REIS, 2003);

Verses: quando realizado alteraes no software ou criao de novas funcionalidades, determina-se o desenvolvimento de novas variaes do produto. E caso sofram pequenas mudanas podem ser chamadas de variantes da verso original. (SOMMERVILLE, 2006); Release: uma verso de um sistema que distribuda para o consumidor. Porm, um release no se restringe apenas ao cdigo-fonte de um sistema, pode ser um arquivo de configurao, arquivos de dados, manual do usurio, instalador do programa dentre outros (SOMMERVILLE, 2006); Repositrio: o conjunto de mecanismos e estruturas de dados que permite a uma equipe de software gerir modificaes de modo efetivo. Fornece funes inerentes a um sistema de gesto de banco de dados, porm, alm disso, executa ou prover outras funes especficas como: integridade de dados, compartilhamento de informaes, integrao de ferramentas, integrao de dados, imposio de metodologia e padronizao de documentos (PRESSMAN, 2006).

2.1. Histria e evoluo de GCS


Segundo ESTUBLIER (2002), Gerncia de Configurao de Software, surgiu nos anos 50 para atender as necessidades de se controlar alteraes em documentaes de projetos de avies de guerra e naves espaciais nas indstrias aeroespaciais. Molinari (2007) destaca como marcos histricos a apresentao da tese change and configuration control pelo professor Leon Pressor da Universidade da Califrnia (Santa Brbara, EUA), que foi o marco inicial para os conceitos bsicos de mudana e do controle de mudana de componentes de um software, e o primeiro Congresso Internacional de GCS em 1988.

Figura 2 Marcos Histricos de GCS (Molinari, 2007).

Observando a figura anterior, que foi a partir dos anos 60 e 70, que a Gerncia de Configurao, comeou a abordar artefatos de software, alm do hardware j estabelecido, surgindo a Gerncia de Configurao de Software. Mas somente em meados dos anos 90 com o surgimento do padro IEEE em 1987 e da norma ISO 10007 em 1995, GCS foi assimilada no processo de desenvolvimento de software em empresas que at ento era restrito s organizaes militares (Murta, 2004).

2.2. Atividades da Gerncia de Configurao de Software


O objetivo deste subcaptulo identificar quais so as atividades/processos de GCS e apresentar o funcionamento e seus benefcios no processo de desenvolvimento de software. Sendo que cada uma dessas atividades tem sua responsabilidade e o momento correto para sua execuo no ciclo de vida do software.

Os objetivos principais da Gesto so: identificao da configurao, controle de modificao, auditoria da configurao, contabilidade do status da configurao e gerncia de liberao, tarefas que fazem parte de um processo padro definido pelo IEEE (2005).

Figura 3 Fases da Gerncia de Configurao (Pressman, 2006).

Falhas que antes aconteciam, sem os processos de GCS, na entrega do produto, por exemplo, um sistema que foi alterado mas parou de funcionar uma das funcionalidades que j existia, que no eram percebidos antes da entrega ao cliente, agora seriam apoiados pela gerncia de mudanas minimizando os riscos desses problemas. Depois de criado os itens de configuraes, preciso identific-los para que possam ser colocados sob controle para que faam parte da configurao e dos baselines. Aps ser identificado s podero ser aprovadas as alteraes no item configurado somente quando estiver passado em todas as camadas e, por fim, liberado para entrega. Ou seja, o item ser identificado, passado por uma aprovao no controle de modificao, avaliado na auditoria de configurao as modificaes

como um todo no item e na ltima camada a gerncia de liberao tem o objetivo de distribuir as verses do software ao cliente. Para Molinari (2007) a imagem a seguir apresenta de forma geral todas as atividades bsicas e os processos de Gesto de Configurao.

Figura 4 Atividades de GC

Na Gerncia de Configurao de Software existe um rgo que auxilia na execuo das atividades que sero apresentadas no decorrer desse captulo, denominado de Controle de Configurao de Software ou Comit de Configurao de Software, o qual deve ser constitudo de representantes de todas as atividades relacionadas com o sistema. O gerente de projeto o presidente de configurao podendo delegar a outra pessoa o papel de gestor da configurao. De acordo com Valeriano (1998, p.271) a CCC tem autoridade para: elaborar o plano de gesto de configurao; estabelecer os procedimento ou rotinas da GC; selecionar itens de configurao; estabelecer as configuraes bsicas; aprovar ou rejeitar as modificaes, desvios e concesses; liberar documentao (especificaes, desenhos, relatrios de GC etc.); e verificar a implementao das alteraes.

2.2.1. Identificao da Configurao Esta a primeira fase da Gerncia de Configurao, sendo que o objetivo desta fase, como o prprio nome indica, identificar os itens de configurao, registrando as caractersticas fsicas e funcionais estabelecendo um identificador nico para esses itens. Um item de configurao pode ser qualquer coisa criada durante o ciclo de vida do desenvolvimento do software, desde a especificao de requisitos, uma parte de um documento at uma verso executvel da aplicao. Segundo Molinari (2007) o menor item que pode ser colocado para controle em um processo de GCS. Todas as informaes produzidas sobre um item sero armazenadas e controladas. Itens sugeridos por Pressman (2005) para serem colocados no controle:

Quadro 1 Itens sugeridos para controle de configurao (Pressman, 2005).

As informaes que sero produzidas sobre os itens de configuraes so originados por causa das modificaes que esto sujeitas no decorrer do

desenvolvimento do software. Sendo que essas mudanas podem fazer com que um item produza outros itens a serem controlados. Molinari (2007) explica que em cada ciclo de alteraes itens de configurao so identificados, produzidos, armazenados e liberados para uso.

Figura 5 Processo de Identificao da Configurao (Molinari, 2007). O item de configurao pode ter vrias verses, e normalmente cada verso ser diferente da outra, para isso preciso nomear os itens de forma que seja fcil reconhecer a evoluo e hierarquia entre os componentes. GCS como visualizado na imagem anterior realiza o registro dos eventos sob os itens, sendo assim, se torna tarefa fcil voltar a uma determinada verso do item ou at mesmo identific-la quando necessrio. Aps a identificao dos itens so planejadas as baselines no ciclo de desenvolvimento, no final de cada fase do desenvolvimento e depois de cada manuteno. esse processo que define como sero criadas as baselines. No qual devem ser especificados os itens que sero revisados e armazenados nos baselines. E por fim descrever a maneira como os itens sero armazenados e recuperados do repositrio. Os itens de configurao precisam ser armazenados para garantir que no desaparecero ou sero danificados, mas quando sofrer alguma alterao o item no poder apenas ser sobrescrito pela verso mais nova, pois seria o equivalente a jogar fora a anterior, e sim manter o histrico das mudanas do item. Por exemplo: Em um determinado sistema necessrio alterar a forma como realizado um cadastro de funcionrios para agora alm de fazer o que fazia tambm memorizar as

digitais, e depois de alguns meses da entrega ao cliente da aplicao alterada o mesmo decidisse voltar para a verso sem a memorizao das digitais. Nesse exemplo, sem o armazenamento do histrico de alteraes do software isso geraria retrabalho, gasto de tempo e consequentemente mais esforos de pessoas correndo risco de ao remover as alteraes desenvolvidas quebrar o que estava funcionando, sendo que com as mudanas armazenadas seria muito mais rpido e econmico voltar para a verso anterior, pois todas as modificaes esto armazenadas. 2.2.2. Controle da Configurao Controle de Configurao pode ser dividido em dois tipos de controle: controle de mudanas e controle de verso. No qual controle de mudana tem como responsabilidade controlar os pedidos de alteraes, identificando a necessidade e seus impactos podendo decidir se ser realizada ou no. Controle de verso so procedimentos juntamente de ferramentas que apoia o controle de mudanas e seus envolvidos alm de fornecer recursos para a camada de Contabilidade do Status da Configurao. 2.2.2.1. Controle de Mudana Esta fase da Gerncia de Configurao tem o objetivo de controlar todas as mudanas realizadas em todos os artefatos criados durante o ciclo de vida do software. Responsvel por monitorar toda a evoluo da fabricao do produto, pois no decorrer do desenvolvimento ocorrem diversas modificaes, segundo Pressman (2006) por quatro fontes fundamentais: alteraes nos requisitos do produto ou regras do negcio por causa de novas condies do negcio ou do mercado; novas necessidades do cliente incorporando ao sistema novas funcionalidades; restries de oramento ou cronograma causam redefinio do software e reorganizao dos negcios causando modificaes nas prioridades e estrutura da equipe de desenvolvimento. Segundo Valeriano (1998), o controle de mudanas envolve as seguintes atividades: documentao e justificativas das modificaes, avaliao das consequncias das modificaes, aprovao ou rejeio dos pedidos de modificaes, implementao e verificao das modificaes.

Basicamente o controle da configurao tem por finalidade controlar todos os pedidos de alterao e todas as mudanas implementadas.

Figura 6 Processo Controle de Configurao (Pacheco, 1997).

De acordo com a figura anterior processo de controle de mudanas, os processos bsicos so: 1) Criao de um registro de evento: Na requisio de mudana criado um registro com a descrio dos detalhes da alterao com dados relevantes sobre a requisio, como por exemplo, um erro na execuo de uma aplicao, como reproduzir o erro, a verso em que encontrou o erro, quem localizou o erro e a gravidade do erro. 2) Anlise de registro de evento: Neste ponto a CCC analisa os impactos como um todo que essa alterao pode causar nas partes relacionadas do software. Identifica o nvel de prioridade em relao s outras alteraes, a importncia e necessidade em executar as alteraes para os usurios que realizaram o pedido, repercusses sobre contrato, custos e prazos,

efeitos na produo, o que em detalhes mudar no software e riscos associados. 3) Rejeio ou aceitao de registro de evento: O evento pode ter uma dentre trs decises que podem ser decidido: aceito, rejeitado e adiado. Se aceito, uma solicitao de mudana criada. Se rejeitado, quem requisitou a modificao notificado da deciso, sendo que para tal considerado aspectos de mercado e competio. Ou se ainda adiada, o pedido de alterao entra em uma fila de espera de acordo com sua prioridade em relao s outras que esto esperando para entrar um baseline para ser implementada. A competncia para a deciso do registro de evento definido pelos membros da Comisso de Controle da Configurao. A CCC verifica se os dados elaborados na atividade anterior e se as alteraes na documentao esto em conformidade e, se for positivo, autorizada a implementao da mudana. 4) Implementao da mudana: definido e criado um novo item de configurao e implementada a alterao. 5) Verificao: Etapa realizada tambm pela equipe da CCC, em que so realizadas verificaes para analisar se os defeitos ou alteraes de melhorias requisitadas esto atendendo ao comportamento esperado apresentado na requisio de mudanas. 6) Fechamento de registro de evento: o fechamento da solicitao da mudana, quando se tem mais de um pedido de mudana correspondentes, o registro de evento s pode ser fechado quando os outros forem fechados. 2.2.2.2. Controle de Verso de Software Sistemas de Controle de Verso de Software atendem a duas camadas da Gerncia de Configurao, Controle de Mudana e Contabilidade do Status da Configurao, pois oferece suporte aps aprovao da solicitao da mudana, no armazenamento das alteraes sem sobrescrever o histrico anterior e na implementao das alteraes dando suporte aos desenvolvedores, j no processo de contabilizao do estado da configurao, no armazenamento de informaes

relevantes as mudanas realizadas, tais como: o que aconteceu? Quem fez? Quando aconteceu? O que mais ser afetado? Dentro do Controle da Configurao existem ferramentas que ajuda no controle de verses do software, no qual controlada a evoluo dos artefatos, algo que no to simples de se controlar durante o ciclo de desenvolvimento e manuteno de software e que tambm no curto, pelo contrrio, to longo que s ter fim a partir do momento que o software for descartado. So controladas as alteraes em um conjunto de cdigos-fontes e documentos envolvidos no processo de desenvolvimento, criando um histrico de modificaes. Como Herclito mesmo disse, 500 anos antes de Cristo, no h nada permanente, exceto a mudana. O processo de versionamento de software muito importante e serve como apoio para as equipes de desenvolvimento. Pois se em um grande esforo de pessoas na produo de um programa as mudanas que surgem desencadeadamente no forem bem controladas, o processo de desenvolvimento ou manuteno pode virar um caos (Pressman, 2006). Por que um caos? Pelo grande volume de artefatos existentes, quantidades de equipes e s vezes em diferentes locais, vrias iteraes, vrios releases e diferentes produtos. Para apoio e melhor rastreamento dessas alteraes recorrentes, so combinados procedimentos humanos e ferramentas automatizadas (Pressman, 2006). Existem algumas ferramentas, tais como: git, subversion e bazaar, que podem resolver vrios problemas que ocorrem no processo de desenvolvimento e manuteno. Alguns problemas que podem ocorrer, e o grande apoio que solues de sistemas de controle de verses pode proporcionar as equipes de desenvolvimento. Dar manuteno na cpia real do cdigo fonte da ltima verso disponibilizada do software, sem ser necessrio mexer direto no de produo correndo o risco de alterar o software e quebrar as funcionalidades e recursos que estavam funcionando corretamente antes da alterao. Ou realizar uma cpia do servidor de produo, mas ao envi-la novamente ao servidor corre o risco de estar sobrescrevendo outra verso mais nova que havia sido enviada antes sem saber. O sistema de controle de verses proporciona o recurso de trabalhar em uma cpia atualizada do repositrio localmente, se houver uma atualizao no repositrio a cpia local ser atualizada tambm, ao enviar uma nova funcionalidade no ser perdido o cdigo ao enviar uma atualizao nova, pois estar armazenado, se

houver um problema com a alterao ser fcil identificar a verso anterior e voltar para o antigo estado. Se houver vrias alteraes simultneas, atravs de uma ferramenta de versionamento de cdigo possvel realizar a juno das alteraes. Quando houver conflito de alteraes em um mesmo arquivo possvel identificar os conflitos e selecionar o que se deseja manter de um ou mais conflitos e mandar ao repositrio a correo do conflito, ou seja, fcil manipulao e identificao de conflito de alteraes em um mesmo arquivo. O mais importante desse processo que qualquer alterao que for feita ser registrado atravs de um sistema de controle de verses, onde nada perdido, caso seja necessrio recuperar que aparentemente foi perdido, poder ser recuperado pois foi salvo em algum momento do ciclo de vida do software a alterao. No processo de versionamento do software preciso responder as seguintes questes: quem realizou as alteraes, quais alteraes foram realizadas, quando elas foram feitas e o porqu das modificaes. Para maior rastreabilidade das mudanas, para que posteriormente possa ser facilmente identificado o motivo das alteraes, quando foi necessrio realiz-las e o que foi alterado. Entre a importncia do controle de verses esto: 1) Armazenamento do cdigo-fonte: so armazenadas todas as verses do software, congelando-o e representando fielmente o ponto em que foi criada a verso, permitindo tambm o controle de todas as modificaes realizadas; 2) Compartilhamento do cdigo-fonte: o cdigo-fonte pode ser compartilhado entre os desenvolvedores participantes do desenvolvimento, proporcionando o desenvolvimento paralelo com quantidade ilimitada de membros que podem estar em locais diferentes e at mesmo geograficamente distantes;

Figura 6 Compartilhamento entre os envolvidos (Molinari, 2007).

3) Auxiliar na manuteno: Facilidade em localizar o cdigo-fonte, identificar a verso atual, quais as ltimas correes, o que foi alterado e quando foi alterado; Verso de Software o nome atribudo a um contedo em uma cadeia de alteraes. um marco indicado na evoluo de uma aplicao e indicam um ciclo de mudanas em um software, no final de cada baseline gerado uma verso do estado atual do programa. Existem alguns padres para indicar uma verso de determinado software, tipos: - Datas: 20110601; - Cdigos: XP, Karmic Koala; - Compostas: 2.4.10. Dos tipos apresentados o mais usado, que se pode dizer forma padro, o composto que constitudo por trs nmeros separados por ponto, mais conhecidos como <major.minor.micro>. Onde o major indica compatibilidade de verses, exemplo a verso 2.0.0 incompatvel com as verses anteriores por ter diferenas na forma de funcionamento adquirindo incompatibilidades, j o minor indica acrescento de funcionalidades gerando novas verses, mas que no incompatibilizam em relao verso anterior, por exemplo, se houvesse adio de mais duas funcionalidades a verso seria 2.2.0. E por fim o ltimo indica correes de bugs encontrados no software que tambm no incompatibiliza a verso, exemplo se fosse encontrado 15 bugs e corrigidos a verso atual seria 2.2.15.

2.2.3. Contabilidade do Status da Configurao Esta camada da Gerncia de Configurao encarregada de gerar relatrios dos registros de alteraes incluindo as baselines. Relatrios que podem ser utilizados para busca de informaes para aplicao de medies para melhoria de processos, estimativa de custos futuros e suporte para gerao de relatrios gerenciais. O objetivo deste processo dar visibilidade a todos envolvidos no processo de desenvolvimento e manuteno de software, algumas informaes essenciais sobre o histrico de alteraes, tais como: Porqu da alterao? Quem alterou? O que foi alterado? Quando foi alterado? E manter atualizada a documentao de cada item e todas as vias de modificaes ou revises de: especificaes; desenhos; listas e suas modificaes e manuais. Todos os envolvidos tendo acesso a essas informaes agiliza o processo de fabricao e melhora a comunicao entre os membros, eliminando assim problemas intrnsecos a manuteno do mesmo artefato com diferentes abordagens, causando um caos e perda de controle das modificaes do projeto.

Figura 8 Informaes sobre o item de configurao (Molinari, 2007).

2.2.4. Auditoria da Configurao Auditoria da Configurao a camada responsvel por assegurar que as alteraes foram implantadas corretamente, se as documentaes esto completas e precisas, e se satisfazem os requisitos estabelecidos (Valeriano, 1998), garantindo ao cliente que o software est sem erros e que o produto tem evoludo de uma maneira rastrevel e que satisfaz suas necessidades operacionais e de desempenho. Na auditagem o projeto passa por dois processos fundamentais: verificao e validao (Capretz, Miriam Akemi Manabe, 1988). A auditoria deve ser executada antes da definio de uma baseline, para cerificao do produto em relao s especificaes e contratos, ou seja, requisitos, e auditoria tambm das alteraes realizadas, para monitoramento do status durante o ciclo de vida e verificao dos requisitos estabelecidos, revelando se os requisitos esto sendo atingidos. Com isso o gerente de projeto pode avaliar melhor a integridade do que esta sendo produzido, podendo resolver problemas que pode vir ocorrer corrigindo os defeitos no processo para garantir a integridade do software. A auditoria da Configurao pode ser dividida em dois tipos: Auditoria Funcional e Auditoria Fsica. Auditoria Funcional uma atividade de controle de qualidade que tem por objetivo identificar se as mudanas especificadas foram realizadas, se foi adicionado mais alguma modificao, se foi aplicado as normas de engenharia de software no processo de desenvolvimento e modificao e se foi aplicado os procedimentos de GC corretamente. Auditoria Fsica ocorre ao final de cada fase do ciclo de vida controlando se a configurao estabelecida em uma baseline especfica composta pelos itens corretos, nas verses corretas e que a documentao est atualizada e consistente com a verso que foi construda (PRESSMAN, 2006). 2.2.5. Gerncia de Liberao a ltima atividade de GCS, responsvel por controlar a liberao e entrega dos produtos e da documentao do software. O processo criar, empacotar e entregar os baselines. Ou seja, o responsvel por executar essa atividade, identifica

os itens de configurao sobre controle da Gerncia de Configurao e suas respectivas verses criando uma baseline o qual documentada diferenciando das baselines anteriores. O baseline empacotado e entregue ao cliente, ou seja, o produto pronto com sua verso mais nova para ser colocado em uso.

REFERNCIAS

BARRETO JUNIOR, Jos. Qualidade de Software. Disponvel em: <http://www2.unemat.br/rhycardo/download/qualidade_em_software.pdf> Acesso em 25/11/2011 BOAS, Andr Villas; GONALVES, Jos Marcos. CMMI para Desenvolvimento, verso 1.2 CMMI-DEV, 1.2: Verso Traduzida. Disponvel em: <http://pt.scribd.com/ms9840/d/65995312/7-GARANTIA-DA-QUALIDADE-DEPROCESSO-E-PRODUTO#page=9>. Acesso em 25/11/2011 BORGES, L. S., FALBO, R. A. Gerncia de Conhecimento sobre Processos de Software In: VIII Workshop de Qualidade de Software - XV SBES. Rio de Janeiro: Anais do VIII Workshop de Qualidade de Software, 2001. CAROSIA, Jaciara Silva. Levantamento da Qualidade do processo de software com foco em pequenas organizaes. So Jos dos Campos: INPE, 2003. DIAS, ANDR FELIPE. Conceitos Bsicos de Controle de Verso de Software Centralizado e Distribudo. Disponvel em: <http://www.pronus.eng.br/ artigos_tutoriais/gerencia_configuracao/conceitos_basicos_controle_versao_centrali zado_e_distribuido.php> Acesso em 14/08/2011 GOMES, Nelma da Silva. Qualidade de Software - Uma necessidade. Disponvel em: <http://www.fazenda.gov.br/ucp/pnafe/cst/arquivos/Qualidade_de_Soft.pdf> Acesso em 25/11/2011. MCT/SEPIN, Ministrio da Cincia e Tecnologia / Secretaria de Poltica de Informtica. Programa Brasileiro de Qualidade em Software 2001. 4 ed. Braslia: Editora Brazilian Software, 2002. MOLINARI, Leonardo. Gerncia de Configurao - Tcnicas e Prticas no Desenvolvimento do Software. Florianpolis: Visual Books, 2007. 85-7502-210-5 PAULA FILHO, Wilson de Pdua. Engenharia de software: fundamentos, mtodos e padres. 2 ed. Rio de Janeiro: Editora LTD, 2003. PRESSMAN, Roger S.. Engenharia de Software. Books, 1995. 85-346-0237-9 So Paulo: Pearson Makron

___________________. Engenharia de Software. 6 ed. So Paulo (SP): MacGraw-Hill, 2006. 720p.

Rocha, A. R. C.; Maldonado, J. C.; Weber, K. C. Qualidade de Software: Teoria e Prtica. So Paulo: Prentice Hall, 2001. SEI - Software Engineering Institute. CMMI fir Development version 1.3. Pittsburg, PA: Carnegie Mello University, CMU/SEI, 2010. SOFTEX Associao para Promoo da Excelncia do Software Brasileiro. MPS.BR Melhoria de Processo do Software Brasileiro. Campinas: Sociedade SOFTEX, 2011. SOMMERVILLE, Ian. Engenharia de Software. 8 ed. So Paulo (SP): Pearson Prentice Hall, 2008. 552p. SRIA, Felipe Grando. Implantao do CMMI: Metodologia baseada na abordagem por processos. Curitiba: Pontifcia Universidade Catlica do Paran, 2006. SOTILLE, Mauro. PMBok & CMM + CMMi Resumo. <http://www.pmtech.com.br/artigos/PMBOK&CMM+CMMI.pdf> 25/11/2011 Disponvel Acesso em: em

VALERIANO, Dalton L. Gerncia em Projetos: Pesquisa, Desenvolvimento e Engenharia. So Paulo: Makron Books, 1998. VOLPE, Renato Luiz Della; JOMORI, Sergio Massao; ZABEU, Ana Ceclia Peixoto. SPIN BH: CMM - CMMI. Principais conceitos, diferenas e correlaes. Disponvel em: <http://www.asrconsultoria.com.br/docs/SPIN_BH_CMMI.pdf>. Belo Horizonte, 2003. Acesso em 25/11/2011 WEBER, Kival Chaves. et al. Modelo de Referncia para Melhoria de Processo de Software: uma abordagem brasileira. In XXX Conferncia Latino-Americana de Informtica (CLEI 2004). Arequipa, Peru. Anais... Disponvel em: <http://www.softex.br/media/artigoCLEI_versao_final.pdf> Acesso em 21/11/2011

Vous aimerez peut-être aussi