SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Gerência de
Configuração: Introdução

 Leonardo Gresta Paulino Murta
      leomurta@ic.uff.br
Histórico
 • Anos 50
        – GC para produção de aviões de guerra e naves espaciais
 • Anos 60 e 70
        – Surgimento de GCS (S = Software)
        – Foco ainda em aplicações militares e aeroespaciais
 • Anos 80 e 90
        – Mudança de foco (MIL  EIA, IEEE, ISO, etc.)
        – Surgimento das primeiras normas internacionais
        – Assimilação por organizações não militares



Leonardo Murta                 Gerência de Configuração: Introdução   2
Principais normas
 • AFSCM 375-1 (1962)
        – Somente hardware é considerado
 • MIL Std 483 (1971)
        – Software passa a ser considerado
 • DOD Std 2167A (1985)
        – Consolidação das normas existentes
 • MIL Std 973 (1992, 1993, 1995)
        – Usada amplamente em contratos governamentais
        – Descontinuada em 2000
 • EIA 649 (1998, 2004)
        – Substitui a MIL Std 973
        – Compatível com ISO 12207

Leonardo Murta                Gerência de Configuração: Introdução   3
Principais normas
 • IEEE Std 828 (1983, 1990, 1998, 2005)
        – Trata da confecção de planos de GCS
        – Principal referência em ambientes não militares
 • IEEE Std 1042 (1987)
        – Consiste em um guia para aplicação da IEEE Std 828
        – É considerada uma das normas internacionais mais completas sobre
          GCS
        – Reafirmada em 1993
        – Descontinuada em 2000
 • ISO 10007 (1995, 2003)
        – Baseada na MIL Std 973
        – Visa satisfazer ISO 9000
        – Será possivelmente substituída pela EIA 649

Leonardo Murta                 Gerência de Configuração: Introdução          4
Principais normas
 • ISO 12207
        – Processo de GC baseado em
                 • IEEE Std 828
                 • IEEE Std 1042
                 • ISO 10007
 • CMMI
        – Área de processo nível 2
 • MPS.BR
        – Processo nível F
 • ISO/IEC TR 15846 (1998)
        – Relatório técnico (não normativo)


Leonardo Murta                     Gerência de Configuração: Introdução   5
Principais livros
 • “Software Configuration Management Handbook”
        – Alexis Leon (2004)
 • “Software Configuration Management”
        – Jessica Keyes (2004)
 • “Configuration Management Principles and Practice”
        – Anne Hass (2002)
 • “Software Configuration Management Patterns: Effective
   Teamwork, Practical Integration”
        – Stephen Berczuk e Brad Appleton (2002)



Leonardo Murta                   Gerência de Configuração: Introdução   6
Principais artigos
 • “Concepts in Configuration Management Systems”
        – Susan Dart, SCM (1991)
 • “Software Configuration Management: A Roadmap”
        – Jacky Estublier, ICSE – Future of SE Treck (2000)
 • “Impact of Software Engineering Research on the Practice of
   Software Configuration Management”
        – J. Estublier, D. Leblang, A. van der Hoek, R. Conradi, G. Clemm, W.
          Tichy, D. Wiborg-weber, IEEE TOSEM (2005)
 • “Version Models for Software Configuration Management”
        – R. Conradi e B. Westfechtel, ACM Comp. Surveys, 30, 2 (1998)




Leonardo Murta                  Gerência de Configuração: Introdução            7
Principais referências
 • http://www.cmcrossroads.com
        – Principal comunidade de GCS na web
 • http://www.cmcrossroads.com/yp
        – Páginas amarelas (livros, ferramentas, treinamento, etc)
 • http://www.cmcrossroads.com/jobs
        – Canal para empresas buscarem por funcionários de GCS
 • http://www.bradapp.net/acme
        – Padrões de GCS
 • http://www.cmbok.com
        – Body of Knowledge de GCS
 • http://www.cmwiki.com
        – Wiki sobre GCS

Leonardo Murta                 Gerência de Configuração: Introdução   8
Principais referências
 • http://www.ucmcentral.com
    – Documentação introdutória
    – Métricas para GCS
    – Formulários (templates) para GCS
 • http://www.icmhq.com
    – Instituto de Gerência de Configuração
    – Não articula com as demais iniciativas
    – Cria suas certificações (CMII)
 • http://www.cmcommunity.com
    – Comunidade voltada para CMII
 • http://dblp.uni-trier.de/db/conf/scm
    – Principal conferência de GCS
    – Existe desde 1988
    – Conta com contribuições da academia e indústria


Leonardo Murta               Gerência de Configuração: Introdução   9
Contra-definição
 •    GC não é (somente) controle de versões!
 •    GC não é configuração de conteúdo/dados (ver PDM)!
 •    GC não é backup!


 •    GC não é simples!
 •    GC não é impossível!
 •    GC não é modismo!
 •    GC não é opcional!
 •    GC não é uma panacéia!
 •    GC não evita que ocorram modificações!
 •    GC não termina nela mesma!
 •    GC não é somente para sistemas grandes e complexos!
 •    GC não é somente para grandes equipes geograficamente distribuídas!




Leonardo Murta                    Gerência de Configuração: Introdução      10
Definição
 • Wayne Babish
        – A arte de coordenar o desenvolvimento de software para minimizar
          confusão é chamada GC. O objetivo é maximizar a produtividade e
          minimizar os erros
 • Susan Dart
        – GCS é uma disciplina para o controle da evolução de sistemas de software
 • Steve McConnell
   – GC é a prática de lidar com modificações de forma sistemática, permitindo
     que o sistema tenha a sua integridade mantida com o passar do tempo
 • Walter Tichy
   – GC é a disciplina para o controle e evolução de sistemas complexos




Leonardo Murta                   Gerência de Configuração: Introdução                11
Definição
 • Jacky Estublier
    – GC é a disciplina que nos permite evoluir produtos de software de forma
       controlada, e, desta forma, contribui na satisfação de restrições de
       qualidade e de tempo
 • IEEE Std 610
    – GC é uma disciplina que aplica procedimentos técnicos e administrativos
       para identificar e documentar as características físicas e funcionais de um
       item de configuração, controlar as alterações nessas características,
       armazenar e relatar o processamento das modificações e o estágio da
       implementação e verificar a compatibilidade com os requisitos especificados




Leonardo Murta                Gerência de Configuração: Introdução                   12
Definição
 • ISO 10007
    – Atividades técnicas e organizacionais compreendendo: identificação de
       configuração; controle de configuração; contabilização da situação de
       configuração; auditoria de configuração
 • ISO 12207
    – O processo de gerência de configuração é um processo de aplicação de
       procedimentos administrativos e técnicos, por todo o ciclo de vida de
       software, destinado a: identificar e definir os itens de software em um
       sistema, e estabelecer suas baselines; controlar as modificações e
       liberações dos itens; registrar e apresentar a situação dos itens e dos
       pedidos de modificação; garantir a completeza, a consistência e a correção
       dos itens; e controlar o armazenamento, a manipulação e a distribuição
       dos itens



Leonardo Murta                Gerência de Configuração: Introdução                  13
Definição
 • CMMI
        – O propósito de GC é estabelecer e manter a integridade dos
          produtos de trabalho utilizando identificação da configuração,
          controle da configuração, contabilização da situação da configuração
          e auditoria da configuração
 • MPS.BR
        – O propósito do processo de Gerência de Configuração é estabelecer e
          manter a integridade de todos os produtos de trabalho de um
          processo ou projeto e disponibilizá-los a todos os envolvidos




Leonardo Murta                 Gerência de Configuração: Introdução              14
Foco de atuação
 • Controle sobre a evolução de produtos de
   trabalho
        – Produtos de trabalho do projeto
        – Produtos de trabalho dos processos
 • Fonte de informações para outros processos
        – Ex. 1: dados históricos para medição e análise
        – Ex. 2: laudo de defeitos para análise de causa
 • Garantia de que foi feito o que deveria ter sido
   feito
