4 research outputs found

    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)

    Uma proposta para a evolução da engenharia de software dirigida por modelos

    No full text
    In the Model-Driven Software Engineering (MDSE) context, software production can be performed by defining models. Despite the advantages of this methodology, different domains require specific support tools and modeling languages, which, in turn, must be developed along with the final software. Because of this, developers face problems when applying the method. The objective of this work is twofold: 1) to identify the most critical problems when developing with this method; 2) discuss and provide possible solutions to those problems. The critical problems were identified by performing a systematic mapping, empirical studies, collaborations and interviews with specialists. It has been identified that MDSE, according to basic literature, has an excessively high abstraction level which leads to a lack of adequate processes and developer training, besides the need for modeling tools. A new method is necessary to allow developers to treat models and source-code differently. Therefore, in this thesis, the need for evolving MDSE processes is discussed. In this manner, this work introduces a new development method described as a possible concrete evolution of MDSE that defines a paradigm for software development. This method is defined along with domain specific languages, a tool-chain and sample software systems. After conducting analytic and experimental studies, it has been concluded that these applications also represent a valuable contribution for implementing service-oriented systems which can be employed in real world applications.No contexto da Engenharia de Software Dirigida por Modelos (MDSE), a produção de software pode ser realizada por meio de definições de modelos. Apesar dos benefícios desse método de desenvolvimento, diferentes domínios exigem a especificação de linguagens de modelagem e ferramentas específicas, que, por sua vez, precisam ser desenvolvidos em conjunto com o software final. Desta forma, desenvolvedores encontram problemas ao utilizar este método. Este trabalho possui duplo objetivo: 1) identificar os problemas mais críticos deste método; 2) discutir e fornecer possíveis soluções aos problemas. A identificação de problemas foi realizada por meio de um mapeamento sistemático, estudos empíricos, colaborações e entrevistas com especialistas. Foi identificado que MDSE, de acordo com a literatura básica, possui um nível de abstração excessivamente alto, acarretando em carência de processos adequados e de treinamento de desenvolvedores que vão além de problemas de necessidade de ferramentas de modelagem. Portanto, nesta tese, discute-se a necessidade de evoluir processos de MDSE que permita aos desenvolvedores uma nova forma de tratar modelos e código-fonte. Para tanto, neste trabalho também é descrito um novo método de desenvolvimento, descrito como uma possível evolução concreta do MDSE, o qual define um paradigma para desenvolver software. Este método é exemplificado em várias aplicações dentro deste trabalho. Após conduzir estudos analíticos e experimentais, concluiu-se que estas aplicações também possibilitam uma contribuição significativa no domínio de software orientado a serviços que podem ser empregadas em software do mundo real

    Reúso de frameworks transversais com apoio de modelos

    No full text
    Aspect-Oriented programming was created to modularize the so-called crosscutting concerns . Crosscutting concerns have some properties that cannot be fully modularized with the object-oriented paradigm. After that, aspect-oriented frameworks were created in order to make reuse of different concern codes easier. Among these frameworks, Crosscutting Frameworks are aspect-oriented frameworks specifically created for crosscutting concern code modularization, for instance, persistence, distribution, concurrency and business rules. Currently, these frameworks are usually distributed as source code and must be reused by extending classes, aspects and methods. Reusing these frameworks in code-level require application developers to worry about implementation issues, that affects understandability, productivity and quality of final software. In this thesis, the objective is to raise abstraction level by applying a new model-driven approach for crosscutting framework reuse, which also allows reusability during earlier development phases. Experiments were conducted in order to compare the productivity of the proposed process with the conventional reuse technique, which is based on source-code edition. It was identified that the proposed process has advantages during the reuse activity, however, no advantages were detected while maintaining an application coupled to a crosscutting framework.Universidade Federal de Minas GeraisA programação orientada a aspectos foi criada para permitir a modularização de um tipo de interesse de software denominado de interesse transversal , que não pode ser completamente modularizado com paradigmas como o orientado a objetos. Com o uso do paradigma orientado a aspectos, vários pesquisadores começaram a pesquisar como determinados interesses transversais poderiam ser modularizados de formas genéricas para aumentar suas possibilidades de reúso, fazendo surgir Frameworks Orientados a Aspectos e também o termo Frameworks Transversais. Framework Transversal é um tipo de framework orientado a aspectos que tem o objetivo de permitir o reúso de código de interesses transversais, como persistência, distribuição, concorrência ou regras de negócio. Em geral, esses frameworks são disponibilizados na forma de código-fonte e devem ser reusados por meio da edição de código. Realizar o reúso neste nível faz com que engenheiros de aplicação tenham que se preocupar com detalhes da implementação do framework, afetando o entendimento, a produtividade e a qualidade do software final. Neste trabalho, o objetivo é elevar o nível de abstração do processo de reúso de frameworks transversais, propondo um processo dirigido por modelos que permite iniciar o processo de reúso nas fases antecedentes à implementação. Experimentos foram realizados para comparar o tempo de aplicar no novo processo com o processo de edição de código-fonte. Foi identificado que o novo processo possui vantagens em diminuir o tempo para reusar os frameworks, porém, não foram encontradas vantagens durante a manutenção de aplicações acopladas a frameworks transversais

    Understanding Semantic Search on Scientific Repositories: Steps towards Meaningful Findability

    No full text
    Open Science has become one of the most important movements for leveraging scientific collaboration through sharing and reuse of research outputs, such as publications, data, software and methods, which are stored and preserved in public repositories. The emergence of FAIR principles as mandatory for effective openness has made it clear that it is not enough to publish such outputs – ”findability” (our focus) is a key issue. It can be leveraged by good documentation and, e.g., PIDs (persistent identifiers), but search mechanisms have yet to adapt to this new context. Many such mechanisms – in particular semantic search – have risen as a means towards findability. Nevertheless, implementing these mechanisms and integrating them into scientific repositories presents many challenges. This paper presents a systematic literature review of research efforts on mechanisms designed to support search for research outputs – publications, data and processes. Our analysis is based on processing the entire collection of papers stored in Scopus, IEEE Xplore and arXiV. We identified 299 papers related to semantic search in scientific repositories. Their analysis provided a categorization of existing literature and unexplored gaps, pointing out new research challenges for semantic search mechanisms to support Open Science
    corecore