Universidade de Pernambuco Escola Politcnica de Pernambuco Departamento
Universidade de Pernambuco Escola Politécnica de Pernambuco Departamento de Sistemas e Computação Programa de Pós-Graduação em Engenharia da Computação Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho Dissertação de Mestrado Rômulo da Silva Lima Prof. Dr. Sérgio Castelo Branco Soares Orientador Recife/PE, 05 de Julho de 2010
Sumário Introdução Fundamentação Teórica Pesquisa Survey Uma Avaliação Empírica do Benchmarking Framework Replicação de uma Avaliação de Desempenho Conclusão Trabalhos Futuros Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 2
Introdução Contextualização e Motivação Estudos Empíricos -> permitem testar teorias a partir de observações, apesar de custosos e demorados; Engenharia de Software Experimental -> aplicar o método científico de experimentação ao software; Empresas, organizações e a academia -> decisões. Avaliar Benchmarking Framework: uma proposta que teve avaliações simples; Atualizar um estudo feito há quase 10 anos. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 3
Introdução Objetivo Propor uma análise sobre estudos empíricos. Objetivos específicos ◦ Estudo detalhado sobre Surveys; ◦ Elaboração de um Survey para avaliação do Benchmarking Framework; ◦ Replicação de uma Avaliação de Desempenho feito há 10 anos; ◦ Lições aprendidas. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 4
Fundamentação Teórica Estudos Empíricos na Engenharia de Software Criatividade humana -> métodos empíricos; Tornar a área pesquisada mais científica e confiável; Estudos Empíricos não visam provar nada! Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 5
Fundamentação Teórica Seleção da Estratégia Empírica Tarefa problemática! Como escolher entre as estratégias existentes? Dependem: ◦ ◦ Contingências locais; Acesso ao tema de pesquisa; Controle das variáveis de interesse; Habilidades do investigador Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 6
Fundamentação Teórica Seleção da Estratégia Empírica Passos para selecionar uma estratégia empírica. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 7
Fundamentação Teórica Seleção da Estratégia Empírica Exemplos de Questionamentos (Meltzoff 1998) Existência Será que X existe? Descrição Como é X? Quais suas propriedades? Como pode ser classificado? Como podemos medir? Qual a sua finalidade? Quais seus componentes? Descritivo-comparativo Como X difere de Y? Freqüência de distribuição Quantas vezes X ocorre? Descrição do processo Como se faz normalmente X? Qual é o processo pela qual X acontece? Quais são as etapas que X está envoldido? Com é que X atinge seu propósito? Relacionamento X e Y estão relacionados? A ocorrência de X se relaciona com a ocorrência de Y? Causalidade X causa Y? Quais são os fatores que causam Y? Qual efeito X tem sobre Y? Causalidade comparativa Será que X causa Y mais do que Z? Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 8
Fundamentação Teórica Seleção da Estratégia Empírica Posição Filosófica - é preciso considerar o que aceitar como respostas válidas. ◦ Positivista - testes de hipóteses ◦ Construtivista - buscar as teorias que emergem e explicar os dados ◦ Teórico Crítico - as teorias são afirmações de conhecimento a serem criticadas ◦ Pragmatista - utilidade prática Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 9
Fundamentação Teórica Seleção da Estratégia Empírica Objetivo do Estudo ◦ Exploratório - Quais são as experiências dos desenvolvedores que usaram a tecnologia X? ◦ Descritivo - Como o uso da tecnologia X realmente funciona? ◦ Causal - Uma ferramenta X de rastreamento de requisitos ajuda os programadores a encontrar as informações mais rápidas? ◦ Explanatório - Por que a ferramenta X deve ser considerada a melhor pra rastrear requisitos? Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 10
Fundamentação Teórica Seleção da Estratégia Empírica Estratégias Empíricas ◦ Pesquisa Survey ◦ Estudo de caso; ◦ Experimento Controlado Conceitos de um experimento [7] 11
Fundamentação Teórica Métodos de Investigação Experimental Analisar as Validades do Estudo: ◦ Conclusão - análise estatística; ◦ Interna - relacionamento tratamento-resultado; ◦ Externa - generalização dos resultados; ◦ Construção - relação entre a teoria e a observação. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 12
Fundamentação Teórica Processo de Experimentação [7] Plano do Estudo Experimental; Estudo Piloto. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 13
Fundamentação Teórica Replicação em Estudos Empíricos Ampliar a base de dados; Validade estatística dos resultados; Disponibilidade de pacotes; Replicações ◦ Internas – melhorar resultados ◦ Externas – há um maior poder de confirmação Será que um método alternativo deve ser usado? ◦ Múltiplos métodos de pesquisa aumenta a força da evidência Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 14
Pesquisa Survey Seleção da Estratégia Empírica Objeto de Estudo: O Benchmarking Framework ◦ Moura (2008) ◦ “Conjuntos de atributos capazes de identificar características específicas de diferentes aplicações (framework), de modo que seja possível avaliá-las e compará-las (benchmarking) sob um determinado contexto (manutenibilidade de software OA). ” Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 15
Pesquisa Survey Seleção da Estratégia Empírica Processo definido pelo Benchmarking Framework [1] Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 16
Pesquisa Survey Seleção da Estratégia Empírica Questionamentos: ◦ O BF [1] seria útil para guiar os pesquisadores? ◦ É realmente um problema conduzir estudos sob o contexto de manutenibilidade de softwares orientados a aspectos? ◦ Como podemos medir a importância dos atributos do BF [1]? ◦ Como o BF [1] difere dos métodos convencionais para elaborar e executar estudos sobre manutenibilidade de softwares orientados a aspectos? ◦ Como é que os pesquisadores elaborarão seus estudos empíricos no contexto de manutenibilidade de softwares orientados a aspectos sem um processo que possam guiá-los? Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 17
Pesquisa Survey Seleção da Estratégia Empírica Posição Filosófica: Construtivista Objetivo do Estudo: Explanatório - Por que o BF deve ser considerado um processo para guiar pesquisadores nos estudos empíricos? Estratégia Selecionada: Survey Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 18
Pesquisa Survey Conceitos e Classificações Popular; Coleta informações para: descrever, comparar ou explicar conhecimento; Apoio aos participantes: ◦ Supervisionadas; ◦ Semi-supervisionadas; ◦ Não supervisionada. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 19
Pesquisa Survey Conceitos e Classificações Tamanho da amostra: ◦ Probabilísticas; ◦ Não probabilísticas. O Instrumento: Questionário. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 20
Pesquisa Survey Aplicados na Internet Redução do tempo; Acesso a pessoas nas mais diversas áreas geográficas; Menor custo; Questionários mais atrativos; Iteratividade; Usar com cautela: ◦ Não supervionados; ◦ Obter uma alta taxa de respostas. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 21
Pesquisa Survey Aplicados na Internet Como obter taxas de respostas altas? ◦ Cook e outros (2000); ◦ Kittleson (1997); ◦ Burkey (2003). Projetar questionário com atenção; Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 22
Pesquisa Survey Planejamento de um Survey Rever os objetivos, população alvo; Taxas de respostas ◦ Benefícios; ◦ Lembretes; ◦ Questionário Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 23
Pesquisa Survey Planejamento de um Survey Seleção das questões ◦ Compreender os entrevistados; ◦ Perguntar um número apropriado de questões; ◦ Padronizar os formatos das respostas. Formato do questionário ◦ Instruções Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 24
Pesquisa Survey Processos de Aplicação Processo: impõem consistência e estrutura a um conjunto de atividades. Pflegeer e Kitchenham (2001); Mendonça (2005) ◦ Definir objetivos GQM Goal/Question/Metric ◦ Planejar Contexto Hipóteses Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 25
Pesquisa Survey Processos de Aplicação Mendonça (2005) ◦ ◦ ◦ Variáveis Participantes Infra-estrutura Projeto do Instrumento Validação do Instrumento Execução Análise Empacotamento Checklist - Sistematização Grau de relevância experimental Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 26
Uma Avaliação Empírica do BF Definição do Estudo Experimental Objetivo ◦ Analisar atributos de classificação e cenários de mudança de aplicações com o propósito de caracterizar uma avaliação dos atributos e cenários de mudança com respeito a sua importância do ponto de vista de especialistas do domínio de desenvolvimento de software orientado a aspectos no contexto de um modelo que possa auxiliar a tomada de decisão Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 27
Uma Avaliação Empírica do BF Planejamento Contexto ◦ Off-line Seleção dos participantes (Comitê de programa de conferências - DSOA) ◦ 141, contando com 127 (Censo) Descrição da instrumentação ◦ Ferramenta Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 28
Uma Avaliação Empírica do BF Planejamento Definição da avaliação ◦ Sim / Não ◦ Estatística Kappa (K) – baseada no número de respostas concordantes Values of Kappa <0 Interpretation No agreement 0 - 0. 19 Poor agreement 0. 20 - 0. 39 Fair agreement 0. 40 - 0. 59 Moderate agreement 0. 60 - 0. 79 Substantial agreement 0. 80 - 1. 00 Almost perfect agreement The measurement of observer agreement for categorical data [47] Pr(a) -> concordância esperada pelo acaso Pr(e) -> concordância observada 1 – Pr(e) -> a maior diferença possível entre concordância observada e esperada Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 29
Uma Avaliação Empírica do BF Ameaças à Validade Face ◦ Estrutura e o design do questionário Conclusão ◦ Taxa de concordância Construção ◦ Caracterizado pelas conformidades dos atributos do BF Externa ◦ Os objetos utilizados no estudo podem ser considerados atuais e representativos para o problema sob análise Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 30
Uma Avaliação Empírica do BF Operação de Estudo Experimental Piloto ◦ 2 com 8 participantes 91 questionários coletados ◦ 72 respostas para atributos gerais ◦ 68 respostas para atributos OA ◦ 65 respostas para cenários de mudança Avaliação do estudo experimental Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 31
Uma Avaliação Empírica do BF Operação de Estudo Experimental Position Professor/Lecture Researcher Consultant Entrepreneur Other: Software Engineering Manager Summary of responses Number % 58 67. 44 24 27. 91 2 2. 33 1 1. 16 1 Type of empirical study activity Planning Design Implementation Analysis None 1. 16 Summary of responses Number % 24 14. 63 42 25. 61 47 28. 66 37 22. 56 14 8. 54 Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 32
Uma Avaliação Empírica do BF Operação de Estudo Experimental General Attributes System name System domain Versions available Source code availability Used programming language Operational system and minimum computational requirements to execute Lifecycle documentation Software development techniques and approaches used Summary of responses YES % NO % 25 34. 72 47 65. 28 57 79. 17 15 20. 83 67 93. 06 5 6. 94 34 47. 22 38 52. 78 54 75. 00 18 25. 00 63 87. 50 9 12. 50 Kappa de 0, 68: Substantial agreement Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 33
Uma Avaliação Empírica do BF Operação de Estudo Experimental Aspect-Oriented Attributes The list of functional crosscutting concerns implemented as aspects The list of non-functional crosscutting concerns implemented as aspects The list of homogeneous crosscutting concerns implemented as aspects The list of heterogeneous crosscutting concerns implemented as aspects The list of Intra-Component crosscutting concerns The list of Inter-Component crosscutting concerns. The list of concerns with Invocation-Based Composition The list of concerns with Component-Level Interlacing The list of concerns with Operation-Level Interlacing The list of concerns with Overlapping The Aspect Scope AO Language Constructs Summary of responses YES % NO % 65 95. 59 3 4. 41 59 86. 76 9 13. 24 47 69. 12 21 30. 88 57 83. 82 11 16. 18 42 61. 76 26 38. 24 50 73. 53 18 26. 47 49 72. 06 19 27. 94 54 56 52 79. 41 82. 35 76. 47 14 12 16 20. 59 17. 65 23. 53 Kappa de 0, 69: Substantial agreement 34
Uma Avaliação Empírica do BF Operação de Estudo Experimental Maintenance Scenarios Scenario description Each change imposed by the maintenance scenario should be classified as one amongst three types: corrective, adaptive, or perfective Each change imposed by the maintenance scenario should be classified as behaviormodifying or behavior-preserving Change level The Nature of the Change Summary of responses YES % NO % 56 86. 15 9 13. 85 47 72. 31 18 27. 69 45 69. 23 20 30. 77 55 55 84. 62 10 10 15. 38 Kappa de 0, 67: Substantial agreement Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 35
Uma Avaliação Empírica do BF Operação de Estudo Experimental Do the attributes guide empirical studies? YES NO Summary of responses Number % 54 85. 71 9 14. 29 Seção do questionário com questões abertas. Concordância considerável entre os especialistas. Apenas 2 dos 25 atributos e cenários de mudanças não tiveram a maioria de resposta do tipo SIM. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 36
Uma Avaliação Empírica do BF Lições Aprendidas Analisar com cautela a ferramenta para apoiar no estudo; ◦ Forma de contabilização do e. Survey. Pro. Planejar a sazonalidade; Informações de outras áreas; Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 37
Replicação de uma Avaliação de Desempenho Análise de Desempenho em Software Desempenho baixo -> mais tempo de computação Solução: computadores mais potentes, porém gera custos Desempenho em sistemas paralelos e ou distribuídos Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 38
Avaliação de Desempenho Um Método para Controle de Concorrência Soares (2001); Método de tratamento de concorrência em sistemas orientados a objetos (OO); Suporte no desenvolvimento de sistemas OO, evitando que sejam realizados tratamentos baseados na intuição. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 39
Avaliação de Desempenho Um Método para Controle de Concorrência Objetivos da replicação ◦ Comparar o impacto, visto a alteração do ambiente; ◦ Avaliar as facilidades e dificuldades. Análise do Método (Testes) ◦ ◦ ◦ ◦ Nenhum tratamento; Fachada sincronizada; Fachada com transações; Sincronização nas coleções de negocio; Gerenciador de concorrência; Timestamp; Tratamento sugerido. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 40
Avaliação de Desempenho Análise dos resultados obtidos na replicação Especificações gerais dos testes Experimento original SGBD relacional Oracle 8. 04 Número inicial de registro na tabela 700 registros Replicação do experimento Oracle 10 g. R 2 700 registros Número máximo de conexões com o 12 conexões SGBD Versão do JDK-1. 2 -V JDK-1. 6. 0_10 Número de threads simultâneos 6, 60 e 600 threads Número de experimentos 10 experimentos Especificação do hardware de execução dos testes Modelo AMD K 6 -2 500 MHz Intel Core 2 Duo 2, 00 GHz Memória RAM 128 MB 4, 00 GB Sistema Operacional Windows NT Windows Vista Especificação do hardware de execução do SGBD Modelo Power RS 6000 39 H (IBM) Itautec Pentium III 1 GHz Memória RAM 512 MB 1 GB Sistema Operacional Unix AIX 4. 2 Linux Fedora 4 Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 41
Avaliação de Desempenho Análise dos resultados obtidos na replicação Experimento original Número de threads Fachada sincronizada Fachada com transações Aplicando o método Métodos normais 6 60 600 47, 24 113, 99 58, 20 31, 35 61, 37 57, 55 NSD 4, 23 NSD Replicação do experimento Métodos normais 6 60 600 117, 17 51, 75 33, 29 141, 51 27, 37 22, 33 NSD NSD Métodos pesados 6 60 600 35, 99 41, 54 30, 84 26, 48 17, 87 28, 83 NSD 0, 79 1, 19 Métodos pesados 6 60 600 29, 60 210, 08 113, 90 -28, 51 64, 61 17, 69 -42, 41 14, 41 NSD Os números são percentuais que significam o Overhead! Observação: Em termos absolutos: 60 threads 0, 79% -> 7621 (original), enquanto que 14, 41% -> 3777 (replicação) Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 42
Avaliação de Desempenho Análise dos resultados obtidos na replicação Experimento original Métodos normais Métodos pesados Número de threads 6 60 600 Implementando timestamp NSD 4, 03 NSD 11, 37 10, 15 Replicação do experimento Métodos normais Métodos pesados Número de threads 6 60 600 Implementando timestamp NSD NSD -33, 84 12, 30 -8, 58 Os números são percentuais que significam o overhead! Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 43
Avaliação de Desempenho Análise dos resultados obtidos na replicação Experimento original Métodos normais Número de threads 6 60 600 Sem concorrência de objetos 4, 55 63, 53 16, 08 Com concorrência de objetos NSD 23, 13 10, 08 Replicação do experimento Métodos normais Número de threads 6 60 600 Sem concorrência de objetos 34, 51 19, 78 13, 88 Com concorrência de objetos NSD 23, 64 29, 43 Métodos pesados 6 60 600 7, 35 15, 74 5, 95 NSD 12, 25 3, 42 Métodos pesados 6 60 600 74, 95 68, 40 44, 11 32, 65 105, 60 108, 51 Os números são percentuais que significam o overhead! Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 44
Avaliação de Desempenho Replicação do Estudo Empírico Lições Aprendidas: ◦ ◦ ◦ Atuação do pesquisador; Tempo; Configuração; Falta de documentação; Ambiente físico; Hardware do SGBD. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 45
Conclusão Análise sobre estudos empíricos Importância dos passos para a escolha de qual estratégia empírica utilizar. Destaque para os Surveys Avaliação do Benchmarking Framework, Moura (2008) A necessidade de seguir os passos necessários para se obter um estudo experimental com qualidade Os resultados mostraram uma concordância substancial para todos os grupos de atributos e cenários de mudança do BF A análise dos dados dão suporte a decisão dos pesquisadores Apenas 2 (atributos gerais) dos 25 atributos e cenários de mudanças não tiveram a maioria de resposta positivas. A Replicação do estudo, confirmou o tratamento sugerido. Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 46
Trabalhos Futuros Extensão do BF Atributos sugeridos pelos participantes do Survey Elaborar um Plano experimental do estudo de Soares (2001) Alteração de outras variáveis Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho 47
Universidade de Pernambuco Escola Politécnica de Pernambuco Departamento de Sistemas e Computação Programa de Pós-Graduação em Engenharia da Computação Estudos Empíricos em Engenharia de Software: Avaliando o Benchmarking Framework Através de um Survey e Replicando uma Avaliação de Desempenho Dissertação de Mestrado Rômulo da Silva Lima
- Slides: 48