• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 17
  • 1
  • Tagged with
  • 18
  • 18
  • 13
  • 12
  • 12
  • 9
  • 9
  • 8
  • 6
  • 6
  • 6
  • 6
  • 6
  • 6
  • 6
  • 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.
1

Reusable Method for Behavioural Regulation of Executing Real-time Embedded Systems / Återanvändbar metod för beteendereglering av inbyggda realtidssystem

de Roos, Victoria January 2015 (has links)
Traditionally, real-time applications have been executed within an isolatedembedded system, but this is becoming outdated. These systems are growing andbecoming larger, more distributed and complex, and are often closely integratedwith the external structure. The ability to dynamically adapt and regulate thesesort of systems during runtime is an increasingly desired feature. It can increaseits lifespan and save costs in the form of both money and time. This thesisproposes a method to perform this dynamic adaptation and regulation with theconcept of computational reflection. The method is conformed to support theconstrained and varied environment faced when working with distributedembedded real-time systems. A prototype framework of the method has beenrealized in the programming language C++. This framework is lightweight anduses a minimum amount of dependencies. By including this framework into anexisting program and registering variables into the framework, the variables gainreflective properties. These properties are dynamic regulation and limited selfawareness.Lastly, the framework has been evaluated regarding its computationalload and memory consumption. This, in order to show how much extra strainthis sort of method would inflict on an existing system. The results show that,relative the functionality it provides, the strain is low in most of the cases.However, in a hard real-time environment this might not be a viable solution. / Traditionellt har realtidsapplikationer körts inom ett isolerat inbyggt system,men detta har blivit ett föråldrat synsätt. Dessa system växer och blir allt större,mer distribuerade och komplexa, och är ofta nära integrerad med den yttrestrukturen. Förmågan att dynamiskt anpassa sig och reglera denna typ av systemunder drift är en allt mer önskad egenskap. Det kan öka dess livslängd och sparakostnader i form av både pengar och tid. Denna examensrapport föreslår enmetod för att utföra denna dynamiska anpassning och reglering med hjälp avkonceptet kring computational reflection. Metoden är anpassad för att stödja denansträngda och varierad miljö man möter när man arbetar med distribueradeinbyggda realtidssystem. Ett prototyp ramverk för metoden har skapats iprogrammeringsspråket C++. Detta ramverk är lättviktigt och använder ettminimalt antal beroenden. Genom att inkludera detta ramverk i ett befintligtprogram och registrera variabler till ramverket så får variablerna reflektivaegenskaper. Dessa egenskaper är bland annat dynamisk reglering och enbegränsad självkännedom. Slutligen har ramverket utvärderats genom att testadess beräkningslast och minnesförbrukning. Detta, för att visa hur mycket extrapåfrestning denna typ av metod skulle orsaka i ett befintligt system. Resultatenvisar att, relativt dess funktionalitet, så är belastning låg i de flesta av fallen.Men i en hård-realtidsmiljö så är detta antagligen inte en hållbar lösning.
2

Motf : meta-objetos para tolerância a falhas / Moft-metaobjects for fault-tolerance

