• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 1008
  • 110
  • 72
  • 23
  • 23
  • 23
  • 21
  • 15
  • 7
  • 7
  • 6
  • 6
  • 6
  • 4
  • 4
  • Tagged with
  • 1210
  • 308
  • 287
  • 273
  • 271
  • 268
  • 229
  • 194
  • 192
  • 182
  • 168
  • 152
  • 148
  • 127
  • 118
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
781

Um conjunto de classes para simulacao interativa visual de processadores no ambiente simoo / A class set for visual interactive simulation at SIMOO environment

Ferreira, Luciano January 1998 (has links)
O Projeto T&D-Bench (Teaching and Design Workbench) tern como objetivo fornecer um ambiente didático para fins de avaliação de desempenho de processadores utilizando modelagem e simulação interativas visuais. A aplicação dos conceitos de orientação a objetos (abstração, encapsulamento, herança e polimorfismo) em modelagem de hardware vem sendo amplamente discutida na literatura. Entre os benefícios que este paradigma traz para os modelos de hardware pode-se citar: maior responsabilidade dos modelos, melhor documentação e facilidade de manutenção. O ambiente SIMOO é composto por uma biblioteca de classes e por uma ferramenta gráfica (MET - Model Edition Tool). Este ambiente, utilizado como plataforma para o desenvolvimento deste trabalho, é um ambiente genérico para modelagem e simulação de sistema discretos no qual os modelos sAo construídos de maneira hierárquica e utilizam os conceitos de orientação a objetos como metodologia de projeto e implementação. Este trabalho é a primeira etapa de desenvolvimento do projeto T&D-Bench e iniciou com a modelagem dos processadores Intel 8051 e DLX. Com isso foi possível identificar componentes de arquitetura de processadores que pudessem ser generalizados. As classes genéricas, juntamente com um conjunto de classes para visualização e interação implementadas especialmente para atender as necessidades iniciais do projeto T&D-Bench, foram utilizadas para refazer os modelos dos processadores citados anteriormente e para servir como base para a modelagem do processador PowerPC. Com isso, pode-se fazer uma analise sobre a utilização do paradigma de orientação a objetos em modelagem de processadores e sobre a utilização do ambiente SIMOO para modelagem de hardware. Este trabalho também ajudou na validação do ambiente SIMOO. / The goal of the T&D-Bench (Teaching and Design Workbench) project is to supply a didactic environment for evaluating the performance of processors by using visual interactive modelling and simulation. The application of object-orientation concepts (abstraction, encapsulation, inheritance and polymorphism) in hardware design is being discussed thoroughly in the literature. Among the benefits that this paradigm brings to the hardware modeling we can mention: greater model reusability, better documentation and easier maintenance. The SIMOO environment is composed by a library of classes and a graphic tool (MET - Model Edition Tool). This environment, used as platform for the development of this work, is a generic environment for design and simulation of discrete systems, in which the models are built in a hierarchical way and use the object-orientation concepts as project and implementation methodology. This work is the first stage of development of the T&D-Bench project and began with the design of the Intel 8051 and DLX processor models. This made possible to identify components of processor architectures that could be generalized. The generic classes, together with a set of classes for visualization and interaction specially implemented to assist T&D-Bench's initial needs, were used to redesign the models of the previously mentioned processors and to serve as a base for the design of the PowerPC processor model. With that, it was possible to analyze the use of the object-orientation paradigm in designing processors and the use of the SIMOO environment for hardware design. This work also helped in the validation of the SIMOO environment.
782

Ambiente de modelagem e implementação de sistemas tempo real usando o paradigma de orientação a objetos / Modeling and implementation environment for the development of real-time systems using object oriented paradigm

Becker, Leandro Buss January 1999 (has links)
Este trabalho descreve o desenvolvimento de um ambiente integrado para modelagem, simulação e implementação de sistemas de tempo real distribuídos (STRD), especialmente aqueles voltados para automação industrial. O ambiente proposto faz use do paradigma de orientação a objetos, sendo baseado no ambiente SIMOO, desenvolvido no Âmbito de uma tese de doutorado no CPGCC. A motivação para a realizado deste trabalho surgiu através de alguns estudos de caso, que constataram que as ferramentas CASE existentes não incorporavam todas as propriedades desejadas em termos de suporte para modelagem e implementação dos STRD. Dentre estas propriedades, destacam-se a capacidade para especificação de restrições temporais, o suporte a simulação do modelo desenvolvido e a capacidade de geração automática de código para a aplicação final. O ambiente proposto tem por objetivo suprir as carências observadas, adicionando ao ambiente SIMOO original facilidades para a descrição de restrições temporais e facilidades para descried° de comportamento do modelo desenvolvido. Além disso, é incorporada ao ambiente a capacidade de geração automática de código em uma linguagem que suporte as restrições temporais descritas no modelo. Este trabalho foi desenvolvido no contexto do projeto ADOORATA (A Distributed Object-Oriented Architecture for Real-Time Automation), como parte do Programa de Cooperação entre Brasil e Alemanha, financiado pelas agencias CNPq e DLR. / This work describes the development of an integrated object-oriented environment for modeling, simulation and implementation of distributed real-time systems (DRTS), especially those conceived for industrial automation. This work extends the SIMOO environment, conceived as part of a Ph.D. thesis in the CPGCC at Federal University of Rio Grande do Sul. Its motivation began during some case studies, which concluded that existing CASE tools don't incorporate all the desired features for modeling and implementation of DRTS. Among these features, capacities to specify timing constraints, to simulate/animate the model and to automatically generate the final application code are highlighted. The proposed environment intends to overcome these lacks, adding to the original environment features for the specification of timing requirements and the application behavior, allowing the creation of an object-oriented simulation model. Additionally it automatically generates the application executable code, which makes use of the incorporated specifications to guarantee its correctness. This work has been developed within the context of the ADOORATA project (A Distributed Object-Oriented Architecture for Real-Time Automation), as part of the Brazilian-German Cooperation Program, sponsored by CNPq and DLR.
783

