skip to main content
article

Projectional editing of variational software

Published:15 September 2014Publication History
Skip Abstract Section

Abstract

Editing the source code of variational software is complicated by the presence of variation annotations, such as #ifdef statements, and by code that is only included in some configurations. When editing some configurations and not others, it would be easier to edit a simplified version of the source code that includes only the configurations we currently care about. In this paper, we present a projectional editing model for variational software. Using our approach, a programmer can partially configure a variational program, edit this simplified view of the code, and then automatically update the original, fully variational source code. The model is based on an isolation principle where edits affect only the variants that are visible in the view. We show that this principle has several nice properties that are suggested by related work on bidirectional transformations.

References

  1. S. Apel and C. Kästner. An Overview of Feature-Oriented Software Development. Journal of Object Technology, 8(5):49–84, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  2. S. Apel, A. von Rhein, P. Wendler, A. Größlinger, and D. Beyer. Strategies for Product-Line Verification: Case Studies and Experiments. In IEEE Int. Conf. on Software Engineering, pages 482–491, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. L. Atkins. Version Sensitive Editing: Change History as a Programming Tool. In European Conf. on Object-Oriented Programming, volume 1439 of LNCS, pages 146–157. Springer, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. L. Atkins, T. Ball, T. L. Graves, and A. Mockus. Using Version Control Data to Evaluate the Impact of Software Tools: A Case Study of the Version Editor. IEEE Trans. on Software Engineering, 28(7): 625–637, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. F. Bancilhon and N. Spyratos. Update Semantics of Relational Views. ACM Trans. on Database Systems, 6(4):557–575, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. M. Barbosa, J. Cretin, N. Foster, M. Greenberg, and B. C. Pierce. Matching Lenses: Alignment and View Update. In ACM SIGPLAN Int. Conf. on Functional Programming, pages 193–204, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. on Software Engineering, 30(6):355–371, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Bille. A Survey on Tree Edit Distance and Related Problems. Theoretical Computer Science, 337(1–3):217–239, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Bohannon, J. N. Foster, B. C. Pierce, A. Pilkiewicz, and A. Schmitt. Boomerang: Resourceful Lenses for String Data. In ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pages 407–419, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. I. Boneva, A.-C. Caron, B. Groz, Y. Roos, S. Tison, and S. Staworko. View Update Translation for XML. In Int. Conf. on Database Theory, pages 42–53, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Chen, M. Erwig, and E. Walkingshaw. Extending Type Inference to Variational Programs. ACM Trans. on Programming Languages and Systems, 36(1):1:1–1:54, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. S. Cosmadakis and C. H. Papadimitriou. Updates of Relational Views. Journal of the ACM, 31(4):742–760, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. Czarnecki, J. Foster, Z. Hu, R. Lämmel, A. Schürr, and J. Terwilliger. Bidirectional Transformations: A Cross-Discipline Perspective. In R. F. Paige, editor, Theory and Practice of Model Transformations, volume 5563 of LNCS, pages 260–283. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. U. Dayal and P. A. Bernstein. On the Correct Translation of Update Operations on Relational Views. ACM Trans. on Database Systems, 7 (3):381–416, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Erwig and E. Walkingshaw. The Choice Calculus: A Representation for Software Variation. ACM Trans. on Software Engineering and Methodology, 21(1):6:1–6:27, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Fagin. Inverting Schema Mappings. ACM Trans. on Database Systems, 32(4):25:1–25:53, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Feigenspan, M. Schulze, M. Papendieck, C. Kästner, R. Dachselt, V. Köppen, and M. Frisch. Using Background Colors to Support Program Comprehension in Software Product Lines. In Int. Conf. on Evaluation and Assessment in Software Engineering, pages 66–75, 2011.Google ScholarGoogle ScholarCross RefCross Ref
  18. J. N. Foster, M. B. Greenwald, J. T. Moore, B. C. Pierce, and A. Schmitt. Combinators for Bidirectional Tree Transformations: A Linguistic Approach to the View-update Problem. ACM Trans. on Programming Languages and Systems, 29(3), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. G. Gottlob, P. Paolini, and R. Zicari. Properties and Update Semantics of Consistent Views. ACM Trans. on Database Systems, 13(4):486–524, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. W. Hofer, C. Elsner, F. Blendinger, W. Schröder-Preikschat, and D. Lohmann. Toolchain-Independent Variant Management with the Leviathan Filesystem. In Int. Workshop on Feature-Oriented Software Development, pages 18–24, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Janzen and K. De Volder. Programming with Crosscutting Effective Views. In M. Odersky, editor, European Conf. on Object-Oriented Programming, volume 3086 of LNCS, pages 197–220. Springer, 2004.Google ScholarGoogle Scholar
  22. M. Johnson and R. Rosebrugh. Constant Complements, Reversibility and Universal View Updates. In J. Meseguer and G. Ro¸su, editors, Algebraic Methodology and Software Technology, volume 5140 of LNCS, pages 238–252. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. Kästner and S. Apel. Virtual Separation of Concerns—A Second Chance for Preprocessors. Journal of Object Technology, 8(6):59–78, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  24. C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In IEEE Int. Conf. on Software Engineering, pages 311–320, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Kästner, S. Apel, S. Trujillo, M. Kuhlemann, and D. Batory. Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach. In Int. Conf. on Objects, Components, Models and Patterns, volume 33 of LNBIP, pages 175–194. Springer, 2009.Google ScholarGoogle Scholar
  26. C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger. Variability-Aware Parsing in the Presence of Lexical Macros and Conditional Compilation. In ACM SIGPLAN Int. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, pages 805–824, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Kenner, C. Kästner, S. Haase, and T. Leich. TypeChef: Toward Type Checking #ifdef Variability in C. In Int. Workshop on Feature-Oriented Software Development, pages 25–32, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Kersten and G. C. Murphy. Mylar: A Degree-of-Interest Model for IDEs. In Int. Conf. on Aspect-Oriented Software Development, pages 159–168, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Kersten and G. C. Murphy. Using Task Context to Improve Programmer Productivity. In ACM SIGSOFT Int. Symp. on the Foundations of Software Engineering, pages 1–11, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. C. H. P. Kim, C. Kästner, and D. Batory. On the Modularity of Feature Interactions. In ACM SIGPLAN Int. Conf. on Generative Programming and Component Engineering, pages 19–23, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. D. Le, E. Walkingshaw, and M. Erwig. #ifdef Confirmed Harmful: Promoting Understandable Software Variation. In IEEE Int. Symp. on Visual Languages and Human-Centric Computing, pages 143–150, 2011.Google ScholarGoogle Scholar
  32. C. B. Medeiros and F. W. Tompa. Understanding the Implications of View Update Policies. Algorithmica, 1(1-4):337–360, 1986.Google ScholarGoogle ScholarCross RefCross Ref
  33. M. Mezini and K. Ostermann. Variability Management with Feature-Oriented Programming and Aspects. ACM SIGSOFT Software Engineering Notes, 29(6):127–136, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. H. V. Nguyen, C. Kästner, and T. N. Nguyen. Exploring Variabilityaware Execution for Testing Plugin-based Web Applications. In IEEE Int. Conf. on Software Engineering, pages 907–918, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. M. H. Scholl, C. Laasch, and M. Tresch. Updatable Views in Object-Oriented Databases. In Deductive and Object-Oriented Databases, volume 566 of LNCS, pages 189–207. Springer, 1991.Google ScholarGoogle Scholar
  36. M. Stengel, M. Frisch, S. Apel, J. Feigenspan, C. Kästner, and R. Dachselt. View Infinity: A Zoomable Interface for Feature-Oriented Software Development. In IEEE Int. Conf. on Software Engineering, pages 1031–1033, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In IEEE Int. Conf. on Software Engineering, pages 107–119, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. J. Voigtländer. Bidirectionalization for Free! (Pearl). In ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pages 165–176, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. E. Walkingshaw. The Choice Calculus: A Formal Language of Variation. PhD thesis, Oregon State University, 2013. http://hdl. handle.net/1957/40652.Google ScholarGoogle Scholar
  40. E. Walkingshaw and M. Erwig. A Calculus for Modeling and Implementing Variation. In ACM SIGPLAN Int. Conf. on Generative Programming and Component Engineering, pages 132–140, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Projectional editing of variational software

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!