Leonardo Murta            Gerência de Configuração: Introdução   15
Perspectivas
 Espaço de
 trabalho:                       Ambiente de Desenvolvimento de Software

 Processos:      Identificação   Controle        Contabilização           Avaliação        Liberação

 Sistemas:
                                          Controle de Modificações
                                                   Controle de Versões
                                                  Gerenciamento de Construção

                      Perspectiva de           Perspectiva                     Perspectiva de
                      integração               gerencial                       desenvolvimento




Leonardo Murta                          Gerência de Configuração: Introdução                           16
Cenário atual
 • Projetos cada vez mais complexos em relação ao tamanho,
      sofisticação e tecnologias envolvidas
 • Grandes equipes geograficamente dispersas
 • Requisitos de execução do sistema em diferentes plataformas de
      hardware e software
 • Suporte a diferentes línguas e culturas
 • Sabores específicos para equacionar custo/benefício (eg.:
      Desktop, Standard, Professional e Enterprise)

Leonardo Murta              Gerência de Configuração: Introdução    17
Cenário atual
 • Crescente velocidade da comunicação entre clientes
   sobre a ocorrência de defeitos
 • Diminuição dos tempos de desenvolvimento e de
   correção de defeitos para preservar a reputação da
   empresa

 • Necessidade de lidar com o inevitável caos relacionado à
   atividade criativa, buscando métodos e ferramentas para
   maximizar a produtividade e minimizar os erros

Leonardo Murta        Gerência de Configuração: Introdução    18
Problemas pela falta de GC
           • Perda de código-fonte
           • Bibliotecas inesperadamente não
                 funcionam mais
           • Impossibilidade de determinar o que
                 aconteceu com um programa, ou
                 parte dele
           • Impossibilidade de determinar quem,
                 porque e quando foram efetuadas
                 modificações

Leonardo Murta                    Gerência de Configuração: Introdução   19
Problemas pela falta de GC
      • Requisitos já documentados
        desaparecem

      • Requisitos implementados
        desaparecem do código

      • O programa em execução e o seu
        código fonte estão em diferentes
        versões


Leonardo Murta            Gerência de Configuração: Introdução   20
Evolução das técnicas de GC
         • Sistemas pequenos, desenvolvidos por somente uma
           pessoa são menos dependentes de GC
         • O crescimento dos sistemas implica no aumento da
           equipe, o que acarreta problemas
           relacionados com comunicação




                    [Leon, 2000] Communications breakdown problem


Leonardo Murta                 Gerência de Configuração: Introdução   21
Evolução das técnicas de GC
           • Artefatos de software são compartilhados por
             diversos desenvolvedores
           • Modificações efetuadas por outros
             desenvolvedores não são comunicadas a todos os
             interessados nos artefatos, gerando
             incompatibilidades de versões


                        C1      C2         C3         C4            C5

                         [Leon, 2000] Shared data problem

Leonardo Murta               Gerência de Configuração: Introdução        22
Evolução das técnicas de GC
           • Solução inicial consiste em criar várias cópias do
             mesmo artefato compartilhado
           • Falta de controle sobre as cópias existentes
           • Retrabalho nas diferentes cópias para implementar
             os mesmos requisitos e corrigir os mesmos defeitos




                      C1    C2       C3            C3’        C4     C5

                       [Leon, 2000] Multiple maintenace problem


Leonardo Murta                Gerência de Configuração: Introdução        23
Evolução das técnicas de GC
           • Criação de bibliotecas centralizadas;
           • Retorno ao problema de artefatos de
             compartilhados
           • Perda de trabalho devido a falta de exclusão mútua
             nos acessos às bibliotecas centralizadas

                                                 C3



                        C1    C2        C3’            C3’’           C4   C5

                     [Leon, 2000] Simultaneous update problem

Leonardo Murta                 Gerência de Configuração: Introdução             24
Evolução das técnicas de GC
           • Criação de mecanismos de controle sobre as bibliotecas
                 centralizadas
           • Definição dos atuais repositórios compartilhados
           • Aplicação, em conjunto, de métodos e ferramentas que
                 suportam o processo de Gerência de Configuração
           • Ganho de produtividade devido ao aumento da
                 disciplina e diminuição do retrabalho e dos defeitos