Fórmula (-1) : desenvolvendo objetos digitais de aprendizagem para as operações com números positivos e negativos

Morais, Anuar Daian de January 2010 (has links)
Essa dissertação apresenta um conjunto de Objetos Digitais de Aprendizagem (ODAs) que foram desenvolvidos com o objetivo de promover a aprendizagem das operações com números positivos e negativos sob a perspectiva da teoria dos Campos Conceituais de Gerard Vergnaud. Além disso, também foi desenvolvida uma proposta didática para auxiliar o professor que desejar utilizá-lo nas suas aulas. Nossa pesquisa ainda apresenta a construção histórica do conjunto dos números positivos e negativos, uma discussão sobre o uso das tecnologias de informação e comunicação (TICs) em Educação e uma revisão de propostas voltadas para o ensino dos números positivos e negativos. De caráter experimental, nossa proposta foi aplicada em dois momentos diferentes: no final de 2008 numa turma de 6º série do Ensino Fundamental do Colégio de Aplicação da UFRGS e durante o primeiro semestre de 2010 numa escola da rede privada do município de Guaíba/RS. A análise dos resultados obtidos serviu como subsídio para a implementação de modificações no ODA e na proposta didática, bem como para a reflexão do desenvolvimento de ODAs que promovam o desenvolvimento do raciocínio aditivo e multiplicativo através de problemas que envolvam operações com números positivos e negativos. / This master's research shows a set of Digital Learning Objects (DLO) which were developed to promote learning of operations with whole numbers through Vergnaud's theory of conceptual fields. Furthermore, a didactical proposal was also developed in order to aid the teacher who wishes to use it in the classroom. Our research also presents the historical construction of the set of positive and negative numbers, a discussion of the use of information and communication technologies (ICTs) in Education and a review of proposals aimed at whole numbers teaching. Having an experimental character, our proposal was applied on two different moments: in the end of 2008 on an 6th grade of Colégio de Aplicação da UFRGS in the city of Porto Alegre and during the first semester of 2010 in a private school in the district of Guaíba/RS. The analysis of the results gathered served as foundation to implement a few modifications on the DLO and on the didactical proposal, as well to reflect over the development of DLOs which can promote the development of the additive and multiplicative reasoning through problems involving operations with whole numbers.
784

Learning design baseado em padrões pedagógicos para a elaboração de objetos de aprendizagem generativos : uma aplicação no ensino em design

