FERRAMENTA DE INTEGRAÇÃO DO MANTIS COM SUBVERSION COM FOCO NA GCO

Documentos relacionados
Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

ISO/IEC 12207: Gerência de Configuração

Universidade Paulista

GARANTIA DA QUALIDADE DE SOFTWARE

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

UM CASE DE IMPLANTAÇÃO DA GERÊNCIA DE CONFIGURAÇÃO E MUDANÇA (NÍVEL F) DO MPS.BR UTILIZANDO PADRÕES ABERTO PARA O DESENVOLVIMENTO CORPORATIVO

Gerenciamento de software como ativo de automação industrial

GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Manual SAGe Versão 1.2 (a partir da versão )

APOSTILAS: NORMAS; ABNT NBR ISO; MPS BR

Engenharia de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

MODELO CMM MATURIDADE DE SOFTWARE

CHECK - LIST - ISO 9001:2000

Governança de TI. ITIL v.2&3. parte 1

Qualidade, Processos e Gestão de Software Professores: Alexandre Vasconcelos e Hermano Moura. O Modelo. Wesley Torres Galindo. wesleygalindo@gmail.

ENGENHARIA DE SOFTWARE I

Sistema de Controle de Solicitação de Desenvolvimento

FACULDADE SENAC GOIÂNIA

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Plano de Gerência de Configuração

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

Engenharia de Software III

APLICATIVO PARA ATUALIZAÇÃO EMPRESARIAL

Manual Geral do OASIS

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

Gestão de Modificações. Fabrício de Sousa

Requisitos de Software

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

PO GESTÃO DE PROCESSOS E DOCUMENTAÇÃO 008

Avaliação e Melhorias no Processo de Construção de Software

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Metodologia de Gerenciamento de Projetos da Justiça Federal

CATÁLOGO DE APLICAÇÕES Atualização de Preços de Tabela de Venda

UNIP Ciência da Computação / Sistemas de Informação TED I - Orientações Gerais para Elaboração dos Documentos

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

Introdução ao MPS.BR Guia Geral. Prof. Elias Batista Ferreira

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

CATÁLOGO DE CUSTOMIZAÇÕES Cópia de Pedidos de Venda entre Empresas

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

PR 2 PROCEDIMENTO. Auditoria Interna. Revisão - 2 Página: 1 de 9

PPS - Processo de Proposta de Solução Versão 1.3.1

Projeto Você pede, eu registro.

INSTRUÇÃO DE TRABALHO PARA INFORMAÇÕES GERENCIAIS

Plano de Gerenciamento do Projeto

CATÁLOGO DE APLICAÇÕES PEFIN SERASA

Qualidade de Software MPS.BR - Questões CESPE (2010 a 2013)

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

PRODUTOS RIOSOFT COM SUBSÍDIO SEBRAEtec

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

PODER JUDICIÁRIO TRIBUNAL DE JUSTIÇA DO ESTADO DO AMAZONAS DIVISÃO DE GESTÃO DA QUALIDADE

Gerência de Configuração em Ambientes de Desenvolvimento de Software Orientados a Organização

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor

Projeto de Sistemas I

CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO X PROJETO BÁSICO: DESCRIÇÃO DOS PROCESSOS DE TI

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Qualidade de Processo de Software Normas ISO e 15504

Gestão dos Níveis de Serviço

Regulamento do Grupo de Coordenação da Transição da Administração da IANA. V.10 (27 de agosto de 2014)

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Gerenciamento de Configuração de Software

QUALIDADE DE SOFTWARE AULA N.7

HISTÓRICO DAS REVISÕES N.ºREVISÃO DATA IDENTIFICAÇÃO DO DOCUMENTO 00 16/04/2007 Emissão inicial

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução a Computação

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Gerenciamento de Configuração de Software

Atividades da Engenharia de Software GERENCIAMENTO DA CONFIGURAÇÃO DE SOFTWARE. Atividades da Engenharia de Software. Processo de Desenvolvimento de

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

EVOLUÇÃO DE SOFTWARE

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Conceitos de Banco de Dados

22/02/2009. Supply Chain Management. É a integração dos processos do negócio desde o usuário final até os fornecedores originais que

Melhorias de Processos de Engenharia de Software

Transcrição:

