I thought I'd start here asking about this topic... What I am looking for is a way to describe a high-level design idea, particularly a communication protocol between objects, and have it compiled down into the classes of the objects referenced. I have finally reached the point where I am no longer willing to recode the same communication pattern over and over is ever-so-slightly different contexts and classes. In Smalltalk, etc., you edit the class's behavior directly. What CompileDownTechniques implies is an intermediate level of compilation or code generation. Of course, I'd like the compile-down to retain the link to the brief, high-level definition. Any leads on this topic? --AlistairCockburn ---- Sounds like what you're advocating is a PatternsTool that would do part of the coding of a design for you. I know that there are several people working on tools for forward and reverse engineering of patterns. AamodSane at UIUC has written a few papers on it, and I just recently did my master's thesis on a reverse-engineering tool. I don't think the state of the art for forward-engineering is up to where you want it, though. Sounds like you should start on your own tool, eh Alistair? --KyleBrown