Bruno, Fernando Batista January 2011 (has links)
As disciplinas de projeto requerem uma grande variedade de conhecimentos para sua realização. Para atender às necessidades didático-pedagógicas do ensino de projeto de produto, o processo de ensino-aprendizagem deve contar com material educacional capaz de fornecer ao aluno todas as informações necessárias para o seu desenvolvimento. A utilização de objetos de aprendizagem pode facilitar o processo de produção e entrega de materiais educacionais, assim como sua reutilização e recontextualização em diferentes cenários. Tal processo é possibilitado pelo atual estágio de desenvolvimento das Tecnologias de Informação e Comunicação (TICs), que permitem fácil acesso a produtos e serviços a elas relacionados. As TICs, aliadas às teorias de design instrucional, proporcionam o surgimento de novas gerações de Ensino a Distância (EaD), que agregam conteúdos educacionais a serviços baseados na web. Tal combinação dá origem a uma modalidade híbrida de ensino, unindo ferramentas de ensino presencial e a distância (Blended Learning). Este trabalho propõe uma ferramenta para a elaboração e a disponibilização de objetos de aprendizagem generativos integrada ao sistema HyperCAL online (sistema de comunicação e distribuição de conteúdo, baseado na web, desenvolvido e utilizado pelo Departamento de Design e Expressão Gráfica da Universidade Federal do Rio Grande do Sul — DEG-UFRGS). Desta forma, estes objetos podem ser reutilizados e recontextualizados para a elaboração de materiais educacionais. Nesta ferramenta, os objetos de aprendizagem generativos são estruturas construídas em XML, baseados no conceito learning design, funcionando como uma camada de interação entre os outros tipos de objeto de aprendizagem, organizando o conteúdo a ser disponibilizado. Para fins de validação da ferramenta criada, foi proposto um protótipo de unidade de aprendizagem de Projeto de Produto. Este protótipo teve como base um leaming design elaborado a partir de Padrões Pedagógicos levantados na fundamentação teórica do presente trabalho. Estes Padrões foram analisados, selecionados e organizados dentro de uma Linguagem de Padrões construída por um grupo de professores que atuam em disciplina do DEG-UFRGS, ligadas às linguagens e práticas de projeto, através das técnicas de cardsorting e grupo focal. / Design courses require a wide range of knowledge for its realization. To meet the needs of the didactic and pedagogical teaching of industrial design, the teaching-learning process must have educational material able to provide the student with all the information necessary for their development. The use of learning objects can facilitate the process of production and delivery of educational materials and their reuse and recontextualization in different scenarios. Such process is due to the current development stage of Information and Communication Technologies (ICTs), which allow easy access to products and services related to them. ICTs, combined with instructional design theories, lead to the emergence of new generations of distance learning, which add educational content to web based services. From this combination rises a hybrid mode of education, which combines tools for face-toface and distance learning (Blended Learning). This research proposes a tool for the development and provision of generative learning objects integrated into HyperCAL online (a web-based system of communication and content distribution, developed and used by the Departamento de Design e Expressão Gráfica da Universidade Federal do Rio Grande do Sul - DEG-UFRGS). Thus, these objects can be reused and recontextualized for the development of educational materials. In this tool, the generative learning objects are structures built on XML, based on the learning design concept, running as an interaction layer between the other types of learning object, organizing the content to be available. For the validation of the tool set, a prototype unit of learning of industrial design was proposed. This prototype was based on a learning design made upon pedagogical patterns raised in the theoretical foundation of this work. These patterns were analyzed, selected and arranged in a pattern language, built by a group of teachers who work in the disciplines of the DEG-UFRGS linked to the industrial design activity, through the card sorting and focus group techniques.
785

Um modelo de dados temporal orientado a objetos para gerenciar configurações de software / A temporal object-oriented data model to manage software configurations

Silva, Fabrício Ávila da January 2005 (has links)
Gerência de Configuração de Software é a disciplina que define conceitos e métodos baseados nos quais engenheiros de software conseguem manter sob controle a evolução de complexos produtos de software. Todos os princípios básicos da GCS foram implementados com sucesso em diversas ferramentas comerciais, mas as abordagens mais avançadas propostas nos últimos anos ainda não são utilizadas em ambientes reais de desenvolvimento, principalmente pela alta complexidade destas propostas – impedindo a sua implementação e utilização de forma adequada. Com o objetivo de introduzir uma solução simples e flexível para gerenciar configurações de software, este trabalho apresenta o SCM_TOO – Software Configurations Managed using a Temporal Object-Oriented data model, cuja principal característica é o uso da orientação a objeto para modelar o produto de software e as modificações aplicadas a ele durante o seu tempo de vida. Além de disponibilizar mecanismos específicos para manipular arquivos e usuários do sistema, o SCM_TOO aplica técnicas de bancos de dados temporais para suportar a evolução da aplicação e armazenar o histórico de modificações realizadas ao longo do tempo. O modelo define também um mecanismo de versionamento baseado em mudanças, no qual cada alteração realizada no software é identificada como uma entidade lógica no repositório de dados e pode ser utilizada na geração de novas baselines do produto. Esta proposta complementa o tradicional versionamento baseado em estados e aumenta a eficiência e flexibilidade do modelo sem acrescentar uma complexidade desnecessária. / Software Configuration Management is the discipline that defines concepts and methods based on which software engineers keep under control the evolution of complex software products. All the basic SCM principles have been successfully implemented in several commercial tools, but none of the advanced approaches proposed in the last years is currently used in real development environments, due to their high complexity – making the proper implementation and utilization almost impossible. Aiming to introduce a simple, flexible and powerful solution to manage software configurations, this work presents SCM_TOO – Software Configurations Managed using a Temporal Object-Oriented data model, whose main characteristic is using the object-oriented paradigm to model the software product and the modifications applied to it during its lifetime. Along with specific mechanisms to handle files and system users, SCM_TOO applies temporal databases techniques to support the application evolution and store the modifications realized on it. The model also defines a change-based versioning mechanism, in which every modification performed on the software is identified as a logical entity in the data repository and can be used to generate new product baselines. This approach complements the traditional state-based versioning and increases the model efficiency and flexibility without imposing unnecessary complexity.
786

Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectos

Piveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
787

Compreensão visual de frameworks através da introspeção de exemplos / Visual understanding of frameworks through instrospection of examples

Campo, Marcelo Ricardo January 1997 (has links)
Os frameworks orientado a objetos oferecem um grande potencial para aumentar a produtividade e a qualidade no desenvolvimento de software. Um framework e uma infra-estrutura ou esqueleto de uma família de aplicações pertencentes a um domínio determinado. Basicamente, aplicações especificas são construídas especializando as classes do framework para fornecer a implementação de alguns métodos, enquanto a maior parte da funcionalidade da aplicação e herdada. Esta característica permite a reutilização tanto do código quanto o projeto das aplicações do domínio, o qual representa um beneficio muito significativo a respeito de outras tecnologias de reutilização. Entretanto, começar a utilizar um framework para construir aplicações especificas e complicado para um usuário que não seja o projetista do framework. Compreender um framework é frequentemente muito mais difícil que compreender bibliotecas de componentes que podem ser reutilizados independentemente. Neste caso, e suficiente compreender sua interface externa. No caso dos frameworks, para aproveitar ao Máximo as possibilidades de reutilização que oferece, e necessário compreender o projeto interno de suas classes, como essas classes colaboram entre si, bem como a forma na qual instancias dessas classes colaboram em tempo de execução. Compreender estes aspectos uma tarefa reconhecidamente complexa e demorada, sendo este e um dos fatores mais limitantes da tecnologia para ser de utilidade efetiva na produção de software. Neste trabalho, apresenta-se uma abordagem reflexiva para a construção de ferramentas de apoio a compreensão de frameworks. Esta abordagem e suportada por Luthier, um framework projetado, e implementado em Smalltalk-80, para a construção de ferramentas de analise dinâmica e visualização de programas orientados a objetos. Luthier introduz três contribuições importantes: Utilização de técnicas de reflexão computacional baseadas no conceito de gerenciadores de meta-objetos, o qual suporta a implementação de metaarquiteturas de meta-objetos especializadas para a análise de aplicações. Controle interativo do grau de detalhe das visualizações (zoom semântico) através do suporte explícito de escalas de abstração. As escalas de abstração são controladas por objetos denominados abstratores. Um abstrator permite encapsular em objetos específicos algoritmos de derivação de abstracões, filtragem e seleção de informação, bem como o controle do nível de detalhe mostrado pelas visualizações. Esta separação de funcionalidade permite implementar complexas funcionalidades de análise de programas, sem a necessidade de modificar as classes que implementam visualizações ou a representação da informação. Suporte de uma estratégia de análise orientada pela visualização da arquitetura. Esta abordagem divide o processo de compreensão em duas fases iterativa: 1) compreensão dos principais aspectos estruturais do framework a partir de da recuperação e visualização da arquitetura,; 2) análise detalhada do comportamento de instâncias envolvidas em pontos específicos da arquitetura, os quais são selecionados pelo usuário a partir da visualização arquitetônica. Luthier fornece suporte flexível para construção de ferramentas de visualização dinamicamente adaptáveis para diferentes funcionalidades de análise, através de quatro subframeworks: LuthierMOPs. o qual fornece o suporte adaptável de meta-objetos para captura de informação das aplicações analisadas; LuthierBooks que fornece suporte genérico de gerenciamento de hiperdocumentos para a representação da informação capturada e gerenciamento de livros persistentes de projeto; LuthierAbstractors, que prove suporte genérico para a derivação de abstrações da informação coletada e escalas de abstração dinamicamente variáveis; e LuthierViews, extensão do framework MVC para a construção de visualizações da informação coletada, com capacidades de manipulação direta e zooming utilizando visualizações alternativas, as quais podem ser dinamicamente selecionadas pelo usuário. Com o suporte fornecido por Luthier, uma ferramenta, especialmente projetada para apoiar a compreensão de frameworks a partir da analise de exemplos, foi desenvolvida. Esta ferramenta fornece um conjunto de visualizações estruturais, com capacidade de animação de fluxo de controle do framework, bem como visualizações alternativas de subsistemas e padrões de projeto. Estas abstrações são reconhecidas através da análise da informação coletada dos exemplos analisados. Através das visualizações providas, o usuário pode explorar um dado framework através de mecanismos de navegação entre diferentes representações visuais, bem como filtragem e consulta acerca de informação relevante a ser visualizada. Este mecanismos são integrados com mecanismos de zoom semântico que habilitam a visualização da informação em diferentes níveis de abstração. Através da representação de hiperdocumento, a ferramenta suporta a construção manual, bem como a geração automática em alguns casos, de livros persistentes de documentação, com capacidade de edição, de importação de diagramas produzidos pelas visualizações, e de navegação sobre diferentes livros e o código fonte do framework. Esta características habilita a geração de documentação durante o processo de compreensão, facilidade não disponível, habitualmente, nas ferramentas de compreensão desenvolvidas até hoje. A capacidade de Luthier para a construção de ferramentas foi testada com a construção de outras ferramentas, como por exemplo, depuradores visuais e de coleta de métricas. A viabilidade e eficácia da abordagem foi testada através de experimentos, os quais mostraram que grupos utilizando a ferramenta de apoio produziram aplicações com maior nível de reutilização do framework que grupos de usuários não utilizando a ferramenta. / Object-oriented frameworks are a powerful reuse technique for building applications in a given domain. A framework works as a template or skeleton for building applications, being composed of a set of classes abstracting the general characteristics of an application domain. Building a specific application requires the specialization of some classes that provide the implementation of methods that will complete the necessary behaviour, while the global control structure is given by the framework. Frameworks offer a great potential to increase the productivity and quality in software development. However, starting to use a framework to build a specific application is complicated for any user other than a framework designer. Understanding a framework is frequently much harder than understanding libraries of components that can be reused independently. To adequately reuse isolated classes of a class library, it is sufficient to understand their external interface. In case of a framework, in contrast, to take full advantage of the services provided, it is necessary to understand the way its classes collaborate, as well as the internal design of some of them. These classes code the complex behaviour of a network of instances dynamically created. Therefore, it is often needed not only to understand how the classes are organized in static inheritance hierarchies, but also how instances collaborate at runtime. This work presents a reflective approach for the construction of tools for framework comprehension. This approach is supported by Luthier, a framework designed, and implemented in Smalltalk-80, which provides a flexible support for building tools for the dynamic analysis and visualization of object-oriented programs. Luthier introduces three important contributions: The use of computational reflection techniques, based on the concept of meta-object managers, which support the implementation of specialized meta-object-based metaarchitectures for the dynamic analysis of applications Support for building visualizations with different levels of abstraction under interactive control of the user (semantic zoom) through the explicit support of abstraction scales. Abstraction scales are controlled by objects called abstractors, which allow the encapsulation, in specific objects, of algorithms for abstraction derivation, filtering and information selection, as well as the interactive control of the detail level to be shown by visualizations. This separation of concerns enables the implementation of complex program analysis functionalities without the need of modifying classes implementing visualizations or information representation. Support for an architecture-driven analysis strategy. This approach divides the understanding process in two iterative phases: I) comprehension of the global structural and behavioural aspects of the framework from the recovery and visualization of its architecture.; 2) detailed analysis of specific instances involved in particular points of the architecture, selected by the user form the architectural view. Luthier provides a flexible support for the construction of visualization tools dynamically adaptable to different analysis functionalities through four sub-frameworks: LuthierMOPs, which provides an adaptable support of meta-objects for information gathering from the analyzed applications; LuthierBooks, which provides generic support for hyperdocument management to represent captured information and management of persistent design books: LuthierAbstractors, which provides generic support for the derivation of abstractions and dynamically variable abstraction-scales: and LuthierViews. extension of the MVC framework for the construction visualizations of the captured information, with capabilities of direct manipulation and zooming using alternative visualizations, dynamically selected by the user. With the support provided by Luthier a tool, specially designed to support framework comprehension from analysis of examples, was developed. This tool provides a set of structural visualizations with control-flow animation capabilities, as well as alternative visualizations of subsystems and design patterns, recognized through the analysis of information gathered from examples. Through these visualizations the user can explore a given framework by using mechanisms for navigating among different visual representations, as well as information filtering and queries about relevant information to be visualized. These functionalities are fully integrated with semantic zoom mechanisms that enable information visualization at different levels of abstraction. With the hyperdocument support, the tool allows for manual construction, as well as automatic generation in some cases, of persistent documentation books. These books offers editing capabilities, importation of diagrams from visualizations, as well as navigation through different books and through the source code of the analyzed framework.. These characteristics allows the support of additional documentation generation during the comprehension process, facility which is not normally available in current understanding tools. The capabilities for tool construction supported by Luthier were tested through the development of different tools, such as, visual debuggers and metrics collectors. The viability of the approach was tested through experiments. These experiments suggest that users using the understanding tool produce applications with a greater re-use level than groups of users not using it.
788