FERRAMENTA DE INTEGRAÇÃO DO MANTIS COM SUBVERSION COM FOCO NA GCO Autor Ademir dos Santos Pereira Junior Junilson Pereira Souza Orientador e-mail do(a) autor(a); ademirjr27@gmail.com; Curso de Ciência da Computação UNI-BH (www.unibh.br) Resumo O Gerenciamento de Configuração de Software (GCS) é um processo que provê recursos para identificação, controle da evolução e auditagem dos artefatos de software criados durante o desenvolvimento do projeto de software. Este trabalho apresenta uma ferramenta para integração de ferramentas ligadas à gerência de configuração de software e auditoria de software. A ferramenta proposta é baseada no estudo de outras ferramentas similares pesquisadas e nas diretrizes previstas no modelo MPS.BR no processo de gerência de configuração. As principais atividades suportadas pela ferramenta são controles de modificações, versões e auditoria. Apresenta-se, neste trabalho, uma abordagem para o processo de GCS, definindo atividades que buscam atender a área de processo de Gerenciamento de Configuração do modelo MPS.BR. Palavras-chave Gerência de configuração, artefatos, MPS.BR, auditoria. Abstract The Software Configuration Management (SCM) is a process that provides resources to identify, control and auditing of the evolution of software artifacts created during the development of design software. This paper presents a tool for integration of tools related to software configuration management and audit software. The proposed tool is based on the study of other similar tools researched and guidelines specified in the model MPS.BR in the management of configuration. The main activities are supported by the tool control of changes, versioning and auditing. It is presented in this work, an approach to the process of GCS, defining activities that seek to answer the area of process management model setup MPS.BR. Keywords configuration management, artifacts, auditing, MPS.BR. 1 INTRODUÇÃO A documentação produzida em um projeto de software é de suma importância para se gerenciar a qualidade, tanto do produto sendo produzido, quanto do processo usado para seu desenvolvimento. No desenvolvimento de software, são produzidos diversos documentos, dentre eles, documentos descrevendo processos (plano de projeto, plano de qualidade etc.), registrando requisitos e modelos do sistema (documentos de especificação de requisitos, análise e projeto) e apoiando o uso do sistema gerado (manual do usuário, ajuda on-line, tutoriais, etc), além dos códigos fontes gerados durante o processo. Uma documentação de qualidade propicia uma maior organização durante o desenvolvimento de um sistema, facilitando modificações e futuras manutenções no mesmo. Além disso, ajuda a reduzir o impacto da perda de membros da equipe, ajuda também a reduzir o tempo de desenvolvimento de fases posteriores, reduz o tempo de manutenção e contribui para redução de erros, aumentando assim, a qualidade do processo e do produto gerado. Surge, portanto a necessidade de se definir um processo para controlar a documentação de uma organização, incluindo atividades de planejamento, análise, aprovação ou reprovação, identificação de alterações, situação da revisão atual, disponibilidade das versões pertinentes de documentos aplicáveis, dentre outras. Algumas dessas atividades estão relacionadas com o controle e a garantia da

qualidade de software, outras com a gerência da configuração do software, conforme discutido a seguir. Durante o processo de desenvolvimento de software, vários artefatos são produzidos e alterados constantemente, evoluindo até que seus propósitos fundamentais sejam atendidos. Ferramentas de software, tais como compiladores e editores de texto, e processos também podem ser substituídos por versões mais recentes ou mesmo por outras, no caso de ferramentas. Porém, caso essas mudanças não sejam devidamente documentadas e comunicadas, poderão acarretar diversos problemas. Todos esses problemas poderão interferir no processo e qualidade do desenvolvimento do software como um todo. Assim, para que esses problemas sejam evitados, é muito importante o acompanhamento e o controle dos artefatos, processos e ferramentas, através de um processo de gerência de configuração de software, durante todo o ciclo de vida do software. 1.2 HISTÓRICO DO PROBLEMA Empresas que não possuem processos definidos estão sempre correndo riscos envolvendo informações. Dentre os riscos, podemos destacar a concentração de informações, o acesso indiscriminado, obscuridade de informações, concentração de funções e retenção da informação. Tais problemas podem trazer prejuízos financeiros, perda de tempo, stress para adequar o software à realidade do cliente, entre outros problemas para a organização. Durante o processo de desenvolvimento de software, vários artefatos são produzidos e alterados constantemente, evoluindo até que seus propósitos fundamentais sejam atendidos. Ferramentas de software, tais como compiladores e editores de texto, e processos também podem ser substituídos por versões mais recentes ou mesmo por outras, no caso de ferramentas. Porém, caso essas mudanças não sejam devidamente documentadas e comunicadas, poderão acarretar diversos problemas, tais como: dois ou mais desenvolvedores podem estar alterando um mesmo artefato ao mesmo tempo; não se saber qual a versão mais atual de um artefato; não se refletir alterações nos artefatos impactados por um artefato em alteração. Esses problemas podem gerar vários transtornos como incompatibilidade entre os grupos de desenvolvimento, inconsistências, retrabalho, atraso na entrega e insatisfação do cliente. 1.3 OBJETIVOS Este trabalho visa demonstrar e sugerir mecanismos para que possam ser controladas e auditadas através de relatórios sobre o estado de configuração, todos os documentos que forem alterados ao longo do projeto fornecendo relações entre eles. Através de um controle mais detalhado sobre todos os itens de configuração serão gerados relatórios que irão auxiliar a auditoria de configuração presente no nível F do MPS.BR segundo o seu Guia Geral (versão 1.1). Objetivos específicos: Realizar estudo teórico sobre os processos de Gerência de Configuração de Software segundo os padrões mais utilizados atualmente; Realizar estudo teórico sobre o modelo de maturidade contínua MPS.BR; Identificar os processos dos quais a Gerência de Configuração dependente para ser implementado com eficiência; Identificar os problemas que ocorrem nas empresas referentes aos processos de Gerência de Configuração; Propor um modelo de implantação considerando os diversos níveis de maturidade em que uma empresa pode atingir; Avaliação do modelo proposto, utilizando-se de métodos de avaliação disponíveis.

