UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE...

176
INPE-15243-TDI/1330 UM PROCESSO DE GERENCIAMENTO DE CONFIGURA ¸ C ˜ AO DE SOFTWARE COM REPOSIT ´ ORIO DE ARTEFATOS DEFINIDOS DINAMICAMENTE Roberta Panzera Tavares Disserta¸c˜ ao de Mestrado do Curso de P´ os-Gradua¸ aoemComputa¸c˜aoAplicada, orientada pelos Drs. Nilson Sant’Anna e Solon Venˆ ancio de Carvalho, aprovada em 6 de novembro de 2007. O original deste documento est´ a dispon´ ıvel em: <http://urlib.net/sid.inpe.br/mtc-m17@80/2008/02.12.12.07> INPE ao Jos´ e dos Campos 2007

Transcript of UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE...

Page 1: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

INPE-15243-TDI/1330

UM PROCESSO DE GERENCIAMENTO DE

CONFIGURACAO DE SOFTWARE COM REPOSITORIO DE

ARTEFATOS DEFINIDOS DINAMICAMENTE

Roberta Panzera Tavares

Dissertacao de Mestrado do Curso de Pos-Graduacao em Computacao Aplicada,

orientada pelos Drs. Nilson Sant’Anna e Solon Venancio de Carvalho, aprovada em 6 de

novembro de 2007.

O original deste documento esta disponıvel em:

<http://urlib.net/sid.inpe.br/mtc-m17@80/2008/02.12.12.07>

INPE

Sao Jose dos Campos

2007

Page 2: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

PUBLICADO POR:

Instituto Nacional de Pesquisas Espaciais - INPE

Gabinete do Diretor (GB)

Servico de Informacao e Documentacao (SID)

Caixa Postal 515 - CEP 12.245-970

Sao Jose dos Campos - SP - Brasil

Tel.:(012) 3945-6911/6923

Fax: (012) 3945-6919

E-mail: [email protected]

CONSELHO DE EDITORACAO:

Presidente:

Dr. Gerald Jean Francis Banon - Coordenacao Observacao da Terra (OBT)

Membros:

Dra Maria do Carmo de Andrade Nono - Conselho de Pos-Graduacao

Dr. Haroldo Fraga de Campos Velho - Centro de Tecnologias Especiais (CTE)

Dra Inez Staciarini Batista - Coordenacao Ciencias Espaciais e Atmosfericas (CEA)

Marciana Leite Ribeiro - Servico de Informacao e Documentacao (SID)

Dr. Ralf Gielow - Centro de Previsao de Tempo e Estudos Climaticos (CPT)

Dr. Wilson Yamaguti - Coordenacao Engenharia e Tecnologia Espacial (ETE)

BIBLIOTECA DIGITAL:

Dr. Gerald Jean Francis Banon - Coordenacao de Observacao da Terra (OBT)

Marciana Leite Ribeiro - Servico de Informacao e Documentacao (SID)

Jefferson Andrade Ancelmo - Servico de Informacao e Documentacao (SID)

Simone A. Del-Ducca Barbedo - Servico de Informacao e Documentacao (SID)

REVISAO E NORMALIZACAO DOCUMENTARIA:

Marciana Leite Ribeiro - Servico de Informacao e Documentacao (SID)

Marilucia Santos Melo Cid - Servico de Informacao e Documentacao (SID)

Yolanda Ribeiro da Silva e Souza - Servico de Informacao e Documentacao (SID)

EDITORACAO ELETRONICA:

Viveca Sant´Ana Lemos - Servico de Informacao e Documentacao (SID)

Page 3: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

INPE-15243-TDI/1330

UM PROCESSO DE GERENCIAMENTO DE

CONFIGURACAO DE SOFTWARE COM REPOSITORIO DE

ARTEFATOS DEFINIDOS DINAMICAMENTE

Roberta Panzera Tavares

Dissertacao de Mestrado do Curso de Pos-Graduacao em Computacao Aplicada,

orientada pelos Drs. Nilson Sant’Anna e Solon Venancio de Carvalho, aprovada em 6 de

novembro de 2007.

O original deste documento esta disponıvel em:

<http://urlib.net/sid.inpe.br/mtc-m17@80/2008/02.12.12.07>

INPE

Sao Jose dos Campos

2007

Page 4: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

Dados Internacionais de Catalogacao na Publicacao (CIP)

T197u Tavares, Roberta Panzera.Um processo de gerenciamento de configuracao de soft-

ware com repositorio de artefatos definidos dinamicamente/Roberta Panzera Tavares. – Sao Jose dos Campos: INPE,2007.

174p. ; (INPE-15243-TDI/1330)

1. Gerencia de configuracao de software. 2. Itens de con-figuracao. 3. Repositorio de artefatos. 4. Engenharia de soft-ware. 5. Modelos de objetos dinamicos. I. Tıtulo.

CDU 681.3.06

Copyright c© 2007 do MCT/INPE. Nenhuma parte desta publicacao pode ser reprodu-

zida, armazenada em um sistema de recuperacao, ou transmitida sob qualquer forma ou

por qualquer meio, eletronico, mecanico, fotografico, microfılmico, reprografico ou outros,

sem a permissao escrita da Editora, com excecao de qualquer material fornecido especifi-

camente no proposito de ser entrado e executado num sistema computacional, para o uso

exclusivo do leitor da obra.

Copyright c© 2007 by MCT/INPE. No part of this publication may be reproduced, stored

in a retrieval system, or transmitted in any form or by any means, eletronic, mechanical,

photocopying, microfilming, recording or otherwise, without written permission from the

Publisher, with the exception of any material supplied specifically for the purpose of being

entered and executed on a computer system, for exclusive use of the reader of the work.

Page 5: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 6: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 7: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

“Viver é nascer lentamente”.

ANTONIO DE SAINT-EXUPÉRY

Page 8: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 9: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

A meus pais, PEDRO JOSÉ TAVARES e

ALTIVA MARÍLIA PANZERA TAVARES.

Page 10: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 11: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

AGRADECIMENTOS

Agradeço primeiramente a Deus por conduzir minha vida sempre para o melhor caminho e nunca me deixar desistir diante dos obstáculos encontrados. Agradeço a todas as pessoas que me ajudaram a vencer mais esta etapa da vida. Ao Instituto Nacional de Pesquisas Espaciais – INPE e ao Laboratório de Computação Aplicada – LAC, pela oportunidade de estudos e utilização de suas instalações. Aos professores do INPE pelo conhecimento compartilhado. Ao meu orientador Prof. Dr.Nilson Sant`Anna, pelo conhecimento passado, pela orientação e apoio na realização deste trabalho e por todas oportunidades a mim oferecidas. Ao professor Prof. Dr. Tatuo Nakaninshi, pela colaboração, sugestões e apoio na realização deste trabalho. Não deixando de agradecer a oportunidade e confiança em meus primeiros passos como professora. Ao professor Dr. Solon Venâncio de Carvalho, pelo apoio, colaboração e conhecimento a mim passado, dentre muitas dicas de melhoria por meio da co-orientação neste trabalho. A todos meus amigos e colegas me apoiaram e entenderam minha ausência. Aos amigos inpeanos que sempre encontram um tempo em meio as suas atividades para fazer com que hoje eu tenha lembranças fantásticas. A meus pais, grandes responsáveis por tudo que sou hoje.

Page 12: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 13: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

RESUMO

Uma das constantes preocupações no desenvolvimento de software são o armazenamento e controle de informação gerada ao longo do projeto. Armazenar artefatos de software e gerenciá-los ao longo do projeto é um dos grandes objetivos da Gerência de Configuração de Software (GCS), processo previsto nas normas e modelos de maturidade de software. Entende-se por Artefato toda e qualquer informação produzida, consumida ou modificada por um processo, cita-se como exemplos: um pedaço de informação, um documento, um modelo, um código fonte, dentre outros. A base de todo o processo de GCS está em um repositório central onde todos os artefatos devem ser sistematicamente controlados. Controlar artefatos significa manter meta-informação e versionamento, controlar acesso de usuários concorrentes e gerenciar modificações que forem realizadas ao longo do desenvolvimento. Construir um repositório de artefatos exige conhecer características dos artefatos que serão produzidos que podem ser diferentes dependendo de cada projeto em específico. A abordagem de repositório de artefatos clássica estabelece um modelo padrão e inflexível para a definição dos artefatos. Uma abordagem que prevê alta flexibilidade e dinamismo é a utilização de modelos de objetos dinâmicos. Este trabalho apresenta uma forma de aplicação de modelos de objetos dinâmicos para a construção de um repositório de artefatos que proporciona alta flexibilidade e dinamismo na determinação das características de maneira que representem de maneira precisa os artefatos dentro de cada necessidade específica. Como estudo de caso é apresentado um processo de GCS baseado nas práticas definidas no modelo de maturidade Capability Model Maturity Integration (CMMI), que faz uso do repositório de artefatos implementado.

Page 14: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 15: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

A SOFTWARE CONFIGURATION MANAGEMENT PROCESS WITH ARTIFACT’S REPOSITORY DEFINED DYNAMICALLY

ABSTRACT

Store and control of project’s information have been a permanent important issue in software development. Store and management of software artifacts are the main goals in the Software Configuration Management (SCM) process. Artifacts can be defined as any result produced by a process. These artifacts can include files, documents, parts of the product, services, processes, specifications, and invoices. The core of the SCM process is a central repository where all artifacts may be formally controlled. The artifact control involves persisting meta-information and version, access control of concurrent users and management changes along the project. Building an artifact repository involves much knowledge about the artifact’s features that can be produced during the project. The classical approach of artifact repository determines an inflexible pattern to artifacts definition. The dynamic object model approach can be used to provide dynamism and flexibility. This dissertation proposes the dynamic object model approach to build a repository to provide high flexibility and dynamism in the definition of specific features to determine the more precise way in the necessity of the project. As a case study presented a SCM process is presented based on the Capability Model Maturity Integration (CMMI) maturity model practices using the dynamic repository developed.

Page 16: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 17: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

SUMÁRIO

Pág.

LISTA DE FIGURAS.......................................................................................................

LISTA DE TABELAS......................................................................................................

CAPÍTULO 1 .............................................................................................................. 245

INTRODUÇÃO ............................................................................................................ 25 1.1 O Problema............................................................................................................... 26 1.2 Metodologia de Pesquisa .......................................................................................... 27 1.3 Trabalhos Relacionados............................................................................................ 27 1.4 Objetivos................................................................................................................... 30 1.5 Estrutura do Trabalho ............................................................................................... 32

CAPÍTULO 2 ................................................................................................................ 33

PROCESSOS DE SOFTWARE E AUTOMAÇÃO .................................................. 33 2.1 Processos de Software .............................................................................................. 33 2.2 Elementos básicos de um processo de software ....................................................... 34 2.3 Automação de processos .......................................................................................... 36 2.4 O Ambiente de Engenharia de Software e-WebProject® ........................................ 38 2.5 Considerações Sobre Processos de Software e Automação ..................................... 39

CAPÍTULO 3 ................................................................................................................ 41

PROCESSO DE GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE.............. 41 3.1 Processo de Gerência de Configuração de Software ................................................ 42 3.1.1 Conceitos básicos .................................................................................................. 43 3.2 Modelo check in/check out ....................................................................................... 44 3.2.1 Operações de Acesso............................................................................................. 44 3.3 Versão e Configuração de Artefatos......................................................................... 46 3.3.1 Desenvolvimento Paralelo ou Branch ................................................................... 47 3.3.2 Junções ou Merge .................................................................................................. 48 3.3.3 Agregações ou Configurações ............................................................................... 49 3.4 Atividades do processo de GCS ............................................................................... 50 3.4.1 SG1 – Estabelecer Baselines ................................................................................. 51 3.4.2 SG2 – Rastrear e Controlar Mudanças .................................................................. 52 3.4.3 SG3 – Estabelecer a Integridade............................................................................ 52 3.5 Ferramentas de apoio ao processo de GCS .............................................................. 53 3.6 Considerações Sobre o Processo de GCS e Ferramentas ......................................... 57

CAPÍTULO 4 ................................................................................................................ 59

OBJETOS DINÂMICOS (DYNAMIC OBJECT MODEL-DOM) ......................... 59 4.1 Padrões TypeObject Pattern e Property Pattern ....................................................... 59 4.1.1 Arquitetura TypeSquare......................................................................................... 61 4.2 Considerações sobre DOM....................................................................................... 63

Page 18: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

CAPÍTULO 5 ................................................................................................................ 65

UM MODELO PARA REPOSITÓRIO DINÂMICO .............................................. 65 5.1 Artefatos dinâmicos.................................................................................................. 65 5.1.1 Definição da Classe do Artefato............................................................................ 66 5.1.2 Definição do Artefato ............................................................................................ 66

CAPÍTULO 6 ................................................................................................................ 73

UM PROCESSO DE GERÊNCIA DE CONFIGURAÇÃO UTILIZANDO O REPOSITÓRIO DINÂMICO DE ARTEFATOS ..................................................... 73 6.1 Papeis Definidos....................................................................................................... 73 6.2 Fluxo de Trabalho..................................................................................................... 80 6.2.1 Fluxo de Trabalho Definir Classe de Artefato ...................................................... 81 6.2.2 Fluxo de Trabalho Definir Itens de Configuração................................................. 82 6.2.3 Fluxo de Trabalho Rastrear e Controlar Mudanças............................................... 84 6.2.4 Fluxo de Trabalho Definir Template da Configuração.......................................... 87 6.2.5 Fluxo de Trabalho Propor um Novo IC................................................................. 88 6.3 Ciclo de Vida de Artefatos e Versões....................................................................... 90 6.4 Ciclo de Vida de um Artefato................................................................................... 91 6.5 Ciclo de vida das Versões do Artefato ..................................................................... 94 6.6 Visibilidade e Versionamento de Artefatos.............................................................. 97 6.6.1 Visibilidade dos Artefatos ..................................................................................... 97 6.6.2 Determinando o Tipo de Versionamento .............................................................. 97

CAPÍTULO 7 ................................................................................................................ 99

ESTUDO DE CASO ..................................................................................................... 99 7.1 Atividade de Definição de Classe Artefato. ............................................................. 99 7.2 Atividade de Criação de Classe Artefato................................................................ 100 7.3 Atividade para definição do IC............................................................................... 101 7.4 Atividade para Permitir a Criação .......................................................................... 103 7.5 Atividade para Criação de Versão do IC................................................................ 103 7.6 Atividade para Avaliar IC....................................................................................... 105 7.7 Atividade para Fazer Check-in ............................................................................... 106 7.8 Atividade para Visualização das Versões no Repositório ...................................... 107 7.9 Atividade de Proposta de Mudança ........................................................................ 108 7.10 Atividade de Análise de Proposta de Mudança .................................................... 109 7.11 Atividade de Permissão de Check-out .................................................................. 111

CAPÍTULO 8 .............................................................................................................. 113

CONCLUSÕES........................................................................................................... 113 8.1 Contribuições.......................................................................................................... 113 8.2 Trabalhos Futuros ................................................................................................... 120

REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................... 121

APÊNDICE A DOCUMENTAÇÃO DOS CASOS DE USO DO SISTEMA ....... 125 A1 Administrador da Configuração ............................................................................. 125 A1.1 Caso de Uso Manter Categoria de Template de Configurações .......................... 125

Page 19: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

A1.2 Caso de Uso Manter Grau de Relacionamento.................................................... 127 A1.3 Caso de Uso Manter Tipo de Versionamento...................................................... 128 A1.4 Caso de Uso Manter Prefixo................................................................................ 130 A2 Ator Engenheiro de Artefatos................................................................................. 131 A2.1 Caso de Uso Manter Artefato Padrão .................................................................. 132 A2.2 Caso de Uso Manter Classe de Artefato .............................................................. 134 A2.3 Caso de Uso Definir Atributos da Classe Artefato.............................................. 135 A2.4 Caso de Uso Definir Composição da Classe Artefato ......................................... 136 A2.5 Definir Template de Configuração ...................................................................... 137 A2.6 Selecionar Artefatos ............................................................................................ 139 A3 Ator Engenheiro da Configuração .......................................................................... 139 A3.1 Caso de Uso Manter Configuração...................................................................... 140 A3.2 Manter Versão da Configuração.......................................................................... 142 A3.3 Selecionar I.C. ..................................................................................................... 142 A3.4 Caso de Uso Manter Releases.............................................................................. 143 A3.5 Caso de Uso Manter Lista de Distribuição.......................................................... 145 A3.6 Caso de Uso Selecionar Clientes ......................................................................... 146 A4 Ator Gerente da Configuração................................................................................ 147 A4.1 Caso de Uso Visualizar Check-out’s autorizados................................................ 148 A4.2 Caso de Uso Visualizar Evolução dos Artefatos ................................................. 149 A4.3 Caso de Uso Manter Repositório......................................................................... 149 A4.4 Caso de Uso Selecionar Baseline do Projeto....................................................... 150 A4.5 Caso de Uso Definir IC do Projeto ...................................................................... 150 A4.6 Caso de Uso Manter Versões dos Artefatos ........................................................ 151 A4.7 Caso de Uso Manter Visibilidade ........................................................................ 152 A4.8 Caso de Uso Manter Dependência....................................................................... 152 A4.9 Caso de Uso Visualizar Histórico de Operação................................................... 153 A4.10 Caso de Uso Manter Visibilidade ...................................................................... 153 A4.11 Caso de Uso Realizar Lock/UnLock .................................................................. 154 A4.12 Caso de Uso Permitir Check-out ....................................................................... 154 A4.13 Caso de Uso Analisar Proposta de Artefato ...................................................... 155 A4.14 Caso de Uso Visualizar Artefatos Propostos ..................................................... 155 A5 Ator Engenheiro de Mudanças ............................................................................... 156 A5.1 Caso de Uso Realizar Check-in ........................................................................... 157 A5.2 Caso de Uso Analisar Proposta de Mudança....................................................... 158 A6 Ator Desenvolvedor................................................................................................ 159 A6.1 Caso de Uso Propor Artefato............................................................................... 159 A6.2 Caso de Uso Manter Proposta de Mudança......................................................... 160 A6.3 Caso de Uso Visualizar Check-outs Permitidos .................................................. 160 A6.4 Caso de Uso Visualizar Artefatos para Modificação........................................... 161 A6.5 Caso de Uso Visualizar Repositório de Artefatos ............................................... 161 A7 Ator Gerente de Acompanhamento de Projeto (GCM) .......................................... 162 A7.1 Caso de Uso Permitir Criação ............................................................................. 163 A8 Ator Engenheiro da Qualidade (GCM)................................................................... 163 A8.1 Caso de Uso Aprovar Artefatos........................................................................... 164

APÊNDICE B MODELO RELACIONAL DO SISTEMA .................................... 165

Page 20: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 21: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

LISTA DE FIGURAS

2.1 Elementos básicos de um processo de software FONTE: Acuñ (2001)................... 36 2.2 Componentes e camada conceitual do ambiente. FONTE: Sant´Anna (2000) ........ 39 3.1 Modelo check-in/check-out....................................................................................... 45 3.2 Controle de Versão. FONTE: Abdala (2003)........................................................... 47 3.3 Desenvolvimento paralelo. FONTE: Mackay (1995)............................................... 48 4.1 TypeObject Pattern, exemplo FONTE: Adaptada de Yoder (2001). ....................... 60 4.2 Property Pattern, exemplo FONTE: Adaptada de Yoder (2001). ........................... 61 4.3 Arquitetura TypeSquar FONTE: Adaptada de Yoder (2001).................................. 61 4.4 Modelagem convencional da classe Planeta............................................................. 62 5.1 Arquitetura de Definição do Artefato. ...................................................................... 68 5.2 Diagrama de objetos para a definição da estrutura dos artefatos. ............................ 69 5.3 Diagrama de Objetos definição do Artefato. ............................................................ 70 6.1 Casos de Uso do Papel Administrados da Configuração. ........................................ 74 6.2 Casos de Uso do Papel Engenheiro de Artefatos. .................................................... 75 6.3 Casos de Uso do Papel Engenheiro da Configuração............................................... 76 6.4 Casos de Uso do Papel Gerente da Configuração. ................................................... 77 6.5 Casos de Uso do Papel Engenheiro de Mudanças.................................................... 78 6.6 Casos de Uso do Papel Desenvolvedor. ................................................................... 79 6.7 Casos de Uso do Papel Gerente de Acompanhamento de Projeto. .......................... 80 6.8 Casos de Uso do Papel Engenheiro da Qualidade.................................................... 80 6.9 Fluxo de Trabalho Definir Classe Artefato. ............................................................. 81 6.10 Fluxo de Trabalho Definir Itens de Configuração.................................................. 82 6.11 Fluxo de Trabalho Rastrear e Controlar Mudanças................................................ 85 6.12 Fluxo de Trabalho Definir Template de Configuração........................................... 87 6.13 Fluxo de Trabalho Propor Novo IC........................................................................ 89 6.14 Diagrama de Estados do Ciclo de Vida do Artefato............................................... 92 6.15 Diagrama de Estados do Ciclo de Vida da Versão................................................. 95 7.1 Caso de Uso Definição de Classe Artefatos. ............................................................ 99 7.2 Formulário de Criação de Classe Artefato. ............................................................ 100 7.3 Interface de Acesso ao Repositório de Artefatos.................................................... 101 7.4 Formulário de Definição do IC para o Projeto. ...................................................... 102 7.5 Formulário para Permitir a Criação do IC. ............................................................. 103 7.6 Tela de Check-outs Permitidos do usuário. ............................................................ 103 7.7 Tela de Manipulação de Informações do IC........................................................... 104 7.8 Formulário de Avaliação do IC. ............................................................................. 105 7.9 Formulário de Check-in. ......................................................................................... 106 7.10 Tela de Visualização das versões dos IC.............................................................. 107 7.11 Formulário de Proposta de Alteração. .................................................................. 108 7.12 Interface Analisar Proposta de Mudança.............................................................. 109 7.13 Interface para Relatar a Análise da Proposta........................................................ 110 7.14 Interface de Permissão de Check-out.................................................................... 111 A.1 Casos de Uso do Administrador da Configuração................................................. 125

Page 22: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

A.2 Casos de Uso do Engenheiro de Artefatos. ........................................................... 132 A.3 Casos de Uso do Engenheiro da Configuração...................................................... 140 A.4 Caso de Uso Gerente da Configuração.................................................................. 148 A.5 Caso de Uso Engenheiro de Mudanças ................................................................. 157 A.6 Caso de Uso Desenvolvedor.................................................................................. 159 A.7 Caso de Uso Gerente de Acompanhamento de Projeto ......................................... 163 A.8 Caso de Uso Engenheiro da Qualidade ................................................................. 163 B.1 Modelo Relacional do Sistema – Parte 1 ............................................................... 165 B.2 Modelo Relacional do Sistema – Parte 2 ............................................................... 166 B.3 Modelo Relacional do Sistema – Parte 3 ............................................................... 167 B.4 Modelo Relacional do Sistema – Parte 4 ............................................................... 168 B.5 Modelo Relacional do Sistema – Parte 5 ............................................................... 169 B.6 Modelo Relacional do Sistema – Parte 6 ............................................................... 170 B.7 Modelo Relacional do Sistema – Parte 7 ............................................................... 171 B.8 Modelo Relacional do Sistema – Parte 8 ............................................................... 172 B.9 Modelo Relacional do Sistema – Parte 9 ............................................................... 173 B.10 Modelo Relacional do Sistema – Parte 10 ........................................................... 174

Page 23: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

LISTA DE TABELAS

3.1 – Objetivos e práticas do processo de GCS no CMMI............................................. 50 8.1 Comparação entre atividades do CMMI e suportadas no trabalho......................... 115

Page 24: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 25: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

LISTA DE SIGLAS E ABREVIATURAS

SP -Specific Practices – Práticas Específicas

SG -Specific Goals – Objetivos Específicos

RCS -Revision Control System – Sistema de Controle de Revisões

PSEE -Process centered Software Engineering Environment - Ambientes de Engenharia de Software Centrado em Processo

MPSBr -Melhoria de Processo do Software Brasileiro

ISO/IEC -International Organization for Standardization International Electro technical Commission

INPE -Instituto Nacional de Pesquisas Espaciais

IC -Item de Configuração

GCS -Gerência de Configuração de Software

DOM -Dynamic Object Model – Modelos de Objetos Dinâmicos

CVS -Concurrent Versions System – Sistema de Versões Concorrentes

CMMI -Capability Model Maturity Integration

CCC -Comitê de Controle de Configuração

CASE -Computer-Aided Software Engineering – Engenharia de Software Auxiliada por Computador

Page 26: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM
Page 27: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

25

CAPÍTULO 1

INTRODUÇÃO

Durante os últimos anos, o desenvolvimento de software vem se tornando uma tarefa

que necessita cada vez maior rigor devido ao aumento da complexidade e da exigência

de qualidade do software. O que antes poderia ser uma tarefa simples e com poucas

pessoas envolvidas, devido ao aumento da complexidade de desenvolvimento torna-se

necessário um maior controle e acompanhamento sistemático do que se produz de modo

a garantir o sucesso e a qualidade do produto (HUMPHREY,1988).

Ao longo de vários anos, a comunidade de desenvolvimento vem adotando modelos e

métodos de engenharia de Software visando alcançar qualidade, confiabilidade e

produtividade nos produtos desenvolvidos, como por exemplo, a gestão de qualidade e

gestão de configuração (SANT`ANNA,2000).

Os esforços feitos no intuito de desenvolver produtos de software com qualidade deram

origem a diversas normas e padrões de qualidade, nos quais são definidos processos

para organizar e controlar as atividades do desenvolvimento. Dentre as mais conhecidas

podemos citar International Organization for Standardization International

Electrotechnical Commission (ISO/IEC) com padrões 12207 e 15504

(ISO/IEC12207,1995; ISO/IEC 15504-2,1998), modelos de maturidade como

Capability Model Maturity Integration (CMMI,2002) e Melhoria de Processo do

Software Brasileiro (MPSBr)(SOFTEX,2005).

A adoção apenas de normas e das abordagens apresentadas acima, não garante a

eficiência do processo. A utilização de um ambiente que proporcione o trabalho

cooperativo e distribuído, a gestão integrada do conhecimento e dos eventos ocorridos

no projeto e a participação ativa de agentes autônomos computacionais poderão tornar

