SlideShare uma empresa Scribd logo
1 de 16
A Catalogue of Bad Smells for Software Process
Mestrando:
Edison Santos
edison.santos@ufba.br rita.suzana@ufba.br santanna@dcc.ufba.br
Co-orientador: Prof. Dr.
Claudio Sant’anna
Orientadora: Prof.
Dra. Rita Suzana
Programa de Pós-graduação em Ciência da Computação
SBQS XVII - 17/10/2018
Agenda
Conceitos gerais; problema e solução.
Introdução
01
Processo de adaptação de bad smells para
processo modelado com SPEM (Software &
Systems Process Engineering Meta-Model);
Metodologia
02
Qualitativos, Quantitativos, Discussão e Ameaças a
validade
Resultados do Survey
03
A Catalogue of
Bad Smells for
Software Process
Estratégia de
detecção de bad
smells
Medição de
processo
Avaliação de
processo
PML - SPEM
Modelo de Processo
de Software
Problema
Process Smell
Solução
Como detectar problemas no processo
antes da execução do mesmo?
Elaborar um catálogo de bad smells para
processo de software de forma a apoiar a
detecção dos bad smells
Introdução
3
Process smells podem resultar de decisões tomadas
durante as fases como concepção e modelagem
de um processo. Os process smells incidem na
especificação dos elementos do processo e
podem impactar negativamente em fatores de qualidade
de processo, como, por exemplo compreensibilidade.
1) Adaptação de bad smells de código orientado a objetos
para o contexto de processo de software
2) Entrevista semi estruturada
(i) Estabelecer possíveis relações entre os elementos
de código orientado a objeto e elementos do SPEM;
(ii) Realizar a adaptação das definições dos bad
smells e identificar o elemento impactado;
(iii) Construir a representação do bad smell em SPEM*;
(iv) Estabelecer quais fatores de qualidade poderiam ser
impactados pelos bad smells já adaptados para processo
(v) Elaborar o catálogo
Questionário
A) Perfil do Participante
B) Process Smells
b.1 Definição do process smell
b.2 Verificação dos impactos negativos
para a compreensibilidade
b.3 Verificação dos impactos negativos
para a modificabilidade
Metodologia – Elaboração e Validação do Catálogo
4
Elementos POO e SPEM
Programa de Software SPEM
Módulo/Classe Atividade
Função/Método Tarefa
Estrutura condicionais e loops Passos
Acessadores/Propriedades Produtos de Trabalho
Tabela 1: Elementos e respectivos símbolos do SPEM
Elemento Símbolo Elemento Símbolo
Atividade Passos
Tarefa Produtos de
Trabalho
(i) Estabelecer possíveis relações entre os elementos de código orientado a objeto e elementos do SPEM;
Metodologia – Especificação do do Catálogo
5
(iv) Estabelecer quais fatores de qualidade podem ser impactados pelos bad smells já adaptados para processo;
Visão sistêmica da engenharia de software centrada no ser humano
Sub atributos: Compreensibilidade (usabilidade) e Modificabilidade (manutenabilidade)
* Propriedades estruturais – tamanho, complexidade e modularidade
• podem ser medidas antes da execução do processo
(ii) Realizar a adaptação das definições dos bad smells e identificar o elemento impactado;
Elementos impactados: Atividades (activities),
Tarefas (tasks), Produtos de Trabalho (Work
Product)
Código OO Adaptados para SPEM
Brain Method Brain Task
Brain Class Brain Activity
Data Class Data Activity
Large Class Large Activity
Data Clumps Work Product Clumps
*Divergent Change, Feature Envy,, Long Input List,
Message Chains, Shotgun Surgery
(iii) Construir a representação do bad smell em SPEM*;
Metodologia – Especificação do do Catálogo
6
Atividade
centralizadora, possui
muitas tarefas, e
muitos fluxos de
decisão e
utiliza produtos de
trabalho de outras
atividades mais triviais
Large Activity
1 2 3 4 5
Ocorre quando uma
atividade é
configurada para
atender a mais de uma
"necessidade"
Divergent Change
É configurada quando
uma tarefa precisa de
um grande número de
produtos de trabalho
de entrada
Long Input List
É quando um conjunto
de produtos de
trabalho de
determinadas
atividades/tarefas são
constantemente vistos
juntos
Work Product Clumps
Uma atividade que ao
sofrer uma mudança
desencadeará a
necessidade de muitas
pequenas mudanças
em várias outras
atividades
Shotgun Surgery
Define que longas
cadeias de trocas de
produtos de trabalho
entre tarefas podem
representar
dependências
disfarçadas
Message Chains
6 7 8
uma tarefa que faz de
uso extensivo de
produtos de trabalho
de saída de outras
Atividades.
Feature Envy
Quando uma atividade
não desempenha
objetivos relevantes no
processo, mas
fornece bastante
produtos de trabalho
de saída
Data Activity
Uma tarefa longa que
centraliza as ações de
uma atividade, possui
muitos passos e
possui muitos fluxos
de decisão para
estruturar os passos
Brain Task
Uma atividade
centralizadora, possui
muitas tarefas e
muitos fluxos de
decisão
Brain Activity
9 10
Catálogo de Process Smells
7
Process Smell: Large Activity
Elemento impactado:Atividade
Descrição
Uma Large Activity se caracteriza quando uma atividade é grande por conter muitas tarefas e possui muitas
responsabilidades. Ela centraliza as principais ações do processo, deixando, para outras atividades, apenas
responsabilidades mais triviais. Além disto, a Large Activity utiliza produtos de trabalho destas outras atividades para
concluir seus objetivos.
Possíveis Impactos
Apesar da sensação de simplificar o modelo usando poucas atividades, uma Large Activity possuir muitas tarefas e
muitos fluxos de decisão, assim aumenta a complexidade. A inserção de muitas tarefas em uma mesma atividade, gera o
risco de confundir a responsabilidade da atividade, adicionando tarefas que cuidam de diferentes necessidades do
processo. Este fato pode também impactar negativamente a coesão entre as tarefas. Essas duas características podem
reduzir a compreensibilidade da atividade.
A dependência que uma Large Activity tem de produtos de trabalho de entrada insere a possibilidade de impactos
negativos caso as atividades quais a Large Activity é dependente mudem. Este fato reduz a capacidade de
modificabilidade do processo.
Large Activity – Exemplo de Process Smell
8
Representação
Figura 1: Representação do Large Activity
Large Activity – Exemplo de Process Smell
9
Perfis dos Participantes (experiência e certificações)
 8 Participantes
