Davy Baía MSC Candidate

Documentos relacionados
Integração Contínua com Rational Team Concert, Jenkins e SonarQube

GARANTIA DA QUALIDADE DE SOFTWARE

ADM041 / EPR806 Sistemas de Informação

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

Gerenciamento de Projeto: Monitorando e Controlando o Projeto II. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Gestão de defeito: Descreva! Sumário. Introdução. Problema. Justificativa. Metodologia. Referencial teórico. Demonstração do Mantis.

Análise de Pontos por Função

Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler

Ambiente de workflow para controle de métricas no processo de desenvolvimento de software

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

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula:

A Grande Importância da Mineração de Dados nas Organizações

Engenharia de Software II: Criando a EAP e planejando a Qualidade. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Ferramenta de Testes de Programas para Auxílio na Aprendizagem de Programação

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

QUALIDADE DE SOFTWARE

Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto

PrimeUp Educação. Caso real: implantação de solução de ALM.

Engenharia de Software II: Definindo Projeto III. Prof. Msc Ricardo Britto DIE-UFPI

CE-240 ListEx 1. Lista de Exercícios 1. Relatório

Universidade Paulista

Microsoft Access XP Módulo Um

Gerenciamento de Estúdios de Tatuagem. MANUAL DO USUÁRIO (Versão do manual: 2009.a)

Gerenciamento de Projetos Gerenciamento de Custos

MODELO CMM MATURIDADE DE SOFTWARE

Planejamento e Gerenciamento de Projeto de Software

Controle de métricas no processo de desenvolvimento de software através de uma ferramenta de workflow

Extração de Requisitos

Padrões de Qualidade de Software

MANUAL COMO CRIAR UM PROJETO

Engenharia de Software II: Criando o cronograma do projeto. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

