From software extensions to product lines of dataflow programs

Abstract Dataflow programs are widely used. Each program is a directed graph where nodes are computations and edges indicate the flow of data. In prior work, we reverse-engineered legacy dataflow programs by deriving their optimized implementations from a simple specification graph using graph trans...

Full description

Bibliographic Details
Main Author: Gonçalves, Rui Carlos Araújo (author)
Other Authors: Batory, Don (author), Sobral, João Luís Ferreira (author), Riché, T. L. (author)
Format: article
Language:eng
Published: 2017
Subjects:
Online Access:http://hdl.handle.net/1822/40541
Country:Portugal
Oai:oai:repositorium.sdum.uminho.pt:1822/40541
Description
Summary:Abstract Dataflow programs are widely used. Each program is a directed graph where nodes are computations and edges indicate the flow of data. In prior work, we reverse-engineered legacy dataflow programs by deriving their optimized implementations from a simple specification graph using graph transformations called refinements and optimizations. In MDE-speak, our derivations were PIM-to-PSM mappings. In this paper, we show how extensions complement refinements, optimizations, and PIM-to-PSM derivations to make the process of reverse engineering complex legacy dataflow programs tractable. We explain how optional functionality in transformations can be encoded, thereby enabling us to encode product lines of transformations as well as product lines of dataflow programs. We describe the implementation of extensions in the ReFlO tool and present two non-trivial case studies as evidence of our work’s generality