Lisboa, Maria Lucia Blanck January 1995 (has links)
As técnicas de programação e os mecanismos de linguagens de programação destinados ao desenvolvimento de aplicações de alta confiabilidade são agrupadas sob a denominação de tolerância a falhas em software. A área de tolerância a falhas abrange uma serie de técnicas com funcionalidades e aplicabilidade bem definidas, permitindo que seja considerada um domínio próprio - o domínio de tolerância a falhas. O conteúdo de informação desse domínio não é auto-suficiente, uma vez que atua sobre outros domínios. Seu objetivo é garantir as funcionalidades das aplicações desenvolvidas em outros domínios. Ao conjugar o domínio de tolerância a falhas a um outro domínio, ou seja, ao domínio de uma aplicação, o primeiro passa a se responsável pelos requisitos não-funcionais da aplicação. Os requisitos não funcionais de uma aplicação, a exemplo de confiabilidade e segurança, são cruciais em muitas aplicações e exigem métodos e conhecimentos que são distintos do domínio da aplicação. O modelo de orientação a objetos incentiva o desenvolvimento de aplicações através da composição de objetos, cada qual com a sua estrutura e comportamento específicos. Cada particular composição de objetos forma um conjunto que deve observar um comportamento que atenda aos requisitos da aplicação, de forma confiável. Com o objetivo de aumentar a confiabilidade da aplicação e de minimizar o efeito de possíveis falhas do sistema, são propostos objetos tolerantes a falhas. Objetos tolerantes a falhas são objetos responsáveis por serviços críticos da aplicação e que possuem mecanismos que garantem a confiabilidade e disponibilidade destes serviços. Comportamentos tolerantes a falhas de objetos são obtidos por redundância de componentes, incluindo replicacão e diversidade. O gerenciamento da redundância é executado de forma independente do domínio da aplicação e exercido em um meta-nível, através de técnicas de reflexão computacional. A adoção de reflexão computacional no modelo de orientação a objetos permite organizar as atividades de tolerância a falhas sem interferir no aspecto estrutural dos objetos do domínio da aplicação. Os controles que devem ser exercidos pelos meta-objetos sobre os objetos da aplicação são realizados em um meta-nível, de forma a separar as funcionalidades especificas da aplicação daquelas pertinentes ao domínio de tolerância a falhas. Estes meta-objetos, são organizados na forma de um framework, denominado MOTF - Meta-objetos para Tolerância a Falhas. O projeto de MOTF é um framework que apóia o desenvolvimento de aplicações tolerantes a falhas, compreendendo múltiplas classes que definem as funcionalidades exigidas por diversas técnicas de tolerância a falhas. Adota uma arquitetura reflexiva, na qual o meta-nível é dedicado as atividades de detecção e recuperação de erros através da monitoração de objetos da aplicação, localizados no nível base. Características de tolerância a falhas podem ser adicionadas a objetos considerados críticos pela aplicação, assim distribuindo, e não centralizando, a propriedade de tolerar falhas entre objetos da aplicação. Incorporando os princípios de reflexão computacional ao modelo de orientação a objetos dois benefícios principais se salientam: promover a reutilização de objetos tolerantes a falhas e garantir a invulnerabilidade do objeto do domínio da aplicação, ao separar as ações pertinentes ao domínio da aplicação das específicas do sistema tolerante a falhas. / Software fault-tolerance encompasses all techniques and programming languages' mechanisms intended to support the development of high reliability software. We can consider the faulttolerance area a proper domain of knowledge composed by well-defined techniques used to guarantee the reliability of applications related to other domains. Therefore, the fault-tolerance domain acts over other domains. When the fault-tolerance domain is merged into an application domain it becomes responsible for the non-functional requirements of the application. Among those requirements, reliability and safety are crucial ones and they use methods and concerns not related to the application domain. The object-oriented approach to software development allows a software to be decomposed into a set of components - the objects. Each object has its own structure and behavior. The view of a system as composed by interacting objects can be quite convenient in expressing different degrees of fault tolerance. We can distinguish between critical and non-critical objects and we may even distinguish between critical and non-critical operations within a single object. The objective of this research is the exploitation of object-oriented approach to increase reliability and decrease the effects of failures based on the provision of fault-tolerant objects. Fault-tolerant objects are abstractions of high reliability components and are designed to support several fault-tolerance strategies. Furthermore, computational reflection is adopted to organize faulttolerant activities at a meta-level and to provide transparent interfacing among fault-tolerant and non-fault-tolerant objects. A fault-tolerant object can be defined as an object that represents a single interface to redundant services and whose behavior is controlled by a metaobject. Possible behaviors of fault-tolerant objects include replication or diversity and the associated metaobject adds a specific fault-tolerant behavior to its referent object without interfering in its internal structure. MOTF - Metaobjects for Fault Tolerance is a framework intended to support the development of fault-tolerant applications. This framework consists of reusable meta-level classes. Each meta-level class implements a fault-tolerant service, and metaobjects are used as monitoring agents of fault-tolerant objects. The reflective object-oriented architecture promotes reusability and hides the programming of fault-tolerant mechanisms from the application.
3

Estrutura Reflexiva para Sistemas Operacionais Multiprocessados / Reflective structure for multiprocessor operating system

