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
Download

Um framework para desenvolvimento de aplicações de otimização