Spelling suggestions: "subject:"objectorientation"" "subject:"subjectorientation""
31 |
Performance Analysis of Distributed Object Middleware Technologies / Prestanda Analys av Distribuerade Objektorienterade MellanlagerArneng, Per, Bladh, Richard January 2003 (has links)
Each day new computers around the world connects to the Internet or some network. The increasing number of people and computers on the Internet has lead to a demand for more services in different domains that can be accessed from many locations in the network. When the computers communicate they use different kinds of protocols to be able to deliver a service. One of these protocol families are remote procedure calls between computers. Remote procedure calls has been around for quite some time but it is with the Internet that its usage has increased a lot and especially in its object oriented form which comes from the fact that object oriented programming has become a popular choice amongst programmers. When a programmer has to choose a distributed object middleware there is a lot to take into consideration and one of those things is performance. This master thesis aims to give a performance comparison between different distributed object middleware technologies and give an overview of the performance difference between them and make it easier for a programmer to choose one of the technologies when performance is an important factor. In this thesis we have evaluated the performance of CORBA, DCOM, RMI, RMI-IIOP, Remoting-TCP and Remoting-HTTP. The results we have seen from this evaluation is that DCOM and RMI are the distributed object middleware technologies with the best overall performance in terms of throughput and round trip time. Remoting-TCP generally generates the least amount of network traffic, while Remoting-HTTP generates the most amount of network traffic due to it's SOAP-formated protocol. / Detta magister arbete handlar om en prestanda analys av distribuerade objectorienterande mellanlagers teknologier. Dokumentet jämför prestandan på följande teknologier: CORBA, DCOM, RMI, RMI-IIOP, Remoting-TCP and Remoting-HTTP. Jämförelsen är i både server och klient perspektiv. / The authors can probably not be reached on the e-mail addresses given here or in the thesis. A simple search on any search engine will probably lead to valid an address. The reason for this is becouse the student mail is not a longterm address.
|
32 |
Release and monitoring of Laricobius nigrinus (Coleoptera: Derodontidae) for biological control of the hemlock woolly adelgid in the eastern USMausel, Dave L. 10 December 2007 (has links)
Different Laricobius nigrinus Fender release locations, numbers of predators, and timing of release were evaluated for biological control of the hemlock woolly adelgid (HWA), Adelges tsugae Annand (Hemiptera: Adelgidae). It established at 59% of the sites and location was the most important factor related with establishment and abundance, HWA density, and hemlock vigor index. Cold locations had poor establishment or low abundance, declines in HWA density, and increases in hemlock vigor over time. Paired release and control sites detected a predator impact on HWA density, but densities remained high and tree vigor declined. The phenology of L. nigrinus, L. rubidus LeConte, and HWA were studied at a field insectary and the species were highly synchronized. A cage exclusion study showed that HWA survival and density were lower and ovisac disturbance was higher when exposed to predation. To improve L. nigrinus monitoring, we compared beat sheets for adults or branch clipping for immatures, and the host searching behavior of L. nigrinus was studied to understand how it locates a tree and HWA. In the Appalachians, beat sheet sampling resulted in false negatives as larvae were collected by branch clipping. Adults orientated to a tree visually, fed when prey were present and flew when absent, and showed different search patterns on infested versus uninfested trees. In Seattle, both sampling methods detected L. nigrinus because the predator was common. Predator : prey ratios were high at heavily infested sites in Seattle and low in the eastern US, where is has been released recently. Partial life tables were constructed for HWA sistentes at four sites for 2 yr in Seattle. Unspecified causes of nymph and adult mortality were high and L. nigrinus was the dominant predator of ovisacs. Adult L. nigrinus abundance was positively related to HWA density and immature abundance was related to ovisac density, indicating an aggregation and numerical response to its prey. Laricobius nigrinus has not demonstrated complete biological control of HWA to date, but it may do so in the future and continued release is justified. / Ph. D.
|
33 |
Filtros para objetos / Filters for objectsGuimaraes, Jose de Oliveira 22 April 1996 (has links)
Esta tese propõe cinco construções para linguagens orientadas a objetos. Algumas delas podem ser implementadas por meio de pré-processadores. Estas construções são: visão de classe, adaptador, extensão de classe, Shell dinâmico e extensão dinâmica. Todas elas são baseadas no conceito de filtro, que e um objeto que intercepta as mensagens enviadas a um outro objeto. Visão de classe permite corrigir interpretações incorretas da semântica de uma classe no código de outras classes. Um filtro é usado para traduzir as mensagens para o significado correto. Adaptadores permitem mudar o tipo de um objeto através de um filtro e são usados para acoplar classes que, de outra forma, seriam incompatíveis quanto a tipos. Extensão de classe permite adicionar métodos e variáveis de instancia a classes sem a necessidade de edição do código fonte destas. Shell dinâmico e extensão dinâmica possuem algumas das características de meta-objetos e meta-classes, respectivamente. Eles formam um modelo reflexivo estaticamente tipado. Shell dinâmico permite redirecionar todas as mensagens enviadas a um objeto e extensão dinâmica permite substituir métodos de uma classe em tempo de execução. Todas as construções são originais, podem ser adicionadas em uma linguagem estaticamente tipada sem danificar o sistema de tipos e resolvem alguns problemas descritos na literatura de orientação a objetos. / This thesis proposes five constructions for object-oriented languages. Some of them can be implemented using a preprocessor. These constructions are: class view, adapter, class extension, dynamic shell, and dynamic extension. All of them are based in the concept of filter, that is an object that intercepts the messages sent to another object. Class view allows correcting misinterpretations about the semantics of a class in code of other classes. A filter is used to translate the messages to the correct semantics. Adapters allow changing the type of an object through a filter and are used to glue type incompatible classes. Class extension allows adding methods and instance variables to classes without editing the source code of these classes. Dynamic Shell and dynamic extension have some of the characteristics of meta-objects and meta-classes, respectively. They compose a statically typed reflective model. Dynamic shell allows to redirect all messages sent to an object and dynamic extension allows replacing methods of a class at run time. All constructs are original and can be added to a statically typed language. They solve some problems described in the object-oriented literature.
|
34 |
Evolução de esquemas em bancos de dados orientados a objetos utilizando versões / Schema evolution in object oriented data bases using versionsFornari, Miguel Rodrigues January 1993 (has links)
Este trabalho apresenta um mecanismo para evolução de esquemas para bancos de dados orientados a objetos. A necessidade de alteração do esquema conceitual de dados pode surgir em qualquer momento da vida de um sistema, por motivos como incorporar novas especificações e necessidades do usuário, reaproveitamento de classes em outros sistemas a correção de falhas de modelagem. Uma ferramenta deste tipo deve permitir ao usuário a maior variedade possível de alterações e, ao mesmo tempo, possibilitar um alto grau de independência lógica de dados, para reduzir ao máximo possível a necessidade de alteração dos programas de aplicação que utilizam o esquema. O modelo de dados utilizado está baseado nos modelos de outros sistemas orientados a objetos, como Orion é O2. Ele permite a definição de classes, atributos simples e construídos pelo usuário, métodos, como forma de encapsular os objetos e herança múltipla de atributos e métodos para subclasses. Além disso, para manter o histórico de modificações realizadas, versões de instâncias, classes e métodos são utilizadas. Versões de um objeto formam um grafo acíclico, sendo a versão mais recente a "default". Como forma de manter a coerência no uso de versões de diferentes objetos, o conceito de contextos de esquemas é definido. A proposta baseia-se no conceito de invariantes, condições básicas para a base de dados ser considerada válida e consistente pelo sistema. Invariantes estruturais e comportamentais são definidos e mantidos. Diversas operações que podem ser realizadas sobre um esquema são descritas, detalhando para cada uma as suas opções e efeitos. Alguns mecanismos auxiliares para aumentar a transparência de alterações de esquemas são esboçados. Como uma aplicação específica do mecanismo genérico apresentado, outro é desenvolvido para o ambiente STAR. Seu modelo de dados e os gerentes de versões e metodologia são explicados, tendo suas características mais relevantes para este trabalho detalhadas. Tomando o esquema de objeto como um esquema de dados e as tarefas do gerente de metodologias como métodos, o mecanismo também se baseia em invariantes que são utilizados para validar a correção das modificações realizadas, cuja semântica está descrita detalhadamente. O mecanismo definido revelou-se extremamente flexível e capaz de manter não só o histórico do desenvolvimento de determinada aplicação, como também alternativas de um mesmo sistema que esteja sendo construído utilizando um banco de dados orientado a objetos, tendo atendido satisfatoriamente aos requisitos básicos definidos inicialmente. / This work presents a schema evolution mechanism, based on an object oriented data model. Conceptual schema modifications are needed al any moment in the life cycle of a system, for example, to incorporate new specifications and users' solicitations, to reuse classes developed for other system and to correct modeling errors. This mechanism has to allow a great number of different operations and, at the same time, a high data logic independence to reduce the number of changes in applications programs. For this proposal we are considering an object oriented data model, similar to those existing in Orion and O2. Class definitions, simple attributes and attributes constructed by the user, methods to encapsulate objects and multiple inheritance of attributes and methods to subclasses are allowed. Instances, classes and methods are versionable. Connected directed acyclic graphs organize the versions of an object. There is one current version, which either is the most recent (the default) or one defined by the user. Schema contexts are introduced to keep track of the correspondence that exists among all the versions created, assuring the selection of a method version adequate for a version instance. The mechanism is based on schema invariants, that are basic conditions that always must be satisfied in order to insure that the schema is in a correct state. Structural and behavioral invariants are defined and checked by the system. The designer can use a complete set of operations to change the schema. The semantic of all operations is described, with its options and effects. Some auxiliary mechanisms are incorporated to facilitate schema change transparency. As an application, a generic mechanism for schema evolution is developed to the STAR framework. The data model, version and methodology managers of STAR are explained. The mechanism is based on invariants to validated changes considering an object schema as conceptual schema. and the methodology manager tasks like methods. The mechanism is extremely flexible and capable of maintaining the history of schema development and alternatives of classes ; methods and instances' descriptions. The previously defined characteristics are allowed in a satisfactorily way, resulting in a very useful tool for software design.
|
35 |
Troca dinâmica de versões de componentes de programas no modelo de objetosHaetinger, 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.
|
36 |
Formal Object Interaction Language: Modeling and Verification of Sequential and Concurrent Object-Oriented SoftwarePamplin, Jason Andrew 03 May 2007 (has links)
As software systems become larger and more complex, developers require the ability to model abstract concepts while ensuring consistency across the entire project. The internet has changed the nature of software by increasing the desire for software deployment across multiple distributed platforms. Finally, increased dependence on technology requires assurance that designed software will perform its intended function. This thesis introduces the Formal Object Interaction Language (FOIL). FOIL is a new object-oriented modeling language specifically designed to address the cumulative shortcomings of existing modeling techniques. FOIL graphically displays software structure, sequential and concurrent behavior, process, and interaction in a simple unified notation, and has an algebraic representation based on a derivative of the π-calculus. The thesis documents the technique in which FOIL software models can be mathematically verified to anticipate deadlocks, ensure consistency, and determine object state reachability. Scalability is offered through the concept of behavioral inheritance; and, FOIL’s inherent support for modeling concurrent behavior and all known workflow patterns is demonstrated. The concepts of process achievability, process complete achievability, and process determinism are introduced with an algorithm for simulating the execution of a FOIL object model using a FOIL process model. Finally, a technique for using a FOIL process model as a constraint on FOIL object system execution is offered as a method to ensure that object-oriented systems modeled in FOIL will complete their processes based activities. FOIL’s capabilities are compared and contrasted with an extensive array of current software modeling techniques. FOIL is ideally suited for data-aware, behavior based systems such as interactive or process management software.
|
37 |
Rollen und Kollaborationen in Scala / Roles and Collaborations in ScalaPradel, Michael 26 June 2008 (has links) (PDF)
The interrelations of a set of software objects are usually manifold and complex. Common object-oriented programming languages provide constructs for structuring objects according to shared properties and behavior, but fail to provide abstraction mechanisms for the interactions of objects. Roles seem to be a promising approach to solve this problem as they focus on the behavior of an object in a certain context. Combining multiple roles yields collaborations, an interesting abstraction and reuse unit. However, existing approaches towards roles in programming languages require vast extensions of the underlying language or even propose new languages. We propose a programming technique that enables role-based programming with commonly available language constructs. Thus, programmers can express roles and collaborations by simply using a library, and hence, without the need to change the language, its compiler, and its tools. We explain our proposal on a language-independent level. Moreover, we provide an implementation in form of a library for the Scala programming language. Finally, we apply our ideas to design patterns and analyze to which extent these can be expressed and reused with roles. / Die Zusammenhänge zwischen Softwareobjekten sind vielfältig und komplex. In den meisten objektorientierten Programmiersprachen werden Objekte an Hand von gemeinsamen Eigenschaften und Verhalten klassifiziert. Konstrukte zum Strukturieren bezüglich ihrer Interaktionen fehlen jedoch. Ein vielversprechender Lösungsansatz sind Rollen, welche das Verhalten von Objekten in einem bestimmten Kontext beschreiben. Zusammenhängende Rollen können zu Kollaborationen abstrahiert werden. Diese sind insbesondere als wiederverwendbare Bausteine interessant. Allerdings verändern bisherige Ansätze zu rollenbasiertem Programmieren die zu Grunde liegende Sprache erheblich oder schlagen gar neue Sprachen vor. Im Gegensatz dazu zeigen wir eine Programmiermethode, die rollenbasiertes Programmieren mit üblichen Sprachkonstrukten ermöglicht. Somit können Rollen und Kollaborationen als Bibliothek bereitgestellt werden, also ohne Sprache, Compiler und Werkzeuge anpassen zu müssen. Wir erläutern unseren Ansatz zunächst sprachunabhängig. Desweiteren wird eine Implementierung als Bibliothek für die Scala Programmiersprache präsentiert. Als praktische Anwendung stellen wir Entwurfsmustern dar und überprüfen, inwiefern sich diese mit Rollen ausdrücken und wiederverwenden lassen.
|
38 |
A Concept-Driven Approach to Object-Oriented Analysis and DesignVen Yu Sien Unknown Date (has links)
The Unified Modelling Language (UML) and object-oriented analysis and design (OOAD) have become essential topics in both academia and industry. UML is the accepted standard modelling language for describing object-oriented (OO) systems for analysis and design, and many UML CASE tools have been built and are used in academia and industry. OO technology and UML is an ongoing area of research, and many applications have been developed using OO technology. However, observations on current software development practices in some computer companies have shown that many OO software developers are not adopting recognised OOAD techniques. Both information technology (IT) students at higher educational institutions and professionals have in general found difficulty in grasping OO concepts, and the role that UML diagrams play in the design of the analysis and design solution. They particularly find difficulty in performing abstractions of real-world problems within the context of OOAD. They are unable to effectively build class diagrams from the problem domain because they essentially do not know ‘what’ to model. They therefore prefer to start coding software applications before building the analysis and design artifacts. Most of these students invariably prefer to focus on the implementation phase of a software development lifecycle and consider the preceding analysis and design phases superfluous. The overall goal of this thesis is to contribute to a significant improvement in the way students and software developers analyse and design their OO systems. We present a new approach by introducing concept mapping as a tool to help novices in OOAD produce more appropriate UML class and sequence diagrams. The class and sequence diagrams are selected because they represent the essential static and behavioural aspects of a problem domain. The former is fundamental to the OO modelling process and the latter is one of the most widely used dynamic diagrams in UML. Concept mapping is a popular tool used in education for facilitating learning, comprehension and the development of knowledge. Within the context of OOAD, we propose to use concept maps as a graphical representation of fundamental concepts, and their relationships and responsibilities within a problem domain. A static concept map derived from expanded use cases (use case narratives) can subsequently evolve into a class diagram containing information on classes, attributes, associations and generalisation-specialisation hierarchies. A dynamic concept map derived from an expanded use case can evolve into a sequence diagram containing information on the interaction of objects (and their messages) to fulfil the responsibilities of a particular scenario of the use case. In this thesis, a study is initially conducted to investigate in detail the difficulties undergraduate students have when producing UML class and sequence diagrams. The results of the study reveal and confirm some of the fundamental problems that students have with OO modelling. In order to address these problems, a concept-driven approach is developed to help novices produce more appropriate UML class and sequence diagrams. The effectiveness of this approach is evaluated by three different experiments. The data from these experiments is analysed and there is sufficient statistical evidence to support the claim that the participants produce more appropriate class and sequence diagrams after being taught concept mapping techniques. As a result of this positive outcome, a set of guidelines is developed for teaching OO modelling with concept maps. These guidelines could be integrated into existing OOAD courses to help software engineering educators resolve some of the difficulties they face when teaching OOAD.
|
39 |
A Concept-Driven Approach to Object-Oriented Analysis and DesignVen Yu Sien Unknown Date (has links)
The Unified Modelling Language (UML) and object-oriented analysis and design (OOAD) have become essential topics in both academia and industry. UML is the accepted standard modelling language for describing object-oriented (OO) systems for analysis and design, and many UML CASE tools have been built and are used in academia and industry. OO technology and UML is an ongoing area of research, and many applications have been developed using OO technology. However, observations on current software development practices in some computer companies have shown that many OO software developers are not adopting recognised OOAD techniques. Both information technology (IT) students at higher educational institutions and professionals have in general found difficulty in grasping OO concepts, and the role that UML diagrams play in the design of the analysis and design solution. They particularly find difficulty in performing abstractions of real-world problems within the context of OOAD. They are unable to effectively build class diagrams from the problem domain because they essentially do not know ‘what’ to model. They therefore prefer to start coding software applications before building the analysis and design artifacts. Most of these students invariably prefer to focus on the implementation phase of a software development lifecycle and consider the preceding analysis and design phases superfluous. The overall goal of this thesis is to contribute to a significant improvement in the way students and software developers analyse and design their OO systems. We present a new approach by introducing concept mapping as a tool to help novices in OOAD produce more appropriate UML class and sequence diagrams. The class and sequence diagrams are selected because they represent the essential static and behavioural aspects of a problem domain. The former is fundamental to the OO modelling process and the latter is one of the most widely used dynamic diagrams in UML. Concept mapping is a popular tool used in education for facilitating learning, comprehension and the development of knowledge. Within the context of OOAD, we propose to use concept maps as a graphical representation of fundamental concepts, and their relationships and responsibilities within a problem domain. A static concept map derived from expanded use cases (use case narratives) can subsequently evolve into a class diagram containing information on classes, attributes, associations and generalisation-specialisation hierarchies. A dynamic concept map derived from an expanded use case can evolve into a sequence diagram containing information on the interaction of objects (and their messages) to fulfil the responsibilities of a particular scenario of the use case. In this thesis, a study is initially conducted to investigate in detail the difficulties undergraduate students have when producing UML class and sequence diagrams. The results of the study reveal and confirm some of the fundamental problems that students have with OO modelling. In order to address these problems, a concept-driven approach is developed to help novices produce more appropriate UML class and sequence diagrams. The effectiveness of this approach is evaluated by three different experiments. The data from these experiments is analysed and there is sufficient statistical evidence to support the claim that the participants produce more appropriate class and sequence diagrams after being taught concept mapping techniques. As a result of this positive outcome, a set of guidelines is developed for teaching OO modelling with concept maps. These guidelines could be integrated into existing OOAD courses to help software engineering educators resolve some of the difficulties they face when teaching OOAD.
|
40 |
Troca dinâmica de versões de componentes de programas no modelo de objetosHaetinger, 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.
|
Page generated in 0.1068 seconds