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.

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.
Seminarios
By Henrique Vignando
Seminarios
- 42