1.4 METODOLOGIA Em um projeto de software, fluxo de informações é muito grande, sendo que, estas diversas informações irão influenciar no resultado do projeto. Grande quantidade de itens de informação são produzidos e sofrem alterações durante um projeto de software. Com isto, é necessário evitar a criação de inconsistências entre estes itens de informação e evitar a perda do controle do projeto em conseqüência das mudanças. Trabalhar com informações ou dados incorretos, incompletos e/ou desatualizados pode ser muito prejudicial para uma empresa e todos os seus colaboradores. A motivação deste trabalho é o desenvolvimento de uma ferramenta que possa auxiliar o controle desses itens de configuração, de uma maneira mais abrangente. Esta ferramenta deverá integrar uma ferramenta de controle de versão e uma de controle de mudança de forma a possibilitar e facilitar o alcance de melhores resultados na gerencia de configuração de software. Essa ferramenta irá auxiliar não somente a auditoria de software como também a todos os envolvidos (gerente de projetos e stakeholders em geral) que tenham necessidade de definir um mínimo de controle desses artefatos. 2 REFERENCIAL TEÓRICO 2.1 GERÊNCIA DE CONFIGURAÇÃO Segundo Dias (2007), a gerência de configuração é um conjunto de atividades de apoio ao desenvolvimento que permite que as mudanças inerentes ao mesmo sejam absorvidas pelo projeto de maneira controlada, mantendo a estabilidade na evolução do software. Conforme Paula Filho (2001, p. 513), mesmo um projeto pequeno gera diversos artefatos. De acordo com isso, é necessário ter um controle sistematizado sobre os artefatos de um sistema, para que as alterações sejam realizadas através de autorizações, permitindo gerar um histórico de todo o processo e impedindo que programadores desavisados eliminem funcionalidades criadas por outros nas atualizações corriqueiras do dia-adia. A gerência de configuração tem como objetivo identificar, controlar e garantir que a mudança seja implementada corretamente, e relatar a todos os envolvidos. Qualquer projeto de desenvolvimento de software seja ele de porte pequeno, médio ou grande, gera uma grande quantidade de informações e artefatos, sendo estes acessados e modificados diversas vezes ao longo de todo o ciclo de vida deste projeto. Dentre estes artefatos, pode-se exemplificar códigos fontes, documentos de análise, manuais etc. Mudanças podem ocorrer a qualquer momento, seja por definição de cliente, seja por mudança de tecnologia, mudança na legislação etc. Gerenciar, organizar e controlar a proliferação destes artefatos e informações que são criados e gerenciados constantemente é o objetivo da Gerência de Configuração de Software (SCM Software Configuration Management). (PAULA FILHO, 2003, p.8). De acordo com Pressman (2002, p.916), as atividades de SCM são desenvolvidas para: Identificar a mudança; Controlar a mudança; Garantir que a mudança esteja sendo adequadamente implementada; Relatar a mudança a outras pessoas que possam ter interesse nela. Após esta introdução podemos entender que o Gerenciamento de Configurações de Software tem como objetivo trazer subsídios operacionais que respondam a algumas dificuldades na vida de qualquer empresa de desenvolvimento de software, das quais destacamos: Qual a versão do software encontra-se instalada no cliente? Esse erro já não tinha sido corrigido antes? Já alterei um programa, será que terei que alterar outros?

