feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that feature-oriented programming is more suitable than other variability mechanis...
详细信息
feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that feature-oriented programming is more suitable than other variability mechanisms for implementing Software Product Lines (SPLs). However, there is no empirical evidence to support this claim. In fact, recent research work found out that some composition mechanisms might degenerate the SPL modularity and stability. However, there is no study investigating these properties focusing on the FOP composition mechanisms. This paper presents quantitative and qualitative analysis of how feature modularity and change propagation behave in the context of two evolving SPLs, namely WebStore and MobileMedia. Quantitative data have been collected from the SPLs developed in three different variability mechanisms: FOP refinements, conditional compilation, and object-oriented design patterns. Our results suggest that FOP requires few changes in source code and a balanced number of added modules, providing better support than other techniques for non-intrusive insertions. Therefore, it adheres closer to the Open-Closed principle. Additionally, FOP seems to be more effective tackling modularity degeneration, by avoiding feature tangling and scattering in source code, than conditional compilation and design patterns. These results are based not only on the variability mechanism itself, but also on careful SPL design. However, the aforementioned results are weaker when the design needs to cope with crosscutting and fine-grained features. (C) 2013 Elsevier B.V. All rights reserved.
features are pieces of core functionality of a program that is relevant to particular stakeholders. features pose dependencies and constraints among each other. These dependencies and constraints describe the possible...
详细信息
features are pieces of core functionality of a program that is relevant to particular stakeholders. features pose dependencies and constraints among each other. These dependencies and constraints describe the possible number of variants of the program: A valid feature configuration generates a specific variant with unique behavior. feature-oriented programming is used to implement features as program units. This paper introduces rbfeatures, a feature-oriented programming language implemented on top of the dynamic programming language Ruby. With rbfeatures, programmers use software product lines, variants, and features as first-class entities. This allows several runtime reflection and modification capabilities, including the extension of the product line with new features and the provision of multiple variants. The paper gives a broad overview to the implementation and application of rbfeatures. We explain how features as first-class entities are designed and implemented, and discuss how the semantics of features are carefully added to Ruby programs. We show two case studies: The expression product line, a common example in feature-oriented programming, and a web application. (C) 2011 Elsevier B.V. All rights reserved.
In feature-oriented programming (FOP) a programmer decomposes a program in terms of features. Ideally, features are implemented modularly so that they can be developed in isolation. Access control mechanisms in the fo...
详细信息
In feature-oriented programming (FOP) a programmer decomposes a program in terms of features. Ideally, features are implemented modularly so that they can be developed in isolation. Access control mechanisms in the form of access or visibility modifiers are an important ingredient to attain feature modularity as they allow programmers to hide and expose internal details of a module's implementation. But developers of contemporary feature-oriented languages have not considered access control mechanisms so far. The absence of a well-defined access control model for FOP breaks encapsulation of feature code and leads to unexpected program behaviors and inadvertent type errors. We raise awareness of this problem, propose three feature-oriented access modifiers, and present a corresponding access modifier model. We offer an implementation of the model on the basis of a fully-fledged feature-oriented compiler. Finally, by analyzing ten feature-oriented programs, we explore the potential of feature-oriented modifiers in FOP. (C) 2010 Elsevier B.V. All rights reserved.
feature-oriented programming (FOP) is a programming technique to implement software product lines based on composition mechanisms called refinements. A software product line is a set of software systems that share a c...
详细信息
ISBN:
(纸本)9781450341776
feature-oriented programming (FOP) is a programming technique to implement software product lines based on composition mechanisms called refinements. A software product line is a set of software systems that share a common, managed set of features satisfying the specific needs of a particular market segment. The literature reports various software metrics for software product lines developed using object-oriented and aspect-orientedprogramming. However, after a literature review, we observed that we lack the definition of FOP-specific metrics. Based on this observation, this paper proposes a set of eight novel metrics for feature-oriented programming. These metrics were derived both from our experience in FOP and from existing software metrics. We demonstrate the applicability of the proposed metrics by applying them to a software product line.
feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that feature-oriented programming is more suitable than other variability mechanis...
详细信息
feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that feature-oriented programming is more suitable than other variability mechanisms for implementing Software Product Lines (SPLs). However, there is no empirical evidence to support this claim. In fact, recent research work found out that some composition mechanisms might degenerate the SPL modularity and stability. However, there is no study investigating these properties focusing on the FOP composition mechanisms. This paper presents quantitative and qualitative analysis of how feature modularity and change propagation behave in the context of two evolving SPLs, namely WebStore and MobileMedia. Quantitative data have been collected from the SPLs developed in three different variability mechanisms: FOP refinements, conditional compilation, and object-oriented design patterns. Our results suggest that FOP requires few changes in source code and a balanced number of added modules, providing better support than other techniques for non-intrusive insertions. Therefore, it adheres closer to the Open-Closed principle. Additionally, FOP seems to be more effective tackling modularity degeneration, by avoiding feature tangling and scattering in source code, than conditional compilation and design patterns. These results are based not only on the variability mechanism itself, but also on careful SPL design. However, the aforementioned results are weaker when the design needs to cope with crosscutting and fine-grained features. (C) 2013 Elsevier B.V. All rights reserved.
feature-oriented programming (FOP) is a paradigm that incorporates programming language technology, program generation techniques, and stepwise refinement. In their GPCE'07 paper, Thaker et a]. suggest the develop...
详细信息
ISBN:
(纸本)9781605582672
feature-oriented programming (FOP) is a paradigm that incorporates programming language technology, program generation techniques, and stepwise refinement. In their GPCE'07 paper, Thaker et a]. suggest the development of a type system for FOP to guarantee safe feature composition, Le, to guarantee the absence of type errors during feature composition. We present such a type system along with a calculus for a simple feature-oriented, Java-like language, called feature Featherweight Java (FFJ). Furthermore, we explore four extensions of FFJ and how they affect type soundness.
feature-oriented programming (FOP) has been widely described as an effective way to realize Product Line (PL) and to derive PL members. A case study on Berkeley DB revealed some difficulties in applying FOP for PL usi...
详细信息
feature-oriented programming has its origin in the old quest of computer science: modular composition of software "artifacts" in software development. While there exist many notions of modularity and composi...
详细信息
ISBN:
(纸本)9781450302081
feature-oriented programming has its origin in the old quest of computer science: modular composition of software "artifacts" in software development. While there exist many notions of modularity and composition, feature-oriented programming tackles the case of highly-entangled software features where typical module or component concepts fail. The reasons for this are feature interactions and dependencies which make it very hard to write modular software which can be composed in a flexible way. In contrast to other efforts like aspect-orientedprogramming, feature-oriented programming has from the beginning focused on the semantics or behavior of software, not just on code *** this presentation, we review the origins of feature composition and feature interactions, which first occurred as an explicit research problem in telecommunication software. We argue that feature interactions are pervasive in many areas of software development and are a common source of modularity and quality problems. Then, we present more precise formalization of modularity and compositionality of features. We discuss when adding features is modular or "harmless" from a semantic or behavioral point of view. In particular, we focus on modularity and interaction for multiple feature compositions. A future challenge for feature-oriented software is the graphical modeling of features and feature interactions. As we aim to have modular composition for graphical models and to generate code from these graphical artifacts, it is important to have precise semantics and clear refinement concepts. For this, we discuss how features and interactions can be represented by state-based specifications in a graphical way. Refinement concepts are presented which allow the flexible composition of features and interactions in statechart diagrams.
The idea of feature-oriented programming is to map requirements to features, concepts that can be composed to form a software product. Change-orientedprogramming (ChOP), in which features are seen as sets of changes ...
详细信息
ISBN:
(纸本)9781607500148
The idea of feature-oriented programming is to map requirements to features, concepts that can be composed to form a software product. Change-orientedprogramming (ChOP), in which features are seen as sets of changes that can be applied to a base program, has recently been proposed as an approach to FOP. Changes are recorded as the programmer works and can encapsulate any developer action, including the removing of code. Before changes can be combined to form a product, it has to be verified that there are no harmful interactions between selected changes. There exists, however, no formal model of the current approach that may serve as a reference specification for ChOP implementations. In an effort to fill this gap, we propose a formal model of ChOP, which, as we will show, maps to the well-understood notion of feature diagram. Thanks to this, we can reuse a number of results in feature diagram research and apply them to ChOP.
Applications in the domain of embedded systems are diverse and store an increasing amount of data. In order to satisfy the varying requirements of these applications, data management functionality is needed that can b...
详细信息
Applications in the domain of embedded systems are diverse and store an increasing amount of data. In order to satisfy the varying requirements of these applications, data management functionality is needed that can be tailored to the applications' needs. Furthermore, the resource restrictions of embedded systems imply a need for data management that is customized to the hardware platform. In this paper, we present an approach for decomposing data management software for embedded systems using feature-oriented programming. The result of such a decomposition is a software product line that allows us to generate tailor-made data management systems. While existing approaches for tailoring software have significant drawbacks regarding customizability and performance, a feature-oriented approach overcomes these limitations, as we will demonstrate. In a non-trivial case study on Berkeley DB, we evaluate our approach and compare it to other approaches for tailoring DBMS. (C) 2009 Elsevier B.V. All rights reserved.
暂无评论