12 research outputs found

    Orthogonal persistence in Java supported by aspect- oriented programming and reflection

    Get PDF
    The persistence concern implemented as an aspect has been studied since the appearance of the Aspect-Oriented paradigm. Frequently, persistence is given as an example that can be aspectized, but until today no real world solution has applied that paradigm. Such solution should be able to enhance the programmer productivity and make the application less prone to errors. To test the viability of that concept, in a previous study we developed a prototype that implements Orthogonal Persistence as an aspect. This first version of the prototype was already fully functional with all Java types including arrays. In this work the results of our new research to overcome some limitations that we have identified on the data type abstraction and transparency in the prototype are presented. One of our goals was to avoid the Java standard idiom for genericity, based on casts, type tests and subtyping. Moreover, we also find the need to introduce some dynamic data type abilities. We consider that the Reflection is the solution to those issues. To achieve that, we have extended our prototype with a new static weaver that preprocesses the application source code in order to introduce changes to the normal behavior of the Java compiler with a new generated reflective code

    An aspect-oriented framework for orthogonal persistence

    Get PDF
    The life cycle of software applications in general is very short and with extreme volatile requirements. Within these conditions programmers need development tools and techniques with an extreme level of productivity. We consider the code reuse as the most prominent approach to solve that problem. Our proposal uses the advantages provided by the Aspect-Oriented Programming in order to build a reusable framework capable to turn both programmer and application oblivious as far as data persistence is concerned, thus avoiding the need to write any line of code about that concern. Besides the benefits to productivity, the software quality increases. This paper describes the actual state of the art, identifying the main challenge to build a complete and reusable framework for Orthogonal Persistence in concurrent environments with support for transactions. The present work also includes a successfully developed prototype of that framework, capable of freeing the programmer of implementing any read or write data operations. This prototype is supported by an object oriented database and, in the future, will also use a relational database and have support for transactions

    Modularizing application and database evolution - an aspect-oriented framework for orthogonal persistence

    Get PDF
    In the maintenance of software applications, database evolution is one common difficulty. In object‐oriented databases, this process comprises schema evolution and instance adaptation. Both tasks usually require significant effort from programmers and database administrators. In this paper, we propose orthogonal persistence and aspect‐oriented programming to support semi‐transparent database evolution. A default mechanism for instance evolution is defined, but the user may provide modularized solutions using the aspect‐oriented paradigm. We present our framework AOF4OOP to test the feasibility of our proposed approach. This prototype allows programmes to transparently access data in other versions of the database schema. We evaluate our framework, comparing it to related approaches using two real applications and measuring the improvement of the productivity of the programmer.info:eu-repo/semantics/publishedVersio

    AspectJ bajo la lupa

    Get PDF
    La dependencia y acoplamiento existente entre aspectos y clases generan un alto impacto cuando se modifica el dominio de una aplicación. Esta situación es propia de aplicaciones que usan aspectos implementados en lenguajes del estilo AspectJ. En estos casos el desarrollador se enfrenta a nuevos dilemas puesto que el comportamiento introducido por los aspectos se ejecuta o deja de ejecutarse sin haber modificado dichos aspectos. La mejor manera de resolver un problema es anticiparse, se convierte en un principio y estrategia que acuñamos para encontrar una posible solución al problema planteado. En este camino, este trabajo propone una solución empírica basada en la herramienta BaLaLu, cuya finalidad es anticipar las consecuencias que un cambio podrá tener en una aplicación que usa aspectos.Eje: Workshop Ingeniería de software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Model-based reuse for crosscutting frameworks: assessing reuse and maintenance effort

    Get PDF
    Abstract\ud \ud \ud \ud Background\ud Over the last years, a number of researchers have investigated how to improve the reuse of crosscutting concerns. New possibilities have emerged with the advent of aspect-oriented programming, and many frameworks were designed considering the abstractions provided by this new paradigm. We call this type of framework Crosscutting Frameworks (CF), as it usually encapsulates a generic and abstract design of one crosscutting concern. However, most of the proposed CFs employ white-box strategies in their reuse process, requiring two mainly technical skills: (i) knowing syntax details of the programming language employed to build the framework and (ii) being aware of the architectural details of the CF and its internal nomenclature. Also, another problem is that the reuse process can only be initiated as soon as the development process reaches the implementation phase, preventing it from starting earlier.\ud \ud \ud \ud Method\ud In order to solve these problems, we present in this paper a model-based approach for reusing CFs which shields application engineers from technical details, letting him/her concentrate on what the framework really needs from the application under development. To support our approach, two models are proposed: the Reuse Requirements Model (RRM) and the Reuse Model (RM). The former must be used to describe the framework structure and the later is in charge of supporting the reuse process. As soon as the application engineer has filled in the RM, the reuse code can be automatically generated.\ud \ud \ud \ud Results\ud We also present here the result of two comparative experiments using two versions of a Persistence CF: the original one, whose reuse process is based on writing code, and the new one, which is model-based. The first experiment evaluated the productivity during the reuse process, and the second one evaluated the effort of maintaining applications developed with both CF versions. The results show the improvement of 97% in the productivity; however little difference was perceived regarding the effort for maintaining the required application.\ud \ud \ud \ud Conclusion\ud By using the approach herein presented, it was possible to conclude the following: (i) it is possible to automate the instantiation of CFs, and (ii) the productivity of developers are improved as long as they use a model-based instantiation approach.The authors would like to thank CNPq for funding (Processes 132996/2010-3 and 560241/2010-0) and for the Universal Project (Process Number 483106/2009-7) in which this article was created. Thiago Gottardi would also like to thank FAPESP (Process 2011/04064-8)

    Adaptação da framework i* para linhas de produtos

    Get PDF
    Dissertação de Mestrado em Engenharia InformáticaA investigação de requisitos em linhas de produtos de software tem explorado as maneiras pelas quais se podem definir, de forma apropriada, uma plataforma capaz de servir de base para a derivação rentável dos produtos para os utilizadores individuais. Os modelos de features são uma técnica importante para capturar os pontos comuns e diferentes nas linhas de produtos. Uma feature pode representar uma característica funcional ou não-funcional de requisitos, arquitectura, ou de qualquer outro nível de abstracção do software. Contudo, os modelos de features mostram uma perspectiva muito específica das linhas de produtos, por isso é necessário ter uma abordagem que mostre outras perspectivas a nível de requisitos e dar significado a essas features de maneira a ser mais compreensível o que se pretende representar. Os paradigmas orientados a objectivos ou agentes têm sido usados para o desenvolvimento de sistemas complexos e, algumas abordagens como a framework i* têm sido desenvolvidas para serem utilizadas na engenharia de requisitos. A framework de modelação organizacional i* oferece conceitos sociais e intencionais, e os desejos dos stakeholders são considerados realmente importantes para o desenvolvimento de sistemas que satisfaçam melhor nas suas necessidades. Os modelos de objectivos fornecem um modo natural de identificar a variabilidade na fase inicial de requisitos, permitindo a captura de formas alternativas para os stakeholders alcançarem os seus objectivos. Este modo natural é muito importante para se conseguir utilizar modelos orientados a objectivos no desenvolvimento de linhas de produtos. Todavia, o uso da framework i* para linhas de produtos não foi ainda suficientemente explorado. Portanto, o objectivo desta dissertação é adaptar a framework i* para o desenvolvimento de linhas de produtos de software e fornecer uma abordagem mais expressiva para a engenharia de requisitos destes produtos

    Integrando problem frames com aspectos

    Get PDF
    Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção do grau de Mestre em Engenharia InformáticaA primeira actividade do processo de desenvolvimento de software consiste na identificação das funcionalidades e propriedades que se pretendem ver implementadas nos sistemas, sendo designada por engenharia de requisitos. Nesta fase de análise de requisitos podem surgir problemas que, se não forem correctamente solucionados, irão posteriormente conduzir a um agravamento de custos num estágio mais avançado do desenvolvimento. Um exemplo disto são elementos que se encontram espalhados e repetidos por diversas componentes do sistema que se pretendem modularizar, designados por assuntos transversais (crosscutting concerns), e que afectam o seu comportamento (aspectos). Os mecanismos de Engenharia de Requisitos Orientada a Aspectos, dão suporte a que este tipo de conjunturas seja minimizado, fornecendo maneiras de lidar de forma eficaz com estes concerns. A abordagem “Problem Frames” é uma técnica de análise de requisitos bastante conhecida e estabelecida na comunidade de requisitos, composta por vários conceitos com o objectivo de reunir e especificar as funcionalidades de um problema em engenharia de software, bem como reutilizar conhecimentos relacionados a classes de problemas previamente conhecidas. No entanto, este método pode ainda tornar-se bastante mais poderoso, isto se permitir lidar com elementos transversais, através da integração de noções orientadas para aspectos

    Adaptar abordagem KAOS para especificar linhas de produtos de software

    Get PDF
    Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção de grau de MestreA investigação da Engenharia de Requisitos (ER) para as Linhas de Produtos de Software (LPSs) tem explorado as maneiras onde se pode definir apropriadamente os artefactos base,capaz de servir como base para a derivação rentável de produtos para utilizadores individuais. Uma LPS é um conjunto ou um grupo de produtos que têm características em comum, mas também varia em determinadas características. A modelação de feature é uma técnica chave para capturar pontos comuns e variáveis em sistema de famílias e linhas de produtos. Portanto, devido à complexidade do desenvolvimento da LPS, a ER é muito importante para gerir esta complexidade. A Engenharia de Requisitos Orientada a Objectivos (EROO) tem sido usada para desenvolver sistemas complexos e algumas abordagens têm sido desenvolvidas, tais como KAOS. Um objectivo (goal) é um propósito que um sistema é suposto alcançar. Entretanto, o uso do KAOS para descrever uma LPS ainda não foi explorado suficientemente. Mas o modelo de objectivos fornece propriedades para a identificação da variabilidade na fase inicial dos requisitos. Deste modo, o objectivo desta dissertação é adaptar a abordagem KAOS para modelar as LPSs, de modo a fornecer uma abordagem orientada a objectivos expressiva para o desenvolvimento de uma LPS

    Adaptação da abordagem theme para linhas de produtos de software

    Get PDF
    Dissertação apresentada Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção do Grau de Mestre em Engenharia InformáticaParte da investigação na área de requisitos para Linhas de Produtos de Software (LPS) tem sido realizada de modo a estudar a forma pela qual se podem definir e estruturar artefactos de requisitos da forma mais modularizada possível. O objectivo é que esses artefactos sejam capazes de servir como base para a derivação rentável de produtos e também a fim de facilitar a sua evolução. Na especificação de LPS, a modelação de features é uma técnica chave para capturar pontos comuns e variáveis nas famílias de sistemas de linhas de produtos. Uma feature pode denotar qualquer característica funcional ou não funcional ao nível dos requisitos. Contudo, os modelos de features mostram uma perspectiva muito específica das linhas de produtos, sendo necessário ter uma abordagem que mostre outras perspectivas ao nível dos requisitos, onde a modularização se deve ter em conta. Uma das abordagens de engenharia de requisitos que endereça de forma eficiente a modularização de requisitos é a abordagem Theme, uma vez que adopta o paradigma da orientação a aspectos que se caracteriza por identificar, modelar e compor requisitos transversais,facilitando assim a evolução de sistemas. Contudo, o uso de Theme ainda não foi suficientemente explorado para descrever linhas de produtos. Os modelos de Theme, tal como outras abordagens de requisitos, oferecem uma forma natural de identificar pontos comuns e variáveis nas fases iniciais de requisitos, podendo ser combinados com o modelo de features e fornecendo uma abordagem mais expressiva para a engenharia de requisitos para LPS. Deste modo, este trabalho visa desenvolver uma abordagem que investiga como o desenvolvimento de LPS pode ser beneficiado com a integração de uma abordagem orientada a aspectos, nomeadamente a abordagem Theme
    corecore