Um Sistema de Recomendação para Experimentos e Quasi-Experimentos Controlados de Linha de Produto de Software

Henrique Vignando

Orientador: Prof. Dr. Edson A. Oliveira Junior

UNIVERSIDADE ESTADUAL DE MARINGÁ

CENTRO DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

Agenda

  • Introdução | Motivação
  • Revisão da literatura | Conceitos
  • Proposta do trabalho de pesquisa
  • Metodologia
  • Avaliação
  • Resultados esperados
  • Possiveis Contribuições | Trabalhos futuros
  • Limitações
  • Cronograma
  • Conclusão​

Introdução

Recente discussão sobre a qualidade dos experimentos em ES e o quão importante é esse processo para ES (Lopes e Travassos, 2009).

Em LPS existe uma escassez de recursos para os avanços dessa área.

 

Gap de estudos sobre recomendações em experimentos de ES para LPS com qualidade minima desejável.

Motivação

Revisão da literatura

Conceitos

  • Linha de Produto de Software LPS
  • Experimento e Quasi-Experimento em ES
  • Qualidade de experimento em ES
  • Ontologia
  • Sistemas de Recomendação em ES

Linha de Produtos de Software

Uma LPS é um conjunto de produtos que endereçam a um determinado segmento de mercado ou missão particular

(Pohl et al. 2005).

Fonte: Paulo Gandra de Sousa

Esse conjunto de produtos também é denominado família de produtos, no qual os membros desta família são produtos específicos gerados a partir da reutilização de uma infraestrutura comum, denominada núcleo de artefatos (Core assets).

Experimentos e quasi-Experimentos Controlados em ES

A realização de um experimento é o relacionamento entre causa e efeito, através de modelo teórico entre dois ou mais fenômenos relacionados a fim de determinar se o modelo proposto pode ser considerado correto.

Os experimentos possuem variáveis Independentes e Dependentes. As variáveis independentes são associadas à causa e controladas como resultado das atividades do experimentador, também são chamadas de fatores que podem assumir valores denominados tratamentos. As variáveis dependentes são associadas ao efeito e resultam nas mudanças que o experimentador realiza às variáveis independentes

(Kitchenham et al., 2016)

Experimentos e quasi-Experimentos Controlados em ES

Fonte: Tradução Wohlin (2012)

O conceito de qualidade em experimentos em ES pode ser visto em três pontos de vista diferentes:

  • O primeiro é considerar a qualidade como o resultado da validade interna de um bom experimento;
  • O segundo é validade externa (subordinada a validade interna) e;
  • O terceiro refere-se a quantidade de viés nos resultados experimentais.

Qualidade em quasi-Experimentos de ES em LPS

Qualidade em quasi-Experimentos de ES em LPS

Fonte: Adaptado e Traduzido de Dieste (2011)

Qualidade em quasi-Experimentos de ES em LPS

A comunidade de Engenharia de Software tem discutido como avaliar a qualidade de experimentos na área, utilizando abordagens como:

  • Critérios simples de qualidade (Dieste et al., 2011);
  • Checklists (Kampenes, 2007; Kitchenham e Charters, 2007; Kitchenham et al., 2010);
  • Escalas de qualidade (Dieste et al., 2011) e;
  • Validade de inferência e o relato dos experimentos (Kampenes, 2007)

Ontologia

Ontologia é um ramo da filosofia que estuda a realidade e existência, ou o ser enquanto ser. Em outras palavras, é o estudo da descrição de coisas do mundo real.

(Wolff e École, 1962)

Ontologias são uma especificação formal de uma contextualização e uma contextualização é uma visão abstrata e simplificada do mundo.

(Gruber, 1993)

Ontologia

Estrutura para uma ontologia:

  • Uma base de conhecimento onde estão os dois grupos, o conjuntos de conhecimento terminológico (TBox) e o conjunto de conhecimento sobre objetos (ABox);
  • Um mecanismo de inferência e;
  • Uma aplicação para atuar na extração e manipulação de informações extraídas do mecanismo de inferência

Fonte: Lucas de Oliveira Teixeira

 (Lógica descritiva)

Ontologia

