1 |
USING DYNAMIC MIXINS FOR SOFTWARE DEVELOPMENTBurton, Ronald January 2018 (has links)
Object-oriented programming has gained significant traction in the software development community and is now the common approach for developing large, commercial applications. Many of these applications require the behaviour of objects to be modified at run-time. Contemporary class-based, statically-typed languages such as C++ and Java require collaboration with external objects to modify an object’s behaviour. Furthermore, such an object must be designed to order to support such collaborations. Dynamic languages such as Python which natively support object extension do not guarantee type safety. In this work, using dynamic mixins with static typing is proposed as a means of providing type-safe, object extension. A new language called mix is introduced that allows a compiler to syntactically check the type-safety of an object extension. A model to support object-oriented development is extended to support dynamic mixins. The utility of the approach is illustrated using sample use cases. Finally, a compiler was implemented to validate the practicality of the model proposed. / Thesis / Doctor of Philosophy (PhD)
|
2 |
Automatic construction of conceptual models to support early stages of software development : a semantic object model approachChioasca, Erol-Valeriu January 2015 (has links)
The earliest stage of software development almost always involves converting requirements descriptions written in natural language (NLRs) into initial conceptual models, represented by some formal notation. This stage is time-consuming and demanding, as initial models are often constructed manually, requiring human modellers to have appropriate modelling knowledge and skills. Furthermore, this stage is critical, as errors made in initial models are costly to correct if left undetected until the later stages. Consequently, the need for automated tool support is desirable at this stage. There are many approaches that support the modelling process in the early stages of software development. The majority of approaches employ linguistic-driven analysis to extract essential information from input NLRs in order to create different types of conceptual models. However, the main difficulty to overcome is the ambiguous and incomplete nature of NLRs. Semantic-driven approaches have the potential to address the difficulties of NLRs, however, the current state of the art methods have not been designed to address the incomplete nature of NLRs. This thesis presents a semantic-driven automatic model construction approach which addresses the limitations of current semantic-driven NLR transformation approaches. Central to this approach is a set of primitive conceptual patterns called Semantic Object Models (SOMs), which superimpose a layer of semantics and structure on top of NLRs. These patterns serve as intermediate models to bridge the gap between NLRs and their initial conceptual models. The proposed approach first translates a given NLR into a set of individual SOM instances (SOMi) and then composes them into a knowledge representation network called Semantic Object Network (SON). The proposed approach is embodied in a software tool called TRAM. The validation results show that the proposed semantic-driven approach aids users in creating improved conceptual models. Moreover, practical evaluation of TRAM indicates that the proposed approach performs better than its peers and has the potential for use in real world software development.
|
3 |
Improving Polymorphism and Concurrency in Common Object ModelsChalla, Siva Prasadarao Jr. 03 March 1998 (has links)
Most common object models of distributed object systems have a limited set of object-oriented features, lacking the advanced features of `polymorphism' (an abstraction mechanism that represents a quality or state of being able to assume different forms) and `concurrency' (the ability to have more than one thread of execution in an object simultaneously). The lack of support for advanced features is a serious limitation because it restricts the development of new components and limits reuse of existing of components that use these advanced features. As a result, wrappers must be used that hide the advanced features or components must be re-implemented using only the features of the common object model.
In this dissertation, a new direction of research centered on a subset of object-oriented languages, specifically statically typed languages, is considered. One of the major drawbacks of existing distributed object systems is that they cater to a broad domain of programming languages including both object-oriented as well as non object-oriented languages. Mapping an object model into a non object-oriented language is a complex task and it does not appear natural to a native language user.
The interoperable common object model (ICOM) proposed in this dissertation is an attempt to elevate common object models (with the advanced features of polymorphism and concurrency) closer to the object models of statically typed object-oriented languages. Specific features of the ICOM object model include: remote inheritance, method overloading, parameterized types, and guard methods. The actor model and reflection techniques are used to develop a uniform implementation framework for the ICOM object model in C++ and Modula-3. Prototype applications were implemented to demonstrate the utility of the advanced features of the ICOM object model.
The main contributions of this dissertation are: design and implementation of a powerful common object model, an architecture for distributed compilation, and an implementation of a distributed object model using the actor model. / Ph. D.
|
4 |
Patobulintos objektinio modelio transformacijos į reliacinių duomenų bazių schemas UML CASE įrankiuose / Complete transformations of object models to relational database schemas in UML CASE toolsMaslauskas, Raimondas 16 August 2007 (has links)
Šio darbo tikslas – pilnų objektinių-sąryšinių transformacijų algoritmų sukūrimas ir įgyvendinimas UML CASE įrankiuose. Pilnomis transformacijomis suprantamos tokios transformacijos, kurios gali transformuoti visas objektinio modelio konstrukcijas į sąryšinių duomenų bazių konstrukcijas. To neatlieka esami CASE įrankiai. Siūlomas sprendimas – panaudoti esamas CASE įrankių transformacijas ir papildyti jas iki teorinio modelio. Eksperimentinė realizacija UML CASE įrankyje Magic Draw patvirtino šio sprendimo veiksmingumą. / The goal of the current work – creation of complete transformation algorithms from object models to relational databases and their implementation in UML CASE tools. OOP has enabled the creation of tools for object oriented software and databases. One of the main aims of such tools is to create the object model of software and also a database for storing information about these objects. Most tools of software engineering enable the creation of object oriented software model and its transformation into RDB model. Afterwards the program code is generated from the OOP model and the SQL script of the database is generated from the RDB model. The analysis of CASE tools indicates that class models are not completely transformed into relational database schemes, i.e. none of existing case tools performs full transformation. One of the solutions is to take complete transformation process from class model into realational database model. The analysis of prototypes of created algorithms revealed that it is possible to perform such a task. The final result is the improved CASE tool with complete transformations from objectmodels to relational database schemas.
|
5 |
Structuring Adaptive Applications using AspectJDébora Dantas de Souza, Ayla January 2004 (has links)
Made available in DSpace on 2014-06-12T15:58:29Z (GMT). No. of bitstreams: 2
arquivo4584_1.pdf: 1969312 bytes, checksum: ebc699427e4ae5f379c7d0e4b5d9b28f (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2004 / Os dispositivos computacionais estão se tornando ubíquos. Com um celular, atualmente,
podemos acessar e manipular informação praticamente em qualquer lugar e a qualquer
instante. Neste cenário de computação ubíqua, tem-se exigido que tais sistemas sejam
adaptativos, ou seja, tenham a capacidade de se adaptar em decorrência de mudanças
no contexto em que estão inseridos.
É importante destacar, porém, que a adaptabilidade adiciona certa complexidade ao
desenvolvimento de aplicações. Um dos problemas é que a implementação de comportamentos
adaptativos em muitos casos se entrelaça com outras preocupações da aplicação,
como apresentação, negócio e dados, levando a problemas de legibilidade que podem
prejudicar a manutenabilidade do código.
A programação orientada a aspectos pode ser usada para facilitar a resolução de
problemas relacionados a código entrela¸cado, e dar suporte ao desenvolvimento de programas
adaptativos, e ao mesmo tempo adaptáveis (fáceis de modificar) com bons níveis
de qualidade e produtividade. Essa dissertação mostra como podemos usar aspectos, em
especial em AspectJ, para estruturar aplicações adaptativas, minimizando dessa forma o
entrelaçamento de código. AspectJ é uma linguagem orientada a aspectos, de propósito
geral, e que estende a linguagem Java. Ela é voltada `a separação de preocupações. Em
nosso trabalho ela é utilizada para promover a separação da preocupação adaptabilidade ,
obtendo-se assim uma implementação modular.
Através do uso dessa linguagem, identificamos boas práticas para a estruturação de
aplicações adaptativas, as quais foram resumidas em um padrão denominado Adaptability
Aspects. Escolhemos a plataforma Java 2 Micro Edition para implementar várias
preocupações relativas a adaptabilidade, principalmente pelo fato de ser uma tecnologia
destinada a dispositivos ubíquos e com recursos limitados.
Al´em de AspectJ, analisamos também uma outra abordagem para a estruturação
de aplicações adaptativas: o uso do estilo arquitetural denominado Adaptive Object-
Models . Verificamos a partir dessa análise que ele poderia ser combinado com o nosso
padrão, e portanto, beneficiar-se com o uso de aspectos. Dessa forma, poderia-se oferecer
suporte a um conjunto maior de adaptações e ao mesmo tempo obter-se uma estrutura
ção no código mais fácil de compreender.
Por fim, avaliamos o impacto de AspectJ, através do uso do padrão Adaptability
Aspects, para implementar alguns requisitos de adaptabilidade em aplicações J2ME.
Comparamos nossa implementação com uma solução em que a implementação destes
requisitos não é tão modular e com uma outra solução utilizando padrões de projeto
puramente orientados a objeto na qual se buscava tal modularidade. Alguns dos aspectos
comparados foram tempo de execução, memória utilizada, tamanho da aplicação e de
seu código. Além de medir tais fatores, descrevemos os ganhos que a programação
orientada a aspectos pode trazer para a estruturação de aplicações adaptativas visando
obter qualidade em termos de reuso e facilidade de manutenção
|
6 |
Um modelo de objetos e arquitetura para aplicações distribuídas de realidade virtual. / An object model and architecture for distributed virtual reality applications.Ferraz, Rodrigo Barroca Dias 15 January 2018 (has links)
Técnicas e ferramentas (middlewares para desenvolvimento de aplicações distribuídas são utilizadas no caso dos recursos de um único computador não serem suficientes, ou para atender requisitos de qualidade de serviço, ou mesmo para abranger uma maior quantidade de usuários. A Realidade Virtual é uma das áreas da computação a sua complexidade, se beneficia de tais técnicas e middlewares, seja para proporcionar ambientes mais imersivos e/ou possibilitar a interação de múltiplos usuários. A Realidade Virtual engloba uma ampla diversidade de aplicações, incluindo infraestruturas de alta imersão, jogos multi-jogadores, e simuladores de voo, e cada classe de aplicação têm demandas específicas de distribuição, como escalabilidade, ou requisitos de tempo-real, entre outros. Devido à complexidade e a essa diversidade de aplicações de realidade virtual, as alternativas de middlewares disponíveis atendem requisitos específicos de uma única classe, ou, as genéricas, não fornecem modelos de objetos, comunicação ou execução favoráveis às aplicações de realidade virtual. Esse trabalho tem o objetivo de propor um novo modelo de objetos e arquitetura de um middleware para desenvolvimento de aplicações distribuídas de realidade virtual suficientemente flexível para atender diversas classes de aplicações. O modelo de objetos proposto une os modelos publicador/assinante e requisição/ resposta em uma única entidade similar aos objetos do paradigma de programação orientada a objetos, que, além de empregar conceitos intuitivos para desenvolvedores, possibilita o desacoplamento lógico entre os processos, simplificando o projeto e a implementação das aplicações distribuídas. O principal diferencial desta abordagem é a possibilidade de distribuir a implementação de cada membro dos objetos em diferentes processos. / Techniques and middlewares for distributed application development are used in cases the resources available in a single computer are not enough for the demanded complexity, to meet the required quality of services, or even to cover a greater number of users. The Virtual Reality is one of the computer fields that, because of its complexity, benefits from such techniques and tools, either to provide more immersive virtual environments, or to enable multi-user interaction. The Virtual Reality covers a wide range of applications, including high immersion infrastructures, multiplayer games, and full mission flight simulators. Each application class has specifics distribution demands, such as high scalability, or real-time requirements. Because of complexity and the diversity of virtual reality applications, the distribution solutions available meet the specific requirements of a single class, or the generic ones do not provide object, communication, or execution favorable for virtual reality applications. This work proposes a new model of objects and architecture of a middleware for distributed virtual reality applications that is flexible enough to suit several classes of applications. The proposed object model joins the publisher/subscriber and request/response models to a single logic entity similar to the objects of the object-oriented programming paradigm. Besides being an intuitive concept for developers, this entity enable logical decoupling between processes, simplifying the design and implementation of distributed applications. The main feature of this approach is the possibility to distribute the implementation of each member of the objects in different processes.
|
7 |
Um modelo de objetos e arquitetura para aplicações distribuídas de realidade virtual. / An object model and architecture for distributed virtual reality applications.Rodrigo Barroca Dias Ferraz 15 January 2018 (has links)
Técnicas e ferramentas (middlewares para desenvolvimento de aplicações distribuídas são utilizadas no caso dos recursos de um único computador não serem suficientes, ou para atender requisitos de qualidade de serviço, ou mesmo para abranger uma maior quantidade de usuários. A Realidade Virtual é uma das áreas da computação a sua complexidade, se beneficia de tais técnicas e middlewares, seja para proporcionar ambientes mais imersivos e/ou possibilitar a interação de múltiplos usuários. A Realidade Virtual engloba uma ampla diversidade de aplicações, incluindo infraestruturas de alta imersão, jogos multi-jogadores, e simuladores de voo, e cada classe de aplicação têm demandas específicas de distribuição, como escalabilidade, ou requisitos de tempo-real, entre outros. Devido à complexidade e a essa diversidade de aplicações de realidade virtual, as alternativas de middlewares disponíveis atendem requisitos específicos de uma única classe, ou, as genéricas, não fornecem modelos de objetos, comunicação ou execução favoráveis às aplicações de realidade virtual. Esse trabalho tem o objetivo de propor um novo modelo de objetos e arquitetura de um middleware para desenvolvimento de aplicações distribuídas de realidade virtual suficientemente flexível para atender diversas classes de aplicações. O modelo de objetos proposto une os modelos publicador/assinante e requisição/ resposta em uma única entidade similar aos objetos do paradigma de programação orientada a objetos, que, além de empregar conceitos intuitivos para desenvolvedores, possibilita o desacoplamento lógico entre os processos, simplificando o projeto e a implementação das aplicações distribuídas. O principal diferencial desta abordagem é a possibilidade de distribuir a implementação de cada membro dos objetos em diferentes processos. / Techniques and middlewares for distributed application development are used in cases the resources available in a single computer are not enough for the demanded complexity, to meet the required quality of services, or even to cover a greater number of users. The Virtual Reality is one of the computer fields that, because of its complexity, benefits from such techniques and tools, either to provide more immersive virtual environments, or to enable multi-user interaction. The Virtual Reality covers a wide range of applications, including high immersion infrastructures, multiplayer games, and full mission flight simulators. Each application class has specifics distribution demands, such as high scalability, or real-time requirements. Because of complexity and the diversity of virtual reality applications, the distribution solutions available meet the specific requirements of a single class, or the generic ones do not provide object, communication, or execution favorable for virtual reality applications. This work proposes a new model of objects and architecture of a middleware for distributed virtual reality applications that is flexible enough to suit several classes of applications. The proposed object model joins the publisher/subscriber and request/response models to a single logic entity similar to the objects of the object-oriented programming paradigm. Besides being an intuitive concept for developers, this entity enable logical decoupling between processes, simplifying the design and implementation of distributed applications. The main feature of this approach is the possibility to distribute the implementation of each member of the objects in different processes.
|
Page generated in 0.0703 seconds