8 research outputs found

    Exploring software practitioners perceptions and experience in requirements reuse : a survey in Malaysia

    Get PDF
    In Software Product Lines (SPL) development, reuse process is planned ahead of time, while in traditional software development reuse can occur opportunistically: unplanned or in ad hoc manner. Although many research efforts in SPL focus on issues related to architecture, designs and codes reuse, research on requirements reuse has received slightly less attention from researchers and practitioners. Requirements Reuse (RR) in SPL is the process of systematically reusing previously defined and validated requirements for an earlier software product and applying them to a new and slightly different product within a similar domain. This paper presents a survey pertaining to RR practice that was conducted in Malaysia with two objectives: a) to identify the factors influencing software practitioners in RR, and b) to assess the factors hindering software practitioners from reusing requirements in software development. The survey results have confirmed seven factors that can influence RR practice in Malaysia. The survey results have also revealed three main impediments to RR practice in Malaysia: the unavailability of RR tools or framework to select requirements for reuse, the conditions of existing requirements to be reused (incomplete, poorly structured or not kept updated), and the lack of awareness and RR education among software practitioners pertaining to the systematic R

    A reusable application framework for context-aware mobile patient monitoring systems

    Get PDF
    The development of Context-aware Mobile Patient Monitoring Systems (CaMPaMS) using wireless sensors is very complex. To overcome this problem, the Context-aware Mobile Patient Monitoring Framework (CaMPaMF) was introduced as an ideal reuse technique to enhance the overall development quality and overcome the development complexity of CaMPaMS. While a few studies have designed reusable CaMPaMFs, there has not been enough study looking at how to design and evaluate application frameworks based on multiple reusability aspects and multiple reusability evaluation approaches. Furthermore, there also has not been enough study that integrates the identified domain requirements of CaMPaMS. Therefore, the aim of this research is to design a reusable CaMPaMF for CaMPaMS. To achieve this aim, twelve methods were used: literature search, content analysis, concept matrix, feature modelling, use case assortment, domain expert review, model-driven architecture approach, static code analysis, reusability model approach, prototyping, amount of reuse calculation, and software expert review. The primary outcome of this research is a reusable CaMPaMF designed and evaluated to capture reusability from different aspects. CaMPaMF includes a domain model validated by consultant physicians as domain experts, an architectural model, a platform-independent model, a platform-specific model validated by software expert review, and three CaMPaMS prototypes for monitoring patients with hypertension, epilepsy, or diabetes, and multiple reusability evaluation approaches. This research contributes to the body of software engineering knowledge, particularly in the area of design and evaluation of reusable application frameworks. Researchers can use the domain model to enhance the understanding of CaMPaMS domain requirements, thus extend it with new requirements. Developers can also reuse and extend CaMPaMF to develop various CaMPaMS for different diseases. Software industries can also reuse CaMPaMF to reduce the need to consult domain experts and the time required to build CaMPaMS from scratch, thus reducing the development cost and time

    A Variability-Aware Design Approach to the Data Analysis Modeling Process

    Get PDF
    The massive amount of current data has led to many different forms of data analysis processes that aim to explore this data to uncover valuable insights such as trends, anomalies and patterns. These processes support decision makers in their analysis of varied and changing data ranging from financial transactions to customer interactions and social network postings. These data analysis processes use a wide variety of methods, including machine learning, in several domains such as business, finance, health and smart cities. Several data analysis processes have been proposed by academia and industry, including CRISP-DM and SEMMA, to describe the phases that data analysis experts go through when solving their problems. Specifically, CRISP-DM has modeling as one of its phases, which involves selecting a modeling technique, generating a test design, building a model, and assessing the model. However, automating these data analysis modeling processes faces numerous challenges, from a software engineering perspective. First, software users expect increased flexibility from the software as to the possible variations in techniques, types of data, and parameter settings. The software is required to accommodate complex usage and deployment variations, which are difficult for non-experts. Second, variability in functionality or quality attributes increases the complexity of these systems and makes them harder to design and implement. There is a lack of a framework design that takes variability into account. Third, the lack of a more comprehensive analysis of variability makes it difficult to evaluate opportunities for automating data analysis modeling. This thesis proposes a variability-aware design approach to the data analysis modeling process. The approach involves: (i) the assessment of the variabilities inherent in CRISP-DM data analysis modeling and the provision of feature models that represent these variabilities; (ii) the definition of a preliminary framework design that captures the identified variabilities; and (iii) evaluation of the framework design in terms of possibilities of automation. Overall, this work presents, to the best of our knowledge, the first approach based on variability assessment to design data modeling process such as CRISP-DM. The approach advances the state of the art by offering a variability-aware design a solution that can enhance system flexibility and a novel software design framework to support data analysis modeling

    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 abordagem híbrida para construção de documentação para apoio à instanciação de frameworks

    Get PDF
    Software reuse is one of the major goals in Software Engineering. Frameworks promote the reuse of individual building blocks, but also of system design. Framework instantiation is the construction of an application reusing a framework. This process requires a substantial understanding effort of the framework. So, high quality documentation may be a useful resource to minimize this effort. However, in most cases, appropriate documentation neither exists nor is up-to-date. A hypothesis is that the framework code itself and existing instantiations could provide useful information for new instantiations. However, in this case developers still would have to read large portions of code. The goal of this thesis is to demonstrate the feasibility of constructing relevant documentation for framework instantiation with static and dynamic analysis of the framework itself and pre-existing instantiations. The proposal is presenting the documentation in a cookbook style, where recipes are composed of programming tasks and information about framework elements related to a desired feature. Initially, two preliminary experiments were conducted to evaluate coverage and practical usefulness of the recipe information for developers. Results pointed out the need for some adjustments, but also indicated sufficient and relevant information in recipes. Finally, we performed a robust study, consisting of three experiments with 44 human subjects, and 88 executions of real framework instantiations. We compared the use of cookbooks with the use of traditional framework documentation. The generated cookbooks presented results better or as good as traditional framework documentation, in terms of correctness, time spent and the satisfaction perception of document uses.Tese (Doutorado)Reuso de software é um dos principais objetivos em Engenharia de Software. Frameworks de aplicação promovem a reutilização de blocos de construção, mas também da solução arquitetural para um determinado domínio de aplicação. A criação de uma aplicação reutilizando um framework denomina-se instanciação do framework e requer um esforço substancial de compreensão do mesmo. Uma documentação de alta qualidade pode ser um instrumento útil para minimizar esse esforço. No entanto, na maioria dos casos, a documentação adequada não existe ou não é atualizada. Uma hipótese é que o próprio código fonte do framework e de instâncias existentes poderiam oferecer informação útil para novas instanciações. Contudo, haveria o desafio dos desenvolvedores entenderem quantidade substancial de código fonte. Neste contexto, o objetivo desta tese é demonstrar a viabilidade de construção de documentação relevante para a instanciação de frameworks utilizando análise estática e dinâmica do código fonte do framework e de suas instanciações pré-existentes. A proposta é apresentar tal documentação como um livro de receitas, onde as receitas são compostas de tarefas de programação e informações sobre os elementos do framework associados a uma característica de interesse. Inicialmente, dois estudos preliminares foram realizados para avaliar a cobertura e a utilidade prática das informações contidas nas receitas, os quais mostraram a necessidade de alguns ajustes, mas também indicaram receitas com informações relevantes e cobertura adequada. Por fim, foi conduzido um estudo robusto composto de 3 experimentos envolvendo ao todo 44 sujeitos humanos, com 88 execuções de atividades reais de instanciação de frameworks, onde o uso de livros de receitas foi comparado ao uso de documentações tradicionais dos frameworks. Os livros de receitas gerados semi-automaticamente apresentaram resultados de uso iguais ou melhores, em termos de taxa de acerto, tempo de execução e percepção da satisfação dos usuários, cumprindo os objetivos de pesquisa

    Un framework para el despliegue y evaluación de procesos software

    Get PDF
    La Ingeniería de Procesos Software promueve la producción sistemática de software mediante el seguimiento de una serie de procesos bien definidos. Una gestión integral de dichos procesos implica el desarrollo de una serie de actividades como son el diseño de los modelos de procesos, la verificación, la validación, el despliegue y la posterior evaluación. El consorcio OMG publicó el estándar Software Process Engineering Metamodel (SPEM), un lenguaje destinado a facilitar y potenciar el entendimiento, la reutilización y la mejora de los procesos software. Después de realizar una revisión de la literatura con respecto a los usos del lenguaje, se pudieron extraer diversas conclusiones. La más importante es que el estándar ha tenido poca aceptación en la industria, en parte debido a la propia complejidad del lenguaje, a ciertas carencias existentes en aspectos como la gestión de la variabilidad de los procesos y su ejecutabilidad, y la falta de mecanismos para la automatización del despliegue sobre herramientas de soporte. Además, la evaluación de los procesos software es una actividad manual y su automatización requiere mejorar considerablemente la interoperabilidad entre las herramientas de apoyo a la producción y gestión del software. Con los objetivos de minimizar los tiempos requeridos para adaptar las herramientas al comenzar cada nuevo proyecto y disminuir la complejidad técnica existente a la hora de construir mecanismos para automatizar la evaluación, se presenta Software Process Deployment & Evaluation Framework (SPDEF), un marco de trabajo para el despliegue y evaluación de procesos software. Este marco de trabajo se basa en la aplicación de las técnicas de la Ingeniería del Software dirigida por modelos y de la integración de información mediante datos abiertos enlazados. Utilizando las primeras, se consigue la adaptación semi-automática de las herramientas de soporte mediante la transformación sucesiva de modelos, partiendo desde el modelo de procesos. Con los datos abiertos enlazados, se consigue que las herramientas expongan de manera controlada la información que gestionan, para así facilitar la construcción de soluciones de integración destinadas a la evaluación de los procesos. El framework incluye, además de un método sistemático para el despliegue y evaluación, un conjunto de modelos y relaciones, así como una serie de herramientas de apoyo. Para la evaluación del framework se han desarrollado dos casos de estudio consistentes en el despliegue de la metodología OpenUP sobre herramientas de soporte y en la evaluación de competencias en recursos de personal implicados en los procesos software. Además, se presenta un escenario detallado de integración para ilustrar cómo es posible automatizar las revisiones técnicas de calidad sobre los proyectos de desarrollo o mantenimiento de software
    corecore