SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Ferramenta de apoio a gerência de
    configuração de software




               Aluno: Rodrigo Furlaneto
               Orientador: Everaldo Artur Grahl
Roteiro de apresentação
 Introdução
      Objetivos
  –
 Fundamentação Teórica
      Gerência de Configuração de Software
  –
      Melhoria de Processo do Software Brasileiro (MPS.BR)
  –
 Desenvolvimento do trabalho
      Requisitos
  –
      Especificação
  –
      Implementação
  –
      Resultados e discussão
  –
 Conclusão
 Extensões
Introdução
 Com o aumento da complexidade do desenvolvimento de
 software, crescem também os problemas no gerenciamento de
 alterações durante o processo de criação ou manutenção do
 mesmo.
 O problema agrava-se ainda mais quando as equipes não
 estão bem integradas ou não se usa um ambiente que permita
 um controle adequado das mudanças realizadas no software.
 Na engenharia de software existe a gerência de configuração,
 na qual se definem etapas para os trabalhos em equipe e
 controle dos artefatos no ciclo de vida do produto. O
 gerenciamento de configuração é o desenvolvimento e a
 aplicação de padrões e procedimentos para gerenciar um
 produto de sistema em evolução.
Objetivos do Trabalho

 O objetivo principal deste trabalho é desenvolver
 uma ferramenta que suporte o processo de gerência
 de configuração de software.
      Definir o processo de gestão de configuração a ser
  –
      suportado pela ferramenta;
       Comparar a ferramenta criada com outras ferramentas
  –
      open-source existentes no mercado;
      Acrescentar novas funcionalidades nesta ferramenta não
  –
      implementadas em trabalhos correlatos já desenvolvidos na
      FURB;
      Incorporar funcionalidades na ferramenta para atender
  –
      diretrizes previstas no processo de gerência de
      configuração do modelo MPS.BR.
Fundamentação Teórica
Gerência de Configuração de Software

 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.
Principais objetivos

  Identificar todos os itens da configuração de
  software;
  Gerir modificações em um ou mais itens;
  Facilitar a construção de diferentes versões
  de uma aplicação;
  Garantir que a qualidade do software seja
  mantida ao longo do seu ciclo de vida.
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.
Controle de Versão

  Recuperar versões anteriores;
  Auditar as modificações realizadas: quem, quando,
  o quê;
  Automatizar o rastreamento de arquivos;
  Estabelecer meios para obter a situação de um
  projeto em determinado ponto do tempo;
  Prevenir conflitos entre desenvolvedores;
  Permitir o desenvolvimento paralelo.
Controle de Versão (Repositório)
Controle de Versão (Revisões)
Controle de Versão (Política)
Controle de Versão (Ramificações)
Controle de Modificação

 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.
Auditoria de Configuração

 Esta atividade visa assegurar que as
 alterações tenham sido implementadas
 corretamente.
MPS.BR

 Este modelo 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
 negocio e ser reconhecido nacional e
 internacionalmente como um modelo
 aplicável à indústria de software.
MPS.BR
Ferramentas de apoio a gerência de
configuração

 Foram pesquisadas duas ferramentas de
 apoio à gerência de configuração para o
 desenvolvimento deste trabalho: Subversion
 e o Trac.
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.
Subversion
Trac

 O Trac (TRAC, 2006) é uma ferramenta para
 rastreamento de mudança em projetos de
 desenvolvimento de software, e executa em
 um ambiente web. É desenvolvido e mantido
 pela empresa Edgewall software e por
 colaboradores da comunidade open source.
Trac
Trabalhos correlatos

 Em Barbaresco (2000) são apresentadas de
 uma forma bem detalhada as atividades
 relacionadas ao processo de gerência de
 configuração. O ponto forte deste trabalho é
 o estudo de modelos e normas de qualidade.
 Em Bohn (2005) é apresentado o
 desenvolvimento de uma ferramenta de
 apoio à gerência de configuração de
 software baseado no modelo CMMI.
Desenvolvimento do trabalho

 Com base nos estudos realizados, foram
 definidos os requisitos do sistema proposto.
Requisitos

  permitir o cadastramento de usuários, projetos, clientes e
  tipos de itens de configuração (requisito funcional - RF);
  registrar os itens de configuração (RF);
  buscar itens de configuração do repositório (RF);
  bloquear e desbloquear os itens de configuração (RF);
  permitir o rastreamento dos artefatos (RF);
  criar ramificação nos itens de configuração (RF);
  listar diferenças encontradas nos itens de configuração (RF);
  controlar as versões dos itens de configuração (RF);
  controlar as linhas básicas (RF);
  registrar os pedidos de modificação (RF);
