
Experimental Software Engineering
Código
9231
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
6.0
Professor responsável
Ana Maria Dinis Moreira, Miguel Carlos Pacheco Afonso Goulão
Horas semanais
2
Língua de ensino
Inglês
Objectivos
Saber:
- Formalização do conhecimento do domínio
- Elicitação de hipóteses
- Desenho experimental
- Análise exploratória de dados qualitativos e quantitativos
- Recolha de informação em projectos reais
- Testes de hipóteses paramétricos e não-paramétricos
- Identificação e mitigação de ameaças à validade
- Disseminação de resultados experimentais
- Replicação de experiências
Fazer:
- Construção de experiências para obter evidência estatística da validade de propostas em Engenharia de Software usando o método científico
- Recolha de informação em projectos reais: ferramentas e técnicas
- Relato de experiências usando guias padrão
- Realização de revisões sistemáticas de literatura
Soft skills:
- Consciência da importância de uma validação sólida de teorias em Engenharia de Software
- Pensamento crítico sobre as afirmações feitas em Engenharia de Software
Realização de revisões sistemáticas de literatura e relatos de experiências usando técnicas padrão
Conteúdo
- Estratégias empíricas (questionários, casos de estudo e experiências)
- Métodos de experimentação qualitativos, quantitativos e mistos
- Ciclo de vida do proceso experimental
- Medição:
- Identificação de variáveis e tipos de escala
- Teoria da medição
- O paradigma GQM
- Formalização de definição de métricas
- Planeamento, condução e relato de experiências
- Identificação de objectivos
- Formulação de hipóteses
- Desenho experimental
- Identificação de ameaças à validade
- Recolha de dados
- Análise de dados
- Relato de experiências
- Construção de teorias em Engenharia de Software
- Construção de teorias combinando diferentes IGNOREes de informação
- O papel da replicação em Engenharia de Software
Bibliografia
- Guide to Advanced Empirical Software Engineering, Forrest Shull, Janice Singer, and Dag I.K. Sjøberg, Springer, 2008.
- Experimentation in Software Engineering, Claes Wohlin, Per Runeson, Martin Höst, Magnus C. Ohlsson, Björn Regnell, Anders Wesslén, Springer 2012.
- Empirical Methods and Studies in Software Engineering, Reidar Conradi, Alf Inge Wang (eds.), LNCS 2765, Springer, 2003.
- Basics of Software Engineering Experimentation, Natalia Juristo, and Ana M. Moreno, Kluwer, 2001.
- Case Study Research in Software Engineering: Guidelines and Examples, Per Runeson, Martin Host, Austen Rainer, Bjorn Regnell, Wiley, 2012.
Research Design: Qualitative, Quantitative, and Mixed Methods Approaches (2nd edition), John W. Creswell, 246 pages, SAGE Publications, 2002.
Método de ensino
As aulas são dadas numa sala de aulas equipada com um projector, e cada tópico é apresentado com recurso a um slide show. Os tópicos são complementados com a leitura de bibliografia seleccionada por parte dos alunos, para aprofundar tópicos seleccionados. Esta leitura incide sobre artigos e capítulos de livro de grande impacto na comunidade de Engenharia de Software Experimental. Este trabalho é complementado com dois projectos pensados para aplicar na prática os conteúdos dicutidos nas aulas com exemplos concretos.
Método de avaliação
A avaliação inclui um exame escrito que corresponde a 50% da nota final. Os restantes 50% são obtidos pela realização de dois projectos: a condução de uma revisão sistemática de literatura, sobre uma questão de investigação concreta, e a realização de uma experiência usando as técnicas experimentais cobertas no curso. Ambos os projectos incluem a produção de um relatório escrito e a realização de uma apresentação oral.