998 resultados para Programação orientada a objetos


Relevância:

20.00% 20.00%

Publicador:

Resumo:

O desenvolvimento de software complexo de grande porte é muitas vezes dificultado pela carência de ferramentas adequadas para a clara expressão das idéias dos programadores em todos os aspectos técnicos do projeto. Isto é particularmente verdadeiro quando se lida com o poder de expressão de linguagens de programação. Como os grandes programas se compõem usualmente de segmentos com características técnicas diversificadas, parece natural disponibilizar ferramentas específicas para os programadores, de forma que uma boa expressividade seja obtida no código correspondente. Para que a interface entre estes diferentes segmentos seja efetivada, torna-se viável o emprego de esquemas que facilitem a interação entre os mesmos. O artigo apresenta uma proposta de implementação de um mecanismo de troca de dados entre módulos de linguagens que compõem uma aplicação multilinguagem. O mecanismo pode também ser aplicado a linguagens oriundas de diferentes paradigmas de programação. O artigo também apresenta um pequeno exemplo completo de implementação que exercita parcialmente o ambiente proposto.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Dispositivos adaptativos apresentam a característica de se modificarem dinamicamente em resposta a estímulos de entrada, sem interferência de agentes externos. Eventuais necessidades de modificação de comportamento são automaticamente detectadas por estes dispositivos para, em seguida, reagirem a elas de forma espontânea. Historicamente tais dispositivos emergiram das pesquisas na área de linguagens formais e autômatos. No entanto, o formalismo suscitou aplicações em diversas outras áreas. Programas com código auto-modificável, que perderam terreno em conseqüência do advento da Engenharia de Software nos anos 70, voltaram à vida recentemente em aplicações diversas. Uma das formas de programação de código auto-modificável é a utilização de linguagens de programação especificamente projetadas para isso. Linguagens adaptativas de programação são dispositivos adaptativos que empregam uma linguagem de programação convencional como mecanismo subjacente. Com o correr de sua execução, um programa escrito em uma linguagem adaptativa exibirá um comportamento auto-modificável em decorrência da ativação de suas ações adaptativas. O artigo apresenta aspectos do projeto e implementação de um ambiente para gerenciar a execução de uma linguagem adaptativa. Com o emprego de linguagem adaptiva, um novo estilo de programação é concebido, uma vez que o seu comportamento está diretamente associado ao conjunto de regras que o define, o qual se altera à medida que o código é executado.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

An adaptive device is made up of an underlying mechanism, for instance, an automaton, a grammar, etc., to which is added an adaptive mechanism that is responsible for allowing a dynamic modification in the structure of the underlying mechanism. Adaptive languages have the basic feature of allowing the development of programs that self-modify through adaptive actions at runtime. The conception of such languages calls for a new programming style, since the application of adaptive technology suggests a new way of thinking. The adaptive programming style may be a feasible alternate way to obtain selfmodifying consistent codes, which allow its use in modern applications for self-modifying.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Trabalho apresentado no XIX Congresso da Associação Brasileira de Educação Musical

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho apresenta uma técnica de programação e controle da construção repetitiva denominada Linha de Balanço. E uma técnica, surgida na indústria fabril, onde a produção em série e em grande escala exige a organização dos métodos de produção e a racionalização do trabalho. O estudo, inicialmente, modela o trabalho de construção de unidades repetitivas, salientando os problemas de organização e administração destes empreendimentos. Num segundo momento, são apresentados os princípios teóricos da técnica com aplicações práticas da programação. Por fim, é analisada a metodologia usual de construção de conjuntos habitacionais através de um estudo de caso e, observadas as condições de aplicação da técnica da Linha de Balanço, não exigindo mudificações muito profundas na atual ação gerencial neste tipo de obra. As conclusões esboçadas confirmam as vantagens da técnica da Linha de Balanço para estes empreendimentos e propõem a sua utilização na organização do trabalho nos canteiros repetitivos.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho apresenta o projeto de uma interface visual para modelos de bancos de dados orientados a objetos, com suporte para versões. Um requisito importante, não atendido pelas interfaces visuais específicas e genéricas para sistemas orientados a objetos, é a capacidade de definir e manipular versões de um objeto nos vários níveis da hierarquia de classes (herança por extensão, adotada pelo modelo de versões [GOL 95]). As interfaces, que manipulam versões, suportam essa característica no nível mais especializado da hierarquia (herança por refinamento, adotada pelos principais SGBDOOs). Procurando prover a possibilidade do versionamento de objetos nos vários níveis da hierarquia de classes, surgiu a motivação para projetar e desenvolver uma interface visual com funcionalidades de interfaces existentes (específicas e genéricas) e que obedeça às características principais dos Modelos de Dados Orientados a Objetos e do Modelo de Versões [GOL 95], seguindo as características recomendadas para interfaces visuais para MDOOs, propostas em [SIL 96]. Foi implementado um protótipo com algumas das características projetadas para o browser de objeto e seu suporte para versões.