Requisitos
  registrar a avaliação, decisão e auditoria de um pedido de
  modificação (RF);
  registrar histórico de versões no sistema (RF);
  empacotar linhas básicas de projetos (RF);
  gerar relatórios de acompanhamento das modificações e
  liberações dos itens de configuração, informações sobre
  linhas básicas de um determinado projeto, auditorias
  realizadas e evolução dos itens de configuração (RF);
  ser implementado na linguagem Java, utilizando o ambiente
  Eclipse 3.2 (requisito não-funcional - RNF);
  utilizar banco de dados MySQL 4.1 (RNF);
  utilizar o framework de persistência de objetos Hibernate
  (RNF);
  atender diretrizes previstas no modelo de referência MPS.BR
  (RNF).
Especificação

 Casos de uso;
 Diagrama de atividades;
 Diagrama de classes;
Casos de uso de configuração
Casos de uso de execução
Diagrama de atividades
Diagrama de classes
Implementação
Técnicas e Ferramentas Utilizadas

 Plataforma Java 5;
 Netbeans;
 Eclipse;
 MySQL;
 Hibernate;
 API iText;
 API Zip;
 Arquitetura cliente/servidor;
 Soquete.
Framework de persistência Hibernate

 Facilitar o mapeamento das classes feitas
 em Java para tabelas no banco de dados;
 O mapeamento é realizado através de
 arquivos XML;
 Com esta ferramenta, o desenvolvedor não
 precisa se preocupar com os comandos
 Structured Query Language (SQL).
Framework de persistência Hibernate
Arquitetura cliente/servidor

 É usado praticamente em todos os
 processos distribuídos em que a aplicação
 servidora aguarda conexões, executa
 serviços e retorna resultados. Já a aplicação
 cliente é quem estabelece a conexão com o
 servidor, envia mensagens para o mesmo e
 aguarda pelas mensagens de resposta.
Arquitetura cliente/servidor
Operacionalidade

 Controle de versões de projetos
Operacionalidade
 Controle de modificações
Resultados e discussão

 No trabalho desenvolvido por Bohn (2005), foi desenvolvida
 uma ferramenta de apoio à gerência de configuração seguindo
 o modelo CMMI. No entanto esta ferramenta não guarda
 histórico de arquivos binários e possui um fluxo de trabalho
 limitado, além de não permitir criar ramos nas linhas de
 desenvolvimento de um projeto;
 Com esta ferramenta de gerência de configuração
 desenvolvida é possível definir responsáveis pelas atividades,
 assim como por projeto. Pode-se também manter o histórico
 não apenas de arquivos texto, mas também de binários.
 Permite ainda criar ramos nas linhas de desenvolvimento dos
 projetos.
Comparativo das ferramentas
                                                       Ferramenta
                                          Subversion
                                                       desenvolvida
Registro de rastreamento                     Não           Sim


Definições e gerenciamento de múltiplas      Sim           Sim
versões
Geração de versões                           Sim           Sim


Capacidade de arquivamento                   Sim           Sim


Desenvolvimento sincronizado                 Sim           Não


Ramificação de arquivos                      Sim           Sim
Comparativo das ferramentas
                                      Trac    Ferramenta
                                             desenvolvida

Acompanhamento do ciclo de vida do    Sim        Sim
pedido de mudança

Rastreamento da mudança               Sim        Sim


Anexação de arquivos ao pedido        Sim        Não


Configuração do fluxo de trabalho     Não        Não


Notificações para acompanhamento da   Sim        Não
evolução do pedido
Análise de aderência ao modelo
MPS.BR

                  Resultados esperados                       Ferramenta
                                                            desenvolvida
GCO 1. Os itens de configuração são identificados             Atende
GCO 2. Os itens de configuração gerados pelo projeto são      Atende
definidos e colocados sob uma linha básica
GCO 3. É estabelecido e mantido um sistema de gerência de     Atende
configuração
GCO 4. As modificações e liberações dos itens de              Atende
configuração são controladas
GCO 5. As modificações e liberações são disponibilizadas      Atende
para todos os envolvidos;
Análise de aderência ao modelo
MPS.BR

                   Resultados esperados                               Ferramenta
                                                                     desenvolvida

GCO 6. A situação dos itens de configuração e as solicitações           Atende
de mudanças são registradas, relatadas e o seu impacto é
analisado
GCO 7. A completeza e a consistência dos itens de                       Atende
configuração são asseguradas

GCO 8. O armazenamento, o manuseio e a entrega dos
                                                                  Atende Parcialmente
