Versioned Literate Aspect-Oriented Programming


As I've been developing a GEF application, I've been thinking about turning it into a tutorial. I immediately wondered if it might be a great project for literate programming.

I could write a web and then tangle it to generate the GEF application and weave it to get the tutorial. But as features are incrementally added to the application over the course of the tutorial, conventional literate programming might not be enough. At the very least, some kind of versioning would need to be included.

But then it occurred to me that it's perhaps best thought of not just as a versioning issue but as an aspect-oriented one. For example, if step four of the tutorial is adding undo support then that would involve not only new classes but the insertion of code at points in existing methods.

I wonder if such a system exists?