In terms of using UML for after the fact documentation, I like this
UMLGraph approach:

http://umlgraph.org

On Tue, Nov 24, 2015 at 9:42 AM, Stephen Cameron <[email protected]
> wrote:

>
>
> On Tue, Nov 24, 2015 at 9:19 AM, Cesar Lugo <[email protected]>
> wrote:
>
>> Hi Oscar,
>>
>> Reverse engineering worked for me just fine, also when you make changes
>> to the code and update the UMl from it. When you have your UML repository
>> open (diagram canvas open), the you select the java class or classes from
>> Isis repo, click the java reverse button or select the right click - java -
>> reverse option, and it will import the selected classes to the UML
>> repository. From there you drag and drop the UML classes you want on the
>> diagram canvas (from the UML repo to the Diagram canvas), and once on the
>> diagram you select the class element and press F4 (or right click for
>> contextual menu), so it let's you choose the properties and methods you
>> want to be shown / hidden from the menu. When you make changes to the code,
>> just do the same again and it will update the UML metadata, F4 again on the
>> class and select the new properties or methods you want to be shown on the
>> diagram.
>>
>> Hmm, definitely a "missing link" in my case as none of this worked, I
> will watch the video.
>
>
>> The issue I have found is that if the class contains a java.util.List, it
>> won't import the whole class (typically repositories or menu classes).
>> Haven't find the time to check why or solve that, but I can see in the UML
>> repository a java element that contains a Java - Util - SortedSet, but not
>> a Java - Util - List element. That might be the reason, just hopping there
>> is a way to add the List to make it work too.
>>
>> Cesar.
>>
>> -----Original Message-----
>> From: Óscar Bou - GOVERTIS [mailto:[email protected]]
>> Sent: Monday, November 23, 2015 2:37 PM
>> To: [email protected]
>> Subject: Re: Thinking about re-introducing UML in our workflow
>>
>> H, Cesar.
>>
>> Thanks here also.
>>
>> I’ve seen the video, but need to find time to install and test it locally.
>>
>> Seems interesting for direct generation.
>> No example is given for reverse-engineering.
>>
>> As I see, customizing for Apache Isis would be a matter of defining
>> - a custom profile for Apache Isis (perhaps it would be enough with the
>> Java one).
>> - and an Apache-Isis specific Library (for generating the properties,
>> actions, etc. with the proper annotations).
>>
>> It remembers me quite well the Spring Roo customization on SparxSystem’s
>> Enterprise Arquitect.
>>
>> There I implemented also a custom toolbox, in order to avoid to first
>> create the attribute and after that assign to the specific library item
>> (instead of 2 different steps).
>>
>> Perhaps all that is also possible here.
>>
>>
>> Thanks,
>>
>> Oscar
>>
>>
>>
>>
>>
>>
>> > El 23 nov 2015, a las 21:18, Stephen Cameron <
>> [email protected]> escribió:
>> >
>> > Thanks Cesar, I will give it a go, but don't have alot of time now
>> > this week. They use myeclipse at work and its cheap to buy a licence,
>> > so I'll find out why the activity diagrams are missing.
>> >
>> > I am also keen to take a closer look at IFML [1] in terms of it being
>> > integated with the workflow addon in Apache-Isis. This is instead of
>> > UML Activity diagrams.
>> >
>> > [1] http://www.ifml.org
>> >
>> > On Tue, Nov 24, 2015 at 3:00 AM, Cesar Lugo <[email protected]>
>> > wrote:
>> >
>> >> Hi. I also tried Papyrus, it works but the installation is a little
>> >> tricky. Best guidance I got was this YouTube video, which adds the
>> >> "missing link" to make it work. It's actually a part of a quite nice
>> >> series with Papyrus and UML tutorial videos. I hope that helps.
>> >>
>> >> https://www.youtube.com/watch?v=gmf8CswqKcs
>> >>
>> >> Cesar.
>> >>
>> >> -----Original Message-----
>> >> From: Stephen Cameron [mailto:[email protected]]
>> >> Sent: Monday, November 23, 2015 4:42 AM
>> >> To: [email protected]
>> >> Subject: Re: Thinking about re-introducing UML in our workflow
>> >>
>> >> Spent some time on this today, but did not get far. I tried Papyrus
>> >> but without success, couldn't get it to reverse engineer my code that
>> >> is. Then I tried myeclipse which does support UML2 and does reverse
>> >> engineer Java code to UML class diagrams and also updates these
>> >> diagrams from any (code) 'Model' changes afterwards. However the
>> >> trial strangelly doesn't support Activity diagrams despite them being
>> >> in the documentation. So all in all not time well spent.
>> >>
>> >> On Sat, Nov 21, 2015 at 9:31 AM, Stephen Cameron <
>> >> [email protected]
>> >>> wrote:
>> >>
>> >>> Hi,
>> >>>
>> >>> Related to this thread, my new job involves maintenance of a Struts
>> >>> 2 based website, in thinking about the best way to approach this
>> >>> task, both to learn how it has been put together and potentially
>> >>> make life easier into the future I thought the best place to start
>> >>> is creating some diagrams, maybe even UML diagrams .
>> >>>
>> >>> Then I remembered something called AndroMDA [1] from my past reading
>> >>> on UML/MDA, it has a 'cartridge' for generating a Struts
>> >>> web-application off a UML class model [2]. Just reading the
>> >>> documentation now, it can also make use of an UML Activity diagram
>> >>> for designing page navigation[3], also, it consume a BPMN diagram as
>> >>> a design model too (Hmm, just maybe this has more potential than I
>> >> imagined).
>> >>>
>> >>> I'll have a play with this myself soon (It seems like a fun way to
>> >>> learn about Struts and JBOSS), but thought in worth mentioning in
>> >>> this discussion. If I was starting from scratch to build such a
>> >>> 'public
>> >> facing'
>> >>> website, an approach that I can see working is to first develop an
>> >>> Apache Isis based domain model in Java and get all the systems
>> >>> integrations needed working with that. Then, to generate UML class
>> >>> diagrams off that design, add in the page navigation design (UML
>> >>> Activity diagram?), and use that combination to generate the
>> >>> skeleton of a tradition request/response type website using AndroMDA.
>> >>>
>> >>> If this all worked, it would provide something very close to a
>> >>> commercial MDA suite that I was interested in supporting called
>> >>> WebRatio [4], for which the public website design [5] market seems
>> >>> quite large. They talk about web-applications, but  I like the Isis
>> >>> coded model approach better for real applications (as opposed to
>> >>> database back web-sites). For public facing web-sites, a templates
>> >>> based approach does still seem to be valid, such as Struts/JSP, and
>> >>> using a MDA probably a good way to manage that complexity.
>> >>>
>> >>> The WebRatio folk have designed a specific graphical web-site design
>> >>> language called Interacton Flow Modelling Language (IFML) [6] (but
>> >>> AndroMDA is UML focused). There is an open-source Eclipse plugin for
>> >>> IFML that they have contributed to [7].
>> >>>
>> >>> Interested to hear thoughts, maybe a dead-end, but maybe not.
>> >>>
>> >>> Cheers
>> >>>
>> >>>
>> >>> [1] http://www.andromda.org/
>> >>> [2]
>> >>> http://www.andromda.org/andromda-cartridges/andromda-bpm4struts-cart
>> >>> ri
>> >>> dge/index.html
>> >>> [3]
>> >>> http://www.andromda.org/andromda-cartridges/andromda-bpm4struts-cart
>> >>> ri
>> >>> dge/howto2.html
>> >>> [4] http://www.webratio.com
>> >>> [5]
>> >>> http://www.webratio.com/site/content/en/web-application-development
>> >>> [6] http://www.ifml.org/
>> >>> [7] http://ifml.github.io/
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> On Fri, Nov 20, 2015 at 1:48 AM, Cesar Lugo
>> >>> <[email protected]>
>> >>> wrote:
>> >>>
>> >>>> Hi.
>> >>>>
>> >>>> I just wanted to let you guys know that I have tried Papyro in
>> >>>> eclipse. I have been able to reverse engineer java code and create
>> >>>> UML Class Diagrams (supports most of the UML types of diagrams
>> >>>> including use cases, state machine, activity and many more). I
>> >>>> tried adding a property within a domain object class, then redo
>> >>>> java engineer and it keeps my diagram and was able to include the
>> >>>> new property. I haven't been able to do the opposite, adding a
>> >>>> property within the UML and have it add it to the existing java
>> class though.
>> >>>> Adding a new UML class generates java code just fine. I haven’t
>> >>>> been able to reverse engineer some repository classes, anything
>> >>>> that uses java.util.List fails to be imported into the UML model, I
>> >>>> haven't find the solution yet (sortedSet works fine). It doesn't
>> >>>> automatically create the diagram (like other simpler tools do), but
>> >>>> once you import your java code into the UML model, it's just a
>> >>>> matter of drag and drop and into the diagram canvas and select
>> >>>> which properties and operations (actions) you want to be shown,
>> >>>> very convenient to exclude the obvious from the diagram, like
>> >>>> getters and
>> >> setters, maybe disableXxx / hideXxx / defaultxXX methods, your choice.
>> >>>>
>> >>>> I will keep working on it, looking good so far.
>> >>>>
>> >>>> Cesar.
>> >>>>
>> >>>> -----Original Message-----
>> >>>> From: Óscar Bou - GOVERTIS [mailto:[email protected]]
>> >>>> Sent: Monday, November 16, 2015 4:53 AM
>> >>>> To: users
>> >>>> Subject: Re: Thinking about re-introducing UML in our workflow
>> >>>>
>> >>>>
>> >>>> For you to know.
>> >>>>
>> >>>> I was just reading about “AgileJ” [1] (the video at [2] is excellent.
>> >>>> It perfectly summarizes the points-of-view expressed here about the
>> >>>> evolution last years of UML usage in dev teams).
>> >>>>
>> >>>> But I’ve also found the Papyrus Eclipse project [3]. Seems to be
>> >>>> really alive (there has been a conference this month).
>> >>>>
>> >>>> And It also seems to have full code synch from Java … See [4].
>> >>>>
>> >>>> Any experience out there with Papyrus?
>> >>>> Could it be a good match for Apache Isis?
>> >>>>
>> >>>>
>> >>>> Cheers,
>> >>>>
>> >>>> Oscar
>> >>>>
>> >>>>
>> >>>> [1] http://www.agilej.com
>> >>>> [2] https://www.youtube.com/embed/hs9TYFsxkxE?autoplay=1&rel=0
>> >>>> [3] http://www.eclipse.org/papyrus/ [4]
>> >>>> https://www.eclipsecon.org/europe2015/session/papyrus4java-uml-diag
>> >>>> ra
>> >>>> ms-ordinary-java-developers
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>> El 16 nov 2015, a las 11:29, Óscar Bou - GOVERTIS
>> >>>>> <[email protected]>
>> >>>> escribió:
>> >>>>>
>> >>>>>
>> >>>>> Hi all.
>> >>>>>
>> >>>>> First of all, the good news for all romantics:
>> >>>>>
>> >>>>> Together is still alive !!! See [1].
>> >>>>>
>> >>>>> [2] says it fully supports Eclipse.
>> >>>>>
>> >>>>> Really interesting, Jeroen, introducing Lombok.
>> >>>>> Look how clear and concise is the Aggregate in [3] expressed in C#.
>> >>>>>
>> >>>>>
>> >>>>> For me, my immediate need is to have a visual depiction of the new
>> >>>> features developers must work on.
>> >>>>> So an Agile diagramming tool would be ok for it.
>> >>>>>
>> >>>>> I’m used to drag-n-drop like interfaces, and I'm there are “visual”
>> >>>> tools out there that support plantuml, so it would be ok to be
>> >>>> based on
>> >> it.
>> >>>>>
>> >>>>> Also agree that the model "must be" the code (and not “the code is
>> >>>>> the
>> >>>> model” MDA approach, despite my experience with Bold for
>> >>>> Delphi/Capable Objects was REALLY really good).
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> Regards,
>> >>>>>
>> >>>>> Oscar
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> [1]
>> >>>>> http://www.borland.com/en-GB/Products/Requirements-Management/Toge
>> >>>>> t
>> >>>>> her
>> >>>>> [2[
>> >>>>> http://www.borland.com/en-GB/Products/Requirements-Management/Toge
>> >>>>> t
>> >>>>> her
>> >>>>> /Plugins-and-integrations [3]
>> >>>>> https://github.com/Lokad/lokad-cqrs/blob/master/SaaS.Domain/Aggreg
>> >>>>> a
>> >>>>> tes
>> >>>>> /Register/RegistrationState.cs
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>> El 16 nov 2015, a las 10:57, Mike Burton
>> >>>>>> <[email protected]>
>> >>>> escribió:
>> >>>>>>
>> >>>>>> Hi Jeroen,
>> >>>>>>
>> >>>>>> My experience is similar. I was always suspicious of the "code
>> >>>> generation " approach, inevitably gives 2 "sources" that get out of
>> >> step.
>> >>>>>>
>> >>>>>> The only good exception I saw was TogetherJ where "the code is
>> >>>>>> the
>> >>>> model"
>> >>>>>>
>> >>>>>> Best Regards
>> >>>>>>
>> >>>>>> Mike Burton
>> >>>>>> (Sent from my iPhone)
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>> On 15 Nov 2015, at 23:44, Jeroen van der Wal
>> >>>>>>> <[email protected]>
>> >>>> wrote:
>> >>>>>>>
>> >>>>>>> All very interesting!
>> >>>>>>>
>> >>>>>>> Over the years I tried numerous modelling tools and only the
>> >>>>>>> low-tech ones
>> >>>>>>> stayed: drawing on a whiteboard, using coloured index cards [1]
>> >>>>>>> (learned from Dan) or using a simple online tool like yUML [2].
>> >>>>>>> And I only use them to communicate the broad picture or for
>> >>>>>>> explorative
>> >>>> purposes.
>> >>>>>>>
>> >>>>>>> I gave up on code generators: I always ended up fighting the
>> >>>>>>> generated code. And the impression that they support rapid
>> >>>>>>> application development proved wrong: at the point where you had
>> >>>>>>> to work on more advanced stuff velocity came to a halt. If an
>> >>>>>>> application is built on lots of repeating code snippets then my
>> >>>>>>> conclusion is that the underlying framework is not good enough.
>> >>>>>>>
>> >>>>>>> I love source code that tells the story of the application.
>> >>>>>>> Where everything that could be left out of the code is
>> >>>>>>> eliminated. Very DRY, convention over code. This has drawn me to
>> >>>>>>> Naked Objects and made me decide to spend my time on Apache Isis.
>> >>>>>>>
>> >>>>>>> As you imagine by now I would not take the route from diagram to
>> >>>>>>> code. For me the code editor is the sole canvas to express your
>> >>>>>>> ideas. And I think that if we keep improving Apache Isis on a
>> >>>>>>> few points there will never be a need for an additional tool:
>> >>>>>>>
>> >>>>>>> 1) Reduce boilerplate and make writing an application skeleton
>> >>>>>>> as easy as the easiest modelling tool. This has the advantage
>> >>>>>>> that a software architect can sketch the application and leave
>> >>>>>>> it to his developers to fill in details. But everyone is working
>> >>>>>>> on the same code base using the same tools. In this area we
>> >>>>>>> started using Lombok. Also Dan had an idea to make it possible
>> >>>>>>> to create your own custom annotations which can combine multiple
>> annotations.
>> >>>>>>>
>> >>>>>>> 2) Visualise the meta model. With contributions and mixins the
>> >>>>>>> application logic can come from anywhere. This is
>> >>>>>>> architecturally sane but makes an application hard to grasp. It
>> >>>>>>> would love to see a maven plugin that generates appealing
>> >>>>>>> documentation from the meta model of an Isis application.
>> >>>>>>>
>> >>>>>>> 3) When taking the visualisation concept a bit further it would
>> >>>>>>> be very powerful to explore and navigate the meta model within
>> >>>>>>> the
>> >> IDE.
>> >>>>>>> Any plugin developers here?
>> >>>>>>>
>> >>>>>>> That's just my two cents.
>> >>>>>>>
>> >>>>>>> Cheers,
>> >>>>>>>
>> >>>>>>> Jeroen
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>> On 15 November 2015 at 21:01, David Tildesley
>> >>>>>>>> <[email protected]>
>> >>>> wrote:
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> On Sunday, 15 November 2015 5:37 AM, Dan Haywood <
>> >>>>>>>> [email protected]> wrote:
>> >>>>>>>>> Thanks for this James.
>> >>>>>>>>
>> >>>>>>>>> My observation re: using the (relational) data model as the
>> >>>>>>>>> initial input though is that this is likely to lead to rather
>> >>>>>>>>> coupled code, ultimately not maintainable.
>> >>>>>>>>
>> >>>>>>>> Couldn't agree more.
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>> So, while going from the database up to the domain is fine for
>> >>>>>>>>> a single module of 10 or so entities, any app that is bigger
>> >>>>>>>>> than this really
>> >>>>>>>> should
>> >>>>>>>>> be modelled from the domain down to the database.
>> >>>>>>>>
>> >>>>>>>> Quite right. Any business app that is non trivial should be
>> >>>>>>>> domain modelled.
>> >>>>>>>>
>> >>>>>>>> David.
>> >>>>>>>>
>> >>>>>>>>> Dan
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>> On 14 November 2015 at 15:00, James Agada
>> >>>>>>>>> <[email protected]>
>> >>>> wrote:
>> >>>>>>>>>
>> >>>>>>>>> I actually tested out using Telosys to generate an isis app
>> >>>>>>>>> from database definition. It did work but of course it meant i
>> >>>>>>>>> did the ER first. I used MySQL, did the ER modelling on the
>> >>>>>>>>> workbench, forward engineered into the database and then used
>> >>>>>>>>> telosys scripts to generate a functional Isis application. Did
>> >>>>>>>>> it as a PoC but we
>> >>>> will come back to it later.
>> >>>>>>>>> James Agada
>> >>>>>>>>> Chief Technology Officer
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> On 14 Nov 2015, at 3:49 PM, Óscar Bou - GOVERTIS
>> >>>>>>>>> <[email protected]>
>> >>>>>>>>> wrote:
>> >>>>>>>>>
>> >>>>>>>>> Many thanks, Stephen for this detailed explanation.
>> >>>>>>>>>
>> >>>>>>>>> The problem I’m facing is that I intent to communicate the
>> >>>>>>>>> developers what’s the model to implement.
>> >>>>>>>>>
>> >>>>>>>>> And I usually don’t find big mistakes in action code, but what
>> >>>>>>>>> mostly forces us to refactor is miscommunication regarding the
>> >>>>>>>>> Domain Entities, attributes and actions names, including typos
>> >>>>>>>>> (think my team speak
>> >>>>>>>> Spanish
>> >>>>>>>>> but they’re modeling in English) or wrong or missing
>> >>>>>>>>> relationships
>> >>>>>>>> between
>> >>>>>>>>> those entities.
>> >>>>>>>>>
>> >>>>>>>>> All that could be avoided by firstly agree in a common UML
>> >>>>>>>>> Class
>> >>>> Diagram.
>> >>>>>>>>>
>> >>>>>>>>> If it can potentially generate automatically the Java skeleton
>> >>>>>>>>> with
>> >>>>>>>> Apache
>> >>>>>>>>> Isis annotations is a big plus, as it will avoid mistakes when
>> >>>>>>>>> moving
>> >>>>>>>> from
>> >>>>>>>>> design to implementation.
>> >>>>>>>>>
>> >>>>>>>>> And if it could potentially reverse engineer Java (incl.
>> >>>>>>>>> Apache Isis
>> >>>>>>>>> idioms) a really good feature.
>> >>>>>>>>>
>> >>>>>>>>> Any ideas about what tools could best adapt to the workflow
>> >>>>>>>>> (that could
>> >>>>>>>> be
>> >>>>>>>>> potentially customized to cover the last 2 whishes) ?
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> Thanks,
>> >>>>>>>>>
>> >>>>>>>>> Oscar
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> El 14 nov 2015, a las 2:03, Stephen Cameron
>> >>>>>>>>> <[email protected]>
>> >>>>>>>>> escribió:
>> >>>>>>>>>
>> >>>>>>>>> Hi Oscar,
>> >>>>>>>>>
>> >>>>>>>>> In a qualified way I think your idea has merit. I have never
>> >>>>>>>>> used UML for design, but a few years ago I decided to take a
>> >>>>>>>>> good look at it and see
>> >>>>>>>> it
>> >>>>>>>>> if was useful. The idea of being able to draw a diagram and
>> >>>>>>>>> generate code from it seemed sensible, after all that is what
>> >>>>>>>>> is done by most other 'design' professions, such as building
>> >>>> architects and engineers.
>> >>>>>>>>>
>> >>>>>>>>> To cut a long story short I realised after some reading that
>> >>>>>>>>> it was not that simple, and that OO languages themselves are
>> >>>>>>>>> really all that are needed for the process of designing a
>> >>>>>>>>> system. This is "the code is the design" school of thought,
>> >>>>>>>>> mainly attributed to
>> >>>> Jack Reeves [1].
>> >>>>>>>>>
>> >>>>>>>>> I found that  keeping code and UML diagrams in sync in a
>> >>>>>>>>> top-down 'UML to code' design process will always be
>> >>>>>>>>> problematic (maybe why there are apparently no open-source
>> >>>>>>>>> tools
>> >> that claim to do this).
>> >>>>>>>>> Then I read about Domain Driven Design which seemed to agree
>> >>>>>>>>> with this premise, and from there found Apache Isis via Dan's
>> >> book.
>> >>>>>>>>>
>> >>>>>>>>> So now for me UML class diagrams do have an after the fact use
>> >>>>>>>>> for documentation purposes and if a solution implement was
>> >>>>>>>>> capable of that reverse generation of diagrams from code it
>> >>>>>>>>> would be a good thing to
>> >>>>>>>> have.
>> >>>>>>>>> Entity Framework can do this, its their "code first" approach.
>> >>>>>>>>>
>> >>>>>>>>> Given that the-code-is-the-design is true, I think that UML
>> >>>>>>>>> class
>> >>>>>>>> diagrams
>> >>>>>>>>> real main value is as a data model, the question then is why
>> >>>>>>>>> not use a purely data-modeling tool and generate Java classes
>> >>>>>>>>> off
>> >> it.
>> >>>>>>>>> Then the diagrams 'designed' could have a usefulness to
>> >>>>>>>>> programmers and to system users, something like those created
>> >>>> SchemaSpy [2]  for example.
>> >>>>>>>>>
>> >>>>>>>>> There are already useful and free Java class generation
>> >>>>>>>>> (binding) tools from off data-models, of one sort or another,
>> >>>>>>>>> such as JAXB,
>> >>>> DataNucleus'
>> >>>>>>>>> schemaGen[3], even CAM [4].
>> >>>>>>>>>
>> >>>>>>>>> Here is my vision of what I think would be really useful: to
>> >>>>>>>>> have a
>> >>>>>>>> design
>> >>>>>>>>> tool that can be used by non-programmers to create a simple
>> >>>>>>>>> data-model,
>> >>>>>>>> and
>> >>>>>>>>> then to have that create a working Apache Isis based CRUD
>> system.
>> >>>>>>>>> This could serve your purpose (I guess) and also find a wider
>> use.
>> >>>>>>>>>
>> >>>>>>>>> The means of achieving this would I think, require something
>> >>>>>>>>> like the "dynamic classes" in available in the Moxy framework
>> >>>>>>>>> [5], that is, map based so that no Java class compilation is
>> >> needed.
>> >>>>>>>>> Instead, a data-model configuration file (a schema) is read-in
>> >>>>>>>>> to configure the system. This is not a strange idea, in fact
>> >>>>>>>>> its the data-driven programming paradigm that is the basis of
>> >>>>>>>>> the original browser concept (before it was turned into
>> >>>>>>>> OO
>> >>>>>>>>> application framework via addition of Javascript). In the
>> >>>>>>>>> browser the
>> >>>>>>>> data
>> >>>>>>>>> is HTML that is turned into an in-memory Document Object Model
>> >>>>>>>>> (DOM) for rendering.
>> >>>>>>>>>
>> >>>>>>>>> As a blended solution between Apache Isis as it is currently
>> >>>>>>>>> (heavily influence by naked objects, an OO modelling based
>> >>>>>>>>> approach for creating custom *behavioural* applications) and
>> >>>>>>>>> this additional mainly data
>> >>>>>>>> focused
>> >>>>>>>>> approach, I think a programmer developing a business
>> >>>>>>>>> application would start off with these dymanic classes and
>> >>>>>>>>> then in time 'harden' the design by generating and compiling
>> >>>>>>>>> real Java classes from off the model. [A non-programmer
>> >>>>>>>>> wouldn't get past the first design 'phase' usually, but still
>> >>>>>>>>> end up with a useable UI.]
>> >>>>>>>>>
>> >>>>>>>>> In addition, by having separate abstract model-generated
>> >>>>>>>>> classes, that
>> >>>>>>>> can
>> >>>>>>>>> be overwritten if the data-model changes, and concrete
>> >>>>>>>>> implementation classes, where you put all your behavioural
>> >>>>>>>>> code and that are never overwritten, you get close to the
>> >>>>>>>>> 'round-tripping' that would seem to me
>> >>>>>>>> to
>> >>>>>>>>> be the only valid way to use UML *for design*. I think this is
>> >>>>>>>>> how the Eclipse Ecore models work, that there are model
>> >>>>>>>>> classes and
>> >>>>>>>> implementation
>> >>>>>>>>> classes that extend the model classes. The IDE will often warn
>> >>>>>>>>> you when these two sub-models have inconsistencies. This
>> >>>>>>>>> duality also offers an alternative means to achieving the
>> >>>>>>>>> goals of Lombok it
>> >>>> would seem.
>> >>>>>>>>>
>> >>>>>>>>> Of course, sitting in the middle of all this is a meta-model,
>> >>>>>>>>> that
>> >>>>>>>> creates
>> >>>>>>>>> the dynamic classes, generates and compiles the 'hardened'
>> >>>>>>>>> model classes (when used) and maps either of these means to a
>> >>>>>>>>> UI
>> >> 'viewer'.
>> >>>>>>>>>
>> >>>>>>>>> For such data-management frameworks, the complicated aspect
>> >>>>>>>>> isn't so much going from the designed data-model to Java,
>> >>>>>>>>> there are lots of examples of that, instead its being able to
>> >>>>>>>>> have also, a dynamic query capability. So that a person
>> >>>>>>>>> unfamiliar with the dataset, can, via its data-model, start
>> >>>>>>>>> querying it (and also maybe integrating it in real-time with
>> >>>>>>>>> other online resources, the
>> >>>> idea of a data-browser appeals!).
>> >>>>>>>>>
>> >>>>>>>>> In the science domain, where I worked for a few years building
>> >>>>>>>>> data-management infrastructure, there are highly advanced
>> >>>>>>>>> systems for online data access and querying e.g. [6], but at
>> >>>>>>>>> the same time a common tool used for small databases is still
>> >> Microsoft Access.
>> >>>>>>>>> Access has many strengths as a desktop database, including
>> >>>>>>>>> form generation and also
>> >>>>>>>> dynamic
>> >>>>>>>>> query-by-form, but the problems arise when you want to make
>> >>>>>>>>> such data publicly available, in the sense of being findable
>> >>>>>>>>> and searchable in real time. You might as well have used a
>> >>>>>>>>> web-based system from the start and then been able to easily
>> >>>>>>>>> open it to the
>> >>>> world at the appropriate time.
>> >>>>>>>>>
>> >>>>>>>>> Having though about this problem for a number of years and
>> >>>>>>>>> spent alot of time working on a XForms based solution as well.
>> >>>>>>>>> I'd be very interested
>> >>>>>>>> to
>> >>>>>>>>> see Apache Isis broaden its scope to offer what I have
>> >>>>>>>>> described, in fact its doesn't seem to need very much more
>> >>>>>>>>> than what is already present in
>> >>>>>>>> the
>> >>>>>>>>> Isis meta-model and Wicket viewer. The Restful objects support
>> >>>>>>>>> already provides a generic 'generated' web programming
>> interface.
>> >>>>>>>>>
>> >>>>>>>>> In summary I know that there are some Java projects that make
>> >>>>>>>>> very effective use of a Model Driven Architecture approach
>> >>>>>>>>> (e.g [7]), but I am now not sure that UML is the
>> >>>>>>>>> 'be-all-and-end-all' basis of
>> >>>> that.
>> >>>>>>>> Actually I
>> >>>>>>>>> think that data-models are the basis of most of MDAs
>> >>>>>>>>> efficiency dividends and that there are other approaches,
>> >>>>>>>>> specifically that conceptual models offer more versatility in
>> >>>>>>>>> terms of who and how
>> >>>> you can make use of them.
>> >>>>>>>>> This thinking goes way back, such as Sowa's Conceptual Graphs
>> >>>>>>>>> [8] and
>> >>>>>>>> even
>> >>>>>>>>> to Codd [9]. A modern expression of Sowa's thoughts (I gather)
>> >>>>>>>>> is the W3C semantic web, but he was thinking of database
>> >>>>>>>>> design and
>> >>>> query way back.
>> >>>>>>>>>
>> >>>>>>>>> Apart from some additions to Isis, another interesting aspect
>> >>>>>>>>> is looking
>> >>>>>>>> at
>> >>>>>>>>> the mapping to data-stores, using a graph database of one sort
>> >>>>>>>>> or another to avoid the complexity of ORM is a simple answer
>> >>>>>>>>> to that I feel. Again, the hardening of a design might mean
>> >>>>>>>>> manually adding a few overrides of default ORM mapping rules
>> >>>>>>>>> into some behavioural-model classes, that
>> >>>>>>>> extend
>> >>>>>>>>> generated data-model classes (getters and setters only).
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> [1]http://www.developerdotstar.com/mag/articles/reeves_design_
>> >>>>>>>>> m
>> >>>>>>>>> ain
>> >>>>>>>>> .html
>> >>>>>>>>> [2]http://schemaspy.sourceforge.net/sample/relationships.html
>> >>>>>>>>> [3]
>> >>>>>>>> http://www.datanucleus.org/products/accessplatform_2_1/rdbms/sc
>> >>>>>>>> h
>> >>>>>>>> ema
>> >>>>>>>> tool.html
>> >>>>>>>>> [4]http://camprocessor.sourceforge.net/wiki/index.php/Main_Pag
>> >>>>>>>>> e
>> >>>>>>>>> [5]https://wiki.eclipse.org/EclipseLink/Examples/MOXy/Dynamic
>> >>>>>>>>> [6]http://www.opendap.org/
>> >>>>>>>>> [7]http://www.opencrx.org/
>> >>>>>>>>> [8]https://en.wikipedia.org/wiki/Conceptual_graph
>> >>>>>>>>> [9]https://en.wikipedia.org/wiki/Relational_Model/Tasmania
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> On Fri, Nov 13, 2015 at 8:45 PM, Ó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.
>> >>>>>>>>>
>> >>>>>>>>> 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.
>> >>>>>>>>>
>> >>>>>>>>> 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?
>> >>>>>>>>>
>> >>>>>>>>> Thanks,
>> >>>>>>>>>
>> >>>>>>>>> Oscar
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> [1] http://roomodeler.com
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> This email and any attachment thereto are confidential and
>> >>>> priviledged.
>> >>>>>>>> if
>> >>>>>>>>> you have received it in error, please delete immediately and
>> >>>>>>>>> notify the sender. Do not disclose, copy, circulate or in any
>> >>>>>>>>> way use it. The information contained therein is for the
>> >>>>>>>>> address only, if you reply on
>> >>>>>>>> it,
>> >>>>>>>>> its at your own risk. Emails are not guaranteed to be secure
>> >>>>>>>>> or error
>> >>>>>>>> free,
>> >>>>>>>>> the message and any attachment could be intercepted,
>> >>>>>>>>> corrupted, lost, delayed, incomplete or ammended. Computer
>> >>>>>>>>> warehouse group and its
>> >>>>>>>> divisions
>> >>>>>>>>> do not accept liability for damage caused by this email or any
>> >>>>>>>> attachment.
>> >>>>>>>>> The message you tried to print is protected with Information
>> >>>>>>>>> Rights Management. You don't have the necessary user rights to
>> >>>>>>>>> print the
>> >>>>>>>> message.
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> This email and any attachment thereto are confidential and
>> >>>> priviledged.
>> >>>>>>>> if
>> >>>>>>>>> you have received it in error, please delete immediately and
>> >>>>>>>>> notify the sender. Do not disclose, copy, circulate or in any
>> >>>>>>>>> way use it. The information contained therein is for the
>> >>>>>>>>> address only, if you reply on
>> >>>>>>>> it,
>> >>>>>>>>> its at your own risk. Emails are not guaranteed to be secure
>> >>>>>>>>> or error
>> >>>>>>>> free,
>> >>>>>>>>> the message and any attachment could be intercepted,
>> >>>>>>>>> corrupted, lost, delayed, incomplete or ammended. Computer
>> >>>>>>>>> warehouse group and its
>> >>>>>>>> divisions
>> >>>>>>>>> do not accept liability for damage caused by this email or any
>> >>>>>>>> attachment.
>> >>>>>>>>> The message you tried to print is protected with Information
>> >>>>>>>>> Rights Management. You don't have the necessary user rights to
>> >>>>>>>>> print the
>> >>>>>>>> message.
>> >>>>>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> ---
>> >>>> This email has been checked for viruses by Avast antivirus software.
>> >>>> https://www.avast.com/antivirus
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >> ---
>> >> This email has been checked for viruses by Avast antivirus software.
>> >> https://www.avast.com/antivirus
>> >>
>> >>
>>
>>
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> https://www.avast.com/antivirus
>>
>>
>>
>

Reply via email to