MODELO SPICE Software Improvement and Capacibilty Determination Avalia o software com foco na melhoria de seus processos (identifica pontos fracos e

Roteiro SENAC. Análise de Riscos. Análise Quantitativa de Riscos. Análise Quantitativa de Riscos. Análise Quantitativa de Riscos

TC042 CONSTRUÇÃO CIVIL IV AULA 5

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Políticas de Qualidade em TI

Implantação de um Processo de Medições de Software

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

Plano de Gerenciamento do Projeto

Gerenciamento de Projeto: Executando o Projeto III. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

CMM - Capability Maturity Model

Projeto 4D: Gerenciamento e Simulação de projetos industriais com o Autodesk Navisworks

Manual do usuário. v1.0

Plano de Trabalho Docente Ensino Técnico

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

A definição do escopo trata-se de um processo onde é realizada uma descrição detalhada do projeto e do produto a ser desenvolvido;

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas

O processo de melhoria de processo

Padrões de Qualidade de Software e Métricas de Software

Gerenciamento de Projeto

ENGENHARIA DE SOFTWARE

IBM Software Demos Rational Software Delivery Platform - Recursos de gerenciamento de portfólios

Fundamentos de Teste de Software

NORMA ISO/IEC Isac Aguiar isacaguiar.com.br

Pag: 1/20. SGI Manual. Controle de Padrões

Manual de digitação de contas Portal AFPERGS

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO:

Engenharia de Software

Introdução. Escritório de projetos

Engenharia de Requisitos

Engenharia de Software II: Desenvolvendo o Orçamento do Projeto. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Modelagem e Simulação Material 02 Projeto de Simulação

Módulo 4: Gerenciamento de Dados

PMI (PROJECT MANAGEMENT INSTITUT) A PROFISSIONALIZAÇÃO DA GESTÃO DE PROJETOS

Introdução à Qualidade de Software. Profº Aldo Rocha

Segurança de Aplicações Aula 6

SISTEMAS DE INFORMAÇÃO GERENCIAL

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

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

MATERIAL DIDÁTICO: APLICAÇÕES EMPRESARIAIS SISTEMA DE APOIO À DECISÃO (SAD)

1 Inicie um novo. Guia de Referência Rápida de Gerenciamento de Projeto para o Project projeto

Garantia da Qualidade de Software

Gerenciamento de Projetos Modulo IX Qualidade

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Gerenciamento de Projeto: Planejando os Recursos. Prof. Msc Ricardo Britto DIE-UFPI

Gerenciamento de Projeto: Criando a Declaração de Escopo II. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Como melhorar a tomada de decisão. slide 1

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

Engenharia de Software I

Trabalho Interdisciplinar. MS Project

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

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

Gestão da Qualidade. Marca. ANÁLISE CRÍTICA DA QUALIDADE Ata de Reunião Ordinária 31/10/ :00 Marca Sistemas de Computação

Engenharia de Software I

Visão Geral Parte 1. O que é engenharia de software?

Microsoft Project 2007

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

CMM Capability Maturity Model. Silvia Regina Vergilio

Gerenciamento de Projetos Modulo VIII Riscos

W Projeto. Gerenciamento. Construindo a WBS e gerando o Cronograma. Autor: Antonio Augusto Camargos, PMP 1/12

Transcrição:

Descoberta de conhecimento em banco de dados utilizando técnicas de mineração de dados no domínio da Engenharia de Software para fins de gerenciamento do processo de desenvolvimento Davy Baía MSC Candidate Junho 2011

Agenda Introdução - Mineração de Dados em Engenharia de Software - Ferramentas de auxilio que fornece base de dados Motivação Proposta Estado da Arte Técnicas de Mineração de Dados Associação, Classificação e Clustering Discussão Trabalho em andamento 2

Mineração de Dados em Engenharia de Software Transforma dados histórico em indicadores Verificar os dados para descobrir padrões escondidos e tendências 3

Mineração de Dados em Engenharia de Software Melhor compreensão baseado no histórico do desenvolvimento de software Prever, planejar e compreender os vários aspectos de um projeto Apoiar o desenvolvimento futuro e as atividades de gerenciamento de projetos 4

Ferramentas de auxilio que fornece base de dados Rational Team Concert - RTC Planejamento Integrado de iterações Gerência de itens de trabalho Controle de origem Gerência de construção (builds) Rational Quality Manager - RQM Planejamento e controle dos testes Criação e execução de casos de testes Gerenciamento dos defeitos Rational Requirements Composer - RRC Gerência de Requisitos 5

Motivação Tendência de crescimento em demanda e complexidade; Manter a qualidade; Diversas variáveis durante o planejamento e execução. 21/06/11 DAVY BAÍA LES/PUC-Rio LDS-UFAL 6

Proposta Unir as bases; Aplicar de técnicas de mineração de dados; Descobrir informações; Auxiliar no andamento do projeto ou estimações futuras. 7

Proposta Programação Detecção de Defeito testes Depuração Manutençao Gerar indicadores para Processo de desenvolvimento software aplicando mineração de dados classification association/ patterns clustering Tecnicas de Mineração de dados RTC RQM RRC Dados de Engenharia de Software 8

Estado da arte Avaliação de Processos de Software Baseada em Medições [01] Augusto Gomes, Kathia Oliveira, Ana Regina Rocha XV Simpósio Brasileiro de Engenharia de Software Baseado em medições; Definir, coletar e analisar não trivial; Descreve uma abordagem para avaliação de processo de software; Seleciona métricas adequadas seguindo a abordagem GQM (Goal-Question_Metrics); Propõe a análise dos resultados apoiada em um sistema baseado em conhecimento. 9

primeira meta estipulada. A partir da definição destas questões, foram definidas métricas que comparam os dados estimados para o projeto com os dados reais medidos durante o decorrer dos trabalhos. Foram selecionadas duas métricas para cada uma das questões de forma a considerar tanto os valores globais (todo o projeto) quanto os valores detalhados por macroatividade1, como pode ser visto na Figura 1. Avaliação de Processos de Software Baseada em Medições Objetivo 1 : Propósito: Melhorar Questão: precisão Objeto: estimativas de projeto Ponto de Vista: analisado pelo ponto de vista dos gerentes de projeto Questão 1.1 : Qual a precisão das estimativas de cronograma do projeto? Métrica 1.1 a) Precisão Total do Cronograma = Tempo real de todo o projeto. Tempo estimado do projeto Métrica 1.1 b) Pr. Cron. por Macro-Atividade = Tempo real por macro-atividade. Tempo estimado para a macro-ativ. Questão 1.2 : Qual a precisão das estimativas de esforço do projeto? Métrica 1.2 a) Precisão Total do Esforço = Esforço real de todo o projeto. Esforço estimado para o projeto Métrica 1.2 b) Pr. Esforço por Macro-Atividade = Esforço real por macro-atividade. Esforço estimado para a macro-ativ. Figura 1 Definição das métricas para o primeiro objetivo de avaliação do processo segundo a abordagem GQM. Para facilitar a coleta, o entendimento e a análise dos dados, cada métrica selecionada para um objetivo deve ser claramente definida. Baseados em [7], definimos que para medir tempo em um projeto seria utilizado o número de dias decorridos entre a data de início dos 10

