Skip to main content

Improving Incremental and Bidirectional Evaluation with an Explicit Propagation Graph

  • Conference paper
  • First Online:
Software Technologies: Applications and Foundations (STAF 2017)

Abstract

Active operations enable bidirectional incremental evaluation of OCL-like expressions on collections: changing the source (resp. the result) of an expression causes corresponding updates in the result (resp. the source). The current evaluation approach of active operations is based on the observer pattern. Previous work showed how they can be used for model transformation, and that they can scale to processing large models while maintaining collection ordering. However, observation makes the directed acyclic propagation graph implicit, and imposes a depth-first traversal. This sometimes results in unwanted transitory states, which uselessly increase the amount of computations required for propagating some changes.

To address this issue, we propose in this paper to make the propagation graph explicit. This enables separation of the propagation graph from traversal strategies (e.g., breadth-first instead of depth-first). We show how this approach gets rid of unwanted transitory states, and discuss some of its other advantages like enabling more efficient graph visualization and analysis, as well as more compact propagation graph representations. Additionally, incremental algorithms of active operations do not need to be changed, but can actually be better encapsulated, which decreases maintenance cost of the incremental framework.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Changes on ordered collections such as Sequence and OrderedSet are handled by Observer methods not shown here. Those methods additionally take the index at which the change occurs. Moreover, other kinds of changes like replacing, or moving are also supported.

  2. 2.

    This operation is well-known from functional programming, but is notably not present in OCL. We use it as an example because it enables illustrating alignment issues. Moreover, it can be leveraged to implement some operations from the OCL standard library instead of implementing each of them separately.

  3. 3.

    OCL tuples are actually more similar to Haskell records than to its tuples.

References

  1. Blair, G., Bencomo, N., France, R.B.: Models@ run.time. Computer 42(10), 22–27 (2009)

    Article  Google Scholar 

  2. Beaudoux, O., Blouin, A., Barais, O., Jézéquel, J.-M.: Active operations on collections. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010. LNCS, vol. 6394, pp. 91–105. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16145-2_7

    Chapter  Google Scholar 

  3. Jouault, F., Beaudoux, O.: On the use of active operations for incremental bidirectional evaluation of OCL. In: 15th International Workshop on OCL and Textual Modeling (OCL 2015). OCL and Textual Modeling: Tools and Textual Model Transformations, vol. 1512, Ottawa, Canada, pp. 35–45, September 2015

    Google Scholar 

  4. Beaudoux, O., Jouault, F.: Bidirectional incremental transformations with active operation framework - application to facades. In: 1st Papyrus Workshop - DSML Technologies (CEA), Toulouse, France, June 2015

    Google Scholar 

  5. Jouault, F., Beaudoux, O.: Efficient OCL-based incremental transformations. In: 16th International Workshop in OCL and Textual Modeling, Saint-Malo, France, pp. 121–136, October 2016

    Google Scholar 

  6. Varró, D., Bergmann, G., Hegedüs, Á., Horváth, Á., Ráth, I., Ujhelyi, Z.: Road to a reactive and incremental model transformation platform: three generations of the VIATRA framework. Softw. Syst. Model. 15(3), 609–629 (2016)

    Article  Google Scholar 

  7. IncQuery Labs Ltd.: Performance benchmark using the VIATRA CPS demonstrator. https://github.com/viatra/viatra-cps-benchmark

  8. Forgy, C.L.: Rete: a fast algorithm for the many pattern/many object pattern match problem. Artif. Intell. 19(1), 17–37 (1982)

    Article  Google Scholar 

  9. Bergmann, G.: Translating OCL to graph patterns. In: Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E. (eds.) MODELS 2014. LNCS, vol. 8767, pp. 670–686. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11653-2_41

    Google Scholar 

  10. Willink, E.: Optimized declarative transformation - first eclipse QVTc results. In: Proceedings of BigMDE 2016: Workshop on Scalability in Model Driven Engineering, July 2016

    Google Scholar 

  11. Willink, E.D.: Local optimizations in eclipse QVTc and QVTr using the micro-mapping model of computation. In: 2nd International Workshop on Executable Modeling, Saint-Malo, France, pp. 26–32, October 2016

    Google Scholar 

  12. Firsov, D., Jeltsch, W.: Purely functional incremental computing. In: Castor, F., Liu, Y.D. (eds.) SBLP 2016. LNCS, vol. 9889, pp. 62–77. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-45279-1_5

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Frédéric Jouault .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jouault, F., Beaudoux, O., Brun, M., Chhel, F., Clavreul, M. (2018). Improving Incremental and Bidirectional Evaluation with an Explicit Propagation Graph. In: Seidl, M., Zschaler, S. (eds) Software Technologies: Applications and Foundations. STAF 2017. Lecture Notes in Computer Science(), vol 10748. Springer, Cham. https://doi.org/10.1007/978-3-319-74730-9_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-74730-9_27

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-74729-3

  • Online ISBN: 978-3-319-74730-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics