Quem já jogou o popular Civilization II, no qual você cria e desenvolve um império, deve se lembrar de uma funcionalidade bem legal: invocar um conselho de ministros que lhe ajudavam a governar nos mais variados aspectos: militar, científico, relacionamento exterior, etc. Um screenshot desse "High Council" segue abaixo:
fonte: http://apolyton.net/civ2
E o que isso tem a ver com desenvolvimento de software? Bom, inspirado no "High Council" do Civilization, imaginei que um programador poderia, durante o desenvolvimento de sua aplicação no VS.NET, invocar conselheiros para opinar sobre diferentes aspectos de código: facilidade de entendimento, testabilidade, etc. Os conselheiros dariam suas opiniões tendo como base o resultado de métricas extraídas do código-fonte (número de linhas de código, acoplamento entre classes, etc.). Cada conselheiro seria implementado como um agente inteligente e eles precisariam negociar entre si o conjunto de dicas finais que eles estariam exibindo ao programador, pois dois agentes diferentes, cada um focado em um atributo de qualidade de código distinto, podem apresentar dicas conflitantes.
Dessa loucura saiu um artigo de nome bem pomposo, Supporting C# Source-Code Quality Attributes through a Metrics Analysis-based Multi-Agent System hosted on Visual Studio .NET, que tive a felicidade de ser aceito para a conferência IVNET06 (2nd Intl. Conf. on Innovative Views of .NET Technologies), junto com outro artigo baseado no meu mestrado, chamado Extending Visual Studio .NET as a Software Factory for Computer Games Development in the .NET Platform , cujo tema já foi explorado em posts anteriores desse mesmo blog. Um screenshot dos agentes conselheiros em versão beta segue abaixo. Embora a aplicação esteja muito longe de se tornar um produto de mercado na prática, a experiência foi muito divertida!
<>
Os interessados ou simplesmente curiosos podem baixar os artigos de minha página pessoal no Centro de Informática da UFPE, na subseção curriculum vitae\publications.
[]s
-- AFurtado