Relevância:

20.00% 20.00%

Publicador:

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.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Atualmente os sistemas computacionais mais sofisticados são aqueles que apresentam imagens gráficas. Devido às características de alta velocidade de processamento e excelente resultado na geração de imagens o uso da Computação Gráfica se dá em diversas áreas como a indústria, pesquisa, publicidade, entretenimento, medicina, treinamento, dentre outras. Este trabalho aborda dois assuntos clássicos na Computação Gráfica, Geometria Sólida Construtiva (CSG) e Sombras Projetadas. Ambos são muito importantes para esta linha de pesquisa da Ciência da Computação. A Geometria Sólida Construtiva é utilizada na modelagem de objetos e as sombras projetadas são necessárias para aumentar o realismo das imagens. Geometria sólida construtiva (CSG) é uma técnica para a modelagem de sólidos, que define sólidos complexos pela composição de sólidos simples (primitivas). Isso inclui também a composição de objetos já combinados, até que se chegue a um objeto mais complexo. Um fator muito importante e necessário na obtenção de imagens realistas e que deve ser considerado é a utilização de sombras, pois estas são eficazes no realismo e impressão espacial de objetos tridimensionais. As sombras estabelecem diversos níveis de profundidade na imagem, fazem uma pontuação geométrica na cena de modo a evitar que os objetos não pareçam estar flutuando no ar. Este trabalho consiste em apresentar uma proposta para a geração de sombras em objetos modelados pela Geometria Sólida Construtiva. Para tanto foram estudados os assuntos referentes à modelagem de objetos por CSG, algoritmos para a geração de sombras “bem delimitadas” e formas de gerar sombras na Geometria Sólida Construtiva. O processo de geração de sombras em cenas modeladas por CSG, através da aplicação das mesmas operações booleanas envolvidas na modelagem dos objetos, sobre as sombras nem sempre apresenta resultados corretos. Diante disso, foram investigadas outras formas de solucionar o problema. Dentre estas, uma alternativa é a realização de transformações na árvore binária CSG, através de outras operações, envolvendo o uso de complemento com operações de união e interseção, para a modelagem do objeto e geração da sombra correspondente. Com base nos estudos realizados foram implementados dois protótipos que exibem a sombra projetada de objetos modelados por CSG. Na implementação do protótipo A utilizaram-se as técnicas tradicionais de modelagem de sólidos e sombra projetada. Os resultados obtidos com este protótipo serviram de referência. No protótipo B os resultados foram obtidos através da aplicação da zona ativa das primitivas na modelagem dos objetos e a sombra é projetada durante o processo de avaliação de contornos do sólido. Os resultados obtidos com este protótipo são comparados com os resultados do protótipo A e são apresentados como forma de exibir a aplicação do método proposto.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

O Resource Description Framework (RDF) é uma infra-estrutura, que possibilita a codificação, troca e reuso de metadata estruturado. Metadata é dados sobre dados. O termo refere a qualquer dado usado para ajudar a identificação, descrição e localização de recursos eletrônicos na rede. O RDF permite adicionar declarações, sinônimos e palavras que não estão presentes nos recursos, mas que são pertinentes a eles. Uma declaração RDF pode ser desenhada usando diagramas de arcos e nodos, onde os nodos representam os recursos e os arcos representam as propriedades nomeadas. O modelo básico consiste em recursos, propriedades e objetos. Todas as coisas sendo descritas pelas declarações RDF são chamadas de recursos. Um recurso pode ser uma página da Web inteira ou um elemento específico HTML ou XML dentro de um documento fonte. Uma propriedade é um aspecto específico, característica, atributo, ou relação usada para descrever um recurso. O objeto pode ser um outro recurso ou um literal. Estas três partes, juntas, formam uma declaração RDF. O resultado do parser para recursos com metadata RDF, é um conjunto de declarações referentes aquele recurso. A declaração destas propriedades e a semântica correspondente delas estão definidas no contexto do RDF como um RDF schema. Um esquema não só define as propriedades do recurso (por exemplo, título, autor, assunto, tamanho, cor, etc.), mas também pode definir os tipos de recursos sendo descritos (livros, páginas Web, pessoas, companhias, etc.). O RDF schema, provê um sistema básico de tipos necessários para descrever tais elementos e definir as classes de recursos. Assim, os recursos constituindo este sistema de tipos se tornam parte do modelo RDF de qualquer descrição que os usa. A geração de modelos RDF pode ser conseguida através de algoritmos implementados com linguagens de programação tradicionais e podem ser embutidos em páginas HTML, documentos XML e até mesmo em imagens. Com relação a modelos em imagens, servidores Web específicos são usados para simular dois recursos sobre o mesmo URI, servindo ora a imagem ora a descrição RDF. Uma alternativa para armazenar e manipular grande quantidade de declarações RDF é usar a tecnologia de banco de dados relacional. Abordagens para armazenar declarações RDF em banco de dados relacional foram propostas, mas todas elas mantêm modelos diversos de diferentes fontes. Critérios de avaliação como tempo de carga, proliferação de tabelas, espaço, dados mantidos e custo de instruções SQL foram definidos. Duas abordagens apresentaram resultados satisfatórios. Com uma nova abordagem proposta por este trabalho se obteve melhores resultados principalmente no aspecto de consultas. A nova proposta provê mecanismos para que o usuário faça seu próprio modelo relacional e crie suas consultas. O conhecimento necessário pelo usuário se limita em parte aos modelos mantidos e ao esquema RDF.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