Leonardo Murta                    Gerência de Configuração: Introdução   25
Benefícios com o uso de GC
 • Aumento da Memória Organizacional da empresa
 • Desenvolvimento dependente do processo, e não de pessoas
 • Controle sobre o desenvolvimento
 • Rastreabilidade entre os diferentes níveis de abstração de um
      mesmo componente (requisito, análise, projeto, código,
      programa executável)
 • Documentação sobre a evolução do sistema


Leonardo Murta            Gerência de Configuração: Introdução     26
Gerência de
Configuração: Introdução

 Leonardo Gresta Paulino Murta
      leomurta@ic.uff.br

Mais conteúdo relacionado

Mais procurados

RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)Elen Arantza
 
Slide apresentação CMMI-TOGAF
Slide apresentação CMMI-TOGAFSlide apresentação CMMI-TOGAF
Slide apresentação CMMI-TOGAFEdton Lemos
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasluanrjesus
 
Visão geral da engenharia de software qualidade de software
Visão geral da engenharia de software   qualidade de softwareVisão geral da engenharia de software   qualidade de software
Visão geral da engenharia de software qualidade de softwarejordanavy
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3spawally
 
09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudancaLuisinho Menard
 
Engenharia de requisitos introdução
Engenharia de requisitos   introduçãoEngenharia de requisitos   introdução
Engenharia de requisitos introduçãoSilmar De Freitas
 
Abnt nbr-iso-9001-2008-para-treinamento-rev1
Abnt nbr-iso-9001-2008-para-treinamento-rev1Abnt nbr-iso-9001-2008-para-treinamento-rev1
Abnt nbr-iso-9001-2008-para-treinamento-rev1aparadoxo
 

Mais procurados (13)

RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)
 
Slide apresentação CMMI-TOGAF
Slide apresentação CMMI-TOGAFSlide apresentação CMMI-TOGAF
Slide apresentação CMMI-TOGAF
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemas
 
Poster 2009 09 24
Poster 2009 09 24Poster 2009 09 24
Poster 2009 09 24
 
Visão geral da engenharia de software qualidade de software
Visão geral da engenharia de software   qualidade de softwareVisão geral da engenharia de software   qualidade de software
Visão geral da engenharia de software qualidade de software
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3
 
09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca
 
Nbr 5462 (2)
Nbr 5462 (2)Nbr 5462 (2)
Nbr 5462 (2)
 
Engenharia de requisitos introdução
Engenharia de requisitos   introduçãoEngenharia de requisitos   introdução
Engenharia de requisitos introdução
 
ISO IEC 12207
ISO IEC 12207ISO IEC 12207
ISO IEC 12207
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Abnt nbr-iso-9001-2008-para-treinamento-rev1
Abnt nbr-iso-9001-2008-para-treinamento-rev1Abnt nbr-iso-9001-2008-para-treinamento-rev1
Abnt nbr-iso-9001-2008-para-treinamento-rev1
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 

Destaque (20)

Movimiento rectilíneo
Movimiento rectilíneoMovimiento rectilíneo
Movimiento rectilíneo
 
Rio muito antigo
Rio muito antigoRio muito antigo
Rio muito antigo
 
Para ler e pensar
Para ler e pensarPara ler e pensar
Para ler e pensar
 
Introducción a jAlarms
Introducción a jAlarmsIntroducción a jAlarms
Introducción a jAlarms
 
Microbios
MicrobiosMicrobios
Microbios
 
Presentacion Skycontrol Car
Presentacion Skycontrol CarPresentacion Skycontrol Car
Presentacion Skycontrol Car
 
Fruteiras em flor
Fruteiras em florFruteiras em flor
Fruteiras em flor
 
Guía para un comentario literario
Guía para un comentario literarioGuía para un comentario literario
Guía para un comentario literario
 
Reflejos
ReflejosReflejos
Reflejos
 
