engenharia de software para sistemas de apoio a decisão

16
1 Engenharia de Software para Sistemas de Apoio a Decisão Thiago F. Noronha

Upload: hermione-woodard

Post on 31-Dec-2015

43 views

Category:

Documents


0 download

DESCRIPTION

Engenharia de Software para Sistemas de Apoio a Decisão. Thiago F. Noronha. 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: Sport scheduling Car sequencing Network design Bin packing - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Engenharia de Software para  Sistemas de Apoio a Decisão

1

Engenharia de Software para Sistemas de Apoio a Decisão

Thiago F. Noronha

Page 2: Engenharia de Software para  Sistemas de Apoio a Decisão

2

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:– 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.

Page 3: Engenharia de Software para  Sistemas de Apoio a Decisão

3

Introdução

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.

Page 4: Engenharia de Software para  Sistemas de Apoio a Decisão

4

Introdução

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.

Page 5: Engenharia de Software para  Sistemas de Apoio a Decisão

5

Projeto FutMax (www.futmax.org)

Ao longo do campeonato o site publica informações sobre os times, tais como:

– 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.

Page 6: Engenharia de Software para  Sistemas de Apoio a Decisão

6

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

– ser campeão.– se classificar para a T.L.– não ser rebaixado.

Números de pontos para ter chance de– ser campeão.– se classificar para a T.L.– não ser rebaixado.

Projeto FutMax (www.futmax.org)

Page 7: Engenharia de Software para  Sistemas de Apoio a Decisão

7

Projeto FutMax (www.futmax.org)

Objetivo: Desenvolver um sistema para a atualização do site do projeto FutMax.– 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.

Page 8: Engenharia de Software para  Sistemas de Apoio a Decisão

8

ValidatorSolverPublisher

Collectors

Internet

Projeto FutMax (www.futmax.org)

Data Input

Solver

Solver

Page 9: Engenharia de Software para  Sistemas de Apoio a Decisão

9

Projeto FutMax (www.futmax.org)

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.

Page 10: Engenharia de Software para  Sistemas de Apoio a Decisão

10

Trabalhos futuros

SAD necessitam de um alto investimento em infra-estrutura. – 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”.

Page 11: Engenharia de Software para  Sistemas de Apoio a Decisão

11

Trabalhos futuros

Cluster

Servidor de Otimização

Desktop

Page 12: Engenharia de Software para  Sistemas de Apoio a Decisão

12

Trabalhos futuros

Cluster

DesktopDesktop Desktop

Servidor de Otimização

Page 13: Engenharia de Software para  Sistemas de Apoio a Decisão

13

Trabalhos futuros

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.

Page 14: Engenharia de Software para  Sistemas de Apoio a Decisão

14

Fim

Page 15: Engenharia de Software para  Sistemas de Apoio a Decisão

15

Diagrama de casos de uso

Page 16: Engenharia de Software para  Sistemas de Apoio a Decisão

16

Diagram de classes