With feature-oriented programming (FOP) and generics programmers have proper means for structuring software so that its elements can be reused and extended. This paper addresses the issue whether both approaches are e...
详细信息
ISBN:
(纸本)9728865694
With feature-oriented programming (FOP) and generics programmers have proper means for structuring software so that its elements can be reused and extended. This paper addresses the issue whether both approaches are equivalent. While FOP targets at large-scale building blocks and compositional programming, generics provide fine-grained customization at type-level. We contribute an analysis that reveals the individual capabilities of both approaches with respect to program customization. There from, we extract guidelines for programmers in what situations which approach suffices. Furthermore, we present a fully implemented language proposal that integrates FOP and generics in order to combine their strengths. Our approach facilitates two-staged program customization: (1) selecting sets of features;(2) parameterizing features subsequently. This allows a broader spectrum of code reuse to be covered-reflected by proper language level mechanisms. We underpin our proposal by means of a case study.
Software product lines are increasingly used to handle the growing demand of custom-tailored software variants. They provide systematic reuse of software paired with variability mechanisms in the code to implement who...
详细信息
ISBN:
(纸本)9781450381741
Software product lines are increasingly used to handle the growing demand of custom-tailored software variants. They provide systematic reuse of software paired with variability mechanisms in the code to implement whole product families rather than single software products. A common domain of application for product lines are safety-critical systems, which require behavioral correctness to avoid dangerous situations in-field. While most approaches concentrate on post-hoc verification for product lines, we argue that a stepwise approach to create correct programs may be beneficial for developers to manage the growing variability. Correctness-by-construction is such a stepwise approach to create programs using a set of small, tractable refinement rules that guarantee the correctness of the program with regard to its specification. In this paper, we propose the first approach to develop correct-by-construction software product lines using feature-oriented programming. First, we extend correctness-by-construction by two refinement rules for variation points in the code. Second, we give a proof for the soundness of the proposed rules. Third, we implement our technique in a tool called VarCorC and show the applicability of the tool by conducting two case studies.
Integration of feature-oriented programming (FOP) and Aspect-orientedprogramming (AOP) methodologies can overcome their individual limitations and thus superior software can be evolved. This approach has been investi...
详细信息
ISBN:
(纸本)9783642226052
Integration of feature-oriented programming (FOP) and Aspect-orientedprogramming (AOP) methodologies can overcome their individual limitations and thus superior software can be evolved. This approach has been investigated in evolving application software for a representative 'Event Management System' using Eclipse-based open source environment. The study concludes that this approach supports modular design and implementation of consistent, reusable, maintainable and cost effective 'Event Management Software System', tailored to the specific needs of the stakeholders.
Software Product Lines (SPLs) exploit reuse-in-the-large to enable customization by explicitly modeling commonalities and variabilities of closely related software systems. Different approaches exist to enable SPL dev...
详细信息
ISBN:
(纸本)9781450346474
Software Product Lines (SPLs) exploit reuse-in-the-large to enable customization by explicitly modeling commonalities and variabilities of closely related software systems. Different approaches exist to enable SPL development and product creation by using modular languages, such as feature-oriented programming (FOP) (compositional) or Delta-orientedprogramming (DOP) (transformational). These languages incorporate, e.g., object-oriented languages, adding a layer of variability. Creating a variability-aware Abstract Syntax Graph (ASG), i.e., an ASG that contains the complete variability of the SPL, facilitates family-based analyses and is essential for supporting developers during SPL development. To this end, name resolution has to be performed. However, name resolution for these languages is a challenge as multiple declarations for the same element may occur in different modules. In this paper, we propose four name resolution strategies for compositional and transformational SPL realization languages and discuss their benefits and drawbacks, categorized by relevant application scenarios of the ASG.
Separation of Concern is a fundamental principle of software engineering. Considering that SystemC/TLM models are in fact software programs that simulating hardware behavior, this principal should also be followed in ...
详细信息
ISBN:
(纸本)9781612849140
Separation of Concern is a fundamental principle of software engineering. Considering that SystemC/TLM models are in fact software programs that simulating hardware behavior, this principal should also be followed in SystemC/TLM modeling and one of its applications is the Separation of Communication and Computation (CC separation). However, plenty of existing SystemC/TLM models haven't actually separated CC, thus caused much redundant developing effort when changing their computation model or communication protocol. In this paper, we propose to use feature-oriented programming (FOP) methodology to separate CC in SystemC/TLM modeling, and compare it with Object-oriented approaches. The comparison shows the advantages of our feature-oriented approach.
Software product lines provide systematic software reuse to implement whole product families efficiently. Therefore, they are increasingly used to handle the growing demand of custom-tailored software variants includi...
详细信息
Software product lines provide systematic software reuse to implement whole product families efficiently. Therefore, they are increasingly used to handle the growing demand of custom-tailored software variants including safety-critical systems as a domain of application. The requirements for safety-critical systems are generally higher and often demand for behavioral correctness to reduce the risk of dangerous situations in-field. However, the high variability of software product lines is still a big challenge for formal methods in general. We argue that the stepwise development approach correctness-by-construction is beneficial compared to post hoc verification approaches in dealing with the growing variability. Correctness-by-construction uses a set of refinement rules to incrementally create a correct program from a formal specification. In previous work, we already introduced variational correctness-by-construction to develop correct-by-construction software product lines in a product-based way. In this article, we extend our approach in three directions. First, we propose a feature-based specification technique matching the fine-grained specifications of correctness-by-construction. Second, we propose a family-based development approach to show the correctness of the product line as an alternative to the previous product-based approach. Third, we present our usability-improved tool VARCORC implementing our approach. In the evaluation, we compare the product-based development approach to the family-based approach using two case studies implemented with VARCORC.
Some limitations of object-oriented mechanisms are known to cause code clones (e. g., extension using inheritance). Novel programming paradigms such as feature-oriented programming (FOP) aim at alleviating these limit...
详细信息
Some limitations of object-oriented mechanisms are known to cause code clones (e. g., extension using inheritance). Novel programming paradigms such as feature-oriented programming (FOP) aim at alleviating these limitations. However, it is an open issue whether FOP is really able to avoid code clones or whether it even facilitates (FOP-related) clones. To address this issue, we conduct an empirical analysis on ten feature-oriented software product lines with respect to code cloning. We found that there is a considerable number of clones in feature-oriented software product lines and that a large fraction of these clones is FOP-related (i.e., caused by limitations of feature-oriented mechanisms). Based on our results, we initiate a discussion on the reasons for FOP-related clones and on how to cope with them. We show by means of examples how such clones can be removed by applying refactorings.
In this paper, we propose a framework for studying the AGGIR (Autonomie Gerontologique et Groupe Iso Ressources-Autonomy Gerontology Iso-Resources Groups) grid model, with the aim of assessing the level of independenc...
详细信息
In this paper, we propose a framework for studying the AGGIR (Autonomie Gerontologique et Groupe Iso Ressources-Autonomy Gerontology Iso-Resources Groups) grid model, with the aim of assessing the level of independence of elderly people in accordance with their capabilities of performing daily activities as well as interacting with their environments. In order to model the Activities of Daily Living (ADL), we extend a previously proposed Domain Specific Language (DSL), by defining new operators to deal with constraints related to time and location of activities and event recognition. The proposed framework aims at providing an analysis tool regarding the performance of elderly/disabled people within a home environment by means of data recovered from sensors using a smart-home simulator environment. We perform an evaluation of our framework in several scenarios, considering five of the AGGIR variables (i.e., feeding, dressing, toileting, elimination, and transfers) as well as health-care devices for tracking the occurrence of elderly activities. The results demonstrate the accuracy of the proposed framework for managing the tracked records correctly and, thus, generate the appropriate event information related to the ADL.
Mutation testing is an approach to assess the quality of test cases. Mutants are modified versions of a system that ideally compose faulty behaviour. Test cases for a system are effective if they kill these mutants. F...
详细信息
Mutation testing is an approach to assess the quality of test cases. Mutants are modified versions of a system that ideally compose faulty behaviour. Test cases for a system are effective if they kill these mutants. For software product lines, several works have addressed mutation testing to inject variability faults, which may only exist in some variants. These works focus on variability models or specific implementation techniques. In contrast, feature-oriented programming has been rarely investigated, wherefore, we (1) derive corresponding mutation operators, (2) investigate the feasibility of our proposed and conventional operators on 4 software product lines, and (3) discuss open challenges in mutation testing of software product lines. The results show that our proposed operators are suitable to cause variability faults and extend the capabilities of conventional operators. Nonetheless, mutation testing of software product lines is comparably expensive, due to a high number of variants and mutants-resulting in equivalence and redundancy.
Achieving software reuse is a fundamental problem in software engineering. Component-based development (CBD) is widely accepted as a promising approach for software reuse. Current methods for component reuse concentra...
详细信息
Achieving software reuse is a fundamental problem in software engineering. Component-based development (CBD) is widely accepted as a promising approach for software reuse. Current methods for component reuse concentrate primarily on the component consumer perspective, which are lack of the potential for component evolution itself. This paper proposes two complementary approaches to reusing existing components: binary class-level inheritance and feature composition. To meet variability requirements, a new component can be derived across component module from an old component. Furthermore, to narrow the gulf between the user and the developer perspectives, the system features are decomposed into a set of independent feature components that can be plugged into running object. The design and implementation method on component platform is presented. At last, this paper introduces the graphic user interface and mobile telephone projects development experiments that show the two approaches contribute to reuse.
暂无评论