Software & Systems Modeling

, Volume 15, Issue 2, pp 377–395 | Cite as

ReFlO: an interactive tool for pipe-and-filter domain specification and program generation

  • Rui C. Gonçalves
  • Don Batory
  • João L. Sobral
Regular Paper


ReFlO is a framework and interactive tool to record and systematize domain knowledge used by experts to derive complex pipe-and-filter (PnF) applications. Domain knowledge is encoded as transformations that alter PnF graphs by refinement (adding more details), flattening (removing modular boundaries), and optimization (substituting inefficient PnF graphs with more efficient ones). All three kinds of transformations arise in reverse-engineering legacy PnF applications. We present the conceptual foundation and tool capabilities of ReFlO, illustrate how parallel PnF applications are designed and generated, and how domain-specific libraries of transformations are developed.


MDE Tools Software architectures Design by transformation Refinement Optimization Graph transformations 



We gratefully acknowledge helpful feedback from B. Marker (Texas), T. Riché (National Instruments), R. Silva (Minho), and the anonymous reviewers. This work was supported by NSF Grants CCF 0724979 and OCI-1148125. Rui Gonçalves and João Sobral are funded by ERDF—European Regional Development Fund through the COMPETE Programme (operational programme for competitiveness) and by National Funds through the FCT—Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project FCOMP-01-0124-FEDER-010152. Rui Gonçalves is additionally funded by FCT grant SFRH/BD/47800/2008.


  1. 1.
    Garlan, D., Shaw, M.: An Introduction to Software Architecture. Carnegie Mellon University, Technical Report. CMU-CS-94-166 (1994)Google Scholar
  2. 2.
    Crnkovic, I.: Building Reliable Component-Based Software Systems. M. Larsson, Ed. Artech House Inc., Norwood, USA (2002)Google Scholar
  3. 3.
    The LabVIEW Environment,
  4. 4.
    Gorlick, M.M., Razouk, R.R.: Using weaves for software construction and analysis. In: ICSE ’91: Proceedings of the 13th International Conference on Software Engineering, pp. 23–34 (1991)Google Scholar
  5. 5.
    Simulink–Simulation and Model-Based Design,
  6. 6.
    Bruneton, E., Coupaye, T., Stefani, J.: The Fractal Component Model, (2004)
  7. 7.
    Frankel, D.S.: Model Driven Architecture Applying MDA to Enterprise Computing. Wiley, New York (2003)Google Scholar
  8. 8.
    Green, C., Luckham, D., Balzer, R., Cheatham, T., Rich, C.: Report on a Knowledge-Based Software Assistant. Kestrel Institute, Technical Report (1983)Google Scholar
  9. 9.
    Marker, B., Poulson, J., Batory, D., van de Geijn, R.: Designing linear algebra algorithms by transformation: mechanizing the expert developer. In: iWAPT ’12: International Workshop on Automatic Performance Tuning (2012)Google Scholar
  10. 10.
    Das, D.: Making Database Optimizers More Extensible. Ph.D. dissertation. The University of Texas at Austin (1995)Google Scholar
  11. 11.
    Wirth, N.: Program development by stepwise refinement. Commun. ACM 14(4), 221–227 (1971)CrossRefzbMATHGoogle Scholar
  12. 12.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  13. 13.
    Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A language and environment for architecture-based software development and evolution. In: ICSE ’99: Proceedings of the 21st International Conference on Software engineering, pp. 44–53 (1999)Google Scholar
  14. 14.
    Wikipedia, “Component-based software engineering”, (2013)
  15. 15.
    Batory, D., O’Malley, S.W.: The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Methodol. (TOSEM) 1(4), 355–398 (1992)CrossRefGoogle Scholar
  16. 16.
    Perry, D.E.: Version control in the inscape environment. In: ICSE ’87: Proceedings of the 9th International Conference on Software Engineering, pp. 142–149 (1987)Google Scholar
  17. 17.
    Paige, R.F., Kolovos, D.S., Polack, F.A.C.: Refinement via consistency checking in MDA. Electron. Notes Theor. Comput. Sci. 137(2), 151–161 (2005)CrossRefzbMATHGoogle Scholar
  18. 18.
    Wimmer, M., Kappel, G., Kusel, A., Retschitzegger, W., Schönböck, J., Schwinger, W., Kolovos, D., Paige, R., Lauder, M., Schürr, A., Wagelaar, D.: Surveying rule inheritance in model to model transformation languages. J. Object Technol. 11(2), 3:1–3:46 (2012)Google Scholar
  19. 19.
    Liskov, B., Wing, J.M.: A new definition of the subtype relation. In: ECOOP ’93: Proceedings of the 7th European Conference on Object-Oriented Programming, pp. 118–141 (1993)Google Scholar
  20. 20.
    Riché, T.L., Gonçalves, R.C., Marker, B., Batory, D.: Pushouts in software architecture design. In: GPCE ’12: Proceedings of the 11th ACM International Conference on Generative Programming and Component Engineering, pp. 84–92 (2012)Google Scholar
  21. 21.
    Gonçalves, R.C.: Parallel Programming by Transformation. Ph.D. dissertation, Departamento de Informática, Universidade do Minho (to appear)Google Scholar
  22. 22.
    Tisi, M., Jouault, F., Fraternali, P., Ceri, S., Bézivin, J.: On the use of higher-order model transformations. In: ECMDA-FA ’09: Proceedings of the 5th European Conference on Model Driven Architecture-Foundations and Applications, pp. 18–33 (2009)Google Scholar
  23. 23.
    Marker, B., Batory, D., Shepherd, C.: DxTer: A Program Synthesizer for Dense Linear Algebra. The University of Texas at Austin, Department of Computer Science, Technical Report (2012)Google Scholar
  24. 24.
    Marker, B., Terrel, A., Poulson, J., Batory, D., van de Geijn, R.: Mechanizing the expert dense linear algebra developer. In: PPoPP ’12: Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 289–290 (2012)Google Scholar
  25. 25.
    Batory, D., Marker, B.: Correctness Proofs of the Gamma Database Machine Architecture. University of Texas Department of Computer Science TR-11-17 (2011)Google Scholar
  26. 26.
    DeWitt, D.J., Ghandeharizadeh, S., Schneider, D.A., Bricker, A., Hsiao, H.I., Rasmussen, R.: The gamma database machine project. IEEE Trans. Knowl. Data Eng. 2(1), 44–62 (1990)CrossRefGoogle Scholar
  27. 27.
    Baru, C.K., Fecteau, G., Goyal, A., Hsiao, H., Jhingran, A., Padmanabhan, S., Copeland, G.P., Wilson, W.G.: DB2 parallel edition. IBM Sys. J. 34(2) , 292–322 (1995)Google Scholar
  28. 28.
    Bloom, B.H.: Space/time trade-offs in hash coding with allowable errors. Commun. ACM 13(7), 422–426 (1970)CrossRefzbMATHGoogle Scholar
  29. 29.
    Neighbors, J.M.: Software Construction Using Components. Ph.D. dissertation, Department of Information and Computer Science, University of California, Irvine (1980)Google Scholar
  30. 30.
    Thies, W., Karczmarek, M., Amarasinghe, S.P.: StreamIt: a language for streaming applications. In: CC ’02: Proceedings of the 11th International Conference on Compiler Construction, pp. 179–196 (2002)Google Scholar
  31. 31.
    Dataflow application areas, (2013)
  32. 32.
  33. 33.
    ATL—a model transformation technology,
  34. 34.
  35. 35.
    Varró, D.: Model transformation by example. In: MODELS ’06: Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems, pp. 410–424 (2006)Google Scholar
  36. 36.
    Baar, T., Whittle, J.: On the usage of concrete syntax in model transformation rules. In: PSI ’06: Proceedings of the 6th International Andrei Ershov Memorial Conference on Perspectives of Systems Informatics, pp. 84–97 (2006)Google Scholar
  37. 37.
    Wimmer, M., Strommer, M., Kargl, H., Kramler, G.: Towards model transformation generation by-example. In: HICSS ’07: Proceedings of the 40th Annual Hawaii International Conference on System Sciences (2007)Google Scholar
  38. 38.
    Sun, Y., White, J., Gray, J.: Model transformation by demonstration. In: MODELS ’09: Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, pp. 712–726 (2009)Google Scholar
  39. 39.
    Saada, H., Dolquesa, X., Huchard, M., Nebut, C., Sahraoui, H.: Generation of operational transformation rules from examples of model transformations. In: MODELS ’12: Proceedings of the 15th International Conference on Model Driven Engineering Languages and Systems, pp. 546–561 (2012)Google Scholar
  40. 40.
    Varró D., Balogh, Z.: Automating model transformation by example using inductive logic programming. In: SAC ’07: Proceedings of the 2007 ACM Symposium on Applied Computing, pp. 978–984 (2007)Google Scholar
  41. 41.
    Egyed, A., Mehta, N.R., Medvidovic, N.: Software connectors and refinement in family architectures. In: IW-SAPF-3: Proceedings of the International Workshop on Software Architectures for Product Families, pp. 96–106 (2000)Google Scholar
  42. 42.
    Heckel, R., Thöne, S.: Behavior-preserving refinement relations between dynamic software architectures. In: WADT’ 04: Proceedings of the 17th International Workshop on Algebraic Development, Techniques, pp. 1–27 (2004)Google Scholar
  43. 43.
    Mens, T., VanGorp, P.: A taxonomy of model transformation. Electron. Notes Theor. Comput. Sci. 152, 125–142 (2006)CrossRefGoogle Scholar
  44. 44.
    Sun, Y., Gray, J., White, J.: MT-scribe: an end-user approach to automate software model evolution. In: ICSE ’11: Proceedings of the 33rd International Conference on Software Engineering, pp. 980–982 (2011)Google Scholar
  45. 45.
    Rozenberg, G.: Handbook of Graph Grammars and Computing by Graph Transformation Vol I Foundations. World Scientific, Singapore (1997)Google Scholar
  46. 46.
    Habel, A.: Hyperedge Replacement: Grammars and Languages. Springer, New York (1992)zbMATHGoogle Scholar
  47. 47.
    Taentzer, G.: AGG: a graph transformation environment for modeling and validation of software. In: Applications of Graph Transformations with Industrial Relevance, vol. 3062, pp. 446–453. Springer, Berlin (2004)Google Scholar
  48. 48.
    Lohman, G.M.: Grammar-like functional rules for representing query optimization alternatives. In: SIGMOD ’88: Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data, pp. 18–27 (1988)Google Scholar
  49. 49.
    Selinger, P.G., Astrahan, M.M., Chamberlin, D.D., Lorie, R.A., Price, T.G.: Access path selection in a relational database management system. In: SIGMOD ’79: Proceedings of the 1979 ACM SIGMOD International Conference on Management of Data, pp. 23–34 (1979)Google Scholar
  50. 50.
    Diaconescu, R., Futatsugi, K., Iida, S.: Component-based algebraic specification and verification in CafeOBJ. In: FM ’99: Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II, pp. 1644–1663 (1999)Google Scholar
  51. 51.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Quesada, J.F.: Maude: specification and programming in rewriting logic. Theor. Comput. Sci. 285(2), 187–243 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  52. 52.
    Püschel, M., Moura, J.M.F., Singer, B., Xiong, J., Johnson, J., Padua, D., Veloso, M., Johnson, R.W.: Spiral: a generator for platform-adapted libraries of signal processing algorithms. Int. J. High Perform. Comput. Appl. 18(1), 21–45 (2004)CrossRefGoogle Scholar
  53. 53.
    Lowry, M.R., Philpot, A., Pressburger, T., Underwood, I.: Amphion: automatic programming for scientific subroutine libraries. In: ISMIS ’94: Proceedings of the 8th International Symposium on Methodologies for Intelligent Systems, pp. 326–335 (1994)Google Scholar
  54. 54.
    Thies, W.: Language and Compiler Support for Stream Programs. Ph.D. dissertation. MIT (2008)Google Scholar
  55. 55.
    Eker, J., Janneck, J., Lee, E.A., Liu, J., Liu, X., Ludvig, J., Sachs, S., Xiong, Y., Neuendorffer, S.: Taming heterogeneity—the Ptolemy approach. Proc. IEEE 91(1), 127–144 (2003)CrossRefGoogle Scholar
  56. 56.
    Combemale, B., Crégut, X., Giacometti, J.-P., Michel, P., Pantel, M.: Introducing simulation and model animation in the MDE topcased toolkit. In: ERTS ’08: 4th European Congress Embedded Real Time Software (2008) Google Scholar
  57. 57.
    Dotan, D., Kirshin, A.: Debugging and testing behavioral UML models. In: OOPSLA ’07: Companion to the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications Companion, pp. 838–839 (2007)Google Scholar
  58. 58.
    Ratzer, A.V., Wells, L., Lassen, H.M., Laursen, M., Qvortrup, J.F., Stissing, M.S., Westergaard, M., Christensen, S., Jensen, K.: CPN tools for editing, simulating, and analysing coloured petri nets. In: ICATPN ’03: Proceedings of the 24th International Conference on Applications and Theory of Petri Nets, pp. 450–462 (2003)Google Scholar
  59. 59.
    Fritzsche, M., Johannes, J.: Putting performance engineering into model-driven engineering: model-driven performance engineering. In: Models in Software Engieering, pp. 164–175. Springer, Berlin (2008)Google Scholar
  60. 60.
    Becker, S.: Coupled model transformations. In: WOSP ’08: Proceedings of the 7th International Workshop on Software and Performance, pp. 103–114 (2008)Google Scholar
  61. 61.
    Koziolek, H.: Performance evaluation of component-based software systems: a survey. Perform. Eval. 67(8), 634–658 (2010)CrossRefGoogle Scholar
  62. 62.
    Grassi, V., Mirandola, R., Sabetta, A.: From design to analysis models: a kernel language for performance and reliability analysis of component-based systems. In: WOSP ’05: Proceedings of the 5th International Workshop on Software and Performance, pp. 25–36 (2005)Google Scholar
  63. 63.
    Kounev, S.: Performance modeling and evaluation of distributed component-based systems using queueing petri nets. IEEE Trans. Softw. Eng. 32(7), 486–502 (2006)CrossRefGoogle Scholar
  64. 64.
    Becker, S., Koziolek, H., Reussner, R.: The palladio component model for model-driven performance prediction. J. Syst. Softw. 82(1), 3–22 (2009)CrossRefGoogle Scholar
  65. 65.
    Bunke, H.: Attributed programmed graph grammars and their application to schematic diagram interpretation. IEEE Trans. Pattern Anal. Mach. Intell. 4(6), 574–582 (1982)CrossRefzbMATHGoogle Scholar
  66. 66.
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL ’77: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 238–252 (1977)Google Scholar
  67. 67.
    Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Berlin (1999)CrossRefzbMATHGoogle Scholar
  68. 68.
    Guyer, S.Z., Lin, C.: Broadway: a compiler for exploiting the domain-specific semantics of software libraries. Proc. IEEE 93(2), 342–357 (2005)CrossRefGoogle Scholar
  69. 69.
    Perry, D.E.: The inscape environment. In: ICSE ’89: Proceedings of the 11th International Conference on Software Engineering, pp. 2–11. ACM (1989)Google Scholar
  70. 70.
    Perry, D.E.: The logic of propagation in the inscape environment. ACM SIGSOFT Softw. Eng. Notes 14(8), 114–121 (1989)MathSciNetCrossRefGoogle Scholar
  71. 71.
    Batory, D., Geraci, B.J.: Composition validation and subjectivity in GenVoca generators. IEEE Trans. Softw. Eng. 23(2), 67–82 (1997)CrossRefGoogle Scholar
  72. 72.
    Feiler, P., Li, J.: Consistency in dynamic reconfiguration. In: ICCDS ’98: Proceedings of the Fourth International Conference on Configurable Distributed Systems, pp. 189–196 (1998)Google Scholar
  73. 73.
    Ráth, I., Varró, G., Varró, D.: Change-driven model transformations. In: MODELS ’09: Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, pp. 342–356 (2009)Google Scholar
  74. 74.
  75. 75.
    Eclipse Modeling Framework,
  76. 76.
    Graphical Editing Framework,
  77. 77.
    Eclipse graphical modeling framework,

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Rui C. Gonçalves
    • 1
  • Don Batory
    • 2
  • João L. Sobral
    • 1
  1. 1.Departamento de InformáticaUniversidade do MinhoBragaPortugal
  2. 2.Department of Computer ScienceThe University of Texas at AustinAustinUSA

Personalised recommendations