Tecnologia

Por excelência, a maioria das ferramentas de software de Sistemas de Apoio à Decisão são computacionalmente intensivas, devido à quantidade de variáveis a ser analisada. Por esta razão, a SmartDecision projeta cuidadosamente estes artefatos computacionais, adotando uma infra-estrutura de software e hardware, que além de possuir as características típicas de estabilidade, modularidade, escalabilidade e economicidade, maximize seu desempenho computacional fornecendo rapidamente os resultados da análise.

Para atingir os objetivos típicos de estabilidade, modularidade, escalabilidade e economicidade, a SmartDecision recomenda para seus clientes projetar o Sistema de Apoio à Decisão seguindo a Arquitetura de Software Orientada a Serviços. Esta infra-estrutura de software possui como princípio fundamental a disponibilização das funcionalidades da aplicação na forma de “serviços”. Freqüentemente, estes serviços são organizados através de um "barramento de serviços", que disponibiliza interfaces de comunicação acessíveis através de serviços web. Os benefícios de adotar esta infra-estrutura de software incluem a preservação dos investimentos utilizados no desenvolvimento do sistema (economicidade), uma vez que esta arquitetura permite a evolução do sistema (escalabilidade), substituindo-se serviços existentes por outros equivalentes (modularidade) sem impactar o funcionamento do sistema (estabilidade). Por outro lado, a definição das funcionalidades de cada serviço que compõe o Sistema de Apoio à Decisão depende intimamente das características do problema de decisão. Em teoria, qualquer problema de decisão poderia ser dividido em pequenos subproblemas de decisão, de tal forma que cada serviço possua como funcionalidade a solução de um subproblema de decisão. Em termos computacionais, estas funcionalidades podem ser implementadas através da agregação e/ou composição de componentes de software que encapsulam, em última instância, as metodologias de apoio à decisão, utilizando o paradigma da programação orientada a objetos. Como exemplos de componentes de software que encapsulam metodologias de apoio à decisão, podem ser listados: componentes de geração de números aleatórios, de distribuições de probabilidade, de processos estocásticos, de simulação de Monte Carlo, de regressão linear, de interpolação de funções, de previsão de séries temporais, de análise estatística de dados, de algoritmos de otimização, etc.

Para atingir o objetivo de desempenho computacional, a SmartDecision recomenda implementar a infra-estrutura de software utilizando as linguagens multi-plataforma C/C++ e Java. A linguagem C/C++ é recomendada como sendo a linguagem ideal para implementar o “barramento de serviços”, que por construção executa cálculos numéricos pesados. Já a linguagem Java é recomendada como sendo a linguagem ideal para implementar as comunicações e a orquestração dos serviços. O benefício de adotar estas linguagens multi-plataforma é a agregação de valor econômico ao Sistema de Apoio à Decisão, permitindo sua portabilidade e implantação em distintos sistemas operacionais (Windows, Linux, Unix, Mac, etc.) ou hardwares específicos de processamento paralelo e/ou distribuído, que podem melhorar ainda mais o desempenho computacional.

A SmartDecision oferece a seus clientes a flexibilidade de desenvolver os Sistemas de Apoio à Decisão seguindo outras infra-estruturas de software e hardware ou outras linguagens de programação de acordo com as necessidades dos clientes, como por exemplo a infra-estrutura Microsoft .Net. Alem disso, para a solução de problemas complexos de tomada de decisão, a SmartDecision oferece a seus clientes a possibilidade de desenvolver protótipos de Sistemas de Apoio à Decisão, para avaliar o modelo e delimitar o escopo do problema. Neste caso, a SmartDecision recomenda o uso de ferramentas como Excel e Matlab.