2.2 ITEM DE CONFIGURAÇÃO Item de configuração é todo tipo de artefato que está ligado ao software em si, como código fonte, documentos de análise, compiladores, executáveis, etc. A quantidade de itens aumenta conforme o projeto avança. Em cada etapa do projeto são criados novos artefatos, e segue dessa maneira em todo o ciclo de vida do software. De acordo com Parreiras e Bax (2003, p. 11), o volume crescente de itens de configuração e suas relações demandam um ambiente com as seguintes características: a) repositório: lugar onde todos os itens de configuração serão armazenados para futura recuperação; b) banco de dados: local de armazenamento dos metadados dos documentos, assim como outras informações do processo como o histórico de mudanças dos itens e informações de auditoria; c) relacionamento entre os itens: é necessário um mecanismo que permita ao usuário explicar as relações entre os itens, no intuito de facilitar a recuperação e agrupar os itens semanticamente; d) fluxo de trabalho: vários itens de configuração de software tramitam entre diversos envolvidos com a sua criação ou manutenção. Faz-se necessário à utilização de mecanismos de fluxo de trabalho com o objetivo de enviar os itens certos para as pessoas certas no momento certo; e) controle de versões e releases: grande parte dos itens de configuração de software sofre alterações, de modo a gerar novas versões destes itens. Contudo, se faz necessária a manutenção de outras versões na base de conhecimento. Release é uma versão de um sistema distribuída a um cliente. desenvolvimento de diferentes versões e releases de um sistema. Uma versão de sistema é uma instância de um projeto que difere, de muitas maneiras, de outras instâncias. Novas versões podem ter diferentes funcionalidades e desempenhos ou podem resolver defeitos no sistema. Um release de sistema é uma versão que é distribuída para os clientes. Cada release deve incluir nova funcionalidade ou se destinar a uma diferente plataforma de hardware. De acordo com isso, a atividade de controle de versão tem como finalidade o armazenamento e gerenciamento das versões dos itens de configuração durante o ciclo de vida do software. De acordo com Caetano (2004, p. 14), as principais funções pertinentes ao controle de versões podem ser resumidas da seguinte forma: a) recuperar versões anteriores; b) auditar as modificações realizadas: quem, quando, o quê; c) automatizar o rastreamento de arquivos; d) estabelecer meios para obter a situação de um projeto em determinado ponto do tempo; e) prevenir conflitos entre desenvolvedores; f) permitir o desenvolvimento paralelo. O lugar onde os itens de configuração são armazenados é chamado de repositório. A figura 1 exibe um exemplo de repositório. 2.3 CONTROLE DE VERSÃO Segundo Sommerville (2003, p. 556), o gerenciamento de versões e releases consiste no processo de identificar e acompanhar o Fonte: Dias 2007

Figura 2.1 Repositório O repositório tem como objetivo manter a integridade dos itens. Conforme vão surgindo alterações nos artefatos, o repositório vai guardando as múltiplas versões dos arquivos, ou seja, nenhuma versão será perdida ou sobreposta. Existem algumas funcionalidades essenciais como é o caso de ramificação de versões de um projeto. 2.4 CONTROLE DE MUDANÇAS O foco dessa atividade é de permitir que as mudanças dos itens de configuração sejam propostas, avaliadas, aceitas e aplicadas. Segundo Sommerville (2003, p. 554), os procedimentos de gerenciamento de mudanças devem ser concebidos para assegurar que os custos e os benefícios das mudanças sejam adequadamente analisados e as mudanças em um sistema sejam feitas de maneira controlada. Uma nova modificação deve ser iniciada com uma proposta de modificação. As propostas deverão contar apenas com as alterações ou correções desejadas, sem detalhes técnicos. A partir disso, uma equipe de responsáveis técnicos, avalia a viabilidade de realizarem essas propostas. As propostas aprovadas serão transformadas em solicitações de mudanças, que são o mesmo que uma ordem de serviço para realização da tarefa. Uma solicitação pode corresponder a uma ou a várias propostas. A partir de uma solicitação, responsáveis técnicos preparam uma descrição de projeto de modificação, que descreve como a solicitação será implementada, identificando os arquivos que serão alterados. Após isso, a descrição de projeto é encaminhada para uma aprovação, se a mesma for aprovada, será encaminhada para uma equipe que será responsável para buscar os objetos do repositório e realizar as modificações e testes necessários. Terminada essa etapa, a atividade é encaminhada para a auditoria para ser aprovada. Se for aprovado, os objetos serão submetidos. 2.5 CONTROLE DE AUDITORIA Esta atividade visa assegurar que as alterações tenham sido implementadas corretamente. Essas auditorias são conduzidas de acordo com processos bem definidos que se constituem de vários papéis e responsabilidades de auditores. Logo, cada auditoria deve ser planejada cuidadosamente. Uma auditoria pode necessitar de certo números de indivíduos para realizar uma variedade de tarefas durante um período razoavelmente curto (FIGUEIREDO, SANTOS, ROCHA, 2005, p. 5). Dois tipos de avaliação podem ser feitos: funcional e física. A avaliação funcional investiga os aspectos lógicos dos arquivos. Por outro lado, a avaliação física consiste em verificar se a configuração a ser congelada está composta da versão mais recente dos itens de configuração para a fase específica do ciclo de vida e se os procedimentos e padrões foram realizados corretamente. A avaliação física é executada no fim de cada fase do ciclo de vida do software (FIGUEIREDO, SANTOS, ROCHA, 2005, p. 5). 2.6 MPS.BR MELHORIA DE PROCESSO DO SOFTWARE BRASILEIRO O MPS.BR é um programa para Melhoria de Processo do Software Brasileiro, está em desenvolvimento desde dezembro de 2003 e é coordenado pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX), contando com apoio do Ministério da Ciência e Tecnologia (MCT), da Financiadora de Estudos e Projetos (FINEP) e do Banco Interamericano de Desenvolvimento (BID) (MPSBR - Guia Geral, 2006, p.4). Existem vários modelos e normas da qualidade que abordam o processo de gerência de configuração entre os quais inclui-se o MPS.BR. Uma das metas do MPS.BR visa definir e aprimorar um modelo de melhoria e avaliação de processo de software, visando preferencialmente as micro, pequenas e médias empresas, de forma a atender as suas necessidades de negócio e ser reconhecido

