Metodologia de Desenvolvimento de Software Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba © Centro de Informática Universidade.

Slides:



Advertisements
Apresentações semelhantes
Integração Contínua: estudo de caso Datasul CRM
Advertisements

Contexto para Gerência de Configuração
Tipos de sistemas de Lehman
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
RELATORIO DE PESQUISA 1 Ferramentas para modelagem de sistemas e representação dos requisitos funcionais e não funcionais.
Engenharia de Software
Rational Unified Process(RUP)
Desenvolvimento Global de Software
Metodologia de Desenvolvimento de Software
Gerenciamento de Configuração
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Seminário de Andamento Módulo: Merge Grupo 5 André Ribeiro Coelho Rafael de Souza Santos.
Como Desenvolver Sistemas de Informação
Gestão de Defeitos Vanilson Burégio.
Gerenciamento de Requisitos com Casos de Uso
Gerência de Configuração
Compilação de programas com make
Configuração de manutenção
Gerência de Configuração de Software
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Gerenciamento de Configuração
O Fluxo de Implementação
Concurrent Versions System Leandro Augusto de Oliveira
Gestão de Configuração de Software
CMMI – Gerência de Configuração
Márcio Aurélio Ribeiro Moreira
Branch & Merge Claudio Leite.
Objetivos das Atividades de Implementação • Implementar as classes do modelo de projeto em termos de componentes (código fonte ou executável, etc.) •
Engenharia de Software com o RUP - Workflow de Testes Parte I
MVP Virtual Conference 2013
Gerência de Configuração - GC
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
Marcio de Carvalho Victorino Processo Unificado. Unidade VI: Teste.
Paulo Oliveira – phslfo Victor Acioli - vaca 11/05/2010.
Documentação de Software
Repositório de Tabelas Corporativas do Ministério da Saúde
Sistemas operacionais
1/113 Contexto para Gerência de Configuração. 2/113 Gerência de Configuração e mudança Objetivo Compreender a importância do uso de mecanismos de gerência.
S ISTEMA DE C ONTROLE DE V ERSÃO : B AZAAR Carolina Ramalho Priscilla Gonçalves.
Controle de versão. Política trava-modifica-destrava Nessa política, o sistema de controle de versão permite que apenas um desenvolvedor por vez altere.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
André Silva Rodrigues Diretor de Tecnologia. O que é subversion? Como subversion funciona? 12/4/2015WorkSet Indo 2 Introdução.
Gerência de Configuração Autor: Silvio Cortez. Fluxos e papeis Escrever plano Definir ferramentas Escrever plano de gerência de configuração Gerente de.
SISTEMAS OPERACIONAIS I
Laboratório de Programação
Nomeação de arquivos – Cap 4.1.1
Conceitos Básicos Introdução.
XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Concurrent Versions System (CVS) Alexandre Monteiro.
José de Arimatea - jarn José Luiz - jlcn 20/01/2013.
Gerência de Configuração e Mudança
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Distribuição de Software Alexandre Vasconcelos © Centro de Informática Universidade Federal de Pernambuco.
Engenharia de Software com o RUP - Workflow de Testes Parte II Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba © Centro.
Engenharia de Software
Aula – Sistemas Operacionais
Controle de Versão com SubVersion
CVS – Gerenciamento de Versões
Objetivos deste módulo
Processo de Gerência de Mudanças
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Gerenciamento de Configuração de Software
Gerência de Configuração Processo, Mantis, Plano e Auditoria.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Engenharia de Software com o RUP - Workflow de Requisitos
Metodologia de Desenvolvimento de Software
Eduardo C. Nicácio ITIL v3 Foundation Certified.  As melhores práticas do ITIL abrangem cinco processos de suporte a serviços, além do papel do Service.
Subversion- Treinamento Básico Controle de versões de Arquivos na Acropolis Atualizado em
Gerência de Configuração
Transcrição da apresentação:

Metodologia de Desenvolvimento de Software Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba © Centro de Informática Universidade Federal de Pernambuco

Gerência de Configuração e mudança André Santos Objetivo Compreender a importância do uso de mecanismos de gerência de configuração e gerência de mudança, seus métodos, processos e ferramentas.

Tópicos n Introdução n A necessidade de controle do código fonte n Controle do código fonte n Builds n Controle de defeitos n Gerência de mudança