AFIDS : arquitetura para injeção de falhas em sistemas distribuídos / AFIDS - architecture for fault injection in distributed systems

Sotoma, Irineu January 1997 (has links)
Sistemas distribuídos já são de amplo uso atualmente e seu crescimento tende a se acentuar devido a popularização da Internet. Cada vez mais computadores se interligam e trocam informações entre si. Nestes sistemas, requerimentos como confiabilidade, disponibilidade e desempenho são de fundamental importância para a satisfação do usuário. Estes requerimentos podem ser atendidos aproveitando-se da redundância já existente com as maquinas interligadas. Mas para atingir os requisitos de confiabilidade e disponibilidade, protocolos tolerantes a falhas devem ser construídos. Tolerância a falhas visa continuar a fornecer o serviço de algum protocolo, aplicação ou sistema a despeito da ocorrência de falhas durante a sua execução. Tolerância a falhas pode ser implementada por hardware ou por software através de mascaramento ou recuperação de falhas. Recentemente, a injeção de falhas implementada por software tem sido um dos principais métodos utilizados para validar protocolos tolerantes a falhas em sistemas distribuídos, e muitas ferramentas tem sido construídas. Contudo, não ha nenhuma biblioteca de classes orientada a objetos para auxiliar novos pesquisadores na construção da sua própria ferramenta de injeção de falhas. Este trabalho apresenta uma proposta de uma arquitetura orientada a objetos escrita em C++ para sistemas operacionais UNIX usando sockets, de modo a alcançar aquele objetivo. Esta arquitetura é chamada de AFIDS (Architecture for Fault Injection in Distributed Systems). AFIDS pretende fornecer uma estrutura básica que aborda as questões principais no processo de injeção de falhas implementada por software: a) a Geraldo de parâmetros de falhas para o experimento, b) o controle da localização, tipo e tempo da injeção de falhas, c) a coleta de dados do experimento, d) a injeção efetiva da falha e a análise dos dados coletados de modo a obter medidas de dependabilidade sobre o protocolo tolerante a falhas. Ou seja, AFIDS pretende ser um framework para a construed° de ferramentas de injeção de falhas. Segundo [BOO 961: "Através do uso de frameworks maduros, o esforço de desenvolvimento torna-se mais fácil, porque os principais elementos funcionais podem ser reutilizados". AFIDS leva em consideração várias questões de projeto que foram obtidas através da analise de oito ferramentas de injeção de falhas por software para sistemas distribuídos: FIAT [SEG 88], EFA [ECH 92. ECH 94], SFI [ROS 93], DOCTOR [HAN 93], PFI [DAW 94], CSFI [CAR 95a], SockPFI [DAW 95] e ORCHESTRA [DAW 96]. Para auxiliar a construção de AFIDS, é apresentada uma ferramenta de injeção de falhas que utiliza um objeto injetor de falhas por processo do protocolo sob teste. AFIDS e esta ferramenta são implementadas em C++ usando sockets em Linux. Para que AFIDS se tome estável e consistente e necessário que outras ferramentas sejam construídas baseadas nela. Isto é enfatizado porque, segundo [BOO 96]: "Um framework são começa a alcançar maturidade apos a sua aplicação em pelo menos três ou mais aplicações distintas". / Currently, distributed systems are already in wide use. Because of the Internet popularization their growth tend to arise. More and more computers interconnect and share information. In these systems, requirements such as reliability, availability and performance are fundamental in order to satisfy the users. These requirements can be reached taking advantage of the redundancy already associated with the computers interconnected. However, to reach the reliability and availability requirements, fault tolerant protocols must be built. Fault tolerance aims to provide continuous service of some protocol, application or system in despite of fault occurrence during its execution. Fault tolerance can be implemented in hardware or software using fault masking or recovery. Recently, the software-implemented fault injection has been one of the main methods used to validate fault tolerant protocols in distributed systems, and many tools has been built. However, there is no object-oriented class library to aid new researchers on the buildin g of own fault injection tool. This work presents a proposal of an objectoriented architecture written in C++ for UNIX operating systems using sockets, in order to reach that purpose. This architecture is called AFIDS (Architecture for Fault Injection in Distributed Systems). AFIDS intends to provide a basic structure that addresses the main issues of the process of software-implemented fault injection: a) the generation of fault parameters for the experiment, b) the control of the location, type and time of the fault injection, c) the data collection of the experiment, d) the effective injection of the faults, and e) the analysis of collected data in order to obtain dependability measures about the fault tolerant protocol sob test. According to [BOO 96]: "By using mature frameworks, the effort of the development team is made even easier, because now major functional elements can be reused.". AFIDS regards various design issues that were obtained from the analysis of eight tools of software-implemented fault injection for distributed systems: FIAT [SEG 88], EFA [ECH 92, ECH 94], SFI EROS 93], DOCTOR [HAN 93], PFI [DAW 94], CSFI [CAR 95a], SockPFI [DAW 95] e ORCHESTRA [DAW 96]. In order to aid the AFIDS building, a fault injection tool that uses one injector object in each process of protocol under test is shown. AFIDS and this tool are implemented in C++ using sockets on Linux operating system. AFIDS will become stable and consistent after the building of others tools based on it. This is emphasized because, according to [BOO 96]: "A framework does not even begin to reach maturity until it has been applied in at least three or more distinct applications".
789

