Simio Whitepapers

Como os objetos Simio se diferenciam de outras ferramentas de modelagem orientada a objetos

Written by C. Dennis Pegden, PhD | 26/mar/2026 19:03:04
Baixar a versão em PDF

O Simio torna a modelagem muito mais fácil e rápida, fornecendo um novo paradigma baseado em objetos que muda radicalmente a forma como os objetos são criados e usados. O objetivo deste documento é descrever como a estrutura de modelagem orientada a objetos do Simio difere de outras ferramentas de modelagem orientada a objetos.

A ideia geral de modelagem orientada a objetos não é nova - na verdade, a primeira ferramenta de modelagem orientada a objetos - Simula - foi introduzida há mais de 50 anos e forneceu as ideias centrais em uso atualmente nas ferramentas de modelagem orientada a objetos. Atualmente, há várias ferramentas de modelagem orientada a objetos no mercado. Ao usar essas ferramentas, o usuário seleciona objetos de uma biblioteca e os coloca em um modelo. Um consenso geral de muitos usuários dessas ferramentas é que elas funcionam bem em modelos simples, mas para aplicativos complexos são difíceis de usar porque não têm flexibilidade (os usuários não podem adicionar ou modificar objetos) ou obtêm flexibilidade exigindo que o usuário escreva códigos complexos em uma linguagem de programação como C++ ou Java. Qualquer uma das opções é uma barreira para o usuário em termos de modelagem rápida de sistemas complexos. Essa tem sido a principal restrição para a ampla aceitação das ferramentas de modelagem orientadas a objetos.

O Simio difere de outras ferramentas de modelagem orientadas a objetos porque os objetos do Simio são baseados em processos e não em códigos. Um objeto Simio é definido pela criação de um conjunto de fluxos de processos gráficos que descrevem o comportamento do objeto. Um processo é um fluxograma que descreve uma sequência de atividades e decisões tomadas pelo objeto. Um processo pode se estender no tempo e ser restringido por recursos limitados. Um exemplo simples de um processo que é familiar a muitos usuários de ferramentas de modelagem orientadas a processos é: APREENSÃO-ATRASO-LIBERAÇÃO. Nesse processo, o objeto espera para capturar um recurso, atrasa por um tempo de atividade e, em seguida, libera o recurso. Observe que essa atividade abrange o tempo e o tempo para executar o processo depende da disponibilidade do recurso e do tempo de atraso especificado.

Em outras ferramentas, os objetos são baseados em código e implementados em uma linguagem de programação. Se a ferramenta oferecer suporte a objetos definidos pelo usuário, o usuário deverá implementar todos os novos objetos na mesma linguagem de programação. O usuário deve dominar os conceitos básicos de orientação a objetos (por exemplo, encapsulamento, herança, polimorfismo, etc.) e também dominar a linguagem de programação necessária. Como resultado, a criação de um novo objeto requer um programador especializado em uma linguagem de programação específica. Os objetos baseados em processos do Simio têm várias vantagens importantes em relação aos objetos baseados em código de outras ferramentas. A primeira e mais óbvia vantagem é que os objetos são muito mais fáceis de criar, pois não exigem habilidades de programação em uma linguagem específica. Além disso, como a lógica de um objeto Simio é definida por fluxos de processos gráficos e é visível para o usuário, eles são mais fáceis de entender e modificar. Porém, o mais importante é que o comportamento do objeto no Simio é definido usando construções de modelagem de processos de alto nível que abrangem o tempo. Isso simplifica muito a tarefa de criar objetos.

Na maioria das ferramentas de modelagem orientadas a objetos, o usuário pode embelezar os objetos fornecidos com lógica personalizada para um aplicativo específico. Por exemplo, pode ser necessário contar o número de vezes que um cliente conclui o serviço em um servidor específico e, em seguida, usar essa contagem de alguma forma na lógica do modelo. Esse tipo de lógica adicionada pelo usuário é muito importante para poder modelar com flexibilidade uma ampla variedade de sistemas. Normalmente, as ferramentas oferecem uma maneira de adicionar essa lógica em pontos predefinidos nos objetos fornecidos em sua biblioteca padrão.

Os objetos baseados em processos do Simio têm algumas vantagens exclusivas e importantes em relação aos objetos baseados em código quando se trata de adicionar lógica personalizada a objetos existentes. Um objeto baseado em código terá "ganchos" lógicos para fazer chamadas para uma função fornecida pelo usuário que é executada em pontos selecionados do objeto. O usuário deve codificar essa função na linguagem de programação especificada (por exemplo, C++ ou Java). Em alguns casos, uma ferramenta de script simplificada é fornecida como alternativa para fazer coisas simples, como atribuições sem codificação, mas a flexibilidade e o poder das ferramentas de script são muito limitados. Em ambos os casos, no entanto, a lógica inserida deve ser totalmente executada naquele ponto específico do tempo simulado. A lógica não pode atrasar por um tempo especificado, esperar que um recurso fique disponível ou seja realocado, esperar que um tanque atinja um nível de enchimento especificado ou executar outros tipos de lógica complexa que abranja o tempo simulado. Por outro lado, os objetos baseados em processos no Simio oferecem um recurso chamado processos "add-on" que são executados em pontos lógicos específicos do objeto. Esses são os equivalentes às chamadas de função em objetos baseados em código, mas são muito mais eficientes, pois têm todo o poder dos processos do Simio e podem abranger o tempo conforme necessário. Por exemplo, há um processo complementar para o objeto Server no Simio que é executado sempre que o Server falha. Esse processo poderia ser criado pelo usuário para incluir a lógica de esperar para chamar o reparador e também esperar que o reparador chegue ao servidor antes de devolver o controle ao objeto. Esse é um recurso extremamente poderoso.

Em resumo, os objetos baseados em processos do Simio oferecem várias vantagens importantes em relação aos objetos baseados em código mais tradicionais encontrados em outras ferramentas de modelagem orientadas a objetos. Essas vantagens incluem tanto a facilidade de uso, eliminando a necessidade de ser um programador especialista, quanto a flexibilidade de modelagem, permitindo que os objetos sejam definidos e embelezados usando processos que abrangem o tempo, em vez de funções codificadas que devem ser executadas sem um avanço de tempo simulado. Em resumo, os objetos baseados em processos do Simio são mais simples e mais avançados do que os objetos baseados em código de outras ferramentas de modelagem.

Baixar a versão em PDF