Introdução n SEI CMM: u Gerência de Configuração (CM) e de Solicitações de Mudança (CRM) controlam as mudanças e mantém a integridade dos artefatos de um projeto. n CM e CRM envolvem: u identificar itens de configuração u restringir as modificações nesses itens u auditar modificações nesses itens u definir e administrar configurações desses itens, ao longo do processo de desenvolvimento.

Introdução n Parte essencial do processo de desenvolvimento. n Visa eliminar problemas de u atualizações simultâneas u limitação de notificação u existencia de múltiplas versões do sistema (produção, desenvolvimento, teste etc.)

Introdução n Benefícios: u suporte a metodologias de desenvolvimento u mantém integridade do sistema u garante completude e corretude do produto configurado u provê um ambiente estável para o desenvolvimento do produto u restringe mudanças nos artefatos, baseado em uma política u provê formas de auditar porque, quando e por quem um artefato foi modificado.

Introdução n Principais aspectos tratados em CM: u Change Request Management (CRM) u Configuration Status Accounting (Métricas) u Configuration Management (CM) u Change Tracking u Version Selection u Software Manufacture

Introdução n Ao longo do ciclo de vida de um software, seus artefatos sofrem diversas alterações, causadas por u correção de defeitos no produto u melhorias de funcionalidades do produto n Estas alterações afetam todos os tipos de artefatos: u documentos de requisistos u documentos de análise e projeto u código fonte u programas e scripts de tests

Introdução n Vamos nos referir no texto a código fonte, que é o artefato em que mais se usa essas técnicas. n Mas elas podem e devem ser usadas para todos os artefatos, dependendo do tamanho e complexidade do projeto.

Tópicos n Introdução è A necessidade de controle do código fonte n Controle do código fonte n Builds n Controle de defeitos n Gerência de mudança

A necessidade de controle do código fonte n Software desenvolvido por uma equipe u programas precisam ser acessados e alterados por várias pessoas da equipe. u modularização do projeto normalmente não é suficiente para resolver este problema. u como controlar o acesso aos programas? u Como saber qual a versão mais atualizada dos arquivos? u Como voltar para uma versão anterior do programa?

A necessidade de merging n Software desenvolvido por uma equipe u serializar o acesso aos programas pode ser improdutivo. F Pequenas alterações não precisam exigir acesso exclusivo aos programas F Alterações em métodos diferentes de uma mesma classe não precisam na maioria das vezes ser feitos seqüencialmente. u como fazer para que mais de uma pessoa possa estar trabalhando em um mesmo arquivo ao mesmo tempo? n Merging automático viabiliza o desenvolvimento paralelo

Tópicos n Introdução n A necessidade de controle do código fonte è Controle do código fonte n Builds n Controle de defeitos n Gerência de mudança

Controle do Código Fonte n semelhante ao controle de integridade em um Banco de Dados moderno n Exige a instalação, configuração e manutenção de um produto especificamente para controlar o código fonte. n Possui um conjunto básico de ações de controle de código fonte a serem realizadas pelo desenvolvedor. Desenvolvedor A Desenvolvedor B Repositório

Check-in n Ação de inserir/atualizar o conteúdo de um arquivo no sistema de controle de código fonte. u Verifica permissão de acesso ao arquivo u verifica e incrementa identificador de versão do arquivo u guarda data, hora e autor da alteração u informação de mudança (comentário) u commit do arquivo. n Informações são guardadas no próprio arquivo ou junto com ele. DesenvolvedorRepositório

Check-out n Ação de ler/copiar a (última) versão de um arquivo guardada no sistema n Tipos de checkout u somente para leitura (read-only) u para edição (read/write) DesenvolvedorRepositório

Locking n Sistemas de controle de código fonte usam um mecanismo de locking para evitar que mudanças acidentais ou intencionais ocorram em momentos inapropriados. n Evita alterações simultâneas u permite check-out, mas somente para leitura. Desenvolvedor prog1.c prog2.c prog3.c Repositório

Tagging n Permite “marcar” um conjunto de arquivos com um nome (tag). n Um tag representa um ou mais arquivos em um ou mais diretórios. u Tagging de versão de projeto: controla uma dada versão do projeto, em determinada data ou com determinada funcionalidade. u Tagging de arquivo de projeto: marca um conjunto de arquivos como pertencentes a um projeto, sem associação com a versão dos arquivos.

