1000 resultados para Programação orientada a objeto (computação)
Resumo:
Dissertação para obtenção do Grau de Mestre em Engenharia Informática
Resumo:
A utilização crescente das tecnologias de informação provocou uma revolução do conhecimento. O resultado deste novo paradigma trouxe mudanças significativas no modo de gerir e difundir a informação arquivística. A digitalização de parte ou da totalidade de acervos tem sido uma prática constante nos arquivos, bibliotecas e centros de documentação como forma de permitir ao utilizador o acesso remoto e alargado à informação. Neste sentido, o presente estudo, o qual enquadra-se na Sociedade da Informação, incide sobre preservação a longo prazo de documentos digitalizados e tem como objeto de estudo os representantes digitais inseridos no Arquivo Científico Tropical Digital (ACTD), pertencente ao Instituto de Investigação Científica Tropical (IICT). Propõe-se aqui entender o processo de digitalização dos documentos inseridos no ACTD, analisar se é realizada alguma preservação digital a longo prazo, bem como analisar a perceção dos profissionais da instituição em estudo relativa à esta temática e a partir deste conhecimento fazer recomendações de preservação digital a longo prazo ao Arquivo digital. O método de recolha e análise de dados utilizado diz respeito à análise de documentos institucionais do IICT, das páginas web do IICT e do ACTD, a fim de compreender a sua génese e estrutura e, a análise qualitativa de entrevistas semiestruturadas aplicada a cinco colaboradores do IICT que trabalham direta ou indiretamente com o ACTD. Para ajudar na análise dos dados recolhidos em entrevista construiu-se uma grelha de análise qualitativa por tema e categoria. A partir do tratamento e análise dos dados identificou-se algumas dificuldades que o ACTD apresenta relativamente á preservação digital a longo prazo, e recomendações foram sugeridas. O IICT não possui plano de preservação digital, nem ações de preservação definidas para serem aplicadas aos objetos digitais do ACTD. A perceção dos profissionais entrevistados relativa à temática é superficial, por isso no que diz respeito à preservação dos objetos digitais recomenda-se ao ACTD e aos profissionais que estão a trabalhar diretamente com as coleções documentais digitalizadas a criação de um grupo de trabalho, de um projeto de digitalização formalizado e de um plano de preservação digital, além da utilização de metadados de preservação, assim como a definição de normas e estratégias de preservação com base em políticas nacionais e internacionais.
Resumo:
A Programação Genética (PG) é uma técnica de Aprendizagem de Máquina (Machine Learning (ML)) aplicada em problemas de otimização onde pretende-se achar a melhor solução num conjunto de possíveis soluções. A PG faz parte do paradigma conhecido por Computação Evolucionária (CE) que tem como inspiração à teoria da evolução natural das espécies para orientar a pesquisa das soluções. Neste trabalho, é avaliada a performance da PG no problema de previsão de parâmetros farmacocinéticos utilizados no processo de desenvolvimento de fármacos. Este é um problema de otimização onde, dado um conjunto de descritores moleculares de fármacos e os valores correspondentes dos parâmetros farmacocinéticos ou de sua atividade molecular, utiliza-se a PG para construir uma função matemática que estima tais valores. Para tal, foram utilizados dados de fármacos com os valores conhecidos de alguns parâmetros farmacocinéticos. Para avaliar o desempenho da PG na resolução do problema em questão, foram implementados diferentes modelos de PG com diferentes funções de fitness e configurações. Os resultados obtidos pelos diferentes modelos foram comparados com os resultados atualmente publicados na literatura e os mesmos confirmam que a PG é uma técnica promissora do ponto de vista da precisão das soluções encontradas, da capacidade de generalização e da correlação entre os valores previstos e os valores reais.
Resumo:
Este trabalho tem como objeto de estudo o Museu Nacional de Arte Antiga (MNAA) e o seu edifício, sob o ponto de vista da problemática da comunicação centrada na história do imóvel e da sua relação com a instituição museal. Surge da constatação de que o MNAA, como a maioria dos nossos museus, não comunica suficientemente ao público a história do seu imóvel, que é edifício histórico. Seguindo uma metodologia orientada para a programação museológica, após uma caraterização do Museu, uma análise e diagnóstico à comunicação centrada no edifício e na sua história e uma investigação acerca desta, defini as linhas orientadoras de um projeto de comunicação para o edifício e envolvente, baseado num percurso interpretativo com as respetivas propostas de divulgação e atividades complementares. O trabalho é completado por um texto-síntese e uma cronologia, com os resultados da investigação à história do edifício do MNAA, em relação com a história institucional.
Resumo:
A Digital Breast Tomosynthesis (DBT) é uma técnica que permite obter imagens mamárias 3D de alta qualidade, que só podem ser obtidas através de métodos de re-construção. Os métodos de reconstrução mais rápidos são os iterativos, sendo no en-tanto computacionalmente exigentes, necessitando de sofrer muitas optimizações. Exis-tem optimizações que usam computação paralela através da implementação em GPUs usando CUDA. Como é sabido, o desenvolvimento de programas eficientes que usam GPUs é ainda uma tarefa demorada, dado que os modelos de programação disponíveis são de baixo nível, e a portabilidade do código para outras arquitecturas não é imedia-ta. É uma mais valia poder criar programas paralelos de forma rápida, com possibili-dade de serem usados em diferentes arquitecturas, sem exigir muitos conhecimentos sobre a arquitectura subjacente e sobre os modelos de programação de baixo nível. Para resolver este problema, propomos a utilização de soluções existentes que reduzam o esforço de paralelização, permitindo a sua portabilidade, garantindo ao mesmo tempo um desempenho aceitável. Para tal, vamos utilizar um framework (FastFlow) com suporte para Algorithmic Skeletons, que tiram partido da programação paralela estruturada, capturando esquemas/padrões recorrentes que são comuns na programação paralela. O trabalho realizado centrou-se na paralelização de uma das fases de reconstru-ção da imagem 3D – geração da matriz de sistema – que é uma das mais demoradas do processo de reconstrução; esse trabalho incluiu um método de ordenação modificado em relação ao existente. Foram realizadas diferentes implementações em CPU e GPU (usando OpenMP, CUDA e FastFlow) o que permitiu comparar estes ambientes de programação em termos de facilidade de desenvolvimento e eficiência da solução. A comparação feita permite concluir que o desempenho das soluções baseadas no FastFlow não é muito diferente das tradicionais o que sugere que ferramentas deste tipo podem simplificar e agilizar a implementação de um algoritmos na área de recons-trução de imagens 3D, mantendo um bom desempenho.
Resumo:
O trabalho teve como o propósito analisar o processo de desenvolvimento de um sistema de informação dentro de uma organização, no caso a Delegação do Ministério da Educação e Desporto do Concelho da Praia. Para tal, analisou-se as diferentes metodologias que estão associadas ao processo desenvolvimento de um sistema de informação, escolheu-se aplicar uma metodologia orientada a objecto. Também no trabalho destacou-se a importância dos Sistema de Informação e Tecnologias de Informação dentro das organizações, bem como a necessidade do alinhamento dos Sistemas de Informação com as estratégias das organizações. Também analisou-se um conjunto de problemas associados ao processo de Desenvolvimento de Sistemas de informação e apresentou-se diferentes metodologias que orientam na construção de Sistemas de Informação.
Resumo:
Resumen basado en el de la publicación
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.
Resumo:
Este trabalho descreve uma implementação de um modelo de escalonamento para a linguagem de programação DPC++. Esta linguagem, desenvolvida no Instituto de Informática da UFRGS, possibilita que uma aplicação orientada a objetos seja distribuída entre vários processadores através de objetos distribuídos. Muito mais que uma simples biblioteca de comunicação, o DPC ++ torna a troca de mensagens totalmente transparente aos objetos. A integração do DPC++ com o DECK, também em desenvolvimento, trará grandes inovações ao DPC++, principalmente pelo uso de theads. O escalonador proposto para este modelo utiliza estes recursos para implantar os chamados processos espiões, que monitoram a carga de uma máquina, enviando seus resultados ao escalonador. O escalonador implementado possui, desta forma, dois módulos: objetos espiões implementados como um serviço do DECK e o escalonador propriamente dito, incluído no objeto Diretório, parte integrante do DPC++.
Resumo:
Este trabalho descreve a aplicação da Programação Genética, uma técnica de Computação Evolucionária, ao problema da Síntese de Fala automática. A Programação Genética utiliza as técnicas da evolução humana para descobrir programas bem adaptados a um problema específico. Estes programas, compostos de instruções, variáveis, constantes e outros elementos que compõe uma linguagem de programação, são evoluídos ao longo de um conjunto de gerações. A Síntese de Fala, consiste na geração automática das formas de ondas sonoras a partir de um texto escrito. Uma das atividades mais importantes, é realizada através da conversão de palavras e letras para os sons da fala elementares (fonemas). Muitos sistemas de síntese são implementados através de regras fixas, escritas por programadores humanos. Um dos mais conhecidos sistemas de síntese é o FESTIVAL, desenvolvido pela Universidade de Edimburgh, usando a linguagem de programação funcional LISP e um número fixo de regras. Neste trabalho, nós exploramos a possibilidade da aplicação do paradigma da Programação Genética, para evoluir automaticamente regras que serão adotadas para implementação do idioma Português na ferramenta FESTIVAL, desenvolvido no projeto SPOLTECH (CNPq – NSF cooperação entre UFRGS e Universidade do Colorado). A modelagem do problema, consiste na definição das regras de pronúncia do Português Brasileiro, que a implementação do sistema FESTIVAL pronuncia erradamente, já que o mesmo foi implementado primariamente para o idioma Inglês. A partir destas regras, o sistema de Programação Genética, desenvolvido neste trabalho, evolui programas que constituem boas soluções para a conversão de letras para fonemas. A descrição dos resultados obtidos, cobre detalhes sobre a evolução das soluções, complexidade e regras implementadas, representadas pelas soluções mais bem adaptadas; mostrando que a Programação Genética, apesar de ser complexa, é bastante promissora.
Resumo:
Esta tese de doutorado apresenta o MEPSOM - Método de Ensino de Programação Sônica de Computadores para Músicos. O MEPSOM consiste em um sistema de computação que disponibiliza um conjunto de atividades para programação de software musical composto de exemplos e exercícios. O método foi idealizado para ser uma ferramenta de auxílio ao professor em cursos de Computação Musical, disponibilizando recursos didáticos para o ensino de programação nas áreas de composição e educação musical. O MEPSOM foi implementado sob a forma de programas de computador e utilizado em cursos de Computação Musical na UFRGS. Nesta Tese de Doutorado apresentamos o projeto e a organização do MESPCM, a implementação do método, relatos de sua aplicação e os resultados obtidos. Também expomos a utilização do método em laboratório, através de estudo de caso, e os resultados da sua avaliação por estudantes que participaram de pesquisas de levantamento. Por fim, a partir da análise dos dados obtidos, sugerimos um conjunto de aspectos considerados relevantes para futuras aplicações do MEPSOM.
Resumo:
Em vista da maior complexidade da programação paralela e distribuída em relação à programação de ambientes centralizados, novas ferramentas vêm sendo construídas com o objetivo de auxiliar o programador desses ambientes a desempenhar sua tarefa de formas mais eficazes e produtivas. Uma das ferramentas que há algum tempo tem sido usada na programação centralizada e aos poucos está sendo empregada também na programação concorrente é a programação visual. A programação visual se vale da presença de elementos visuais na especificação dos programas como peças chaves do processo de desenvolvimento de software. No caso específico da programação concorrente, a programação visual é especialmente útil pela capacidade que os gráficos têm de representar de forma mais adequada estruturas bidimensionais. Um programa concorrente, por relacionar no espaço diversos elementos com seus próprios fluxos de execução, faz surgir duas dimensões de análise que são mais difíceis de serem observadas através de programas textuais. Atualmente existem ferramentas de programação visual paralela e distribuída, mas a ênfase é dada na programação paralela, sem muita atenção a aplicações de sistemas abertos ou cliente-servidor. Além disso, tais ferramentas sofrem da falta de apoio à engenharia do software. Considerando essas deficiências, este trabalho apresenta uma ferramenta de programação visual para o desenvolvimento de aplicações compostas por objetos distribuídos que ofereça também a possibilidade de aplicar os principais conceitos da engenharia de software, como reutilização e orientação a objeto. Nesta ferramenta, o programador especifica de maneira visual a estrutura do seu programa, insere o código textual para a lógica da aplicação e o ambiente se encarrega do tratamento da distribuição e da comunicação de mais baixo nível. A aplicação é representada como um grafo dirigido, onde os nodos representam os objetos distribuídos e os arcos indicam os relacionamentos existentes entre esses objetos. A especificação dos programas é modular, baseando-se na reunião de componentes reutilizáveis, o que torna o sistema altamente configurável e extensível. Tanto a implementação da ferramenta quanto o código das aplicações geradas usam a linguagem de programação Java. A linguagem de programação visual projetada não especifica detalhes a respeito de como irá funcionar a comunicação e distribuição dos objetos. Portanto, foram implementados componentes para comunicação e outros recursos de programação distribuída, como locks e dados globais para serem usados nas aplicações. Para validar os principais objetivos da ferramenta, foram implementados alguns exemplos de aplicações distribuídas, como um pequeno sistema de bate-papo.
Resumo:
Computação Móvel é um termo genérico, ainda em definição, ao redor do qual se delineia um espectro de cenários possíveis, desde a Computação Pessoal, com o uso de computadores de mão, até a visão futurista da Computação Ubíqua. O foco do projeto ISAM (Infra-estrutura de Suporte às Aplicações Móveis Distribuída), em desenvolvimento no II/UFRGS, é a Pervasive Computing. Esta desenha um cenário onde o usuário é livre para se deslocar mantendo o acesso aos recursos da rede e ao seu ambiente computacional, todo tempo em qualquer lugar. Esse novo cenário apresenta muitos desafios para o projeto e execução de aplicações. Nesse escopo, esta tese aprofunda a discussão sobre questões relativas à adaptação ao contexto em um ambiente pervasivo sob a ótica de uma Linguagem de Programação, e define uma linguagem chamada ISAMadapt. A definição da linguagem ISAMadapt baseia-se em quatro abstrações: contexto, adaptadores, políticas e comandos de adaptação. Essas abstrações foram concretizadas em duas visões: (1) em tempo de programação, através de comandos da linguagem e arquivos de configuração, descritos com o auxílio do Ambiente de Desenvolvimento de Aplicações; (2) em tempo de execução, através de serviços e APIs fornecidos pelos componentes que integram o ambiente de execução pervasiva (ISAMpe). Deste, os principais componentes que implementam a semântica de execução da aplicação ISAMadapt são: o serviço de reconhecimento de contexto, ISAMcontextService, e a máquina de execução da adaptação dinâmica, ISAMadaptEngine.As principais contribuições desta tese são: (a) primeira linguagem para a codificação de aplicações pervasivas; (b) sintaxe e semântica de comandos para expressar sensibilidade ao contexto pervasivo; (c) fonte para o desenvolvimento de uma metodologia de projeto de aplicações pervasivas; (d) projeto ISAM e o projeto contextS (www.inf.ufrgs.br/~isam) que fornecem suporte para o ciclo de vida das aplicações, desde o desenvolvimento até a execução de aplicações pervasivas.
Resumo:
Este trabalho tem por objetivo apresentar e estudar a aplicação de uma ferramenta chamada PCP – Pseudo-Compilador Portugol, criada para auxiliar estudantes de programação a aprimorar o raciocínio lógico e a criar programas estruturados, sem que precisem se preocupar com comandos e instruções em Inglês ou tenham conhecimento de uma linguagem de programação específica. Por ser uma ferramenta que usa somente palavras do nosso idioma, os alunos podem direcionar todo o seu raciocínio no entendimento e resolução do problema em forma de algoritmo. O estudo experimental realizado neste trabalho pretende analisar e comparar o aprendizado entre grupos de alunos de disciplinas de programação utilizando e não utilizando esta ferramenta. Além de acompanhar o desempenho dos alunos, pretende também coletar informações durante as baterias de testes e obter as opiniões dos mesmos em relação ao PCP, no que se refere às facilidades, dificuldades, pontos positivos e falhas apresentadas. Este estudo é apresentado em duas etapas, com oito baterias de teste em cada uma. Na primeira etapa foram selecionados alunos do Curso de Ciência da Computação da UNIGRAN, em Dourados-MS; na segunda etapa foram selecionados alunos da Escola Anglo Decisivo. Estas duas etapas possibilitam a análise do aprendizado proporcionado pela ferramenta com alunos que já têm alguma noção de programação e com alunos que não tiveram nenhum contato com o desenvolvimento de programas.
Resumo:
Uma das vertentes de negociação de opções é a negociação orientada à volatilidade, aquela que tem como foco principal a volatilidade do ativo objeto, na qual são realizadas operações de compra e venda de opções conforme a volatilidade estiver sub ou sobre-avaliada pelo mercado. Este trabalho procura testar no mercado de opções brasileiro, através de uma simulação de negociação de opções sobre taxa de câmbio, os possíveis benefícios da utilização de um modelo de negociação orientado à volatilidade, empregando diferentes estratégias para obtenção de lucro. As volatilidades foram estimadas através de um modelo de precificação de opções (volatilidade implícita) e um modelo GARCH (1,1). As simulações foram realizadas no período de 1º de julho de 1997 a 1º de julho de 2002, com base nas cotações médias e cotações dos últimos negócios das opções de compra sobre taxa de câmbio de reais por dólar comercial, negociadas na BM&F. Os resultados apontam a possibilidade de obtenção de lucros ao utilizar uma estratégia de negociação orientada à volatilidade, tanto com a simulação empregando a volatilidade extraída do modelo GARCH (1,1) quanto com a simulação utilizando a volatilidade implícita. Comparando os resultados obtidos com as diferentes simulações e estratégias, conclui-se que a simulação com a estratégia de negociação com uso das estimativas de volatilidade GARCH (1,1) obteve os melhores resultados.