999 resultados para Interface de programação de aplicações


Relevância:

30.00% 30.00%

Publicador:

Resumo:

Para reutilização, manutenção e refatoração, projetistas de sistemas de software, freqüentemente, precisam examinar o código fonte da aplicação para entender os detalhes dos sistemas desenvolvidos. As aplicações orientadas a objetos em geral, tornam-se coleções nebulosas de classes e implementações de métodos. Sem dúvida a habilidade de entender sistemas de software é largamente aumentada visualizando-se esses produtos em níveis mais altos de abstração. Os padrões de projeto demonstram um alto índice de abstração e são considerados uma ferramenta efetiva para o entendimento de sistemas de software orientados a objetos. Aplicações orientadas a objetos visualizadas como um sistema de interação de padrões requerem a descoberta, identificação e classificação de grupos de classes relacionadas. Estas visualizações podem representar qualquer padrão conhecido ou agrupamentos que executam uma tarefa abstrata e necessariamente não são uma solução de padrão conhecida. Os padrões de projeto descrevem, portanto, microarquiteturas que resolvem problemas arquitetônicos em sistemas de software orientados a objetos. É importante identificar estas microarquiteturas durante a fase de manutenção de aplicações orientadas a objetos. Faz-se necessário salientar que estas microarquiteturas aparecem freqüentemente distorcidas na aplicação fonte. O objeto deste trabalho é demonstrar a viabilidade de construir uma ferramenta para descobrir a utilização de padrões de projeto em aplicações Java. Assim, esta tese examina as características de alguns padrões, determinando a natureza do que faz um padrão ser detectável por intermédio de meios automatizados, e propõe algumas regras pelas quais um conjunto de padrões possa ser identificado. As regras são baseadas nos relacionamentos entre classes e objetos mediante observação dos modelos estático e dinâmico. Este trabalho também documenta o desenvolvimento do protótipo da ferramenta de inspeção, que tem por objetivo aplicar os processos de engenharia reversa e reflexão computacional sobre código Java, utilizando as informações adquiridas para detectar padrões de projeto. Finalmente, esta tese demonstra a utilização dessa ferramenta em um exemplo pequeno de aplicação Java e forma a base para trabalhos adicionais que investiguem a existência de diferentes padrões de projeto em sistemas de software construídos em Java.

Relevância:

30.00% 30.00%

Publicador:

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.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

O desenvolvimento de projetos de interfaces gráficas está apoiado em guias de recomendações. Estes guias apresentam regras genéricas aos projetos de Interfaces Homem Computador–IHC. Entretanto, aplicações particulares, como as educacionais, não encontram regras específicas que atendam as necessidades do usuário-alvo. Ainda, a análise comparativa entre guias disponíveis aponta contradições entre as recomendações genéricas com aquelas específicas aplicadas a um determinado ambiente. A necessidade de um modelo de referência para a construção de interfaces gráficas amigáveis ao usuário e a escassez e contradições de recomendações específicas às aplicações educacionais motivaram o trabalho de pesquisa prática junto aos usuáriosalvo. Para a identificação das recomendações sobre aspectos gráficos básicos e elementos de navegação necessários a uma efetiva interação com interfaces dedicadas a aplicações educacionais, foi desenvolvido um instrumento de pesquisa que permitiu a investigação das preferências relativas aos aspectos pesquisados junto ao público-alvo. Os dados coletados foram tratados estatisticamente e os resultados obtidos contrariam tanto critérios adotados em interfaces de sistemas de ensino disponíveis na Internet como algumas recomendações sobre os mesmos disponíveis na literatura. Os resultados obtidos apontam, também, para a preferência dos usuários por elementos de navegação que não são referidos nos guias de recomendações consultados. A análise dos resultados possibilitou a geração de um modelo básico que recomenda preferências sobre aspectos gráficos básicos, como aplicação de cores em fontes e fundos de tela, tipologia de fontes para textos e paginação, e também, sobre componentes de navegação, como posicionamento e preferência por tipo de recurso de navegação. O modelo proposto está fundamentado nas recomendações de Nielsen [NIE 00], o qual recomenda que as necessidades dos usuários na interatividade com a interface sejam identificadas junto a estes usuários. As recomendações apresentadas neste trabalho foram utilizadas, inicialmente, nos ambientes educacionais desenvolvidos dentro dos projetos Tapejara [TAP 00] e LaVia [LAV 00].