Programação funcional usando Java / Functional programming using Java

Zavaleta Gavidia, Jorge Juan January 1997 (has links)
Desde a introdução da World Wide Web para o mundo nos inícios de 1990, usando a Internet como uma rede para transferir dados, empregando uma forma de expressão chamada de Hipertexto, a qual liga as informações relacionadas e combinadas com multimídia, os Webs resultantes têm aberto novas possibilidades de expressão e comunicação. A quantidade de tráfego de dados na Web e o número de computadores ofertando informação vem crescendo dramaticamente, mas falta expressividade e qualidade interativa na Web; ainda assim, vem despertando um grande interesse instrutivo e útil. O ilimitado universo de possibilidades da Web para acessar aplicações seguras, portáveis e independentes para cada plataforma em hardware e software e que possam chegar a qualquer lugar sobre a Internet, surge a linguagem Java da Sun Microsystem [DEC 95]. A habilidade de Java para executar código sobre hosts remotos de uma maneira segura é uma necessidade crítica para muitas organizações de desenvolvedores de software e provedores de Internet na atualidade [ARN 96]. A linguagem Java é realmente valiosa para redes de ambientes distribuídos como a Web. Entretanto, Java vai mais longe deste domínio ao fornecer uma linguagem de programação de propósito geral poderosa e adequada para construir uma variedade de aplicações que não dependem das características da rede [ARN 96]. O modelo imperativo tradicional é padrão e quase universal vem tendo uma profunda influência sobre a natureza das linguagens de programação e ainda continua a tendência de sempre ter uma direção para fornecer mais e mais formas abstratas de resolver problemas, tentando mudar a simplicidade na programação com rapidez na execução de programas [FIE 88]. Parece. portanto, natural e quase inevitável o desenvolvimento em tecnologia das linguagens. Os amplos esforços gastos em desenvolver métodos rigorosos para especificar, produzir, verificar software e produtos de hardware, mas os esforços foram restringidos às linguagens convencionais. A aproximação natural de Von Neumann tem contribuído a esta falha desde a noção de um estado global que pode mudar arbitrariamente em cada passo da computação e vem sendo provado ser intuitivamente e matematicamente intratável. Esta falha tem tornado ao software o componente mais caro para muitos sistemas de computação [GLA 84]. Os primeiros passos para solucionar estas falhas foram tomadas pela programação estruturada ao trabalhar nas áreas de especificação formal, verificação de programas e na semântica formal que ainda continuam em pesquisa. O crescimento numeroso de pesquisadores têm certeza de que os problemas originam-se da aproximação fundamental à filosofia de Von Neumann e estão voltando-se para uma linguagem de um novo tipo. Uma de tais aproximações é a tomada pelas linguagens de programação funcional [PLA 93]. Num programa funcional, o resultado de uma função chamada é unicamente determinado pelos valores atuais dos argumentos da função [PLA 93]. As linguagens de programação funcional têm a vantagem que elas oferecem um uso geral das funções, o qual não esta disponível nas linguagens imperativas clássicas. Devido a ausência de efeitos colaterais, as provas de correção dos programas são mais fáceis que nas linguagens imperativas. As funções podem ser avaliadas em qualquer ordem assim como a disponibilidade total das mesmas, a nova geração de linguagens funcionais também oferecem uma elegante noção de uso amigável [PLA 93]. Os padrões e a proteção que fornecem ao usuário um acesso simples a estruturas de dados complexos, basicamente não tendo a preocupação do gerenciamento da memória, como faz a linguagem Java. O objetivo principal deste trabalho é a descrição da implementação de um Construtor de Funções Java (LispJ), usado para gerar funções Lisp em código Java utilizando a linguagem Java da Sun Microsystem como ambiente de desenvolvimento. A descrição compreende a codificação de um Interpretador Lisp da linguagem funcional LISP, e a codificação do Construtor de Funções Java visualizado através de um applet Java utilizado como interface entre o Construtor de Funções Java e o usuário sobre a Internet. / Since the introduction of the World Wide Web to the world in the beginning of the nineties, using the Internet as a network to transfer data, using a form of expression called Hypertext, which connects related and combined information with multimedia, the resulting Webs have opened new possibilities of expression and communication. The amount of data traffic in the Web and the number of computers offering information have been growing dramatically, but there is a lack of interactive expressivity and quality in the Web; nevertheless, its instructive and useful interest is growing wider. From the unlimited universe of possibilities of the Web to access safe, portable and independent applications for each platform in hardware and software and that are able to get anywhere on the Internet, there is the Java Sun Mycrosystem language [DEC 95]. Java's ability to perform code on remote hosts in a safe way is a critical need for many software developing organizations and Internet providers nowadays [ARN 96]. Java language is really valuable for network environments arranged as the Web. However, Java extends further from this domain as it provides a broad programming language that is powerful and adequate to build a variety of applications which do not depend on the characteristics of the network [ARN 96]. The prevailing traditional model is a pattern and almost universal, has had a deep influence on the nature of the programming languages and there is still a trend of one direction to provide more and more abstract ways of solving problems, trying to change the simplicity in the fast programming in programs run [FIE 88]. It seems, therefore, natural and almost inevitable the development in technology of the programming languages. Wide efforts were made to develop strict methods to specify, produce, check software and hardware products, but the efforts were restricted to conventional languages. Von Neumann's natural approximation has contributed to this gap since the notion of a global state which can change arbitrarily in each step of the computer science and has proven to be intuitively and mathematically intractable. This gap has turned the software into the most expensive component for many computing systems [GLA 84]. The first steps to solve these gaps were taken by the structured programming when working on the areas of formal specification, programs checking and the formal semantics, which are still being researched. The ever growing number of researchers are sure that the problems come from the fundamental approximation to Von Neumann's philosophy and are turning to a new kind of language. One of such approximations is the one through the functional programming languages [PLA 93]. In a functional program, the result of a called function is determined only by the present values of the function arguments [PLA 93]. The functional programming languages have the advantage of offering a general use of the functions, which is not available in the classic prevailling lan guages [PLA 93]. Due to absence of side effects, the correction tests in the programs are easier than in the prevailing languages. The functions may be evaluated in any order and so may their total disposal. The new generation of functional languages also offers an elegant notion of friendly use [PLA 93]. The patterns and protection offer the user a simple access to complex data structures, basically by not worrying about memory management, as occurs with the Java language. The main objetive of this work is the description of the implementation of a Java Functions Builder (Lisp1), used do generate Lisp functions in Java code utilizing the Java language from Sun microsystem as a developing environment. The description covers the code of the Lisp Interpreter of the LISP functional language, and the Java Functions Builder code visualized through a Java applet utilized as interface between the Java Functions Builder and the users on the Internet.
790