nacional e internacionalmente como um modelo aplicável à indústria de software. O MPS.BR também estabelece um processo e um método de avaliação, o qual dá sustentação e garante que o MPS.BR está sendo empregado de forma coerente com as suas definições (MPSBR - Guia Geral, 2006, p.11). A base técnica para a construção e aprimoramento deste modelo de melhoria e avaliação de processo de software é composta pelas normas NBR ISO/IEC 12207 Processo de Ciclo de Vida de Software, pelas emendas 1 e 2 da norma internacional ISO/IEC 12207 e pela ISO/IEC 15504 Avaliação de Processo (também conhecida por SPICE: Software Process Improvement and Capability Determination), portanto, o modelo está em conformidade com essas normas. Este modelo também cobre o conteúdo do CMMI-SE/SWSM, através da inclusão de processos e resultados esperados além dos estabelecidos na Norma ISO/IEC 12207. O modelo de referência MR-MPS contém as definições dos níveis de maturidade, processos e atributos do processo. Os níveis de maturidade estabelecem patamares de evolução de processos, caracterizando estágios de melhoria da implementação de processos na organização. O nível de maturidade em que se encontra uma organização permite prever o seu desempenho futuro ao executar um ou mais processos. O MR-MPS define sete níveis de maturidade: A (Em Otimização), B (Gerenciado Quantitativamente), C (Definido), D (Largamente Definido), E (Parcialmente Definido), F (Gerenciado) e G (Parcialmente Gerenciado). A escala de maturidade se inicia no nível G e progride até o nível A. Para cada um destes sete níveis de maturidade é atribuído um perfil de processos que indicam onde a organização deve colocar o esforço de melhoria. O progresso e o alcance de um determinado nível de maturidade MPS se obtém quando são atendidos os propósitos e todos os resultados esperados dos respectivos processos e dos atributos de processo estabelecidos para aquele nível (MPSBR - Guia Geral, 2006, p.15). A divisão em estágios, embora baseada nos níveis de maturidade do CMMISE/SWSM tem uma graduação diferente, com o objetivo de possibilitar uma implementação e avaliação mais adequada às micros, pequenas e médias empresas. A possibilidade de se realizar avaliações considerando mais níveis também permite uma visibilidade dos resultados de melhoria de processos em prazos mais curtos. A gerência de configuração de software no MPS.BR se encontra no nível F (gerenciado). Os resultados esperados são: GCO 1. Os itens de configuração são identificados; GCO 2. Os itens de configuração gerados pelo projeto são definidos e colocados sob uma linha base; GCO 3. É estabelecido e mantido um Sistema de Gerência de Configuração; GCO 4. As modificações e liberações dos itens de configuração são controladas; GCO 5. As modificações e liberações são disponibilizadas para todos os envolvidos; GCO 6. A situação dos itens de configuração e as solicitações de mudanças são registradas, relatadas e o seu impacto é analisado; GCO 7. A completeza e a consistência dos itens de configuração são asseguradas; GCO 8. O armazenamento, o manuseio e a entrega dos produtos de trabalho são controlados; GCO 9. A integridade das linhas bases (baselines) é estabelecida e mantida, através de auditoria da configuração e de registros da Gerência de Configuração. 3 FERRAMENTAS DE APOIO A GERÊNCIA DE CONFIGURAÇÃO Para realizar o controle de mudanças é preciso controlar os itens gerados pelo processo de desenvolvimento, são assim considerados documentos de especificação e desenho, materiais de testes, ferramentas de software, códigos-fonte e executáveis, bibliotecas de código, dicionário de dados, documentação para instalação, manutenção, operação e uso do software.