Amigos
AmigosAmigos
Amigos
 
Shsa ped
Shsa pedShsa ped
Shsa ped
 
Gestion Humana
Gestion HumanaGestion Humana
Gestion Humana
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
Felicitacio jose
Felicitacio joseFelicitacio jose
Felicitacio jose
 
My picture..
My picture..My picture..
My picture..
 
Presentacion informatica
Presentacion informaticaPresentacion informatica
Presentacion informatica
 
Boletim 02 tabela atualizada 19-08
Boletim 02  tabela atualizada 19-08Boletim 02  tabela atualizada 19-08
Boletim 02 tabela atualizada 19-08
 
Matmata
MatmataMatmata
Matmata
 
De ônibus pelo Rio de Janeiro
De ônibus pelo Rio de JaneiroDe ônibus pelo Rio de Janeiro
De ônibus pelo Rio de Janeiro
 
CUBO FINAL
CUBO FINALCUBO FINAL
CUBO FINAL
 

Semelhante a Aula2

Lecture 6 :: Gestão de Configuração de Software
Lecture 6 :: Gestão de Configuração de SoftwareLecture 6 :: Gestão de Configuração de Software
Lecture 6 :: Gestão de Configuração de SoftwareRogerio P C do Nascimento
 
Fundamentos itil portugues brasil br completo(1)
Fundamentos itil portugues brasil br completo(1)Fundamentos itil portugues brasil br completo(1)
Fundamentos itil portugues brasil br completo(1)Jose Rudy
 
Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de SoftwareWagner Zaparoli
 
Aula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfAula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfFChico2
 
CV - JCP Maio 2015_Brasil_atz
CV - JCP Maio 2015_Brasil_atzCV - JCP Maio 2015_Brasil_atz
CV - JCP Maio 2015_Brasil_atzKarlos Paiva
 
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 SWRogerio P C do Nascimento
 
Senac QSS - 1) Intro
Senac QSS - 1) IntroSenac QSS - 1) Intro
Senac QSS - 1) Introlcbj
 
GCS - Aula 04 - GCS x CMM
GCS - Aula 04 - GCS x CMMGCS - Aula 04 - GCS x CMM
GCS - Aula 04 - GCS x CMMMisael Santos
 
Á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 SoftwareElaine Cecília Gatto
 
Gerenciamento da configuração
Gerenciamento da configuraçãoGerenciamento da configuração
Gerenciamento da configuraçãoSilas Serpa
 
CMM – Capability Maturity Model
CMM – Capability Maturity Model CMM – Capability Maturity Model
CMM – Capability Maturity Model alef menezes
 

Semelhante a Aula2 (20)

Lecture 6 :: Gestão de Configuração de Software
Lecture 6 :: Gestão de Configuração de SoftwareLecture 6 :: Gestão de Configuração de Software
Lecture 6 :: Gestão de Configuração de Software
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Fundamentos ITIL Português Completo
Fundamentos ITIL Português CompletoFundamentos ITIL Português Completo
Fundamentos ITIL Português Completo
 
Fundamentos itil portugues brasil br completo(1)
Fundamentos itil portugues brasil br completo(1)Fundamentos itil portugues brasil br completo(1)
Fundamentos itil portugues brasil br completo(1)
 
Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de Software
 
ALM focado em resultados
ALM focado em resultadosALM focado em resultados
ALM focado em resultados
 
Aula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfAula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdf
 
CV - JCP Maio 2015_Brasil_atz
CV - JCP Maio 2015_Brasil_atzCV - JCP Maio 2015_Brasil_atz
CV - JCP Maio 2015_Brasil_atz
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
29110 rioinfo painel_i v1
29110 rioinfo painel_i v129110 rioinfo painel_i v1
29110 rioinfo painel_i v1
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
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
 
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
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Senac QSS - 1) Intro
Senac QSS - 1) IntroSenac QSS - 1) Intro
Senac QSS - 1) Intro
 
GCS - Aula 04 - GCS x CMM
GCS - Aula 04 - GCS x CMMGCS - Aula 04 - GCS x CMM
GCS - Aula 04 - GCS x CMM
 
