João Bosco Ferreira Filho
French Institute for Research in Computer Science and Automation
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by João Bosco Ferreira Filho.
Journal of Systems and Software | 2017
Sana Ben Nasr; Guillaume Bécan; Mathieu Acher; João Bosco Ferreira Filho; Nicolas Sannier; Benoit Baudry; Jean-Marc Davril
We propose a procedure for extracting comparison matrices from informal product descriptions.We evaluate our proposal against numerous categories of products mined from BestBuy.Matrices exhibit numerous comparable information and can supplement or even refine technical descriptions.A user study shows that our automated approach retrieves a significant portion of correct information.Users can compute, control, edit and refine matrices in a Web environment called MatrixMiner. Domain analysts, product managers, or customers aim to capture the important features and differences among a set of related products. A case-by-case reviewing of each product description is a laborious and time-consuming task that fails to deliver a condense view of a family of product.In this article, we investigate the use of automated techniques for synthesizing a product comparison matrix (PCM) from a set of product descriptions written in natural language. We describe a tool-supported process, based on term recognition, information extraction, clustering, and similarities, capable of identifying and organizing features and values in a PCM - despite the informality and absence of structure in the textual descriptions of products.We evaluate our proposal against numerous categories of products mined from BestBuy. Our empirical results show that the synthesized PCMs exhibit numerous quantitative, comparable information that can potentially complement or even refine technical descriptions of products. The user study shows that our automatic approach is capable of extracting a significant portion of correct features and correct values. This approach has been implemented in MatrixMiner a web environment with an interactive support for automatically synthesizing PCMs from informal product descriptions. MatrixMiner also maintains traceability with the original descriptions and the technical specifications for further refinement or maintenance by users.
software product lines | 2012
João Bosco Ferreira Filho; Olivier Barais; Benoit Baudry; Windson Viana; Rossana M. C. Andrade
Software Product Lines (SPLs) have evolved and gained attention as one of the most promising approaches for software reuse. Feature models are the main technique to represent domain variability in SPLs. However, there are other domain aspects, besides variability, which cannot be expressed in a feature model. Also, these diagrams were not designed to facilitate information retrieval, interoperability and inference. In contrast, ontologies seem to be the best solution to meet these requirements. Therefore, this work presents an approach for semantic enrichment of SPLs using ontologies. Our proposal provides methods to add domain information besides variability description, and a top-ontology that specifies generic concepts and relations in an SPL, working as a guide model for information addition. The proposed approach reuses the existing SPL feature model, adding semantic descriptions in a less intrusive way than modifying the feature model notation.
Proceedings of the Third International Workshop on Product LinE Approaches in Software Engineering | 2012
João Bosco Ferreira Filho; Olivier Barais; Benoit Baudry; Jérôme Le Noir
In order to be adopted in industrial cases, the Software Product Line paradigm must be adapted to the specific organizational context and culture. In this paper, we consider a scenario of a multinational company that would benefit from SPL. This company uses a model-based software and system development process, which allows them to build reliable and consistent systems for the defence, security, aerospace and transportation domain. Initial efforts to adopt SPL in their software production proved successful. However, they still need to leverage variability modeling to the software and system level, integrating it to their existing model-based development. Therefore, this work aims at (i) presenting an industrial scenario and identifying the main challenges to leverage variability modeling for it, (ii) outlining our point of view and perspectives on how these challenges can be addressed, and (iii) discussing the suitability of current variability modeling approaches.
International Journal on Software Tools for Technology Transfer | 2015
João Bosco Ferreira Filho; Olivier Barais; Mathieu Acher; Jérôme Le Noir; Axel Legay; Benoit Baudry
In a model-based software product line (MSPL), the variability of the domain is characterized in a variability model and the core artifacts are base models conforming to a modeling language (also called metamodel). A realization model connects the features of the variability model to the base model elements, triggering operations over these elements based on a configuration. The design space of an MSPL is extremely complex to manage for the engineer, since the number of variants may be exponential and the derived product models have to be conforming to numerous well-formedness and business rules. In this paper, the objective is to provide a way to generate MSPLs, called counterexamples (also called antipatterns), that can produce invalid product models despite a valid configuration in the variability model. We describe the foundations and motivate the usefulness of counterexamples (e.g., inference of guidelines or domain-specific rules to avoid earlier the specification of incorrect mappings; testing oracles for increasing the robustness of derivation engines given a modeling language). We provide a generic process, based on the common variability language (CVL) to randomly search the space of MSPLs for a specific modeling language. We develop LineGen a tool on top of CVL and modeling technologies to support the methodology and the process. LineGen targets different scenarios and is flexible to work either with just a domain metamodel as input or also with pre-defined variability models and base models. We validate the effectiveness of this process for three formalisms at different scales (up to 247 metaclasses and 684 rules). We also apply the approach in the context of a real industrial scenario involving a large-scale metamodel.
software product lines | 2015
Thomas Degueule; João Bosco Ferreira Filho; Olivier Barais; Mathieu Acher; Jérôme Le Noir; Sébastien Madelénat; Grégory Gailliard; Godefroy Burlot; Olivier Constant
In systems engineering, the deployment of software components is error-prone since numerous safety and security rules have to be preserved. Furthermore, many deployments on different heterogeneous platforms are possible. In this paper we present a technological solution to assist industrial practitioners in producing a safe and secure solution out of numerous architectural variants. First, we introduce a pattern technology that provides correct-by-construction deployment models through the reuse of modeling artifacts organized in a catalog. Second, we develop a variability solution, connected to the pattern technology and based on an extension of the common variability language, for supporting the synthesis of model-based architectural variants. This paper describes a live demonstration of an industrial effort seeking to bridge the gap between variability modeling and model-based systems engineering practices. We illustrate the tooling support with an industrial case study (a secure radio platform).
Proceedings of the VARiability for You Workshop on Variability Modeling Made Useful for Everyone | 2012
João Bosco Ferreira Filho; Olivier Barais; Jérôme Le Noir; Jean-Marc Jézéquel
The Common Variability Language (CVL) provides a well-structured mechanism to express variability and to relate this variability to any MOF-compliant model. This characteristic allows users to define the materialization of a given CVL resolution/configuration. Using variation points, it is possible to express and manipulate the links between the variability abstraction model and the base model. However, the meaning of a given variation point can vary according to the semantics of each domain. For example, a variation point that excludes an element in the base model can lead to further operations, like excluding other elements which were associated to the deleted element, or even to reassign references to another model element. Therefore, it is necessary to address this semantic variability in order to align the materialization semantics to the base model semantics. In this paper, we show how Kermeta can be used to easily implement and customize the semantics of the CVLs variation points, according to the semantics of the base model domain.
software product lines | 2015
João Bosco Ferreira Filho; Simon Allier; Olivier Barais; Mathieu Acher; Benoit Baudry
Product Derivation is a key activity in Software Product Line Engineering. During this process, derivation operators modify or create core assets (e.g., model elements, source code instructions, components) by adding, removing or substituting them according to a given configuration. The result is a derived product that generally needs to conform to a programming or modeling language. Some operators lead to invalid products when applied to certain assets, some others do not; knowing this in advance can help to better use them, however this is challenging, specially if we consider assets expressed in extensive and complex languages such as Java. In this paper, we empirically answer the following question: which product line operators, applied to which program elements, can synthesize variants of programs that are incorrect, correct or perhaps even conforming to test suites? We implement source code transformations, based on the derivation operators of the Common Variability Language. We automatically synthesize more than 370,000 program variants from a set of 8 real large Java projects (up to 85,000 lines of code), obtaining an extensive panorama of the sanity of the operations.
foundations of software engineering | 2015
Sana Ben Nasr; Guillaume Bécan; Mathieu Acher; João Bosco Ferreira Filho; Benoit Baudry; Nicolas Sannier; Jean-Marc Davril
Domain analysts, product managers, or customers aim to capture the important features and differences among a set of related products. A case-by-case reviewing of each product description is a laborious and time-consuming task that fails to deliver a condensed view of a product line. This paper introduces MatrixMiner: a tool for automatically synthesizing product comparison matrices (PCMs) from a set of product descriptions written in natural language. MatrixMiner is capable of identifying and organizing features and values in a PCM – despite the informality and absence of structure in the textual descriptions of products. Our empirical results of products mined from BestBuy show that the synthesized PCMs exhibit numerous quantitative, comparable information. Users can exploit MatrixMiner to visualize the matrix through a Web editor and review, refine, or complement the cell values thanks to the traceability with the original product descriptions and technical specifications.
Proceedings of the 17th International Software Product Line Conference co-located workshops on | 2013
Marianela Ciolfi Felice; João Bosco Ferreira Filho; Mathieu Acher; Arnaud Blouin; Olivier Barais
Numerous companies develop interactive environments to assist users in customising sales products through the selection of configuration options. A visual representation of these products is an important factor in terms of user experience. However, an analysis of 100+ existing configurators highlights that not all provide visual representations of configured products. One of the current challenges is the trade-off developers face between either the memory consuming use of pregenerated images of all the combinations of options, or rendering products on the fly, which is non trivial to implement efficiently. We believe that a new approach to associate product configurations to visual representations is needed to compose and render them dynamically. In this paper we present a formal statement of the problem and a model-driven perspective for addressing it as well as our ongoing work and further challenges.
Companion Proceedings of the 14th International Conference on Modularity | 2015
João Bosco Ferreira Filho; Mathieu Acher; Olivier Barais
Unbundling is a phenomenon that consists of dividing an existing software artifact into smaller ones. For example, mobile applications from well-known companies are being divided into simpler and more focused new ones. Despite its current importance, little is known or studied about unbundling or about how it relates to existing software engineering approaches, such as modularization. Consequently, recent cases point out that it has been performed unsystematically and arbitrarily. In this paper, our main goal is to present this novel and relevant concept and its challenges in the light of software engineering, exemplifying it with recent cases. We relate unbundling to standard software modularization, presenting the new motivations behind it, the resulting problems, and drawing perspectives for future support in the area.
Collaboration
Dive into the João Bosco Ferreira Filho's collaboration.
French Institute for Research in Computer Science and Automation
View shared research outputs