Engenharia de Software para Sistemas de Apoio a Decisão Thiago F. Noronha 1 Introdução Sistemas de apoio à decisão (SAD) são sistemas que ajudam a decidir qual a melhor solução para um determinado problema. Por exemplo: – – – – 2 Sport scheduling Car sequencing Network design Bin packing Nestes exemplos (e em muitos outros), o processo de decisão pode ser expressado por um modelo matemático. Introdução 3 Em geral, os modelos matemáticos consistem em uma ou mais funções de otimização e um conjunto de restrições. Estes modelos podem ter várias soluções com custos diferentes (valor de função de otimização). Busca-se a melhor dentre todas as soluções do modelo (solução ótima). Entretanto, caso a solução ótima não possa ser atingida, a melhor solução encontrada é devolvida. Introdução 4 A grande maioria dos modelos matemáticos referentes a problemas reais são muito difíceis de resolver. – Eles podem ter milhares ou milhões de variáveis de decisão. – O número de soluções possíveis cresce exponencialmente em função do número de variáveis; – A quantidade de memória necessária para resolver os modelos também cresce exponencialmente em função do número de variáveis. SAD diferem de outros sistemas porque eles focalizam o processamento e a visualização dos dados em vez do armazenamento e recuperação. Projeto FutMax (www.futmax.org) Ao longo do campeonato o site publica informações sobre os times, tais como: – – – – – – – – – – – – 5 O time é matematicamente o campeão. O time só depende de seus resultados para ser campeão. O time depende de resultados de outros times para ser campeão. O time não pode mais ser campeão. O time está classificado para a T.L.. O time ainda não está classificadoT.L., mas só depende de seus resultados. O time não está classificado para T.L. e depende de resultados de outros times. O time está desclassificado para a T.L.. O time está não pode mais ser rebaixado. O time só depende de seus resultados para não ser rebaixado. O time depende de resultados de outros times para não ser rebaixado. O time está matematicamente rebaixado. Projeto FutMax (www.futmax.org) Estas informações são calculadas em função do: Número atual de pontos do time. Número de jogos realizados. Números de pontos para – – – Números de pontos para ter chance de – – – 6 ser campeão. se classificar para a T.L. não ser rebaixado. ser campeão. se classificar para a T.L. não ser rebaixado. Projeto FutMax (www.futmax.org) Objetivo: Desenvolver um sistema para a atualização do site do projeto FutMax. – – – – – 7 A fonte dos dados não conhece o sistema. O estado do sistema pode mudar a qualquer hora do dia e a atualização do sistema deve ser imediata. O processamento dos dados envolve a resolução de vários modelos matemáticos e consequentemente envolve um alto custo computacional. No entanto, o processamento dos dados pode ser distribuído em vários computadores, já que os modelos podem ser resolvidos independentemente. A aplicação não justifica o custo de um operador, portanto o sistema dever ser o mais autônomo possível. Projeto FutMax (www.futmax.org) Data Input Collectors Internet Solver Publisher Solver Solver 8 Validator Projeto FutMax (www.futmax.org) 9 Ele foi modelado utilizando o paradigma de engenharia de software orientados a agentes e implementado na linguagem Java. A modelagem por agentes, permitiu a criação de um sistema desacoplado e extensível. A colaboração entre os agentes mostrou-se bastante benéfica, permitido que uma operação bastante complexa fosse resolvida de forma bastante simples. O sistema vem sendo utilizado desde 2004. Trabalhos futuros SAD necessitam de um alto investimento em infra-estrutura. – – – 10 Um computador muito rápido. Muita memória RAM. Uma licença do software que resolve os modelos matemáticos (US$ 4.000,00). Em muitas aplicações, o processo de decisão é executado esporadicamente, portanto a infra-estrutura é subutilizada. Nós propomos uma arquitetura distribuída na qual o processando dos dados é realizado por um “WEB service”. Trabalhos futuros Servidor de Otimização Cluster 11 Desktop Trabalhos futuros Servidor de Otimização Cluster 12 Desktop Desktop Desktop Trabalhos futuros 13 Esta abordagem permite uma diminuição no custo total do sistema. Um maior número de aplicações tornam-se economicamente viáveis. O sistema torna-se mais portátil, podendo ser executado em qualquer computador conectado à Internet. A empresa pode ganhar não só vendendo o SAD mas também o poder de processamento. Fim 14 Diagrama de casos de uso 15 Diagram de classes 16