Relevância:

30.00% 30.00%

Publicador:

Resumo:

A programação paralela é sem dúvida mais complexa do que a programação seqüencial. O controle de múltiplos processos e de suas interações são as principais razões para tal complexidade. Apesar da existência de algumas ferramentas que atendem à fase de desenvolvimento de programas paralelos, a complexidade é normalmente passada para as ferramentas paralelas, isto é, as ferramentas não são de fácil utilização. Assim, existe uma necessidade de ambientes e ferramentas realmente fáceis de usar no âmbito da programação paralela. Embora existam algumas ferramentas interessantes, inclusive algumas comerciais, seu uso permanece insuficiente, em parte devido à complexidade na utilização de algumas delas, em parte devido ao seu uso específico em determinadas plataformas. Portanto, existe ainda um grande campo de estudo no que diz respeito a melhorias de projeto sobre ferramentas existentes e desenvolvimento de ferramentas com um maior número de recursos. Provavelmente, a ferramenta paralela mais necessária aos programadores é o depurador paralelo. Por sua vez, ferramentas de depuração paralela estão entre as mais complexas de se desenvolver e talvez isso explique o motivo pelo qual poucas têm sido efetivamente utilizadas. Este trabalho descreve uma contribuição no campo da depuração paralela através da análise de interfaces de depuração paralela e da proposta de um modelo. A partir deste modelo, uma interface de depuração paralela – PADI (PArallel Debugger Interface) foi desenvolvida e seu principal objetivo é o de oferecer uma interface intuitiva e de fácil utilização. O modelo proposto e conseqüentemente a ferramenta PADI tratam da depuração paralela simbólica on-line. A depuração on-line trata do oferecimento de acesso aos símbolos do programa, como variáveis e registradores. A depuração on-line diferencia-se da off-line pelo tipo de interação com a execução do programa. A depuração on-line oferece interação direta com a aplicação, enquanto que a off-line interage com um arquivo de monitoração gravado durante a execução da aplicação paralela. A depuração on-line é similar à depuração seqüencial tradicional e, conseqüentemente, é de mais fácil utilização por parte da maioria dos programadores.

Relevância:

30.00% 30.00%