O sucesso de um projeto de desenvolvimento de software é altamente dependente de uma gerência de configuração eficaz. A GCO é necessária para permitir que uma grande equipe trabalhe em um ambiente estável e controlado, tendo, contudo, a flexibilidade necessária para o trabalho criativo. Entretanto, não fazer controle de configuração garante que um projeto estará flagelado pelo caos, pelos erros, por dano permanente, pela baixa produtividade, e pela evolução incontrolável do produto [CMBOK, 2003]. Neste contexto, a escolha de uma ferramenta de apoio à gerência de configuração adequada e eficaz é de suma importância, senão fator determinante para o sucesso ou não de todo projeto de desenvolvimento de software. Para o desenvolvimento do trabalho, serão pesquisadas duas ferramentas de apoio à gerência de configuração: Subversion e o Mantis. 3.1 SUBVERSION O Subversion é uma ferramenta de controle de versão. Esta ferramenta não só controla a versão do conteúdo dos arquivos, mas também de diretórios, cópias, renomeações e meta-dados. A arquitetura proposta pelo Subversion é semelhante a um cliente-servidor, no servidor temos os repositório dos arquivos que são armazenados em um banco de dados e diversos clientes que são utilizados para acessar os documentos. Os documentos são recuperados do repositório e armazenados localmente, após os documentos serem alterados pode-se submetêlos ao servidor, essa atividade altera o número da revisão do repositório. O número de revisão é seqüencial iniciando em 1 e incrementada a cada alteração dos documentos. Cada documento tem armazenado no repositório sua última situação e a situação em cada uma das revisões, desta forma podemos reverter qualquer alteração, podemos comparar o documento em com uma revisão específica. Através do Subversion podemos administrar melhor as alterações nos documentos com diversos recursos que essa ferramenta oferece. Todo o conteúdo do repositório fica registrado, assim podemos saber em que revisão o documento foi alterado, quem alterou. Fica armazenada no repositório a situação do documento em cada uma das revisões. Cada revisão possui a data, hora e usuário que a efetuou. O acesso ao repositório pode ser anônimo ou através de um usuário autorizado, é definido para cada repositório um conjunto de usuários e senhas que tem acesso. Podemos liberar impedir ou definir como somente de leitura tanto o acesso anônimo quanto o acesso através de usuário e senha. O Subversion também pode ser disponibilizado pela internet e até mesmo utilizar um protocolo seguro para acesso aos documentos (HTTPS), para isso basta que o mesmo esteja acoplado a um servidor Apache. 3.2 MANTIS Fonte: SUSSMAN, FITZPATRICK, PILATO Figura 3.1 Arquitetura Subversion O controle de mudança é uma das atividades necessárias da Gerência de Configuração. Seu papel principal é registrar, avaliar e rastrear todas as mudanças aplicadas ao projeto, desde o momento em que são propostas, até o momento em que são implementadas ou não, nos itens de configuração. Para auxiliar o controle de mudanças, existem várias ferramentas no mercado, entre elas o Mantis.

O Mantis é uma ferramenta open source automatizada escrita em PHP cujo principal objetivo é dar suporte ao processo de gestão de defeitos. O Mantis controla o ciclo de vida de um defeito, desde o seu relato até o seu fechamento, por meio de fluxos (workflows) personalizáveis. Entre as diversas funcionalidades oferecidas pelo Mantis, para este trabalho posso destacar: a) controle de acesso e níveis de permissões para os usuários; b) ciclo de vida dos defeitos personalizável; c) notificações por e-mail automáticas ou por meio de rss feeds; d) interface webservice (SOAP) para integração com outras ferramentas; e) possibilidade de integração com ferramentas de controle de versões. Recuperação de uma configuração em um determinado momento desejado do tempo. O Mantis por sua vez, fornece um serviço complementar ao oferecido pelo sistema de controle de versão. O foco desse tipo de ferramenta é nos procedimentos pelos quais as mudanças de um ou mais itens de configuração são propostas, avaliadas, aceitas e aplicadas. Os serviços oferecidos atualmente pelo Mantis que se encaixam no Controle de Mudança são os serviços para identificar, rastrear, analisar e controlar as mudanças nos itens de configuração. Analisando os resultados esperados pela Gerência de Configuração no Nível F do MPS.BR é possível dizer que as 2 ferramentas trabalhando juntas, podem atingir todos os resultados esperados (mesmo que alguns sejam atingidos apenas parcialmente). 3.3 RESULTADOS OBTIDOS COM A UTILIZAÇÃO DAS FERRAMENTAS PROPOSTAS A Gerência de Configuração quando vista por um ponto de vista das ferramentas existentes, é formada pelas seguintes atividades: Controle de versão, Controle de mudanças e Integração Contínua. Sendo o Subversion uma ferramenta de controle de versão, ele se torna a base principal para toda a gerência de configuração, apoiando as atividades de controle de mudança e integração contínua. Fornece os seguintes serviços: Identificação, armazenamento e gerenciamento dos itens de configuração e de suas versões durante todo o ciclo de vida do software; Histórico de todas as alterações efetuadas nos itens de configuração; Criação de rótulos e ramificações no projeto; 4 IMPLEMENTAÇÃO No intuito de integrar as duas ferramentas, foi elaborado um sistema que permite algumas funções de integração entre o Subversion e o Mantis, entre elas se destacam as possibilidades de validar a permissão do usuário do Subversion no Mantis e de adicionar notações no Mantis de acordo com o commit (ato de publicar as suas alterações no repositório) realizado no projeto. Para realizar esta integração, as duas ferramentas foram instaladas de uma maneira que o repositório do Subversion possa acessar o banco de dados (MYSQL) do Mantis. Os hooks (Segundo SUSSMAN, hooks é um diretório do Subversion criado no momento de criação do repositório onde se encontram vários modelos de scripts, sendo que estes podem ou não estar ativados) do Subversion devem estar configurados para disparar uma chamada da aplicação no momento do commit do usuário. A partir de então todo commit que for realizado naquele repositório irá acionar a aplicação que realizará as devidas verificações e inserções no Mantis quando necessário. Abaixo segue uma

