Yep, I'm thinking something similar. Will take a look at capableobjects, but think I'll make plantuml my main focus. Perhaps you could see what the plantunl/xtext/Eclipse story is, and whether it fits your desired work flow .
Cheers, Dan On 14 Nov 2015 17:23, "Óscar Bou - GOVERTIS" <[email protected]> wrote: > Really nice to hear is your full circle, Dan :) > > Mine also. > I started all this by using the excellent Bold for Delphi components, now > Capable Objects MDriven Framework [1]. > It was wonderful to design in Rational Rose your entities, including > constraints in OCL, and after that generate the code, reverse engineer and > use OCL as the query language to traverse the domain relationships. > Please, take a critical look at [1], as it was the only MDA-like > implementation I know that really works. > I have a customer system running on it for 8 years without nearly any > maitenance … > Many ideas like ViewModels, etc. are also present there, but its > implementation is .NET based. > > > You’ve cited many solutions, including really agile ones that seem > interesting, specially plantuml. > For me, initially seems hard to implement the full code generation & > reverse engineering cycle for a codebase, but seems you think it’s feasible > by putting those solutions together. > Love the idea to generate it from the meta-model, but perhaps some > “exception” might be done to include some @Programmatic actions. > > Seems plantuml is quite extended, so any visual editor based on > drag-n-drop must exist out there (critical aspect for me; I think better > visually ;). > > > Really love also your idea about automatically generating sequence > diagrams from Events derived from actions executed while testing using BDD. > Each sequence task can be inferred from each BDD “step” executed, and the > wrapped actions will generate events that can be subscribed to. > So I envision it visually depicted as each BDD step being a “group” of > action calls under a UML comment. > > Are you thinking about something similar? > > > Cheers, > > Oscar > > > > [1] http://www.capableobjects.com > > > > > El 14 nov 2015, a las 17:24, Dan Haywood <[email protected]> > escribió: > > > > On 13 November 2015 at 09:45, Óscar Bou - GOVERTIS <[email protected]> > > wrote: > > > >> > >> Hi all. > >> > >> I’m considering re-introducing UML Class diagrams in our workflow mainly > >> for: > >> - graphically design the domain entities. > >> - modeling relationships. > >> - agree with names of properties, collections and actions needed. > >> > >> It would be wonderful if the UML solution could also be “integrated” > with > >> Apache Isis or Java, automating at least the entities Java skeleton > >> generation. > >> > >> > > This is full circle for me... I wrote a book on TogetherJ back around > 2002; > > and it was at that time that I first met Richard (Pawson) and Rob > > (Matthews) presenting the Naked Objects at an OO conference in Oxford. > > TogetherJ provided design-time synchronicity between the UML class > diagram > > and the code, while Naked Objects provided run-time synchronicity between > > the code and the UI. In the original Naked Objects book you'll see some > > screenshots from the app that I wrote during that all-afternoon workshop. > > > > But I've never found a tool that was as good as TogetherJ (may it rest in > > peace) at doing the design-time synchronicity . I did think that Omondo > > [2] would fit the bill, but last time I tried it (many years ago) it > didn't > > work as seamlessly as I wanted. I haven't looked again for a while. > > > > > > > > > > > >> I’ve worked extensively with Rational Rose and Sparx > EnterpriseArchitect, > >> but was thinking about an Eclipse-based solution that could > “potentially” > >> be adapted to generate the Java entities with Isis annotations. > >> > >> > > > > A different approach might be to build a round-tripping tool from a > simple > > DSL such as plantuml [3] or graphviz,[4]. I like these "low-fidelity" > > diagramming notations for several reasons: > > a) they are fast to work with > > b) their lack of UI features means that the temptation to waste time > > fiddling with the layout is much reduced > > c) they don't really scale to large diagrams. I see this as a benefit > > because (i) one must focus them to a single module within an app and (ii) > > it limits that module's size to no more than 10 classes or so. > > > > What's interesting to me is that both of these DSLs are understood by > > asciidoctor-diagram [5]; we of course use asciidoctor for the Isis > > documentation; so there's the possibility of generating the diagrams > easily. > > > > Moreover, there are also integrations of both plantuml and graphviz with > > xtext, meaning that one can take a plantuml diagram and visualize it in > > Eclipse. A quick google threw up [6] > > > > Presumably also there is some sort of metamodel within these tools that > > could be leveraged. I'm thinking that this could be fed into a code > > generator to create Isis entities. > > > > This raises the question, what sort of code generator? Well, > > coincidentally, I've actually started building such a code generator, > > isis-cli [7]; a la Grails / Spring Roo / JHipster. It would be kinda > cool > > to be able to pipe from a file containing plantuml to the isis-cli, and > > have it create/update Java classes with appropriate Isis annotations. > > > > ~~~ > > Going the other way, we could also have update the maven-isis-plugin so > > that it could generate plantuml diagrams based on an Isis metamodel; this > > could then be fed into Asciidoctor in order to generate documentation > from > > the code. > > > > > > > > > >> Before joining the Apache Isis community I developed [1] for Enterprise > >> Architect for automatically generating Spring Roo-based classes, but > Isis > >> was better suited for our project and I abandoned it. > >> > >> > >> Any ideas? > >> > >> > > > > I have a related idea on all this, which ties in with BDD stuff, namely > > that (via the wrapperfactory) the test framework could emit a transcript > of > > a user interaction. Rob Matthews actually did this originally many years > > ago in the first Naked Objects book, which shows how far ahead of its > time > > some of those original ideas were. We should probably resurrect this. > > > > But we could go further, because we could also, I think, emit plantuml > > sequence diagrams [8] for such BDD spec/integration tests. > > > > I know you've done lots of BDD tests, so interested in your thoughts on > > that. > > . > > Cheers > > Dan > > > > > > > > > >> Thanks, > >> > >> Oscar > >> > >> > >> [1] http://roomodeler.com > >> > >> > >> > > [2] http://uml2.org/livecodemodel.html > > [2] http://jankoehnlein.github.io/FXDiagram/ > > [3] http://plantuml.com/classes.html > > [4] http://www.graphviz.org/ > > [5] http://asciidoctor.org/docs/asciidoctor-diagram/ > > [6] https://borisdevnotes.wordpress.com/2013/12/09/xtextplantuml/ > > [7] https://github.com/danhaywood/isis-cli > > [8] http://plantuml.com/sequence.html > >