Quantidade de processo/
Tempo de experiência
B - Modelei
apenas um
processo
C - Modelei
entre 2 à 5
processos
D - Modelei
entre 6 à 15
processos
E - Modelei
mais que 15
processos
F - Acima de 4 anos. 1 1 2
E - Entre 3 à 4 anos. 1 1
B - Entre 6 meses e 1 ano. 1
A - Menos de 6 meses 1
Quanto a certificações:
2 CMMI Internos;
1 líder CMMI e MPS-Br;
1 Cobit e CCSA.
Validação do Catálogo
10
Experiência
Modelagens realizadas
Resultados Quantitativos
Taxa de aceitação = soma das respostas positivas de cada process smell / total de participantes.
Process Smell Definição Compreensibilidade Modificabilidade Aceitação Geral
Brain Activity 0,75 0,75 NA 0,75
Brain Task 0,88 1,00 NA 0,94
Data Activity 0,75 NA 0,75 0,75
Divergent Change 0,88 0,88 NA 0,88
Feature Envy 0,88 0,88 NA 0,88
Large Activity 0,88 0,88 1,00 0,92
Long Input List 0,88 0,88 NA 0,88
Message Chains 0,88 0,88 NA 0,88
Shotgun Surgery 1,00 NA 1,00 1,00
Work Product Clump 0,75 NA 0,75 0,75
Aceitação Geral 0,85 0,88 0,88 0,86
* NA - não se aplica
Validação do Catálogo - Resultados
11
Resultados Qualitativos
Concordância com as definições dos process smells e atributos de qualidade impactados:
Impacto negativo para modificabilidade.
acoplamento relativo a dependência entre atividades/tarefas a partir da troca de produtos de trabalho
Impacto negativo para compreensibilidade:
(i) tamanho de uma atividade, em termos do número de tarefas;
(ii) tamanho de uma tarefa, em termos dos números de passos;
(iii) baixa coesão de uma atividade ou atender a mais de um objetivo de negócio;
(iv) número de fluxos de decisão da atividade ou tarefa.
Validação do Catálogo - Resultados
12
Resultados Qualitativos
Discordância em relação aos process smells
Discordância Large
Activity
Divergent
Change
Brain
Activity
Data
Activity
Work Product
Clump
Atividade grande pode não
representar um process smell
X X X
Não considerar o número de
papéis envolvidos na atividade
X X
Não apresentar a ocorrência do
acoplamento entre as atividades
X X
“A quantidade de inputs é abstrata para definir um problema”: Long Input List;
“Em alguns contextos é necessário existir artefatos dependentes” : Work Product Clump;
“Tarefas de suporte que vão possuir essa configuração não caracterizam um problema” : Feature Envy;
“o laço entre um conjunto de tarefas é o real problema e não a cadeia longa entre tarefas” : Message Chains.
O Shotgun Surgery não recebeu nenhuma discordância obtendo uma taxa de 100% de aceitação.
Validação do Catálogo - Resultados
13
Discussão
Relacionando os dados quantitativos e qualitativos associadas as rejeições
PROCESS SMELLS COM 75% DE ACEITAÇÃO (MENOR TAXA)
Brain Activity - a indicação que atividades grandes podem não são um problemas.
Data Activity - ausência da definição da centralização da atividade para um único papel do processo.
Work Product Clump - necessidade da apresentação da ocorrência do acoplamento.
Validação do Catálogo - Resultados
Ameaças a validade
1. Amostra não probabilística por conveniência com oito participantes.
2. Três participantes não conhecerem o SPEM.
3. Alguns participantes citaram o desconhecimento do conceito de bad smells de código.
14
Conclusão e Trabalhos Futuros
01
02
03
Detectar e remover process smells na fase de
especificação de um processo de software,
pode evitar que estes ocasionem problemas
na fase de execução do processo em um
projeto de desenvolvimento de software.
Conclusão - Geral
Analistas de processo possuem algumas
preocupações que são consideras na fase de
especificação do processo.
Conclusão - Discussão
1 – Realizar o survey com mais profissionais;
2 - Verificar a aplicação dos process smells
em processos reais de desenvolvimento de
software.
Trabalhos Futuros
15
Obrigado
Contatos
edison.santos@ufba.br
ed_black1@hotmail.com
A Catalogue of Bad Smells for Software Process