Publicador:

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.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Existe uma certa gama de aplicações que não pode ser implementada através do modelo convencional de transações, são aplicações que tem um tempo de duração mais longo do que aquelas convencionalmente modeladas. Em uma transação Atômica, ou todo o trabalho é realizado por completo ou nada é feito, mas, quando se trata de atividades de longa duração, isto pode significar a perda de trabalho executado durante horas ou, até mesmo, dias. Pelo mesmo motivo, transações longas não devem executar isoladamente, porque isto impede que outras transações tenham acesso aos dados sendo manipulados. No âmbito do projeto TRANSCOOP, vêm sendo realizados vários estudos sobre modelos de transações não convencionais. Dentre eles, encontra-se o Modelo de Contratos, que prevê um mecanismo de controle seguro para gerenciar aplicações distribuídas que apresentam atividades de longa duração. Para experimentar e avaliar as idéias inseridas neste modelo está sendo desenvolvido um protótipo. Este sistema é provido de uma interface gráfica interativa, baseada em Manipulação Direta, e suporta a definição de transações longas de banco de dados de acordo com o Modelo de Contratos. O objetivo deste trabalho é descrever a arquitetura de um protótipo para o Modelo de Contratos, definindo a função de cada um de seus módulos, mais especificamente o módulo Interface, e a comunicação entre eles. Para a definição de uma interface adequada foram considerados aspectos de outras áreas da ciência, pois a área de interfaces homemmáquina é multidisciplinar.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Muitos problemas de Dinâmica em Economia se encaixam dentro de uma estrutura de modelos de decisão seqüencial, sendo resolvidos recursivamente. Programação Dinâmica uma técnica de otimização condicionada que se encarrega de solucionar problemas desse tipo. Esse trabalho tem como objetivo apresentar uma resenha dos principais resultados teóricos em Programação Dinâmica. Os métodos da Programação Dinâmica são válidos tanto para problemas determinísticos como para os que incorporam variável incerteza. esperada objetividade de uma dissertação de Mestrado, no entanto, nos impediu de extender análise, deixando assim de considerar explicitamente neste trabalho modelos estocásticos, que teria enriquecido bastante parte destinada aplicações Teor ia Econômica. No capítulo desenvolvemos instrumental matemático, introduzindo uma série de conceitos resultados sobre os quais se constrói análise nos capítulos subsequentes. Ilustramos tais conceitos com exemplos que seguem um certo encadeamento. Nas seções 1.1 1.2 apresentamos as idéias propriedades de espaços métricos espaços vetoriais. Na seção 1.3, prosseguimos com tópicos em análise funcional, introduzindo noção de norma de um vetor de espaços de Banach. seção 1.4 entra com idéia de contração, Teor ema do Ponto Fixo de Banach e o teor ema de Blackwell. O Teorema de Hahn-Banach, tanto na sua forma de extensão quanto na sua forma geométrica, preocupação na seção 1.5. Em particular, forma geométrica desse teorema seus corolários são importantes para análise conduzida no terceiro capítulo. Por fim, na seção 6, apresentamos Teorema do Máximo. Ao final deste capítulo, como também dos demais, procuramos sempre citar as fontes consultadas bem como extensões ou tratamentos alternativos ao contido no texto. No capítulo II apresentamos os resultados métodos da Programação Dinâmica em si seção 2.1 cuida da base da teoria, com Princípio da Otimal idade de Eellman e a derivação de um algoritmo de Programação Dinâmica. Na seção 2.2 mostramos que esse algoritmo converge para função valor ótima de um problema de horizonte infinito, sendo que esta última satisfaz chamada Equação de Bellman. seção seguinte se preocupa em fornecer caracterizaçBes para função valor mencionada acima, mostrando-se propriedades acerca de sua monotonicidade concavidade. seção 2.4 trata da questão da diferenciabi idade da função valor, que permite se obter alguns resultados de estática Cou dinâmica} comparativa partir da Equação de Bellman. Finalmente, na seção 2.5 apresentamos uma primeira aplicação Teoria Econômica, através de um modelo de crescimento econômico ótimo. No capítulo III introduzimos uma outra técnica de otimização Programação Convexa- mostramos dificuldade em se tentar estabelecer alguma relação de dominância entre Programação Dinâmica Programação Convexa. Na seção 3.2 "apresentamos os Teoremas de Separação, dos quais nos utilizamos na seção seguinte para demonstrar existência de Multiplicadores de Lagrange no problema geral da Programação Convexa. No final desta seção dizemos porque não podemos inferir que em espaços de dimensão infinita Programação Convexa não pode ser aplicada, ao contrário da Programação Dinâmica, que evidenciaria uma dominancia dessa última técnica nesses espaços. Finalmente, capítulo IV destinado uma aplicação imediata das técnicas desenvolvidas principalmente no segundo capítulo. Com auxílio dessas técnicas resolve-se um problema de maximização intertemporal, faz-se uma comparação dos resultados obtidos através de uma solução cooperativa de uma solução não-cooperativa.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Muitos aplicativos atuais, envolvendo diversos domínios de conhecimento, são estruturados como arquiteturas de software que incorporam, além dos requisitos funcionais, requisitos não funcionais, como segurança, por exemplo. Tais requisitos podem constituir um domínio próprio, e, portanto, serem comuns a várias outras arquiteturas de software. Tecnologias como Programação Orientada a Aspectos, Reflexão Computacional e Padrões de Projeto colaboram no desenvolvimento de arquiteturas que provêem a separação de requisitos não funcionais. Porém, sua experimentação e adoção no domínio da segurança computacional ainda é incipiente. O foco deste trabalho é a elaboração de um padrão de projeto voltado à segurança, utilizando como arquitetura conceitual programação orientada a aspectos, e como arquitetura de implementação, reflexão computacional. A composição destas tecnologias resulta em um middleware orientado à segurança, voltado a aplicações desenvolvidas em Java. Estuda-se as tecnologias, seus relacionamentos com a área de segurança, seguido da proposta de uma arquitetura de referência, a partir da qual é extraído um protótipo do middleware de segurança. Este, por sua vez, provê mecanismos de segurança tão transparentes quanto possível para as aplicações que suporta. Com o objetivo de realizar a implementação do middleware de segurança, também são estudadas os mecanismos de segurança da plataforma Java, porém limitado ao escopo deste trabalho. Segue-se o estudo da base conceitual das tecnologias de Reflexão Computacional, o modelo de implementação, seguido de Programação Orientada a Aspectos, o modelo conceitual, e, por fim, têm-se os Padrões de Projeto, a arquitetura de referência. Integrando as três tecnologias apresentadas, propõe-se um modelo, que estabelece a composição de um Padrão Proxy, estruturado de acordo com a arquitetura reflexiva. Este modelo de arquitetura objetiva implementar o aspecto de segurança de acesso a componentes Java, de forma não intrusiva,. Baseado no modelo, descreve-se a implementação dos diversos elementos do middleware, estruturados de forma a ilustrar os conceitos propostos. Ao final, apresenta-se resultados obtidos durante a elaboração deste trabalho, bem como críticas e sugestões de trabalhos futuros.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