Tacitus: uma coleção particular de coisas inanimadas.

Nocera, Lígia Beatriz Muller January 2011 (has links)
Submitted by Edileide Reis (leyde-landy@hotmail.com) on 2013-04-09T17:08:28Z No. of bitstreams: 2 Lígia 2.pdf: 3381746 bytes, checksum: 253ceaf4171afa46f392ca545a8c304d (MD5) Lígia 1.pdf: 2573838 bytes, checksum: fed74fe15519e90f3d6de6ed52a36cae (MD5) / Approved for entry into archive by Lêda Costa(lmrcosta@ufba.br) on 2013-04-18T12:36:23Z (GMT) No. of bitstreams: 2 Lígia 2.pdf: 3381746 bytes, checksum: 253ceaf4171afa46f392ca545a8c304d (MD5) Lígia 1.pdf: 2573838 bytes, checksum: fed74fe15519e90f3d6de6ed52a36cae (MD5) / Made available in DSpace on 2013-04-18T12:36:23Z (GMT). No. of bitstreams: 2 Lígia 2.pdf: 3381746 bytes, checksum: 253ceaf4171afa46f392ca545a8c304d (MD5) Lígia 1.pdf: 2573838 bytes, checksum: fed74fe15519e90f3d6de6ed52a36cae (MD5) Previous issue date: 2011 / Esta dissertação detalha as etapas do processo criativo para a concepção de um painel modular de uma Coleção de pinturas figurativas de objetos singulares, constituído por 72 telas de 40 X 40 cm cada, apresentado no Museu de Arte Contemporânea do Paraná, em 2011. As seguintes ações processuais delinearam a pesquisa: uma coleta fotográfica de objetos de escolha pessoal e, ou, pertencentes a diversos indivíduos, nas cidades de Curitiba, no Paraná e de Salvador, na Bahia, acompanhada pelos depoimentos dos participantes, registrados em fichas individuais. A seguir, os objetos fotografados tornaram-se os modelos para as 72 pinturas das „coisas inanimadas‟, em referência ao gênero denominado Natureza Morta. O processo que reuniu objetos / sujeitos / interações/ pesquisadora encontra-se aqui circundado pela poética de Gaston Bachelard, apoiado nos conceitos da semiologia dos objetos a partir de Jean Baudrillard, da crítica do design, em Deyan Sudjic e observa as considerações de Gilles Lipovetsky a respeito das culturas da moda e do consumo. Georges Perec e Walter Benjamin foram buscados para assegurar os respectivos respaldos, literário e conceitual, dos significados de „coleção‟, entre abordagens igualmente verificadas junto a outros autores complementares para, metodologicamente organizar as bases das discussões teóricas relativas aos tensionamentos plásticos propostos. Ao abrir as portas para sair da intimidade de um atelier e percorrer outros territórios e lugares, os objetos encontrados revelaram-se não apenas modelos para pintura, mas matérias mediadoras da persistência do tempo que separa os homens das suas coisas ou que, por alguns breves instantes, os une. / Salvador

Page generated in 0.0602 seconds