Mais conteúdo relacionado

Semelhante a A Catalogue of Bad Smells for Software Process Smells

Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGGESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGMarcos Lottermann
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloRoberto de Pinho
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de SoftwareRafael Silva
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareRobson Silva Espig
 
Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumMarcos Garrido
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 
Mps br final - mps
Mps br final - mpsMps br final - mps
Mps br final - mpsEdvaldo Cruz
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAlexandreLisboadaSil
 

Semelhante a A Catalogue of Bad Smells for Software Process Smells (20)

Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGGESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Webshow - Automação Laboratorial I
Webshow - Automação Laboratorial IWebshow - Automação Laboratorial I
Webshow - Automação Laboratorial I
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com Scrum
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Mps br final - mps
Mps br final - mpsMps br final - mps
Mps br final - mps
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptx
 

Mais de Edison Santos

Desafios da EAD - v2
Desafios da EAD - v2Desafios da EAD - v2
Desafios da EAD - v2Edison Santos
 
Cuidados na internet
Cuidados na internetCuidados na internet
Cuidados na internetEdison Santos
 
Desenvolvimento Web - Aula 1
Desenvolvimento Web - Aula 1Desenvolvimento Web - Aula 1
Desenvolvimento Web - Aula 1Edison Santos
 
Sistemas Distribuídos - Aula 4
Sistemas Distribuídos - Aula 4Sistemas Distribuídos - Aula 4
Sistemas Distribuídos - Aula 4Edison Santos
 