A linguagem de programação Java vem sendo uma das escolhidas para a implementação de aplicações compostas por objetos distribuídos. Estas aplicações caracterizam-se por possuir comportamento complexo e, portanto, são mais difíceis de depurar e refinar para obter melhores desempenhos. Considerando a necessidade do desenvolvimento de uma ferramenta de monitoração para o modelo de objetos distribuídos, que colete informações mais detalhadas sobre a execução da aplicação, é apresentado neste trabalho um ambiente de monitoração de aplicações distribuídas escritas em Java, o DOMonitor. Um dos objetivos do DOMonitor é obter o comportamento que a aplicação apresenta durante a execução, possibilitando a detecção de comportamentos equivocados e seu respectivo refinamento. O DOMonitor é voltado para aplicações compostas por objetos distribuídos e caracteriza-se por identificar principalmente: (i) o comportamento dinâmico das threads; (ii) a utilização dos métodos de sincronização; e (iii) a comunicação entre os entes distribuídos da aplicação. O DOMonitor está fundamentado em quatro premissas: (i) ser transparente para o usuário, não exigindo anotações no código fonte; (ii) apresentar uma organização modular, e por isto ser flexível e expansível; (iii) ser portável, não exigindo nenhuma alteração na Maquina Virtual Java; e (iv) operar de forma a garantir a ordem dos eventos previstos pelo programa. Os dados produzidos pelo DOMonitor podem ser utilizados com diversas finalidades tais como visualização da execução, escalonamento e como suporte à execução de aplicações móveis. Para comprovar esta versatilidade, foi proposta a integração do sistema a dois outros projetos, o Pajé e o ISAM. O projeto ISAM utilizará os dados monitorados para tomadas de decisão durante o curso da execução e o projeto Pajé permite a visualização gráfica das características dinâmicas de uma aplicação Java.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Estudo de caso apontando experiência na área financeira em que a interface entre a organização e o público não se dá por critérios exclusivamente econômicos. Discute a racionalidade e o desenho de sistemas sociais, como proposto por Guerreiro Ramos e conclui com a conceituação de Banco Alternativo, avaliando quanto este é efetivo e quanto este é permeado por "razões substantivas".

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Esta pesquisa aborda a interface entre vendas e produção em operações fabris, procurando compreender melhor suas características sistêmicas e de transformação da informação estratégica, de atendimento a mercado, na informação operacional, de programação da fábrica. O uso de metodologia de enfoque sistêmico, em conjunto com revisão de literatura pertinente e levantamento de campo em seis empresas manufatureiras de (mix) alto de produtos operando em mercados diferentes permitiu a identificação de uma possibilidade de melhoria do processo de planejamento e programação comparado a como é descrito na bibliografia e como era operado nas empresas pesquisadas, com a adoção de variabilidade como parâmetro de entendimento e segregação entre produtos cujos perfis de demandas apresentam comportamentos diversos, mas que eventualmente podem estar debaixo de políticas e procedimentos únicos.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Esta dissertação apresenta duas implementações de algoritmos para gerência dinâmica de memória em software, as quais foram desenvolvidas utilizando como alvo uma plataforma embarcada Java. Uma vez que a plataforma utilizada pertence a uma metodologia para geração semi-automática de hardware e software para sistemas embarcados, os dois algoritmos implementados foram projetados para serem integrados ao contexto desta mesma metodologia. Como forma de estabelecer comparações detalhadas entre as duas implementações desenvolvidas, foram realizadas diversas estimativas em desempenho, uso de memória, potência e energia para cada implementação, utilizando para isto duas versões existentes da plataforma adotada. Através da análise dos resultados obtidos, observou-se que um dos algoritmos desenvolvidos obteve um desempenho melhor para realização da gerência dinâmica da memória. Em contrapartida, o outro algoritmo possui características de projeto que possibilitam sua utilização com aplicações de tempo-real. De um modo geral, os custos adicionais resultantes da utilização do algoritmo de tempo-real, em relação ao outro algoritmo também implementado, são de aproximadamente 2% para a potência média dissipada, 16% para o número de ciclos executados, 18% para a energia consumida e 10% sobre a quantidade de total memória utilizada. Isto mostra que o custo extra necessário para utilização do algoritmo de tempo real é razoavelmente baixo se comparado aos benefícios proporcionados pela sua utilização. Como impactos finais produzidos por este trabalho, obteve-se um acréscimo de 35% sobre o número total de instruções suportadas pela arquitetura utilizada. Adicionalmente, 12% das instruções que já existiam no conjunto desta arquitetura foram modificadas para se adaptarem aos novos mecanismos implementados. Com isto, o conjunto atual da arquitetura passa a corresponder a 44% do total de instruções existentes na arquitetura da máquina virtual Java. Por último, além das estimativas desenvolvidas, foram também realizadas algumas sugestões para melhoria global dos algoritmos implementados. Em síntese, alguns pontos cobertos por estas sugestões incluem: a migração de elementos do processamento do escopo dinâmico para o estático, o desenvolvimento de mecanismos escaláveis para compactação de memória em tempo-real, a integração de escalonadores ao processo de gerência de memória e a extensão do processo de geração semi-automática de software e hardware para sistemas embarcados.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

