462 research outputs found
Exploring the Synergies between Join Point Interfaces and Feature-Oriented Programming
Feature-oriented programming FOP, and aspect-oriented programming AOP have been used to develop modular software product lines SPL. Both approaches focus on modularizing classes behavior and crosscutting concerns CC. Therefore, the symbiosis of FOP and AOP would permit reaching pros and cons of both software development approaches. Concretely, FOP permits a modular refinement of classes collaboration for software product lines SPL -an adequate structural representation of heterogeneous CC, but FOP does not well represent homogeneous CC. On the other hand, traditional AOP structurally well modularizes homogeneous CC, but aspects are not adequate to represent collaboration of classes for software evolution. In addition, AOP solutions present implicit dependencies and strong coupling between classes and aspects. Since Join Point Interface JPI solves mentioned AOP issues, this paper present JPI Feature Modules to represent and modularize the structure of FOP and JPI SPL instances, i.e., classes and join point interfaces for a transparent implementation in a FOP and JPI context. This paper, highlights benefits of a FOP and JPI symbiosis for the modular software conception using a case study to exemplify its use
Mixing of Join Point Interfaces and Feature-Oriented Programming for Modular Software Product Line
Feature-oriented programming (FOP) and aspect-oriented
programming (AOP) focus on to modularize incremental
classes behavior and crosscutting concerns, respectively, for
software evolution. So, these software development approaches
represent advanced paradigms for a modular software product
lines production. Thereby, a FOP and AOP symbiosis
would permit reaching pros and cons of both approaches.
FOP permits a modular re nement of classes collaboration for
software product lines (SPL), an adequate approach to
represent named heterogeneous crosscutting concerns. FOP
works on changes of di erent functionality pieces for which to
de ne join points is not a simple task. Similarly, AOP
structurally modularizes in a re ned manner homogeneous
crosscutting concerns. Since traditional AOP like AspectJ
presents implicit dependencies and strong coupling between
classes and aspects, and the Join Point Interface JPI ap-proach
solves these classic AOP issues, this article presents JPI
Feature Modules for the FOP + JPI SPL components
modularization, i.e., collaboration of classes, aspects, and join
point interfaces along with their evolution, for a SPL
transparent implementation in a FOP + JPI context. In
addition, this article shows JPI Feature Modules of a case study
to highlight mutual bene ts of FOP and JPI approaches for a
modular SPL software conception
Towards correct-by-construction product variants of a software product line: GFML, a formal language for feature modules
Software Product Line Engineering (SPLE) is a software engineering paradigm
that focuses on reuse and variability. Although feature-oriented programming
(FOP) can implement software product line efficiently, we still need a method
to generate and prove correctness of all product variants more efficiently and
automatically. In this context, we propose to manipulate feature modules which
contain three kinds of artifacts: specification, code and correctness proof. We
depict a methodology and a platform that help the user to automatically produce
correct-by-construction product variants from the related feature modules. As a
first step of this project, we begin by proposing a language, GFML, allowing
the developer to write such feature modules. This language is designed so that
the artifacts can be easily reused and composed. GFML files contain the
different artifacts mentioned above.The idea is to compile them into FoCaLiZe,
a language for specification, implementation and formal proof with some
object-oriented flavor. In this paper, we define and illustrate this language.
We also introduce a way to compose the feature modules on some examples.Comment: In Proceedings FMSPLE 2015, arXiv:1504.0301
An Instance-Oriented Approach to Constructing Product Lines from Layers
The Model/View/Controller (MVC) paradigm, and its many variants, is a cornerstone of decoupling within object-oriented design. MVC leads to clear reuse benefits regarding the class hierarchies for the model and view elements. In practice, however, the controllers appear to defy reuse, most likely because they encapsulate specialized business logic. Within an effective product line, however, such specialized logic must be reused. We combine the MVC paradigm with feature-oriented programming (FOP) to produce a novel instance-oriented design pattern for layers that brings reusability back to controllers. We demonstrate the effectiveness of our approach using a product-line example of a solitaire game engine
Integrating the common variability language with multilanguage annotations for web engineering
Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of
custom-made configurations of web applications, industry usually adopts annotation-based approaches even though the majority of studies encourage the use of composition-based approaches to implement
Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms
such as feature-oriented programming or aspect-oriented programming.
Moreover, it is extremely difficult, or even impossible, to apply
these programming models to web applications, mainly because of
their multilingual nature, since their development involves multiple
types of source code (Java, Groovy, JavaScript), templates (HTML,
Markdown, XML), style sheet files (CSS and its variants, such as
SCSS), and other files (JSON, YML, shell scripts). We propose to
use the Common Variability Language as a composition-based approach
and integrate annotations to manage fine grained variability
of a Software Product Line for web applications. In this paper, we (i)
show that existing composition and annotation-based approaches,
including some well-known combinations, are not appropriate to
model and implement the variability of web applications; and (ii)
present a combined approach that effectively integrates annotations
into a composition-based approach for web applications. We implement
our approach and show its applicability with an industrial
real-world system.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
Optimizing molecular dynamics simulations with product lines
This paper presents a case study of using product-lines to address the variability of optimization methods and target platform mappings in high-performance molecular dynamics simulations. We use Feature Oriented Programming to incrementally extend the base algorithm by composing performance enhancement features with the core functionality. Developed features encapsulate common optimization methods in molecular dynamics simulations and target platform mappings. The main benefits of the approach are: 1) it promotes an incremental development, where optimizations and mappings are developed incrementally and simultaneously with the core functionality; 2) complex optimizations and mappings can be obtained by composing basic features. The performance of synthesized products is comparable to the performance of products developed with traditional parallel programming techniques. In this approach complex optimizations become easier to develop, by composing basic features, providing a performance advantage over traditional programming techniques.(undefined
JPI Feature Models: Exploring a JPI and FOP Symbiosis for Software Modeling
Looking for a complete modular software
development paradigm, this article presents Join Point Interface
JPI Feature Models, in the context of a JPI and Feature-Oriented
Programming FOP symbiosis paradigm. Therefore, this article
describes pros and cons of JPI and FOP approaches for the
modular software and software product line production,
respective; and highlights the benefits of this mixing proposal; in
particular, the JPI Feature Model benefits for a high-level
software product line modeling. As an application example, this
article applies JPI Features Models on a classic FOP example
already modeled using a previous aspect-oriented feature model
proposal. Main goals of this application are to visualize
traditional feature models preserved components such
alternative and optional feature sets and optional and mandatory
features as well as special features associations (cross-tree
constraints), and differences and advantages with respect to
previous research works about extending feature model to
support aspect-oriented modeling principles
- …