Zancanella, Luiz Carlos January 1997 (has links)
É crescente, nos últimos anos, a utilização da tecnologia de orientação a objetos para a construção de sistemas complexos. A aceitação de que tal tecnologia, alem de facilitar a modularização e proporcionar maior reusabilidade, permitindo uma visão unificada dos sistemas, tem encorajado sua utilização na construção de sistemas operacionais, onde recursos do sistema e aplicações do usuário passam a ser modelados em termos da mesma abstração. Na realidade, esta nova tecnologia de desenvolvimento de software, aliada a evolução do hardware, da tecnologia de comunicações e a necessidade de um incremento qualitativo, principalmente no que diz respeito a ambientes de programação e interfaces, está provocando o surgimento de uma nova geração de sistemas operacionais, mais dinâmicos, mais flexíveis e capazes de suportar de forma transparente a presença de processamento cooperativo, distribuído ou não, heterogêneo ou não. Todavia, ainda que a literatura científica demonstre a aceitação do paradigma de orientação a objetos como um enfoque promissor a ser adotado na nova geração de sistemas operacionais, o estado atual da tecnologia de implementação e gerenciamento de objetos esta aquém da consolidação. Este trabalho surgiu neste contexto com o objetivo de contribuir na busca de um modelo apropriado ao gerenciamento de objetos e capaz de proporcionar a existência de um modelo uniforme, tanto para o nível do sistema operacional como para o nível da aplicação. O resultado da pesquisa desenvolvida foi o surgimento de um modelo estrutural orientado a objetos e baseado nas idéias da reflexão computacional, não somente como disciplina de implementação, mas como modelo conceitual para a implementação de sistemas operacionais multiprocessados. / The use of object-oriented technology for the construction of complex systems has been increasing in recent years. The assumption that such technology, besides facilitating modularization, increases reusability and maintainability, providing a unified view of the systems, has encouraged its use in building operating systems, where the system resources and the user's applications come to be modeled in terms of the same abstraction. Actually this new technology for development of software, associated with the evolution of hardware, as well as communication technology and the need for qualitative enhancement, mainly concerning programming and interface environments, is giving rise to a new generation of operating systems, more dynamic, more flexible and capable of maintaining, in a transparent way, the presence of cooperative processing, distributed or non-distributed, heterogeneous or homogeneous. However, although the scientific literature shows an acceptance of the object-oriented paradigm as a promising focus(insight) to be adopted in the new generation of operating systems, the current state of technology for object management is still far from being one of consolidation. This project has emerged in this context, with the aim of contributing to the search for an appropriate model for office management that is able to provide a uniform model, not only on the operating system level, but also on the application level. The result of the research is a new object-oriented structural model, based on the concepts of computational reflection, both as an implementation discipline and as a conceptual model for the utilization of multiprocessor operating systems. These features are very useful in developing operating systems which contain components, including resources and applications that are modeled in the same way, using object-oriented abstraction.
4

Motf : meta-objetos para tolerância a falhas / Moft-metaobjects for fault-tolerance