O professor apresenta interfaces orientadas a objetos na linguagem de programação Java. Ilustra como e quando são utilizadas as interfaces orientadas a objetos em Java.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Os ambientes virtuais têm sido cada vez mais utilizados nas mais diferentes áreas, quer na medicina, engenharia civil ou até mesmo em áreas terapêuticas. Devido à sua emergente utilização foi estabelecido em parceria com o Museu da Baleia, através de várias reuniões, que seria viável a modelação de cenários virtuais, onde se desenvolvessem animações, com o intuito de que representassem o ciclo de vida das baleias cachalotes. Esta escolha foi efectuada de forma a envolver várias temáticas relacionadas com as baleias cachalotes, desde a migração, os problemas relacionados com o lixo no fundo do mar, etc. De seguida, foi construída uma Framework para incorporação destas animações (vídeos) e realização de actividades utilizando diferentes tipos de médias, Realidade Virtual e Realidade Aumentada, tornando desta forma as actividades mais interactivas, estimulantes e atractivas. Para a execução destas etapas do projecto foi decidido utilizar a ferramenta 3ds Max para a modelação dos objectos que iriam compor os cenários virtuais, bem como a sua animação. Para a implementação da Framework foi decidido utilizar o Adobe Flash visto ser uma ferramenta que permite a incorporação de diferentes tipos de médias, de Realidade Virtual, Realidade Aumentada e possibilita a construção de uma interface simples e atractiva. Esta Framework foi desenvolvida para que no futuro seja possível ser modificada, isto é, para que seja capaz de efectuar a incorporação de outros tipos de conteúdos, assim como a edição dos que já estão implementados.