Tagging Arquivos marcados com tag A representam o projeto A: topdir/file1 topdir/file2 topdir/subdir1/file6 topdir/subdir2/file8 topdir/dubdir2/file9 file2 topdir subdir1 subdir2 file1 file3 file4 file5 file6 file7file8file9

Branching n Branching é a mais complicada das atividades básicas de controle de código fonte u é fundamental ter estratégias de branching bem definidas. n Estratégias de branching são regras que definem como ocorrerão atividades de mudança em paralelo no código fonte. u Sem uma estratégia bem definida, pode esperar pelo caos.

Branching n Em um sistema sem branches, um arquivo começa com sua versão 1, e a cada check-in sua versão é incrementada. u Se a versão mais recente é 5, você não pode fazer checkout para editar a versão 2, por exemplo. n Uso de locks limita o trabalho dos programadores.

Branching n Branching tenta reduzir estas limitações, permitindo a criação de caminhos separados (linhas) de desenvolvimento para um mesmo arquivo ou conjunto de arquivos. u cada branch tem o seu conjunto de alterações e versões. u Um branch guarda ligação com seu nó (versão do “ramo” principal) de origem. u Extremamente poderoso, e perigoso!

Branching 1423 file.c

Merging n Merging é o processo de combinar múltiplas versões de um arquivo para criar uma nova versão. u o desafio é garantir que a funcionalidade do código antes do merge seja preservada após o merge. n 2-way merges, até 32-way merges.

Merging n Situações a serem tratadas: u funcionalidades diferentes, sem conflito. u funcionalidades em conflito, que podem ser combinadas. Exemplo: tamanho de array. u funcionalidades em conflito, que não podem ser combinadas. F Neste caso, os desenvolvedores tem que entrar em acordo.

Merging n Merging é essencial se for permitida a criação de branches. u Normalmente, os vários branches do sistema retornarão ao branch principal de desenvolvimento. u Um dos critérios para criação de branches é o tempo necessário para realizar uma alteração.

Política de gerência de configuração n Deve haver uma política clara sobre: u convenção de formato de nomes, extensões. u responsabilidade de mudanças. u Documentação de mudanças (comentários) u criação e nomes de diretórios

Gerenciamento de Branching n Estratégias de Branching u define porque e quando branches são criados u quais atividades ocorrem nos branches u como os branches morrem ou migram para o branch principal.

Gerenciamento de Branching n Estratégias de Merging n Objetivos conflitantes: u maximizar produtividade individual do desenvolvedor u maximizar a habilidade de um desenvolvedor se beneficiar do trabalho dos outros

Gerenciamento de Branching n Tipos de merge u merge no tronco principal u merge (a partir) do tronco principal n branch de merge

Branching 1 hello.c hello.h Jan 5Jan 10Jan 20

Branching 1 hello.c hello.h j.1 hello.c 3.j.23.j.3 2.j.1 hello.h 2.j.2 José Maria 3.m.1 hello.c 3.m.2 3.m.3 2.m.1 hello.h 2.m.2

Merging 3 hello.c 4 2 hello.h j.1 hello.c 3.j.23.j.3 2.j.1 hello.h 2.j.2 José Maria 3.m.1 hello.c 3.m.2 3.m.3 2.m.1 hello.h 2.m.2 3.j.4 2.j.3

Tópicos n Introdução n A necessidade de controle do código fonte n Controle do código fonte è Builds n Controle de defeitos n Gerência de mudança

Builds n “Build” é um termo usado para identificar as atividades associadas com o processamento dos fontes para gerar um executável. n Ações u verificar dependências u compilar u linkar u gerar outros arquivos (se necesário)

No Unix n Makefile comando make CC = gcc OPTS = -O hello: hello.o $(CC) $(OPTS) hello.o -o hello hello.o: hello.c $(CC) ($OPTS) -c hello.c

Ambiente de desenvolvimento n Objetivo: reproducibilidade n Especificar ambiente de build u hardware u software u procedimentos n Verificar reproducibilidade

Relatório de Build n Lista u ambiente u arquivos u localização n necessários para gerar o build de uma versão específica do software

Seleção de ferramentas n licenças n manutenção n expectativa de vida n features n desenvolver ferramentas internamente?

Referências n Descrição do workflow de gerência de configuração e mudanças - CD do RUP n Configuration Management Today - n Software Release Methodology, M.E.Bays, Prentice Hall, 1999.