18 resultados para Grafos
em Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul
Resumo:
Esta pesquisa visa a modelagem de clusters de computadores, utilizando um modelo analítico simples que é representado por um grafo valorado denominado grafo da arquitetura. Para ilustrar tal metodologia, exemplificou-se a modelagem do cluster Myrinet/SCI do Instituto de Informática da UFRGS, que é do tipo heterogêneo e multiprocessado. A pesquisa visa também o estudo de métodos e tecnologias de software para o particionamento de grafos de aplicações e seu respectivo mapeamento sobre grafos de arquiteturas. Encontrar boas partições de grafos pode contribuir com a redução da comunicação entre processadores em uma máquina paralela. Para tal, utilizou-se o grafo da aplicação HIDRA, um dos trabalhos do GMCPAD, que modela o transporte de substâncias no Lago Guaíba. Um fator importante é o crescente avanço da oferta de recursos de alto desempenho como os clusters de computadores. Os clusters podem ser homogêneos, quando possuem um arquitetura com nós de mesma característica como: velocidade de processamento, quantidade de memória RAM e possuem a mesma rede de interconexão interligando-os. Eles também podem ser heterogêneos, quando alguns dos componentes dos nós diferem em capacidade ou tecnologia. A tendência é de clusters homogêneos se tornarem em clusters heterogêneos, como conseqüência das expansões e atualizações. Efetuar um particionamento que distribua a carga em clusters heterogêneos de acordo com o poder computacional de cada nó não é uma tarefa fácil, pois nenhum processador deve ficar ocioso e, tampouco, outros devem ficar sobrecarregados Vários métodos de particionamento e mapeamento de grafos foram estudados e três ferramentas (Chaco, Jostle e o Scotch) foram testadas com a aplicação e com a arquitetura modeladas. Foram realizados, ainda, vários experimentos modificando parâmetros de entrada das ferramentas e os resultados foram analisados. Foram considerados melhores resultados aqueles que apresentaram o menor número de corte de arestas, uma vez que esse parâmetro pode representar a comunicação entre os processadores de uma máquina paralela, e executaram o particionamento/mapeamento no menor tempo. O software Chaco e o software Jostle foram eficientes no balanceamento de carga por gerarem partições com praticamente o mesmo tamanho, sendo os resultados adequados para arquiteturas homogêneas. O software Scotch foi o único que permitiu o mapeamento do grafo da aplicação sobre o grafo da arquitetura com fidelidade, destacando-se também por executar particionamento com melhor qualidade e pela execução dos experimentos em um tempo significativamente menor que as outras ferramentas pesquisadas.
Resumo:
O conceito de parcialidade e importante em diversas áreas como a Matemática e a Ciência da Computação; ele pode ser utilizado, por exemplo, para expressar computações que não terminam e para definir funções recursivas parciais. Com rela cão a grafos, categorias de homomorfismos parciais são comuns (por exemplo, em gramáticas de grafos com a técnica de single-pushout). Este trabalho propõe uma abordagem diferente: a parcialidade é usada na estrutura interna dos objetos (não nos morfismos).Istoéfeito utilizando uma extensão do conceito de Categoria das Setas, chamada de Categoria das Setas Parciais. E definida entãoa categoria Grp de grafos parciais(tais que arcos podem possuir ou não vértices de origem e/ou destino) e homomorfismos totais.A generalização deste modelo resulta em categorias de grafos parciais internos.Émostrado que Grp é bicompleta e, se C é um topos, a categoria dos grafos parciais internos a C é cocompleta. Grafos parciais podem ser utilizados para definir modelos computacionais tais como autômatos. Uma categoria de Autômatos Parciais, denominada Autp, é construída a partir da categoria de Grafos Parciais. Usando uma extensão de composição de spans de grafos para autômatos, chamada de Composição de Transições, e possível definir as computações de autômatos. Brevemente, uma composição de transi cões de dois autômatos parciais resulta em um autômato parcial onde cada transição representa um caminho de tamanho dois (entre vértices), tal que a primeira metade é uma transição do primeiro autômato e a segunda metade é uma transição do segundo. É possível compor um autômato consigo mesmo diversas vezes; no caso de n sucessivas composições de transições, pode-se obter as palavras da linguagem aceita pelo autômato que necessitam de n+1 passos de computação nos arcos que não possuem origem e nem destino definidos do autômato parcial resultante.
Resumo:
Os sistemas computacionais estão tomando proporções cada vez maiores envolvendo situações bastante complexas, onde muitas vezes erros são inaceitáveis, como em sistemas bancários, sistemas de controle de tráfego aéreo, etc... Para obter software confiável e com desempenho aceitável, pode-se aliar técnicas de desenvolvimento formal de software a técnicas de simulação de sistemas. O ambiente PLATUS reúne essas duas áreas: modelos de simulação são descritos usando gramáticas de grafos uma linguagem de especificação formal. Gramáticas de grafos são uma generalização de gramáticas de Chomsky, substituindo strings por grafos. Neste trabalho, serão tratadas gramáticas de grafos baseados em objetos, um modelo onde vértices e arcos são tipados, e as especificações são modulares (a especificação de um sistema consiste em várias gramáticas de grafos combinadas). Assim, o modelo de um sistema pode ser descrito de forma precisa, e a linguagem de especificação é bastante abstrata e expressiva. Num ambiente de simulação a questão da recuperação de dados merece uma atenção especial, uma vez que a eficiência do simulador está diretamente ligada a agilidade na obtenção das informações. Neste trabalho, o objetivo principal é definir uma representação para gramáticas de grafos que facilite o armazenamento, a recuperação e análise das estruturas identificadas no ambiente PLATUS, ou seja, gramáticas de grafos baseadas em objetos. São definidas também funções que implementam os procedimentos necessários, para a recuperação de dados durante a simulação. A eficiência dessas funções é demonstrada através do cálculo de sua ordem de complexidade. As estruturas são validadas através da implementação de um protótipo de banco de dados.
Resumo:
Um span em uma categoria é um par ordenado de morfismos dessa categoria, ambos com origem num mesmo objeto. O destino do primeiro morfismo é a origem do span e o destino do segundo morfismo é o destino do span. Spans, embora sejam uma estrutura bastante simples numa categoria e tenham uma definição também bastante simples, são versáteis, pois, com especializações sutis apresentadas aqui, são capazes de representar outras estruturas, tais como as tratadas nesses trabalho: relações binárias, multirrelações binárias, grafos e, em conjunto com um morfismo adicional, sistemas de transições etiquetadas (LTS). Permitem ainda, como proposto nesse trabalho, definir de forma também simples, redes de Petri como sendo um endospan em uma categoria. Mostra-se que a composição de spans aplicada a essas estruturas é capaz de expresar a composição de multirrelações — mas não de relações —, uma composição de grafos cujo grafo resultante indica caminhos em que cada parte é uma aresta de um dos grafos operados, uma composição de LTS cujo LTS resultante apresenta transações que podem ser compostas por transições de diferentes LTS e uma composição de redes de Petri cujo resultado também apresenta transações compostas por transições que podem ser realizadas em redes de Petri distintas. Mostra-se algumas propriedades dessas composições, bem como suas provas. Como verificar propriedades de relações e de grafos através de spans também é proposto.
Resumo:
A crescente demanda por produtos de melhor qualidade, diferenciados e com custos competitivos tem forçado as manufaturas a se tornarem flexíveis, capacitando-as a responder às mudanças impostas pelo mercado. A flexibilidade permite que as empresas alcancem a customização desejada através da capacitação do sistema de responder e atuar em tempo real, mesmo em um ambiente de incertezas. Para atuar em tempo real, os sistemas de manufatura precisam de representações eficientes dos planos de produção. Muitas vezes, a atuação em tempo real torna-se inviável devido ao crescimento exponencial no número de planos de produção para cada máquina ou operação adicionada ao sistema. Uma possível solução para este problema é uso de representações adequadas para o espaço de estados. A escolha de uma representação adequada para o espaço de estados influencia na capacidade de reposta em tempo real, pois determina o desempenho computacional do sistema através da utilidade e eficiência dos algoritmos desenvolvidos, tornando possível explorar problemas clássicos de flexibilidade, tais como, seqüenciamento, otimização, etc. Entretanto, a geração de uma representação que trabalhe com o espaço de estados completo de uma manufatura é considerada um problema não polinomial (NP). Esta particularidade dificulta o desenvolvimento de algoritmos que trabalhem com uma manufatura flexível. Assim, a geração de uma representação, que trabalhe com pouca memória computacional e permita o desenvolvimento de heurísticas eficientes, é um importante desafio para uma avaliação efetiva da flexibilidade. Este trabalho objetiva o desenvolvimento de uma representação para o espaço de estados de uma manufatura com flexibilidade de seqüência. Na construção desta representação são aplicadas técnicas de modelagem baseadas na teoria dos grafos e nos princípios de álgebra booleana. Inicialmente, os grafos são utilizados para representar todas as seqüências de operações de uma manufatura, posteriormente estas seqüências são convertidas em formas normais disjuntivas (FND). Por fim, é apresentada uma possível aplicação da representação na FND em modelos de programação linear.
Resumo:
O desenvolvimento e manutenção de software fazem parte de um processo intrinsecamente difícil e que consome tempo e custos, principalmente quando o sistema consiste de milhares de linhas de código. Por isso, sistemas de visualização de software objetivam prover mecanismos para construir representações visuais de informações sobre programas e sistemas, através das quais o programador pode analisar e compreender características de sua estrutura e funcionamento em um maior nível de abstração do que o código fonte. Assim, ferramentas visuais de software que suportam as tarefas de desenvolvimento, depuração, manutenção e reutilização tornam-se mais necessárias pelo fato de ajudarem a reduzir a complexidade inerente do processo de compreensão. Esse trabalho tem como objetivo principal o desenvolvimento de um visualizador que exiba as informações existentes nos programas de forma mais rápida e legível, evitando que o programador/analista tenha que percorrer as linhas de código. O texto inicialmente situa a área de visualização de informações, abordando a área de visualização de software, uma vez que a visualização de software é assim chamada por tratar da visualização de informações que são extraídas de programas. Em seguida, é apresentado um estudo de caso baseado no desenvolvimento dos sistemas da empresa Benfare Informática, no qual caracteriza-se a necessidade de ferramentas que auxiliem a compreensão de programas, com o objetivo de otimizar as operações de manutenção e desenvolvimento de programas. O restante do trabalho trata do sistema VisProgress que foi um protótipo desenvolvido como ferramenta de apoio para a equipe de desenvolvimento da empresa e como forma de avaliar o uso de técnicas de visualização em tal situação. A ferramenta desenvolvida é um visualizador de informações que percorre programas escritos em Progress, ferramenta de desenvolvimento utilizada pela empresa, e extrai as informações encontradas nos programas. A visualização é dividida em três partes. A primeira permite a visualização de informações textuais extraídas diretamente do código fonte dos programas que compõem os sistemas, a segunda faz a visualização de um grafo que representa a chamada de programas, e a terceira e última faz a visualização também de um grafo, porém representando o compartilhamento de variáveis entre os programas. A obtenção dos grafos foi construída em Delphi, porém a visualização gráfica é feita através da ferramenta Dotty, ferramenta específica para visualização de grafos. Após a descrição do protótipo implementado, são apresentados os resultados obtidos com a avaliação da ferramenta feita nas empresas Benfare Informática e Dzset Soluções e Sistemas para Computação.
Resumo:
A modelagem matemática de problemas importantes e significativos da engenharia, física e ciências sociais pode ser formulada por um conjunto misto de equações diferenciais e algébricas (EADs). Este conjunto misto de equações deve ser previamente caracterizado quanto a resolubilidade, índice diferencial e condições iniciais, para que seja possível utilizar um código computacional para resolvê-lo numericamente. Sabendo-se que o índice diferencial é o parâmetro mais importante para caracterizar um sistema de EADs, neste trabalho aplica-se a redução de índice através da teoria de grafos, proposta por Pantelides (1988). Este processo de redução de índice é realizado numericamente através do algoritmo DAGRAFO, que transforma um sistema de índice superior para um sistema reduzido de índice 0 ou 1. Após esta etapa é necessário fornecer um conjunto de condições inicias consistentes para iniciar o código numérico de integração, DASSLC. No presente trabalho discute-se três técnicas para a inicialização consistente e integração numérica de sistemas de EADs de índice superior. A primeira técnica trabalha exclusivamente com o sistema reduzido, a segunda com o sistema reduzido e as restrições adicionais que surgem após a redução do índice introduzindo variáveis de restrição, e a terceira técnica trabalha com o sistema reduzido e as derivadas das variáveis de restrição. Após vários testes, conclui-se que a primeira e terceira técnica podem gerar um conjunto solução mesmo quando recebem condições iniciais inconsistentes. Para a primeira técnica, esta característica decorre do fato que no sistema reduzido algumas restrições, muitas vezes com significado físico importante, podem ser perdidas quando as equações algébricas são diferenciadas. Trabalhando com o sistema reduzido e as derivadas das variáveis de restrição, o erro da inicialização é absorvido pelas variáveis de restrição, mascarando a precisão do código numérico. A segunda técnica adotada não tem como absorver os erros da inicialização pelas variáveis de restrição, desta forma, quando as restrições adicionais não são satisfeitas, não é gerada solução alguma. Entretanto, ao aplicar condições iniciais consistentes para todas as técnicas, conclui-se que o sistema reduzido com as derivadas das variáveis restrição é o método mais conveniente, pois apresenta melhor desempenho computacional, inclusive quando a matriz jacobiana do sistema apresenta problema de mau condicionamento, e garante que todas as restrições que compõem o sistema original estejam presentes no sistema reduzido.
Resumo:
Perícia é a capacidade de aplicar habilidades intelectuais para resolver problemas em domínios estratégicos, com um desempenho e qualidade de solução superior à média dos profissionais da área. Ampliar a compreensão do que é a perícia fornece suporte e justificativas para a proposição de novos recursos para aquisição e modelagem de conhecimento na área da Engenharia de Conhecimento. Esta tese apresenta os resultados de um estudo sobre a perícia em Geologia, em especial numa aplicação em Petrografia Sedimentar. A tarefa em questão é especialmente significativa porque, ao contrário das tarefas típicas, cujo estudo tem levado ao desenvolvimento de diversas metodologias de aquisição de conhecimento, essa tarefa aplica primariamente raciocínio baseado na análise de imagens e, secundariamente, busca e métodos analíticos para interpretar os objetos da perícia (no caso, rochas-reservatório de petróleo). O objetivo deste projeto de tese é a identificação dos recursos cognitivos aplicados por especialistas na solução de problemas, que são essencialmente de reconhecimento visual e a representação do que é reconhecido. A interpretação dessas habilidades fornece fundamentos para a proposta de novos recursos para aquisição e modelagem, e posterior desenvolvimento de sistemas especialistas para interpretação de rochas. Também contribuem para o tratamento da perícia em outros campos que possuam o mesmo caráter de reconhecimento visual tal como a interpretação de rochas. O estudo foi desenvolvido em duas fases. Na primeira, o conhecimento foi eliciado de um especialista em Petrografia Sedimentar e estruturado, utilizando técnicas tradicionais de aquisição de conhecimento. A segunda fase envolveu o desenvolvimento de um experimento com dezenove geólogos com diferentes níveis de perícia, para identificar os tipos de conhecimentos que suportam a perícia e quais os métodos de solução que são aplicados nos altos níveis da perícia. O estudo das habilidades cognitivas demonstrou que especialistas em Petrografia sedimentar desenvolvem uma grande variedade de formas mentais e hierarquias que diferem daquelas normalmente descritas na literatura da área. Especialistas retém ainda um grande conjunto de abstrações simbólicas de imagens, denominados aqui de pacotes visuais. Os pacotes visuais possuem importante papel na indexação das estruturas mentais e na condução do processo de inferência. As representações são tipicamente associadas com seus próprios métodos de solução de problemas adequados à complexidade da tarefa de caracterização de reservatórios. A aplicação desses recursos faz parte do conjunto de conhecimentos tácitos dos especialistas. A associação de grafos de conhecimento e a análise de casos mostrou-se, neste trabalho, um método adequado para a externalizar e adquirir o conhecimento declarativo e as relações causais, as quais não são evidenciadas com as técnicas de aquisição de conhecimento tradicionais. Métodos de solução de problemas, por sua vez, foram eliciados com o auxílio das bibliotecas de solução de problemas disponíveis na literatura e grafos de conhecimento. O modelo de representação, aqui proposto, expressa o conhecimento em dois níveis: o nível da externalização, compatível com o conhecimento de um intermediário em Petrografia Sedimentar, e o nível da inferência, que modela o conhecimento tácito do especialista. Esta tese apresenta de forma inédita o conceito de pacote visual como uma primitiva de representação e um conjunto de métodos de solução de problemas adequados à interpretação de rochas.
Resumo:
Point pattern matching in Euclidean Spaces is one of the fundamental problems in Pattern Recognition, having applications ranging from Computer Vision to Computational Chemistry. Whenever two complex patterns are encoded by two sets of points identifying their key features, their comparison can be seen as a point pattern matching problem. This work proposes a single approach to both exact and inexact point set matching in Euclidean Spaces of arbitrary dimension. In the case of exact matching, it is assured to find an optimal solution. For inexact matching (when noise is involved), experimental results confirm the validity of the approach. We start by regarding point pattern matching as a weighted graph matching problem. We then formulate the weighted graph matching problem as one of Bayesian inference in a probabilistic graphical model. By exploiting the existence of fundamental constraints in patterns embedded in Euclidean Spaces, we prove that for exact point set matching a simple graphical model is equivalent to the full model. It is possible to show that exact probabilistic inference in this simple model has polynomial time complexity with respect to the number of elements in the patterns to be matched. This gives rise to a technique that for exact matching provably finds a global optimum in polynomial time for any dimensionality of the underlying Euclidean Space. Computational experiments comparing this technique with well-known probabilistic relaxation labeling show significant performance improvement for inexact matching. The proposed approach is significantly more robust under augmentation of the sizes of the involved patterns. In the absence of noise, the results are always perfect.
Resumo:
O presente trabalho apresenta uma investigação sobre algumas operações categoriais baseadas em grafos e a aplicação das mesmas a uma área específica da Ciência da Computação, a saber, animações computacionais baseadas em autômatos finitos com saída. As operações categoriais estudadas neste trabalho são: Produto, Coproduto, Soma Amalgamada e Produto Fibrado. O modelo AGA (Animação Gráfica baseada em Autômatos finitos) foi o escolhido para ser utilizado como base desta dissertação. Inspirado nestes estudos, o trabalho contém uma proposta de como aplicar tais operações com o objetivo de definir animações aparentemente complexas, de forma simples, precisa e de fácil implementação. O enfoque está baseado em J. Stoy que diz que um dos objetivos para o uso da semântica formal de teoria das categorias é “sugerir meios ou formas para o projetista desenvolver sistemas melhores, mais elegantes (“limpos”) e com descrições formais mais simples”. Entretanto, não é objetivo deste trabalho verificar se a utilização destas operações é ou não melhor do que a utilização de qualquer outra solução para criar novas animações. Esta dissertação traz uma nova versão do modelo AGA, denominada AGANd (Animação Gráfica baseada em Autômatos finitos Não determinísticos), sendo que o AGA utiliza apenas autômatos finitos determinísticos para criar os atores de uma animação. Com a utilização do AGANd obtém-se animações mais realistas e mais flexíveis. A aplicação destas operações se dá nos dois modelos, os resultados obtidos a partir de cada uma das operações sobre os mesmos são apresentados de forma detalhada e ilustrados com os autômatos resultantes no decorrer do trabalho. É apresentada uma sugestão de implementação para cada uma das operações, visando estender o protótipo já implementado do modelo AGA. Isso faz com que o leitor seja estimulado a aplicar estas e outras operações categoriais em novas animações baseadas ou não nos modelos apresentados, despertando até mesmo para seu uso em outras áreas da Ciência da Computação.
Resumo:
Atualmente, a World Wide Web (WWW) já se estabeleceu como um dos meios de divulgação mais difundidos. Sendo um meio de publicação de custo relativamente baixo, muitas iniciativas foram desenvolvidas no sentido de estendê-la e transformá-la também numa ferramenta de apoio. Assim, uma série de pesquisas foi realizada no sentido de promover e facilitar o gerenciamento das informações da WWW, que são estruturadas, em sua maioria, como conjuntos de documentos inter-relacionados. Grafos são estruturas utilizadas para a representação de objetos e seus múltiplos relacionamentos. Nesse sentido, pode-se afirmar que hiperdocumentos podem ser modelados através de grafos, onde uma página representa um nodo e um link para outra página é representado por uma aresta. Considerando estas características, e dada a crescente complexidade dos materiais publicados na WWW, desenvolveu-se, ao longo da última década, o uso de técnicas e recursos de Visualização de Grafos com larga aplicação na visualização da estrutura e da navegação na WWW. Técnicas de visualização de grafos são aplicáveis especificamente para representar visualmente estruturas que possam ser modeladas por meio de objetos relacionados, sendo investigadas técnicas para a abstração de modo a facilitar tanto o processo de compreensão do contexto da informação, quanto a apreensão dos dados relacionados. Este trabalho tem como objetivo a investigação de técnicas de Visualização de Grafos aplicadas a autômatos finitos com saída. Este direcionamento se deve ao fato de alguns autores utilizar a abordagem de autômatos finitos com saída para as estruturas de hiperdocumentos. Se for considerado que um documento da WWW (ou o estado de um autômato) é composto por fragmentos de informação (ou saídas) tais como trechos de texto, imagens, animações, etc e que este documento é relacionado a outros por meio de links (ou transições), tem-se a verificação de sua representatividade por meio destas estruturas. Em trabalho anterior, no âmbito do PPGC da UFRGS, a ferramenta Hyper-Automaton foi desenvolvida com o objetivo de estender o uso da Internet no sentido de prover uma ferramenta de apoio à publicação de materiais instrucionais. Por adotar a notação de autômatos finitos com saída, possibilita, além da criação e gerenciamento de hiperdocumentos, a reutilização de fragmentos de informação sem que haja qualquer interferência de um autômato que utilize este fragmento sobre outro. O Hyper-Automaton foi selecionado como caso de estudo motivador deste trabalho. As técnicas aqui desenvolvidas têm como intuito diminuir a complexidade visual da informação, assim como permitir a navegação através dos autômatos finitos com saída de forma que seja possível visualizar detalhes como as saídas e informações relacionadas a cada uma delas, mantendo a visualização do contexto da informação. Foram analisadas técnicas de agrupamento como forma de redução da complexidade visual, e técnicas do tipo foco+contexto, como alternativa para prover a visualização simultânea do contexto e dos detalhes da informação.
Resumo:
Os Problemas de Roteirização em Arcos constituem uma classe dos Problemas de Roteirização de Veículos, nos quais as demandas ocorrem de maneira contínua ao longo dos segmentos de uma rede de transporte. O campo de aplicação dos Problemas de Roteirização em Arcos abrange o planejamento da operação de serviços como a coleta de lixo; a entrega de correspondência e de jornais; a leitura de medidores de energia elétrica, água e gás; e o transporte escolar por ônibus. Nas situações de ordem prática é comum a ocorrência de restrições operacionais que impossibilitam o atendimento de todas as demandas existentes em uma rede de transporte por um único veículo ou pessoa. Desse modo, além da seqüência de percurso, é necessário determinar o conjunto de segmentos de via que cada unidade de trabalho pertencente a uma frota ou equipe de serviço deve atender. Este trabalho apresenta os aspectos conceituais e resolutivos dos Problemas de Roteirização em Arcos e do Problema do Particionamento de Redes de Transporte. É feita também a proposição de um modelo de resolução, desenvolvido a partir da estratégia de agrupar primeiro – roteirizar depois, para o Problema de Roteirização em Arcos Capacitado descrito em grafos não orientados. A demonstração do modelo é feita através de sua aplicação em um estudo de caso. São feitas, a seguir, a análise do desempenho do modelo nesta aplicação e a comparação entre os resultados obtidos e a prática atualmente utilizada, a qual é baseada na experiência de um planejador.
Resumo:
O aumento da escala e funcionalidade dos sistemas de computação e sua crescente complexidade envolvem um aumento significante de custos e exigem recursos humanos altamente qualificados para o desenvolvimento de software. Integrando-se o uso de métodos formais ao desenvolvimento de sistemas complexos, permite-se realizar análises e verificações destes sistemas, garantindo assim sua correção. Existem diversos formalismos que permitem descrever sistemas, cada qual com diferentes níveis de abstração. Quando consideramos sistemas complexos, surge a necessidade de um modelo que forneça construções abstratas que facilitem o entendimento e a especificação destes sistemas. Um modelo baseado em objetos fornece um nível de abstração que tem sido muito aplicado na prática, onde os dados e os processos que os manipulam são descritos juntos em um objeto. Gramática de Grafos Baseada em Objetos (GGBO) é um modelo baseado em objetos, que além de ser uma linguagem visual, apresenta a vantagem de as especificações adquirirem um estilo baseado em objetos, que é bastante familiar à maioria dos desenvolvedores. Porém, as GGBOs não possuem ainda ferramentas para verificação automática de propriedades desejadas nos sistemas modelados. Uma alternativa para resolver isso é definir uma tradução (que preserve a semântica) desta linguagem para outra, para a qual existam verificadores automáticos. Um formalismo bastante conhecido e estabelecido para descrição de sistemas concorrentes, para o qual existem verificadores automáticos, é o cálculo-π. Porém, sob o aspecto de especificação de sistemas complexos, GGBOs parecem ser mais adequadas como linguagem de especificação que o cálculo-π, pois são visuais, mais intuitivas e possuem um estilo baseado em objetos. Neste trabalho foi definido um formalismo (baseado nas GGBOs), denominado Gramática de Hipergrafos Baseada em Objetos e uma tradução deste formalismo para o cálculo-π, aliando assim as vantagens desses dois métodos. Além disso, para validar a tradução definida, foram feitas provas de que a semântica das gramáticas de hipergrafos baseadas em objetos é preservada na tradução.
Resumo:
Desde o início dos anos 90, uma tendência no desenvolvimento de software tem despertado a atenção dos pesquisadores: a distribuição do desenvolvimento. Esse fenômeno é um reflexo de mudanças sociais e econômicas, que têm levado organizações a distribuírem geograficamente seus recursos e investimentos, visando aumento de produtividade, melhorias na qualidade e redução de custos no desenvolvimento de software. Em virtude dessa distribuição, equipes geograficamente dispersas cooperam para a obtenção de um produto final de software. A distribuição física das equipes agrava problemas já inerentes à gerência do processo de software. O desenvolvimento de ambientes, modelos e ferramentas para gerenciar processos conduzidos nesse contexto é um desafio cada vez mais importante nos estudos em Tecnologia de Processos de Software. Os ambientes de suporte a processos devem prover infra-estrutura para processos distribuídos. Este trabalho propõe um modelo de gerência de processos distribuídos, denominado APSEE-Global, que estende o APSEE, um ambiente de engenharia de software centrado no processo desenvolvido no contexto do grupo de pesquisa Prosoft, provendo um conjunto de funcionalidades para suporte a processos distribuídos. O APSEE-Global viabiliza o aumento da autonomia das equipes que participam do projeto, pela possibilidade de adotarem modelos de processo distintos e pela gerência descentralizada do processo de desenvolvimento; permite a documentação e facilita a análise e a gerência das relações entre as equipes; e provê um canal de comunicação formal para acompanhamento da execução do processo distribuído. Os diferentes componentes do APSEE-Global foram especificados formalmente, o que constitui uma base semântica de alto nível de abstração que deu origem à implementação de um protótipo integrado ao ambiente de desenvolvimento de software Prosoft. A especificação do modelo foi realizada pela combinação dos formalismos Prosoft-Algébrico e Gramática de Grafos.
Resumo:
Uma das maiores dificuldades encontradas pelos técnicos envolvidos na elaboração da previsão do tempo é a falta de integração entre o software de visualização usado por eles e os programas usados para escrever os boletins. Os previsores necessitam de um meio rápido e fácil de gerar previsões com outras formas de apresentação, além do formato de texto em que ela normalmente é produzida. A partir do estudo dessas dificuldades, formulou-se a hipótese de que seria benéfico criar uma linguagem visual para a criação da previsão do tempo, que permitisse gerar tanto o texto de um boletim meteorológico quanto as imagens correspondentes. Este trabalho descreve a especificação dessa linguagem, à qual se deu o nome de Pythonissa. Ela foi definida usando o formalismo de grafos e se constitui de um modelo da estrutura de um boletim de previsão do tempo. Em Pythonissa, cada região geográfica para a qual é feita a previsão é representada por um vértice em um grafo. Os fenômenos presentes na região também são representados por vértices, de outros tipos, ligados à região por arestas que denotam sua presença. Cada tipo de vértice e aresta tem mapeamentos para representações gráficas e para elementos de controle em uma interface com o usuário. A partir da linguagem, foi implementado um protótipo preliminar, no qual é possível criar um boletim de por meio de uma interface visual e gerar o texto e a imagem correspondentes. Foi dado início, também, à construção de um framework para integração da linguagem a um ambiente de visualização de dados, de modo a produzir uma aplicação utilizável em um ambiente de trabalho real. Para isto foram usados o software de visualização Vis5D e a linguagem de scripts Python. A este framework, se deu o nome de Py5D.