Lisboa, Maria Lucia Blanck January 1995 (has links)
As técnicas de programação e os mecanismos de linguagens de programação destinados ao desenvolvimento de aplicações de alta confiabilidade são agrupadas sob a denominação de tolerância a falhas em software. A área de tolerância a falhas abrange uma serie de técnicas com funcionalidades e aplicabilidade bem definidas, permitindo que seja considerada um domínio próprio - o domínio de tolerância a falhas. O conteúdo de informação desse domínio não é auto-suficiente, uma vez que atua sobre outros domínios. Seu objetivo é garantir as funcionalidades das aplicações desenvolvidas em outros domínios. Ao conjugar o domínio de tolerância a falhas a um outro domínio, ou seja, ao domínio de uma aplicação, o primeiro passa a se responsável pelos requisitos não-funcionais da aplicação. Os requisitos não funcionais de uma aplicação, a exemplo de confiabilidade e segurança, são cruciais em muitas aplicações e exigem métodos e conhecimentos que são distintos do domínio da aplicação. O modelo de orientação a objetos incentiva o desenvolvimento de aplicações através da composição de objetos, cada qual com a sua estrutura e comportamento específicos. Cada particular composição de objetos forma um conjunto que deve observar um comportamento que atenda aos requisitos da aplicação, de forma confiável. Com o objetivo de aumentar a confiabilidade da aplicação e de minimizar o efeito de possíveis falhas do sistema, são propostos objetos tolerantes a falhas. Objetos tolerantes a falhas são objetos responsáveis por serviços críticos da aplicação e que possuem mecanismos que garantem a confiabilidade e disponibilidade destes serviços. Comportamentos tolerantes a falhas de objetos são obtidos por redundância de componentes, incluindo replicacão e diversidade. O gerenciamento da redundância é executado de forma independente do domínio da aplicação e exercido em um meta-nível, através de técnicas de reflexão computacional. A adoção de reflexão computacional no modelo de orientação a objetos permite organizar as atividades de tolerância a falhas sem interferir no aspecto estrutural dos objetos do domínio da aplicação. Os controles que devem ser exercidos pelos meta-objetos sobre os objetos da aplicação são realizados em um meta-nível, de forma a separar as funcionalidades especificas da aplicação daquelas pertinentes ao domínio de tolerância a falhas. Estes meta-objetos, são organizados na forma de um framework, denominado MOTF - Meta-objetos para Tolerância a Falhas. O projeto de MOTF é um framework que apóia o desenvolvimento de aplicações tolerantes a falhas, compreendendo múltiplas classes que definem as funcionalidades exigidas por diversas técnicas de tolerância a falhas. Adota uma arquitetura reflexiva, na qual o meta-nível é dedicado as atividades de detecção e recuperação de erros através da monitoração de objetos da aplicação, localizados no nível base. Características de tolerância a falhas podem ser adicionadas a objetos considerados críticos pela aplicação, assim distribuindo, e não centralizando, a propriedade de tolerar falhas entre objetos da aplicação. Incorporando os princípios de reflexão computacional ao modelo de orientação a objetos dois benefícios principais se salientam: promover a reutilização de objetos tolerantes a falhas e garantir a invulnerabilidade do objeto do domínio da aplicação, ao separar as ações pertinentes ao domínio da aplicação das específicas do sistema tolerante a falhas. / Software fault-tolerance encompasses all techniques and programming languages' mechanisms intended to support the development of high reliability software. We can consider the faulttolerance area a proper domain of knowledge composed by well-defined techniques used to guarantee the reliability of applications related to other domains. Therefore, the fault-tolerance domain acts over other domains. When the fault-tolerance domain is merged into an application domain it becomes responsible for the non-functional requirements of the application. Among those requirements, reliability and safety are crucial ones and they use methods and concerns not related to the application domain. The object-oriented approach to software development allows a software to be decomposed into a set of components - the objects. Each object has its own structure and behavior. The view of a system as composed by interacting objects can be quite convenient in expressing different degrees of fault tolerance. We can distinguish between critical and non-critical objects and we may even distinguish between critical and non-critical operations within a single object. The objective of this research is the exploitation of object-oriented approach to increase reliability and decrease the effects of failures based on the provision of fault-tolerant objects. Fault-tolerant objects are abstractions of high reliability components and are designed to support several fault-tolerance strategies. Furthermore, computational reflection is adopted to organize faulttolerant activities at a meta-level and to provide transparent interfacing among fault-tolerant and non-fault-tolerant objects. A fault-tolerant object can be defined as an object that represents a single interface to redundant services and whose behavior is controlled by a metaobject. Possible behaviors of fault-tolerant objects include replication or diversity and the associated metaobject adds a specific fault-tolerant behavior to its referent object without interfering in its internal structure. MOTF - Metaobjects for Fault Tolerance is a framework intended to support the development of fault-tolerant applications. This framework consists of reusable meta-level classes. Each meta-level class implements a fault-tolerant service, and metaobjects are used as monitoring agents of fault-tolerant objects. The reflective object-oriented architecture promotes reusability and hides the programming of fault-tolerant mechanisms from the application.
5

Estrutura Reflexiva para Sistemas Operacionais Multiprocessados / Reflective structure for multiprocessor operating system