diagrama que exemplifica o ambiente final após a integração. erros caso não o encontre. Caso a aplicação encontre o caso na base do mantis, será adicionado ao caso citado, uma notação com o texto descrito no log da aplicação. Desta forma, a aplicação tentará sempre manter este nível de controle sobre o repositório e sistema de demandas daquele projeto. Figura 4.0 Diagrama de componentes da aplicação. Para executar a ferramenta de integração, o usuário deverá instalar o jar gerado pela aplicação, na mesma máquina onde se encontra instalado o Subversion, além disso, a máquina deverá ter acesso a máquina que acessa o banco de dados do Mantis. Os hooks do Subversion devem ser instalados de maneira a executar o jar da aplicação passando o endereço do repositório e o usuário que está executando a operação de commit. Com estas configurações o Subversion pa acionar a aplicação para que a mesma execute as devidas validações. Desta maneira, ao executar a operação de pré-commit, o sistema irá verificar se o usuário que está realizando a operação possui permissão para realizar o commit naquele diretório passado, em caso do usuário não possuir permissão, o commit será interrompido e o Subversion exibirá uma mensagem com o problema ocorrido. Em caso de o usuário possuir permissão para executar a alteração no repositório, o Subversion irá executar o hook de post-commit aonde o mesmo irá se validar o log gravado pelo usuário no momento do commit. Para que o sistema adicione a notação do commit do usuário, o log do Subversion deverá estar preenchido com o caractere # seguido do número do caso. A aplicação irá validar se existe o caso descrito no log, e irá retornar os devidos 5 RESULTADOS Os resultados advindos da implementação da integração entre as 2 ferramentas propostas, poderá ter maior expressão de acordo com o contexto da organização onde a mesma for possa vir a ser utilizada. O fundamental é que adoção da mesma permitirá o alcance de melhores resultados junto a Gerência de configuração e mudança, fazendo com que a organização possa ter maior controle sobre todo o processo de desenvolvimento. A integração das duas ferramentas (Mantis e Subversion) atende totalmente ou ainda que parcialmente os resultados esperados pelo modelo MPS.BR. A partir da ferramenta implementada, foi possível restringir um pouco mais o controle sobre o repositório juntamente com o controle de mudanças. O fato da ferramenta não ter de modificar o ambiente ou plataforma utilizados pela equipe que irá realizar alterações no repositório, é interessante, pois o usuário manter o ambiente no qual está acostumado sem perda de produtividade ganhando ainda qualidade e confiabilidade em todo o processo de desenvolvimento. A partir do momento em que o processo de criação de demandas e da resolução do problema passa a caminhar juntas, podemos notar uma mudança em desempenho e facilidade de adequação ao processo utilizado na organização. Dessa forma, conseguimos atingir aos resultados esperados pela GCO, podendo dar mais garantias da qualidade do produto final. Isto ocorre devido a aspectos específicos e complexos da GCO serem disponibilizados de

