Projeto de Experimentos em Engenharia de Software

81
Projeto de Experimentos em Engenharia de Software Projeto de Experimentos em Engenharia de Software Eduardo Aranha, UFRN ([email protected]) Cristiano Ferraz, UFPE  ([email protected]Paulo Borba, UFPE        ([email protected]) 1º Encontro de Engenharia de Software Experimental 2011 Natal, 10 e 11 de Outubro de 2011 

Transcript of Projeto de Experimentos em Engenharia de Software

Page 1: Projeto de Experimentos em Engenharia de Software

Projeto de Experimentos em Engenharia de Software

Projeto de Experimentos em Engenharia de Software

Eduardo Aranha, UFRN ([email protected])Cristiano Ferraz, UFPE  ([email protected]) Paulo Borba, UFPE        ([email protected])

1º Encontro de Engenharia de Software Experimental 2011

Natal, 10 e 11 de Outubro de 2011 

Page 2: Projeto de Experimentos em Engenharia de Software

2

ObjetivosObjetivos

• Apresentar e motivar o uso de experimentos controlados

• Introduzir técnicas “básicas” de projeto estatístico de experimentos– Controle– Precisão– Eficiência

Page 3: Projeto de Experimentos em Engenharia de Software

3

Agenda

Problema referência Experimentos controlados Projeto estatístico de experimentos

Plano Completamente Aleatorizado Plano Aleatorizado em Blocos Completos Plano de Quadrados Latinos

Conclusões

Page 4: Projeto de Experimentos em Engenharia de Software

4

Problema ReferênciaProblema Referência

Como avaliar diferentes tecnologias de Model Based Testing (MBT)?

A B C

Page 5: Projeto de Experimentos em Engenharia de Software

5

Model Based Testing ­ MBT

UML CNL LTS

Especificação doSistema

Especificação usandonotação específica:

Especificação doscasos de teste:

A B C

Execução manual ou automação

Avaliação:

• Eficiência• Efetividade• Facilidade de 

manutenção• ...

Page 6: Projeto de Experimentos em Engenharia de Software

6

Nossos Assistentes

Estatístico* Sem Conhecimento de 

Tecnologias de SW Conhecimento das técnicas 

de DOE

Engenheiro de SW Responsável por planejar 

avaliações sobre MBT Sem conhecimento de 

técnicas de DOE

DOE – Design of Experiments

* Neste tutorial o estatístico tem como objetivo interagir gradativamente o engenheiro de SW, guiando o engenheiro na busca da solução mais apropriada.

Page 7: Projeto de Experimentos em Engenharia de Software

7

Contexto dos AssistentesContexto dos Assistentes

• Escolha da melhor tecnologia: A, B e C

• Indústria de software– Profissionais variados– Projetos diferentes– Recursos limitados– Requer resultados cientificamente embasados

Page 8: Projeto de Experimentos em Engenharia de Software

8

Como Avaliar as Ferramentas de MBT?

Como Avaliar as Ferramentas de MBT?

• Estudos serão propostos pelo engenheiro de SW e avaliados pelo estatístico

Page 9: Projeto de Experimentos em Engenharia de Software

9

Proposta A1 do Eng. de SW(minimização de custos)

Proposta A1 do Eng. de SW(minimização de custos)

• Usar MBT em três projetos em andamento– Escopo: projeto dos testes

Requisitos:

A B C

Desenvolvedor:

Abordagem:

Page 10: Projeto de Experimentos em Engenharia de Software

10

Possíveis Resultados e Conclusões da Proposta A1

Possíveis Resultados e Conclusões da Proposta A1

Abordagens: A, B, C

• Mas a abordagem MBT utilizada foi realmente a causa desses resultados?• E se eu rodar novamente o estudo em outros projetos, os resultados serão equivalentes?

h10 15 20 25 30 40

h10 15 20 25 30 40

h10 15 20 25 30 40

Cenário 1:

Cenário 2:

Cenário 3:

Page 11: Projeto de Experimentos em Engenharia de Software

11

Estudos de CasoEstudos de Caso

• Projetos reais ou ambiente próximo do real

• Existe planejamento, mas pouco controle sobre execução

• Cada projeto é singular

• Resultados são válidos, mas dificilmente podem ser generalizados ou reproduzidos

Page 12: Projeto de Experimentos em Engenharia de Software

12

Como Obter Resultados Mais Relevantes?

Como Obter Resultados Mais Relevantes?

• Controlar os elementos existentes no ambiente de execução do estudo– Eliminar, reduzir ou diluir o efeito desses 

elementos

Ambiente de desenvolvimento

Experiência dos participantes

Complexidade do projeto

Page 13: Projeto de Experimentos em Engenharia de Software

13

Proposta A2 do Eng. de SW(controle do ambiente)

Proposta A2 do Eng. de SW(controle do ambiente)

• Controle– Um único projeto– Um único 

desenvolvedor

• Uso de todas as abordagens

Requisitos:

Desenvolvedor:

Abordagens:

(1º)         (2º)          (3º)

A           B           C

Ordem de Execução:

Page 14: Projeto de Experimentos em Engenharia de Software

14

Considerações Sobre Proposta A2

Considerações Sobre Proposta A2

• Fixar projeto e desenvolvedor elimina alguns efeitos indesejáveis

• Existe algum efeito de aprendizado por parte do desenvolvedor?

• Treinamentos podem amenizar esse tipo de efeito, mas...

Page 15: Projeto de Experimentos em Engenharia de Software

15

Proposta A3 do Eng. de SW(evitando efeito de aprendizagem)

Proposta A3 do Eng. de SW(evitando efeito de aprendizagem)

• Mesmo perfil de desenvolvedor

• Interesse pessoal determina abordagem

• Treinamento na abordagem escolhida

Requisitos:

Desenvolvedor:

Abordagens: A            B             C

Page 16: Projeto de Experimentos em Engenharia de Software

16

Considerações Sobre Proposta A3

Considerações Sobre Proposta A3

• Efeito dos requisitos continua eliminado

• Efeito do desenvolvedor voltou a existir– Porém, foi reduzido ao se fixar perfil do 

participante

• Escolha de quem usa a técnica pode estar tendenciosa?

Page 17: Projeto de Experimentos em Engenharia de Software

17

Proposta A4 do Eng. de SW(evitando viés)

Proposta A4 do Eng. de SW(evitando viés)

• Mesmo perfil de desenvolvedor

• Sorteio determina abordagem

• Treinamento na abordagem sorteada

Requisitos:

Desenvolvedor:

Abordagens: A            B             C

Page 18: Projeto de Experimentos em Engenharia de Software

18

Considerações Sobre Proposta A4

Considerações Sobre Proposta A4

• Baixa probabilidade de ocorrer resultado tendencioso para o sorteio

• É suficiente ter apenas uma observação para cada abordagem?

Page 19: Projeto de Experimentos em Engenharia de Software

19

Proposta A5 do Eng. de SW(aumentando observações)

Proposta A5 do Eng. de SW(aumentando observações)

• Mais desenvolvedores com mesmo perfil• Sorteio da abordagem + treinamento

Requisitos:

Desenvolvedor:

Abordagem: C             A              B              A            C            B

Page 20: Projeto de Experimentos em Engenharia de Software

20

Possíveis Resultados e Conclusões da Proposta A5

Possíveis Resultados e Conclusões da Proposta A5

Abordagens: A, B, C

h10 15 20 25 30 40

h10 15 20 25 30 40

Cenário 1:

Cenário 2:

h10 15 20 25 30 40

h10 15 20 25 30 40

Page 21: Projeto de Experimentos em Engenharia de Software

21

Possíveis Resultados e Conclusões da Proposta A5

Possíveis Resultados e Conclusões da Proposta A5

Abordagens: A, B, C

h10 15 20 25 30 40

Cenário 3:

Quantidade de observações está suficiente?

h10 15 20 25 30 40

Page 22: Projeto de Experimentos em Engenharia de Software

22

Aumentando a Quantidade de Réplicas

Aumentando a Quantidade de Réplicas

• Adicionar mais desenvolvedores

• Subdividir o problema

Requisitos daaplicaçãocompleta

homem­hora

Page 23: Projeto de Experimentos em Engenharia de Software

23

Aumentando a Quantidade de Réplicas

Aumentando a Quantidade de Réplicas

• Adicionar mais desenvolvedores

• Subdividir o problema

Requisitos dos módulos da aplicação

homem­hora

Page 24: Projeto de Experimentos em Engenharia de Software

24

Conclusões Mudaram com Mais Réplicas?

Conclusões Mudaram com Mais Réplicas?

Abordagens: A, B, C

h10 15 20 25 30 40

h10 15 20 25 30 40

Cenário 1:

Cenário 2:h10 15 20 25 30 40

h10 15 20 25 30 40

Page 25: Projeto de Experimentos em Engenharia de Software

25

Conclusões Mudaram com Mais Réplicas?

Conclusões Mudaram com Mais Réplicas?

Abordagens: A, B, C

h10 15 20 25 30 40

Cenário 3:

h10 15 20 25 30 40

Page 26: Projeto de Experimentos em Engenharia de Software

26

Princípios aprendidos pelo engenheiro de SW formam a base dos

EXPERIMENTOS CONTROLADOS

Page 27: Projeto de Experimentos em Engenharia de Software

27

Experimento ControladoExperimento Controlado

• Procedimentos que mudam de forma proposital as variáveis de um processo/sistema

• Observam mudanças na saída e identificar as causas

Processo/SistemaEntradas Saída

Variáveis não controladas(e possivelmente desconhecidas...)

Variáveis controladas

Coletam evidências contra hipótese formulada.

Page 28: Projeto de Experimentos em Engenharia de Software

ConsideraçõesConsiderações

• Ambiente de laboratório x Ambiente industrial

• Aplicabilidade dos resultados dos estudos de caso x experimentos controlados

• Quantidade de recursos necessários

• Análise quantitativa x qualitativa

28

Page 29: Projeto de Experimentos em Engenharia de Software

29

DefiniçõesDefinições

• Fatores

• Níveis de fatores

• Tratamento

• Unidade experimental

Page 30: Projeto de Experimentos em Engenharia de Software

30

Princípios Fundamentais dos Experimentos Controlados

Princípios Fundamentais dos Experimentos Controlados

• Controle local 

• Replicação

• Aleatorização 

Page 31: Projeto de Experimentos em Engenharia de Software

31

Controle LocalControle Local

• Eliminar, reduzir, diluir ou isolar o efeito de fatores de ruído

• Exemplo de controle: fixar certos níveis para variáveis não investigadas– Experiência dos participantes, complexidade do 

projeto, ...

Page 32: Projeto de Experimentos em Engenharia de Software

32

Replicação (interna)Replicação (interna)

• Aplicação de um tratamento em mais de uma unidade experimental

• Dilui efeito da variabilidade existente entre pessoas, projetos e artefatos “similares”

• Diminui chances de se obter resultados ao acaso

• Diferente de repetição!

...

Page 33: Projeto de Experimentos em Engenharia de Software

33

AleatorizaçãoAleatorização

• Com réplicas, dilui efeito de diferenças de motivação, experiência,...

• Elimina possível viés do pesquisador• Reduz efeito de aprendizado

C             A             B

  (3º)       (1º)       (2º)

  A         B         C

  (3º)       (1º)       (2º)

  A         B         C. . . . . . . . .

Page 34: Projeto de Experimentos em Engenharia de Software

34

Análise de Causa­EfeitoAnálise de Causa­Efeito

• Possível apenas quando utilizado os princípios de réplicas com aleatorização

• Estudos observacionais ou quase­experimentos– Ausência de aleatorização e/ou controle local

Altura Experiência

Altura Experiência

Idade

Page 35: Projeto de Experimentos em Engenharia de Software

35

Nível de ImportânciaNível de Importância

  Aleatorização 

    Replicação

          Controle local

Page 36: Projeto de Experimentos em Engenharia de Software

36

Projeto Estatístico de ExperimentosProjeto Estatístico de Experimentos

• Configuração dos participantes, ambiente e materiais envolvidos

• Visa otimizar Uso de recursos x Conclusões• Define forma para análise dos dados• Respaldo científico dos resultados

Page 37: Projeto de Experimentos em Engenharia de Software

37

Planos ExperimentaisPlanos Experimentais

• Padrões de como projetar e analisar experimentos

• Motivação histórica: agricultura

                   Legado de R. A. Fisher The Design of Experiments (1935)

Page 38: Projeto de Experimentos em Engenharia de Software

38

Plano Experimental

COMPLETAMENTE ALEATORIZADO

CRD – Completely Randomized Design

Page 39: Projeto de Experimentos em Engenharia de Software

39

Plano Experimental Completamente Aleatorizado (CRD)

Plano Experimental Completamente Aleatorizado (CRD)

• Tratamentos atribuídos de forma aleatória as unidades experimentais

Imagem obtida em http://www.tfrec.wsu.edu/ANOVA/CRD.html

Page 40: Projeto de Experimentos em Engenharia de Software

40

Proposta A4 (CRD) do Engenheiro de SW

Proposta A4 (CRD) do Engenheiro de SW

Requisitos:

Desenvolvedor:

Abordagem: C             A              B             C            B            A 

Page 41: Projeto de Experimentos em Engenharia de Software

41

Mas Como Analisar os Dados?Mas Como Analisar os Dados?

Abordagens: A, B, C

h10 15 20 25 30 40Cenário 2:

Como avaliar situações onde análise visual não mostra claramente se houve ou não melhora significativa?

Será que com mais observações as conclusões mudariam?

h10 15 20 25 30 40Cenário 1:

Page 42: Projeto de Experimentos em Engenharia de Software

42

Esquema Básico das Fontes de Variação de Um Experimento

Esquema Básico das Fontes de Variação de Um Experimento

• Observação =         Efeito do plano experimental         + Efeito do tratamento         + Efeito do erro experimental

• Erro experimental

Page 43: Projeto de Experimentos em Engenharia de Software

43

Modelo LinearModelo Linear

ijiijy ετµ ++=

tratamento réplica

µ

µ+Ʈa

εa1

ya1

εa2ya2

Page 44: Projeto de Experimentos em Engenharia de Software

44

• Afirmação sobre um parâmetro de uma modelo ou distribuição estatística– Média, mediana, variância, proporção, etc.

H0:  µa= µb= µc 

H1: µi ≠ µj 

onde i,j = a, b, c

Hipótese EstatísticaHipótese Estatística

µ

N(µ, σ2)

Page 45: Projeto de Experimentos em Engenharia de Software

45

Idéia da Análise(cenário 1)

Idéia da Análise(cenário 1)

h

Variação “dentro" dos tratamentos (efeito dos resíduos)

hVariação “entre” os tratamentos

(efeito dos tratamentos)

Page 46: Projeto de Experimentos em Engenharia de Software

46

Idéia da Análise (cenário 2)

Idéia da Análise (cenário 2)

h

h

Variação “dentro" dos tratamentos (efeito dos resíduos)

Variação “entre” os tratamentos(efeito dos tratamentos)

Page 47: Projeto de Experimentos em Engenharia de Software

47

ANOVA – Analysis of VarianceANOVA – Analysis of Variance

N – 1Total

N – aErro Experimental

a – 1Tratamento

FoQuadrado Médio

Soma de Quadrados

Graus de Liberdade (G.L.)

(

Fonte de Variação

( )∑=

−a

ii yyn

1

2...

( )2

1 1.∑∑

= =

−a

i

n

jiij yy

( )2

1 1..∑∑

= =

−a

i

n

jij yy

TratamentoQM

ErroQM

Erro

Tratamentoo QM

QMF =

( )aNaF −− ,1

valor­p

Page 48: Projeto de Experimentos em Engenharia de Software

48

Exemplo de ANOVAExemplo de ANOVA

Valor–P

407,1423Total

8,06169,2621Erro Experimental

118,94237,882Tratamento

FoQuadrado Médio

Soma de Quadrados

Graus de Liberdade (G.L.)

(

Fonte de Variação

76,14 01,0<

Conclusão: Rejeitamos H0   para α = 5%F0 = 14,76

0

0,2

0,4

0,6

0,8

0 4 8 12 16 20

Page 49: Projeto de Experimentos em Engenharia de Software

49

Suposições da ANOVASuposições da ANOVA

• Inferência baseada no modelo linear– Independência dos dados

– Variância constante

– Normalidade

• Inferência baseada na teoria de aleatorização– Variância constante

erro

y y

Page 50: Projeto de Experimentos em Engenharia de Software

50

Mas Como Saber Qual o Melhor Tratamento?

Mas Como Saber Qual o Melhor Tratamento?

• Olhar as médias das amostras e intervalos de confiança

• T­test – H01 : µa  ≤ µb          H02 : µb  ≤ µc          H03 : µa  ≤ µc 

• Correção de Bonferroni (+ de 2 tratamentos) 

h

 A                 C       B

Page 51: Projeto de Experimentos em Engenharia de Software

51

A4: Até que Ponto Podemos Generalizar os Resultados?A4: Até que Ponto Podemos Generalizar os Resultados?

• Resultado do experimento limitado a um único perfil de desenvolvedores– Exemplo: juniores

• Resultado é válido?

Page 52: Projeto de Experimentos em Engenharia de Software

52

Proposta B1: CRD com Desenvolvedor Senior e Junior

Proposta B1: CRD com Desenvolvedor Senior e Junior

• Desenvolvedores Junior

• Desenvolvedores Sênior

Page 53: Projeto de Experimentos em Engenharia de Software

53

Considerações Sobre Níveis de Experiência no CRD

Considerações Sobre Níveis de Experiência no CRD

• Efeito da experiência    inflaciona erro   experimental

• Experimento usando CRD é ineficiente nessa situação– Mas resultado é válido!

µ

µ+Ʈa

εa1

ya1

εa2

ya2

Page 54: Projeto de Experimentos em Engenharia de Software

54

Proposta B2: Dois Experimentos Usando o CRD

Proposta B2: Dois Experimentos Usando o CRD

• Experimento 1: Grupo de desenvolvedores Junior

• Experimento 2: Grupo de desenvolvedores Sênior

Abordagens: A, B, C

Abordagens: A, B, C

Page 55: Projeto de Experimentos em Engenharia de Software

55

Considerações Sobre B2Considerações Sobre B2

• Isolamento do efeito nível da experiência– Erro experimental não será inflacionado

• Menor precisão da análise (graus de liberdade)

• E se resultados forem conflitantes?

• Situação pode ser tratada como um único experimento

Page 56: Projeto de Experimentos em Engenharia de Software

56

Plano Experimental

ALEATORIZADO EM BLOCOS COMPLETOS

RCBD – Randomized Complete Block Design

Page 57: Projeto de Experimentos em Engenharia de Software

57

Plano Aleatorizado em Blocos Completos

Plano Aleatorizado em Blocos Completos

• Aplicado quando:– Existe um fator não investigado com influência 

significante na variável de saída– Não é possível ou interessante fixar um único 

nível para esse fator

• Bloco– Grupo homogêneo de unidades experimentais– Aleatorização feita dentro dos blocos

Page 58: Projeto de Experimentos em Engenharia de Software

58

Exemplo de Blocos em Engenharia de SoftwareExemplo de Blocos em Engenharia de Software

• Níveis de experiência em desenvolvimento

...

...

Blocos(6 desenvolvedores)

Alto

Baixo

... Médio

18 participantes

Page 59: Projeto de Experimentos em Engenharia de Software

59

Esquema Básico das Fontes de Variação de Um Experimento

Esquema Básico das Fontes de Variação de Um Experimento

• Observação =         Efeito do plano experimental         + Efeito do bloco        + Efeito do tratamento         + Efeito do erro experimental

Page 60: Projeto de Experimentos em Engenharia de Software

60

Modelo Linear*Modelo Linear*

bloco tratamento

µ

µ+βs+Ʈa

εsa1

ysa1

εsa2ysa2

ijkjijky ετµ ++=réplica

iβ +

µ+βs

*Suposição de aditividade

Page 61: Projeto de Experimentos em Engenharia de Software

61

ANOVA para RCBDANOVA para RCBD

N – 1Total

(a – 1)(b – 1)Erro 

Experimental

a – 1Tratamentos

FoQuadrado Médio

Soma de Quadrados

Graus de Liberdade (G.L.)

(

Fonte de Variação

TratamentoQM

ErroQM

Erro

Tratamentoo QM

QMF =

Blocos b – 1 QMBlocosSSBlocos

SSTratamento

SSErro

SST

Page 62: Projeto de Experimentos em Engenharia de Software

62

Até que Ponto Poderemos Generalizar os Resultados?Até que Ponto Poderemos 

Generalizar os Resultados?

• Resultado do experimento limitado a um único tipo de projeto

• Tamanho e complexidade de projetos na prática:

...

Page 63: Projeto de Experimentos em Engenharia de Software

63

Plano Experimental

QUADRADOS LATINOS

LS – Latin Square

Page 64: Projeto de Experimentos em Engenharia de Software

64

Quadrado LatinoQuadrado Latino

• Aplicado quando:– Existem dois fatores de ruído com influência 

significante na variável de saída

• Bloco– Combinação de níveis dos dois fatores de ruído 

(linha, coluna)

Page 65: Projeto de Experimentos em Engenharia de Software

65

Cruzamentos Entre Experiência e Tamanho

Cruzamentos Entre Experiência e Tamanho

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

Nível deExperiência

Tamanho do Projeto

Réplicas mudando­se desenvolvedores

ou projetos

Page 66: Projeto de Experimentos em Engenharia de Software

66

AleatorizaçãoAleatorização

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

Page 67: Projeto de Experimentos em Engenharia de Software

67

Formas de Obter Mais Observações(linhas)

Formas de Obter Mais Observações(linhas)

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

Réplica 1 do Quadrado Réplica 2 do Quadrado ...

...

Page 68: Projeto de Experimentos em Engenharia de Software

68

Formas de Obter Mais Observações(colunas)

Formas de Obter Mais Observações(colunas)

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

...

...

Réplica 1 do Quadrado Réplica 2 do Quadrado

Page 69: Projeto de Experimentos em Engenharia de Software

69

Formas de Obter Mais Observações(linhas e colunas)

Formas de Obter Mais Observações(linhas e colunas)

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

B(3)     A(2)       C(1)

C(1)     B(3)       A(2)

A(2)     C(1)       B(3)

...

...

Réplica 1 do Quadrado Réplica 2 do Quadrado

Page 70: Projeto de Experimentos em Engenharia de Software

70

Esquema Básico das Fontes de Variação de Um Experimento

Esquema Básico das Fontes de Variação de Um Experimento

• Observação =         Efeito do plano experimental         + Efeito do tratamento         + Efeito do erro experimental

Page 71: Projeto de Experimentos em Engenharia de Software

71

Modelo LinearModelo Linear

linha tratamento

µ

µ+α1+β1+Ʈa

ε11a1

y11a1

ε11a2y11a2

ijklkijkly ετµ ++=réplica

jβ +

µ+α1

coluna

iα +

µ+α1+β1

Supõe aditividade

Page 72: Projeto de Experimentos em Engenharia de Software

72

ANOVA para Quadrado LatinoANOVA para Quadrado Latino

N – 1Total

(a­1)(b­2)Erro 

Experimental

a – 1Tratamentos

FoQuadrado Médio

Soma de Quadrados

Graus de Liberdade (G.L.)

(

Fonte de Variação

TratamentoQM

ErroQM

Erro

Tratamentoo QM

QMF =

Linha b – 1 QMLinhaSSLinha

SSTratamento

SSErro

SST

Coluna c – 1 QMColunaSSColuna

Page 73: Projeto de Experimentos em Engenharia de Software

73

Limitações do Quadrado LatinoLimitações do Quadrado Latino

• Requer mesma quantidade de tratamentos, linhas e colunas

• Alguns quadrados precisam de mais de 2 réplicas– Ex: quadrado de tamanho 2

Page 74: Projeto de Experimentos em Engenharia de Software

74

Considerações FinaisConsiderações Finais

• Experimentos controlados– Controle local– Replicação– Aleatorização

• Importância experimentação em ES– SBES, ESELAW, ESEM, ICSE,...

Page 75: Projeto de Experimentos em Engenharia de Software

75

Considerações FinaisConsiderações Finais

• Projeto estatístico de experimentos– Visa melhor controle, precisão e eficiência

• Planos experimentais– Completamente aleatorizado– Aleatorizado em blocos completos– Quadrado latino

Page 76: Projeto de Experimentos em Engenharia de Software

76

ReferênciasReferências

• G. Box, J. Hunter e W. Hunter. Statistics for Experimenters. Wiley­Interscience, 2nd edition, 2005. 

• D. Montgomery. Design and Analysis of Experiments. Wiley, 7th edition, 2008.• A. Jedlitschka, M. Ciolkowski and D. Pfahl. Reporting Experiments in Software 

Engineering. Guide to Advanced Empirical Software Engineering, Springer London, 201­228, 2007.

• K. Hinkelmann and O. Kempthorne. Design and Analysis of Experiments, Introduction to Experimental Design. Wiley­Interscience, 2nd edition, 2007.

• R. Kuehl. Design of Experiments: Statistical Principles of Research Design and Analysis. Duxbury Press, 2nd edition, 1999.

• K. Maxwell. Applied Statistics for Software Managers. Prentice Hall, 2002.• G. Milliken and D. Johnson. Analysis of Messy Data: Designed Experiments, 

volume I. Chapman Hall/CRC, 1993.• G. Snedecor and W. Cochran. Statistical Methods. Iowa State University Press, 

8 edition, 1989.• C. Wu and M. Hamada. Experiments: Planning, Analysis, and Parameter 

Design Optimization. Wiley­Interscience, 2000.

Page 77: Projeto de Experimentos em Engenharia de Software

Projeto de Experimentos em Engenharia de Software

Projeto de Experimentos em Engenharia de Software

Eduardo Aranha, UFRN ([email protected])Cristiano Ferraz, UFPE  ([email protected]) Paulo Borba, UFPE        ([email protected])

1º Encontro de Engenharia de Software Experimental 2011

Natal, 10 e 11 de Outubro de 2011 

Page 78: Projeto de Experimentos em Engenharia de Software

78

Proposta C1: RCBD, onde bloco é (Tamanho, Experiência)

Proposta C1: RCBD, onde bloco é (Tamanho, Experiência)

... ... ...

... ... ...

... ... ...6 desenv.

(baixo, baixo)

(médio, baixo)

(alto, baixo)

(baixo, médio) (baixo, alto)

(médio, médio) (médio, alto)

(alto, médio) (alto, alto)

Page 79: Projeto de Experimentos em Engenharia de Software

79

Considerações Sobre C1Considerações Sobre C1

• Quantidade de execuções por participante foi triplicada!– 18 desenvolv. x 3 projetos = 54 observações

• Efeito de aprendizado é balanceado pela aleatorização– Mesmo assim, erro experimental será 

inflacionado

Page 80: Projeto de Experimentos em Engenharia de Software

80

Proposta C3: Cada Desenvolvedor em um Único Bloco

Proposta C3: Cada Desenvolvedor em um Único Bloco

... ... ...

... ... ...

... ... ...

(baixo, baixo) (baixo, médio) (baixo, alto)

(médio, baixo) (médio, médio) (médio, alto)

(alto, baixo) (alto, médio) (alto, alto)

Page 81: Projeto de Experimentos em Engenharia de Software

81

Considerações Sobre Propostas C3

Considerações Sobre Propostas C3

• Não tem problema de efeito de aprendizado, mas aumenta variabilidade de experiência

• Quantidade de participantes foi triplicada!– De 18 para 54

• Experimento usando RCBD é ineficiente nessas situações– Como manter quantidade reduzida de 

participantes e controlar efeito de aprendizado?