Zancanella, Luiz Carlos January 1997 (has links)
É crescente, nos últimos anos, a utilização da tecnologia de orientação a objetos para a construção de sistemas complexos. A aceitação de que tal tecnologia, alem de facilitar a modularização e proporcionar maior reusabilidade, permitindo uma visão unificada dos sistemas, tem encorajado sua utilização na construção de sistemas operacionais, onde recursos do sistema e aplicações do usuário passam a ser modelados em termos da mesma abstração. Na realidade, esta nova tecnologia de desenvolvimento de software, aliada a evolução do hardware, da tecnologia de comunicações e a necessidade de um incremento qualitativo, principalmente no que diz respeito a ambientes de programação e interfaces, está provocando o surgimento de uma nova geração de sistemas operacionais, mais dinâmicos, mais flexíveis e capazes de suportar de forma transparente a presença de processamento cooperativo, distribuído ou não, heterogêneo ou não. Todavia, ainda que a literatura científica demonstre a aceitação do paradigma de orientação a objetos como um enfoque promissor a ser adotado na nova geração de sistemas operacionais, o estado atual da tecnologia de implementação e gerenciamento de objetos esta aquém da consolidação. Este trabalho surgiu neste contexto com o objetivo de contribuir na busca de um modelo apropriado ao gerenciamento de objetos e capaz de proporcionar a existência de um modelo uniforme, tanto para o nível do sistema operacional como para o nível da aplicação. O resultado da pesquisa desenvolvida foi o surgimento de um modelo estrutural orientado a objetos e baseado nas idéias da reflexão computacional, não somente como disciplina de implementação, mas como modelo conceitual para a implementação de sistemas operacionais multiprocessados. / The use of object-oriented technology for the construction of complex systems has been increasing in recent years. The assumption that such technology, besides facilitating modularization, increases reusability and maintainability, providing a unified view of the systems, has encouraged its use in building operating systems, where the system resources and the user's applications come to be modeled in terms of the same abstraction. Actually this new technology for development of software, associated with the evolution of hardware, as well as communication technology and the need for qualitative enhancement, mainly concerning programming and interface environments, is giving rise to a new generation of operating systems, more dynamic, more flexible and capable of maintaining, in a transparent way, the presence of cooperative processing, distributed or non-distributed, heterogeneous or homogeneous. However, although the scientific literature shows an acceptance of the object-oriented paradigm as a promising focus(insight) to be adopted in the new generation of operating systems, the current state of technology for object management is still far from being one of consolidation. This project has emerged in this context, with the aim of contributing to the search for an appropriate model for office management that is able to provide a uniform model, not only on the operating system level, but also on the application level. The result of the research is a new object-oriented structural model, based on the concepts of computational reflection, both as an implementation discipline and as a conceptual model for the utilization of multiprocessor operating systems. These features are very useful in developing operating systems which contain components, including resources and applications that are modeled in the same way, using object-oriented abstraction.
6

Motf : meta-objetos para tolerância a falhas / Moft-metaobjects for fault-tolerance