Á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
 
Gerenciamento da configuração
Gerenciamento da configuraçãoGerenciamento da configuração
Gerenciamento da configuração
 
CMM – Capability Maturity Model
CMM – Capability Maturity Model CMM – Capability Maturity Model
CMM – Capability Maturity Model
 

Aula2

  • 1. Gerência de Configuração: Introdução Leonardo Gresta Paulino Murta leomurta@ic.uff.br
  • 2. Histórico • Anos 50 – GC para produção de aviões de guerra e naves espaciais • Anos 60 e 70 – Surgimento de GCS (S = Software) – Foco ainda em aplicações militares e aeroespaciais • Anos 80 e 90 – Mudança de foco (MIL  EIA, IEEE, ISO, etc.) – Surgimento das primeiras normas internacionais – Assimilação por organizações não militares Leonardo Murta Gerência de Configuração: Introdução 2
  • 3. Principais normas • AFSCM 375-1 (1962) – Somente hardware é considerado • MIL Std 483 (1971) – Software passa a ser considerado • DOD Std 2167A (1985) – Consolidação das normas existentes • MIL Std 973 (1992, 1993, 1995) – Usada amplamente em contratos governamentais – Descontinuada em 2000 • EIA 649 (1998, 2004) – Substitui a MIL Std 973 – Compatível com ISO 12207 Leonardo Murta Gerência de Configuração: Introdução 3
  • 4. Principais normas • IEEE Std 828 (1983, 1990, 1998, 2005) – Trata da confecção de planos de GCS – Principal referência em ambientes não militares • IEEE Std 1042 (1987) – Consiste em um guia para aplicação da IEEE Std 828 – É considerada uma das normas internacionais mais completas sobre GCS – Reafirmada em 1993 – Descontinuada em 2000 • ISO 10007 (1995, 2003) – Baseada na MIL Std 973 – Visa satisfazer ISO 9000 – Será possivelmente substituída pela EIA 649 Leonardo Murta Gerência de Configuração: Introdução 4
  • 5. Principais normas • ISO 12207 – Processo de GC baseado em • IEEE Std 828 • IEEE Std 1042 • ISO 10007 • CMMI – Área de processo nível 2 • MPS.BR – Processo nível F • ISO/IEC TR 15846 (1998) – Relatório técnico (não normativo) Leonardo Murta Gerência de Configuração: Introdução 5
  • 6. Principais livros • “Software Configuration Management Handbook” – Alexis Leon (2004) • “Software Configuration Management” – Jessica Keyes (2004) • “Configuration Management Principles and Practice” – Anne Hass (2002) • “Software Configuration Management Patterns: Effective Teamwork, Practical Integration” – Stephen Berczuk e Brad Appleton (2002) Leonardo Murta Gerência de Configuração: Introdução 6
  • 7. Principais artigos • “Concepts in Configuration Management Systems” – Susan Dart, SCM (1991) • “Software Configuration Management: A Roadmap” – Jacky Estublier, ICSE – Future of SE Treck (2000) • “Impact of Software Engineering Research on the Practice of Software Configuration Management” – J. Estublier, D. Leblang, A. van der Hoek, R. Conradi, G. Clemm, W. Tichy, D. Wiborg-weber, IEEE TOSEM (2005) • “Version Models for Software Configuration Management” – R. Conradi e B. Westfechtel, ACM Comp. Surveys, 30, 2 (1998) Leonardo Murta Gerência de Configuração: Introdução 7
  • 8. Principais referências • http://www.cmcrossroads.com – Principal comunidade de GCS na web • http://www.cmcrossroads.com/yp – Páginas amarelas (livros, ferramentas, treinamento, etc) • http://www.cmcrossroads.com/jobs – Canal para empresas buscarem por funcionários de GCS • http://www.bradapp.net/acme – Padrões de GCS • http://www.cmbok.com – Body of Knowledge de GCS • http://www.cmwiki.com – Wiki sobre GCS Leonardo Murta Gerência de Configuração: Introdução 8
  • 9. Principais referências • http://www.ucmcentral.com – Documentação introdutória – Métricas para GCS – Formulários (templates) para GCS • http://www.icmhq.com – Instituto de Gerência de Configuração – Não articula com as demais iniciativas – Cria suas certificações (CMII) • http://www.cmcommunity.com – Comunidade voltada para CMII • http://dblp.uni-trier.de/db/conf/scm – Principal conferência de GCS – Existe desde 1988 – Conta com contribuições da academia e indústria Leonardo Murta Gerência de Configuração: Introdução 9
  • 10. Contra-definição • GC não é (somente) controle de versões! • GC não é configuração de conteúdo/dados (ver PDM)! • GC não é backup! • GC não é simples! • GC não é impossível! • GC não é modismo! • GC não é opcional! • GC não é uma panacéia! • GC não evita que ocorram modificações! • GC não termina nela mesma! • GC não é somente para sistemas grandes e complexos! • GC não é somente para grandes equipes geograficamente distribuídas! Leonardo Murta Gerência de Configuração: Introdução 10
  • 11. Definição • Wayne Babish – A arte de coordenar o desenvolvimento de software para minimizar confusão é chamada GC. O objetivo é maximizar a produtividade e minimizar os erros • Susan Dart – GCS é uma disciplina para o controle da evolução de sistemas de software • Steve McConnell – GC é a prática de lidar com modificações de forma sistemática, permitindo que o sistema tenha a sua integridade mantida com o passar do tempo • Walter Tichy – GC é a disciplina para o controle e evolução de sistemas complexos Leonardo Murta Gerência de Configuração: Introdução 11
  • 12. Definição • Jacky Estublier – GC é a disciplina que nos permite evoluir produtos de software de forma controlada, e, desta forma, contribui na satisfação de restrições de qualidade e de tempo • IEEE Std 610 – GC é uma disciplina que aplica procedimentos técnicos e administrativos para identificar e documentar as características físicas e funcionais de um item de configuração, controlar as alterações nessas características, armazenar e relatar o processamento das modificações e o estágio da implementação e verificar a compatibilidade com os requisitos especificados Leonardo Murta Gerência de Configuração: Introdução 12
  • 13. Definição • ISO 10007 – Atividades técnicas e organizacionais compreendendo: identificação de configuração; controle de configuração; contabilização da situação de configuração; auditoria de configuração • ISO 12207 – O processo de gerência de configuração é um processo de aplicação de procedimentos administrativos e técnicos, por todo o ciclo de vida de software, destinado a: identificar e definir os itens de software em um sistema, e estabelecer suas baselines; controlar as modificações e liberações dos itens; registrar e apresentar a situação dos itens e dos pedidos de modificação; garantir a completeza, a consistência e a correção dos itens; e controlar o armazenamento, a manipulação e a distribuição dos itens Leonardo Murta Gerência de Configuração: Introdução 13
  • 14. Definição • CMMI – O propósito de GC é estabelecer e manter a integridade dos produtos de trabalho utilizando identificação da configuração, controle da configuração, contabilização da situação da configuração e auditoria da configuração • MPS.BR – O propósito do processo de Gerência de Configuração é estabelecer e manter a integridade de todos os produtos de trabalho de um processo ou projeto e disponibilizá-los a todos os envolvidos Leonardo Murta Gerência de Configuração: Introdução 14
  • 15. Foco de atuação • Controle sobre a evolução de produtos de trabalho – Produtos de trabalho do projeto – Produtos de trabalho dos processos • Fonte de informações para outros processos – Ex. 1: dados históricos para medição e análise – Ex. 2: laudo de defeitos para análise de causa • Garantia de que foi feito o que deveria ter sido feito Leonardo Murta Gerência de Configuração: Introdução 15
  • 16. Perspectivas Espaço de trabalho: Ambiente de Desenvolvimento de Software Processos: Identificação Controle Contabilização Avaliação Liberação Sistemas: Controle de Modificações Controle de Versões Gerenciamento de Construção Perspectiva de Perspectiva Perspectiva de integração gerencial desenvolvimento Leonardo Murta Gerência de Configuração: Introdução 16
  • 17. Cenário atual • Projetos cada vez mais complexos em relação ao tamanho, sofisticação e tecnologias envolvidas • Grandes equipes geograficamente dispersas • Requisitos de execução do sistema em diferentes plataformas de hardware e software • Suporte a diferentes línguas e culturas • Sabores específicos para equacionar custo/benefício (eg.: Desktop, Standard, Professional e Enterprise) Leonardo Murta Gerência de Configuração: Introdução 17
  • 18. Cenário atual • Crescente velocidade da comunicação entre clientes sobre a ocorrência de defeitos • Diminuição dos tempos de desenvolvimento e de correção de defeitos para preservar a reputação da empresa • Necessidade de lidar com o inevitável caos relacionado à atividade criativa, buscando métodos e ferramentas para maximizar a produtividade e minimizar os erros Leonardo Murta Gerência de Configuração: Introdução 18
  • 19. Problemas pela falta de GC • Perda de código-fonte • Bibliotecas inesperadamente não funcionam mais • Impossibilidade de determinar o que aconteceu com um programa, ou parte dele • Impossibilidade de determinar quem, porque e quando foram efetuadas modificações Leonardo Murta Gerência de Configuração: Introdução 19
  • 20. Problemas pela falta de GC • Requisitos já documentados desaparecem • Requisitos implementados desaparecem do código • O programa em execução e o seu código fonte estão em diferentes versões Leonardo Murta Gerência de Configuração: Introdução 20
  • 21. Evolução das técnicas de GC • Sistemas pequenos, desenvolvidos por somente uma pessoa são menos dependentes de GC • O crescimento dos sistemas implica no aumento da equipe, o que acarreta problemas relacionados com comunicação [Leon, 2000] Communications breakdown problem Leonardo Murta Gerência de Configuração: Introdução 21
  • 22. Evolução das técnicas de GC • Artefatos de software são compartilhados por diversos desenvolvedores • Modificações efetuadas por outros desenvolvedores não são comunicadas a todos os interessados nos artefatos, gerando incompatibilidades de versões C1 C2 C3 C4 C5 [Leon, 2000] Shared data problem Leonardo Murta Gerência de Configuração: Introdução 22
  • 23. Evolução das técnicas de GC • Solução inicial consiste em criar várias cópias do mesmo artefato compartilhado • Falta de controle sobre as cópias existentes • Retrabalho nas diferentes cópias para implementar os mesmos requisitos e corrigir os mesmos defeitos C1 C2 C3 C3’ C4 C5 [Leon, 2000] Multiple maintenace problem Leonardo Murta Gerência de Configuração: Introdução 23
  • 24. Evolução das técnicas de GC • Criação de bibliotecas centralizadas; • Retorno ao problema de artefatos de compartilhados • Perda de trabalho devido a falta de exclusão mútua nos acessos às bibliotecas centralizadas C3 C1 C2 C3’ C3’’ C4 C5 [Leon, 2000] Simultaneous update problem Leonardo Murta Gerência de Configuração: Introdução 24
  • 25. Evolução das técnicas de GC • Criação de mecanismos de controle sobre as bibliotecas centralizadas • Definição dos atuais repositórios compartilhados • Aplicação, em conjunto, de métodos e ferramentas que suportam o processo de Gerência de Configuração • Ganho de produtividade devido ao aumento da disciplina e diminuição do retrabalho e dos defeitos Leonardo Murta Gerência de Configuração: Introdução 25
  • 26. Benefícios com o uso de GC • Aumento da Memória Organizacional da empresa • Desenvolvimento dependente do processo, e não de pessoas • Controle sobre o desenvolvimento • Rastreabilidade entre os diferentes níveis de abstração de um mesmo componente (requisito, análise, projeto, código, programa executável) • Documentação sobre a evolução do sistema Leonardo Murta Gerência de Configuração: Introdução 26
  • 27. Gerência de Configuração: Introdução Leonardo Gresta Paulino Murta leomurta@ic.uff.br