7 research outputs found

    TOWARD EASING THE INSTANTIATION OF APPLICATIONS USING GRENJ FRAMEWORK BY MEANS OF A DOMAIN SPECIFIC LANGUAGE

    Get PDF
    White-box frameworks are a collection of extensible classes representing reusable designs that can be extended, to varying degrees, to instantiate custom-tailored software systems. Due to its inherent benefits (e.g., large-scale reuse of code, design, and domain knowledge), such domain-specific reuse approach has become a de facto standard to implement business systems. However, in order to fully realize the advantages of white-box frameworks, developers need to have substantial architectural and technical knowledge. In effect, developers must be familiar with the framework's extension points (e.g., hot spots) and how to program those extensions using the programming language in which the framework was implemented. GRENJ is a white-box framework implemented in Java. Thus, instantiating applications through such framework is quite complex and demands detailed architectural knowledge and advanced Java programming skills. In order to lessen the amount of source code, effort, and expertise required to instantiate applications by using GRENJ framework, we have developed a domain specific language that manages all application instantiation issues systematically. This domain specific language facilitates the application instantiation process by acting as a facade over GRENJ framework as well as providing the user with a more concise, human-readable syntax than Java. In this paper, we contrast the major differences and benefits resulting from instantiating applications solely using GRENJ framework and indirectly reusing its source code by applying our domain specific language.White-box frameworks are a collection of extensible classes representing reusable designs that can be extended, to varying degrees, to instantiate custom-tailored software systems. Due to its inherent benefits (e.g., large-scale reuse of code, design, and domain knowledge), such domain-specific reuse approach has become a de facto standard to implement business systems. However, in order to fully realize the advantages of white-box frameworks, developers need to have substantial architectural and technical knowledge. In effect, developers must be familiar with the framework's extension points (e.g., hot spots) and how to program those extensions using the programming language in which the framework was implemented. GRENJ is a white-box framework implemented in Java. Thus, instantiating applications through such framework is quite complex and demands detailed architectural knowledge and advanced Java programming skills. In order to lessen the amount of source code, effort, and expertise required to instantiate applications by using GRENJ framework, we have developed a domain specific language that manages all application instantiation issues systematically. This domain specific language facilitates the application instantiation process by acting as a facade over GRENJ framework as well as providing the user with a more concise, human-readable syntax than Java. In this paper, we contrast the major differences and benefits resulting from instantiating applications solely using GRENJ framework and indirectly reusing its source code by applying our domain specific language

    Software patterns from legacy systems reverse engineering.

    No full text
    A execução da engenharia reversa orientada a objetos de um sistema legado desenvolvido com orientação procedimental é usada como base para sua reengenharia, seguindo duas abordagens diferentes. Na primeira, o sistema passa por reengenharia com mudança de orientação, por meio de segmentação e, posteriormente, é transformado para uma linguagem orientada a objetos de forma semi-automática. Na segunda, é feito o reconhecimento de padrões recorrentes de software no modelo de objetos produzido pela engenharia reversa, para depois efetuar a reengenharia utilizando esses padrões. Os resultados obtidos por intermédio dessas duas abordagens podem ser comparados quanto à manutenibilidade, legibilidade e reuso. A versão original do sistema legado escolhido para a realização da experiência está implementado na linguagem Clipper e possui cerca de vinte mil linhas de código. Trata-se de uma oficina auto-elétrica e mecânica de veículos. Para a engenharia reversa foi escolhido o método Fusion/RE, sendo feita uma proposta para sua evolução, adicionando um maior detalhamento da etapa de abstração do modelo de análise do sistema. Para mudança de orientação do paradigma de desenvolviemnto, de procedimental para orientado a objetos, são propostas duas etapas adicionais a serem executadas após a aplicação do Fusion/RE: o projeto avante do sistema e a segmentação do programa legado. Indicações sobre como fazer a segmentação são fornecidas. A transformação do código segmentado em Clipper para Java é feita com auxílio da máquina Draco-Puc. Uma estratégia é proposta para o reconhecimento de padrões a partir do modelo de objetos do sistema obtido pela engenharia reversa. Por meio dela, instâncias dos padrões Type-Object, Association-Object, State Across a Collection e Behaviour Across a Collection podem ser reconhecidas. Experiências de implementação de alguns desses padrões, em Delphi, são feitas.The object oriented reverse engineering of a legacy system, originally developed using the procedural paradigm, is the basis for two different reengineering approaches. In the first, the reengineering is done to change the implementation paradigm by segmentation, followed by the semi-automatic transformation to an object oriented language. In the second, recurring patterns are first recognized in the object model produced by the reverse engineering, and then the reengineering is done adopting these patterns. Results obtained by these two approaches are compared to assess their maintainability, legibility and reuse. The original version of the legacy system used in this experience has about twenty thousand lines of Clipper code and refers to an electric and mechanic car repair shop. For the reverse engineering phase the Fusion/RE method is used, and a proposal is done for its evolution, adding features to detail its system analysis model abstraction phase. To change the system orientation paradigm, from procedural to object-oriented, two additional phases are proposed to be conducted after the application of the Fusion/RE method: the forward design of the system and the legacy code segmentation. Hints and rationales are supplied to conduct the code segmentaion. The code transformation from segmented Clipper to Java is done with support of the Draco-Puc machine. A strategy is proposed for pattern recognition based on the system object model obtained through reverse engineering. Through it, instances of Type-Object, Association-Object, State Across a Collection and Behaviour Across a Collection patterns can be recognized. Delphi implementation experiments of these patterns are done

    Software patterns from legacy systems reverse engineering.

    No full text
    A execução da engenharia reversa orientada a objetos de um sistema legado desenvolvido com orientação procedimental é usada como base para sua reengenharia, seguindo duas abordagens diferentes. Na primeira, o sistema passa por reengenharia com mudança de orientação, por meio de segmentação e, posteriormente, é transformado para uma linguagem orientada a objetos de forma semi-automática. Na segunda, é feito o reconhecimento de padrões recorrentes de software no modelo de objetos produzido pela engenharia reversa, para depois efetuar a reengenharia utilizando esses padrões. Os resultados obtidos por intermédio dessas duas abordagens podem ser comparados quanto à manutenibilidade, legibilidade e reuso. A versão original do sistema legado escolhido para a realização da experiência está implementado na linguagem Clipper e possui cerca de vinte mil linhas de código. Trata-se de uma oficina auto-elétrica e mecânica de veículos. Para a engenharia reversa foi escolhido o método Fusion/RE, sendo feita uma proposta para sua evolução, adicionando um maior detalhamento da etapa de abstração do modelo de análise do sistema. Para mudança de orientação do paradigma de desenvolviemnto, de procedimental para orientado a objetos, são propostas duas etapas adicionais a serem executadas após a aplicação do Fusion/RE: o projeto avante do sistema e a segmentação do programa legado. Indicações sobre como fazer a segmentação são fornecidas. A transformação do código segmentado em Clipper para Java é feita com auxílio da máquina Draco-Puc. Uma estratégia é proposta para o reconhecimento de padrões a partir do modelo de objetos do sistema obtido pela engenharia reversa. Por meio dela, instâncias dos padrões Type-Object, Association-Object, State Across a Collection e Behaviour Across a Collection podem ser reconhecidas. Experiências de implementação de alguns desses padrões, em Delphi, são feitas.The object oriented reverse engineering of a legacy system, originally developed using the procedural paradigm, is the basis for two different reengineering approaches. In the first, the reengineering is done to change the implementation paradigm by segmentation, followed by the semi-automatic transformation to an object oriented language. In the second, recurring patterns are first recognized in the object model produced by the reverse engineering, and then the reengineering is done adopting these patterns. Results obtained by these two approaches are compared to assess their maintainability, legibility and reuse. The original version of the legacy system used in this experience has about twenty thousand lines of Clipper code and refers to an electric and mechanic car repair shop. For the reverse engineering phase the Fusion/RE method is used, and a proposal is done for its evolution, adding features to detail its system analysis model abstraction phase. To change the system orientation paradigm, from procedural to object-oriented, two additional phases are proposed to be conducted after the application of the Fusion/RE method: the forward design of the system and the legacy code segmentation. Hints and rationales are supplied to conduct the code segmentaion. The code transformation from segmented Clipper to Java is done with support of the Draco-Puc machine. A strategy is proposed for pattern recognition based on the system object model obtained through reverse engineering. Through it, instances of Type-Object, Association-Object, State Across a Collection and Behaviour Across a Collection patterns can be recognized. Delphi implementation experiments of these patterns are done

    A process for construction and instantiation of frameworks based on a domain-specific pattern language.

    No full text
    Padrões, linguagens de padrões e frameworks são formas de reuso de software. A complexidade de frameworks, causada pela dificuldade tanto em construí-los quanto em utilizá-los, é um dos inibidores do uso dessa tecnologia. Um processo para facilitar a construção e instanciação de frameworks é apresentado. Uma linguagem de padrões é utilizada para apoiar todo o processo, desde a identificação da funcionalidade do framework, seu projeto, implementação, validação, até sua instanciação para sistemas específicos do domínio. O framework obtido é do tipo caixa-branca e sua instanciação é feita especializando-se suas classes para sistemas específicos. O processo inclui, também, a construção de uma ferramenta para automatizar a instanciação do framework, por meio da qual é possível obter um sistema específico fornecendo apenas informações sobre os padrões da linguagem utilizados na sua modelagem. O processo é ilustrado com a Linguagem de Padrões para Gestão de Recursos de Negócios (GRN), que serviu de base para construção do framework GREN. Apresenta-se também o GREN-Wizard, uma ferramenta para instanciação automática do GREN para sistemas no domínio da GRN. A avaliação do processo é feita por meio de alguns experimentos e vários relatos de uso dos diversos sub-processos que compõem o processo geral, usando o GREN, a GRN e o GREN-Wizard.Patterns, pattern languages, and frameworks are ways of enhancing software reuse. The complexity of software frameworks, caused both by the difficulty to build and to use them, is one of the inhibitors of this technology. A process to ease the construction and instantiation of frameworks is presented, in which a pattern language is used to support the whole process, starting from the identification of the framework functionality, its design, implementation, validation, and its instantiation to domain-specific systems. The framework that results from applying the proposed process is white-box and its instantiation is done by specializing its abstract classes according to a specific system. The process includes the construction of a tool to automate the framework instantiation, through which it is possible to obtain a specific system only by supplying information about the language patterns used to model it. The proposed process is illustrated with the Pattern Language for Business Resource Management (GRN), which was used as the basis for the GREN framework construction. The GREN-Wizard is also presented, which is a tool to automatically instantiate the GREN framework to specific applications in the GRN domain. The proposed process is evaluated by a few experiments and several uses of the sub-processes that compose the general process, using GRN, GREN and the GREN-Wizard

    Aprendizagem Ubíqua Sensível ao Contexto: Mapeamento Sistemático da Literatura Sobre Ambientes de Aprendizagem Ubíqua

    Get PDF
    Ambientes de aprendizagem ubíqua (u-learning) sensíveis ao contexto são sistemas aplicados no domínio da educação, caracterizados pela capacidade de coletar informações do contexto do aluno e modificar seu comportamento, adaptando-se às característica e necessidades de aprendizagem do aluno. Além disso, outra característica importante da u-learning é prover acesso aos recursos computacionais de aprendizagem em qualquer lugar e a qualquer hora, independente de tipo de dispositivo do usuário. Diante deste novo cenário, ainda desconhecido para a maioria da comunidade acadêmica, este artigo se propõe a investigar os ambientes u-learning sensíveis ao contexto propostos na literatura da área e conhecer os serviços educacionais e os tipos de contexto utilizados nesses ambientes, por meio de um mapeamento sistemático da literatura.Context-sensitive ubiquitous learning (u-learning) environments are systems applied in the field of education, characterized by the ability to collect information from the student's context and modify your behavior, adapting to the characteristics and student's learning needs. In addition, another important feature of ulearning is to provide access to computing learning resources anywhere, anytime, regardless of the user's device type. Faced with this new scenario, still unknown to most of the academic community, this paper proposes to investigate the context-sensitive u-learning environments, proposed in the literature of the area, to know the educational services and the types of context used in these environments, through a systematic mapping of the literature.info:eu-repo/semantics/publishedVersio
    corecore