possíveis causas para este problema. Desta forma, este não será detalhado em sub-objetivos sendo um nó terminal da estrutura. Pode-se considerar que ocorreu um problema no Emprego do Esforço na Macro-atividade quando não houver um problema de Precisão do Esforço na Macro-atividade, ou seja, se ocorreu um problema no tempo, mas o esforço foi dentro do previsto, então, conclui-se que o problema foi o incorreto emprego do esforço. Somente para facilitar a visualização, todos os nós terminais da estrutura serão representados por retângulos ao invés de elipses como pode ser visto na figura 7. Avaliação de Processos de Software Baseada em Medições Precisão das Estimativas Problema = Se problema em um um dos sub-objetivos Precisão do Esforço por Macro-atividade Precisão Total do Esforço Problema = Se medida > tolerancia Precisão Total do Cronograma Problema = Se medida > tolerancia Precisão do Cronograma por Macro-atividade Problema = Se medida > tolerancia Emprego do Esforço na Macro-atividade Problema = Se não Problema na "Precisão do Esforçopor Macro-atividade Figura 7 Estrutura de decisão para o objetivo 1 com a representação do primeiro nó terminal. Este procedimento foi repetido para a Precisão do Esforço por Macro-Atividade e seus sub-objetivos até que não existissem mais nós passíveis de serem expandidos, ou que não fosse interessante sua expansão no nível em que se encontram os trabalhos. A estrutura final pode ser vista na figura 8. 11

possíveis causas para este problema. Desta forma, este não será detalhado em sub-objetivos sendo um nó terminal da estrutura. Pode-se considerar que ocorreu um problema no Emprego do Esforço na Macro-atividade quando não houver um problema de Precisão do Esforço na Macro-atividade, ou seja, se ocorreu um problema no tempo, mas o esforço foi dentro do previsto, então, conclui-se que o problema foi o incorreto emprego do esforço. Somente para facilitar a visualização, todos os nós terminais da estrutura serão representados por retângulos ao invés de elipses como pode ser visto na figura 7. Avaliação de Processos de Software Baseada em Medições Precisão das Estimativas Problema = Se problema em um um dos sub-objetivos Precisão do Esforço por Macro-atividade Precisão Total do Esforço Problema = Se medida > tolerancia Precisão Total do Cronograma Problema = Se medida > tolerancia Precisão do Cronograma por Macro-atividade Problema = Se medida > tolerancia Emprego do Esforço na Macro-atividade Problema = Se não Problema na "Precisão do Esforçopor Macro-atividade Figura 7 Estrutura de decisão para o objetivo 1 com a representação do primeiro nó terminal. Este procedimento foi repetido para a Precisão do Esforço por Macro-Atividade e seus sub-objetivos até que não existissem mais nós passíveis de serem expandidos, ou que não fosse interessante sua expansão no nível em que se encontram os trabalhos. A estrutura final pode ser vista na figura 8. 12

Como pode ser visto no exemplo abaixo, a resposta do sistema é dada em uma forma de 13 Avaliação de Processos de Software Baseada em Medições somente após o término de todas as atividades do projeto, será possível a análise do processo utilizado, pois somente neste momento todos os dados referentes às métricas estarão coletados e disponíveis para o sistema baseado em conhecimento. Figura 10 Planilha de Atividades parcialmente preenchida.

