Novos Temas de Pesquisa: O caminho das pedras

Um dos grandes fantasmas que assombram os alunos de mestrado que me procuram é o tema de pesquisa. Alguns tem dificuldade em definir um tema porque não tem uma área específica de interesse, outros tem dificuldade de traduzir uma ideia em um tema de pesquisa. Muitos, mais afortunados, já tem um tema mas não sabem se um tema do seu interesse pode se tornar uma pesquisa de mestrado. Não vou tentar aqui dar algumas dicas de como definir um tema de pesquisa. Para isso sugiro livros de metodologia da pesquisa. O que vou listar aqui são os temas de pesquisa de meu interesse, no momento. Isso não quer dizer que uma área diferente deste possa interessar, mas neste caso o projeto deve estar bem definido e a pesquisa deve apresentar um bom potencial.

Caminhos da história, João Pessoal, PB

Para apresentar um projeto de pesquisa sugiro seguir as dicas de Como Escrever um Projeto de Pesquisa de Mestrado. Mesmo para as áreas abaixo a apresentação do projeto de pesquisa é essencial.

As pesquisas são divididas em duas grandes áreas: teste de software e processos de desenvolvimento de software. Não é coincidência que estas são as áreas das duas disciplinas que ministro no mestrado, assim, um requisito importante para quem quiser ser orientado nestas áreas é fazer estas disciplinas, assim poderemos nivelar nossos conhecimentos e evitar transformar a orientação em aula.

Área de Teste de Software
Grande questão de pesquisa: Como eliminar os defeitos de um software de modo mais efetivo (eficientemente e eficazmente) ?

Validação Experimental de Técnicas de Teste de Software, com coleta e análise de dados de teste de software. Implantação de técnicas de teste de software. Proposta de Novas técnicas para teste de software em contextos específicos. (Metodologias aplicáveis são estudos de caso e pesquisa-ação)
Ex. Avaliação do uso de revisão de pares na eliminação de erros de desenvolvimento. (ex de Metodologia estudo de casos múltiplos).

Aumento da Eficiência (ou da eficácia) de técnicas em contextos específicos. Os contextos podem variar com um domínio de um problema, uma classe de problemas, limitações de linguagem ou de arquitetura ou uma restrição funcional. (Metodologias aplicáveis: pesquisa empírica, pesquisa-ação, pesquisa experimental)
Ex. Proposta de Automação de testes de webservices; Aumento da eficácia dos testes de usabilidade no TDD (Uma área típica para uma pesquisa-ação)

Desenvolvimento de Ferramentas (ou Frameworks) para teste, em contexto específico. Os contextos podem variar com um domínio de um problema, uma classe de problemas, limitações de linguagem ou de arquitetura ou uma restrição funcional. Geração automática de casos de teste. Comparação entre ferramentas/técnicas de automação de teste de software.
Ex. Testes de integração em programas orientados a aspectos. (Metodologias aplicáveis pesquisa-ação, pesquisa experimental)

Área de Processos de Desenvolvimento de Software
A grande questão de pesquisa nesta área é: Quais são os passos/técnicas que aumentam a chances de sucesso de um projeto de software? A hipótese desta área é que existam métodos, na forma de passos bem definidos, que quando executados em um contexto específico, podem aumentar a chance de sucesso de um projeto de software. A adoção de práticas também podem ser estudadas neste contexto.

Validação experimental de técnicas ágeis. Avaliação da eficácia (e/ou eficiência) de técnicas hibridas (ágil _ RUP, UC + TDD, EVM + SCrum). Implantação de ténicas específicas (Scrum , XP, UP, OpenUP, RUP) por meio de estudo de casos.

Escalabilidade de processos ágeis. Estudar o efeito da adoção de práticas individuais ágeis descritas no XP, Scrum, FDD, TDD, etc. por meio de experimentos empíricos. (ex. Integração de Casos de Uso de TDD)

Migração/adoção de ferramentas de controle e gestão (PMI, etc..) ao Processo de desenvolvimento ade software. Gráficos de controle, estratégias de gestão (EVM), documentos, avaliando as práticas que atendem à àrea de software. Com interesse especial nos métodos de desenvolvimento ágil, que ainda necessitam de técnicas de apoio em diversas áreas.

Colaboração entre o desenvolvimento de software ágil e os testes. Propostas que alinhem os princípios ágeis com as praticas de teste. mudanças nas técnicas de teste em função da adoção de uma filosofia ágil de desenvolvimento de software. Ex. TDD + Testes de Usabilidade (Pesquisa -ação); Fatores críticos de sucesso na implantação de teste ágil (estudo de casos múltiplos).

Práticas e Tecnologias de apoio
São técnicas que podem ser usadas em diversas áreas mas não acredito que tenham requisitos de inovação ou motivação suficientes para formarem a base de uma pesquisa especifica. Assim, as áreas abaixo podem ser usadas como apoio para outras pesquisas, nas áreas acima, mas não serão o objeto principal da pesquisa.

* GQM – Goal Question Metric, e métricas são técnicas para apoiar outros estudos,
* POA – Programação Orientada a Aspectos, podem ser usadas como técnicas de apoio.
* MDD – Model Driven Development/Model Driven Architecture
* UML – Unified Modeling Language
* RUP – Rational Unified Process e suas variações
* TDD/Refactoring – Test Driven Design/Refatoração.

Comments are closed.