Nesta pesquisa será utilizado ontologia para estruturar e modelar a base de informações extraído do Mapeamento Sistemático de experimentos em LPS (dissertação da Viviane Furtado).

 

Pode se dizer que será conjunto de meta dados dessas informações.

Motivação para o uso de Ontologia

Sistemas de Recomendação

Sistemas de recomendação são aplicativos software que visam dar suporte para usuário na tomada de decisões ao interagir com grandes espaços de informação.

(ACM Conferece Recommendation System)

Os sistemas de recomendação são técnicas ou ferramentas de software, que pode reduzir a sobrecarga de informações para os usuários, sugerindo itens, conteúdos ou serviços, etc.

(Mahmood e Ricci, 2009).

Sistemas de Recomendação

Tradicional

Em um problema de recomendação, as principais entidades são o usuário e o item e o objetivo é recomendar os itens com melhores score aos usuários, como pode ser visto nos grandes players como, Netflix, Amazon, Facebook, Spotfy, etc...

O primeiro sistema de recomendação proposto foi Tapestry, (Kwong et al., 1992), ele introduziu o conceito de Collaborative filtering.

Sistemas de Recomendação

Tradicional

Collaborative Filtering

Fonte: Gravity R&D (http://gravityrd.brainsum.com)

Sistemas de Recomendação

Tradicional

Content-based Filtering

Fonte: Gravity R&D (http://gravityrd.brainsum.com)

Sistemas de Recomendação

Modernos

Hybrid Recommender Systems

São algoritmos que combinam Collaborative Filtering com Content-based e podem ser feitos de diversas formas diferentes: aplicando os dois separados e juntando os resultados depois, adicionando a capacidade de Content-based a Collaborative Filtering (ou vice-versa) ou unificando as duas abordagens em um único modelo.

Sistemas de Recomendação

Modernos

Context-aware Recommender Systems

Existem muitos casos de recomendações que não podem levar em consideração somente os dados do item ou do usuário, como conteúdo personalizado de um site de filmes, sites de viagens e até sites de notícias.

A incorporação do contexto permite personalizar ainda mais a recomendação e criar experiências realmente válidas ao usuário.

f:User \times Item \times Context \rightarrow Rating
f:User×Item×ContextRatingf:User \times Item \times Context \rightarrow Rating

Sistemas de Recomendação

em Engenharia de Software

Em Engenharia de Software, sistemas de recomendação desempenham importantes funções a fim de ajudar a equipe de software a lidar com sobrecarga de informações, filtrando e fornecendo informações úteis em um determinado contexto.(Robillard et al., 2010)

Sistemas de Recomendação

em Engenharia de Software

Recommendation System in Software Engineeiring (RSSE) compreendem três componentes principais que são:

  • Um mecanismo para coletar dados;
  • Um mecanismo de recomendação para analisar dados e gerar recomendações e;
  • uma interface de usuário para fornecer recomendações

(Rahman et al., 2014).

Proposta de Dissertação

O objetivo geral é projetar e implementar um sistema de recomendação usando ontologia preditiva em uma base de dados sobre experimentos de software em LPS caracterizadas por sua qualidade.

Proposta de Dissertação

Os objetivos específicos 

  • Gerar um conjunto de meta dado das informações sobre experimentos em LPS usando ontologia;
  • Uma aplicação front-end de interação com usuário afim de gerar recomendações de experimentos em LPS.

Metodologia

Fonte: Edson A. Oliveira Junior

ONTOLOGIA PREDITIVA

SISTEMA DE RECOMENDAÇÃO

Dados

Inferência

Aplicação

Front-End

Avaliação

Na Literatura é possível encontrar algumas dimensões para avaliação de um sistema de recomendação e as recomendações provida por ele.

Avaliação

Fonte: RSSE Cap.10

Avaliação

Fonte: RSSE Cap.10

Resultados Esperados

  • Espera-se que com esta pesquisa seja encontrado um modelo (projeto e implementação) de um sistema de recomendação para experimentos em LPS, focado em potencializar a qualidade do experimento a ser recomendado.
  • Espera-se também realizar um estudo de caso com este modelo.

Possíveis Contribuições

e Trabalhos Futuros

Espera-se que com esta pesquisa inicie um processo de melhoramento na qualidade de experimentação em LPS através deste projeto e implementação do sistema de recomendação proposto.

Como trabalho futuro espera-se desenvolver melhores abordagens de recomendação afim de comparação com a abordagem proposta.

Limitações

Uma possível limitação deste estudo é o tempo hábil para implementação e testes de
validação do sistema de recomendação.

Cronograma

E1 RSL - Revisão sistemática da Literatura
E2 Projeto: Tecnologias
E3 Projeto: Modelo de Ontologias
E4 Projeto: Modelo de Predição
E5 Projeto: Modelagem de dados
E6 Projeto: Modelo de Recomendação
E7 Projeto: Front-End
E8 Desenvolvimento: Ontologias
E9 Desenvolvimento: Predição
E10 Desenvolvimento: Recomendação
E11 Desenvolvimento: Front-End
E12 Testes
E13 Avaliação dos Resultados
E14 Conclusões
E15 Escrever Qualificação
E16 Defesa da Qualificação
E17 Escrever Dissertação
E18 Defesa da Dissertação

Cronograma

Conclusão

O objetivo desta proposta de dissertação propor um sistema de recomendação que possa gerar processos e diretrizes para realização de experimentos para LPS com o minimo de qualidade. Para isso, está sendo realizado uma RSL para se aprofundar nos conceitos de Sistemas de Recomendação em ES e modelos de Ontologias para representação dos dados levantados sobre a qualidade dos experimentos em LPS encontrados no trabalho da Viviane Furtado.

Em breve, os estudos extraídos da RSL auxiliarão no cumprimento dos objetivos definidos, no intuito de elaborar um projeto de software de um sistema de recomendação de experimentos em ES para LPS bem como sua avaliação.

Perguntas ?

Referências

Lopes, V. P.; Travassos, G. H. Experimentação em engenharia de software: Glossário de termos. In: 6th Experimental Software Engineering Latin American Workshop (ESELAW 2009), 2009, p. 42–51.

Pohl, K.; Böckle, G.; Linden, F. J. v. d. Software Product Line Engineering: Foundations, Principles and Techniques. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2005.

Kitchenham, B. A.; Budgen, D.; Brereton, P. Evidence-Based Software engineering and systematic reviews, v. 4. CRC Press, 2016.

Dieste, O.; Grim, A.; Juristo, N.; Saxena, H.; et al. Quantitative determination of the relationship between internal validity and bias in software engineering experiments: Consequences for systematic literature reviews. In: 5th International Symposium on Empirical Software Engineering and Measurement (ESEM), 2011, p. 285–294.

Kampenes, V. Quality of design, analysis and reporting of software engineering experiments: A systematic review. Tese de Doutoramento, Department of Informatics, Faculty of Mathematics and Natural Sciences, University of Oslo, 2007.

Referências

Wolff, C.; École, J. Philosophia prima sive ontologia. 1962.
Gruber, T. What is an ontology. WWW Site http://www-ksl. stanford. edu/kst/whatis-an-ontology. html (accessed on 07-09-2004), 1993.
Mahmood, T.; Ricci, F. Improving recommender systems with adaptive conversational strategies. In: Proceedings of the 20th ACM conference on Hypertext and hypermedia, ACM, 2009, p. 73–82.
Kwong, K. K.; Belliveau, J. W.; Chesler, D. A.; Goldberg, I. E.; Weisskoff, R. M.; Poncelet, B. P.; Kennedy, D. N.; Hoppel, B. E.; Cohen, M. S.; Turner, R. Dynamic magnetic resonance imaging of human brain activity during primary sensory stimulation. Proceedings of the National Academy of Sciences, v. 89, n. 12, p. 5675–5679, 1992.
Robillard, M.; Walker, R.; Zimmermann, T. Recommendation systems for software engineering. IEEE software, v. 27, n. 4, p. 80–86, 2010.
Rahman, M. M.; Yeasmin, S.; Roy, C. K. Towards a context-aware ide-based meta search engine for recommendation about programming errors and exceptions. In: Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on, IEEE, 2014, p. 194–203.

Made with Slides.com