21/06/116. Conclusão Davy Baía LES/PUC-Rio 14 Avaliação de Processos de Software Baseada em Medições os dados referentes ao uso do processo e ao seu próprio desempenho, aumentou o conhecimento da equipe de desenvolvimento a respeito de suas capacidades e limitações fazendo com que o processo de coleta de métricas se torne por si só a primeira forma de melhoria do processo de software da empresa. Figura 11: Resposta final do sistema baseado em conhecimento gerada para a avaliação do processo segundo o primeiro objetivo definido nesta abordagem.

Estado da Arte Bugs/Cvs [Zimmermann et al. 05] 15

Estado da Arte Usando Imports no Eclipse para prever Bugs 71% dos arquivos que importar pacotes Compiler, tinha que ser corrigido mais tarde. import org.eclipse.jdt.internal.compiler.lookup.*; import org.eclipse.jdt.internal.compiler.*; import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.util.*;... import org.eclipse.pde.core.*; import org.eclipse.jface.wizard.*; import org.eclipse.ui.*; 14% de todos os arquivos que importar pacotes ui, tinha que ser corrigido mais tarde. [Schröter et al. 06] 16

Estado da Arte Mineração de texto/lista de discursões Taxa de imigração de Desenvolvedores Quando é que um desenvolvedor deve ser convidado para participar de um projeto? Especialização x Interesse [Bird et al. 07] 17

Estado da Arte DATA MINING FOR SOFTWARE ENGINEERING Tao Xie and Suresh Thummalapenta, North Carolina State University David Lo, Singapore Management University Chao Liu, Microsoft Research Journal: Computer 2009 Descobrir informações através da aplicação de mineração de dados; As informações são extraídas através de regras de classificação, associação e agrupamento (clustering). 18

Associação 999 de 1000 spin_lock vezes é seguido por spin_unlock A única vez que spin_unlock não segue, provavelmente, pode ser um erro Podemos detectar um erro sem saber as regras de correção [Li&Zhou 05, Livshits&Zimmermann 05, Yang et al. 06] 19

Classificação Training Data Classification Algorithms Name Rank Years Senior Mike 1 3 No Mary 1 7 No Bill 2 2 No Jim 3 7 Yes Dave 2 6 Yes Anne 1 3 No Classifier (Model) IF rank > 1 OR years > 3 THEN tenured = yes 20

Aplicação Classifier Testing Data Name Rank Years Senior Tom 1 2 No Merlisa 2 7 Yes George 2 5 Yes Joseph 1 7 No Unseen Data (Jeff, 2, 4) Sênior? 21

Clustering Entendendo o código fonte Usa Latent Semantic Analysis (LSApara encontrar semelhanças entre os sistemas de software identificadores de uso (por exemplo, nomes de variáveis, nomes de funções) como recursos gtk_window código fonte próxima "gtk_window" contém alguma operação GUI na janela Extraindo categorias usando identificadores freqüentes gtk_window, gtk_main, e gpointer à GTK uso LSA encontrar relações entre os identificadores [Kawaguchi et al. 04] 21/06/11 DAVY BAÍA LES/PUC-Rio LDS-UFAL 22

Outras técnicas de mineração Automaton/grammar/regular expression learning Searching/matching Concept analysis Template-based analysis Abstraction-based analysis http://ase.csc.ncsu.edu/dmse/miningalgs.html 23

Discussão Com uma base única podemos analisar todas as possíveis causas de um problema com precisão e auxiliar em estimativas futuras de projetos através de experiências anteriores; Essas técnicas de mineração de dados fornecem um poder de novas pesquisas e manipulação de um volume grande de dados existentes, podendo gerar diagnósticos mais precisos; 21/06/11 DAVY BAÍA LES/PUC-Rio LDS-UFAL 24

Trabalho realizado/andamento Estudar as ferramentas do processo de desenvolvimento Aplicar de técnicas de mineração de dados Descobri informação Gerar relatório RTC FP RQM RRC. 25

Perguntas? 26