No projeto de arquiteturas computacionais, a partir da evolução do modelo cliente-servidor, surgiram os sistemas distribuídos com a finalidade de oferecer características tais como: disponibilidade, distribuição, compartilhamento de recursos e tolerância a falhas. Estas características, entretanto, não são obtidas de forma simples. As aplicações distribuídas e as aplicações centralizadas possuem requisitos funcionais distintos; aplicações distribuídas são mais difíceis quanto ao projeto e implementação. A complexidade de implementação é decorrente principalmente da dificuldade de tratamento e de gerência dos mecanismos de comunicação, exigindo equipe de programadores experientes. Assim, tem sido realizada muita pesquisa para obter mecanismos que facilitem a programação de aplicações distribuídas. Observa-se que, em aplicações distribuídas reais, mecanismos de tolerância a falhas constituem-se em uma necessidade. Neste contexto, a comunicação confiável constitui-se em um dos blocos básicos de construção. Paralelamente à evolução tanto dos sistemas distribuídos como da área de tolerância a falhas, foi possível observar também a evolução das linguagens de programação. O sucesso do paradigma de orientação a objetos deve-se, provavelmente, à habilidade em modelar o domínio da aplicação ao invés da arquitetura da máquina em questão (enfoque imperativo) ou mapear conceitos matemáticos (conforme o enfoque funcional). Pesquisadores demonstraram que a orientação a objetos apresenta-se como um modelo atraente ao desenvolvimento de aplicações distribuídas modulares e tolerantes a falhas. Diante do contexto exposto, duas constatações estimularam basicamente a definição desta dissertação: a necessidade latente de mecanismos que facilitem a programação de aplicações distribuídas tolerantes a falhas; e o fato de que a orientação a objetos tem-se mostrado um modelo promissor ao desenvolvimento deste tipo de aplicação. Desta forma, nesta dissertação definem-se classes para a comunicação do tipo unicast e multicast, nas modalidades de envio confiável e não-confiável. Além destes serviços de comunicação básicos, foram desenvolvidas classes que permitem referenciar os participantes da comunicação através de nomes. As classes estão organizadas na forma de um pacote, compondo um framework. Sua implementação foi desenvolvida usando Java. Embora não tivessem sido requisitos básicos, as opções de projeto visaram assegurar resultados aceitáveis de desempenho e possibilidade de reuso das classes. Foram implementados pequenos trechos de código utilizando e testando a funcionalidade de cada uma das classes de comunicação propostas.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Esta dissertação descreve uma arquitetura de suporte para a criação de sistemas de automação baseados em objetos distribuídos e no barramento CAN. Consiste basicamente da utilização de orientação a objetos para modelagem dos sistemas bem como sua implementação na forma de objetos autônomos. Os objetos são então distribuídos em uma rede de placas microcontroladas, as quais são utilizadas para o controle da planta, e PC's, os quais são utilizados para supervisão e monitoração. O suporte em tempo de execução para os objetos é dado por um sistema operacional que permite a sua implementação na forma de processos concorrentes, o qual, no caso das placas microcontroladas, é um sistema operacional do tipo embarcado. A comunica ção entre os objetos é realizada através de um protocolo publisher/subscriber desenvolvido para o barramento CAN que é suportado por uma biblioteca e elementos de comunicação especí cos. Este trabalho tem como objetivo apresentar alternativas aos sistemas de automação existentes atualmente, os quais baseiamse geralmente em dispositivos mestre/escravo e em comunicações do tipo ponto a ponto. Dessa forma, a arquitetura desenvolvida, apropriada para sistemas embarcados, visa facilitar a criação e dar suporte para sistemas de automação baseados em objetos distribuídos.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este trabalho apresenta o módulo Collaborative Service, uma extensão do ambiente Cave, desenvolvido para suportar conceitos de trabalho cooperativo no projeto de circuitos integrados. Esta extensão por sua vez, é baseada na metodologia Pair- Programming e nas tecnologias Jini e Javaspaces. O módulo Collaborative Service foi desenvolvido para auxiliar a continuidade do processo de desenvolvimento de circuitos integrados complexos, inserindo uma dinâmica de grupo através da extensão de Pair-Programming para máquinas remotas. Esse modelo permite que dois ou mais projetistas interajam em um mesmo projeto ou blocos de projeto, independente de suas localizações geográficas e tipos de plataformas de hardware/software. Ele foi projetado para ser genérico e essa característica o torna capaz de suportar as ferramentas de CAD, atuais e futuras, do ambiente Cave (um framework de apoio ao projeto de circuitos integrados). Como estudo de caso, foram utilizadas duas ferramentas do Ambiente Cave. O primeiro caso mostra uma cooperação em nível de descrições gráficas, representada pela ferramenta Blade, um editor de esquemáticos hierárquico. O segundo caso foi representado pelo editor de descrições textuais (VHDL, Verilog e Linguagem C), chamado Homero. No estudo de caso com a ferramenta Blade foi demonstrado que a cooperação proposta por esse modelo pode atuar sob diferentes níveis de hierarquia de projeto, além de suportar a interação de inúmeros projetistas em um mesmo bloco. Na ferramenta Homero, demonstrou-se a cooperação em nível de descrições textuais, representados por (códigos) projetos VHDL acrescidos da participação de vários projetistas. Com esses exemplos, foi possível demonstrar as estratégias de percepção e comunicação com os projetistas, além de descrever a criação de blocos de projeto de uma forma cooperativa. Como contribuição desse trabalho, acrescenta-se ao Ambiente Cave mais um recurso para o projeto de circuitos integrados. Nesse sentido, grupos de projetistas podem projetar um sistema ou circuito integrado de forma cooperativa utilizando-se das funcionalidades desse modelo.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Este texto apresenta um novo modelo multiparadigma orientado ao desenvolvimento de software distribuído, denominado Holoparadigma. O Holoparadigma possui uma semântica simples e distribuída. Sendo assim, estimula a modelagem subliminar da distribuição e sua exploração automática. A proposta é baseada em estudos relacionados com modelos multiparadigma, arquitetura de software, sistemas blackboard, sistemas distribuídos, mobilidade e grupos. Inicialmente, o texto descreve o modelo. Logo após, é apresentada a Hololinguagem, uma linguagem de programação que implementa os conceitos propostos pelo Holoparadigma. A linguagem integra os paradigmas em lógica, imperativo e orientado a objetos. Além disso, utiliza um modelo de coordenação que suporta invocações implícitas (blackboard) e explícitas (mensagens). A Hololinguagem suporta ainda, concorrência, modularidade, mobilidade e encapsulamento de blackboards em tipos abstratos de dados. Finalmente, o texto descreve a implementação da Holoplataforma, ou seja, uma plataforma de desenvolvimento e execução para a Hololinguagem. A Holoplataforma é composta de três partes: uma ferramenta de conversão de programas da Hololinguagem para Java (ferramenta HoloJava), um ambiente de desenvolvimento integrado (ambiente HoloEnv) e um plataforma de execução distribuída (plataforma DHolo).

Relevância:

20.00% 20.00%

Publicador:

Resumo:

O processo de programação de recursos é parte do planejamento e controle da produção e possui grande importância para o desempenho de empreendimentos de construção. Constitui-se numa atividade multifuncional, envolvendo a direção da empresa e seus departamentos de marketing, finanças, recursos humanos e suprimentos. Sua ineficácia tem sido identificada como responsável por muitos dos problemas relacionados à dilatação do prazo de execução do empreendimento, ao desperdício de recursos e à baixa produtividade da mão-de-obra. Considerando que o desempenho da programação de recursos está fortemente relacionado à quantidade e qualidade das informações que a suportam, o presente trabalho tem como objetivo a proposição de um método de intervenção direcionado ao sistema de informação deste processo. O método proposto divide-se em duas etapas: o diagnóstico inicial do sistema de informações e, posteriormente, o planejamento e implantação de ações de melhoria. O método foi aplicado em estudos de caso realizados em empresas de pequeno porte, nas quais foi implementada a programação formal de recursos, sendo constatada a mudança de atitude dos funcionários frente aos processos de planejamento da produção e programação de recursos.