produtos de trabalho são controlados

GCO 9. A integridade das linhas básicas é estabelecida e                Atende
mantida, através de auditoria da configuração e de registros da
gerência de configuração
Conclusão

 Foi definido um processo de gestão de
 configuração;
 A ferramenta foi comparada com outras ferramentas
 existentes no mercado.
 Foram acrescentadas novas funcionalidades nesta
 ferramenta não implementadas em trabalhos
 correlatos;
 Foram incorporadas funcionalidades na ferramenta
 que atendeu diretrizes previstas no processo de
 gerência de configuração do modelo MPS.BR.
Conclusão

 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;
 As tecnologias utilizadas contribuíram para este
 desenvolvimento. Algumas foram estudas no
 decorrer do trabalho ;
 Os objetivos definidos na proposta deste trabalho
 foram alcançados, a ferramenta possibilitou o
 controle das atividades da gerência de configuração
 de software.
Extensões

  permitir modificação de um item de configuração
  concorrentemente atualizando os arquivos dos envolvidos a
  cada atualização no repositório;
  desenvolver um algoritmo específico para armazenar
  arquivos binários;
  permitir anexar arquivos nos pedidos de modificação;
  permitir modelar o fluxo de atividades.
Demonstração da implementação
Obrigado!



            Rodrigo Furlaneto
      rodrigo.furlaneto@gmail.com

Contenu connexe

Tendances

Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
Wagner Zaparoli
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
licardino
 

Tendances (20)

Metodologia SCRUM
Metodologia SCRUMMetodologia SCRUM
Metodologia SCRUM
 
Treinamento de Scrum
Treinamento de ScrumTreinamento de Scrum
Treinamento de Scrum
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Scrum
ScrumScrum
Scrum
 
Aula01 Gerência de Projetos - Conceitos e áreas de conhecimento do PMBOK
Aula01 Gerência de Projetos - Conceitos e áreas de conhecimento do PMBOKAula01 Gerência de Projetos - Conceitos e áreas de conhecimento do PMBOK
Aula01 Gerência de Projetos - Conceitos e áreas de conhecimento do PMBOK
 
Palestra sobre metodologia Scrum
Palestra sobre metodologia ScrumPalestra sobre metodologia Scrum
Palestra sobre metodologia Scrum
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de Software
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de Software
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Gestão de projetos
Gestão de projetosGestão de projetos
Gestão de projetos
 

Similaire à Ferramenta de apoio a gerência de configuração de software