Lisboa, Maria Lucia Blanck January 1995 (has links)
As técnicas de programação e os mecanismos de linguagens de programação destinados ao desenvolvimento de aplicações de alta confiabilidade são agrupadas sob a denominação de tolerância a falhas em software. A área de tolerância a falhas abrange uma serie de técnicas com funcionalidades e aplicabilidade bem definidas, permitindo que seja considerada um domínio próprio - o domínio de tolerância a falhas. O conteúdo de informação desse domínio não é auto-suficiente, uma vez que atua sobre outros domínios. Seu objetivo é garantir as funcionalidades das aplicações desenvolvidas em outros domínios. Ao conjugar o domínio de tolerância a falhas a um outro domínio, ou seja, ao domínio de uma aplicação, o primeiro passa a se responsável pelos requisitos não-funcionais da aplicação. Os requisitos não funcionais de uma aplicação, a exemplo de confiabilidade e segurança, são cruciais em muitas aplicações e exigem métodos e conhecimentos que são distintos do domínio da aplicação. O modelo de orientação a objetos incentiva o desenvolvimento de aplicações através da composição de objetos, cada qual com a sua estrutura e comportamento específicos. Cada particular composição de objetos forma um conjunto que deve observar um comportamento que atenda aos requisitos da aplicação, de forma confiável. Com o objetivo de aumentar a confiabilidade da aplicação e de minimizar o efeito de possíveis falhas do sistema, são propostos objetos tolerantes a falhas. Objetos tolerantes a falhas são objetos responsáveis por serviços críticos da aplicação e que possuem mecanismos que garantem a confiabilidade e disponibilidade destes serviços. Comportamentos tolerantes a falhas de objetos são obtidos por redundância de componentes, incluindo replicacão e diversidade. O gerenciamento da redundância é executado de forma independente do domínio da aplicação e exercido em um meta-nível, através de técnicas de reflexão computacional. A adoção de reflexão computacional no modelo de orientação a objetos permite organizar as atividades de tolerância a falhas sem interferir no aspecto estrutural dos objetos do domínio da aplicação. Os controles que devem ser exercidos pelos meta-objetos sobre os objetos da aplicação são realizados em um meta-nível, de forma a separar as funcionalidades especificas da aplicação daquelas pertinentes ao domínio de tolerância a falhas. Estes meta-objetos, são organizados na forma de um framework, denominado MOTF - Meta-objetos para Tolerância a Falhas. O projeto de MOTF é um framework que apóia o desenvolvimento de aplicações tolerantes a falhas, compreendendo múltiplas classes que definem as funcionalidades exigidas por diversas técnicas de tolerância a falhas. Adota uma arquitetura reflexiva, na qual o meta-nível é dedicado as atividades de detecção e recuperação de erros através da monitoração de objetos da aplicação, localizados no nível base. Características de tolerância a falhas podem ser adicionadas a objetos considerados críticos pela aplicação, assim distribuindo, e não centralizando, a propriedade de tolerar falhas entre objetos da aplicação. Incorporando os princípios de reflexão computacional ao modelo de orientação a objetos dois benefícios principais se salientam: promover a reutilização de objetos tolerantes a falhas e garantir a invulnerabilidade do objeto do domínio da aplicação, ao separar as ações pertinentes ao domínio da aplicação das específicas do sistema tolerante a falhas. / Software fault-tolerance encompasses all techniques and programming languages' mechanisms intended to support the development of high reliability software. We can consider the faulttolerance area a proper domain of knowledge composed by well-defined techniques used to guarantee the reliability of applications related to other domains. Therefore, the fault-tolerance domain acts over other domains. When the fault-tolerance domain is merged into an application domain it becomes responsible for the non-functional requirements of the application. Among those requirements, reliability and safety are crucial ones and they use methods and concerns not related to the application domain. The object-oriented approach to software development allows a software to be decomposed into a set of components - the objects. Each object has its own structure and behavior. The view of a system as composed by interacting objects can be quite convenient in expressing different degrees of fault tolerance. We can distinguish between critical and non-critical objects and we may even distinguish between critical and non-critical operations within a single object. The objective of this research is the exploitation of object-oriented approach to increase reliability and decrease the effects of failures based on the provision of fault-tolerant objects. Fault-tolerant objects are abstractions of high reliability components and are designed to support several fault-tolerance strategies. Furthermore, computational reflection is adopted to organize faulttolerant activities at a meta-level and to provide transparent interfacing among fault-tolerant and non-fault-tolerant objects. A fault-tolerant object can be defined as an object that represents a single interface to redundant services and whose behavior is controlled by a metaobject. Possible behaviors of fault-tolerant objects include replication or diversity and the associated metaobject adds a specific fault-tolerant behavior to its referent object without interfering in its internal structure. MOTF - Metaobjects for Fault Tolerance is a framework intended to support the development of fault-tolerant applications. This framework consists of reusable meta-level classes. Each meta-level class implements a fault-tolerant service, and metaobjects are used as monitoring agents of fault-tolerant objects. The reflective object-oriented architecture promotes reusability and hides the programming of fault-tolerant mechanisms from the application.
7

Estrutura Reflexiva para Sistemas Operacionais Multiprocessados / Reflective structure for multiprocessor operating system