Sistemas Distribuídos - Aula 3
Sistemas Distribuídos - Aula 3Sistemas Distribuídos - Aula 3
Sistemas Distribuídos - Aula 3Edison Santos
 
Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2Edison Santos
 
Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1Edison Santos
 

Mais de Edison Santos (8)

Desafios da EAD - v2
Desafios da EAD - v2Desafios da EAD - v2
Desafios da EAD - v2
 
Desafios da EAD
Desafios da EADDesafios da EAD
Desafios da EAD
 
Cuidados na internet
Cuidados na internetCuidados na internet
Cuidados na internet
 
Desenvolvimento Web - Aula 1
Desenvolvimento Web - Aula 1Desenvolvimento Web - Aula 1
Desenvolvimento Web - Aula 1
 
Sistemas Distribuídos - Aula 4
Sistemas Distribuídos - Aula 4Sistemas Distribuídos - Aula 4
Sistemas Distribuídos - Aula 4
 
Sistemas Distribuídos - Aula 3
Sistemas Distribuídos - Aula 3Sistemas Distribuídos - Aula 3
Sistemas Distribuídos - Aula 3
 
Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2
 
Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1
 

A Catalogue of Bad Smells for Software Process Smells

  • 1. A Catalogue of Bad Smells for Software Process Mestrando: Edison Santos edison.santos@ufba.br rita.suzana@ufba.br santanna@dcc.ufba.br Co-orientador: Prof. Dr. Claudio Sant’anna Orientadora: Prof. Dra. Rita Suzana Programa de Pós-graduação em Ciência da Computação SBQS XVII - 17/10/2018
  • 2. Agenda Conceitos gerais; problema e solução. Introdução 01 Processo de adaptação de bad smells para processo modelado com SPEM (Software & Systems Process Engineering Meta-Model); Metodologia 02 Qualitativos, Quantitativos, Discussão e Ameaças a validade Resultados do Survey 03 A Catalogue of Bad Smells for Software Process
  • 3. Estratégia de detecção de bad smells Medição de processo Avaliação de processo PML - SPEM Modelo de Processo de Software Problema Process Smell Solução Como detectar problemas no processo antes da execução do mesmo? Elaborar um catálogo de bad smells para processo de software de forma a apoiar a detecção dos bad smells Introdução 3 Process smells podem resultar de decisões tomadas durante as fases como concepção e modelagem de um processo. Os process smells incidem na especificação dos elementos do processo e podem impactar negativamente em fatores de qualidade de processo, como, por exemplo compreensibilidade.
  • 4. 1) Adaptação de bad smells de código orientado a objetos para o contexto de processo de software 2) Entrevista semi estruturada (i) Estabelecer possíveis relações entre os elementos de código orientado a objeto e elementos do SPEM; (ii) Realizar a adaptação das definições dos bad smells e identificar o elemento impactado; (iii) Construir a representação do bad smell em SPEM*; (iv) Estabelecer quais fatores de qualidade poderiam ser impactados pelos bad smells já adaptados para processo (v) Elaborar o catálogo Questionário A) Perfil do Participante B) Process Smells b.1 Definição do process smell b.2 Verificação dos impactos negativos para a compreensibilidade b.3 Verificação dos impactos negativos para a modificabilidade Metodologia – Elaboração e Validação do Catálogo 4
  • 5. Elementos POO e SPEM Programa de Software SPEM Módulo/Classe Atividade Função/Método Tarefa Estrutura condicionais e loops Passos Acessadores/Propriedades Produtos de Trabalho Tabela 1: Elementos e respectivos símbolos do SPEM Elemento Símbolo Elemento Símbolo Atividade Passos Tarefa Produtos de Trabalho (i) Estabelecer possíveis relações entre os elementos de código orientado a objeto e elementos do SPEM; Metodologia – Especificação do do Catálogo 5
  • 6. (iv) Estabelecer quais fatores de qualidade podem ser impactados pelos bad smells já adaptados para processo; Visão sistêmica da engenharia de software centrada no ser humano Sub atributos: Compreensibilidade (usabilidade) e Modificabilidade (manutenabilidade) * Propriedades estruturais – tamanho, complexidade e modularidade • podem ser medidas antes da execução do processo (ii) Realizar a adaptação das definições dos bad smells e identificar o elemento impactado; Elementos impactados: Atividades (activities), Tarefas (tasks), Produtos de Trabalho (Work Product) Código OO Adaptados para SPEM Brain Method Brain Task Brain Class Brain Activity Data Class Data Activity Large Class Large Activity Data Clumps Work Product Clumps *Divergent Change, Feature Envy,, Long Input List, Message Chains, Shotgun Surgery (iii) Construir a representação do bad smell em SPEM*; Metodologia – Especificação do do Catálogo 6
  • 7. Atividade centralizadora, possui muitas tarefas, e muitos fluxos de decisão e utiliza produtos de trabalho de outras atividades mais triviais Large Activity 1 2 3 4 5 Ocorre quando uma atividade é configurada para atender a mais de uma "necessidade" Divergent Change É configurada quando uma tarefa precisa de um grande número de produtos de trabalho de entrada Long Input List É quando um conjunto de produtos de trabalho de determinadas atividades/tarefas são constantemente vistos juntos Work Product Clumps Uma atividade que ao sofrer uma mudança desencadeará a necessidade de muitas pequenas mudanças em várias outras atividades Shotgun Surgery Define que longas cadeias de trocas de produtos de trabalho entre tarefas podem representar dependências disfarçadas Message Chains 6 7 8 uma tarefa que faz de uso extensivo de produtos de trabalho de saída de outras Atividades. Feature Envy Quando uma atividade não desempenha objetivos relevantes no processo, mas fornece bastante produtos de trabalho de saída Data Activity Uma tarefa longa que centraliza as ações de uma atividade, possui muitos passos e possui muitos fluxos de decisão para estruturar os passos Brain Task Uma atividade centralizadora, possui muitas tarefas e muitos fluxos de decisão Brain Activity 9 10 Catálogo de Process Smells 7
  • 8. Process Smell: Large Activity Elemento impactado:Atividade Descrição Uma Large Activity se caracteriza quando uma atividade é grande por conter muitas tarefas e possui muitas responsabilidades. Ela centraliza as principais ações do processo, deixando, para outras atividades, apenas responsabilidades mais triviais. Além disto, a Large Activity utiliza produtos de trabalho destas outras atividades para concluir seus objetivos. Possíveis Impactos Apesar da sensação de simplificar o modelo usando poucas atividades, uma Large Activity possuir muitas tarefas e muitos fluxos de decisão, assim aumenta a complexidade. A inserção de muitas tarefas em uma mesma atividade, gera o risco de confundir a responsabilidade da atividade, adicionando tarefas que cuidam de diferentes necessidades do processo. Este fato pode também impactar negativamente a coesão entre as tarefas. Essas duas características podem reduzir a compreensibilidade da atividade. A dependência que uma Large Activity tem de produtos de trabalho de entrada insere a possibilidade de impactos negativos caso as atividades quais a Large Activity é dependente mudem. Este fato reduz a capacidade de modificabilidade do processo. Large Activity – Exemplo de Process Smell 8
  • 9. Representação Figura 1: Representação do Large Activity Large Activity – Exemplo de Process Smell 9
  • 10. Perfis dos Participantes (experiência e certificações)  8 Participantes Quantidade de processo/ Tempo de experiência B - Modelei apenas um processo C - Modelei entre 2 à 5 processos D - Modelei entre 6 à 15 processos E - Modelei mais que 15 processos F - Acima de 4 anos. 1 1 2 E - Entre 3 à 4 anos. 1 1 B - Entre 6 meses e 1 ano. 1 A - Menos de 6 meses 1 Quanto a certificações: 2 CMMI Internos; 1 líder CMMI e MPS-Br; 1 Cobit e CCSA. Validação do Catálogo 10 Experiência Modelagens realizadas
  • 11. Resultados Quantitativos Taxa de aceitação = soma das respostas positivas de cada process smell / total de participantes. Process Smell Definição Compreensibilidade Modificabilidade Aceitação Geral Brain Activity 0,75 0,75 NA 0,75 Brain Task 0,88 1,00 NA 0,94 Data Activity 0,75 NA 0,75 0,75 Divergent Change 0,88 0,88 NA 0,88 Feature Envy 0,88 0,88 NA 0,88 Large Activity 0,88 0,88 1,00 0,92 Long Input List 0,88 0,88 NA 0,88 Message Chains 0,88 0,88 NA 0,88 Shotgun Surgery 1,00 NA 1,00 1,00 Work Product Clump 0,75 NA 0,75 0,75 Aceitação Geral 0,85 0,88 0,88 0,86 * NA - não se aplica Validação do Catálogo - Resultados 11
  • 12. Resultados Qualitativos Concordância com as definições dos process smells e atributos de qualidade impactados: Impacto negativo para modificabilidade. acoplamento relativo a dependência entre atividades/tarefas a partir da troca de produtos de trabalho Impacto negativo para compreensibilidade: (i) tamanho de uma atividade, em termos do número de tarefas; (ii) tamanho de uma tarefa, em termos dos números de passos; (iii) baixa coesão de uma atividade ou atender a mais de um objetivo de negócio; (iv) número de fluxos de decisão da atividade ou tarefa. Validação do Catálogo - Resultados 12
  • 13. Resultados Qualitativos Discordância em relação aos process smells Discordância Large Activity Divergent Change Brain Activity Data Activity Work Product Clump Atividade grande pode não representar um process smell X X X Não considerar o número de papéis envolvidos na atividade X X Não apresentar a ocorrência do acoplamento entre as atividades X X “A quantidade de inputs é abstrata para definir um problema”: Long Input List; “Em alguns contextos é necessário existir artefatos dependentes” : Work Product Clump; “Tarefas de suporte que vão possuir essa configuração não caracterizam um problema” : Feature Envy; “o laço entre um conjunto de tarefas é o real problema e não a cadeia longa entre tarefas” : Message Chains. O Shotgun Surgery não recebeu nenhuma discordância obtendo uma taxa de 100% de aceitação. Validação do Catálogo - Resultados 13
  • 14. Discussão Relacionando os dados quantitativos e qualitativos associadas as rejeições PROCESS SMELLS COM 75% DE ACEITAÇÃO (MENOR TAXA) Brain Activity - a indicação que atividades grandes podem não são um problemas. Data Activity - ausência da definição da centralização da atividade para um único papel do processo. Work Product Clump - necessidade da apresentação da ocorrência do acoplamento. Validação do Catálogo - Resultados Ameaças a validade 1. Amostra não probabilística por conveniência com oito participantes. 2. Três participantes não conhecerem o SPEM. 3. Alguns participantes citaram o desconhecimento do conceito de bad smells de código. 14
  • 15. Conclusão e Trabalhos Futuros 01 02 03 Detectar e remover process smells na fase de especificação de um processo de software, pode evitar que estes ocasionem problemas na fase de execução do processo em um projeto de desenvolvimento de software. Conclusão - Geral Analistas de processo possuem algumas preocupações que são consideras na fase de especificação do processo. Conclusão - Discussão 1 – Realizar o survey com mais profissionais; 2 - Verificar a aplicação dos process smells em processos reais de desenvolvimento de software. Trabalhos Futuros 15