forma transparente, flexível, e com alto grau de automação ao usuário. Como resultado negativo deste projeto, é o fato do mesmo não atingir por completo o resultado o nono item esperado pela Gerência de Configuração no nível F do MPS.BR, pois o mesmo não trata este item. É importante frisar, que o presente trabalho encontra-se em evolução e que trabalhos futuros rumam em direção a um apoio maior a auditoria de sistemas, de maneira a controlar melhor o acesso de usuários ao repositório do projeto. 6 CONCLUSÕES E TRABALHOS FUTUROS As ferramentas de apoio à gerência de configuração são fundamentais para corporações que pretendem melhorar o desenvolvimento de seus projetos e organização de suas equipes de desenvolvimento. Em relação aos objetivos definidos para esse trabalho, a integração das duas ferramentas atende totalmente ou ainda que parcialmente os resultados esperados pelo modelo MPS.BR. Com isso, conclui-se que é possível que pequenas e médias empresas melhorem a qualidade de seus processos, atividades, e com isso o produto final, sem muito investimento, utilizando algumas das ferramentas mais utilizadas no mercado. Mas para isso é necessário que haja um esforço em deixar o trabalho entre as mesmas o mais coerente possível e que as pessoas respeitem as regras da gerência de configuração. Com a implantação da Gerência de Configuração nos processos de softwares, é visível o aumento de qualidade no ponto de vista dos envolvidos no projeto, pois o controle favorece a ordem e o sincronismo dos itens a serem controlados. O objetivo de uma integração entre duas ferramentas tão importantes para a GCO é aumentar ainda mais a qualidade da mesma e facilitar o gerenciamento e auditoria. A definição do processo de gestão de configuração foi elaborada com estudos nas bibliografias encontradas e se adaptou bem a necessidade da gerência de configuração de software. Neste processo é possível executar as atividades básicas da gerência de configuração como registros de pedidos de mudanças, controle de versões dos objetos de um projeto, e definir os usuários que executarão cada atividade. A integração das 2 ferramentas open source, deixa claro que a ferramenta atende aspectos importantes tanto no processo de controle de versões como o controle de mudanças. Além disso, permitiu uma melhor visão das necessidades para essa atividade além do que é proposto pelo MPS.BR. Após a realização deste trabalho, podemos citar como possíveis extensões: Trabalhos que implementem 100% dos resultados esperados pelo processo de gerência de configuração do modelo MPS.BR. Aplicação que possa gerenciar essa integração via webservice deixando a cargo da organização a escolha da ferramenta que realiza o controle de versão. Por fim, conclui-se que a ferramenta atingiu o proposto, e atendeu as principais atividades de gerência de configuração de software. AGRADECIMENTOS Como autor deste artigo agradeço primeiramente a Deus e a toda a minha família por toda força e apoio, não só nesta caminhada, mas desde os primeiros passos, é impossível deixar de frisar que com esses 2 fatores juntos vejo que tudo é possível. Não poderia deixar de agradecer a todos os professores e funcionários que participaram e apoiaram de alguma forma esta conquista. Ao Prof. Junilson Pereira Souza que acreditou neste trabalho e prestou todo o apoio necessário, utilizando todo o seu conhecimento e experiência da área. Ao Prof. Bráulio Roberto Gonçalves Marinho Couto, pela sua disponibilidade em estar sempre ajudando e orientando em todo o percurso.

REFERÊNCIAS PAULA FILHO, Wilson de Pádua. Engenharia de software: fundamentos, métodos e padrões. 2. ed. Rio de Janeiro, RJ: LTC, c2003. [2], 602 p. PRESSMAN, Roger S. Engenharia de software. 5. ed. São Paulo, SP: McGraw-Hill, 2002. 843 p. PARREIRAS, Fernando S.; BAX, Marcello P. A gestão de conteúdos no apoio a engenharia de software. 2003. 15 f. Programa de Pós- Graduação em Ciências da Informação, Escola de Ciência da Informação, Universidade Federal de Minas Gerais, Minas Gerais. MOLINARI, Leonardo. Gerência de Configuração: Técnicas e Práticas no Desenvolvimento de Software. Florianópolis, SC: Visual Books, 2007. SOMMERVILLE, Ian. Engenharia de software. 6. ed. Tradução Maurício de Andrade. São Paulo: Addison Wesley, 2003. 592 p. FIGUEIREDO, Sávio; SANTOS, Gleison; ROCHA, Ana Regina. Gerência de configuração em ambientes de desenvolvimento de software orientados a organização. 2005, 14 f. Programa de Engenharia de Sistemas e Computação, Rio de Janeiro. SOFTEX Associação para Promoção da Excelência do Software Brasileiro. MPS.BR - Melhoria de Processo do Software Brasileiro Guia Geral: versão 1.2. Junho de 2007. 25p. Disponivel em: www.softex.br. Acesso em: 03/2009 SEI. Capability Maturity Model Integration, v1.1. 2001. Disponível em: www.sei.cmu.edu/cmmi. Acesso em: 04/2009 SUSSMAN, Ben Collins; FITZPATRICK, Brian W.; PILATO, C. Michael. Controle de Versão com Subversion - Para Subversion 1.4. Revisão 365. Disponível em: http://svnbook.redbean.com/. Acesso em: 10/2008. SUBVERSION. Version control system. USA. Disponível em: http://subversion.tigris.org/. Acesso em: 03/2009. Mantis Bug Tracker. USA. Disponível em: http://www.mantisbt.org/. Acesso em: 03/2009 DIAS, André Felipe. O que é Gerência de Configuração? Sumaré SP. 23/01/2007. Disponível em: http://www.pronus.eng.br/artigos_tutoriais/geren cia_configuracao/gerencia_configuracao.php. Acesso em: 26/10/2008.