Patent BR-112015025513-A2 (BR)
Title: compilação da transformação na interface do usuário para recálculo
Inventor: ANDREW DOUGLAS REDDISH
IPC: G06F9/44
Filed: 2014-04-11
Abstract: pedido tal como depositado (pct) relatório descritivo da patente de invenção para "compilação da transformação na interface do usuário para recálculo". antecedentes [001] o "documento de recálculo" é um documento eletrônico que mostra várias fontes de dados e coletores de dados, e permite uma transformação declarativa entre uma fonte de dados e um coletor de dados. para qualquer conjunto de transformações que interligam várias fontes de dados e coletores de dados, a produção da fonte de dados pode ser consumida pelo coletor de dados, ou a produção da fonte de dados pode estar sujeita a transformações antes de ser consumida pelo coletor de dados. estas diversas transformações são avaliadas, resultando em uma ou mais saídas representadas ao longo do documento de recálculo. [002] o usuário pode adicionar e editar as transformações declarativas sem ter conhecimento aprofundado de codificação. essa edição automaticamente faz com que as transformações sejam recalculadas, causando uma mudança em uma de várias saídas. [003] um exemplo específico de um documento de recálculo é um documento de planilha, que inclui uma grade de células. qualquer célula dada pode incluir uma expressão que é avaliada para produzir um determinado valor que é exibido na célula. a expressão pode referir-se a uma fonte de dados, tais como uma ou mais de outras células ou valores. breve sumário [004] pelo menos algumas concretizações descritas neste documento dizem respeito à compilação de uma cadeia de transformação de uma interface de usuário para recálculo. a cadeia de transformação inclui umas transformações declarativas entre as respectivas fontes de dados e coletores de dados. por exemplo, no contexto de uma folha de cálculo, o coletor de dados pode ser uma célula de uma planilha de cálculo em particular, a transformação pode ser a expressão associada com a célula em particular, e a fonte de dados pode ser uma ou mais células ou outros valores particulares referenciados dentro da expressão. a edição do usuário da interface do usuário para recálculo pode fazer com que uma ou mais das transformações sejam executadas novamente, causando deste modo um recálculo. [005] a compilação envolve a análise da cadeia de transformação da interface do usuário para o recálculo visando dependências para criar um gráfico de dependência das dependências entre entidades. por exemplo, poderiam existir algumas dependências entre entidades, de modo a indicar que, se uma entidade for avaliada, então a outra também deve sê-lo. outras dependências poderiam especificar eventos do usuário dos quais depende a avaliação de uma entidade. o gráfico de dependência é então utilizado para criar um nível inferior das etapas de execução. o gráfico de dependência é ainda provido para um tempo de execução para o programa, de modo que o gráfico de dependência pode estar disponível durante a operação da interface de usuário do recálculo. [006] este suma não se destina a identificar as características chave ou características essenciais da matéria reivindicada, nem está destinado a ser utilizado como uma ajuda para determinar o escopo da matéria reivindicada. breve descrição dos desenhos [007] a fim de descrever a maneira pela qual as vantagens e características acima citadas bem como outras podem ser obtidas, uma descrição mais particular das várias concretizações será apresentada por referência aos desenhos em anexo. entendendo que estes desenhos descrevem apenas concretizações exemplificativas e não são, portanto, para ser considerados como limitantes do escopo da invenção, as concretizações serão descritas e explicados com especificidade adicional e detalhes através da utilização dos desenhos anexos nos quais: [008] a figura 1 ilustra um sistema de computação em abstrato no qual algumas concretizações aqui descritas podem ser utilizadas; [009] a figura 2 ilustra de forma abstrata um exemplo de interface de usuário para recálculo, [010] a figura 3 ilustra um ambiente de compilação exemplificativo que inclui um compilador que acessa a cadeia de transformação e produz o código compilado, bem como uma cadeia de dependência; e [011] a figura 4 ilustra um fluxograma de um método para a compilação de uma cadeia de transformação de uma interface de usuário do recálculo; [012] a figura 5 ilustra um ambiente no qual podem ser empregados os princípios da presente invenção incluindo um quadro de composição acionado por dados que constrói uma composição de visualização que depende de dados de entrada; [013] a figura 6 ilustra um ambiente de pipeline (técnica de implementação de processadores) que representa um exemplo do ambiente da figura 5; [014] a figura 7 ilustra esquematicamente uma concretização da parte de dados do pipeline da figura 6; [015] a figura 8 ilustra esquematicamente uma concretização da parte analítica do pipeline da figura 6; e [016] a figura 9 ilustra esquematicamente uma concretização da parte da visualização do pipeline da figura 6. descrição detalhada [017] pelo menos algumas concretizações descritas neste documento dizem respeito à compilação de uma cadeia de transformação de uma interface de usuário para recálculo. a interface do usuário do recálculo pode ser, por exemplo, um documento do recálculo, tal como uma planilha. no entanto, a interface de usuário para recálculo pode ser qualquer tela eletrônica exibida que inclui um ou mais resultados exibidos de uma cadeia de transformação. a cadeia de transformação inclui uma pluralidade de transformações uma fonte de dados respectiva e o coletor de dados. a edição do usuário da interface do usuário para recálculo pode fazer com que uma ou mais das transformações sejam executadas novamente, causando deste modo um recálculo. [018] a compilação envolve a análise da cadeia de transformação da interface do usuário para o recálculo visando dependências para criar um gráfico de dependência das dependências entre entidades. por exemplo, poderiam existir algumas dependências entre entidades, de modo a indicar que, se uma entidade for avaliada, então a outra também deve sê-lo. o gráfico de dependência é então utilizado para criar um nível inferior das etapas de execução. o gráfico de dependência é ainda provido para um tempo de execução para o programa, de modo que o gráfico de dependência pode estar disponível durante a operação da interface de usuário do recálculo. [019] alguma discussão introdutória de um sistema de computação será descrita com respeito à figura 1. em seguida, a compilação da cadeia de transformação da interface de usuário para recálculo será descrita com respeito às figuras subsequentes. [020] sistemas de computação estão tomando agora cada vez mais uma grande variedade de formas. sistemas de computação podem, por exemplo, ser dispositivos portáteis, artefatos, computadores portáteis, computadores de mesa, computadores centrais, sistemas de computação distribuída, ou mesmo dispositivos que convencionalmente não tenham sido considerados um sistema de computação. nesta descrição e nas reivindicações, o termo "sistema de computação" é definido de modo amplo como incluindo qualquer dispositivo ou sistema (ou a combinação dos mesmos) que inclua pelo menos um processador físico e tangível, e uma memória física e tangível capaz de ter nela instruções executáveis por computador que possam ser executadas pelo processador. a memória pode tomar qualquer forma e pode depender da natureza e a forma do sistema de computação. um sistema de computação pode ser distribuído ao longo de um ambiente de rede e pode incluir múltiplos sistemas de computação constituintes. [021] tal como ilustrado na figura 1, na sua configuração mais básica, um sistema computacional 100 inclui normalmente pelo menos uma unidade de processamento 102 e a memória 104. a memória 104 pode ser uma memória física do sistema, que pode ser volátil, não volátil, ou alguma combinação das duas. o termo "memória" também pode ser utilizado neste documento para designar armazenamento em massa não volátil tal como mídia de armazenamento física. se o sistema de computação for distribuído, o processamento, memória e/ou capacidade de armazenamento também podem ser distribuídos. tal como aqui utilizado, o termo "módulo executável" ou "componente executável" pode referir-se a objetos de software, rotas, ou métodos que podem ser executados no sistema de computação. os diferentes componentes, módulos, motores e serviços descritos neste documento podem ser implementados como objetos ou processos que são executados no sistema de computação (por exemplo, como processos separados). [022] na descrição que se segue, são descritas concretizações com referência a atos que são executados por um ou mais sistemas de computação. se tais atos forem implementados em software, um ou mais processadores do sistema de computação associado que realiza o ato dirige a operação do sistema de computação em resposta a ter executado instruções executáveis por computador. por exemplo, tais instruções executáveis por computador podem ser realizadas em um ou mais mídias legíveis por computador que formam um produto de programa de computador. um exemplo de tal operação envolve a manipulação de dados. as instruções executáveis por computador (e os dados manipulados) podem ser armazenadas na memória 104 do sistema de computação 100. o sistema de computação 100 também pode conter canais de comunicação 108 que permitem que o sistema de computação 100 se comunique com outros processadores de mensagem através de, por exemplo, uma rede 110. o sistema de computação 100 também inclui o monitor 112, o qual pode ser usado para exibir representações visuais para um usuário. [023] as concretizações aqui descritas podem compreender ou utilizar um computador para fins especiais ou de uso geral, incluindo hardware de computador, tal como, por exemplo, um ou mais processadores e memória do sistema, como será discutido em maior detalhe abaixo. as concretizações aqui descritas incluem também mídias físicas e outras legíveis por computador, para transportar ou guardar instruções executáveis por computador e/ou estruturas de dados. tais mídias legíveis por computador podem ser quaisquer mídias disponíveis que possam ser acessados por um sistema de computador de propósito geral ou para fins especiais. mídias legíveis por computador que armazenam instruções executáveis por computador são mídias de armazenamento físico. mídias legíveis por computador que transportam instruções executáveis por computador são mídias de transmissão. assim, a título de exemplo, e não como limitação, as concretizações da invenção podem compreender pelo menos dois tipos nitidamente diferentes de mídias legíveis por computador: as mídias de armazenamento por computador e mídias de transmissão. [024] mídia de armazenamento por computador inclui ram, rom, eeprom, cd-rom ou outro armazenamento em disco óptico, disco magnético ou outros dispositivos magnéticos de armazenamento, ou qualquer outra mídia tangível que possa ser usada para armazenar os meios de código de programa desejados sob a forma de instruções de computador executáveis ou estruturas de dados e que podem ser acessados por um computador de propósito geral ou de propósito especial. [025] uma "rede" é definida como uma ou mais ligações de dados que permitem o transporte de dados eletrônicos entre sistemas de computador e/ou módulos e/ou outros dispositivos eletrônicos. quando a informação é transferida ou fornecida através de uma rede ou outra conexão de comunicações (quer fisicamente conectada (cabeada), sem fio, ou uma combinação de cabeada ou sem fio) a um computador, o computador corretamente vê a conexão como um meio de transmissão. mídia de transmissão pode incluir uma rede e/ou ligações de dados que podem ser usadas para transportar ou meios de código de programa desejados na forma de instruções executáveis por computador ou estruturas de dados e que podem ser acessadas por um computador de propósito geral ou de propósito especial. combinações das opções acima também devem ser incluídas dentro do escopo das mídias legíveis por computador. [026] além disso, ao atingir vários componentes do sistema de computador, os meios de código de programa na forma de instruções executáveis por computador ou estruturas de dados podem ser transferidos automaticamente de meios de transmissão para a mídia de armazenamento do computador (ou vice-versa). por exemplo, as instruções executáveis por computador ou estruturas de dados recebidas através de uma rede ou ligação de dados podem ser colocadas temporariamente na ram dentro de um módulo de interface de rede (por exemplo, um "nic"), e depois, eventualmente transferidas para a ram do sistema de computador e/ou para uma mídia de armazenamento por computador menos volátil em um sistema de computador. assim, deve ser entendido que a mídia de armazenamento por computador pode ser incluída nos componentes do sistema de computador que também (ou mesmo principalmente) utilizam mídias de transmissão. [027] instruções executáveis por computador compreendem, por exemplo, instruções e dados que, quando executadas em um processador, fazem um computador de uso geral, um computador de propósito especial, ou dispositivo de processamento de propósito especial executar uma determinada função ou grupo de funções. as instruções executáveis computador podem ser, por exemplo, binários, instruções de formato intermediário, tais como a linguagem assembly, ou mesmo código fonte. embora o assunto tenha sido descrito na linguagem específica para as características estruturais e/ou atos metodológicos, deve ser entendido que o assunto definido nas reivindicações anexas não está necessariamente limitado às características específicas ou atos descritos acima. em vez disso, as características e os atos descritos são divulgados como exemplos de formas de implementação das reivindicações. [028] aqueles peritos na técnica apreciarão que a invenção pode ser praticada em ambientes de computação em rede com muitos tipos de configurações de sistema de computador, incluindo computadores pessoais, computadores de mesa, computadores portáteis, processadores de mensagens, dispositivos portáteis, sistemas de multiprocessador, produtos eletrônicos de consumo programáveis ou baseados em microprocessador, pc's, minicomputadores, computadores de grande porte, telefones celulares, pda's, "pagers", roteadores, chaves, e similares. a invenção também pode ser praticada em ambientes de sistemas distribuídos, onde sistemas de computador locais e remotos, os quais estão ligados (seja por ligações de dados conectadas fisicamente, ligações de dados sem fio, ou por uma combinação de ligações de dados com fio e sem fio) através de uma rede, ambas executam tarefas. em um ambiente de computação distribuída, módulos de programa podem estar localizados tanto em dispositivos de memória de armazenamento locais e remotos. [029] nesta descrição e nas reivindicações, uma "interface de usuário para recálculo" é uma interface com a qual um usuário pode interagir e que ocorre em um ambiente em que existe uma ou mais fontes de dados e um ou mais coletores de dados. além disso, há um conjunto de transformações que podem ser cada uma declarativamente definidas entre uma ou mais fontes de dados e um coletor de dados. por exemplo, a saída de uma fonte de dados é introduzida na transformação, e o resultado da transformação é, então, fornecido ao coletor de dados, resultando potencialmente em algum tipo de mudança de visualização para o usuário. [030] as transformações são "declarativas" no sentido que um usuário sem o conhecimento de codificação específico pode escrever as declarações que definem a transformação. à medida que a transformação é definida declarativamente, um usuário pode mudar a transformação declarativa. em resposta, um recálculo é realizado, resultando talvez em dados diferentes sendo fornecidos aos coletores de dados. [031] um exemplo clássico de uma interface de usuário para recálculo é um documento de planilha de cálculo. um documento de planilha de cálculo inclui uma grade de células. inicialmente, as células estão vazias e, portanto, qualquer célula do programa de planilha de cálculo tem o potencial de ser uma fonte de dados ou um coletor de dados, dependendo do significado e contexto de expressões declarativas inseridas por um usuário. por exemplo, um usuário poderia selecionar uma célula dada, e digitar uma expressão nessa célula. a expressão poderia ser tão simples como um valor escalar expresso a ser atribuído a essa célula. essa célula pode depois ser usada como uma fonte de dados. alternativamente, a expressão para uma determinada célula poderia estar na forma de uma equação na qual os valores de entrada são tomadas a partir de uma ou mais outras células. nesse caso, a célula dada é um coletor de dados que mostra o resultado da transformação. no entanto, durante a criação contínua, a célula pode ser utilizada como um coletor de dados para ainda outras transformações declarativamente feitas pelo autor. [032] o autor de um documento de planilha não precisa ser um especialista em código imperativo. o autor está simplesmente fazendo declarações que definem uma transformação, e selecionando coletores de dados e fontes de dados correspondentes. as figuras 5 a 9, aqui descritas a seguir fornecem um ambiente de criação declarativo mais generalizado no qual é descrita uma interface de usuário para recálculo mais generalizada. nesse ambiente, posteriormente descrito, controles visualizados podem servir ao mesmo tempo como fontes de dados e coletores de dados. além disso, as transformações declarativas podem ser criadas mais intuitivamente por manipulações simples de tais controles. [033] a figura 2 ilustra de modo abstrato interface de usuário exemplo de recálculo 200, a qual é um exemplo específico fornecido para explicar os princípios mais amplos aqui descritos. a interface de usuário para recálculo 200 é apenas um exemplo como os princípios descritos neste documento podem ser aplicados a qualquer interface de usuário para recálculo para criar uma incontável variedade de interfaces de usuário para recálculo para uma incontável variedade de aplicações. [034] a interface de usuário para recálculo 200 inclui várias transformações declarativas de 211 até a 215. o círculo tracejado ao redor de cada uma das setas representando as transformações de 211 até 216 simboliza que as transformações são ambas na forma declarativa. [035] neste exemplo específico da figura 2, a transformação 211 inclui a respectiva fonte de dados 201 e o coletor de dados 202. note-se que um coletor de dados para uma transformação também pode ser uma fonte de dados para outra transformação. por exemplo, receptor de dados 202 para transformação 211 serve também como uma fonte de dados para a transformação 212. além disso, uma transformação pode ter múltiplas fontes de dados. assim, a cadeia de transformação pode ser feita hierárquica, e, portanto, bastante complexa. por exemplo, a transformação 212 inclui fonte de dados 202 e o coletor de dados 203. o coletor de dados 203 inclui duas fontes de dados; ou seja, a fonte de dados 202 para transformação 212, e a fonte de dados 205 para transformação 214. dito isto, talvez uma única transformação conduza as duas fontes de dados 202 e 205 para dentro do coletor de dados 203. a transformação 213 inclui uma fonte de dados 204 e um coletor de dados 205. [036] se a interface de usuário para recálculo for um documento de planilha de cálculo, por exemplo, as várias fontes de dados/coletores 201 até 205 poderiam ser células da planilha de cálculo, em cujo caso as transformações representam a expressão que estaria associada com cada coletor de dados. a saída de cada expressão é exibida dentro da célula. assim, no caso de uma planilha de cálculo. as fontes de dados/coletores podem ser controles visualizados complexos que têm tanto parâmetros de entrada incluídos como parâmetros de saída da cadeia de transformação. por exemplo, na figura 2, há uma transformação adicional declarativa 215 que conduz da fonte de dados 205 para dentro do coletor de dados 201. assim, a fonte de dados/coletor 201 poderiam visualizar a informação que representa uma saída de transformação 215, bem como fornecem mais dados a outros coletores de dados. [037] interfaces de usuário para recálculo não precisam ter controles de visualização. um exemplo disto é uma interface de usuário para recálculo destinada a realizar um cálculo com base em transformação, consumindo dados de origem e atualizando dados de coletor, sem nenhuma informação exibida para o usuário sobre o cálculo no caso normal. por exemplo, a interface de usuário recálculo poderia apoiar um cálculo de fundo. um segundo exemplo é uma interface de usuário para recálculo que tem controles de saída que operam atuadores externos, tais como as válvulas no exemplo de controle do processo. tais controles são como controles de exibição em que seus estados são controlados por resultados do cálculo de transformação e em entradas de sinal. no entanto, aqui, a saída é um sinal de controle para um dispositivo, em vez de uma visualização para um monitor. considere-se, por exemplo, uma interface de usuário para recálculo para controlar um robô. essa interface de usuário para recálculo poderia ter regras para ações e comportamento do robô que dependem de entradas de sensores de robô como servo posições e velocidades, medições ultrassônicas para determinação de um intervalo, e assim por diante. ou considere um aplicativo de controle de processo baseado em uma interface de usuário para recálculo que captura sinais dos sensores do equipamento como as posições da válvula, caudais de fluido, e assim por diante. [038] a figura 3 ilustra um ambiente de compilação exemplificativo 300, que inclui um compilador 310 que acessa a cadeia de transformação 301. um exemplo da cadeia transformação 301 é a cadeia de transformação 200 da figura 2. a figura 4 ilustra um fluxograma de um método 400 para a compilação uma cadeia de transformação de uma interface de usuário para recálculo. o método 400 pode ser realizado pelo compilador 310 da figura 3. em uma concretização, o método 400 pode ser realizado pelo sistema de computação 100 em resposta ao(s) processador(es) 102 que realiza(m) as instruções executáveis por computador incorporadas em uma ou mais mídias de armazenamento legíveis por computador. [039] o método 400 inclui a análise de uma cadeia de transformação da interface do usuário de recálculo para dependências (ato 401). por exemplo, consultando a figura 2, o compilador 300 poderia analisar cada uma das transformações 211 até 215. as transformações são declarativas e, portanto, as dependências podem ser extraídas mais facilmente do que poderiam se as transformações fossem expressas usando uma linguagem de computador imperativa. [040] com base na análise, um gráfico de dependência é criado (ato 402) entre entidades referenciadas nas transformações. essencialmente, as dependências têm uma entidade de origem que representa um evento, e uma entidade alvos que representa que a avaliação dessa entidade alvo depende do evento. um exemplo do evento poderia ser um evento de usuário no qual o usuário interage de certa maneira, com a interface de usuário para recálculo. como outro exemplo, o caso poderia ser um evento inter-entidade no qual, se a entidade de origem for avaliada, então a entidade alvo da dependência também deve ser avaliada. [041] o compilador então cria etapas de execução de nível inferior com base no gráfico de dependência (ato 403). as etapas de execução de nível inferior poderiam ser, por exemplo, o código de linguagem imperativa. código de linguagem imperativa é adaptado para responder a detectar eventos, fazer referência a um gráfico de eventos para determinar uma função a executar e executar essa função. por conseguinte, cada uma das dependências no gráfico de dependência pode ser reduzida a uma função. as dependências no gráfico de dependência em si podem ser fornecidas ao tempo de execução (ato 404). o código de linguagem imperativa pode ser, por exemplo, uma linguagem de script (linguagem de comandos), como javascript. no entanto, os princípios descritos no presente documento não estão limitados ao código da linguagem imperativa sendo de qualquer linguagem em particular. [042] como um exemplo, a figura 3 ilustra que o compilador 310 também gera um código de inferior 311. tal código de nível inferior 311 inclui uma compilação de cada uma das transformações na cadeia de transformação. por exemplo, o código de nível inferior 311 é ilustrado como incluindo elemento 321 representando a compilação de cada uma das transformações na cadeia de transformação. no contexto da figura 2, o elemento 321 incluiria uma compilação de cada uma das transformações 211 até 215. o código de nível inferior 311 também inclui uma variedade de funções 322. uma função é gerada para cada dependência no gráfico de dependência. as funções podem ser funções de linguagem imperativa. [043] quando o tempo de execução da linguagem imperativa detecta um evento que está listado no gráfico de dependência, a função correspondente dentro das funções compiladas 322 também é executada. assim, com todas as transformações estando devidamente compiladas, e com cada uma das dependências em eventos particulares sendo impostas por funções dedicadas, a interface de usuário para recálculo declarativo está corretamente representada como um código de linguagem imperativa. [044] por conseguinte, um mecanismo eficaz tem sido descrito para a compilação de uma interface de recálculo declarativa. além disso, o tempo de execução é fornecido com um gráfico de dependência, em vez de um intérprete mais extenso. [045] será agora descrito com respeito às figuras 5 a 9 um exemplo específico de um pipeline de criação para permitir aos não programadores criar programas que têm comportamentos complexos utilizando uma interface de recálculo. a figura 5 ilustra um ambiente de composição visual 500 que pode ser usado para construir uma composição visual interativa na forma de uma interface de usuário para recálculo. a construção da interface de usuário de recálculo é realizada utilizando análise baseada em dados e visualização dos resultados analíticos. o ambiente 500 inclui uma estrutura de composição 510 que executa a lógica que é realizada independente do domínio do problema da composição de visualização 530. por exemplo, o mesmo quadro de composição 510 pode ser usado para compor composições de visão interativa para os planos da cidade, modelos moleculares, layouts de prateleira de supermercado, o desempenho da máquina ou análise de montagem, ou outras representações de domínio específico. [046] contudo, o quadro de composição 510 utiliza os dados específicos de domínios 520, para construir a composição visual real 530 que é específica para o domínio. por conseguinte, o mesmo quadro de composição 510 pode ser usado para interfaces de usuário para recálculo para qualquer número de domínios diferentes, alterando os dados específicos do domínio 520, ao invés de ter que recodificar o quadro de composição 510 em si. assim, o quadro de composição 510 do pipeline 500 pode aplicar-se a um número potencialmente ilimitado de domínios de problemas, ou, pelo menos, para uma ampla variedade de domínios de problemas, alterando dados, em vez de recodificar e re-compilar. a composição de visualização 530 pode então ser fornecida como instruções para um módulo apropriado de síntese de imagens em 2-d ou 3-d. a arquitetura aqui descrita também permite a incorporação adequada dos modelos composição de visualização pré-existentes como blocos de construção para novos modelos de composição de visualização. em uma concretização, várias composições de visão podem ser incluídas em uma composição de visualização integrada para permitir a fácil comparação entre duas soluções possíveis para um modelo. [047] a figura 6 ilustra uma arquitetura de exemplo do quadro de composição 510 na forma de um ambiente de pipeline 600. o ambiente de pipeline 600 inclui, entre outras coisas, o pipeline em si 601. o pipeline 601 inclui uma parte de dados 610, uma parte analítica 620, e uma parte de visualização 630, cada uma delas será descrita em detalhe com relação às figuras 7 a 9 subsequentes, respectivamente, e na descrição associada. por enquanto, a nível geral, a parte de dados 610 do pipeline 601 pode aceitar uma variedade de diferentes tipos de dados e apresenta esses dados em uma forma canônica à parte analítica 620 do pipeline 601. a parte analítica 620 liga os dados a vários parâmetros do modelo, e resolve as incógnitas nos parâmetros do modelo usando análise do modelo. os vários valores de parâmetros são, então, fornecidos à parte visualização 630, que constrói a visão composta usando esses valores se os parâmetros do modelo. os diversos valores de parâmetros são então fornecidos à parte de visualização 63