Assistência Inteligente ao Processo de Engenharia de Software - Santander, Victor Francisco Araya (1997)
É crescente o número de sistemas de software complexos e críticos. As técnicas de melhoria e suporte ao processo de software tem sido reconhecidas como importantes meios de aumentar a qualidade de software, bem como de reduzir os custos e esforços de desenvolvimento. Neste contexto, um assistente inteligente pode apoiar a execução de processos de software baseado nas técnicas da inteligência artificial. Este trabalho apresenta uma aplicação das técnicas de planejamento para apoiar o processo de desenvolvimento de software baseado no método FUSION. O trabalho mostra a aplicação das técnicas de planejamento em processos práticos e de escala real em contraste aos pequenos exemplos normalmente encontrados na literatura. A abordagem proposta consiste de uma biblioteca de operadores mais dois algoritmos para reconhecer e montar planos. A maioria dos operadores foram refinados até o terceiro ou quarto nível de modo a encontrar um nível de descrição adequado para os desenvolvedores. Um protótipo de um assistente inteligente foi desenvolvido e simulado com o processo de desenvolver a aplicação clássica ATM. Os resultados enfatizam as vantagens de formalizar ações, heurísticas e regras de consistência em métodos de desenvolvimento de software. A formalização desses aspectos aumenta a produtividade de desenvolvedores inexperientes pois eles podem reutilizar conhecimentos que estão disponíveis apenas nas mentes de desenvolvedores experientes. Além disso, vantagens da utilização da abordagem declarativa na representação de processos reais são indicadas. Essas vantagens incluem a flexibilidade na definição e modificação da ordem dos processos. As dificuldades na definição da biblioteca de operadores são apontadas.