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