Zancanella, Luiz Carlos January 1997 (has links)
É crescente, nos últimos anos, a utilização da tecnologia de orientação a objetos para a construção de sistemas complexos. A aceitação de que tal tecnologia, alem de facilitar a modularização e proporcionar maior reusabilidade, permitindo uma visão unificada dos sistemas, tem encorajado sua utilização na construção de sistemas operacionais, onde recursos do sistema e aplicações do usuário passam a ser modelados em termos da mesma abstração. Na realidade, esta nova tecnologia de desenvolvimento de software, aliada a evolução do hardware, da tecnologia de comunicações e a necessidade de um incremento qualitativo, principalmente no que diz respeito a ambientes de programação e interfaces, está provocando o surgimento de uma nova geração de sistemas operacionais, mais dinâmicos, mais flexíveis e capazes de suportar de forma transparente a presença de processamento cooperativo, distribuído ou não, heterogêneo ou não. Todavia, ainda que a literatura científica demonstre a aceitação do paradigma de orientação a objetos como um enfoque promissor a ser adotado na nova geração de sistemas operacionais, o estado atual da tecnologia de implementação e gerenciamento de objetos esta aquém da consolidação. Este trabalho surgiu neste contexto com o objetivo de contribuir na busca de um modelo apropriado ao gerenciamento de objetos e capaz de proporcionar a existência de um modelo uniforme, tanto para o nível do sistema operacional como para o nível da aplicação. O resultado da pesquisa desenvolvida foi o surgimento de um modelo estrutural orientado a objetos e baseado nas idéias da reflexão computacional, não somente como disciplina de implementação, mas como modelo conceitual para a implementação de sistemas operacionais multiprocessados. / The use of object-oriented technology for the construction of complex systems has been increasing in recent years. The assumption that such technology, besides facilitating modularization, increases reusability and maintainability, providing a unified view of the systems, has encouraged its use in building operating systems, where the system resources and the user's applications come to be modeled in terms of the same abstraction. Actually this new technology for development of software, associated with the evolution of hardware, as well as communication technology and the need for qualitative enhancement, mainly concerning programming and interface environments, is giving rise to a new generation of operating systems, more dynamic, more flexible and capable of maintaining, in a transparent way, the presence of cooperative processing, distributed or non-distributed, heterogeneous or homogeneous. However, although the scientific literature shows an acceptance of the object-oriented paradigm as a promising focus(insight) to be adopted in the new generation of operating systems, the current state of technology for object management is still far from being one of consolidation. This project has emerged in this context, with the aim of contributing to the search for an appropriate model for office management that is able to provide a uniform model, not only on the operating system level, but also on the application level. The result of the research is a new object-oriented structural model, based on the concepts of computational reflection, both as an implementation discipline and as a conceptual model for the utilization of multiprocessor operating systems. These features are very useful in developing operating systems which contain components, including resources and applications that are modeled in the same way, using object-oriented abstraction.
8

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.
9

Troca dinâmica de versões de componentes de programas no modelo de objetos

Haetinger, Werner January 1998 (has links)
A manutenção de software a uma realidade presente em todos os sistemas de computação, gerando a necessidade de novas versões que alterem as funcionalidades existentes no software ou adicionem novas. Particularmente, sistemas de tempo-real nem sempre podem ser descontinuados tomando-se indisponíveis para realizar a instalação de uma nova versão. Tais sistemas evidenciam a necessidade de substituição de componentes, representados por funções, procedimentos, módulos ou objetos, durante o processo de execução do programa ou sistema. Outrossim, apos ser realizada a substituição da versão, o componente não pode apresentar falha sob pena de comprometer o fornecimento dos seus serviços. Portanto. constata-se a importância de novas técnicas de manutenção de software que não prejudiquem a sua disponibilidade e confiabilidade. A abordagem aqui proposta a utilizar uma arquitetura reflexiva aliada a técnicas típicas do domínio da tolerância a falhas para promover a separação entre as atividades de substituição e validação de componentes e as funcionalidades executadas pelo pr6prio componente. No decorrer deste trabalho são apresentados diversos cenários de sistemas que podem se beneficiar da troca dinâmica de componentes e abordadas varias facetas do problema de substituição. A proposta a apoiada por um estudo de caso, implementado na linguagem de programação Java e seus diferentes protocolos de reflexão computacional. / Software maintenance is a present reality in all computational systems. This demands the frequent installation of new versions. Usually, real-time systems cannot be interrupted to install a new version. For such systems, the replacement of components, represented by functions, procedures, modulus or objects, must be performed during the execution of the program or system. Even when the old version has been replaced, the new one should not contain faults that could invalidate its services. Therefore, we need new software maintenance techniques that can mantain the system availability and realibility. The approach proposed here consists in using a reflective architecture along with techniques which are typical of the fault tolerant domain. The procedure is carried out by keeping a clear separation between validation activities and the functions executed by the component itself. We present several scenarios to which the dynamical exchange of components can be applied. Different aspects of the replacing issue are also addressed. The proposal is supported by a specific application which has been implemented in the Java language and its different protocols of computational reflection.
10

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.

Page generated in 0.1072 seconds