905 resultados para Linguagem de Programação.
Resumo:
Dissertação de Mestrado, Geomática – Ramo de Ciências da Informação Geográfica, Faculdade de Ciências e Tecnologia, Instituto Superior de Engenharia, Universidade do Algarve, 2015
Resumo:
Relatório da Prática de Ensino Supervisionada, Mestrado em Ensino de Informática, Universidade de Lisboa, 2015
Resumo:
Dissertação de natureza Científica para obtenção do grau de Mestre em Engenharia Civil
Resumo:
Neste trabalho foi considerada a possibilidade de incorporar serviços remotos, normalmente associados a serviços web e cloud computing, numa solução local que centralizasse os vários serviços num único sistema e permitisse aos seus utilizadores consumir e configurar os mesmos, quer a partir da rede local, quer remotamente a partir da Internet. Desta forma seria possível conciliar o acesso a partir de qualquer local com internet, característico nas clouds, com a simplicidade de concentrar num só sistema vários serviços que são por norma oferecidos por entidades distintas e ainda permitir aos seus utilizadores o controlo e configuração sobre os mesmos. De forma a validar que este conceito é viável, prático e funcional, foram implementadas duas componentes. Um cliente que corre nos dispositivos dos utilizadores e que proporciona a interface para consumir os serviços disponíveis e um servidor que irá conter e prestar esses serviços aos clientes. Estes serviços incluem lista de contactos, mensagens instantâneas, salas de conversação, transferência de ficheiros, chamadas e conferências de voz e vídeo, pastas remotas, pastas sincronizadas, backups, pastas partilhadas, VoD (Video-on Demand) e AoD (Audio-on Demand). Para o desenvolvimento do cliente e do servidor foi utilizada a framework Qt que recorre à linguagem de programação C++ e ao conjunto de bibliotecas que possui, para o desenvolvimento de aplicações multiplataforma. Para as comunicações entre clientes e servidor, foi utilizado o protocolo XMPP (Extensible Messaging and Presence Protocol), pela forma da biblioteca qxmpp e do servidor XMPP ejabberd. Pelo facto de conter um conjunto de centenas de extensões atualmente ativas que auferem funcionalidades como salas de conversação, transferências de ficheiros e até estabelecer sessões multimédia, graças à sua flexibilidade permitiu ainda a criação de extensões personalizada necessárias para algumas funcionalidades que se pretendeu implementar. Foi ainda utilizado no servidor a framework ffmpeg para suportar algumas funcionalidades multimédia. Após a implementação do cliente para Windows e Linux, e de implementar o servidor em Linux foi realizado um conjunto de testes funcionais para perceber se as funcionalidades e seus mecanismos funcionam corretamente. No caso onde a análise da performance e do consumo de recursos era importante, foram realizados testes de performance e testes de carga.
Resumo:
O controlo de segurança para preservação da integridade estrutural da barragens é, durante a fase de exploração normal, uma actividade que tem essencialmente como elemento fulcral as inspecções à estrutura e os dados resultantes das observações periódicas da obra, apoiando-se em modelos de comportamento da mesma. Neste sentido, a análise de situações de emergência requer, em regra, a atenção de um especialista em segurança de barragens, o qual poderá, perante os resultados da observação disponíveis e da aplicação de modelos do comportamento da estrutura, identificar o nível de alerta adequado à situação que se está a viver na barragem. Esta abordagem tradicional de controlo de segurança é um processo eficaz mas que apresenta a desvantagem de poder decorrer um período de tempo significativo entre a identificação de um processo anómalo e a definição do respectivo nível de gravidade. O uso de novas tecnologias de apoio à decisão e o planeamento de emergência podem contribuir para minorar os efeitos desta desvantagem. O presente trabalho consiste no desenvolvimento de um modelo de aferição do comportamento de uma barragem através da aplicação de redes neuronais do tipo Perceptrão Multicamadas aos resultados da observação de uma barragem de aterro, por forma a identificar anomalias de comportamento e a quantificar o correspondente nível de alerta. A tese divide-se essencialmente em duas partes. A primeira parte aborda os aspectos que se relacionam com as barragens de aterro, nomeadamente definindo as soluções estruturais mais correntes e identificando os principais tipos de deteriorações que podem surgir nestas estruturas. São, igualmente, abordadas as questões que se relacionam com o controlo de segurança e o planeamento de emergência em barragens de aterro. A segunda parte do trabalho versa sobre o modelo de rede neuronal desenvolvido em linguagem de programação java – o modelo ALBATROZ. Este modelo permite definir o nível de alerta em função do nível de água na albufeira, da pressão registada em quatro piezómetros localizados no corpo e na fundação da barragem e do caudal percolado através da barragem e respectiva fundação. Nesta parte, o trabalho recorre, aos resultados da observação da barragem de Valtorno/Mourão e usa os resultados de um modelo de elementos finitos (desenvolvido no Laboratório Nacional de Engenharia Civil, no âmbito do plano de observação da obra) por forma a simular o comportamento da barragem e fornecer dados para o treino da rede neuronal desenvolvida.O presente trabalho concluiu que o desenvolvimento de redes neuronais que relacionem o valor registado em algumas das grandezas monitorizadas pelo sistema de observação com o nível de alerta associado a uma situação anómala na barragem pode contribuir para a identificação rápida de situações de emergência e permitir agir atempadamente na sua resolução. Esta característica transforma a redes neuronais numa peça importante no planeamento de emergência em barragens e constitui, igualmente, um instrumento de apoio ao controlo de segurança das mesmas.
Resumo:
An adaptive device is made up of an underlying mechanism, for instance, an automaton, a grammar, a decision tree, etc., to which is added an adaptive mechanism, responsible for allowing a dynamic modification in the structure of the underlying mechanism. This article aims to investigate if a programming language can be used as an underlying mechanism of an adaptive device, resulting in an adaptive language.
Resumo:
Adaptive devices show the characteristic of dynamically change themselves in response to input stimuli with no interference of external agents. Occasional changes in behaviour are immediately detected by the devices, which right away react spontaneously to them. Chronologically such devices derived from researches in the field of formal languages and automata. However, formalism spurred applications in several other fields. Based on the operation of adaptive automata, the elementary ideas generanting programming adaptive languages are presented.
Resumo:
A programming style can be seen as a particular model of shaping thought or a special way of codifying language to solve a problem. Adaptive languages have the basic feature of allowing the expression of programs which self-modifying through adaptive actions at runtime. The conception of such languages calls for a new programming style, since the application of adaptive technology in the field of programming languages suggests a new way of thinking. With the adaptive style, programming language codes can be structured in such a way that the codified program therein modifies or adapts itself towards the needs of the problem. The adaptive programming style may be a feasible alternate way to obtain self-modifying consistent codes, which allow its use in modern applications for self-modifying code.
Resumo:
In this paper the architecture of an experimental multiparadigmatic programming environment is sketched, showing how its parts combine together with application modules in order to perform the integration of program modules written in different programming languages and paradigms. Adaptive automata are special self-modifying formal state machines used as a design and implementation tool in the representation of complex systems. Adaptive automata have been proven to have the same formal power as Turing Machines. Therefore, at least in theory, arbitrarily complex systems may be modeled with adaptive automata. The present work briefly introduces such formal tool and presents case studies showing how to use them in two very different situations: the first one, in the name management module of a multi-paradigmatic and multi-language programming environment, and the second one, in an application program implementing an adaptive automaton that accepts a context-sensitive language.
Resumo:
Este trabalho busca a implementação da replicação de objetos através da linguagem Java e de seu sistema de invocação remota de métodos (Remote Method Invocation - RMI). A partir deste sistema, define-se uma classe de replicação - a máquina de replicação – onde a implementação de grupos de objetos é estruturada de acordo com a arquitetura cliente/servidor, sendo o cliente o representante (a interface) de um grupo de objetos e os servidores representam os demais componentes do grupo. A classe de replicação atende a uma necessidade importante dos sistemas distribuídos - o desenvolvimento de aplicações tolerantes a falhas. Fundamentalmente, a tolerância a falhas é obtida por redundância e, no caso de mecanismos de tolerância a falhas por software, esta redundância significa basicamente replicação de dados, processos ou objetos. A tolerância a falhas para tal tipo de sistema é importante para garantir a transparência do mesmo, visto que, assim como um sistema distribuído pode auxiliar muito o usuário pelas facilidades oferecidas, o não cumprimento de suas atividades de acordo com o esperado pode, em algumas situações, causar-lhe transtornos e erros irrecuperáveis nas aplicações. Finalmente, como principal contribuição, este trabalho descreve e implementa a solução completa para a construção de uma biblioteca de classes que oferece a replicação de forma totalmente transparente para o usuário.
Resumo:
O modelo de objetos apresenta-se como um modelo promissor para o desenvolvimento de software tolerante a falhas em virtude de características inerentes ao próprio modelo de objetos, tais como abstração de dados, encapsulamento, herança e reutilização de objetos (componentes). O uso de técnicas orientadas a objetos facilita o controle da complexidade do sistema porque promove uma melhor estruturação de seus componentes e também permite que componentes já validados sejam reutilizados [LIS96]. Técnicas básicas para tolerância a falhas em software baseiam-se na diversidade de projeto e de implementação de componentes considerados críticos. Os componentes diversitários são gerenciados através de alguma técnica que tenha por objetivo assegurar o fornecimento do serviço solicitado, como, por exemplo, a conhecida técnica de blocos de recuperação. Reflexão Computacional é a capacidade que um sistema tem de fazer computações para se auto analisar. Ela é obtida quando o programa pára sua execução por um período de tempo para fazer computações sobre si próprio; analisa seu estado, se o processamento está correto, se pode prosseguir com a execução e atingir o objetivo satisfatoriamente; se não precisa mudar de estratégia ou algoritmo de execução, fazendo, ainda, processamentos necessários para o sucesso da execução. Um sistema de programação distribuída consiste basicamente em vários aplicativos executados em diferentes computadores, os quais realizam troca de mensagens para solucionar um problema comum. A comunicação entre os computadores é realizada através da rede que os interliga. As Redes que controlam sistemas críticos são normalmente de pequena escala pois redes de grandes dimensões podem apresentar atrasos e baixa confiabilidade. Portanto, a abordagem aqui proposta consiste em utilizar, em um ambiente distribuído, uma arquitetura reflexiva aliada a técnicas do domínio da tolerância a falhas para promover a separação entre as atividades de controle, salvamento, recuperação, distribuição e validação de componentes e as funcionalidades executadas pelo próprio componente, a fim de que falhas não venham a prejudicar a disponibilidade, confiabilidade e clareza de determinadas computações. A proposta apóia-se num estudo de caso, implementado na linguagem de programação Java, com seus protocolos de reflexão computacional e de comunicação.
Resumo:
Este trabalho apresenta o método dos elementos finitos em conjunto com métodos numéricos especificos para a solução de problemas de fratura. Esta é uma poderosa ferramenta para a análise de fraturas e soluções confiáveis são obtidas para problemas complexos de Engenharia tanto no campo linear como no não-linear. O elemento finito. implementado é do tipo isoparamétrico quadrâtico da família Serendipity. Com dois graus de liberdade por nó, permite discretizar em estado plano de tensão ou deformação estruturas com geometrias bastante variadas. Para a análise linear são implementadas quatro técnicas consagradas para a avaliação do fator de intensidade de tensão no modo I de fratura: extrapolação de doslocamentos (usando malha somente com elementos convencionais e malha mesclada com elementos especiais), taxa de liberação de energia de defermação, extensão virtual da trinca e o método da integral J, descartando-se neste caso a hipótese de descarregamento. A linguagem de programação adotada é o FORTRAN 77. A entrada de dados é feita por intermédio de arquivos previamente preparados. Os resultados obtidos são confrontados com resultados experimentais e computacionais fornecidos por outros programas. Analisam-se placas, estruturas de uso na indústria e simulam-se ensaios como o corpo de prova de flexão em três pontos e o corpo de prova de tensão. compacto.
Resumo:
A análise da iteração solo-estrutura em fundações é um importante campo de pesquisa que ainda tem um grande progresso a ser feito. No presente trabalho foi desenvolvido um programa computacional para a análise da interação solo-estrutura de fundações de concreto armado. Este tema abrange duas áreas da engenharia civil: estruturas e geotecnia. O método dos elementos finitos foi usado no trabalho na seqüência para resolver o problema considerando estado plano de defonnação e comportamento elastoplásti.co dos materiais estudados (solo, concreto e aço). A linguagem de programação MATLAB foi usada em toda esta pesquisa como alternativa ao FORTRAN. O MATLAB foi escolhido uma vez que é uma linguagem de programação que permite facilmente construir uma interfàce de pré e pósprocessamento amigável. Os passos para a solução completa do problema foram os seguintes: Primeiramente um programa foi desenvolvido considerando o comportamento elastoplástico com critérios de plastificação e ruptura específicos para o concreto e solo. Soluções analíticas fechadas foram usadas para checar a precisão do programa. O segundo passo foi a introdução do reforço de aço no concreto por meio de um modelo para armaduras. Logo após, um modelo de fissuras para o concreto 1racionado foi in1roduzido no programa. Na seqüência o programa de pré e pós-processamento foi desenvolvido para gerar a malha de elementos finitos (pré-processamento), distribuição tensões e deformações, mapa de fissuras, etc (pósprocessamento). Finalmente, os parâme1ros constitutivos do solo, concreto e aço foram calibrados e várias situações reais de interação do solo-concreto de fundações de concreto armado foram simuladas. Nesta dissertação são encontrados resultados para as pressões de contato sapata-solo. Diferentes diagramas de tensões de interfàce foram obtidos em função rigidez relativa do elemento estrutural de concreto armado-solo. Na análise mnnérica, rigidez relativa desempenhou uma relevante função no comportamento mecânico do elemento estrutural de concreto armado (sapata) e da base de assentamento (solo), uma vez ruptura em ambos os casos esteve diretamente relacionada a esta grandeza. São encon1rados, em função da rigidez relativa, resultados indicativos dos modos de falha da fundação, excessiva plastificação do solo em fundações com rigidez relativa alta, e a plastificação armaduras, esmagamento do concreto, formação de fissuras, bielas e confinamento concreto para fundações de rigidez relativa baixa. Na análise numérica, obteve-se resultados importantes com relação ao projeto de fundações. Estes resultados foram cOnITontadoscom normas, destacando-se as discordâncias com relação às recomendações da nonna brasileira Projeto e Execução de Fundações" NBR-6122 (1996) para os diagramas de tensões interface sapata-solo usados no dimensionamento de fundações de concreto armado.
Resumo:
O presente trabalho é dedicado à simulação numérica de sistemas térmicos de potência. O trabalho é iniciado com a modelagem de um ciclo Rankine, dedicado à produção de energia elétrica, para o qual foi elaborado um programa de simulação com a linguagem de programação MATLAB. A partir desse primeiro caso, são apresentados os modelos empregados para representar os diversos componentes que formam o circuito, como o gerador de vapor, a turbina, o condensador e a bomba. Além desses componentes, são introduzidas as equações que representam o escoamento do fluido de trabalho, no caso a água, permitindo assim o cálculo da perda de carga nas diferentes canalizações do circuito, sendo também acoplado o funcionamento da bomba. Essa alternativa pennite uma melhor avaliação do trabalho despendido para operar o sistema. A modelagem do ciclo deixa então de ser exclusivamente tennodinâmica, e passa a incluir aspectos de mecânica de fluidos. Outras variantes desse ciclo simples são também modelados e simulados, incluindo ciclos Rankine regenerativos e com irreversibilidades. As simulações são efetuadas admitindo-se parâmetros de operação, como, potência da turbina, temperatura do vapor d'água na entrada da turbina e pressão do vapor d'água na saída da turbina, com a variante de fixar-se o título do vapor d'água na saída da turbina.
Resumo:
Independentemente do modelo de programação adotado, no projeto e implementação de aplicações de alta disponibilidade, faz-se necessário usar procedimentos de tolerância a falhas. Dentre as atividades que trazem consigo interesse de pesquisa na área de Tolerância a Falhas, estão os mecanismos de recuperação em um sistema computacional. Do ponto de vista prático, estes mecanismos buscam manter próximo do mínimo o tempo total de execução de aplicações computacionais de longa duração, ao mesmo tempo em que as preparam para não sofrerem perdas significativas de desempenho, em caso de falhas. Paralelamente à evolução dos sistemas computacionais, foi possível observar também a evolução das linguagens de programação, principalmente as que utilizam o paradigma orientado a objetos. O advento da área de tolerância a falhas na orientação a objetos resultou em novos problemas na atividade de recuperação quanto aos mecanismos de salvamento de estados e retomada da execução, principalmente no que se refere às dificuldades de gerenciamento e controle sobre a alocação de objetos. Entretanto, observa-se que a complexidade de implementação dos mecanismos de recuperação, por parte dos programadores, exige deles conhecimentos mais especializados para o salvamento dos estados da aplicação e para a retomada da execução. Portanto, a simplificação do trabalho do programador, através do uso de uma biblioteca de checkpointing que implemente os mecanismos de salvamento de estados e recuperação é o ponto focal deste trabalho. Diante do contexto exposto, nesta dissertação, são definidas e implementadas as classes de uma biblioteca que provê mecanismos de checkpointing e recuperação. Esta biblioteca, denominada de Libcjp, visa aprimorar o processo de recuperação de aplicações orientadas a objetos escritas na linguagem de programação Java. Esta linguagem foi escolhida para implementação devido à presença dos recursos de persistência e serialização. Para a concepção do trabalho, são considerados ambos os cenários no paradigma orientado a objetos: objetos centralizados e distribuídos. São utilizados os recursos da API de serialização Java e a tecnologia Java RMI para objetos distribuídos. Conclui-se o trabalho com a ilustração de casos de uso através de diversos exemplos desenvolvidos a partir de seus algoritmos originais inicialmente, e incrementados posteriormente com os mecanismos de checkpointing e recuperação. Os componentes desenvolvidos foram testados quanto ao cumprimento dos seus requisitos funcionais. Adicionalmente, foi realizada uma análise preliminar sobre a influência das ações de checkpointing nas características de desempenho das aplicações.