Você está na página 1de 22

Inteligncia Computacional Aplicada a Engenharia de Software

Introduo
Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br

O Que Significa?
Novo ramo da Engenharia de Software dedicado a
resoluo automtica de problemas complexos dessa rea.

Tambm chamado de:


Otimizao em Engenharia de Software Search-based Software Engineering Knowledge-based Software Engineering

Motivao
Sistemas cada vez mais complexos
Abordagens automticas se tornam cada vez mais
necessrias.

Escalabilidade
Solues convencionais sofrem com problemas de
escalabilidade em grandes projetos. Aplicao de tcnicas inteligentes escalvel, dado o aumento no poder de processamento.

Independncia
Resultados so gerados a partir de anlises ausentes
de qualquer vcio ou pr-conceitos.

Quando Aplicar
Problemas Complexos
1. Grande espao de busca; 2. Ausncia de soluo tima.

Exemplos de Problemas Complexos da ES


Planejamento de Releases. Estimativa de Custos. Alocao de Pessoal. Otimizao de Cdigo Fonte. Gerao, Seleo e Priorizao de Casos de Teste. Identificao de Padres de Software para Construo de Linhas
de Produto.

Otimizao de Variabilidade de Linhas de Produto de Software. Planejamento de Produo em Linhas de Produto de Software.

Planejamento de Release

Alocao de Pessoal

Otimizao de Variabilidade de Linhas de Produto de Software

Como Aplicar?
1. Escolher algoritmo de inteligncia computacional; 2. Definir como representar o conhecimento
necessrio ao algoritmo; problema.

3. Definir como representar as possveis solues do

Um Pouco de Histria
At 2001: Diversos trabalhos esparsos, especialmente em teste de software, tratam problemas de Engenharia de Software como problemas de busca. 2007: Mark Harman publica o artigo The Current State and Future of Search Based Software Engineering. 2010: 1 Workshop de Otimizao em Engenharia de Software, na cidade de Salvador, BR.

2009: 1st International Symposium on Search Based Software Engineering, na cidade de Windsor, UK.

Linha do tempo

2008: Chamada para Edio Especial do peridico IEEE Transactions on Software Engineering em Search-Based Optimization for Software Engineering. 2001: Mark Harman e Bryan Jones introduzem o termo Search-based Software Engineering em um artigo de mesmo nome.

2011: 3rd International Symposium on Search Based Software Engineering, na cidade de Szeged, Hungria.

2010: 2nd International Symposium on Search Based Software Engineering, na cidade de Benevento, IT.

Evoluo do Nmero de Publicaes de ICAES

Taxa de Publicaes por reas da ES

Nmero de publicaes em SBSE Separadas por Pases

Algoritmos mais Utilizados no Momento


Metaheursticas
Algoritmos Genticos Simulated Annealing Colnia de Formigas

Algoritmos Ainda Pouco Utilizados e Promissores


Redes Neurais Sistemas de Inferncia Fuzzy

Exemplo de Formulao de problema


Priorizao de Casos de Teste Baseada em
Requisitos

Descrio:
Ordenar os casos de teste de forma que somente um subconjunto de casos de teste possa ser executado, com somente pequena, ou nenhuma, perda de efetividade.

Exemplo de Formulao de problema


Priorizao de Casos de Teste Baseada em
Requisitos

Formulao:
Considerar as 3 caractersticas:
Volatilidade Complexidade Importncia Valores considerados: 1 (menor) a 5 (maior)

Exemplo de Formulao de problema


Priorizao de Casos de Teste Baseada em
Requisitos

Formulao:

Onde:

Futuro
Novos Problemas
Gerao de novas formulaes para problemas da
engenharia de software. Extenso de formulaes existentes. Tratamento multiobjetivo para formulaes monoobjetivo.

Novas Abordagens
Aplicaes de novos algoritmos em problemas existentes. Estudos comparativos de tcnicas de busca.

Competitividade Humana
Anlise da competitividade dos resultados gerados
automaticamente em comparao com resultados produzidos por humanos.

Futuro
Otimizao Interativa
Estratgias de incorporao do julgamento humano
durante o processo de otimizao.

Hibridizao
Combinao de mtodos na gerao de abordagens
mais eficientes.

Atividade
Leia e escreva uma crtica, levando em
considerao o seu conhecimento de engenharia de software e Inteligncia Computacional, sobre os dois artigos abaixo: M. Harman and B. F . Jone, Search-based software

engineering. Information and Software Technology, vol. 43, pp. 833839, 2001. M. Harman. The Current State and Future of Search Based Software Engineering. 29th Int. Conference on Software Engineering (ICSE 2007), Future of Software Engineering (FoSE), 2007.

Referncias Bibliogrficas
SOUZA, Jerffeson Teixeira. Metaheursticas
Aplicadas a Problemas Complexos da Engenharia de Software. Minicurso Apresentado no XXIII SBES, Fortaleza, 2009. Techniques for Requirements- Based Test Case Prioritization. I WOES, Salvador, 2010. (SEBASE). Statistics. Disponvel em: http://sebase.org/sbse/publications/. Acesso em 18 fevereiro 2011.

Loiola, Camila et al. Applying Search-Based

Software Engineering By Automated SEarch

Você também pode gostar