[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
Rafael Kanaoka
 
Gerencia de Configuracao de Software
Gerencia de Configuracao de SoftwareGerencia de Configuracao de Software
Gerencia de Configuracao de Software
Robson Silva Espig
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_Desenvolvimento
Wagner Zaparoli
 
Aula 4 gerência de configuração de software1
Aula 4   gerência de configuração de software1Aula 4   gerência de configuração de software1
Aula 4 gerência de configuração de software1
Tiago Vizoto
 
Filosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareFilosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De Software
Sérgio Luiz Jordão
 

Similaire à Ferramenta de apoio a gerência de configuração de software (20)

Introdução Qualidade de Software
Introdução Qualidade de SoftwareIntrodução Qualidade de Software
Introdução Qualidade de Software
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
 
Gestão de Configuração de Software
Gestão de Configuração de Software Gestão de Configuração de Software
Gestão de Configuração de Software
 
Aula9 TEES UFS Gestao de Configuração de SW
Aula9 TEES UFS  Gestao de Configuração de SWAula9 TEES UFS  Gestao de Configuração de SW
Aula9 TEES UFS Gestao de Configuração de SW
 
Gerencia de Configuracao de Software
Gerencia de Configuracao de SoftwareGerencia de Configuracao de Software
Gerencia de Configuracao de Software
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos Principais
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_Desenvolvimento
 
Aula 4 gerência de configuração de software1
Aula 4   gerência de configuração de software1Aula 4   gerência de configuração de software1
Aula 4 gerência de configuração de software1
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de software
 
Análise e Design Orientado a Objetos.ppt
Análise e Design Orientado a Objetos.pptAnálise e Design Orientado a Objetos.ppt
Análise e Design Orientado a Objetos.ppt
 
Filosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareFilosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De Software
 
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_EngineeringAula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 

Plus de elliando dias

Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

Plus de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Ferramenta de apoio a gerência de configuração de software

  • 1. Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl
  • 2. Roteiro de apresentação Introdução Objetivos – Fundamentação Teórica Gerência de Configuração de Software – Melhoria de Processo do Software Brasileiro (MPS.BR) – Desenvolvimento do trabalho Requisitos – Especificação – Implementação – Resultados e discussão – Conclusão Extensões
  • 3. Introdução Com o aumento da complexidade do desenvolvimento de software, crescem também os problemas no gerenciamento de alterações durante o processo de criação ou manutenção do mesmo. O problema agrava-se ainda mais quando as equipes não estão bem integradas ou não se usa um ambiente que permita um controle adequado das mudanças realizadas no software. Na engenharia de software existe a gerência de configuração, na qual se definem etapas para os trabalhos em equipe e controle dos artefatos no ciclo de vida do produto. O gerenciamento de configuração é o desenvolvimento e a aplicação de padrões e procedimentos para gerenciar um produto de sistema em evolução.
  • 4. Objetivos do Trabalho O objetivo principal deste trabalho é desenvolver uma ferramenta que suporte o processo de gerência de configuração de software. Definir o processo de gestão de configuração a ser – suportado pela ferramenta; Comparar a ferramenta criada com outras ferramentas – open-source existentes no mercado; Acrescentar novas funcionalidades nesta ferramenta não – implementadas em trabalhos correlatos já desenvolvidos na FURB; Incorporar funcionalidades na ferramenta para atender – diretrizes previstas no processo de gerência de configuração do modelo MPS.BR.
  • 6. Gerência de Configuração de Software 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.
  • 7. Principais objetivos Identificar todos os itens da configuração de software; Gerir modificações em um ou mais itens; Facilitar a construção de diferentes versões de uma aplicação; Garantir que a qualidade do software seja mantida ao longo do seu ciclo de vida.
  • 8. 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.
  • 9. Controle de Versão Recuperar versões anteriores; Auditar as modificações realizadas: quem, quando, o quê; Automatizar o rastreamento de arquivos; Estabelecer meios para obter a situação de um projeto em determinado ponto do tempo; Prevenir conflitos entre desenvolvedores; Permitir o desenvolvimento paralelo.
  • 10. Controle de Versão (Repositório)
  • 11. Controle de Versão (Revisões)
  • 12. Controle de Versão (Política)
  • 13. Controle de Versão (Ramificações)
  • 14. Controle de Modificação 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.
  • 15. Auditoria de Configuração Esta atividade visa assegurar que as alterações tenham sido implementadas corretamente.
  • 16. MPS.BR Este modelo 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 negocio e ser reconhecido nacional e internacionalmente como um modelo aplicável à indústria de software.
  • 18. Ferramentas de apoio a gerência de configuração Foram pesquisadas duas ferramentas de apoio à gerência de configuração para o desenvolvimento deste trabalho: Subversion e o Trac.
  • 19. 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.
  • 21. Trac O Trac (TRAC, 2006) é uma ferramenta para rastreamento de mudança em projetos de desenvolvimento de software, e executa em um ambiente web. É desenvolvido e mantido pela empresa Edgewall software e por colaboradores da comunidade open source.
  • 22. Trac
  • 23. Trabalhos correlatos Em Barbaresco (2000) são apresentadas de uma forma bem detalhada as atividades relacionadas ao processo de gerência de configuração. O ponto forte deste trabalho é o estudo de modelos e normas de qualidade. Em Bohn (2005) é apresentado o desenvolvimento de uma ferramenta de apoio à gerência de configuração de software baseado no modelo CMMI.
  • 24. Desenvolvimento do trabalho Com base nos estudos realizados, foram definidos os requisitos do sistema proposto.
  • 25. Requisitos permitir o cadastramento de usuários, projetos, clientes e tipos de itens de configuração (requisito funcional - RF); registrar os itens de configuração (RF); buscar itens de configuração do repositório (RF); bloquear e desbloquear os itens de configuração (RF); permitir o rastreamento dos artefatos (RF); criar ramificação nos itens de configuração (RF); listar diferenças encontradas nos itens de configuração (RF); controlar as versões dos itens de configuração (RF); controlar as linhas básicas (RF); registrar os pedidos de modificação (RF);
  • 26. Requisitos registrar a avaliação, decisão e auditoria de um pedido de modificação (RF); registrar histórico de versões no sistema (RF); empacotar linhas básicas de projetos (RF); gerar relatórios de acompanhamento das modificações e liberações dos itens de configuração, informações sobre linhas básicas de um determinado projeto, auditorias realizadas e evolução dos itens de configuração (RF); ser implementado na linguagem Java, utilizando o ambiente Eclipse 3.2 (requisito não-funcional - RNF); utilizar banco de dados MySQL 4.1 (RNF); utilizar o framework de persistência de objetos Hibernate (RNF); atender diretrizes previstas no modelo de referência MPS.BR (RNF).
  • 27. Especificação Casos de uso; Diagrama de atividades; Diagrama de classes;
  • 28. Casos de uso de configuração
  • 29. Casos de uso de execução
  • 33. Técnicas e Ferramentas Utilizadas Plataforma Java 5; Netbeans; Eclipse; MySQL; Hibernate; API iText; API Zip; Arquitetura cliente/servidor; Soquete.
  • 34. Framework de persistência Hibernate Facilitar o mapeamento das classes feitas em Java para tabelas no banco de dados; O mapeamento é realizado através de arquivos XML; Com esta ferramenta, o desenvolvedor não precisa se preocupar com os comandos Structured Query Language (SQL).
  • 36. Arquitetura cliente/servidor É usado praticamente em todos os processos distribuídos em que a aplicação servidora aguarda conexões, executa serviços e retorna resultados. Já a aplicação cliente é quem estabelece a conexão com o servidor, envia mensagens para o mesmo e aguarda pelas mensagens de resposta.
  • 38. Operacionalidade Controle de versões de projetos
  • 40. Resultados e discussão No trabalho desenvolvido por Bohn (2005), foi desenvolvida uma ferramenta de apoio à gerência de configuração seguindo o modelo CMMI. No entanto esta ferramenta não guarda histórico de arquivos binários e possui um fluxo de trabalho limitado, além de não permitir criar ramos nas linhas de desenvolvimento de um projeto; Com esta ferramenta de gerência de configuração desenvolvida é possível definir responsáveis pelas atividades, assim como por projeto. Pode-se também manter o histórico não apenas de arquivos texto, mas também de binários. Permite ainda criar ramos nas linhas de desenvolvimento dos projetos.
  • 41. Comparativo das ferramentas Ferramenta Subversion desenvolvida Registro de rastreamento Não Sim Definições e gerenciamento de múltiplas Sim Sim versões Geração de versões Sim Sim Capacidade de arquivamento Sim Sim Desenvolvimento sincronizado Sim Não Ramificação de arquivos Sim Sim
  • 42. Comparativo das ferramentas Trac Ferramenta desenvolvida Acompanhamento do ciclo de vida do Sim Sim pedido de mudança Rastreamento da mudança Sim Sim Anexação de arquivos ao pedido Sim Não Configuração do fluxo de trabalho Não Não Notificações para acompanhamento da Sim Não evolução do pedido
  • 43. Análise de aderência ao modelo MPS.BR Resultados esperados Ferramenta desenvolvida GCO 1. Os itens de configuração são identificados Atende GCO 2. Os itens de configuração gerados pelo projeto são Atende definidos e colocados sob uma linha básica GCO 3. É estabelecido e mantido um sistema de gerência de Atende configuração GCO 4. As modificações e liberações dos itens de Atende configuração são controladas GCO 5. As modificações e liberações são disponibilizadas Atende para todos os envolvidos;
  • 44. Análise de aderência ao modelo MPS.BR Resultados esperados Ferramenta desenvolvida GCO 6. A situação dos itens de configuração e as solicitações Atende de mudanças são registradas, relatadas e o seu impacto é analisado GCO 7. A completeza e a consistência dos itens de Atende configuração são asseguradas GCO 8. O armazenamento, o manuseio e a entrega dos Atende Parcialmente produtos de trabalho são controlados GCO 9. A integridade das linhas básicas é estabelecida e Atende mantida, através de auditoria da configuração e de registros da gerência de configuração
  • 45. Conclusão Foi definido um processo de gestão de configuração; A ferramenta foi comparada com outras ferramentas existentes no mercado. Foram acrescentadas novas funcionalidades nesta ferramenta não implementadas em trabalhos correlatos; Foram incorporadas funcionalidades na ferramenta que atendeu diretrizes previstas no processo de gerência de configuração do modelo MPS.BR.
  • 46. Conclusão 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; As tecnologias utilizadas contribuíram para este desenvolvimento. Algumas foram estudas no decorrer do trabalho ; Os objetivos definidos na proposta deste trabalho foram alcançados, a ferramenta possibilitou o controle das atividades da gerência de configuração de software.
  • 47. Extensões permitir modificação de um item de configuração concorrentemente atualizando os arquivos dos envolvidos a cada atualização no repositório; desenvolver um algoritmo específico para armazenar arquivos binários; permitir anexar arquivos nos pedidos de modificação; permitir modelar o fluxo de atividades.
  • 49. Obrigado! Rodrigo Furlaneto rodrigo.furlaneto@gmail.com