esses processos mais eficientes (SANT`ANNA,2000).

Page 28: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

26

Um dos processos definidos nas normas e modelos de maturidade é o processo de

Gerenciamento de Configuração que objetiva manter a integridade dos produtos

produzidos e consumidos ao longo do desenvolvimento do software (CMMI,2002). A

base de todo o processo de Gerenciamento da Configuração está em um repositório

central de artefatos onde estão todos os produtos que devem ser sistematicamente

controlados pelo processo. Neste trabalho chamaremos de artefatos os produtos

construídos a partir das atividades de um processo e chamaremos de modelo de artefato

a estrutura de um produto que define suas características.

1.1 O Problema

Assim como a maneira de organizar o processo é diferente em cada organização,

também são diferentes os produtos que são controlados em cada projeto, não sendo

possível prever um modelo padrão de artefatos a todos os projetos.

Atualmente existe uma grande diversidade de áreas de negócio (e.g. espacial, comercial,

acadêmica, médica, dentre outras) que automatizam suas atividades através de uma

ferramenta ou sistema de software, sendo cada sistema de software, com sua

complexidade e nível de qualidade exigindo diferentes processos de desenvolvimento e

diferentes modelos de artefatos. Desenvolver software para cada uma dessas diferentes

situações implica em trabalhar com projetos diferentes que manipulam informações

diferentes de acordo com cada caso em questão. Todas as informações manipuladas em

um projeto de software precisam ser armazenadas e controladas ao longo do

desenvolvimento bem como suas alterações através de um processo de gerenciamento

de configurações.

Embora os conceitos da GCS sejam bastante maduros e diversas ferramentas já tenham

sido desenvolvidas para suportar suas atividades, em sua maioria as ferramentas

convencionais tem seu objetivo focado no controle de códigos-fonte, sendo que um

sistema de arquivos é suficiente para representar os artefatos a serem controlados.

Embora essa abordagem seja suficiente para controlar mudanças em códigos-fonte não é

tão representativa para abranger as diversidades de informações entre artefatos.

Page 29: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

27

Outro problema encontrado é a situação onde frequentemente não existe uma definição

clara e prévia dos artefatos que serão controlados pelo repositório, sendo estes possíveis

de serem identificados apenas no decorrer do projeto. Neste caso as características

armazenadas no repositório para o novo artefato deveriam ser determinadas no

momento de sua descoberta.

1.2 Metodologia de Pesquisa

Uma das maneiras para resolver estes problemas é manter um repositório de artefatos

dinâmico onde a estrutura de armazenamento de um artefato pode ser definida em

tempo de execução para um determinado projeto e/ou organização.

Uma tecnologia que nos permite construir e modificar objetos em tempo de execução é

o DOM (Dynamic Object Model ou Modelagem Dinâmica de Objetos). Isto inclui

adicionar novos tipos, modificar os já existentes e manter os relacionamentos entre eles

(RIEHLE, 2000).

Como referência para o processo de Gerência de Configuração de Software foi utilizado

o modelo de maturidade CMMI e as atividades (práticas e objetivos) definidas para o

processo.

Para o desenvolvimento da ferramenta de apoio ao processo foi estudada e

implementada a arquitetura de desenvolvimento em 3 camadas para aplicações WEB

com Java, Servlet e Java Server Pages (JSP).

1.3 Trabalhos Relacionados

Podem-se citar como trabalhos relacionados ao tema desta dissertação estudos

realizados no INPE na área de controle de configuração. Segundo o artigo de Cunha e

Nakanishi (1993) para manter um controle mais eficiente dos elementos do projeto fez-

se necessário estabelecer além do repositório de produtos um repositório de

características de produtos. Entende-se como repositório de produtos o local onde se

armazena o produto propriamente dito (i.e. programas, sub-rotinas, dentre outras) e o

repositório de características (i.e. autor, revisor, subsistema), de partes de produtos (i.e.

Page 30: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

28

variáveis globais, arquivos include, parâmetros de rotinas) e de relacionamentos desses

produtos (parte_de, referência, composição).

As principais vantagens deste modelo segundo os autores é proporcionar um controle

mais rígido e de nível de granularidade mais refinado dos produtos do projeto

necessários para se obter software de alto nível de qualidade.

O nível de granularidade mais refinado se dá pelo fato de que cada elemento pode ser

controlado em seu formato mais especifico, ou seja, ao invés de controlar um programa

ou um subsistema como um todo (nível muito alto de granularidade), pode-se chegar ao

controle de partes de produtos (nível de granularidade mais baixo) e fazer o

relacionamento entre eles. Dessa forma, um conjunto de partes e de características pode

formar uma sub-rotina, um conjunto de sub-rotinas pode formar um programa e um

conjunto de programas pode formar um sistema.

O controle mais rígido é garantido pelo modelo pelo fato de possibilitar que a cada

alteração a tarefa de analise de impacto identifique com mais precisão quais elementos

serão afetados. Essa informação é obtida através dos relacionamentos e de partes

descritos de cada elemento (i.e. um programa armazenado poderia ter informações de

quais bibliotecas ou quais sub-rotinas estaria usando, ou até mesmo os parâmetros de

entrada e saída).

Outro aspecto vantajoso deste modelo e não menos importante é poder gerar relatórios

das informações sobre os elementos controlados, capas de documentos, fichas de

identificação, dentre outros formulários com mais facilidade e confiabilidade.

Uma limitação observada neste trabalho é a falta de dinamismo do modelo uma vez que

as características dos artefatos do repositório são definidas no modelo de banco de

dados. Este modelo de repositório apresenta limitação em duas situações:

• - Para projetos diferentes que necessitam de informações diferentes sobre cada

artefato será necessário criar bancos de dados diferentes com tabelas e/ou

atributos diferentes;

Page 31: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

29

• - Tipos de artefatos não definidos previamente não poderão ser inseridos após o

sistema entrar em operação. Neste caso seria necessário interromper a operação

do sistema para alterar o banco de dados.

Outros exemplos de trabalhos relacionados podem ser citados como (LOPES et al,

2005; MURTA, 2006) que realizaram estudos na área de gerenciamento de

configurações com o foco em componentes de software. Segundo os autores as

ferramentas de configuração de software existentes não fornecem suporte adequado para

o paradigma de Desenvolvimento Baseando em Componentes (DBC), sendo as

principais deficiências a ausência de informações necessárias tais como informações dos

consumidores dos componentes e dados contratuais; e a falta de flexibilidade no

processo sendo que para este propósito não seria possível uma manutenção do

componente que desrespeitasse as normas e obrigações contratuais.

Segundo os autores, o processo de modificação de um componente se diferencia dos

demais artefatos pelo fato de que a decisão de quem irá fazer a manutenção de um

componente de software (equipe produtora ou equipe consumidora) é baseada nos dados

do produtor e do contrato de manutenção do componente. Outro aspecto mencionado

pelos autores é o fato de que se deve levar em consideração quem são os interessados (e

devem ser notificados) no caso de uma modificação (e quem tem por direito essa nova

versão).

A solução adotada pelos autores para esses problemas foi criar uma abordagem onde os

processos possam ser modelados e executados, tornando o processo flexível atendendo

assim as particularidades do processo de manutenção de componentes. Para flexibilizar

também a coleta das informações sobre componentes, a abordagem permite que durante

a modelagem de processos seja criado e associado a cada atividade um formulário.

Durante a execução do processo o formulário definido para cada atividade seria o

responsável por definir a entrada de dados. Ao final de cada atividade é gerado um

documento contendo todas as informações coletadas e este documento é então associado

à modificação do componente.

Page 32: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

30

Apesar de a solução ser bastante flexível quanto ao processo (modelagem, execução e

monitoração), nesta abordagem a definição das características sobre os artefatos

controlados é pouco dinâmica (adaptável em tempo de execução). Depois que o

formulário de coleta de dados é associado às atividades e o modelo de processo é então

instanciado, as informações não podem ser alteradas em tempo de execução. Neste caso

todas as informações necessárias à coleta de dados teriam de ser definidas previamente,

não atendendo ao caso de precisar inseri-las durante o desenvolvimento. Entretanto,

diferente do trabalho apresentado nesta dissertação, este dinamismo não se torna

necessário para os objetivos do trabalho desenvolvido pelos autores.

1.4 Objetivos

Destaca-se como objetivo geral deste trabalho a construção de uma ferramenta de apoio

ao processo de Gerenciamento de Configuração de Software tendo como elemento

principal um repositório de artefatos dinâmico e flexível. No contexto deste trabalho,

define como característica flexível a capacidade de adaptar o repositório a cada

necessidade especifica (artefatos e projetos diferentes); e dinâmico, a capacidade de

definir em tempo de execução as características e relacionamentos do repositório. Esta

ferramenta deve trabalhar de forma integrada ao ambiente de engenharia de software e-

WebProject®.

Para o objetivo geral do trabalho ser gradativamente atingido, foram definidas algumas

características a serem cumpridas descritas a seguir:

• – Permitir a definição de quais informações serão mantidas sobre cada artefato: a

abordagem, deverá permitir que para cada situação e/ou negócio sejam definidos

quais informações serão mantidas sobre cada artefato;

• – Permitir estabelecer o nível de granularidade a ser mantido pelo repositório: a

abordagem deverá permitir que seja decidido qual o nível de granularidade as

informações serão armazenadas, de acordo com o nível de qualidade exigido no

projeto;

Page 33: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

31

• – Permitir que essas características anteriores sejam realizadas em tempo de

execução: a abordagem deverá ser capaz de permitir que as alterações sejam

realizadas dinamicamente sem que seja necessário interromper o funcionamento

do sistema para tais alterações;

• – Permitir que alterações nas definições do repositório sejam feitas de forma

transparente não sendo necessário reescrever o sistema: a abordagem deverá ser

capaz de permitir uma alteração em alto nível, ou seja, as alterações serão

realizadas por um usuário do sistema sem que para isso seja necessário

reescrever ou modificar o código-fonte;

• – Construir uma ferramenta para apoiar o processo de GCS: a abordagem deverá

ser apoiada por uma ferramenta de GCS desenvolvida para atender além das

atividades do processo de GCS, as características citadas nos objetivos acima;

• – Manter controle de versões dos artefatos: a ferramenta deverá manter controle

de versão dos artefatos definidos dinamicamente;

• – Manter controle de configuração dos artefatos: a ferramenta deverá manter

controle de configuração dos artefatos definidos dinamicamente;

• – Manter controle do processo de alteração dos artefatos: a ferramenta deverá

manter controle de alteração dos artefatos definidos dinamicamente;

• – Acompanhar a situação de cada versão dos artefatos em cada fase do processo:

a ferramenta deverá permitir que para cada versão de artefato, seja identificado

sua situação dentro do processo (e.g. controlada, em alteração, dentre outros);

• – Integrar o repositório dinâmico com a ferramenta de GCS: a ferramenta deverá

trabalhar de forma integrada com o repositório dinâmico apresentado neste

trabalho;

Page 34: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

32

• – Integrar a ferramenta de GCS ao ambiente de engenharia de software e-

WebProject®: a ferramenta de GCS deverá ser integrada ao ambiente e-

WebProject® para controlar seus papeis, permissões e controle de acesso.

1.5 Estrutura do Trabalho

Esta dissertação está organizada em 8 capítulos, conforme descrição a seguir:

CAPÍTULO 2 – PROCESSOS DE SOFTWARE E AUTOMAÇÃO: aborda o tema

processos de software, automação de processos e ambientes de engenharia de software

para apoio à processos.

CAPÍTULO 3 – PROCESSOS DE GERÊNCIA DE CONFIGURAÇÃO DE

SOFTWARE: aborda o processo de gerência de configuração de software, seus

conceitos básicos, atividades principais, atividades de acordo com o modelo de

maturidade CMMI e ferramentas d apoio ao processo.

CAPÍTULO 4 – OBJETOS DINÂMICOS (DYNAMIC OBJECT MODEL-DOM):

aborda o tema da tecnologia de modelos de objetos dinâmicos e seus padrões.

CAPÍTULO 5 – UM MODELO PARA REPOSITÓRIO DINÂMICO: aborda o modelo

do repositório de artefatos dinâmico desenvolvido no trabalho com a utilização da

tecnologia DOM.

CAPÍTULO 6 – UM PROCESSO DE GERENCIA DE CONFIGURAÇÃO

UTILIZANDO O REPOSITÓRIO DINÂMICO DE ARTEFATOS: apresenta o

processo de configuração de software através da ferramenta desenvolvida neste trabalho

utilizando o repositório dinâmico.

CAPÍTULO 7 – ESTUDO DE CASO: apresenta um estudo de caso com a utilização da

ferramenta de GCS desenvolvida.

CAPÍTULO 8 – CONCLUSÃO: apresenta a conclusão e resultado obtidos com o

desenvolvimento do trabalho.

Page 35: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

33

CAPÍTULO 2

PROCESSOS DE SOFTWARE E AUTOMAÇÃO

O propósito da engenharia de software está na aplicação de técnicas, metodologias e

ferramentas para produzir software com qualidade, minimizando tempo e custo. Para

atingir este objetivo é necessário fazer uma distinção cuidadosa entre produto de

software e processo de software. Produto de software é o que é visível para o cliente e

processo de software é como os objetivos são alcançados. Entretanto é através da

aplicação de processo de software que a qualidade é injetada no produto (CUNGOLLA,

1998).

Segundo Kellner e Gregory (1988), a qualidade de um produto de software está

diretamente determinada pela qualidade do processo empregado para o seu

desenvolvimento e manutenção.

As citações acima, ajudam a enfatizar a importância do processo de software dentro da

engenharia de software bem como seu papel fundamental na determinação da qualidade

do produto desenvolvido.

2.1 Processos de Software

Segundo Sant`Anna (2000), nos primeiros anos da engenharia de software o termo

“processo” era utilizado para denotar o “processo de desenvolvimento” de software

como um todo. Mais recentemente, o termo “processo” ou “processo de software” foi

empregado na definição de outros processos importantes que estão presentes no

“processo de desenvolvimento” de software (e.g. processo de gerenciamento, processo

de garantia da qualidade, etc.).

Muitas são as definições para processos de software, dentre elas se destacam:

“Um processo de software é composto de um conjunto de processos capazes de

conduzir a organização envolvida com a construção de produtos de software com

Page 36: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

34

qualidade e custos previsíveis, de forma eficiente, gerenciada e com a possibilidade de

melhoria constante” (SANT’ANNA, 2000).

"Processo de Software é um conjunto de atividades parcialmente ordenadas para

gerenciar, desenvolver e manter um sistema de software" (ACUÑA, 2001).

“O processo de software é uma seqüência de estágios para desenvolver ou manter o

software, apresentando estruturas técnicas e de gerenciamento para o uso de métodos e

ferramentas, e incluindo pessoas para as tarefas do sistema” (HUMPHREY, 1995).

“Processo de software é um conjunto de atividades e resultados associados que geram

um produto de software ou controlam a sua produção” (SOMMERVILLE, 2003).

Para este trabalho iremos considerar que processos de software são constituídos de

atividades de alguma forma controladas e gerenciadas, com objetivos bem definidos,

fazendo uso de recursos (e.g. ferramentas, recursos físicos ou humanos, etc.),

consumindo, modificando ou produzindo algum tipo de artefato (e.g. documentos,

programas, relatórios, etc.), seguindo algumas políticas previamente definidas

(restrições que deve ser satisfeita pelas atividades ou processo antes ou depois de sua

execução) com a finalidade de gerar um produto de software com qualidade.

Ao longo deste trabalho iremos encontrar os termos artefato, produto, produto de

software e work product. Segundo o modelo de maturidade CMMI (2002), um artefato

ou work product é definido como qualquer informação gerada ao longo do processo de

desenvolvimento e produto é definido como sendo um work product que é entregue ao

cliente. Neste trabalho, considera-se os termos artefato, work product e produto como

sinônimos, sendo todos considerados qualquer informação manipulada ao longo do

desenvolvimento e para se referir á um produto entregue ao cliente, utilizar-se o termo

produto de software.

2.2 Elementos básicos de um processo de software

Diferentes características do processo precisam ser consideradas na definição de um

processo de software (e.g. artefatos, papeis, atores, entre outros) e diferentes

Page 37: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

35

nomenclaturas podem ser utilizadas por autores diferentes. Entretanto alguns elementos

são comuns a todo processo: agente ou atores, papeis, atividades e artefato ou produto

(ACUNÃ, 2001).

• Agentes ou Atores: é uma entidade que executa um processo. Um ator pode é

caracterizado pelo papel que pode assumir.

• Papeis: papeis descrevem um conjunto de responsabilidades, riscos e

habilidades necessárias para execução de uma determinada atividade do

processo de software.

• Atividades: atividade é uma fase do processo que produz uma mudança visível

no estado do produto de software. Uma atividade pode ter entradas, saídas e

alguns resultados intermediários, denominados artefatos ou produtos (e.g. classe,

cronograma, relatório, etc.). Uma atividade inclui e implementa procedimentos,

regras, políticas e objetivos para gerar ou modificar um determinado conjunto de

artefatos. Uma atividade pode ser associada a um papel, outras atividades e

artefatos.

• Artefato ou produto: artefato ou produto é a matéria-prima e/ou resultado de

um processo. Pode ser um pedaço de informação, um documento, um modelo,

um código fonte. Um artefato produzido por um processo pode ser utilizado

mais tarde como entrada para um outro processo para gerar um novo artefato.

Um artefato pode ter diversas versões e pode ser composto de outros artefatos.

Um artefato pode ser criado, acessado, modificado durante uma atividade do

processo.

A Figura 2.1 abaixo apresenta o relacionamento entre os elementos do processo de

software. Um ator exerce um determinado papel, uma atividade é executada por um

determinado papel, uma atividade possui produtos como entrada e produz produtos

como saída e finalmente um produto pode ser composto de outros produtos.

Page 38: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

36

FIGURA 2.1 Elementos básicos de um processo de software

FONTE: Acuña (2001)

O foco deste trabalho está nos artefatos manipulados pelos processos.

2.3 Automação de processos

A implantação de processos em uma organização não é uma tarefa simples, pois

envolve mudança de comportamento das pessoas envolvidas, adoção de novas

ferramentas e metodologias de trabalho. Segundo Kruchten (2003), mudança de

processos pode afetar as convicções fundamentais e valores de uma organização bem

como o modo como os indivíduos percebem e valorizam seu trabalho.

O uso de ferramentas pode ajudar a minimizar o impacto de implantação de processos.

Diversas ferramentas para apoiar os processos de software já foram desenvolvidas,

entretanto, quando usadas de maneira isoladas as ferramentas trabalham de maneira

independente, cada qual cumprindo o objetivo para qual foi estabelecida. Quando as

ferramentas trabalham de forma integrada, o grau de eficiência torna-se

expressivamente mais elevado.

A utilização de um ambiente que proporcione o trabalho cooperativo e distribuído, a

gestão integrada do conhecimento e dos eventos ocorridos no projeto e a participação

ativa de agentes autônomos computacionais, pode tornar esses processos mais eficientes

(SANT'ANNA, 2000).

Page 39: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

37

Os esforços gastos para proporcionar um ambiente que seja capaz de trabalhar com os

processos de maneira eficiente, deram origem aos chamados Ambientes de Engenharia

de Software Centrado em Processo, ou Process Centered Software Engineering

Environment –(PSEE) (AMBRIOLA et al.; 1997; FUGGETTA, 2000). Esses ambientes

se propõem a executar de um processo definido explicitamente através de um modelo de

processos.

Um Modelo de Processo pode ser definido como uma representação simplificada e

abstrata de um processo de software, ou seja, a representação de um processo de

software através de uma linguagem específica (gráfica ou não), descrevendo todos os

elementos envolvidos no processo. Um modelo de processo determina: a seqüência de

atividades que deve ser realizada, as ferramentas a serem utilizadas, os produtos e

documentos que são manipulados, os papeis e as pessoas responsáveis no

desenvolvimento do software (GRUHN, 2002).

Um PSEE pode também ser um forte aliado para organizações que desejam manter um

diferencial através de certificações, normas ou modelos de maturidade uma vez que os

processos podem ser definidos, gerenciados e controlados de maneira integrada e

adaptados às necessidades e futuras melhorias.

Para Reis (2001) a utilização da tecnologia PSEE contribui para uma melhor

comunicação entre as pessoas envolvidas e consistência do que está sendo feito;

realização de algumas ações automáticas, permitindo que os seus usuários não realizem

tarefas repetitivas; fornecimento de informações sobre o andamento do processo quando

necessário; possibilidade de reutilização de processo de software e a coleta automática

de métricas importantes para o controle e aperfeiçoamento de processos.

O núcleo de um PSEE é a máquina de processos que tem como objetivo conduzir e

apoiar as pessoas na execução das diferentes atividades que fazem parte do processo e

automatiza as atividades que não necessitam de intervenção humana (CUGOLA, 1998).

Page 40: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

38

2.4 O Ambiente de Engenharia de Software e-WebProject®

O e-WebProject® (SANT´ANNA et al., 2002) é um ambiente de engenharia de

software centrado em processos originado do trabalho de pesquisa “Um Ambiente

Integrado para o Apoio ao Desenvolvimento e Gestão de Projetos de Software para

Sistemas de Controle de Satélite - AMBGES” (SANT´ANNA, 2000) desenvolvido no

Instituto Nacional de Pesquisas Espaciais - INPE. Posteriormente este ambiente foi

comercializado e adaptado com tecnologias e metodologias com uso de padrões de

desenvolvimento WEB para atender as tendências de mercado.

O principal objetivo do ambiente é fornecer um conjunto de ferramentas integradas para

trabalho cooperativo, suporte à execução de processos de engenharia de software,

gestão do conhecimento organizacional e apoio à infra-estrutura organizacional.

Segundo Sant’Anna (2000), a arquitetura do ambiente esta organizada em 3 principais

classes de componentes: armazenamento, serviço e interação com o usuário.

• Camada de armazenamento e recuperação: responsável pelo armazenamento

e recuperação das informações de projeto.

• Camada de serviços: vários elementos são necessários para que os indivíduos

trabalhem de forma cooperativa. Para atender ao desenvolvimento de software,

vários serviços podem ser prestados pelo ambiente de modo a atender os

requisitos especificados. Estes serviços utilizam os elementos da camada de

armazenamento e recuperação para obtenção das informações.

• Camada de interação com o usuário: o usuário deverá obter acesso ao

ambiente a partir de qualquer ponto de uma rede de computadores. A utilização

de navegadores (browsers) permite tal facilidade, haja vista a capacidade de

operação em modo gráfico e ambiente de janelas, possibilitando interação fácil e

eficaz; além disso, existem navegadores para todas as plataformas existentes

atualmente.

Page 41: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

39

A Figura 2.2 a seguir representa a arquitetura conceitual do e-WebProject® mostrando

as camadas e os componentes proposto pelo autor.

FIGURA 2.2 Componentes e camada conceitual do ambiente.

FONTE: Sant´Anna (2000)

Diversos trabalhos (CEREJA JR., 2004; BORREGO, 2003; GENVIGIR, 2004;

ABDALA, 2004, LAHOZ, 2004) deram continuidade ao trabalho desenvolvido por

Sant`Anna (2000), e tiveram como base esse ambiente, agregando módulos e serviços

proporcionando um ambiente cada vez maior e mais robusto.

2.5 Considerações Sobre Processos de Software e Automação

O capitulo 2 apresentou dois conceitos fundamentais na definição deste trabalho

Processos de Software e Automação através de ferramentas e Ambientes de Engenharia

de Software.

Para este trabalho, o processo de software é um fator importante por duas razões:

1) Manipulação de artefatos. Os artefatos manipulados pelas atividades dos

processos são elementos de estudo para este trabalho por apresentarem uma

Page 42: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

40

diversidade de tipos e informações e por sofrerem alterações ao longo do

processo.

2) Processo de Gerenciamento de Configuração. Um dos processos de softwares

bastante conhecido é o processo de gerenciamento de software no qual será

explicado de forma detalhada no próximo capítulo. No contexto deste trabalho

sua relação é a definição das atividades que devem ser suportadas para manter a

integridade dos artefatos e por possuir como elemento principal um repositório

de artefatos (foco principal deste trabalho).

A automação de processos foi estudada neste trabalho pelo beneficio de utilização de

ferramentas para apoiar os processos de software e por este trabalho estar inserido

dentro de um ambiente de engenharia de software denominado e-WebProject®.

Page 43: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

41

CAPÍTULO 3

PROCESSO DE GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE

Durante todo o processo de desenvolvimento de software é gerada uma grande

quantidade de artefatos. Os tipos de artefatos variam dependendo do processo que esta

sendo modelado (CMMI, 2002) uma vez que cada processo manipula informações

específicas (muitas vezes diferentes) para execução de suas atividades.

As mudanças nos artefatos durante o processo de desenvolvimento são constantes e

necessárias. Um artefato pode ser alterado por 4 principais razões:

• Corretiva: quando um problema é constatado no artefato e é necessária sua

correção;

• Adaptativa: quando a modificação é feita para adaptar o artefato para uma

necessidade especifica (muitas vezes exigidas pelos clientes);

• Preventiva: quando é identificado um risco de falha no artefato e a modificação

é feita de modo a prevenir futuras falhas;

• Evolutiva: quando a modificação ocorre para evolução de algum artefato, ou

seja, inclusão de novas características além das originais definidas pelo cliente.

Ambientes de desenvolvimento que não controlam mudanças são rapidamente

conduzidos ao caos (PRESSMAN, 2006).

O controle das modificações de um artefato deve ser capaz de evitar com que a

alteração de um artefato possa comprometer a integridade dos demais artefatos a ele

associados.

No contexto deste trabalho gerenciar artefatos envolve o gerenciamento de versões e o

gerenciamento das configurações do sistema, ou seja, a utilização de mecanismos para

Page 44: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

42

manter armazenadas as informações sobre o artefato, as informações sobre cada versão

do artefato, determinar quais versões fazem parte de qual configuração além de

controlar quem, quando e porque uma alteração foi realizada.

É impossível falar sobre gerenciamento de artefatos sem mencionar o processo de

gerência de configuração de software. O processo de gerência de configuração de

software fornece as técnicas, métodos e procedimentos para manter a integridade dos

artefatos envolvidos durante todo o processo de desenvolvimento de software bem

como das configurações, através do controle sistemático de suas modificações e de seu

armazenamento controlado, provendo informações sobre a situação do produto de

software a todos os envolvidos.

3.1 Processo de Gerência de Configuração de Software

Conforme o modelo de maturidade CMMI (2002), o propósito do Gerenciamento de

Configuração é para estabelecer e manter a integridade de artefatos usando a

identificação de configuração, controle de configuração, situação de configuração, e

auditorias de configuração.

Para Pressman (2006) , o processo de GCS pode ser definido como uma maneira de

identificar, organizar e controlar modificações no software que está sendo construído

por uma equipe de desenvolvimento.

Estublier (2000) define o processo de GCS como o controle da evolução de sistemas

complexos, ou de forma mais pragmática, como a disciplina que permite manter os

produtos de software em evolução, e, portanto, contribuindo para satisfazer restrições de

qualidade e cronograma.

O processo de GCS é aplicado ao longo de todo processo de desenvolvimento de

software consistindo em um conjunto de atividades de acompanhamento e controle que

começam no início do projeto e só terminam quando o software é retirado de operação.

Portanto, não se deve confundir o processo de GCS como uma atividade de

manutenção, que ocorre depois da entrega do software.

Page 45: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

43

3.1.1 Conceitos básicos

A seguir são apresentados os conceitos fundamentais da gerência de configuração:

• Item de Configuração (IC): Cada um dos elementos de informação que são

criados durante o desenvolvimento de um produto de software, ou que para este

desenvolvimento sejam necessários, que são identificados de maneira única e

cuja evolução é passível de rastreamento (PRESSMAN, 2006).

• Artefato X Item de Configuração

Artefatos e itens de configuração são duas definições frequentemente encontradas na

literatura (PRESSMAN, 2006; CMMI, 2002; ISO/IEC 12207, 1995; ISO/IEC

15504-2, 1998) e estão intimamente relacionadas, podendo muitas vezes serem

confundidas.

A diferença principal entre um artefato e um item de configuração é que o primeiro

não precisa estar formalmente controlado enquanto que o segundo é um produto

controlado sistematicamente pelo processo de GCS.

Artefato é toda e qualquer informação produzida ao longo do desenvolvimento por

uma, ou mais, atividades e poderá, ou não, ter suas alterações (e evolução)

controladas (e.g. casos de teste: pode ou não ser controlados, dependendo da

organização).

Item de Configuração é um artefato controlado que compõe uma ou mais versões do

sistema. Dependendo do projeto, um artefato poderá ou não ser um item de

configuração (e.g. documento de especificação e códigos-fonte: normalmente

controlados).

• Configuração-base ou baseline: Entende-se por configuração-base (baseline)

um conjunto bem definido de itens de configuração que foi formalmente

revisado e aceito, e que serve como base do sistema para desenvolvimento

posterior (Leon, 2000).

Page 46: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

44

• Distribuição ou releases: Entende-se por distribuição (release) uma

configuração do sistema que foi testada, aprovada e liberada para um cliente

(LEON, 2000).

3.2 Modelo check in/check out

Um assunto intimamente relacionado ao processo de gerência de configuração é o

controle de versões. Um dos mais antigos e mais difundidos modelos para controle de

versão é o modelo check in/check out. O modelo check in/check out determina a forma

com que os usuários (desenvolvedores e/ou equipe de desenvolvimento) interagem com

os arquivos controlados. Os arquivos mantidos sob controle são tratados de forma

individual em um local denominado Repositório de Artefatos.

Itens mantidos sob controle nunca poderão ser diretamente alterados, alterações devem

ser previamente aprovadas e novas versões destes itens poderão ser criadas. Cada

artefato pode ter diferentes versões para um mesmo original, porém cada versão deve

ser tratada como um item individual e como tal será identificado podendo ser extraído e

usado de forma independente (HASS, 2000).

Quando um artefato é desenvolvido, este deve ser mantido sobre controle em um

repositório centralizado e controlado para garantir que os demais membros da equipe de

desenvolvimento possam fazer uso daquele artefato cuja integridade está garantida.

3.2.1 Operações de Acesso

Para que o modelo seja capaz de garantir a integridade dos elementos sob seu controle,

várias operações são definidas para possibilitar a manipulação dos artefatos:

• Check-out: permite que uma determinada versão de artefato seja extraída do

repositório. Existem dois tipos de check-out: com permissão para alteração ou

somente leitura (também conhecida como operação “get”). Quando a versão do

artefato é extraída para edição é recomendado que seja feito o bloqueio dessa

versão (com a operação lock), para garantir que os check-outs seguintes sejam

somente para leitura até que a versão do artefato volte a estar controlada.

Page 47: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

45

• Check-out exclusivo: quando um usuário faz uma operação de check-out nada

impede que um outro usuário também execute a operação de check-out para a

mesma versão do artefato. Quando isso acontece, o usuário que atualizar (e

executar a operação de check-in) por último descartará as alterações feitas pelos

anteriores. Para evitar esse tipo de situação a operação de check-out exclusivo

permite que uma versão de artefato seja extraída do repositório por apenas um

usuário, não permitindo que outro usuário execute também a operação de check-

out para a mesma versão.

• Check-in: a operação de check-in pode ser feita em duas situações: para criar o

artefato no repositório pela primeira vez ou para criar uma nova versão do

artefato quando este passar por uma modificação.

• Lock: esta operação bloqueia o artefato não permitindo que qualquer operação

(nem para leitura) seja feita sobre ele até que o desbloqueio seja feito pelo

mesmo usuário. Em algumas ferramentas, esta operação é combinada com a

operação de check-out para fazer o check-out exclusivo.

• Unlock: esta operação permite que o artefato seja desbloqueado pelo usuário

que efetuou seu bloqueio.

FIGURA 3.1 Modelo check-in/check-out

A Figura 3.1 apresenta o funcionamento do modelo check-in/check-out. Um artefato

existente começa a ser controlado pelo sistema a partir da execução do primeiro check-

in. A partir desse momento, o sistema irá manter um histórico de todas as operações

dono

CHECK-IN

CHECK-OUT

CONTROLE DE ACESSO

DESENVOLVEDOR ELEMENTO

elemento modificado

info. da avaliação

unlock

lock

elemento congelado e modificado

elemento controlado

elemento extraido

Page 48: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

46

realizadas com o artefato. Quando um artefato que está sob o controle do repositório

precisa ser alterado, é realizada uma operação de check-out especificando qual versão se

deseja extrair. A operação de check-out (combinada com a operação de lock) permite

que um dado desenvolvedor extraia o artefato para ser modificado. Uma vez alterado e

passado pela avaliação de qualidade, o artefato é novamente enviado para o repositório

através da operação de check-in combinada com a operação unlock. Este artefato passa

então a ter uma nova versão no repositório voltando a estar controlado.

3.3 Versão e Configuração de Artefatos

Os artefatos passam por vários estados ao longo do desenvolvimento. Isto implica em

diversas modificações, gerando uma versão de artefato a cada modificação.

A cada operação de check-in executada sob um artefato é criada uma nova versão do

mesmo no repositório. Isto possibilita gerar um histórico da evolução dos artefatos

permitindo voltar a uma versão anterior a qualquer momento.

O controle de versões possibilita: rastrear automaticamente os artefatos; garantir a

integridade quando no acesso compartilhado; recuperar versões anteriores; criar linhas

de desenvolvimento paralelo e registrar um histórico de operações durante o

desenvolvimento do artefato (quem, quando, o quê e por que foi modificado).

Cada versão de artefato no repositório deve possuir uma identificação única e não

ambígua. Para tanto se torna necessário estabelecer um esquema para representar e

identificar a evolução das versões dos artefatos. Uma das maneiras mais utilizadas para

identificar o versionamento de artefatos é utilizar identificação em forma de árvore que

permite ramificações a partir de qualquer versão.

Uma das maneiras mais usuais de identificação de versões em árvore é a utilização de

um identificador principal e identificador secundário separados por um ponto:

<ident_principal>.<ident_secundario>.

Page 49: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

47

1.0 1.1 1.2 2.1 1.3 2.0

Arquivo ARQ

Versão • Quem • Quando • Porque

Modificações

FIGURA 3.2 Controle de Versão.

FONTE: Abdala (2003).

A Figura 3.2 apresenta uma forma de versionamento de um artefato (ou arquivo).

Quando um artefato é adicionado ao repositório pela primeira vez ele é identificado com

uma versão inicial (e.g. versão 1.0). A partir deste ponto, a cada modificação realizada

no artefato é gerada uma nova versão que pode ser obtida, por exemplo, através do

incremento de seu identificador secundário (e.g. versão 1.1) e assim sucessivamente.

Desta maneira podemos manter o histórico da evolução do artefato através de seu

versionamento permitindo saber que o artefato de versão 1.3 é derivado de uma

modificação no artefato de versão 1.2..

O tipo de versionamento, bem como a quantidade de seu incremento pode variar de

acordo com a necessidade de cada caso. Pode-se, por exemplo, estabelecer uma política

que determina que as versões sejam incrementas de 1 no identificador secundário

quando o artefato não estiver ainda distribuído para um cliente, ou seja, ainda estiver

sob desenvolvimento e quando o artefato já estiver sido distribuído o incremento será de

100 em seu identificador principal para identificar que a versão pertencerá a um novo

release.

3.3.1 Desenvolvimento Paralelo ou Branch

A maioria das ferramentas de controle de versão permite o desenvolvimento paralelo

(também conhecido como branch), que são derivações a partir de uma determinada

versão de artefato gerando caminhos paralelos ao caminho principal de

desenvolvimento. Esse tipo de evolução é bastante utilizado quando se deseja incorporar

Page 50: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

48

características particulares em determinadas versões e não em outras ou também para

gerar versões de testes com modificações que poderão, ou não, ser integradas às demais

versões.

O desenvolvimento paralelo permite que um artefato siga paralelamente diversos

caminhos de desenvolvimento podendo ser desenvolvido para atender objetivos

diferentes (MACKAY, 1995).

FIGURA 3.3 Desenvolvimento paralelo. FONTE: Mackay (1995).

A Figura 3.3 apresenta o desenvolvimento paralelo de um artefato. Neste exemplo o

artefato segue diferentes caminhos, sendo cada caminho criado para atender diferentes

plataformas.

3.3.2 Junções ou Merge

Junção ou merge possibilita a junção entre duas versões (que foram ramificadas),

baseando-se na versão original que gerou o branch. A estratégia adotada é a seguinte:

as linhas presentes na versão original e não modificadas nas versões subseqüentes são

naturalmente adicionadas na nova versão. Uma linha que aparece na versão original e

em somente uma das versões posteriores caracteriza uma modificação no código (a

correção de um erro ou a melhoria de uma função); esta modificação deve ser

incorporada na nova versão, portanto a linha diferente será utilizada. Uma linha

modificada nas duas versões (ambas diferentes da original) gera um conflito; o

repositório não tem como saber qual linha deve ser incorporada na nova versão. Cabe,

então, ao usuário resolver o problema.

Page 51: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

49

3.3.3 Agregações ou Configurações

Outro mecanismo utilizado no controle de versões é a agregação. A agregação permite

que várias versões de artefatos diferentes (de alguma maneira relacionada) sejam

agregadas, referenciadas e obtidas em conjunto. Este mecanismo consiste na atribuição

de um rótulo comum a cada versão de arquivo que integra o conjunto que se deseja

caracterizar.

As operações básicas de manipulação dos elementos do repositório (check-in, check-out

e get) se aplicam também às agregações, sendo aplicadas a todos os elementos do

conjunto.

O mecanismo de agregação possibilita a implementação dos conceitos de configurações,

configurações-base e distribuições.

A Figura 3.4 apresenta no quadro esquerdo a evolução de versões de cada artefato A, B,

C e D. No quadro a direita observam-se duas configurações sendo que cada uma delas

contém diferentes versões de cada artefato.

FIGURA 3.4 Agregações. FONTE: Oliveira et al. (2001).

Page 52: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

50

3.4 Atividades do processo de GCS

Além do controle de versões e configurações, o processo de GCS envolve outras

atividades importantes. A definição para essas atividades pode ser encontrada nas

normas e modelo de maturidade dentre as quais podemos citar ISO/IEC com os padrões

12207 e 15504 (ISO/IEC12207, 1995; ISO/IEC 15504-2, 1998), os modelos de

maturidade como o CMMI (CMMI, 2002) e o MPSBr (SOFTEX, 2005). As definições

encontradas podem variar de modelo para modelo, entretanto o objetivo de todos é

manter a integridade dos artefatos sob controle do processo de GCS.

Segundo Pressman (2006), o processo de GCS tem 4 principais objetivos: identificar os

itens de configuração; gerir as modificações nos itens de configuração; facilitar a

construção de diferentes versões do sistema de software; e garantir que a qualidade do

software seja mantida à medida que a configuração evolui ao longo do tempo.

Para a definição das atividades do processo de GCS utilizadas neste trabalho, foram

utilizadas como base, as definições do modelo de maturidade CMMI (2002). Nem todas

as atividades definidas no modelo foram abrangidas neste trabalho.

A Tabela Erro! A origem da referência não foi encontrada. apresenta os SG –

(Specific Goals) Objetivos específicos com as SP – (Specific Practices) Práticas

específicas definidas no CMMI (2002) para o processo de GCS.

TABELA 3.1 – Objetivos e práticas do processo de GCS no CMMI.

SG - Objetivos específicos SP - Práticas específicas

SP 1.1 - Identificar os itens de configuração SP 1.2 - Estabelecer um sistema de controle de Configuração SG 1 - Estabelecer baselines SP 1.3 - Criar ou Distribuir Baselines SP 2.1 - Rastrear as Requisições de Mudanças SG 2 - Rastrear e Controlar as MudançasSP 2.2 - Controlar os Itens de Configuração SP 3.1 - Estabelecer um registro do Gerenciamento da Configuração SG 3 - Estabelecer Integridade SP 3.2 - Executar Auditoria da Configuração

Page 53: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

51

3.4.1 SG1 – Estabelecer Baselines

Este objetivo define uma série de práticas com o intuito de definir quais componentes e

produtos de trabalho (work products) relacionados ficarão sob o gerenciamento da

configuração.

As práticas específicas que são definidas para este objetivo são:

• SP 1.1 - Atividade de Identificação dos Itens de Configuração: Uma das

etapas iniciais do processo é a definição dos produtos que serão controlados,

definidos como item de configuração (IC). Esta atividade envolve atribuir um

identificador único para os ICs; determinar as informações importantes

associadas a cada IC; especificar seus relacionamentos com o mundo exterior e

com outros ICs; determinar quando um IC deverá ser colocado sob a gerência da

configuração; e determinar quem é o responsável por cada IC. A identificação

dos itens de configuração deve ser compatível com o nível de formalidade

desejável para o desenvolvimento de um determinado sistema, ou seja, quanto

maior o nível de qualidade do sistema, maior deve ser a formalidade das

atividades de desenvolvimento e mais refinamentos serão necessários dos itens a

serem controlados para a montagem das versões do sistema.

• SP 1.2 - Estabelecer um sistema de controle de Configuração: Visa

estabelecer e manter sistemas de gerenciamento da configuração e de

gerenciamento de mudanças para controlar produtos de trabalho. Esta atividade

envolve determinar o nível de controle (mais ou menos formal) que será

necessário dependendo dos riscos do projeto; definir um mecanismo para

armazenar e recuperar os ICs bem como suas versões; manter registros e

disponibilizar relatórios sobre as informações da gerência de configuração; e

preservar as informações (backups) de gerência da configuração.

• SP 1.3 - Criar ou Distribuir Baselines: Visa definir mecanismos para criar

baselines e suas distribuições (releases) para os clientes. Esta atividade envolve

obter autorização do Comitê de Controle de Configuração (CCC) para criar ou

Page 54: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

52

distribuir uma baseline; criar baselines somente a partir de IC sob o controle da

gerência da configuração; documentar cada IC pertencente a uma baseline; e

distribuir baselines para os clientes.

3.4.2 SG2 – Rastrear e Controlar Mudanças

Este objetivo define uma série de práticas com o intuito de definir um processo formal

para alterações de IC. Uma solicitação de alteração de um IC pode estar associada desde

uma alteração de requisitos até uma falha ou defeitos no produto. Os pedidos de

alteração devem ser analisados para medir o impacto que aquela alteração provocará no

cronograma, no custo ou em outros IC.

As práticas específicas que são definidas para este objetivo são:

• SP 2.1 - Rastrear as Requisições de Mudanças: Visa estabelecer um

mecanismo para controlar e rastrear as requisições de mudança nos IC. Esta

atividade envolve identificar todos os pedidos de mudança que forem

solicitados; analisar o impacto das alterações e correções propostas; revisar os

pedidos de mudança junto aos responsáveis pelas baselines para obter

aprovação; e rastrear o pedido de mudança desde seu inicio até sua conclusão.

• SP 2.2 - Controlar os Itens de Configuração: Visa estabelecer mecanismos

para manter o controle dos IC bem como rastrear sua evolução, ou seja,

controlar o ciclo de vida do IC. Esta atividade envolve controlar as alterações

nos IC durante todo seu ciclo de vida; obter autorização antes de incluir um IC

modificado no sistema de gerência de configuração; fazer check-in e check-out

dos IC para manter a integridade dos ICs; fazer revisão das alterações realizadas;

e registrar as alterações nos IC bem como suas justificativas.

3.4.3 SG3 – Estabelecer a Integridade

Este objetivo define uma série de práticas para manter a integridade dos artefatos sob

controle do processo de GCS.

Page 55: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

53

As práticas específicas que são definidas para este objetivo são:

• SP 3.1 - Estabelecer um registro do Gerenciamento da Configuração: Visa

manter um registro das ações realizadas no gerenciamento da configuração. Esta

atividade envolve: registrar as ações em um nível de detalhe que permita

visualizar o estado atual da configuração e recuperar suas versões anteriores;

garantir que os interessados tenham acesso às informações das configurações e

dos ICs; especificar a versão atual da baseline; especificar quais versões dos ICs

compõem a baseline; descrever as diferenças entre as baselines sucessivas; e

revisar o estado e o histórico de alterações de cada IC.

• SP 3.2 - Executar Auditoria da Configuração: Auditorias confirmam que as

linhas e base e a documentação resultantes do gerenciamento da configuração

estão conformes a padrões e requisitos especificados. Se necessário, os

resultados da auditoria devem ser registrados. Esta atividade envolve: avaliar a

integridade das baselines; confirmar que os registros do gerenciamento da

configuração identificam corretamente os ICs; rever a estrutura e a integridade

dos ICs; e confirmar a completude e o acerto dos ICs.

3.5 Ferramentas de apoio ao processo de GCS

Não é de hoje que o uso de ferramentas CASE para auxiliar as tarefas de engenharia de

software tem demonstrado resultados positivos à comunidade de desenvolvimento

aumentando a produtividade e facilitando o uso de metodologias, técnicas e padrões.

Uma grande quantidade de ferramentas CASE estão disponíveis no mercado,

oferecendo os mais diferenciados tipos de serviço às várias fases do processo de

desenvolvimento (e.g. auxilio a programação, análise, gerenciamento de projetos,

suporte a comunicação, dentre outras).

Gerenciar o processo de GCS de forma manual torna-se complicado à medida que a

complexidade dos parâmetros que o norteiam aumenta. Por esse motivo, torna-se

necessário a utilização de ferramentas para auxiliar no processo de GCS, sendo que,

Page 56: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

54

melhor seria se esta ferramenta provesse o suporte a todas as atividades do processo de

GCS (as atividades do processo de GCS são discutidas no item 3.4).

Existem algumas ferramentas de apoio ao processo de GCS disponíveis no mercado,

sendo que as mais modernas trabalham em conjunto com um repositório de artefatos e

dão suporte a uma ou mais atividades do processo de GCS. De uma forma geral essas

ferramentas podem ser divididas em três grupos: as ferramentas que dão suporte ao

controle de versão e configuração, as ferramentas que dão suporte ao acompanhamento

de modificações, e por fim, as que oferecem a integração de duas (ou mais) ferramentas

para proporcionar um ambiente capaz de manter um controle mais rigoroso.

Dentre as ferramentas mais conhecidas que dão suporte ao controle de versão e

configuração podemos citar o RCS (Revision Control System), o Concurrent Versions

System (CVS) e o IBM - ClearCase.

• RCS − (Revision Control System − Sistema de Controle de Revisões). O RCS

(Tichy, 1985) é um sistema capaz de gerenciar a evolução de arquivos de texto e

as modificações criadas a partir destes. O RCS utiliza o modelo check-out/check-

in para gerenciar o compartilhamento dos arquivos e a criação de novas versões,

não permite o desenvolvimento paralelo simultâneo (mas pode ser simulado com

a utilização de branches, seguidos da instrução merge), não permite a criação de

diretórios dentro do mesmo repositório e permite o gerenciamento de

configuração.

• Concurrent Versions System (CVS) – O CVS (BERLINER, 1990) é uma das

ferramentas mais utilizadas para controle de versão de código aberto. Possui as

mesmas características que o RCS, uma vez que foi derivado dele, porém

implementa algumas melhorias sendo a principal delas, a possibilidade de

desenvolvimento paralelo entre dois usuários simultâneos.

• Rational ClearCase – O Rational ClearCase (IBM, 2007) é uma ferramenta

proprietária da IBM que fornece gerenciamento de ciclo de vida e controle de

recursos de desenvolvimento de software. Possui controle de versão integrado,

Page 57: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

55

suporte a desenvolvimento paralelo, gerenciamento de configuração e

gerenciamento de construção e release. Permite integração com outras

ferramentas da IBM para fornecer uma solução completa dos demais processos.

As ferramentas citadas acima foram desenvolvidas com o objetivo principal de dar

apoio ao gerenciamento de versões, não cobrindo todas as atividades previstas no

processo de GCS. Por exemplo, ambas não implementam um processo de controle de

modificações (e.g. solicitação de modificação, acompanhamento de modificações, etc.).

Como exemplo de ferramenta disponível no mercado que oferece controle e

acompanhamento de modificações podemos citar o Bugzilla e o IBM ClearQuest.

• Bugzilla - Uma das ferramentas mais conhecidas e mais utilizadas em projetos

de software livre é o Bugzilla (Barnson et al., 2003)(Reis, 2002). Essa

ferramenta surgiu com o objetivo inicial de controlar o desenvolvimento do

browser Mozilla e atualmente é usada em vários projetos de software livre e

proprietário. O Bugzilla reúne funcionalidades para acompanhar um ciclo

completo de alteração de código efetuada no projeto desde sua solicitação até

sua conclusão além de oferecer busca detalhada de modificações, criação de

relacionamentos entre modificações, relatórios para análise das informações

armazenadas e preocupação constante com o desempenho da ferramenta.

Permite também a integração com a ferramenta CVS.

• Rational ClearQuest – O Rational ClearQuest (IBM, 2007b) é uma ferramenta

proprietária da IBM que fornece mecanismos para monitoramento de alteração e

defeitos. Permite integração com outras ferramentas da IBM para fornecer uma

solução completa dos demais processos.

As ferramentas citadas acima podem ser utilizadas de maneira integradas quando

este recurso for suportado. Esse é o caso, por exemplo, das ferramentas proprietárias

IBM ClearCase e IBM ClearQuest e das ferramentas de software livre CVS e

Bugzilla, que quando utilizadas em conjunto conseguem atender ao processo de

GCS de maneira mais abrangente.

Page 58: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

56

Embora os conceitos da GCS sejam bastante maduros e diversas ferramentas já tenham

sido desenvolvidas para suportar suas atividades, em sua maioria as ferramentas

convencionais tem seu objetivo focado no controle de códigos-fonte, sendo que um

sistema de arquivos é suficiente para representar os artefatos a serem controlados.

Embora essa abordagem seja suficiente para controlar mudanças em códigos-fonte não é

tão representativa para abranger as diversidades de informações entre artefatos.

Muitas ferramentas oferecem um grau de formalismo muito baixo e inadequado e para

manter o processo de forma manual é necessário um elevado grau de formalismo.

Poucas ferramentas são flexíveis o suficiente para possibilitar a escolha do grau de

formalismo que se deseja de acordo com os diferentes tipos de artefatos estabelecidos

(HASS, 2000).

Um Fator bastante importante na escolha de uma ferramenta de GCS é definir

cuidadosamente os critérios de interesse para o projeto/organização. Para Agelina

(2001), uma ferramenta de GCS pode ser avaliada segundo muitos critérios. Cabe ao

avaliador adotar aqueles critérios que julgar mais adequados a uma situação em

particular e a cada critério escolhido associar um peso relativo.

Para este trabalho foram consideradas como critérios de avaliação as seguintes

características: apoio a processo e capacidade de adaptação na forma de armazenar as

diferentes características dos artefatos.

Ambas as ferramentas estudadas implementam apenas uma parte do processo de GCS,

sendo necessário integrá-las com outra ferramenta para que o processo possa ser

totalmente apoiado.

A forma de armazenamento de ambas as ferramentas estudadas são pouco flexíveis

sendo que as meta-informação dos artefatos armazenados são idênticas para todos. Esta

forma de tratar os artefatos pode ser interessante no sentido de que permite armazenar

qualquer artefato (uma vez que sob a forma de arquivo do sistema operacional), mas em

contrapartida não é possível determinar as características que se deseja manter sob cada

artefato em particular.

Page 59: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

57

3.6 Considerações Sobre o Processo de GCS e Ferramentas

Este Capítulo apresentou conceitos básicos sobre o processo de gerenciamento de

configuração de software, bem como gerenciamento de versões e configurações e

alteração de artefatos. Tais conceitos são fundamentais na definição deste trabalho para

compreensão dos termos e técnicas utilizadas e posteriormente.

Também são apresentadas neste capítulo as atividades no qual o modelo de maturidade

CMMI (2002) organiza suas metas e práticas para o processo de GCS. Estas atividades

foram tomadas como base para organização e determinação das atividades abordadas

neste trabalho.

As ferramentas relacionadas neste Capítulo serviram como base para análise das

características, limitações e forma de trabalho das ferramentas existentes numa tentativa

de reunir as melhores características e minimização das limitações na ferramenta

implementada para validação deste trabalho.

Page 60: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

58

Page 61: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

59

CAPÍTULO 4

OBJETOS DINÂMICOS (DYNAMIC OBJECT MODEL-DOM)

O uso de sistemas com DOM permite que tipos de objetos sejam modificados em tempo

de execução. Isto inclui adicionar novos tipos, modificar os já existentes e manter os

relacionamentos entre eles (RIEHLE, 2000).

Em um sistema orientado a objetos convencional, um objeto é caracterizado através de

uma classe que define a estrutura e o comportamento do objeto, ou seja, para cada tipo

de objeto existe uma classe. A criação de novos tipos implica na necessidade de criação

de novas classes. Com DOM o sistema pode ser representado através de um modelo de

meta dados de classes, atributos e relacionamentos, permitindo a definição de novos

tipos de objetos em tempo de execução.

A escolha pela utilização de sistemas baseados em arquiteturas dinâmicas neste

trabalho, se dá pela característica de flexibilidade e dinamismo que poderão ser obtidos

nas aplicações conforme estudos realizados por (ALMEIDA, 2005 ; CARDOSO, 2005).

4.1 Padrões TypeObject Pattern e Property Pattern

Arquiteturas de modelos de objetos adaptativos são normalmente baseadas nos padrões

TypeObject Pattern e Property Pattern (YODER, 2001).

Na metodologia orientada a objetos, estruturamos o sistema com um conjunto de classes

que define as características e comportamento dos objetos. Normalmente utilizam-se

classes separadas para definir cada tipo de objeto. Mas o que fazer quando as

características do objeto não são totalmente conhecidas ou o número de subclasses é

muito grande?

TypeObject Pattern provê uma maneira dinâmica de definir novas entidades de negócio

para o sistema em tempo real, fazendo com que as subclasses não conhecidas sejam

Page 62: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

60

simples instâncias de classes genéricas conforme apresentado na figura 4.1 (YODER,

2001).

FIGURA 4.1 TypeObject Pattern, exemplo

FONTE: Adaptada de Yoder (2001).

Os atributos de um objeto são normalmente implementados nas instâncias das classes.

Uma vez que as classes passam a ser genéricas, sendo todos os objetos da mesma

instância de classe, é necessário estabelecer uma forma de implementar e definir os

atributos dos objetos. A solução é implementar os atributos de maneira diferente

também.

A Figura 4.1 mostra que um relacionamento de herança poderia ser modelado através do

padrão TypeObject criando as classes entidade e tipo entidade.

O Property Pattern ao invés de definir cada atributo como uma variável, utiliza uma

única variável para armazenar uma coleção de atributos.

Page 63: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

61

FIGURA 4.2 Property Pattern, exemplo

FONTE: Adaptada de Yoder (2001).

A Figura 4.2 mostra a separação dos atributos de uma classe Entidade através do uso do

padrão Property.

4.1.1 Arquitetura TypeSquare

A aplicação em conjunto de dois padrões definidos TypeObject e Property, resulta em

uma estrutura de arquitetura chamada TypeSquare (YODER, 2001).

Na arquitetura TypeSquare, o padrão TypeObject é aplicado duas vezes. A primeira vez

para fazer a separação de uma Entity e uma EntityType, e a segunda vez para separar os

atributos. O padrão Property é aplicado para implementar os atributos das entidades

(YODER, 2001).

A Figura 4.3 representa a estrutura TypeSquare após a aplicação dos dois padrões.

FIGURA 4.3 Arquitetura TypeSquar

FONTE: Adaptada de Yoder (2001).

Page 64: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

62

Para entender melhor essa estrutura, vamos usar um exemplo: Suponha que você precise

desenvolver um sistema para controlar elementos observados no espaço, sendo

“planeta” um dos objetos a ser utilizado pela aplicação. Se a modelagem fosse feita de

forma convencional, no modelo seria colocada uma classe para representar o planeta e

nessa classe seriam definidos todos os atributos conforme a Figura 4.4 .

FIGURA 4.4 Modelagem convencional da classe Planeta.

Considere agora que o sistema foi modelado utilizando o padrão TypeSquare, sendo

assim, o modelo de classes é exatamente como o definido na figura 4.3 . Torna-se

necessário estabelecer uma maneira de criar os objetos necessários para seu negócio em

tempo de execução.

Para isso temos que seguir 4 passos: definir a Entidade, definir os TipoEntidades,

definir a Propriedade e definir os TiposPropriedade.

• Definir TipoEntidade: Primeiro teremos que informar ao sistema que será

preciso a utilização de uma classe Planeta. A criação desta classe deve ser feita

criando uma instância da classe “TipoEntidade”.

• Definir TipoPropriedade: para definir quais os atributos serão necessários

para a nossa “classe” Planeta. No nosso exemplo um planeta deverá ter os

seguintes atributos: código, nome, raioOrbitalMedio, periodoOrbital e

velocidadeOrbitalMedia. Cada um desses atributos deverá ser definido através

de instancia da classe “TipoPropriedade”.

Até este momento construímos de forma dinâmica a classe e seus atributos. Agora é

preciso definir objetos para essas classes. Voltando ao exemplo da modelagem

convencional usada na figura 4.4 poderíamos criar objetos Planeta da seguinte

Page 65: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

63

maneira: Planeta planeta1 = new Planeta(); sendo que para cada

objeto poderíamos definir os atributos através dos seus métodos de acesso:

planeta1.setCodigo(100); . Agora vamos ver como esses objetos seriam

definidos e os valores de seus atributos atribuídos com a utilização de DOM.

• Definir Entidade: Para criar os objetos do tipo Planeta (e.g. planeta1, planeta2,

planeta3) é necessário criar uma instância da classe “Entidade” para cada objeto.

Cada objeto “Entidade” criado deve se relacionar com um objeto

“TipoEntidade” para determinar de qual classe aquele objeto pertence.

• Definir Propriedade: Cada valor de atributo será um objeto da classe

“Propriedade” e este objeto será relacionado aos objetos “TipoPropriedade” e

“TipoEntidade” para determinar a qual objeto e qual atributo respectivamente o

valor pertence..

O exemplo descrito anterior justificaria a utilização de um modelo dinâmico, pois

muitos elementos a serem observados no espaço possuem características diferentes

sendo que alguns elementos podem ser descobertos depois de o sistema estar em

operação (neste caso não seria necessária a modificação na modelagem do sistema). Do

mesmo modo os itens de configuração manipulados durante um projeto podem possuir

características diferentes e durante o projeto surgir a necessidade de controlar novos

itens não previstos previamente.

A tecnologia de DOM define outros padrões não apresentados neste aqui. A omissão

destes padrões dá-se ao fato de não serem necessário para atender o objetivo definido

para o trabalho.

4.2 Considerações sobre DOM

Neste Capítulo foi apresentado a tecnologia de modelagem de objetos dinâmicos

utilizando a arquitetura TypeSquare que no contexto deste trabalho foi utilizada para a

construção de itens de configuração do sistema, permitindo a criação do mesmo em

tempo de execução.

Page 66: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

64

Page 67: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

65

CAPÍTULO 5

UM MODELO PARA REPOSITÓRIO DINÂMICO

5.1 Artefatos dinâmicos

Baseado na modelagem dinâmica de objetos e na utilização da arquitetura TypeSquare,

está sem proposto neste trabalho, um novo modelo para a definição dos (itens de

configuração) IC controlados no sistema, permitindo que organizações e/ou projetos

diferentes possam definir seus próprios IC e meta-informação em tempo de execução.

Algumas adaptações fizeram-se necessárias neste novo modelo para atender algumas

características do processo de Gerenciamento da Configuração. A característica de

versionamento dos itens de configuração torna necessária a inclusão no modelo de uma

nova entidade denominada VersãoArtefato.

Neste trabalho considerou-se que um item de configuração deve ser tratado de duas

maneiras diferentes, sendo a primeira referente à definição da estrutura das meta-

informação (modelo ou classe que define os atributos) e a segunda referente ao seu

conteúdo (instância de uma classe de artefato que contém o conteúdo do artefato

propriamente dito).

Em ambos os casos, podem ser estabelecidos relacionamentos, ou seja, podemos criar

relacionamentos que se referem à estrutura do IC (e.g. relacionamento de classes) como

também podemos criar relacionamentos referentes às versões dos IC’s (e.g. uma versão

se relacionando com outra). Os relacionamentos referentes à estrutura do IC podem ser

utilizados, por exemplo, para a geração de interfaces de entrada de dados dinâmicas

onde os relacionamentos são usados para verificar se a criação do IC requer a criação de

outros IC’s a ele relacionados. Um bom exemplo para esse caso seria o relacionamento

Page 68: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

66

todo-parte1, onde um IC poderá ter um relacionamento de todo-parte que força a criação

de todos os IC’s “parte” junto com o IC “todo”.

5.1.1 Definição da Classe do Artefato

Uma classe de artefato define um “tipo” genérico de artefato através do qual podemos

criar artefatos reais. Por exemplo, podemos definir uma classe de artefato denominada

“Documento de Requisitos”. Essa classe é apenas uma abstração (um conceito genérico)

e representa qualquer documento de requisitos (de qualquer projeto). Um artefato real

poderia ser criado a partir das especificações dessa classe, por exemplo, um artefato

denominado “Documento de Requisitos do Projeto SIVAM”.

Ao definir uma classe de artefato podemos definir quais atributos pertencerão a ele. A

definição dos atributos especificados para uma dada classe de artefato é também

considerada para todas as instâncias dela derivada. Dessa maneira, conforme no

exemplo anterior, todos os atributos definidos para a classe de artefato “Documento de

Requisitos” estarão também presentes nos artefatos “Documento de Requisitos do

Projeto SIVAM” e “Documento de Requisitos do Projeto CBERS”.

Na definição da classe de artefato podemos também definir os possíveis

relacionamentos que definem sua estrutura, ou seja, definir de quais outras classes de

artefato ela é composta. Por exemplo, a classe “Documento de Requisitos” poderá ser

composta de outras classes de artefatos como “Diagrama de Atividades”, “Diagrama de

Casos de Uso”.

5.1.2 Definição do Artefato

Uma vez definida a estrutura do artefato (classe), podemos definir agora o artefato

propriamente dito (artefato real). Ao definir o artefato é preciso associá-lo a uma classe

de artefato para que as características definidas para a classe sejam aplicadas a ele, ou

seja, os atributos e relacionamentos deste artefato serão definidos pela classe no qual

1 Relacionamentos todo-parte é tão forte que as partes não podem existir individualmente.

Page 69: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

67

está associado. Uma vez que o artefato real seja definido as versões dele podão ser

geradas.

A definição do artefato em si consiste apenas em definir as características de

identificação do artefato no repositório, tais como nome, uma descrição textual, data de

criação e algumas observações que se fizerem necessárias. Essas informações são as

mesmas denominadas metadados no sistema tradicional de alguns autores

(PRESSMAN, 2006; ABDALA, 2004).

Entretanto, os artefatos mantidos no repositório passam, em geral, por constantes

modificações ao longo do projeto. O que muda de uma alteração para outra do artefato

são sintetizadas em versões do artefato. Cada versão pode conter diferentes informações

sobre o artefato. Portanto, em cada versão de artefato são armazenados os valores de

cada atributo definidos em sua classe.

Outro fator que deve ser levado em consideração é o relacionamento existente entre as

versões de artefato. Uma versão de artefato pode se relacionar com outra para

representar a evolução de suas modificações (permitindo a rastreabilidade), ou para

representar quaisquer outros tipos de relacionamentos (e.g. composição, dependência,

entre outros). Manter sob controle esses relacionamentos é necessário para analisar, por

exemplo, o impacto de uma modificação em um dado artefato.

Por exemplo, a versão 1.0 do “Documento de Requisitos do Projeto CBERS” poderá ser

modificada necessitando que uma nova versão seja criada. Nesse caso o “Documento de

Requisitos do Projeto CBERS versão 1.0” seria relacionado ao “Documento de

Requisitos do Projeto CBERS versão 1.1”.

Os relacionamentos entre versões não precisam ser necessariamente entre versões de

artefatos de uma mesma classe de artefato (caso do exemplo cita acima), ou seja,

podemos ter versões de artefatos diferentes sendo relacionados. Por exemplo, para gerar

um documento de Testes é necessário se basear nas informações do documento de

requisitos, pois podemos gerar vários casos de testes para cada requisito contido no

documento de requisitos. Sendo assim o “Documento de Requisitos do Projeto CBERS

Page 70: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

68

versão 1.1” pode ser utilizado para produzir o “Documento de Testes do Projeto

CBERS versão 1.0”, isto significa que uma modificação no “Documento de Requisitos

do Projeto CBERS 1.1” irá afetar o “Documento de Testes do Projeto CBERS 1.0”.

Os conceitos apresentados acima podem ser implementados através do modelo abaixo:

cd ert

ClasseArtefato

- id: long- nome: String- descricao: String- observacao: String

PropriedadesArtefato

- id: long- nome: String- descricao: String- observacao: String

AtributosArtefato

- id: long- valor: String

Artefato

- id: long- nome: String- descricao: String- dataCriacao: Date- observacao: String

VersaoArtefato

- id: long- versao: String- data: Date

GrauRelacionamento

- id: long- nome: String- descricao: String- observacao: String

ClasseArtefatoRel

- id: long

VersaoArtefatoRel

- id: long

0..* 1

1 0..*

1

0..*1

0..*

1 0..*

1

0..*

0..*

relacionado

1

0..*

1

0..*

relacionado

1

0..* 1

1

0..*

FIGURA 5.1 Arquitetura de Definição do Artefato.

A Figura 5.1 apresenta a utilização do DOM aplicado à definição dos artefatos do

repositório. As classes do modelo se referem à definição da estrutura de meta-

informação do artefato, de suas instâncias e seus relacionamentos.

Para a definição da estrutura das metas-informação dos artefatos têm-se: ClasseArtefato

(define uma classe para o artefato), PropriedadeArtefato (define os atributos para uma

determinada classe de artefato) e ClasseArtefatoRel (define o relacionamento da

estrutura da classe).

O diagrama de objetos na Figura 5.2 , nos permite entender melhor o que seria a

definição da estrutura de um artefato.

Page 71: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

69

FIGURA 5.2 Diagrama de objetos para a definição da estrutura dos artefatos.

Na Figura 5.2 temos alguns objetos criados em tempo de execução:

• classe1 e classe2: esses objetos são instâncias das classes “ClasseArtefato”, ou

seja, estamos definindo em tempo de execução que nossa aplicação vai possuir

duas classes denominadas classe1 e classe2.

• atributo1, atributo2 e atributo 3: são objetos da classe “PropriedadeArtefato”,

ou seja, estamos definindo em tempo de execução os atributos que nossas

classes vão possuir. Neste caso temo que: a classe1 possui o atributo3 e que a

classe2 possui os atributos: atributos1 e atributo2.

• relac1 e grau1: esses objetos são das classes “ClasseArtefatoRel” e

“GrauRelacionamento” respectivamente. Esses objetos servem para criar os

relacionamentos existentes entre as classes, ou seja, neste caso estamos

relacionando em tempo de execução a classe1 com a classe2.

classe1 : ClasseArtefato id = 02 nome = “Diagrama de Contexto” descricao = “caso de uso contexto” observacao = null propriedades = [atributo3]

id = 01nome = “Documento de Requisitos” descricao = “requisitos de negócio” observacao = null propriedades = [atributo1, atributo2]

classe2 : ClasseArtefatoatributo1 : PropriedadesArtefato

id = 01 nome = “titulo” descricao = “título do documento” observacao = “acrescentar o prefixo”

atributo2 : PropriedadesArtefato

id = 02 nome = “descrição do negócio” descricao = “descreve o negocio” observacao = “em português”

atributo3 : PropriedadesArtefato

id = 03 nome = “imagem” descricao = “arquivo com a imagem” observacao = “extensão GIF”

relac1 : ClasseArtefatoRel

id = 01 classe = classe 2 classeRelacionada = classe1 grauRelacionamento = grau1

grau1 : GrauRelacionamento

id = 01 nome = “composto de” descricao = “relação de composição” observacao = null

Page 72: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

70

Todos esses objetos apresentados no exemplo anterior, referem-se à definição de

estrutura das meta-informações. Se comparado com a modelagem orientada a objetos

tradicional, teríamos apenas definido as classes a serem usadas na aplicação, seus

atributos e relacionamentos. Entretanto, com a utilização do DOM todas as classes,

atributos e relacionamentos do exemplo são criadas em tempo de execução.

Ainda na Figura 5.1 temos classes para definir os artefatos propriamente ditos, suas

versões e valores. Para a definição de uma instância de artefato temos: Artefato (define

a instância do artefato), VersaoArtefato (define uma versão para um artefato),

AtributosArtefato (define o conteúdo dos atributos para uma versão de artefato) e

VersaoArtefatoRel (define relacionamentos entre versões de artefatos).

O diagrama de objetos na Figura 5.3 apresenta a definição de um artefato e sua versão.

FIGURA 5.3 Diagrama de Objetos definição do Artefato.

Na Figura 5.3 podemos observar alguns objetos criados para definir os artefatos e

versões:

Page 73: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

71

• art1: objeto da classe “Artefato” que define um artefato a ser usado na

aplicação. Este artefato possui (implicitamente) os atributos descritos em sua

classe, ou seja, os atributos “atributi1” e “atributo2” definidos para a “classe1”.

• ver1: objeto da classe “VersãoArtefato” que define qual a versão em que um

determinado artefato se encontra. Neste exemplo, temos que o artefato “art1”

possui uma versão “ver1”.

• verart1: objeto da classe “AtributoArtefato” que determina os valores atribuídos

a cada um dos campos de uma determinada versão de artefato. Neste exemplo, o

atributo “atributo1” da versão “ver1” possui valor definido no objeto “verart1”.

A primeira fase deste trabalho foi desenvolver o repositório dinâmico utilizando a

tecnologia de DOM assim como apresentado neste capítulo. Com a utilização deste

modelo conseguiu-se atingir um diferencial de flexibilidade e dinamismo não

encontrados nas ferramentas convencionais. A segunda fase deste trabalho consiste

na integração deste repositório em uma ferramenta de GCS que deve abranger, pelo

menos, as atividades mais importantes do processo de GCS.

Page 74: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

72

Page 75: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

73

CAPÍTULO 6

UM PROCESSO DE GERÊNCIA DE CONFIGURAÇÃO UTILIZANDO O

REPOSITÓRIO DINÂMICO DE ARTEFATOS

Este capítulo apresenta um processo de GCS com a utilização da ferramenta

desenvolvida, consolidando todos os conceitos apresentados neste trabalho. O objetivo

da ferramenta é manter a integridade de qualquer tipo de artefato necessário ao projeto,

sendo que estes artefatos serão definidos em tempo de execução, característica esta

permitida com a implementação do repositório dinâmico citado no Capitulo 5. A

ferramenta foi implementada para suprir as duas principais características das

ferramentas que apóiam o processo de GCS, o controle de artefatos e suas versões e o

controle de modificações.

A ferramenta foi desenvolvida em arquitetura web, implementada com linguagens Java,

Java Server Page – JSP e Servlet e tendo como banco de dados PostgreSQL. O modelo

de arquitetura e tecnologia utilizado segue o definido para o ambiente e-WebProject®

apresentado no Capitulo 2.

6.1 Papeis Definidos

Segundo Paula Filho (2000), durante o projeto surgem alguns participantes que sempre

estão envolvidos em alguma fase do ciclo de vida do processo e estes participantes

interagem com o serviço em uma dada fase do processo. Esses participantes podem ser

definidos como papeis que são executados pelos usuários em cada atividade do

processo. Esse é um dos conceitos utilizados no e-WebProject®, a utilização de papeis

para definir as responsabilidades e permissões dentro do ambiente. O acesso dos

usuários ao sistema é feito através de um controle de acesso implementado no ambiente

permitindo restringir a visão sobre as informações apenas aos interessados e destinar

cada atividade de um (ou mais) processo(s) ao responsável por sua execução.

Page 76: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

74

Seguindo esse mesmo conceito de implementação, alguns papéis foram estabelecidos

para definir as responsabilidades e permissões de cada usuário dentro do processo de

GCS suportado pela ferramenta Dynamic Artifact Integrity. A seguir tem-se uma

descrição sobre as responsabilidades de cada um dos papeis definidos:

• Administrador da Configuração: Este papel permite ao usuário fazer as

configurações básicas inicias necessárias para o funcionamento do sistema. Para

que a ferramenta esteja em condições de uso, torna-se necessário algumas

configurações básicas tais como valores pré-definidos de categorias que devem

estar devidamente cadastrados no sistema antes da operação efetiva. Estas

configurações são atribuídas como responsabilidades do papel denominado

Administrador da Configuração.

A Figura 6.1 apresenta o diagrama de casos de uso com as respectivas

responsabilidades do papel administrador da configuração.

ud RepositorioDeArtefatos

Administrador da Configuração

Manter GrauDeRelacionamento

Manter Categoria de Template de

Configuracao

Manter Tipo de Versionamento

Manter Prefixo

FIGURA 6.1 Casos de Uso do Papel Administrados da Configuração.

• Engenheiro de Artefatos: Este papel permite ao usuário definir a estrutura dos

artefatos, ou seja, determinar os tipos de artefatos que deverão existir no projeto

Page 77: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

75

(classes artefatos) e seus respectivos valores a serem mantidos (atributos). É

responsabilidade deste papel também definir templates de configurações que

poderão ser utilizados para definir os artefatos nos novos projetos visando a

reutilização de um conjunto de definições de artefatos.

A Figura 6.2 apresenta o diagrama de casos de uso com as respectivas

responsabilidades do papel de engenheiro de artefatos.

ud RepositorioDeArtefatos

Engenheiro da Artefatos

Definir Classe de Artefato

Definir Atributos da Classe de

Artefato

Definir Composição da

Classe de Artefato

Definir Template de Configurações

Selecionar Artefatos

Estes artefatos podem ser genericos para toda a empresa....Eles podem ser selecionados para serem usados em algum projeto especifico

Manter Artefato Padrão

Esse IC nao esta relacionado a nenhum projeto especifico

«include»

«extend»

«include»

FIGURA 6.2 Casos de Uso do Papel Engenheiro de Artefatos.

• Engenheiro da Configuração: Este papel permite ao usuário manter as

informações sob as configurações do sistema, definir a lista de distribuições e

montar e distribuir as releases. Também é de responsabilidade deste papel

manter as versões de configurações bem como notificar aos interessados

quaisquer mudanças nas configurações e/ou releases.

A Figura 6.3 apresenta o diagrama de casos de uso com as respectivas

responsabilidades do papel de engenheiro da configuração.

Page 78: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

76

ud RepositorioDeArtefatos

Manter Configurações

Manter Releases Selecionar IC da Configuração

Selecionar Clientes

Engenheiro da Configuracao

Manter Lista de Distribuição

Manter v ersao da configuracao«extend»

«include»

«include»

FIGURA 6.3 Casos de Uso do Papel Engenheiro da Configuração.

• Gerente da Configuração: Este papel tem a responsabilidade de manter um

controle sobre os itens do repositório, podendo definir IC que serão controlados

por cada projeto, bloquear/desbloquear IC e editar os valores de relacionamento

entre os IC.

A Figura 6.4 apresenta o diagrama de casos de uso com as respectivas

responsabilidades do papel de gerente da configuração.

Page 79: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

77

ud RepositorioDeArtefatos

Selecionar Baseline do

Projeto

Manter Versões de Artefatos

Manter Dependencia

Visualizar Historico de Operações

Manter Repositorio

Criar IC do Projeto

Gerente da Configuracao

Realizar Lock / Unlock

Manter v isibilidade

Permitir Checkout

Selecionar Usuário

Analisar Proposta de Artefato

Visualizar Ev olução dos

Artefatos

Visualizar Check-out's autorizados

Visualizar Artefatos Propostos

«extend»

«extend»

«extend»

«extend»

«extend»

«include»

«extend»

«extend»

«extend»

FIGURA 6.4 Casos de Uso do Papel Gerente da Configuração.

• Engenheiro de Mudanças: Este papel permite ao usuário manter todas as

informações referentes às alterações nos IC mantidos sob controle do

repositório. È de responsabilidade do Engenheiro de mudanças analisar todas as

requisições de mudanças enviadas, fazer a analise de impacto e permitir ou não a

implementação da alteração.

A Figura 6.5 apresenta o diagrama de casos de uso com as respectivas

responsabilidades do papel de engenheiro de mudanças.

Page 80: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

78

ud RepositorioDeArtefatos

Engenheiro de

Mudanças

Manter Repositorio

Analisar Proposta de Mudança

Analisar Dependencias

Alocar Desenv olv edor para alteração

Defirnir IC para alteração

Analisar instruções de

alteração

Relatar Pedido de Mudança

Realizar Check in

Definir Versao

Analisar Proposta de Artefato

«include»

«include»

«extend»

«include»

«include»

«include»

FIGURA 6.5 Casos de Uso do Papel Engenheiro de Mudanças.

• Desenvolvedor: Este papel determina as responsabilidades dos

desenvolvedores/programadores dentro de um processo de GCS. Este papel

permite aos usuários visualizarem os IC no repositório (desde que os IC sejam

públicos), enviar solicitações de mudanças quando desejarem por algum motivo

alterar um IC, enviar propostas para definir um novo IC não definido no projeto

e implementar as alterações quando essas forem aceitas e atribuídas a ele a

responsabilidade de sua alteração.

A Figura 6.6 apresenta o diagrama de casos de uso com as respectivas

responsabilidades do papel de desenvolvedor.

Page 81: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

79

ud RepositorioDeArtefatos

Desenv olv edor

Manter Proposta de Mudança

Compor Proposta de Mudança

Selecionar Artefato para

alteraçao

Verificar Situação da Proposta

Fazer Checkou de Artefatos

Permitidos

Visualizar Repositorio de

ArtefatosFazer GET

Env iar para Qualidade

Visualizar Checkout Permitidos

Env iar Proposta

Visualizar Artefatos para

Modificação

Desenv olv er artefatos

Propor Artefato

«extend»

«extend»

«extend»

«extend»

«extend»

«include»«include»

«extend»

FIGURA 6.6 Casos de Uso do Papel Desenvolvedor.

Gerente de Acompanhamento de Projetos: Este papel permite ao gerente de projetos

determinar o usuário responsável por realizar a ação de criação do IC e posteriormente

de determinar o usuário responsável por um check-out.

A Figura 6.7 apresenta o diagrama de casos de uso com as respectivas responsabilidades

do papel de gerente de acompanhamento de projetos.

Page 82: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

80

ud RepositorioDeArtefatos

Visualizar Check-out's autorizados

Gerente de Acompanhamento de Projeto (GCM)

Permitir Criação

FIGURA 6.7 Casos de Uso do Papel Gerente de Acompanhamento de Projeto.

Engenheiro da Qualidade: Este papel permite a avaliação de um IC que será

controlado no repositório.

A Figura 6.8 apresenta o diagrama de casos de uso com as respectivas responsabilidades

do papel de engenheiro da qualidade.

ud RepositorioDeArtefatos

Engenheiro da

Qualidade (GCM)

Av aliar Artefatos

FIGURA 6.8 Casos de Uso do Papel Engenheiro da Qualidade.

Através da definição deste papeis pode-se garantir maior integridade nas informações

uma vez que cada papel só poderá ter acesso a uma parte restrita da informação (quando

não permitido ao papel) e a separação das responsabilidades em cada fase das atividades

envolvidas no processo de GCS por cada papel.

6.2 Fluxo de Trabalho

Assim como qualquer processo, a execução das atividades do processo de GCS precisa

obedecer a uma ordem (ou restrições) para que o fluxo de trabalho possa ser realizado.

Neste trabalho o fluxo de trabalho das atividades é guiado através dos estados dos

Page 83: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

81

artefatos e de suas versões como definido anteriormente. A cada atividade realizada no

processo os artefatos e/ou versões passam por alterações de estados que decidem por

qual caminho o fluxo deve seguir.

A seguir serão representados os principais fluxos de trabalho realizados para esta

disseração para atender as atividades do processo de GCS bem como o fluxo de objetos

(e seus estados) durante sua execução.

6.2.1 Fluxo de Trabalho Definir Classe de Artefato

O fluxo de trabalho definir classe de artefato é o primeiro passo do processo de GCS

apresentado nesta dissertação. Esse fluxo determina a criação das classes de artefatos

que serão posteriormente utilizadas para criar os artefatos propriamente ditos.

FIGURA 6.9 Fluxo de Trabalho Definir Classe Artefato.

A Figura 6.9 ilustra as duas atividades envolvidas no fluxo de trabalho Definir classe

artefato. Um engenheiro de artefatos deverá definir a Classe Artefato determinando

também quais os atributos essa classe deverá possuir. Após definida a classe artefato

estará disponível para que os artefatos sejam criados a partir dela.

Page 84: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

82

6.2.2 Fluxo de Trabalho Definir Itens de Configuração

O fluxo de trabalho definir IC inicia na atividade de definição do item de configuração e

só termina quando a versão deste IC está sob controle do repositório de artefatos.

FIGURA 6.10 Fluxo de Trabalho Definir Itens de Configuração.

A Figura 6.10 ilustra o fluxo de trabalho definir itens de configuração que se inicia

quando o Gerente do GCM define o artefato que deverá ser controlado no sistema. O

artefato definido no repositório permanece no estado “em definição” até que o gerente

finalize sua definição executando a atividade de publicação do artefato que altera o

estado do artefato para “definido”.

Page 85: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

83

Os artefatos com estado “definido” são visíveis para o gerente de acompanhamento de

projetos que executa a atividade de permitir criação determinando qual desenvolvedor

vai ser responsável pela criação de uma versão do artefato. Ao executar esta atividade

uma versão de artefato é criada e seu estado definido como “permitido”.

As versões de artefatos com estado “permitido” são visíveis para os desenvolvedores.

Cada desenvolvedor visualiza as versões de artefatos que foram a ele permitidas e

executa a atividade de fazer check-out (falso). Ao executar esta atividade a versão de

artefato é enviada para a área de trabalho do desenvolvedor com o estado “em

elaboração”. Após finalizar a elaboração da versão do artefato, o desenvolvedor executa

a atividade de enviar para a o processo de qualidade sendo o estado da versão do

artefato alterada para “aguardando aprovação”.

As versões de artefatos com estado “aguardando aprovação” são visíveis para o

engenheiro da qualidade que executa a atividade de analisar artefato alterando o estado

da versão de artefato para “em analise”. A versão de artefato permanece neste estado até

que uma decisão seja tomada. Se o engenheiro da qualidade reprovar a versão de

artefato seu estado passa a ser “reprovado” e se aprovar o estado passa a ser

“aguardando check-in”.

As versões de artefatos com estado “reprovado” são visíveis para os desenvolvedores

que as elaboraram. Os desenvolvedores poderão executar a atividade de fazer check-out

(falso) para que a versão do artefato possa ser corrigida segundo as especificações do

engenheiro da qualidade. Nesta atividade o estado da versão passa para “em elaboração”

novamente, seguindo o mesmo fluxo definido anteriormente.

As versões de artefatos com estado “aguardando check-in” são visíveis para o

engenheiro de mudanças que executa a atividade de check-in alterando o estado da

versão para “controlada” e deixando-a disponível no repositório de artefatos.

Page 86: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

84

6.2.3 Fluxo de Trabalho Rastrear e Controlar Mudanças

Este fluxo de trabalho se inicia no momento em que um desenvolvedor elabora uma

proposta de alteração e termina com o artefato sendo novamente controlado.

Page 87: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

85

FIGURA 6.11 Fluxo de Trabalho Rastrear e Controlar Mudanças.

Page 88: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

86

O fluxo de trabalho representado na Figura 6.11 se inicia quando o desenvolvedor

elabora uma proposta de alteração no qual especifica qual versão de artefato deseja

alterar, o motivo da alteração, detalhes sobre o que será alterado, etc. A proposta fica no

estado “em definição” até que o desenvolvedor finalize-a. Ao finalizar a proposta o

desenvolvedor a envia para análise e o estado passa a ser “enviada”.

As propostas de mudança com estado “enviada” são visíveis pelo engenheiro de

mudanças que irá analisá-las sendo o estado alterado para “em análise”. O engenheiro

de mudanças vai analisar a proposta de mudança, verificar o impacto da alteração e

definir quais outros artefatos serão necessários alterar. A proposta se mantém no estado

“em analise” até que uma decisão seja tomada. O engenheiro de mudanças poderá

recusar a proposta, sendo neste caso seu estado alterado para “reprovada” ou aceitar a

proposta sendo seu estado alterado para “aprovada”.

As propostas de mudanças com estado “aprovadas” são visíveis pelo gerente do GCM

que será responsável por liberar a permissão de alteração para o desenvolvedor

apropriado. Uma vez concedida a permissão de alteração, a versão do artefato atual

(cuja proposta solicitou a alteração) mudará seu estado para “reservado” impedindo

assim que novas permissões de alterações sejam concedidas para a mesma versão de

artefato (check-out exclusivo). Em paralelo, uma nova versão será criada para o artefato

com o estado “permitido” sendo visível ao desenvolvedor que é responsável por sua

alteração.

Os próximos passos apresentados no fluxo de trabalho são idênticos ao descritos no

fluxo de trabalho anterior (6.3.1 Fluxo de Trabalho Definir IC). A única diferença é que

ao final do fluxo de trabalho quando o engenheiro de mudanças realiza a atividade de

check-in ambas as versões (versão atual que foi alterada e a nova versão do artefato) são

colocadas no estado de “controlada” e a proposta de mudança é colocada no estado

“concluída”.

Page 89: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

87

6.2.4 Fluxo de Trabalho Definir Template da Configuração

O Fluxo de Trabalho de definição de templates de Configuração permite ao usuário

definir um conjunto de artefatos que poderá ser reaproveitado em novos projetos. Por

exemplo, todo novo projeto envolve a atividade de identificar os IC que serão mantidos

sob controle no repositório, entretanto alguns artefatos já são comuns a todos os projetos

(i.g. plano de projetos, documento de requisitos, modelo descritivo, dentre outro). Para

evitar que a cada novo projeto seja necessário definir esses IC, define-se um (ou mais)

conjunto(s) que contenha esses artefatos e ao criar um novo projeto faz-se a associação

do template de configuração ao novo projeto, sendo que os artefatos definidos no

template serão automaticamente definidos no novo projeto sem a necessidade de

redefini-los.

FIGURA 6.12 Fluxo de Trabalho Definir Template de Configuração.

A Figura 6.12 apresenta o fluxo de trabalho Definir Template de Configuração. Esse

fluxo de trabalho inicia-se quando o engenheiro de artefatos define um conjunto de

artefatos padrões. O engenheiro de artefatos executa a atividade de criar template de

Page 90: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

88

configuração podendo selecionar dentre os artefatos padrões definidos, quais farão parte

daquele template de configuração.

6.2.5 Fluxo de Trabalho Propor um Novo IC

Esta funcionalidade permite que um desenvolvedor submeta uma proposta de

identificação de um novo IC.

Em um projeto real dificilmente todos os IC conseguem ser identificados no inicio do

planejamento sendo que muitos deles só serão identificados no decorrer do andamento

do projeto. O gerente da configuração é o responsável pela identificação dos IC do

projeto, entretanto muitas vezes quem descobre a necessidade de um IC ainda não

definido são os desenvolvedores e analistas. Quando essa situação ocorre, o

desenvolvedor poderá enviar uma proposta de identificação de um novo IC. Esta

proposta será analisada.

Page 91: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

89

FIGURA 6.13 Fluxo de Trabalho Propor Novo IC.

Page 92: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

90

A Figura 6.13 apresenta o fluxo de trabalho para propor um novo IC. Esse fluxo de

trabalho inicia-se quando o desenvolvedor executa a atividade de elaborar proposta de

um novo IC. Esta atividade gera uma proposta de IC que permanece no estado de “em

definição” até que o desenvolvedor conclua sua elaboração e execute a atividade de

envio da proposta que modifica o estado para “enviada”.

As propostas de IC em estado “definida” são visíveis apenas aos usuários com papel de

gerente da configuração que irão analisar cada proposta recebida tornando seu estado

“em analise”. As propostas de IC analisadas pelo gerente da configuração permanecem

no estado “em analise” até que uma decisão seja tomada alterando seu estado. Quando o

gerente recusa uma proposta de IC o estado se modifica para “rejeitada” e quando o

gerente aceita a proposta de IC ela entra no estado de “aceita”.

As propostas de IC com estado “aceita” são visíveis em uma lista para que o gerente

possa definir os IC efetivos do projeto. Ao definir um novo IC no repositório seu estado

é definido como “em definição” e permanece nesse estado até que o gerente execute a

atividade de publicação do artefato que altera o estado para “definido” podendo ser

visível nas próximas fases de outras atividades.

6.3 Ciclo de Vida de Artefatos e Versões

O controle e acompanhamento dos estados dos artefatos e versões é uma atividade

importante no processo de GCS, pois é através dela que conseguimos saber a situação

real e a fase que se encontra o artefato e suas diferentes versões. Um artefato pode

originar várias versões que devem ser tratadas e identificadas individualmente como

visto anteriormente (Capítulo 3) e cada versão segue um ciclo de vida individual das

demais.

Cada uma das versões de um artefato pode ter estados diferentes. Por exemplo: O

artefato “Usuário.java” poderá ter em um dado momento duas versões: “Usuário.java

versão 1.0” e “Usuário.java versão 1.1”. Cada uma das versões desse artefato poderá

Page 93: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

91

estar em uma fase diferente do processo: a versão 1.0 poderá estar sob análise pela

qualidade, enquanto a versão 1.1 é modificada. Pelo fato de que cada versão tem seu

ciclo de vida individual, torna-se necessário um controle diferenciado dos estados dos

artefatos e de cada uma de suas versões.

6.4 Ciclo de Vida de um Artefato

O ciclo de vida de um artefato poderá começar em duas situações diferentes: quando foi

feita uma proposta de artefato por um desenvolvedor ou quando o artefato for definido

diretamente pelo gerente do GCS no repositório (essas atividades são descritas no

Capitulo 3).

A Figura 6.14 abaixo apresenta o diagrama de estados para o artefato onde a passagem

de cada estado para outro é representada. A explicação detalhada de cada um dos

estados é descrita em seguida.

Page 94: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

92

sm Diagrama de Estado Artefato

inicio do ciclo de vida do artefato

Definido

Proposto

inicio a partir de uma proposta

descartado

Disponiv el

em definição

em definição de proposta

em analise de proposta

proposta aceita

proposta rejeitada

fim

fim

proposta foi aceitapara definir artefato

proposta foianalisada

proposta foi analisada

proposta é totalmente definida

artefato é descartado

desenvolvedor elabora a proposta (ainda não pronto)

proposta sendo analisada

artefato é completamente definido no repositorio

versão é criada

artefato esta sendo definido (ainda não pronto)

FIGURA 6.14 Diagrama de Estados do Ciclo de Vida do Artefato.

Primeiro vamos acompanhar o ciclo de vida de um artefato partindo de sua definição

direta no repositório.

O ciclo de vida de inicia com o desenvolvedor definindo a proposta e depois segue para

cada um dos demais estados. Segue abaixo a descrição detalhada de cada estado:

Em definição de proposta: este estado significa que uma proposta para o artefato esta

sendo definida pelo desenvolvedor. Entretanto essa definição ainda não foi submetida

(ainda não está pronta) para análise, estando ainda sob controle do desenvolvedor.

Proposto: este estado significa que uma proposta de artefato já foi totalmente definida e

concluída, ou seja, o desenvolvedor após o término da definição enviou a proposta para

Page 95: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

93

ser analisada. Neste estado o desenvolvedor passa a não ter mais o controle sob a

proposta, podendo apenas visualizar sua situação.

Em análise da proposta: este estado indica que o gerente de mudanças já esta

analisando a proposta enviada, entretanto ainda não foi possível determinar uma

decisão. Deste estado o artefato poderá seguir para um dos dois estados: proposta aceita

ou proposta rejeitada, conforme a decisão tomada na análise.

Proposta Rejeitada: neste estado a proposta para o novo artefato foi rejeitada na

análise e seu ciclo de vida chega ao fim, ou seja, o artefato não vai passar para nenhuma

outra fase.

Proposta Aceita: neste estado a proposta para o novo artefato foi aprovada na análise e

esta aguardando até que possa ser definida no repositório e seguir para as próximas

fases. Neste estado o artefato aceito fica aguardando em uma lista até que o responsável

possa defini-lo corretamente no repositório.

Em definição: neste estado o responsável pela definição dos artefatos no repositório

verifica a lista de artefatos que estão aguardando a definição e começa a defini-los. Este

estado significa que o artefato esta sendo definido, mas ainda não esta totalmente

concluída (não está pronto). Esta distinção entre os estados “em definição” e “definido”

é importante para que um artefato que não está totalmente definido não seja visível

pelas fases seguintes.

Definido: neste estado o artefato encontra-se totalmente definido no repositório

podendo seguir as fases adiante e inclusive ter suas versões criadas.

A partir de uma proposta de artefato feita pelo usuário vamos acompanhar o ciclo de

vida de um artefato.

Disponível: neste estado o artefato possui ao menos uma versão disponível no

repositório. Como cada versão poderá seguir seu próprio ciclo de vida, o artefato

permanece no estado disponível por todo restante de sua vida, até que em um

determinado momento, por algum motivo, seja explicitamente descartado.

Page 96: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

94

Descartado: neste estado o artefato deixa de ser um artefato “válido”, ou seja, torna-se

obsoleto. A criação de uma nova versão para o artefato não descarta a versão anterior,

apenas cria uma versão diferente para o mesmo artefato. Para que o artefato seja

descartado é necessária uma operação explícita do gerente do GCS. O descarte de um

artefato faz com que todas as suas versões sejam automaticamente descartadas.

A única diferença do ciclo de vida do artefato quando não iniciado por uma proposta, é

que seu inicio é representado pelo estado de “em definição” e a partir daí segue os

demais estados da mesma maneira descrita anteriormente.

6.5 Ciclo de vida das Versões do Artefato

O ciclo de vida de uma versão inicia-se a partir de uma permissão concedida a um

desenvolvedor para que este possa manipular as informações (o conteúdo) da versão.

Existem dois momentos em que uma versão é criada: na criação da versão inicial do

artefato e na modificação de uma versão existente. Na situação de criação de uma

versão inicial, ainda não existe uma versão definida para o artefato e o desenvolvedor

estará criando a primeira versão (deixando o artefato no estado disponível). A segunda

situação é quando o desenvolvedor deseja modificar uma versão que já existe e para isso

cria a versão seguinte (nesse caso o processo de modificação deve ser seguido).

A realidade é que toda versão criada será sempre nova, ou seja, quando criamos uma

versão não estamos alterando as informações do artefato que já existe, estamos apenas

fazendo com que em sua versão seguinte as informações sejam diferentes (com as

modificações necessárias).

A Figura 6.15 apresenta o ciclo de vida de uma versão demonstrando os diversos

estados pela qual a versão passa ao longo de sua vida.

Page 97: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

95

FIGURA 6.15 Diagrama de Estados do Ciclo de Vida da Versão.

O ciclo de vida de uma versão começa com a concessão de uma permissão para sua

criação, a partir deste ponto a versão segue para os demais estados. A seguir tem-se a

descrição detalhada de cada um dos estados:

Permitido: neste estado uma permissão de manipulação da versão foi concedida. Duas

situações podem levar a este estado: criar a primeira versão do artefato ou modificar

uma versão já existente. No caso de uma alteração, o gerente de projeto faz um “check-

out real”, ou seja, a operação de check-out propriamente dita é executada pelo gerente

de projetos e uma versão temporária é criada e destinada para uma lista de check-outs

permitidos do desenvolvedor.

Em elaboração: neste estado o desenvolvedor fez o check-out parcial da versão que

estava em sua lista de check-outs permitidos. O check-out falso não executa a operação

de check-out propriamente dita, apenas modifica o estado da versão para ela seja

disponibilizada na área de trabalho do desenvolvedor, dando a falsa idéia de que o

check-out foi feito naquele momento (por isso o nome check-out parcial). Uma vez

neste estado, a versão aparece na área de trabalho do desenvolvedor e permite que ele

faça as alterações necessárias.

Page 98: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

96

Aguardando aprovação: neste estado o desenvolvedor já concluiu totalmente as

alterações necessárias e enviou para aprovação. Este estado significa que a versão foi

enviada, mas ainda não foi analisada.

Em análise: neste estado a versão que foi enviada para aprovação esta sendo analisada

por um responsável. Este estado indica que a versão esta sob análise, mas ainda não esta

totalmente concluída, podendo permanecer neste estado enquanto durar o tempo de

análise.

Reprovado: neste estado a análise da versão foi reprovada e requer novas

modificações. As versões que estão neste estado são visíveis na lista de check-outs

permitidos do desenvolvedor com a sinalização de correção, ou seja, o desenvolvedor

terá de fazer um check-out falso para que esta versão esteja novamente em sua área de

trabalho e seja modificada para só então ser reenviada para nova análise.

Aguardando Check-in: neste estado a análise da versão foi aprovada e foi

encaminhada para o responsável por efetuar o check-in. As versões que estão neste

estado aparecem na lista de check-ins a serem feitos e aguarda até que o gerente de

mudanças o faça.

Controlado: neste estado a operação de check-in já foi realizada para a versão e ela

encontra-se controlada no repositório.

Reservado: neste estado a versão este impedida de ser feita check-out, ou seja, uma

modificação nesta versão foi solicitada por alguém e enquanto a nova versão não for

controlada no repositório a versão anterior (para a qual foi solicitada a modificação)

permanece com restrição de alteração. Este mecanismo implementa o conceito de

check-out exclusivo onde apenas um usuário por vez pode solicitar a alteração de uma

versão.

Bloqueado: neste estado a versão por algum motivo está impedida de ser manipulada.

Nenhuma operação poderá ser realizada sob esta versão enquanto o desbloqueio não for

realizado.

Page 99: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

97

Descartado: neste estado a versão foi explicitamente obsoletada e passa a não ter mais

“validade”. Para que este estado seja estabelecido o gerente do GCS precisa

explicitamente realizar a operação de descarte. Vale ressaltar que a criação de uma nova

versão não descarta a anterior.

6.6 Visibilidade e Versionamento de Artefatos

Outras duas características importantes implementadas neste trabalho são: o nível de

visibilidade dos IC’s e a forma na qual as versões são definidas. Essas duas

características são configuráveis de acordo com a necessidade de cada projeto e são

descritas a seguir neste capítulo.

6.6.1 Visibilidade dos Artefatos

Para garantir maior segurança nas informações mantidas no repositório, implementa-se

o conceito de visibilidade para os artefatos. Esse mecanismo permite que alguns

artefatos do repositório possam ser visíveis a todos os usuários do sistema enquanto

outros artefatos, por algum motivo, sejam visíveis apenas a um grupo restrito de usuário

com permissão de hierarquia mais elevada.

Os níveis de visibilidade definidos para o sistema são descritos abaixo:

• Públicos: os artefatos definidos com visibilidade pública são visíveis a todos os

usuários do sistema, não tendo restrições.

• Privados: os artefatos definidos com visibilidade privada são visíveis apenas

aos usuários com papel de Gerente de Configuração. Nenhum outro usuário

poderá visualizar esses artefatos no repositório até que eles sejam públicos.

6.6.2 Determinando o Tipo de Versionamento

Uma das maneiras mais comuns de numeração de versão é incrementando o segundo

numero após o ponto (e.g.: 1.1, 1.2 e 1.3) sendo esta a maneira padrão na qual o sistema

adota. Entretanto pode-se haver a necessidade de configurar a forma como será feita a

Page 100: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

98

numeração das versões. Essa configuração é oferecida através da opção de tipos de

versionamentos do sistema.

Um tipo de versionamento é uma configuração pré-estabelecida que determina a forma

que o incremento da versão será feito (antes ou após a vírgula). Um tipo de

versionamento é composto por um nome que identifica o tipo de versionamento, a regra

de versionamento (antes ou depois da vírgula) e de quanto será o incremento.

Um exemplo de aplicação deste mecanismo é poder estabelecer o número das versões

de acordo com a alteração ou revisões realizadas. Supondo que temos um IC na versão

1.0 e uma alteração for realizada podemos versioná-la para 2.0, mas se for realizada

uma revisão podemos versioná-la para 1.1. Ou ainda definir incrementos maiores para

destacar níveis diferentes de alterações (e.g.: 10.1, 20.1, 30.1).

Page 101: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

99

CAPÍTULO 7

ESTUDO DE CASO

Este Capítulo apresenta um estudo de caso que visa ilustrar parte do processo

utilizando a ferramenta desenvolvida neste trabalho. O exemplo utilizado para esse

estudo consiste em criar um IC no repositório, definir suas características e gerar a

versão inicial 1.0. Posteriormente este estudo ilustra o processo de alteração da

versão criada. Também são apresentadas algumas telas onde os gerentes podem

visualizar as informações.

7.1 Atividade de Definição de Classe Artefato.

FIGURA 7.1 Caso de Uso Definição de Classe Artefatos.

A Figura 7.1 apresenta a tela principal para a manipulação das Classes Artefatos. No

canto esquerdo desta interface o usuário poderá realizar uma busca por palavra chave, e

os resultados serão apresentados ao lado direito da mesma tela. Esta interface permite

ainda ao usuário criar, excluir, visualizar ou atualizar um registro de Classe Artefato.

Botões criar/excluir link para visualização permite edição dos dados

Busca

Page 102: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

100

7.2 Atividade de Criação de Classe Artefato

FIGURA 7.2 Formulário de Criação de Classe Artefato.

A Figura 7.2 apresenta o formulário de criação da Classe Artefato onde o usuário

poderá definir a Classe Artefato, bem como os atributos que a compõem. O formulário

permite a navegação através das abas na parte superior que dão acesso ao formulário

com as características de identificação da Classe Artefato, atributos e relacionamentos.

Para este exemplo foi criada uma Classe Artefato, denominada Documento de

Requisitos com os atributos nome, descrição e observação.

Dados para identificação da nova Classe Artefato.

Dados para identificação dos atributos.

Atributos já definidos

Page 103: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

101

7.3 Atividade para definição do IC

FIGURA 7.3 Interface de Acesso ao Repositório de Artefatos.

A Figura 7.3 apresenta a interface de acesso ao repositório onde o usuário poderá

manipular os IC de acordo com o projeto. Ao lado esquerdo é apresentada uma árvore

de Classes Artefatos com seus respectivos IC definidos para cada projeto. A interface

permite ainda uma busca por palavra chave, um botão para definição dos IC através de

um template pré-definido, um botão para definição de IC (independente de templates) e

um botão para excluir os IC (dependendo do caso).

Arvore de IC do projeto Definir novo IC para o projeto

Page 104: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

102

FIGURA 7.4 Formulário de Definição do IC para o Projeto.

A Figura 7.4 apresenta o formulário para a definição do IC para o Projeto. Neste

exemplo foi criado um IC denominado DREQ - Dissertação Mestrado que é um IC da

Classe Artefato Documento de Requisitos. Após definir o IC a interface disponibiliza

um botão para que o usuário possa publicar o artefato como definido.

Publica o IC como definido

Page 105: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

103

7.4 Atividade para Permitir a Criação

FIGURA 7.5 Formulário para Permitir a Criação do IC.

A Figura 7.5 apresenta a interface onde o usuário define a pessoa que será responsável

pela criação de uma versão para o IC definido anteriormente.

7.5 Atividade para Criação de Versão do IC

FIGURA 7.6 Tela de Check-outs Permitidos do usuário.

A Figura 7.6 apresenta a tela onde são identificados os IC que estão permitidos para o

usuário fazer a operação de check-out. Nesta interface o usuário deverá fazer o check-

out (check-out falso) para que o IC seja disponibilizado em sua área pessoal de trabalho.

Faz o check-out para a área pessoal

Page 106: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

104

FIGURA 7.7 Tela de Manipulação de Informações do IC.

A Figura 7.7 apresenta o formulário onde o usuário permitido vai manipular as

informações referentes ao IC. Cada Campo apresentado nesta interface é montado

dinamicamente de acordo com as definições de sua Classe Artefato. O usuário poderá

apenas salvar as informações e enviar para a qualidade depois ou salvar e já enviar.

Atributos definidos na Classe Artefato.

Relacionamentos definidos na Classe Artefato.

Page 107: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

105

7.6 Atividade para Avaliar IC

FIGURA 7.8 Formulário de Avaliação do IC.

A Figura 7.8 apresenta o formulário de avaliação do IC enviado à qualidade. Nesta tela

é possível visualizar todas as informações sobre o IC bem como seus relacionamentos.

Page 108: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

106

7.7 Atividade para Fazer Check-in

FIGURA 7.9 Formulário de Check-in.

A Figura 7.9 apresenta o formulário para realização de Check-in. Nesta interface o

usuário faz o check-in e seleciona o tipo de versionamento de acordo com a pré-

configuração que pode ser realizada no modo de configuração da ferramenta.

Page 109: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

107

7.8 Atividade para Visualização das Versões no Repositório

FIGURA 7.10 Tela de Visualização das versões dos IC.

A Figura 7.10 apresenta a interface de visualização das versões existentes de cada IC no

repositório. Neste exemplo podemos visualizar a versão 0.1 que foi criada para o IC

ART -13 DREQ – Dissertação de Mestrado. Podemos para cada versão realizar as

operações de check-out (dependente de proposta de modificação), ver histórico,

bloquear, desbloquear, alterar a visibilidade ou editar informações.

A partir de agora esta versão estará disponível para ser visualizada e utilizada pelos

membros da equipe do projeto. Caso seja necessário realizar alguma modificação nela,

deve-se seguir formalmente o processo de alteração. As interfaces a seguir apresentam

um exemplo do processo de modificação desta versão;

Versões existentes do IC “DREQ – Dissertação Mestrado” Operações disponíveis para a versão

Page 110: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

108

7.9 Atividade de Proposta de Mudança

FIGURA 7.11 Formulário de Proposta de Alteração.

A Figura 7.11 apresenta o formulário para elaboração da proposta de alteração de um

artefato quando este se encontra controlado e visível para os usuários. Em uma mesma

proposta poderão ser enviadas várias alterações para artefatos diferentes. Uma proposta

poderá ser associada a um problema levantado pelo processo de resolução de

problemas. Este processo foi implementado no ambiente e-WebProject® e integrado a

ferramenta de GCS desenvolvida.

Vincular a um problema

Características do artefato a ser alterado

Escolher o artefato a ser alterado

Características da Proposta

Page 111: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

109

7.10 Atividade de Análise de Proposta de Mudança

FIGURA 7.12 Interface Analisar Proposta de Mudança.

A Figura 7.12 apresenta o formulário para analise da proposta de modificação de

artefato enviada por um desenvolvedor. Nesta proposta de modificação poderão ser

adicionadas diversas solicitações de modificação para diferentes artefatos. Neste caso, a

análise será realizada para cada artefato separadamente.

Dados da analise da proposta

Analise de cada artefato

Page 112: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

110

FIGURA 7.13 Interface para Relatar a Análise da Proposta.

A Figura 7.13 apresenta a interface para registrar a análise dos artefatos solicitados para

modificação na proposta. Para cada artefato será registrado o resultado da análise e

posteriormente serão definidos os artefatos que serão alterados. Para uma mesma

solicitação pode ser necessário alterar mais de um artefato (dependendo dos

relacionamentos entre os artefatos), e é neste momento que isso será definido.

Registro da analise para modificação do artefato

Definição dos artefatos que serão modificados

Page 113: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

111

7.11 Atividade de Permissão de Check-out

FIGURA 7.14 Interface de Permissão de Check-out.

A Figura 7.14 apresenta a interface para a atividade de permissão de check-out. Após as

propostas de mudanças serem analisadas e aceitas, faz-se necessário definir o

responsável pela alteração efetiva do artefato. Essa atividade dá a permissão ao usuário

definido de realizar o check-out do artefato para alteração.

Após o check-out ser permitido, o usuário irá visualizar o artefato para ser modificado

em sua área (vide figura 7.6). A partir deste ponto o processo segue o mesmo fluxo

descrito na atividade de criação da versão do artefato.

Definir o usuário responsável pelo

Proposta de mudança aceita

Page 114: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

112

Page 115: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

113

CAPÍTULO 8

CONCLUSÕES

A abordagem apresentada neste trabalho mostra que com a utilização de modelos de

objetos dinâmicos é possível construir um repositório de artefatos capaz de determinar

no decorrer da execução do processo as características específicas para os artefatos.

Alguns benefícios podem ser observados como a qualidade das informações mantidas

sobre os artefatos, a flexibilidade de adaptação às diferentes necessidades e o

dinamismo com o qual as informações podem ser manipuladas a partir de meta-

informação do artefato.

Outra vantagem observada é que esta forma de estruturação do repositório, possibilita a

definição de modelos para os artefatos vindo a estar em conformidade com a tendência

das organizações que desenvolvem software e que adotam modelos de maturidade ou

gestão (CMMI, ISO12207, MPSBr) em definir modelos de documentos (templates) e

documentos que especifiquem as regras para elaboração dos artefatos (ex. padronização

de programas em JAVA).

Entretanto, algumas desvantagens podem ser observadas como a complexidade do

modelo, complexidade de implementação e a necessidade do envolvimento de uma

pessoa cujo conhecimento sobre artefatos seja profundo o suficiente para saber como

eles devem ser estruturados no repositório de modo a definir as classes dos artefatos.

A prototipação do processo de GCS contribuiu para consolidar alguns conceitos e

validar a conformidade de atividades já estabelecidas no processo com utilização do

repositório dinâmico.

8.1 Contribuições

De acordo com os objetivos e características definidas para este trabalho de dissertação

de mestrado segue abaixo a descrição das contribuições:

Page 116: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

114

• Permitir definir quais informações serão mantidas sobre cada artefato;

A abordagem apresentada neste trabalho possibilita a definição das características

que serão mantidas sobre cada artefato através da definição de uma Classe de

artefato para a qual são definidos os atributos e através da qual são construídos os

artefatos.

• Permitir estabelecer o nível de granularidade a ser mantido pelo repositório;

O nível de granularidade pode ser definido através dos relacionamentos entre as

classes de artefatos criadas. A abordagem permite definir tanto um nível alto de

granularidade (e.g. definindo a classe artefato como “ClasseJava” e colocando como

seu atributo apenas um campo para upload do arquivo do código-fonte) quanto um

nível detalhado de granularidade(e.g. definir duas classes de artefato denominadas

“ClasseJava” e “MetodosJava” com seus respectivos atributos e atribuir

relacionamento entre elas).

• Permitir que as configurações acima sejam decididas em tempo de execução;

Permitir que alterações nas definições do repositório sejam feitas de forma

transparente não sendo necessário reescrever o sistema;

Através da utilização de DOM foi possível o cumprimento destes dois objetivos

sendo que a definição de novas classes de artefatos (atributos e relacionamentos)

não necessita da interrupção e nem de alteração no código-fonte da ferramenta.

• Construir uma ferramenta para apoiar o processo de GCS; Manter controle de

versões dos artefatos dinâmicos; Manter controle de configuração dos artefatos

dinâmicos; Manter controle do processo de alteração dos artefatos dinâmicos;

Acompanhar a situação de cada versão dos artefatos em cada fase do processo;

Integrar o repositório dinâmico com a ferramenta de GCS;

Através da ferramenta desenvolvida neste trabalho é possível fazer controle de

versões e configurações; controle do processo de modificação bem como

acompanhar os estados de cada artefato, atendendo a todos estes objetivos acima.

Page 117: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

115

• Integrar a ferramenta de GCS ao ambiente de engenharia de software e-

WebProject®.

A ferramenta de GCS desenvolvida trabalha de maneira integrada ao ambiente de

engenharia de software e-WebProject® , sendo este a base de controle de acesso e

permissões dos papeis assumidos pelos usuários.

Como contribuição deste trabalho destaca-se também a implementação das atividades

definidas para o CMMI. Segue abaixo uma comparação entre as atividades definidas no

CMMI e as atividades implementadas neste trabalho.

TABELA 8.1 Comparação entre atividades do CMMI e suportadas no trabalho.

Meta específica

Prática específica

Sub-Práticas CMMI Atende Observação

SG 1 - Estabelecer baselines

SP 1.1 - Identificar os itens de configuração

Selecionar os itens de configuração e os produtos de trabalho associados segundo um critério

documentado

sim Ao criar uma configuração é

possível selecionar os IC que farão parte

dela.

Atribuir um identificador único para o IC

sim Para cada IC é definido um prefixo e

um código de identificação.

Especificar as características

importantes de cada IC

sim Para cada IC podem-se definir quais

características serão mantidas

Especificar quando um IC deve

ser colocado sobre a gerência de configuração

sim O mecanismo de WorkFlow

determinada que o IC é colocado sob

controle pela atividade de Check-in após ser encaminhado e aceito

pelo processo de qualidade.

Identificar um proprietário responsável por cada IC

parcial Os IC são associados a um projeto, e cada operação realizada sob as versões é

registrada e identifica quem a realizou.

Continua

Page 118: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

116

SP 1.2 - Estabelecer um

sistema de controle de

Configuração

Estabelecer um mecanismo para gerenciar

múltiplos níveis de controle na gestão da

configuração

sim O nível de controle que se deseja pode

ser definido através da granularidade definida nas classes artefatos. A privacidade pode

ser garantida através da visibilidade e

papeis do sistema. Armazenar e recuperar

itens de configuração em um sistema de gerenciamento

sim Através do repositório podemos colocar um

ítem sob controle (seguindo o workflow) e recupera-lo sempre

que ele esteja disponível.

Compartilhar e transferir itens de configuração

dentro de um sistema de gerenciamento da

configuração.

sim O repositório público que permite o

compartilhamento dos IC, possibilitando aos desenvolvedores a manipulação (com restrição) dos IC

controlados. Armazenar e recuperar

versões arquivadas de itens de configuração

sim A cada check-in realizado, uma nova versão é criada no

repositório. A versão (quando disponível) pode ser recuperada

no Repositório. Armazenar, atualizar e

recuperar registros de gerenciamento da

configuração.

sim Os registros de cada IC podem ser

acompanhados através do histórico de

suas operações. Criar relatórios de

gerenciamento da configuração

sim É possível retirar relatórios sobre a situação dos IC’s,

sobre as configurações.

Preservar o conteúdo do sistema de gerenciamento

da configuração

sim Este mecanismo é fornecido pela ferramenta e-

WebProject, através de backups, e

mecanismos de recuperação de falhas.

Revisar a estrutura do processo de

gerenciamento da configuração caso

necessário

não Uma vez que o processo é modelado e executado através de uma maquina de

processos, essa atividade será

atendida pelos ajustes

Tabela 8.1 - Continuação

Continua

Page 119: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

117

no modelo de processo.

SP 1.3 - Criar ou Distribuir Baselines

Obter autorização do comitê de controle da

configuração (CCC) antes de criar ou liberar linhas

de bases de itens de configuração

sim Os IC’s só podem ser criados por um papel

responsável. Caso um desenvolvedor queira criar um artefato, uma proposta deverá ser

submetida a aprovação.

Criar ou liberar linhas de bases somente a partir de itens de configuração sob

gerenciamento de configuração

sim As releases poderão ser criadas apenas a

partir de IC pertencentes a configurações previamente controladas.

Documentar o conjunto de itens de configuração que formam uma linha de base

parcial A documentação pode ser feita através dos

campos determinados na criação da Configuração.

(documentação pobre em detalhes)

Tornar público o atual conjunto de linhas de

bases

sim Através do repositório podemos definir a

visibilidade dos itens controlados deixando-os ou não visíveis a

todos. SG 2 -

Rastrear e Controlar as Mudanças

SP 2.1 - Rastrear as Requisições de Mudanças

Registrar os pedidos de alterações em uma base de pedidos de alterações

sim As mudanças devem passar por um

processo formal através de uma

proposta enviada ao responsável.

Analisar o impacto das alterações e correções

propostas

sim As propostas são analisadas e o

impacto de suas correções é analisado

através dos relacionamentos

mantidos entre os IC. Revisar pedidos de

alterações com o profissional responsável

pelas linhas de base para obter sua aprovação

parcial Pode ser considerado através do papel

definido para o pela analise das propostas

de mudanças. Rastrear o estado do

pedido de alteração até a sua conclusão

sim As propostas de mudanças passam por diferentes estados que

podem ser visualizados para

definir qual a fase se

Tabela 8.1 - Continuação

Continua

Page 120: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

118

encontra.

SP 2.2 - Controlar os Itens de

Configuração

Controlar as alterações nos itens de configuração durante o ciclo de vida dos

produtos

sim Cada IC é mantido sob controle e quando uma alteração precisa ser feita ela passa por todo processo formal de mudança e o IC é

versionado. Obter autorização antes

introduzir um item de configuração modificado

no sistema de gerenciamento de

configuração

sim Através das permissões

concedidas ao papeis apenas o papel responsável tem

permissão de fazer o checkin para introduzir um IC modificado no

repositório. Fazer “Check-in” e “check-

out” dos itens de configuração no sistema

de gerenciamento de configuração de maneira a

manter o acerto e a integridade dos itens de

configuração

sim O sistema implementa o modelo Check-in /

Check-out

Realizar revisões para garantir que as alterações

não tenham causado defeitos imprevistos na linha de base. (e.g., que

não ameacem a segurança ou a proteção

do sistema)

sim Garantido pelo analise de impacto feito

através dos relacionamentos dos

IC.

Registrar as alterações nos itens de configuração, bem como as justificativas

para elas.

sim Para cada operação realizada sob uma versão é registrado um histórico (quem,

quando, onde e porque)

SG 3 - Estabelecer Integridade

SP 3.1 - Estabelecer um

registro do Gerenciamento da Configuração

Registrar as ações do gerenciamento da

configuração em um nível de detalhe suficiente de

modo a que o conteúdo e o estado de cada item de

configuração sejam conhecidos e que versões

anteriores possam ser recuperadas.

sim Cada versão é tratada individualmente,

sendo que o estado e as informações sobre cada uma delas são

mantidos, possibilitando

recuperar qualquer informação sobre qualquer versão.

Garantir que os interessados tenham

acesso e conhecimento do estado da configuração

dos itens de

sim Através dos papéis que definem as

permissões e através da visibilidade dos IC podemos garantir o

Tabela 8.1 - Continuação

Continua

Page 121: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

119

configuração acesso aos interessados aos IC.

Especificar a versão atual das linhas de base

sim Assim como os IC uma configuração

pode ser versionada. Identificar a versão dos

itens de configuração que constituem uma linha de

base específica

sim Para cada configuração pode-se

determinar qual versão de qual IC será

incluída. Descrever as diferenças

entre linhas de base sucessivas

parcial Apenas é possível verificar as diferenças

entre versões que compõe uma ou outra

configuração. Revisar o estado e o

histórico de alterações de cada item de configuração

sim Através do Histórico das versões podem-se verificar as operações

que foram feitas ao longo de sua vida.

SP 3.2 - Executar Auditoria da

Configuração

Avaliar a integridade das linhas de base

não

Confirmar que os registros do gerenciamento da

configuração identificam corretamente os itens de

configuração

não

Rever a estrutura e a integridade dos itens no

sistema de gerenciamento de configuração

não

Confirmar a completude e o acerto dos itens no

sistema de gerenciamento da configuração

não

Confirmar a conformidade com a aplicação dos

padrões e procedimentos definidos

não

Rastrear as ações dos itens da auditoria até a

sua conclusão

não

Atividades não suportadas pela

ferramenta, entretanto a ferramenta fornece informações para a realização dessas

atividades.

Conforme apresentado na Tabela 6.1 a maioria das atividades definidas no modelo

CMMI (2002) são suportadas neste trabalho.

Outra contribuição importante é a capacidade de rastreabilidade dos artefatos. A

ferramenta permite rastrear a evolução de cada artefato armazenada no repositório

Tabela 8.1 - Conclusão

Page 122: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

120

através de seus relacionamentos. È possível, por exemplo, rastrear a origem de um

artefato, sua composição bem como suas modificações ao longo do tempo.

8.2 Trabalhos Futuros

Como trabalho futuro propõe-se melhorar o modelo utilizado para versionar as classes

de artefatos, possibilitando desta forma a adição ou remoção de características definidas

nas classes, sem que estas alterações sejam necessariamente incorporadas aos IC já

definidos. Embora a solução para esse problema já tenha sido pensada, estes aspectos

não foram implementados na solução atual pelo impacto das alterações no tempo

pretendido.

Outra proposta interessante de continuidade deste trabalho é a integração do repositório

dinâmico com a máquina de processos permitindo que ao definir um modelo de

processos sejam definidos também os artefatos de entrada e saída de cada atividade. O

ambiente de engenharia de software e-WebProject®, no qual a ferramenta está inserida,

está em constante evolução e diversos trabalhos tem sido realizados no intuito de

aprimorá-lo. Alguns trabalhos desenvolvidos (CEREJA, 2004 ; CASILLO, 2006)

apresentam propostas de implantação de agentes autônomos para controlar a máquina

de processos do e-WebProject®.

Page 123: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

121

REFERÊNCIAS BIBLIOGRÁFICAS

ABDALA, M. A. D. Uma abordagem para a gerência das modificações e da configuração em um ambiente integrado para o desenvolvimento e gestão de projetos de software. 2004-06-29. 292 p. (INPE-14099-TDI/1078). Dissertação de Mestrado - Instituto Nacional de Pesquisas Espaciais, São José dos Campos. 2004. Disponível em: <http://urlib.net/sid.inpe.br/jeferson/2004/10.01.16.56>. Acesso em: 02 maio 2008.

ACUÑA, S. T. Software process modelling, In: WORLD MULTICONFERENCE ON SYSTEMICS, CIBERNETICS AND INFORMATICS (SCI 2001), 5.,. 2001, Orlando, Florida. Proceedings... Orlando: ISAS/ICI, 2001.

ALMEIDA, W. R. Uma abordagem para a persistência dos modelos de objetos de sistemas configuráveis e adaptáveis. Dissertação (Mestrado em Computação Aplicada) - Instituto Nacional de Pesquisas Espaciais, São José dos Campos. 2005.

AMBRIOLA, V.; CONARDI, R.; FUNGGETTA, A. Assessing process centered software engineering environments. Transactions on Software Engineering and Methodology, v. 6, n. 3, p. 283-328, 1997

BERLINER, B. CVS II: Parallelizing Software Development. In: WINTER 1990 USENIX TECHNICAL CONFERENCE, 1990, Washington, DC. Proceedings … Washington: USENIX, 1990

BRUNT, E. V. Implementing a flexible software configuration management process. Software Engineering II , 1996. Disponível em: citeseer.ist.psu.edu/vanbrunt96implementing.html. Acesso em: 02 maio 2008.

BARNSON, M. P.; STEENHAGEN, J. The Bugzilla guide – 2.17.5 development release. [S.l]: The Bugzilla Team, 2003.

CAPABILITY MATURITY MODEL INTEGRATION (CMMI). CMMI for Systems Engineering software, integreted product and process development, and supplier sourcing. Pittsburgh PA:CMMI-SE/SW/IPPD/SS, v1.1), 2002.

CARDOSO, P. E. Uma nova arquitetura para a representação das regras de negócio em modelos de objetos dinâmicos. 2005-03-01. 135 p. (INPE-13044-TDI/1020). Dissertação (Mestrado em Computação Aplicada) - Instituto Nacional de Pesquisas Espaciais, São José dos Campos. 2005. Disponível em: <http://urlib.net/sid.inpe.br/iris@1913/2005/04.11.13.31>. Acesso em: 02 maio 2008.

CEREJA JR., M. G. S. A.; N.; BORREGO FILHO, L.F.; GENVIGIR, E.C.; LUQUE, L.; TAVARES, R.P.; CASILLO, B.H. (PDE) Process Definition Environment: uma ferramenta para apoio à definição de processos de software no ambiente e-WebProject.

Page 124: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

122

In: CONGRESSO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE.14., 2003, Curitiba. Proceedings… Curitiba: CITS, 2003.

CONRADI, R.; JACCHERI, M.L. Process modelling languages., In: Derniame, J. C.; Ali Kaba, B.; Wastel, D. (eds.) Software process: principles, methodology, and technology. New York: Springer Verlag, 1998. Lecture Notes in Computer Science 1500.

CUGOLA G.; GHEZZI, C. Software processes: a retrospective and a path to the future. In: INTERNATIONAL CONFERENCE ON SOFTWARE PROCESS, 5., 1998, Lisle. Proceedings… Lisle: [s.n], 1998.

ESTUBLIER, J. Software configuration management: a roadmap. In: INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, THE FUTURE OF SOFTWARE ENGINEERING, 22, Limerick. Proceedings... Limerick, Ireland, 2000. p. 279-289.

FIGUEIREDO, S.; SANTOS, G.; ROCHA, A. R. Gerência de configuração em ambientes de desenvolvimento de software orientados à organização In.: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE, 3., 2004, Brasília, DF, Brasil. Anais... Brasília: [s.n], 2004.

FUGGETTA. A. Software process: a roadmap. In: Finkelstein, A. (ed.). The future of software engineering. [S.l]: ACM Press, 2000.

GENVIGIR, E. C. Um modelo de processo da engenharia de requisitos aplicáveis a ambientes de engenharia de software centrados em processos. 2004-05-27. 258 p. (INPE-14630-TDI/1201). Dissertação de Mestrado - Instituto Nacional de Pesquisas Espaciais, São José dos Campos. 2004. Disponível em: <http://urlib.net/sid.inpe.br/jeferson/2004/07.05.16.17>. Acesso em: 02 maio 2008.

GRUHN, V. Process-centered software engineering environments: a brief history and future chalenges. Anals of Software Engineering, v.14, p. 363-382, 2002.

HASS, A. Configuration management principles and price. New York: Addison Wesley Professional, 2002.

HUMPHREY, W. S; Kellner, M. I. Software process modeling. Pittsburgh, Pennsylvania: Carnegie Mellon University- SEI Software Engineering Institute ,1988.

IBM. IBM rational ClearCase. 2007. Disponível em: http://www-306.ibm.com/software/awdtools/clearcase . Acesso em: 29/maio/2007.

IBM. IBM rational ClearQuest. 2007b. Disponível em: http://www-306.ibm.com/software/awdtools/clearquest .Acesso em: 29/maio/2007.

INTERNACIONAL ORGANIZATION OF STANDARDIZATION/ INTERNATIONAL ELECTROTECHNICAL (ISO/IEC). ISO/IEC15504-2. Software

Page 125: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

123

Process Assessment – A reference model for processes and process capability- Part 2”. Geneva, Switzerland, 1998.

INTERNACIONAL ORGANIZATION OF STANDARDIZATION/ INTERNATIONAL ELECTROTECHNICAL COMMISION.(ISO/IEC). ISO/IEC12207. International standard for information technology - software life cycle processes. Pittsburgh, Pennsylvania, 1995.

LAHOZ, C. H. N. Uma abordagem para a gerência da qualidade em um ambiente de engenharia de software centrado em processo. 2004-03-19. 309 p. (INPE-11550-TDI/958). Dissertação (Mestrado em Computação Aplicada) - Instituto Nacional de Pesquisas Espaciais, São José dos Campos. 2004. Disponível em: <http://urlib.net/sid.inpe.br/jeferson/2004/05.06.14.08>. Acesso em: 02 maio 2008.

LOPES, L. G. B.; MURTA, L. G. P.; WERNER, C. M. L. Controle de modificações em software no desenvolvimento baseado em componentes. In: WORKSHOP DE MANUTENÇÃO DE SOFTWARE MODERNA (WMSWM), 2005, Manaus, AM. Anais… Manaus: [s.n.], 2005.

KELLNER, M. I. H.; GREGORY, A. Software process modeling. Pennsylvania: Carnegie Mellon University.. 1988.

KRUCHTEN, P. Introdução ao RUP: Rational Unified Process. Rio de Janeiro: Ciência Moderna, 2003.

LEON, A. A guide to software configuration management. Norwood, MA: Artech House Publishers, 2000.

MACKAY, S. E. The state of the art in concurrent, distributed configuration management. In: NTERNATIONAL WORKSHOP ON SOFTWARE CONFIGURATION MANAGEMENT (SCM5), 5., 1995, Seattle, WA. Proceedings… Seattle: [s.n], p. 180-193. Disponível em: http://citeseer.ist.psu.edu/mackay95state.html. Acesso em: 02 maio 2008.

MURTA, L. G. P., Gerência de configuração no desenvolvimento baseado em componentes. Tese de D.Sc., COPPE/UFRJ, Rio de Janeiro, RJ, Brasil, 2006.

OLIVEIRA, A.A.C. P.; PRIMO F.F.; CRUZ, J.L.; MARTINO, W.R. Gerência de configuração de software – evolução do software sob controle. São Paulo: Instituto Nacional de Tecnologia da Informação, Laboratório de Avaliação e Melhoria de Processo de Software, 2001. Relatório Técnico.

PRESSMAN, R. S. Engenharia de software. São Paulo: Editora Makron Books, 2006.

REIS, C. A. L. APSEE - uma abordagem baseada em conhecimento para gerência de processos de software evolutivos. Porto Alegre: Universidade Federal do Rio Grande do Sul, 2001. Proposta de Tese.

Page 126: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

124

REIS, C. R. Uma visão geral do Bugzilla, uma ferramenta de acompanhamento de alterações. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE – SBES, 16., 2002, Gramado RS. Anais... Gramado: SBC, 2002. Sessão de Ferramentas.

RIEHLE, D. T.; M.; Johnson, R. Dynamic object model. In: CONFERENCE ON PATTERNS LANGUAGES OF PROGRAMS, 2000, Whasington. Proceedins… Washington: Washington University Departament of Computer Science, 2000.

SANT'ANNA, N. Um ambiente integrado para o apoio ao desenvolvimento e gestao de projetos de software para sistemas de controle de satélite. 2000-09. 225 p. (INPE-8306-TDI/765). Tese (Doutorado em Computação Aplicada) - Instituto Nacional de Pesquisas Espaciais, Sao Jose dos Campos. 2000. Disponível em: <http://urlib.net/dpi.inpe.br/lise/2002/03.28.20.03>. Acesso em: 02 maio 2008.

SANT'ANNA, N.; CEREJA JR., M. G.; BORREGO FILHO, L. F.; LUQUE, L.; CASILLO, B. H. e-WebProject: um ambiente integrado para apoio ao desenvolvimento e gestão de projetos de softare. In: CONFERÊNCIA INTERNACIONAL DE TECNOLOGIA DE SOFTWARE: QUALIDADE E PRODUTIVIDADE NO GERENCIAMENTO DE PROJETOS, 13., 2002, Curitiba, BR. Anais... 2002. p. 163-175.

SOCIEDADE SOFTEX. MPS.BR – Melhoria de processo do software brasileiro[S.l]: Softex-Associação para Promoção da Excelência do Software Brasileiro, 2005. (MPS.BR-Guia Geral).

SOMMERVILLE, I. Engenharia de software. São Paulo: Editora Addison Wesley. 2003.

TICHY, W. RCS – a system for version control, Software - practice & experience, v.15, p 637-654. 1985

YODER, J. W. B., F.; JOHNSON, R. Architecture and design of adaptive object models. In: CONFERENCE ON OBJECT ORIENTED PROGRAMING SYSTEMS, 2001, Tampa Bay, Florida. Proceedings… Tampa Bay: OOPSLA, 2001.

Page 127: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

125

APÊNDICE A

DOCUMENTAÇÃO DOS CASOS DE USO DO SISTEMA

Neste Apêndice será descrito cada caso de uso detalhadamente, separados por seus

papeis.

A1 Administrador da Configuração

Este papel permite ao usuário fazer as configurações básicas inicias necessárias para o

funcionamento do sistema. Para que a ferramenta esteja em condições de uso, tornam-se

necessárias algumas configurações básicas tais como valores pré-definidos de categorias

que devem estar devidamente cadastrados no sistema antes da operação efetiva. Estas

configurações são atribuídas como responsabilidades do papel denominado

Administrador da Configuração.

ud RepositorioDeArtefatos

Administrador da

Configuração

Manter GrauDeRelacionamento

Manter Categoria de Template de

Configuracao

Manter Tipo de Versionamento

Manter Prefixo

FIGURA A.1 Casos de Uso do Administrador da Configuração.

A1.1 Caso de Uso Manter Categoria de Template de Configurações Identificador do Caso de Uso UC-GCM-1.1 Nome do Caso de Uso Manter Categoria de Template de Configuração

Page 128: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

126

Atores Administrador da Configuração Pré Condição Um usuário com perfil de Administrador da Configuração

deve ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre as

categorias dos templates das configurações. O usuário poderá definir quais os tipos de categorias devem ser utilizados para categorizar os templates de configuração.

Primeiro Cenário – Criar Nova Categoria de Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter categorias de template de configurações; 2.- O sistema apresentará uma lista com todos as categorias de template de configurações disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à categorias de template de configurações, como nome, descrição e observação; 5.- O usuário entra com os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Categoria de Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter categorias de template de configurações; 2.- O sistema apresentará uma lista com todos as categorias de template de configurações disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais da categoria de template de configurações, como nome, descrição e observação; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Excluir Categoria de Template da Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter categorias de template de configurações; 2.- O sistema apresentará uma lista com todos as categorias de template de configurações disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados;

Page 129: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

127

5.- O sistema verifica as informações e exclui da base de dados. Fluxos Alternativos

No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Categoria de Template da Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter categorias de template de configurações; 2.- O sistema apresentará uma lista com todos as categorias de template de configurações disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre a categoria de template de configurações.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A1.2 Caso de Uso Manter Grau de Relacionamento Identificador do Caso de Uso UC-GCM-1.2 Nome do Caso de Uso Manter Grau de Relacionamento Atores Administrador da Configuração Pré Condição Um usuário com perfil de Administrador da Configuração

deve ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre os graus

de relacionamento. O usuário poderá definir quais os tipos de relacionamento devem existir entre os artefatos armazenados no repositório.

Primeiro Cenário – Criar Novo Grau de Relacionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter grau de relacionamento; 2.- O sistema apresentará uma lista com todos os registros de grau de relacionamento disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de grau de relacionamento, como nome, descrição e observação; 5.- O usuário entra com os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Grau de Relacionamento Fluxo de Eventos:

Page 130: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

128

Fluxo Principal 1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter grau de relacionamento; 2.- O sistema apresentará uma lista com todos os registro de grau de relacionamento disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do grau de relacionamento, como nome, descrição e observação; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Excluir Grau de Relacionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter grau de relacionamento; 2.- O sistema apresentará uma lista com todos os registros de grau de relacionamento disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Grau de Relacionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter grau de relacionamento; 2.- O sistema apresentará uma lista com todos os registros de grau de relacionamento disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o grau de relacionamento.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A1.3 Caso de Uso Manter Tipo de Versionamento Identificador do Caso de Uso UC-GCM-1.3 Nome do Caso de Uso Manter Tipo de Versionamento Atores Administrador da Configuração Pré Condição Um usuário com perfil de Administrador da Configuração

deve ter sido validado pelo sistema.

Page 131: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

129

Descrição Possibilita a manutenção das informações sobre os tipos de versionamento. O usuário poderá definir como serão versionados os artefatos e qual o valor de seu incremento.

Primeiro Cenário – Criar Novo Tipo de Versionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter tipo de versionamento; 2.- O sistema apresentará uma lista com todos os registros de tipo de versionamento disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de tipo de versionamento, como nome, descrição, observação, valor do incremento e posição do incremento (antes ou depois do ponto); 5.- O usuário entra com os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Tipo de Versionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter tipo de versionamento; 2.- O sistema apresentará uma lista com todos os registro de tipo de versionamento disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do tipo de versionamento, como nome, descrição, observação, valor do incremento e posição do incremento (antes ou depois do ponto); 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Excluir Tipo de Versionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter tipo de versionamento; 2.- O sistema apresentará uma lista com todos os registros de tipo de versionamento disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Page 132: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

130

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Tipo de Versionamento Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter tipo de versionamento; 2.- O sistema apresentará uma lista com todos os registros de tipo de versionamento disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o tipo de versionamento.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A1.4 Caso de Uso Manter Prefixo Identificador do Caso de Uso UC-GCM-1.4 Nome do Caso de Uso Manter Prefixo Atores Administrador da Configuração Pré Condição Um usuário com perfil de Administrador da Configuração

deve ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre os

prefixos de identificação dos artefatos. O usuário poderá definir prefixos de identificação por projetos.

Primeiro Cenário – Criar Novo Prefixo Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter prefixo; 2.- O sistema apresentará uma lista com todos os registros de prefixos disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4 – O sistema apresenta uma opção de escolha do projeto. 5 - O usuário seleciona o projeto para o qual deseja criar o prefixo. 6.- O sistema apresenta um formulário com os dados referentes à um novo registro de prefixo, como nome, descrição, observação e o projeto selecionado previamente; 7.- O usuário entra com os dados; 8.- O usuário submete as informações; 9.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Prefixo Fluxo de Eventos: Fluxo Principal

Page 133: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

131

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter prefixo; 2.- O sistema apresentará uma lista com todos os registro de prefixos disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do prefixo, como nome, descrição, observação, e projeto; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Excluir Prefixo Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter prefixo; 2.- O sistema apresentará uma lista com todos os registros de prefixo disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Prefixo Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter prefixo; 2.- O sistema apresentará uma lista com todos os registros de prefixos disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o prefixo.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A2 Ator Engenheiro de Artefatos

Este papel permite ao usuário definir a estrutura dos artefatos, ou seja, determinar os

tipos de artefatos que deverão existir no projeto (classes artefatos) e seus respectivos

valores a serem mantidos (atributos). É responsabilidade deste papel também definir

templates de configurações que poderão ser utilizados para definir os artefatos nos

novos projetos visando a reutilização de um conjunto de definições de artefatos.

Page 134: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

132

ud RepositorioDeArtefatos

Engenheiro da Artefatos

Definir Classe de Artefato

Definir Atributos da Classe de

Artefato

Definir Composição da

Classe de Artefato

Definir Template de Configurações

Selecionar Artefatos

Estes artefatos podem ser genericos para toda a empresa....Eles podem ser selecionados para serem usados em algum projeto especifico

Manter Artefato Padrão

Esse IC nao esta relacionado a nenhum projeto especifico

«include»

«include»

«extend»

FIGURA A.2 Casos de Uso do Engenheiro de Artefatos.

A2.1 Caso de Uso Manter Artefato Padrão Identificador do Caso de Uso UC-GCM-2.1 Nome do Caso de Uso Manter Artefato Padrão Atores Engenheiro de Artefatos Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre os

artefatos padrões. Artefato padrão são aqueles artefatos que são comuns a qualquer projeto. Os artefatos definidos neste caso de uso poderão ser reutilizados para definir os artefatos dos novos projetos, sem a necessidade de ter que redefini-los, um por um, em cada novo projeto.

Primeiro Cenário – Criar Novo Artefato Padrão Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter artefato padrão; 2.- O sistema apresentará uma lista com todos os registros de artefato padrão disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4 – O sistema apresenta uma caixa de seleção contendo as classes de artefato; 5 – O usuário seleciona a classe de artefato no qual o artefato padrão será baseado e clica no botão “OK” ; 6.- O sistema apresenta um formulário com os dados referentes à um novo registro de artefato padrão, como nome, data, descrição, observação e a classe de artefato(já selecionada previamente); 7.- O usuário entra com os dados; 8.- O usuário submete as informações; 9.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos

Page 135: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

133

No passo 8, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Artefato Padrão Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter artefato padrão; 2.- O sistema apresentará uma lista com todos os registro de artefato padrão disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do artefato padrão, como nome, data, descrição, observação e classe de artefato; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Excluir Artefato Padrão Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter artefato padrão; 2.- O sistema apresentará uma lista com todos os registros de artefato padrão disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Artefato Padrão Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter artefato padrão; 2.- O sistema apresentará uma lista com todos os registros de artefato padrão disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o artefato padrão.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

Page 136: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

134

A2.2 Caso de Uso Manter Classe de Artefato Identificador do Caso de Uso UC-GCM-2.2 Nome do Caso de Uso Manter Classe de Artefato Atores Engenheiro de Artefatos Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre as

classes de artefatos. Uma classe de artefato contém a definição da estrutura de um artefato. Na classe de artefato definem-se os atributos e relacionamentos de composição de um artefato.

Primeiro Cenário – Criar Nova Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter classe de artefato; 2.- O sistema apresentará uma lista com todos os registros de classe de artefato disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de classe de artefato, como nome, descrição e observação; 5.- O usuário entra com os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O caso de uso UC-GCM-2.3 deverá ser executado.

Segundo Cenário – Editar Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter classe de artefato; 2.- O sistema apresentará uma lista com todos os registro de classe de artefato disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do classe de artefato, como nome, data, descrição, observação e classe de artefato; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O caso de uso UC-GCM-2.3 deverá ser executado.

Terceiro Cenário – Excluir Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter classe de

Page 137: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

135

artefato; 2.- O sistema apresentará uma lista com todos os registros de classe de artefato disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter classe de artefato; 2.- O sistema apresentará uma lista com todos os registros de classe de artefato disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 5.- O sistema verifica disponibiliza uma tela com as informações sobre o classe de artefato.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A2.3 Caso de Uso Definir Atributos da Classe Artefato Identificador do Caso de Uso UC-GCM-2.3 Nome do Caso de Uso Definir Atributos da Classe de Artefato Atores Engenheiro de Artefatos Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. Estar editando uma classe de artefato.

Descrição Possibilita a definição dos atributos de uma classe artefato.

Primeiro Cenário – Criar Novo Atributo da Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para definir um atributo da classe de artefato; 2.- O sistema apresenta um formulário com os dados referentes à um novo registro de atributo da classe de artefato, como nome, descrição, observação e tipo de dado. O sistema apresentará também ao final do formulário uma lista com todos os registros de atributos da classe de artefato que já foram previamente inseridos; 3.- O usuário entra com os dados; 4.- O usuário submete as informações; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: Um formulário em branco é apresentado na tela e o novo atributo da classe artefato é adicionado à lista de registro ao final do formulário.

Page 138: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

136

Segundo Cenário – Excluir Atributo da Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter atributo da classe de artefato; 2.- O sistema apresentará um formulário em branco. Ao final do formulário o sistema apresentará a lista com todos os registros de atributo da classe de artefato disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Visualizar Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter atributo da classe de artefato; 2.- O sistema apresentará um formulário em branco. Ao final do formulário o sistema apresentará a lista com todos os registros de atributo da classe de artefato disponíveis oferecendo um “link” sobre cada um dos registros. 3.- O usuário clica sobre o registro que deseja visualizar; 5.- O sistema verifica disponibiliza uma tela com as informações sobre o classe de artefato.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A2.4 Caso de Uso Definir Composição da Classe Artefato Identificador do Caso de Uso UC-GCM-2.4 Nome do Caso de Uso Definir Composição da Classe de Artefato Atores Engenheiro de Artefatos Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. Estar editando uma classe de artefato.

Descrição Possibilita a definição do relacionamento de composição da classe artefato com outras classes de artefato. Uma classe de artefato poderá ser composta de uma ou mais classes de artefato.

Primeiro Cenário – Criar Nova Composição da Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para definir um relacionamento de composição da classe de artefato; 2.- O sistema apresenta um formulário com duas caixas de seleção: sendo a primeira preenchida com todas as classes de artefatos já definidas no sistema e a segunda caixa vazia; 3.- O usuário seleciona na primeira caixa de seleção os registros de classe de artefato que são componentes e seleciona o botão “>>”;

Page 139: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

137

4 – Os registros selecionados são transferidos da primeira para a segunda caixa; 5 – O usuário seleciona o botão “INSERIR”; 6 - O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Excluir Atributo da Classe de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para definir um relacionamento de composição da classe de artefato; 2.- O sistema apresenta um formulário com duas caixas de seleção: sendo a primeira preenchida com todas as classes de artefatos já definidas no sistema e que não são componentes e a segunda caixa preenchida com os registros de classe de artefato que já foram inseridas como componente; 3.- O usuário seleciona na segunda caixa de seleção os registros de classe de artefato que deseja excluir e seleciona o botão “<<”; 4 – Os registros selecionados são transferidos da segunda para a primeira caixa; 5 – O usuário seleciona o botão “ATUALIZAR”; 6 - O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A2.5 Definir Template de Configuração Identificador do Caso de Uso UC-GCM-2.5 Nome do Caso de Uso Definir Template de Configuração Atores Engenheiro de Artefatos Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. Descrição Possibilita a definição de templates de configuração que

poderão ser reutilizados para definição de novos projetos. Um template de configuração reúne várias definições de artefatos para serem definidas para o novo projeto.

Primeiro Cenário – Criar Novo Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter template de configuração; 2.- O sistema apresentará uma lista com todos os registros de template de configurações disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de template de configuração, como nome, data, descrição, observação e a categoria; 5.- O usuário entra com os dados; 6.- O usuário submete as informações;

Page 140: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

138

7.- O sistema verifica as informações e salva na base de dados. Fluxos Alternativos

No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema deverá executar o caso de uso UC-GCM-2.6.

Segundo Cenário – Editar um Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter de template de configuração; 2.- O sistema apresentará uma lista com todos os registro de template de configuração disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do template de configuração, como nome, data, descrição, observação e categoria; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema deverá executar o caso de uso UC-GCM-2.6.

Terceiro Cenário – Excluir um Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter template de configuração; 2.- O sistema apresentará uma lista com todos os registros de template de configuração disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter template de configuração; 2.- O sistema apresentará uma lista com todos os registros de template de configuração disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o template de configuração.

Fluxos Alternativos Não há.

Pós Condição:

Page 141: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

139

O sistema apresentará a tela com as informações e um botão para retornar.

A2.6 Selecionar Artefatos Identificador do Caso de Uso UC-GCM-2.6 Nome do Caso de Uso Selecionar Artefatos Atores Engenheiro de Artefatos Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. O caso de uso UC-GCM-2.5 ter sido executado.

Descrição Possibilita a seleção dos artefatos que pertencerão ao template de configuração.

Primeiro Cenário – Criar Novo Seleção de Artefatos para o Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para selecionar os artefatos de um template de configuração; 2.- O sistema apresentará uma caixa de seleção com todos os registros de artefatos disponíveis apresentando a opção “>>” que adiciona os artefatos selecionados; 3.- O usuário seleciona a os artefatos e clica no botão “>>”; 4.- O usuário submete as informações; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar uma Seleção de Artefatos para o Template de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para editar uma seleção de artefatos de template de configuração; 2.- O sistema apresentará duas caixas de seleção: uma com todos os registros de artefatos disponíveis apresentando (que ainda não foram selecionados) e outra com todos os artefatos selecionados para o template de configuração 3.- O usuário seleciona a os artefatos que deseja adicionar e clica no botão “>>”; 4.- O usuário seleciona a os artefatos que deseja excluir do template da configuração e clica no botão “<<”; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A3 Ator Engenheiro da Configuração

Este papel permite ao usuário manter as informações sob as configurações do sistema,

definir a lista de distribuições e montar e distribuir as releases. Também é de

Page 142: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

140

responsabilidade deste papel manter as versões de configurações bem como notificar

aos interessados quaisquer mudanças nas configurações e/ou releases.

ud RepositorioDeArtefatos

Manter Configurações

Selecionar IC

Manter Releases Selecionar IC da Configuração

Selecionar Clientes

Engenheiro da Configuracao

Manter Lista de Distribuição

Manter v ersao da configuracao

«include»

«include»

«extend»

«include»

FIGURA A.3 Casos de Uso do Engenheiro da Configuração.

A3.1 Caso de Uso Manter Configuração Identificador do Caso de Uso UC-GCM-3.1 Nome do Caso de Uso Manter Configurações Atores Engenheiro da Configuração Pré Condição Um usuário com perfil de Engenheiro da Configuração

deve ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre as

configurações. Permite ao usuário criar as configurações e selecionar quais versões de artefatos irão fazer parte dela. O usuário pode também alterar o status da configuração e manter as versões das configurações.

Primeiro Cenário – Criar Nova Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter configurações; 2.- O sistema apresentará uma lista com todos os registros de configurações disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de configurações, como nome, descrição e observação;

Page 143: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

141

5.- O usuário entra com os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema deverá executar opcionalmente o UC-GCM-3.2.

Segundo Cenário – Editar Configurações Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter configurações; 2.- O sistema apresentará uma lista com todos os registro de configurações disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do configurações, como nome, descrição e observação; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema deverá executar opcionalmente o UC-GCM-3.2.

Terceiro Cenário – Excluir Configurações Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter configurações; 2.- O sistema apresentará uma lista com todos os registros de configurações disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Configurações Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter configurações; 2.- O sistema apresentará uma lista com todos os registros de configurações disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o configurações.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

Page 144: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

142

A3.2 Manter Versão da Configuração. Identificador do Caso de Uso UC-GCM-3.2 Nome do Caso de Uso Manter Versão da Configuração Atores Engenheiro da Configuração Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. O caso de uso UC-GCM-3.1 ter sido executado.

Descrição Possibilita manter a versão de uma configuração. Primeiro Cenário – Criar Nova Versão de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para criar nova versão de configurão; 2 – O sistema apresentará uma tela com todas as versões de configuração disponíveis; 3 – O usuário clica no botão “INSERIR”; 4.- O sistema apresentará o formulário para selecionar IC conforme descrito no UC-GCM-3.3 5.- O usuário submete as informações; 6.- O sistema verifica as informações e salva na base de dados criando uma versão.

Fluxos Alternativos No passo 5, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema executará o UC-GCM-3.3. Uma nova versão será criada no sistema

Segundo Cenário – Editar Versão de Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para editar uma versão de configuração; 2.- O sistema apresentará uma tela com os IC conforme descrito no caso de uso UC-GCM-3.3 3.- O usuário atualiza os dados; 4.- O usuário submete as informações; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A3.3 Selecionar I.C. Identificador do Caso de Uso UC-GCM-3.3 Nome do Caso de Uso Selecionar IC Atores Engenheiro da Configuração Pré Condição Um usuário com perfil de Engenheiro de Artefatos deve

ter sido validado pelo sistema. O caso de uso UC-GCM-3.3 ter sido executado.

Descrição Possibilita a seleção dos artefatos que pertencerão à configuração.

Primeiro Cenário – Criar Nova Seleção de IC para uma Configuração Fluxo de Eventos:

Page 145: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

143

Fluxo Principal 1.- Este caso de uso inicia-se quando o usuário aciona a interface para selecionar os IC de uma configuração; 2.- O sistema apresentará uma caixa de seleção com todos os registros de IC disponíveis apresentando a opção “>>” que adiciona os IC selecionados; 3.- O usuário seleciona a os IC e clica no botão “>>”; 4.- O usuário submete as informações; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar uma Seleção de IC para uma Configuração Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para editar uma seleção de IC para uma configuração; 2.- O sistema apresentará duas caixas de seleção: uma com todos os registros de IC disponíveis apresentando (que ainda não foram selecionados) e outra com todos os IC selecionados para a configuração 3.- O usuário seleciona a os IC que deseja adicionar e clica no botão “>>”; 4.- O usuário seleciona a os IC que deseja excluir da configuração e clica no botão “<<”; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A3.4 Caso de Uso Manter Releases Identificador do Caso de Uso UC-GCM-3.4 Nome do Caso de Uso Manter Release Atores Engenheiro da Configuração Pré Condição Um usuário com perfil de Engenheiro da Configuração

deve ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre as

releases. Permite ao usuário associar quais clientes irão receber quais releases.

Primeiro Cenário – Criar Nova Release Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter releases; 2.- O sistema apresentará uma lista com todos os registros de releases disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de releases, como nome, descrição e observação; 5 – O usuário seleciona os clientes que irão receber a release; 6.- O usuário entra com os dados;

Page 146: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

144

7.- O usuário submete as informações; 8.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 7, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema executar o caso de uso UC-GCM-3.4.

Segundo Cenário – Editar Release Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter releases; 2.- O sistema apresentará uma lista com todos os registro de releases disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do releases, como nome, descrição, observação e uma lista de clientes; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema executar o caso de uso UC-GCM-3.4.

Terceiro Cenário – Excluir Release Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter releases; 2.- O sistema apresentará uma lista com todos os registros de releases disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Release Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter releases; 2.- O sistema apresentará uma lista com todos os registros de releases disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o releases.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

Page 147: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

145

A3.5 Caso de Uso Manter Lista de Distribuição Identificador do Caso de Uso UC-GCM-3.5 Nome do Caso de Uso Manter Lista de Distribuição Atores Engenheiro da Configuração Pré Condição Um usuário com perfil de Engenheiro da Configuração

deve ter sido validado pelo sistema. Descrição Possibilita a manutenção das informações sobre as listas

de distribuições. Permite ao usuário definir os clientes para receber as releases

Primeiro Cenário – Criar Nova Lista de Distribuição Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter lista de distribuição; 2.- O sistema apresentará uma lista com todos os registros de lista de distribuição disponíveis apresentando a opção “INSERIR”; 3.- O usuário seleciona a opção “INSERIR”; 4.- O sistema apresenta um formulário com os dados referentes à um novo registro de lista de distribuição, como nome, descrição e observação; 5.- O usuário entra com os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Lista de Distribuição Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter lista de distribuição; 2.- O sistema apresentará uma lista com todos os registro de lista de distribuição disponíveis apresentando a opção “EDITAR”; 3.- O usuário seleciona a opção “EDITAR”; 4.- O sistema apresenta um formulário com os dados atuais do lista de distribuição, como nome, descrição e observação; 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Terceiro Cenário – Excluir Lista de Distribuição Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter lista de distribuição; 2.- O sistema apresentará uma lista com todos os registros de lista de distribuição

Page 148: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

146

disponíveis oferecendo caixas de seleção para exclusão do tipo “checkbox”; 3.- O usuário seleciona o registro que deseja excluir; 4.- O usuário seleciona a opção “EXCLUIR” submetendo os dados; 5.- O sistema verifica as informações e exclui da base de dados.

Fluxos Alternativos No passo 5, se ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Quarto Cenário – Visualizar Lista de Distribuição Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter lista de distribuição; 2.- O sistema apresentará uma lista com todos os registros de lista de distribuição disponíveis oferecendo um “link” sobre cada um dos registros ; 3.- O usuário clica sobre o registro que deseja visualizar; 4.- O sistema verifica disponibiliza uma tela com as informações sobre o lista de distribuição.

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a tela com as informações e um botão para retornar.

A3.6 Caso de Uso Selecionar Clientes Identificador do Caso de Uso UC-GCM-3.6 Nome do Caso de Uso Selecionar Clientes Atores Engenheiro da Configuração Pré Condição Um usuário com perfil de Engenheiro da Configuração

deve ter sido validado pelo sistema. O Caso de uso UC-GCM-3.5 deve ter sido executado.

Descrição Possibilita a selecionar os clientes que vão fazer parte da lista de distribuição criada.

Primeiro Cenário – Criar Nova Lista de Distribuição Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para selecionar clientes; 2.- O sistema apresentará duas caixas de seleção, sendo uma com todos os registros de cliente disponíveis e a outra vazia; 3.- O usuário seleciona na primeira caixa os clientes que devem fazer parte da lista de distribuição e clica no botão “>>”; 4.- O usuário submete as informações; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Segundo Cenário – Editar Clientes Selecionados Fluxo de Eventos: Fluxo Principal

Page 149: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

147

1.- Este caso de uso inicia-se quando o usuário aciona a interface para selecionar os clientes para uma lista de distribuição; 2.- O sistema apresentará duas caixas de seleção: uma com os cliente não selecionados para a lista de distribuição e a outra com os cliente que já foram anteriormente selecionados; 3.- O usuário seleciona os clientes na primeira caixa de seleção que deseja adicionar e clica no botão “>>” 4.- O usuário seleciona os clientes na segunda caixa de seleção que deseja excluir e clica no botão “<<” 5.- O usuário atualiza os dados; 6.- O usuário submete as informações; 7.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4 Ator Gerente da Configuração

Este papel tem a responsabilidade de manter um controle sobre os itens do repositório,

podendo definir IC que serão controlados por cada projeto, bloquear/desbloquear IC e

editar os valores de relacionamento entre os IC.

Page 150: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

148

ud RepositorioDeArtefatos

Selecionar Baseline do

Projeto

Manter Versões de Artefatos

Manter Dependencia

Visualizar Historico de Operações

Manter Repositorio

Criar IC do Projeto

Gerente da Configuracao

Realizar Lock / Unlock

Manter v isibilidade

Permitir Checkout

Selecionar Usuário

Analisar Proposta de Artefato

Visualizar Ev olução dos

Artefatos

Visualizar Check-out's autorizados

Visualizar Artefatos Propostos

«extend»

«extend»

«extend» «extend»

«extend»

«include»

«extend»

«extend»

«extend»

FIGURA A.4 Caso de Uso Gerente da Configuração

A4.1 Caso de Uso Visualizar Check-out’s autorizados Identificador do Caso de Uso UC-GCM-4.1 Nome do Caso de Uso Visualizar Check-out’s autorizados Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Descrição Possibilita visualizar os Check-outs que precisam ser

feitos, ou seja, aqueles check-outs que foram aprovados na analise de mudança e que precisam ser realizados.

Primeiro Cenário – Permitir Check-out’s autorizado Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter visualizar Check-out’s autorizados; 2.- O sistema apresentará uma lista com todos os registros de versões de artefatos que foram autorizados para fazer o check-out; 3.- O usuário seleciona o artefato que deseja fazer check-out e clica no ícone “Check-out”; 4.- O sistema apresenta um formulário com os dados referentes a versão atual e uma opção

Page 151: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

149

para selecionar o usuário que deverá ser o responsável por modificar o artefato; 5.- O usuário submete as informações; 6.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 5, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.2 Caso de Uso Visualizar Evolução dos Artefatos Identificador do Caso de Uso UC-GCM-4.2 Nome do Caso de Uso Visualizar Evolução dos Artefatos Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Descrição Possibilita visualizar a evolução das versões de um

determinado artefato. Primeiro Cenário – Permitir Check-out’s autorizado Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para visualizar evolução dos artefatos; 2.- O sistema apresentará uma lista com todos os registros de artefatos disponíveis; 3.- O usuário seleciona o artefato que deseja visualizar e clica sobre seu nome; 4.- O sistema apresenta uma tela com a evolução das versões do artefato, ou seja, cada versão criada em forma de arvora;

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará a evolução do artefato na tela.

A4.3 Caso de Uso Manter Repositório Identificador do Caso de Uso UC-GCM-4.3 Nome do Caso de Uso Manter Repositório Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Descrição Possibilita criar e manipular todos os artefatos dentro do

repositório. Primeiro Cenário – Manter Repositório Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter repositório; 2.- O sistema apresentará uma lista com todos os registros de artefatos disponíveis para cada um dos projetos; 3.- O usuário seleciona o projeto para verificar os artefatos que deseja manipular; 4.- O sistema apresenta uma tela com todas as versões de cada artefato do projeto e possibilita para cada um realizar as operações de bloquear, desbloquear,visualizar histórico, permitir check-out, modificar visibilidade e editar os relacionamento;

Fluxos Alternativos Não há.

Page 152: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

150

Pós Condição: O sistema apresentará todos os artefatos e versões por projeto.

A4.4 Caso de Uso Selecionar Baseline do Projeto Identificador do Caso de Uso UC-GCM-4.4 Nome do Caso de Uso Selecionar Baselines do Projeto Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. O caso de uso UC-GCM-4.3 ter sido executado

Descrição Possibilita selecionar um template de baseline com as definições de artefatos para o projeto.

Primeiro Cenário –Adicionar Baselines ao Projeto Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para selecionar baseline do projeto; 2.- O sistema apresentará uma caixa de seleção com todas os registros de baselines disponíveis; 3.- O usuário seleciona a baseline que deseja adicionar ao projeto e clica no botão “>>”; 4.- O usuário submete os dados; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 5, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.5 Caso de Uso Definir IC do Projeto Identificador do Caso de Uso UC-GCM-4.5 Nome do Caso de Uso Definir IC do Projeto Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. O caso de uso UC-GCM-4.3 ter sido executado

Descrição Possibilita definir os IC que serão controlados pelo projeto.

Primeiro Cenário –Definir IC do Projeto Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para definir IC do Projeto; 2.- O sistema apresentará uma caixa de seleção com todos os registros de classes de artefatos existentes; 3.- O usuário seleciona a classe artefato que deseja criar o IC; 4 – O sistema apresenta um formulário para a definição do IC com as informações de nome, descrição, observação e a classe já selecionada. 5.- O usuário submete os dados; 6.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 5, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Page 153: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

151

Pós Condição: O sistema apresentará mensagem de sucesso da operação e o status do IC será “em definição”.

Segundo Cenário –Editar Definição do IC do Projeto Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para editar IC do Projeto; 2.- O sistema apresenta um formulário com as informações de nome, descrição, observação e a classe já preenchidas. 3 – O usuário edita as informações do formulário e clica no botão “ATUALIZAR” 4.- O usuário submete os dados; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação e o status do IC será “em definição”.

Terceiro Cenário –Publicar IC do Projeto Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para editar IC do Projeto; 2.- O sistema apresenta um formulário com as informações de nome, descrição, observação e a classe já preenchidas. 3 – O usuário confere/atualiza as informações do formulário e clica no botão “DEFINIR COMO PUBLICO” 4.- O usuário submete os dados; 5.- O sistema verifica as informações e salva na base de dados.

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação e o status do IC será “definido”.

A4.6 Caso de Uso Manter Versões dos Artefatos Identificador do Caso de Uso UC-GCM-4.6 Nome do Caso de Uso Manter Versões dos Artefatos Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. O caso de uso UC-GCM-4.3 ter sido executado

Descrição Possibilita manipular cada versão dos artefatos do repositório.

Primeiro Cenário – Manter Versões dos Artefatos Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona a interface para manter versões de artefatos; 2.- O sistema apresentará todos os registros de versões para cada artefato disponíveis; 3.- Para cada versão o usuário poderá fazer as operações definidas no repositório;

Page 154: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

152

Fluxos Alternativos Não há.

Pós Condição: O sistema apresentará os registros de cada versão.

A4.7 Caso de Uso Manter Visibilidade Identificador do Caso de Uso UC-GCM-4.7 Nome do Caso de Uso Manter Visibilidade Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. O caso de uso UC-GCM-4.6 ter sido executado

Descrição Possibilita modificar o nível de visibilidade da versão de artefato.

Primeiro Cenário – Editar Visibilidade Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para manter visibilidade dos artefatos; 2.- O sistema apresentará uma tela com todas as informações sobre a versão de artefato e uma caixa de seleção para modificar a visibilidade do artefato; 3 – O usuário seleciona o nível de visibilidade (publico/privado) e clica no botão “ATUALIZAR”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.8 Caso de Uso Manter Dependência Identificador do Caso de Uso UC-GCM-4.8 Nome do Caso de Uso Manter Dependência Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. As versões de artefatos que serão dependentes deverão estar previamente cadastradas e controladas.

Descrição Relaciona uma versão de artefato com outra. Primeiro Cenário – Manter Depedência Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para manter dependência em alguma versão controlada; 2.- O sistema apresentará uma tela com todas as informações sobre a versão de artefato e um formulário onde o usuário poderá selecionar uma versão no qual será relacionada a versão atual (que foi clicada) e selecionar o grau do relacionamento (associação, composição, dentre outros); 3 – O usuário clica no botão “OK”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos

Page 155: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

153

No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.9 Caso de Uso Visualizar Histórico de Operação Identificador do Caso de Uso UC-GCM-4.9 Nome do Caso de Uso Visualizar Histórico de Operação Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Algumas operações terem sido efetuadas para uma versão de artefato.

Descrição Permite visualizar as operações executadas com uma versão de artefato.

Primeiro Cenário – Visualizar Histórico de Operação Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para visualizar histórico de operação em alguma versão controlada; 2.- O sistema apresentará uma tela com todas as informações sobre a versão de artefato e todas as operações que foram realizadas ao longo do tempo de vida da versão, tais como, operação, data e motivo;

Fluxos Alternativos Não há..

Pós Condição: Não há.

A4.10 Caso de Uso Manter Visibilidade Identificador do Caso de Uso UC-GCM-4.10 Nome do Caso de Uso Manter Visibilidade Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. O caso de uso UC-GCM-4.6 ter sido executado

Descrição Possibilita modificar o nível de visibilidade da versão de artefato.

Primeiro Cenário – Editar Visibilidade Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para manter visibilidade dos artefatos; 2.- O sistema apresentará uma tela com todas as informações sobre a versão de artefato e uma caixa de seleção para modificar a visibilidade do artefato; 3 – O usuário seleciona o nível de visibilidade (publico/privado) e clica no botão “ATUALIZAR”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição:

Page 156: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

154

O sistema apresentará mensagem de sucesso da operação.

A4.11 Caso de Uso Realizar Lock/UnLock Identificador do Caso de Uso UC-GCM-4.11 Nome do Caso de Uso Realizar Lock/Unlock Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. As versões de artefatos deverão existir previamente.

Descrição Realiza o bloqueio e desbloqueio de versões de artefatos. Primeiro Cenário – Realizar Lock Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para realizar lock em alguma versão controlada; 2.- O sistema apresentará uma tela com todas as informações sobre a versão de artefato e um formulário com um campo texto para digitar o motivo do bloqueio da versão; 3 – O usuário clica no botão “OK”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Primeiro Cenário – Realizar UnLock Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para realizar unlock em alguma versão controlada que esteja bloqueada pelo usuário; 2.- O sistema apresentará uma tela com todas as informações sobre a versão de artefato e um formulário com um campo texto para digitar o motivo do desbloqueio da versão; 3 – O usuário clica no botão “OK”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.12 Caso de Uso Permitir Check-out Identificador do Caso de Uso UC-GCM-4.12 Nome do Caso de Uso Permitir Checkout Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Uma versão de artefato deve ter sido autorizada através de uma proposta de alteração a ser permitida para checkout.

Descrição Permite autorizar um usuário para realizar a operação de checkout sob uma versão de artefato.

Page 157: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

155

Primeiro Cenário – Permitir Checkout Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Permitir Check-out; 2.- O sistema apresentará uma tela com as versões de artefato disponíveis para permitir o checkout (autorizadas através de uma proposta de mudança); 3 – O usuário seleciona o usuário no qual será autorizado a fazer o checkout e clica no botão “INSERIR”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.13 Caso de Uso Analisar Proposta de Artefato Identificador do Caso de Uso UC-GCM-4.13 Nome do Caso de Uso Analisar Proposta de Artefato Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Uma proposta de artefato deve ter sido enviada.

Descrição Permite ao usuário analisar as propostas de novos de artefatos que foram enviadas.

Primeiro Cenário – Analisar Proposta de Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Analisar Proposta de Artefato; 2.- O sistema apresentará uma tela com as informações sobre a proposta de artefato e um campo para o usuário digitar as informações da análise; 3 – O usuário decide sobre a aceitação ou não da proposta e clica no botão “ACEITAR” ou “REJEITAR”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A4.14 Caso de Uso Visualizar Artefatos Propostos Identificador do Caso de Uso UC-GCM-4.14 Nome do Caso de Uso Visualizar Artefatos Propostos Atores Gerente da Configuração Pré Condição Um usuário com perfil de Gerente da Configuração deve

ter sido validado pelo sistema. Uma proposta de artefato deve ter sido aceita.

Descrição Permite ao usuário criar os artefatos que foram aceitos na proposta.

Primeiro Cenário – Visualizar Artefatos Propostos

Page 158: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

156

Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Visualizar Artefatos Propostos; 2.- O sistema apresentará uma tela com as informações sobre os artefatos que foram propostos e aceitos; 3 – O usuário seleciona o artefato que deseja criar; 4 – O usuário seleciona o projeto no qual o artefato será criado e clica no botão “DEFINIR”; 5.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 5, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A5 Ator Engenheiro de Mudanças

Este papel permite ao usuário manter todas as informações referentes às alterações nos

IC mantidos sob controle do repositório. È de responsabilidade do Engenheiro de

mudanças analisar todas as requisições de mudanças enviadas, fazer a analise de

impacto e permitir ou não a implementação da alteração.

Page 159: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

157

ud RepositorioDeArtefatos

Engenheiro de Mudanças Analisar Proposta

de Mudança

Analisar Dependencias

Alocar Desenv olv edor para alteração

Defirnir IC para alteração

Analisar instruções de

alteração

Relatar Pedido de Mudança

Realizar Check in Definir Versao

Analisar Proposta de Artefato

Visualizar Check-out's autorizados

Visualizar Artefatos Propostos

Manter Repositório

«include»

«extend»

«include»

«include»

«include»

«include»

FIGURA A.5 Caso de Uso Engenheiro de Mudanças

A5.1 Caso de Uso Realizar Check-in Identificador do Caso de Uso UC-GCM-5.1 Nome do Caso de Uso Realizar Check-in Atores Engenheiro de Mudanças Pré Condição Um usuário com perfil de Engenheiro de Mudanças deve

ter sido validado pelo sistema. Uma versão de artefato deve ter sido aceita pelo processo de qualidade e submetida para realização de check-in. Ter configurado no sistema pelo menos um tipo de versionamento.

Descrição Permite ao usuário fazer check-in de uma versão no repositório, gerando uma nova versão.

Primeiro Cenário – Realizar Check-in Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Realizar Check-in;

Page 160: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

158

2.- O sistema apresentará uma tela com as versões de artefato cujo status se encontra “aguardando check-in”; 3 – O usuário seleciona a versão no qual deseja fazer o check-in; 4 – O sistema apresenta as informações sobre a versão atual e seus valores, relacionamento com as demais versões e um opção para que o usuário escolha qual o tipo de versionamento deseja realizar (a documentação do o tipo versionamento pode ser encontrada acima neste documento); 5 – O usuário seleciona o tipo de versionamento que deseja e clica no botão “OK”; 6.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 6, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A5.2 Caso de Uso Analisar Proposta de Mudança Identificador do Caso de Uso UC-GCM-5.2 Nome do Caso de Uso Analisar Proposta de Mudança Atores Engenheiro de Mudanças Pré Condição Um usuário com perfil de Engenheiro de Mudanças deve

ter sido validado pelo sistema. Uma proposta de mudança ter sido enviada por um usuário do sistema.

Descrição Permite ao usuário analisar a proposta de mudança de uma versão de artefato.

Primeiro Cenário – Analisar Proposta de Mudança Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Analisar Proposta de Mudança; 2.- O sistema apresentará uma tela com as proposta de mudança que foram submetidas; 3 – O usuário seleciona a proposta na qual deseja analisar; 4 – O sistema apresenta as informações sobre a proposta, o motivo, e as versões de artefatos que foram solicitadas na alteração; 5 – O usuário analisa a proposta e relata sua decisão, escolhe quais outras versões de artefatos devem ser alteradas em conjunto e quais os usuários indicados para a alteração; 6 - O usuário clica no botão “aceitar” ou “rejeitar” conforme sua analise; 7.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 7, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

Obs.: Os demais casos de uso foram documentados anteriormente quando realizado

também por outros papéis.

Page 161: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

159

A6 Ator Desenvolvedor

Este papel determina as responsabilidades dos desenvolvedores/programadores dentro

de um processo de GCS. Este papel permite aos usuários visualizarem os IC no

repositório (desde que os IC sejam públicos), enviar solicitações de mudanças quando

desejarem por algum motivo alterar um IC, enviar propostas para definir um novo IC

não definido no projeto e implementar as alterações quando essas forem aceitas e

atribuídas a ele a responsabilidade de sua alteração.

ud RepositorioDeArtefatos

Desenv olv edor

Manter Proposta de Mudança

Compor Proposta de Mudança

Selecionar Artefato para

alteraçao

Verificar Situação da Proposta

Fazer Checkou de Artefatos

Permitidos

Visualizar Repositorio de

ArtefatosFazer GET

Env iar para Qualidade

Visualizar Checkout Permitidos

Env iar Proposta

Visualizar Artefatos para

Modificação

Realizar Modificações

Propor Artefato

«extend»

«include»

«extend»

«extend»

«include»

«extend»

«extend»

«extend»

FIGURA A.6 Caso de Uso Desenvolvedor

A6.1 Caso de Uso Propor Artefato Identificador do Caso de Uso UC-GCM-6.1 Nome do Caso de Uso Propor artefato Atores Desenvolvedor

Page 162: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

160

Pré Condição Um usuário com perfil de Desenvolvedor deve ter sido validado pelo sistema.

Descrição Permite ao usuário fazer uma proposta de um novo artefato no projeto.

Primeiro Cenário – Propor Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Propor Artefato e seleciona a opção inserir nova proposta; 2.- O sistema apresentará uma tela com um formulário no qual o usuário deverá preencher com as informações (nome, descrição, observação, tipo artefato) sobre o novo artefato proposto e o motivo de sua proposta; 3 – O usuário clica no botão “enviar proposta’; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A6.2 Caso de Uso Manter Proposta de Mudança Identificador do Caso de Uso UC-GCM-6.2 Nome do Caso de Uso Propor de Mudança Atores Desenvolvedor Pré Condição Um usuário com perfil de Desenvolvedor deve ter sido

validado pelo sistema. Descrição Permite ao usuário fazer uma proposta de alteração para

uma versão de artefato do projeto. Primeiro Cenário – Propor Mudança Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Proposta de Mudança e seleciona a opção inserir nova proposta; 2.- O sistema apresentará uma tela com um formulário no qual o usuário deverá selecionar qual versão de artefato deseja alterar, o motivo de sua alteração e a alteração que será realizada; 3 – O usuário clica no botão “enviar proposta’; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação.

A6.3 Caso de Uso Visualizar Check-outs Permitidos Identificador do Caso de Uso UC-GCM-6.3 Nome do Caso de Uso Propor artefato Atores Desenvolvedor Pré Condição Um usuário com perfil de Desenvolvedor deve ter sido

validado pelo sistema. Descrição Permite ao usuário visualizar as versões de artefatos que

Page 163: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

161

foram a ele permitidas para realizar o check-out. Primeiro Cenário – Realizar Check-out Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Check-out’s Permitidos; 2.- O sistema apresentará uma tela com todas as versões de artefatos que foram permitidas para que o usuário realizasse o check-out; 3 – O usuário clica no ícone de check-out do artefato que deseja realizar o check-out; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação. A versão de artefato é copiada para a área de trabalho do usuário;

A6.4 Caso de Uso Visualizar Artefatos para Modificação Identificador do Caso de Uso UC-GCM-6.4 Nome do Caso de Uso Propor artefato Atores Desenvolvedor Pré Condição Um usuário com perfil de Desenvolvedor deve ter sido

validado pelo sistema. Descrição Permite ao usuário visualizar as versões de artefatos que

estão em sua área de trabalho e que podem ser alteradas por ele.

Primeiro Cenário – Artefatos para modificação Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Visualizar Artefatos para Modificação; 2.- O sistema apresentará uma tela com todas as versões de artefatos que foram realizadas check-out e copiadas para a área de trabalho do usuário; 3 – O usuário seleciona a versão que deseja alterar, preenche as informações (de acordo com cada tipo de artefato identificado no sistema) e clica no botão “enviar para qualidade”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação. A versão de artefato é alterada para o status “enviada para qualidade” onde será visível apenas no caso de uso de avaliação da qualidade;

A6.5 Caso de Uso Visualizar Repositório de Artefatos Identificador do Caso de Uso UC-GCM-6.5 Nome do Caso de Uso Propor artefato Atores Desenvolvedor Pré Condição Um usuário com perfil de Desenvolvedor deve ter sido

validado pelo sistema. Descrição Permite ao usuário visualizar todas as versões de

Page 164: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

162

artefatos controladas no repositório e que possuam visibilidade pública.

Primeiro Cenário – Visualizar Repositório de Artefatos Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Visualizar Repositório de Artefatos; 2.- O sistema apresentará uma tela com todas as versões de artefatos que foram são públicas e que estejam controladas no repositório; 3 – O usuário seleciona uma versão de artefato; 4 – O sistema exibe uma tela com todas as informações sobre aquela versão de artefato;

Fluxos Alternativos Não há.

Pós Condição: Não há.

Primeiro Cenário – Realizar operação de GET Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Visualizar Repositório de Artefatos; 2.- O sistema apresentará uma tela com todas as versões de artefatos que foram são públicas e que estejam controladas no repositório; 3 – O usuário seleciona uma versão de artefato e clica no ícone da operação “get”; 4 – O usuário seleciona o nome e local em sua máquina onde o documento será armazenado; 5 – O sistema gera um documento PDF contendo as informações sobre a versão de artefato com o nome e no local indicado;

Fluxos Alternativos Não há.

Pós Condição: Documento PDF gerado com as informações sobre a versão de artefato selecionada.

A7 Ator Gerente de Acompanhamento de Projeto (GCM)

Este papel permite ao gerente de projetos determinar o usuário responsável por realizar

a ação de criação do IC e posteriormente de determinar o usuário responsável por um

check-out.

ud RepositorioDeArtefatos

Visualizar Check-out's autorizados

Gerente de Acompanhamento de Projeto (GCM)

Permitir Criação

Page 165: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

163

FIGURA A.7 Caso de Uso Gerente de Acompanhamento de Projeto

A7.1 Caso de Uso Permitir Criação Identificador do Caso de Uso UC-GCM-7.1

Nome do Caso de Uso Permitir Criação Atores Gerente de Acompanhamento de Projeto Pré Condição Um usuário com perfil de Gerente de Acompanhamento

de Projeto deve ter sido validado pelo sistema. Descrição Permite ao usuário autorizar o usuário que vai fazer a

criação da primeira versão do artefato. Primeiro Cenário – Permitir Criação Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Permitir Criação; 2.- O sistema apresentará uma tela com todas as versões de artefatos que foram definidas pelo gerente da Configuração e que estão prontas para serem criadas; 3 – O usuário seleciona a versão que deseja autorizar, seleciona o usuário que deverá ser autorizado a cria-la e clica no botão “OK”; 4.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 4, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação. A versão de artefato é alterada para o status “permitida” onde será visível apenas no caso de uso de check-out’s permitidos na tela do usuário autorizado;

Obs.: Os demais casos de uso foram anteriormente documentados para outros papeis

que compartilham sua responsabilidade.

A8 Ator Engenheiro da Qualidade (GCM)

Este papel permite a avaliação de um IC que será controlado no repositório.

ud RepositorioDeArtefatos

Engenheiro da

Qualidade (GCM)

Aprov ar Artefatos

FIGURA A.8 Caso de Uso Engenheiro da Qualidade

Page 166: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

164

A8.1 Caso de Uso Aprovar Artefatos Identificador do Caso de Uso UC-GCM-8.1

Nome do Caso de Uso Aprovar Artefatos Atores Engenheiro da Qualidade Pré Condição Um usuário com perfil de Engenheiro da Qualidade deve

ter sido validado pelo sistema. Descrição Permite ao usuário avaliar a qualidade de uma versão de

artefato submetido ao repositório. Primeiro Cenário – Avaliar Versão Artefato Fluxo de Eventos: Fluxo Principal

1.- Este caso de uso inicia-se quando o usuário aciona na interface o ícone para Avaliar Artefatos; 2.- O sistema apresentará uma tela com todas as versões de artefatos que foram enviadas para o controle de qualidade; 3 – O usuário seleciona a versão que deseja analisar e preenche relata sua analise; 4 – O usuário clica no botão “APROVAR” ou “REJEITAR” conforme sua análise; 5.- O sistema verifica as informações e atualiza o banco de dados;

Fluxos Alternativos No passo 5, se o sistema verificar que algum campo obrigatório não foi informado ou ocorrer alguma operação ilegal, o sistema apresentará mensagem de erro ao usuário.

Pós Condição: O sistema apresentará mensagem de sucesso da operação. A versão de artefato é alterada para o status “aguardando check-in” onde será visível apenas no caso de uso realizar check-in;

Page 167: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

165

APÊNDICE B

MODELO RELACIONAL DO SISTEMA

Segue abaixo as figuras do modelo relacional do sistema dividida em partes.

cd BD-GCM

GCM_PropostaMudanca

*PK «column» gpm_id: bigint* «column» gpm_titulo: varchar(150) «column» gpm_observacao: varchar(2000)* «column» gpm_data: timestamp*FK «column» gcm_PropostaMudancaStatus: bigint*FK «column» hrm_division_x_people: bigint*FK «column» gcm_prioridade: bigint «column» gpm_descricao: varchar(5000) FK «column» ppr_problem: bigint* «column» gpm_codigo: varchar(50)

+ «FK» FK_GCM_PropostaMudanca_GCM_Prioridade(varchar)+ «FK» FK_GCM_PropostaMudanca_GCM_PropostaMudancaStatus(bigint)+ «FK» FK_GCM_PropostaMudanca_HRM_USER(bigint)+ «FK» FK_GCM_PropostaMudanca_PPR_PROBLEM(bigint)+ «PK» PK_GCM_PropostaMudanca(bigint)

GCM_PropostaMudancaStatus

*PK «column» gps_id: bigint* «column» gps_nome: varchar(150) «column» gps_descricao: varchar(500) «column» gps_observacao: varchar(500)

+ «PK» PK_GCM_PropostaMudancaStatus(bigint)

GCM_ArtefatoPropostaAnalise

*PK «column» gpr_id: bigint*FK «column» gcm_versaoArtefato: bigint*FK «column» gcm_PropostaMudanca: bigint* «column» gpr_modificacao: varchar(5000)* «column» gpr_motivo: varchar(5000) «column» gpr_observacao: varchar(5000)

+ «FK» FK_GCM_ArtefatoPropostaAnalise_GCM_AnalisePropostaMudanca(bigint)+ «FK» FK_GCM_ArtefatoPropostaAnalise_GCM_PropostaMudanca(bigint)+ «FK» FK_GCM_ArtefatoPropostaAnalise_GCM_VersaoArtefato(bigint)+ «PK» PK_GCM_ArtefatoPropostaAnalise(bigint)

GCM_Prioridade

*PK «column» gpc_id: bigint* «column» gpc_nome: varchar(150)* «column» gpc_descricao: varchar(200) «column» gpc_observacao: varchar(200)

+ «PK» PK_GCM_Prioridade(bigint)

GCM_ArtefatosParaModificacao

*PK «column» gfd_id: bigint* «column» gfd_data: timestamp*FK «column» gcm_prioridade: bigint*FK «column» gcm_AnalisePropostaMudanca: bigint FK «column» gcm_VersaoArtefato: bigint*FK «column» hrm_division_x_people: bigint* «column» gfd_modificacao: varchar(5000) «column» gfd_observacao: varchar(5000)

+ «FK» FK_GCM_ArtefatosParaModificacao_GCM_AnalisePropostaMudanca(bigint)+ «FK» FK_GCM_ArtefatosParaModificacao_GCM_Prioridade(varchar)+ «FK» FK_GCM_ArtefatosParaModificacao_GCM_VersaoArtefato(bigint)+ «FK» FK_GCM_ArtefatosParaModificacao_HRM_USER(bigint)+ «PK» PK_GCM_ArtefatosParaModificacao(bigint)

PPR_PROBLEM

*PK «column» ppp_id: bigint «column» ppp_title: varchar(150)

+ «PK» PK_PPR_PROBLEM(bigint)

0..*

1

0..*

1

0..*

1

0..*

1

FIGURA B.1 Modelo Relacional do Sistema – Parte 1

Page 168: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

166

cd BD-GCM

GCM_TemplateConfiguracoes

*PK «column» gcb_id: bigint* «column» gcb_nome: varchar(50)* «column» gcb_data: timestamp «column» gcb_descricao: varchar(500) «column» gcb_observacao: varchar(500)*FK «column» gcm_TemplateConfiguracoesCategoria: bigint

+ «FK» FK_GCM_TemplateConfiguracoes_GCM_TemplateConfiguracoesCategoria(bigint)+ «index» IDX_GCM_TemplateConfiguracoes(bigint)+ «PK» FK_GCM_TemplateConfiguracoesArtefato_GCM_Artefat(bigint)

GCM_TemplateConfiguracoesArtefato

*PK «column» gcs_id: bigint*FK «column» gcm_Artefato: bigint*FK «column» gcm_TemplateConfiguracoes: bigint

+ «FK» FK_GCM_TemplateConfiguracoesArtefato_GCM_Artefato(bigint)+ «FK» FK_GCM_TemplateConfiguracoesArtefato_GCM_TemplateConfiguracoes(bigint)+ «index» IDX_GCM_TemplateConfiguracoesArtefato(bigint)+ «PK» PK_GCM_TemplateConfiguracoesArtefato(bigint)

GCM_TemplateConfiguracoesCategoria

*PK «column» gcc_id: bigint* «column» gcc_nome: varchar(150) «column» gcc_descricao: varchar(500) «column» gcc_observacao: varchar(500)

+ «PK» PK_GCM_TemplateConfiguracoesCategoria(bigint)

GCM_TemplateConfiguracoesProjeto

*PK «column» gcp_id: bigint*FK «column» gcm_TemplateConfiguracoes: bigint*FK «column» org_projeto: bigint

+ «FK» FK_GCM_TemplateConfiguracoesProjeto_GCM_TemplateConfiguracoes(bigint)+ «FK» FK_GCM_TemplateConfiguracoesProjeto_ORG_PROJECT(bigint)+ «PK» PK_GCM_TemplateConfiguracoesProjeto(bigint)

GCM_AnalisePropostaMudanca

*PK «column» gsp_id: bigint* «column» gsp_data: timestamp* «column» gsp_analise: varchar(5000) «column» gsp_observacao: varchar(5000)*FK «column» hrm_division_x_people: bigint*FK «column» gcm_ArtefatoPropostaAnalise: bigint*FK «column» gcm_analisePropostaMudancaStatus: bigint

+ «FK» FK_GCM_AnalisePropostaMudanca_GCM_ArtefatoPropostaAnalise(bigint)+ «FK» FK_GCM_AnalisePropostaMudanca_GcmAnalisePropostaMudancaStatus(bigint)+ «FK» FK_GCM_AnalisePropostaMudanca_HRM_USER(bigint)+ «PK» PK_GCM_AnalisePropostaMudanca(bigint)

Gcm_AnalisePropostaMudancaStatus

*PK «column» gtt_id: bigint* «column» gtt_nome: varchar(150) «column» gtt_descricao: varchar(200)

+ «PK» PK_GcmAnalisePropostaMudancaStatus(bigint)

0..*

10..*

1

0..*

1

0..*

1

FIGURA B.2 Modelo Relacional do Sistema – Parte 2

Page 169: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

167

cd BD-GCM

GCM_Artefato

*PK «column» gcf_id: bigint* «column» gcf_nome: varchar(150) «column» gcf_descricao: varchar(500) «column» gcf_dataCriacao: timestamp «column» gcf_observacao: varchar(500)*FK «column» gcm_TipoArtefato: bigint*FK «column» gcm_ArtefatoStatus: bigint FK «column» gcm_artefatoRel: bigint* «column» gcf_codigo: integer*FK «column» gcm_prefixo: bigint

+ «FK» FK_Artefato_ArtefatoStatus(varchar)+ «FK» FK_Artefato_TipoArtefato(varchar)+ «FK» FK_GCM_Artefato_GCM_Artefato(bigint)+ «FK» FK_GCM_Artefato_GCM_PREFIXO(bigint)+ «index» IDX_Artefato(bigint)+ «index» IDX_Artefato(bigint, bigint)+ «index» IDX_GCM_Artefato(bigint, bigint, integer)+ «PK» PK_Artefato(bigint)

GCM_ArtefatoStatus

*PK «column» gcr_id: bigint* «column» gcr_nome: varchar(150) «column» gcr_descricao: varchar(500) «column» gcr_observacao: varchar(500)

+ «index» IDX_ArtefatoStatus(varchar)+ «PK» PK_ArtefatoStatus(bigint)

ORG_PROJECT

*PK «column» orp_id: bigint

+ «PK» PK_ORG_PROJECT(bigint)

GCM_ArtefatoProjeto

*PK «column» gcj_id: bigint*FK «column» org_projeto: bigint*FK «column» gcm_artefato: bigint

+ «FK» FK_GCM_ArtefatoProjeto_ORG_PROJECT(bigint)+ «FK» FK_Gcm_AtributoArtefatoFile_GCM_PropriedadeArtefato(bigint)+ «PK» PK_GCM_ArtefatoProjeto(bigint)

GCM_ArtefatoRelacionamento

*PK «column» grr_id: bigint*FK «column» gcm_artefato: bigint*FK «column» gcm_artefatoRel: bigint

+ «FK» FK_GCM_ArtefatoRelacionamento_GCM_Artefato(bigint)+ «FK» FK_GCM_ArtefatoRelacionamento_GCM_ArtefatoRel(bigint)+ «PK» PK_GCM_ArtefatoRelacionamento(bigint)

GCM_PREFIXO

*PK «column» gpx_id: bigint* «column» gpx_prefixo: varchar(50)*FK «column» org_project: bigint

+ «FK» FK_GCM_PREFIXO_ORG_PROJECT(bigint)+ «PK» PK_GCM_PREFIXO(bigint)

0..*1

0..*

10..*

1

0..*

1

0..*

1

0..*

1

0..*

1

FIGURA B.3 Modelo Relacional do Sistema – Parte 3

Page 170: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

168

cd BD-GCM

GCM_TipoArtefato

*PK «column» gct_id: bigint* «column» gct_nome: varchar(150) «column» gct_descricao: varchar(500) «column» gct_observacao: varchar(500)

+ «index» IDX_TipoArtefato(varchar)+ «PK» PK_TipoArtefato(bigint)

HRM_DIVISION_X_PEOPLE

*PK «column» hdp_id: bigint

+ «PK» PK_HRM_USER(bigint)

GCM_ConfigurarVersionamento

*PK «column» gcn_id: bigint* «column» gcn_nome: varchar(150) «column» gcn_descricao: varchar(200) «column» gcn_observacao: varchar(50)* «column» gcn_incremento: integer* «column» gcn_casa: integer

+ «index» IDX_GCM_ConfigurarVersionamento(varchar)+ «PK» PK_GCM_ConfigurarVersionamento(bigint)

GCM_PropostaArtefato

*PK «column» ggg_id: bigint* «column» ggg_data: timestamp* «column» ggg_motivo: varchar(50) «column» ggg_observacao: varchar(50)*FK «column» hrm_division_x_people: bigint*FK «column» gcm_artefato: bigint «column» ggg_analise: varchar(50)* «column» ggg_codigo: bigint

+ «FK» FK_GCM_PropostaArtefato_GCM_Artefato(bigint)+ «FK» FK_GCM_PropostaArtefato_HRM_DIVISION_X_PEOPLE(bigint)+ «index» IDX_GCM_PropostaArtefato(bigint)+ «PK» PK_GCM_PropostaArtefato(bigint)

0..*

1

FIGURA B.4 Modelo Relacional do Sistema – Parte 4

Page 171: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

169

cd BD-GCM

GCM_TipoRelacionamento

*PK «column» gct_id: bigint*FK «column» gcm_tipoArtefato: bigint*FK «column» gcm_grauRelacionamento: bigint*FK «column» gcm_tipoArtefatoRel: bigint

+ «FK» FK_GCM_TemplateConfiguracoesArtefato_GCM_Artefat(bigint)+ «FK» FK_GCM_TipoRelacionamento_GCM_GrauRelacionamento(bigint)+ «FK» FK_GCM_TipoRelacionamento_GCM_TipoArtefato2(bigint)+ «PK» PK_GCM_TipoRelacionamento(bigint)

GCM_PermissaoVersaoArtefatoUsuario

*PK «column» gcs_id: bigint*FK «column» gcm_versaoArtefato: bigint*FK «column» hrm_division_x_people: bigint*FK «column» gcm_permissaoStatus: bigint

+ «FK» FK_GCM_PermissaoVersaoArtefatoUsuario_GCM_PermissaoStatus(bigint)+ «FK» FK_GCM_PermissaoVersaoArtefatoUsuario_GCM_VersaoArtefato(bigint)+ «FK» FK_GCM_PermissaoVersaoArtefatoUsuario_HRM_USER(bigint)+ «PK» PK_GCM_PermissaoVersaoArtefatoUsuario(bigint)

GCM_PermissaoStatus

*PK «column» gss_id: bigint* «column» gss_nome: varchar(150) «column» gss_descricao: varchar(200)

+ «PK» PK_GCM_PermissaoStatus(bigint)

GCM_PropostaArtefato-sem v alidade

*PK «column» gpr_id: bigint* «column» gpr_codigo: varchar(10)* «column» gpr_titulo: varchar(150)* «column» gpr_motivo: varchar(500) «column» gpr_observacao: varchar(500)* «column» gpr_nome_artefato: varchar(150)* «column» gpr_descricao_artefato: varchar(500)*FK «column» gcm_tipoartefato: bigint*FK «column» hrm_division_x_people: bigint*FK «column» gcm_propostaArtefatoStatus: bigint

+ «FK» FK_GCM_PropostaArtefato_GCM_PropostaArtefatoStatus(bigint)+ «FK» FK_GCM_PropostaArtefato_GCM_TipoArtefato(bigint)+ «FK» FK_GCM_PropostaArtefato_HRM_USER(bigint)+ «PK» PK_GCM_PropostaArtefato(bigint)

GCM_PropostaArtefatoStatus

*PK «column» gps_id: bigint* «column» gps_nome: varchar(150) «column» gps_descricao: varchar(500) «column» gps_observacao: varchar(500)

+ «PK» PK_GCM_PropostaArtefatoStatus(bigint)

0..*

1

0..*

1

FIGURA B.5 Modelo Relacional do Sistema – Parte 5

Page 172: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

170

cd BD-GCM

GCM_VersaoArtefato

*PK «column» gcl_id: bigint* «column» gcl_versao: varchar(15)* «column» gcl_data: timestamp «column» gcl_observacao: varchar(500)*FK «column» gcm_Artefato: bigint*FK «column» gcm_Visibil idade: bigint*FK «column» gcm_VersaoArtefatoStatus: bigint FK «column» gcm_VersaoArtefato: bigint

+ «FK» FK_GCM_VersaoArtefato_GCM_VersaoArtefato(bigint)+ «FK» FK_VersaoArtefato_Artefato(bigint)+ «FK» FK_VersaoArtefato_VersaoArtefatoStatus(bigint)+ «FK» FK_VersaoArtefato_Visibilidade(varchar)+ «index» IDX_VersaoArtefato(varchar)+ «index» IDX_VersaoArtefato(varchar, bigint)+ «index» IDX_VersaoArtefato(varchar, bigint, bigint)+ «index» IDX_VersaoArtefato(varchar, bigint, bigint, bigint)+ «PK» PK_VersaoArtefato(bigint)

GCM_TipoPropriedadeArtefato

*PK «column» gcp_id: bigint* «column» gcp_nome: varchar(150) «column» gcp_descricao: varchar(500) «column» gcp_observacao: varchar(500)

+ «index» IDX_TipoPropriedadeArtefato(varchar)+ «PK» PK_TipoPropriedadeArtefato(bigint)

GCM_VersaoArtefatoStatus

*PK «column» gcs_id: bigint* «column» gcs_nome: varchar(150) «column» gcs_descricao: varchar(500) «column» gcs_observacao: varchar(500)

+ «index» IDX_VersaoArtefatoStatus(varchar)+ «PK» PK_VersaoArtefatoStatus(bigint)

GCM_Visibilidade

*PK «column» gcv_id: bigint* «column» gcv_nome: varchar(150) «column» gcv_descricao: varchar(500) «column» gcv_observacao: varchar(50)

+ «index» IDX_Visibil idade(varchar)+ «PK» PK_Visibil idade(bigint)

GCM_Operacao

*PK «column» gcp_id: bigint* «column» gcp_nome: varchar(150) «column» gcp_descricao: varchar(500) «column» gcp_observacao: varchar(500)

+ «PK» PK_GCM_Operacao(bigint)

GCM_HistoricoOperacao

*PK «column» gch_id: bigint* «column» gch_data: timestamp* «column» gch_descricao: varchar(500)*FK «column» gcm_operacao: bigint*FK «column» gcm_versaoArtefato: bigint*FK «column» hrm_division_x_people: bigint

+ «FK» FK_GCM_HistoricoOperacao_GCM_Operacao(bigint)+ «FK» FK_GCM_HistoricoOperacao_GCM_VersaoArtefato(bigint)+ «FK» FK_GCM_HistoricoOperacao_HRM_USER(bigint)+ «PK» PK_GCM_HistoricoOperacao(bigint)

0..*

1

0..*

1

0..*1

0..*

1

FIGURA B.6 Modelo Relacional do Sistema – Parte 6

Page 173: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

171

cd BD-GCM

GCM_PropriedadeArtefato

*PK «column» gcc_id: bigint* «column» gcc_nome: varchar(150) «column» gcc_descricao: varchar(500) «column» gcc_observacao: varchar(500)*FK «column» gcm_TipoArtefato: bigint*FK «column» gcm_TipoPropriedadeArtefato: bigint

+ «FK» FK_PropriedadeArtefato_TipoArtefato(varchar)+ «FK» FK_PropriedadeArtefato_TipoPropriedadeArtefato(varchar)+ «index» IDX_PropriedadeArtefato(bigint)+ «index» IDX_PropriedadeArtefato(bigint, bigint)+ «index» IDX_PropriedadeArtefato(bigint, bigint, bigint)+ «PK» PK_PropriedadeArtefato(bigint)

GCM_AtributosArtefatoInteiro

*PK «column» gcn_id: bigint* «column» gcn_valor: bigint*FK «column» gcm_VersaoArtefato: bigint*FK «column» gcm_PropriedadeArtefato: bigint

+ «FK» FK_AtributosArtefatoInteiro_PropriedadeArtefato(bigint)+ «FK» FK_GCM_BaselineProjeto_ORG_PROJECT(bigint)+ «index» IDX_AtributosArtefatoInteiro(bigint)+ «index» IDX_AtributosArtefatoInteiro(bigint, bigint)+ «PK» PK_AtributosArtefatoInteiro(bigint)

Gcm_AtributosArtefatoFile

*PK «column» grf_id: bigint* «column» grf_file_name: varchar(150)* «column» grf_content_type: varchar(150)* «column» grf_length: numeric(10,2)* «column» grf_file: bytea*FK «column» gcm_PropriedadeArtefato: bigint FK «column» gcm_VersaoArtefato: bigint

+ «FK» FK_Gcm_AtributosArtefatoFile_GCM_PropriedadeArtefato(bigint)+ «FK» FK_Gcm_AtributosArtefatoFile_GCM_VersaoArtefato(bigint)+ «PK» PK_Gcm_AtributosArtefatoFile(bigint)

0..*

1

0..*

1

FIGURA B.7 Modelo Relacional do Sistema – Parte 7

Page 174: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

172

cd BD-GCM

GCM_Cliente

*PK «column» gss_id: bigint* «column» gss_nome: varchar(200)

+ «PK» PK_GCM_Cliente(bigint)

GCM_VersaoRelease

*PK «column» grc_id: bigint*FK «column» gcm_release: bigint*FK «column» gcm_versaoArtefatoVersaoConfiguracao: bigint

+ «FK» FK_GCM_VersaoRelease_GCM_Release(bigint)+ «FK» FK_GCM_VersaoRelease_GCM_VersaoArtefatoVersaoConfiguracao(bigint)+ «PK» PK_GCM_VersaoRelease(bigint)

GCM_Release

*PK «column» grl_id: bigint* «column» grl_nome: varchar(200)* «column» grl_data: timestamp «column» grl_descricao: varchar(500)*FK «column» gcm_releaseStatus: bigint

+ «FK» FK_GCM_Release_GCM_ReleaseStatus(bigint)+ «PK» PK_GCM_Release(bigint)

GCM_ReleaseStatus

*PK «column» grs_id: bigint* «column» grs_nome: varchar(200) «column» grs_descricao: varchar(500) «column» grs_observacao: varchar(500)

+ «PK» PK_GCM_ReleaseStatus(bigint)

GCM_CLIENTE_RELEASE

*PK «column» glr_id: bigint*FK «column» gcm_cliente: bigint*FK «column» gcm_release: bigint

+ «FK» FK_GCM_CLIENTE_RELEASE_GCM_Cliente(bigint)+ «FK» FK_GCM_CLIENTE_RELEASE_GCM_Release(bigint)+ «PK» PK_GCM_CLIENTE_RELEASE(bigint)

GCM_QUALIDADE

*PK «column» gqq_id: bigint* «column» gqq_texto: varchar(50)*FK «column» gcm_versaoartefato: bigint

+ «FK» FK_GCM_QULIDADE_GCM_VersaoArtefato(bigint)+ «PK» PK_GCM_QULIDADE(bigint)

0..*

1

0..*

1

0..*1

0..*

1

FIGURA B.8 Modelo Relacional do Sistema – Parte 8

Page 175: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

173

cd BD-GCM

GCM_RelacionamentoVersaoArtefato

*PK «column» gcr_id: bigint*FK «column» gcm_GrauRelacionamento: bigint*FK «column» gcm_VersaoArtefato: bigint*FK «column» gcm_VersaoArtefatoRel: bigint

+ «FK» FK_GCM_RelacionamentoVersaoArtefato_GCM_GrauRelacionamento(bigint)+ «FK» FK_GCM_RelacionamentoVersaoArtefato_GCM_VersaoArtefato(bigint)+ «FK» FK_GCM_RelacionamentoVersaoArtefato_GCM_VersaoArtefatoRel(bigint)+ «PK» PK_GCM_RelacionamentoVersaoArtefato(bigint)

GCM_VersaoArtefatoVersaoConfiguracao

*FK «column» gcm_VersaoArtefato: bigint*FK «column» gcm_VersaoConfiguracao: bigint*PK «column» gvv_id: bigint

+ «FK» FK_GCM_VersaoArtefatoVersaoConfiguracao_GCM_VersaoArtefato(bigint)+ «FK» FK_GCM_VersaoArtefatoVersaoConfiguracao_GCM_VersaoConfiguracao(bigint)+ «PK» PK_GCM_VersaoArtefatoVersaoConfiguracao(bigint)

FIGURA B.9 Modelo Relacional do Sistema – Parte 9

Page 176: UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE …mtc-m16b.sid.inpe.br/.../2007/12.18.18.35/doc/publicacao.pdf · UM PROCESSO DE GERENCIAMENTO DE CONFIGURAC˘AO DE SOFTWARE COM

174

cd BD-GCM

GCM_AtributosArtefatoString

*PK «column» gcg_id: bigint* «column» gcg_valor: varchar(500)*FK «column» gcm_PropriedadeArtefato: bigint*FK «column» gcm_VersaoArtefato: bigint

+ «FK» FK_AtributosArtefatoString_PropriedadeArtefato(bigint)+ «FK» FK_AtributosArtefatoString_VersaoArtefato(bigint)+ «index» IDX_AtributosArtefatoString(bigint)+ «index» IDX_AtributosArtefatoString(bigint, bigint)+ «PK» PK_AtributosArtefatoString(bigint)

GCM_GrauRelacionamento

*PK «column» gcn_id: bigint «column» gcn_nome: varchar(150) «column» gcn_descricao: varchar(500) «column» gcn_observacao: varchar(500)

+ «PK» PK_GcmGrauRelacionamento(bigint)

GCM_Configuracao

*PK «column» gnf_id: bigint* «column» gnf_nome: varchar(150) «column» gnf_descricao: varchar(500) «column» gnf_observacao: varchar(500)

+ «index» IDX_GCM_Configuracao(varchar)+ «PK» PK_GCM_Configuracao(bigint)

GCM_VersaoConfiguracao

*PK «column» gvc_id: bigint* «column» gvc_versao: varchar(50)* «column» gvc_data: timestamp*FK «column» gcm_configuracao: bigint*FK «column» gcm_VersaoConfiguracaoStatus: bigint

+ «FK» FK_GCM_VersaoConfiguracao_GCM_Configuracao(bigint)+ «FK» FK_GCM_VersaoConfiguracao_GCM_VersaoConfiguracaoStatus(bigint)+ «index» IDX_GCM_VersaoConfiguracao(varchar)+ «PK» PK_GCM_VersaoConfiguracao(bigint)

GCM_VersaoConfiguracaoStatus

*PK «column» gvs_id: bigint «column» gvs_nome: varchar(150) «column» gvs_descricao: varchar(500) «column» gvs_observacao: varchar(500)

+ «PK» PK_GCM_VersaoConfiguracaoStatus(bigint)

0..*

+FK_GCM_VersaoConfiguracao_GCM_Configuracao(gcm_configuracao = gnf_id)

1

+PK_GCM_Configuracao

0..*+FK_GCM_VersaoConfiguracao_GCM_VersaoConfiguraca...

(gcm_VersaoConfiguracaoStatus = gvs_id)

1+PK_GCM_VersaoConfiguracaoStatus

FIGURA B.10 Modelo Relacional do Sistema – Parte 10