Return-Path: X-Original-To: apmail-isis-users-archive@www.apache.org Delivered-To: apmail-isis-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 13B7318B0F for ; Thu, 26 Nov 2015 10:09:31 +0000 (UTC) Received: (qmail 84501 invoked by uid 500); 26 Nov 2015 10:09:31 -0000 Delivered-To: apmail-isis-users-archive@isis.apache.org Received: (qmail 84468 invoked by uid 500); 26 Nov 2015 10:09:30 -0000 Mailing-List: contact users-help@isis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@isis.apache.org Delivered-To: mailing list users@isis.apache.org Received: (qmail 84457 invoked by uid 99); 26 Nov 2015 10:09:30 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Nov 2015 10:09:30 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 28D3AC08AC for ; Thu, 26 Nov 2015 10:09:30 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.001 X-Spam-Level: * X-Spam-Status: No, score=1.001 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id GCbh-BvWdmx2 for ; Thu, 26 Nov 2015 10:09:14 +0000 (UTC) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTPS id 1A0012026C for ; Thu, 26 Nov 2015 10:09:13 +0000 (UTC) Received: from [192.168.1.33] ([79.145.242.135]) by mrelayeu.kundenserver.de (mreue101) with ESMTPSA (Nemesis) id 0LhvfO-1aeost0SDS-00nAMQ for ; Thu, 26 Nov 2015 11:09:05 +0100 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\)) Subject: Re: Thinking about re-introducing UML in our workflow From: =?utf-8?Q?=C3=93scar_Bou_-_GOVERTIS?= In-Reply-To: Date: Thu, 26 Nov 2015 11:09:03 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <0B638C96-70B3-4169-B41D-69A6411E2547@govertis.com> References: <275884771.4242625.1447617713416.JavaMail.yahoo@mail.yahoo.com> <407E1136-1A0F-41C5-A0A3-392F38D866F4@govertis.com> <564de179.e2ab440a.40b31.ffff8f1aSMTPIN_ADDED_BROKEN@mx.google.com> <56533829.a5b9420a.d0ba7.ffffd199SMTPIN_ADDED_BROKEN@mx.google.com> <56539111.c512620a.a9fb0.249eSMTPIN_ADDED_BROKEN@mx.google.com> To: users X-Mailer: Apple Mail (2.3096.5) X-Provags-ID: V03:K0:THk87sKJi43wLHMKr5F+wsBiIP8CuGKanlFddD9OVW28TGkfVyj tohePM4DnKaZ/qeLypR05zn8lK/dgGRz2ZuPVdIgleVwYKZ8BwDO6mf7aSZaCgEcMT2VceX lSLIY4gk3dZqr/1CX5GlMqKs61jxedGo5hTLlEJvBO3q4lyFVlQPXLe1+lsqelfuEbuq+ld LHcr1aFRSGR2r7wHnDohw== X-UI-Out-Filterresults: notjunk:1;V01:K0:w/uBMOTb/JQ=:WyU2CS+VvzOz31wkgrvX04 z3nFv6G8ZuyI5RLtmkhcMJYjjU8ZMlSYD5aeMmnO9srllSdCXTGrMw23SkiTnLFoCqAr8zzxe Dt392xLuaudRwX2Rz2jxf6KtoiJVs0Acu0XCs9nzPzpLSUFGtZHIqYUT/XVscDyGGtk+dSE6L YWsXt/UKfXIZFL2vE2nUN5nDhOj9VRYsKJg7WIvkkERPNjmfVWEoiKt/75egl/RhUB/YN4djK 3j0v0I2EX+00fGU4g/NMtB6KNPg+saXwFwbXhxjGt2Thq8IEGMSFA0BW2JW1SS1NWOMhyx59J ovcG1LX0RfvHwz5Rlu1+grZ+YVRTkWTnd5UWrMG0zNJ7rvqY5vTHKsSYbjKjj9VfXqIO4fVgZ o7cmJNSjG/KmtbD1qybwo3zTb1/quSbPUzdSJicZMklJMVsg13f7KksrNsEF6xduAnAOiUk22 RxlcTWcOPm7apa/6gRtDK6mdlFZZPEKFSX7ZPYgW9ZZ/j2o+SaXut2PWLXFL563OIdMNvcFNS z4yHm8mMBIoHh8QZcIg9WRTZisHjN/ywjd3+EDgajs46erTrCMvTsbG7xpqMoETlE4TEDhJKN mwgOXw8H9zclpTMPDmewFdvH4TyAklV3dzdbCZfv+SWLLWYWH4xSbgKGxvNwsdw0wlAC5foFM 4c/z+Olnt4HfdkqfVibRFskb5XqJIJUqgNuLzsqepkMr4mqAborhncwnbsdTlUrfgsypVg+ez naZO82pgQSXiUV7I Hi, Dan for this summary. I agree with Cesar that Eclipse Papyrus can be of help for the initial = use case. Just needing to know if it=E2=80=99s only a matter of configuring their = profiles or primitive types definition to generate entities, properties, = actions, etc. annotated with JDO and Isis annotations. Thanks, Oscar > El 26 nov 2015, a las 11:01, Dan Haywood = escribi=C3=B3: >=20 > Just to pull this thread apart a little: >=20 > - there are various tools candidates for Oscar's original use case, ie = to > model class diagrams then forward generate into Java, thereafter = ideally to > allow reverse engineering. Eclipse Papyrus looks promising for this > - for old-fashioned visualization of existing Java code, there is = AgileJ. > I remember this product from a while back, nice to see it still going, = and > a very reasonable price I think. > - I've raised ISIS-1267 for my idea of generating either the PlantUML = class > diagrams from the Isis metamodel (for visualization thereafter using > Asciidoctor-diagram, or XTextPlantUML), or alternatively = umlgraph.org's DSL > - I've raised ISIS-1268 for my idea of generating PlantUML sequence > diagrams by running integration tests. >=20 > Thx > Dan >=20 > https://issues.apache.org/jira/browse/ISIS-1267 > https://issues.apache.org/jira/browse/ISIS-1268 >=20 >=20 >=20 > On 26 November 2015 at 00:04, Stephen Cameron = > wrote: >=20 >> In terms of using UML for after the fact documentation, I like this >> UMLGraph approach: >>=20 >> http://umlgraph.org >>=20 >> On Tue, Nov 24, 2015 at 9:42 AM, Stephen Cameron < >> steve.cameron.62@gmail.com >>> wrote: >>=20 >>>=20 >>>=20 >>> On Tue, Nov 24, 2015 at 9:19 AM, Cesar Lugo = >>> wrote: >>>=20 >>>> Hi Oscar, >>>>=20 >>>> 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. =46rom 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. >>>>=20 >>>> Hmm, definitely a "missing link" in my case as none of this worked, = I >>> will watch the video. >>>=20 >>>=20 >>>> 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. >>>>=20 >>>> Cesar. >>>>=20 >>>> -----Original Message----- >>>> From: =C3=93scar Bou - GOVERTIS [mailto:o.bou@govertis.com] >>>> Sent: Monday, November 23, 2015 2:37 PM >>>> To: users@isis.apache.org >>>> Subject: Re: Thinking about re-introducing UML in our workflow >>>>=20 >>>> H, Cesar. >>>>=20 >>>> Thanks here also. >>>>=20 >>>> I=E2=80=99ve seen the video, but need to find time to install and = test it >> locally. >>>>=20 >>>> Seems interesting for direct generation. >>>> No example is given for reverse-engineering. >>>>=20 >>>> 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). >>>>=20 >>>> It remembers me quite well the Spring Roo customization on = SparxSystem=E2=80=99s >>>> Enterprise Arquitect. >>>>=20 >>>> 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). >>>>=20 >>>> Perhaps all that is also possible here. >>>>=20 >>>>=20 >>>> Thanks, >>>>=20 >>>> Oscar >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>> El 23 nov 2015, a las 21:18, Stephen Cameron < >>>> steve.cameron.62@gmail.com> escribi=C3=B3: >>>>>=20 >>>>> 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. >>>>>=20 >>>>> 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. >>>>>=20 >>>>> [1] http://www.ifml.org >>>>>=20 >>>>> On Tue, Nov 24, 2015 at 3:00 AM, Cesar Lugo = >>=20 >>>>> wrote: >>>>>=20 >>>>>> 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. >>>>>>=20 >>>>>> https://www.youtube.com/watch?v=3Dgmf8CswqKcs >>>>>>=20 >>>>>> Cesar. >>>>>>=20 >>>>>> -----Original Message----- >>>>>> From: Stephen Cameron [mailto:steve.cameron.62@gmail.com] >>>>>> Sent: Monday, November 23, 2015 4:42 AM >>>>>> To: users@isis.apache.org >>>>>> Subject: Re: Thinking about re-introducing UML in our workflow >>>>>>=20 >>>>>> 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. >>>>>>=20 >>>>>> On Sat, Nov 21, 2015 at 9:31 AM, Stephen Cameron < >>>>>> steve.cameron.62@gmail.com >>>>>>> wrote: >>>>>>=20 >>>>>>> Hi, >>>>>>>=20 >>>>>>> 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 . >>>>>>>=20 >>>>>>> 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). >>>>>>>=20 >>>>>>> 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. >>>>>>>=20 >>>>>>> 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. >>>>>>>=20 >>>>>>> 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]. >>>>>>>=20 >>>>>>> Interested to hear thoughts, maybe a dead-end, but maybe not. >>>>>>>=20 >>>>>>> Cheers >>>>>>>=20 >>>>>>>=20 >>>>>>> [1] http://www.andromda.org/ >>>>>>> [2] >>>>>>>=20 >> http://www.andromda.org/andromda-cartridges/andromda-bpm4struts-cart >>>>>>> ri >>>>>>> dge/index.html >>>>>>> [3] >>>>>>>=20 >> 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/ >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> On Fri, Nov 20, 2015 at 1:48 AM, Cesar Lugo >>>>>>> >>>>>>> wrote: >>>>>>>=20 >>>>>>>> Hi. >>>>>>>>=20 >>>>>>>> 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=E2=80=99t >>>>>>>> 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. >>>>>>>>=20 >>>>>>>> I will keep working on it, looking good so far. >>>>>>>>=20 >>>>>>>> Cesar. >>>>>>>>=20 >>>>>>>> -----Original Message----- >>>>>>>> From: =C3=93scar Bou - GOVERTIS [mailto:o.bou@govertis.com] >>>>>>>> Sent: Monday, November 16, 2015 4:53 AM >>>>>>>> To: users >>>>>>>> Subject: Re: Thinking about re-introducing UML in our workflow >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> For you to know. >>>>>>>>=20 >>>>>>>> I was just reading about =E2=80=9CAgileJ=E2=80=9D [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). >>>>>>>>=20 >>>>>>>> But I=E2=80=99ve also found the Papyrus Eclipse project [3]. = Seems to be >>>>>>>> really alive (there has been a conference this month). >>>>>>>>=20 >>>>>>>> And It also seems to have full code synch from Java =E2=80=A6 = See [4]. >>>>>>>>=20 >>>>>>>> Any experience out there with Papyrus? >>>>>>>> Could it be a good match for Apache Isis? >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> Cheers, >>>>>>>>=20 >>>>>>>> Oscar >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> [1] http://www.agilej.com >>>>>>>> [2] https://www.youtube.com/embed/hs9TYFsxkxE?autoplay=3D1&rel=3D= 0 >>>>>>>> [3] http://www.eclipse.org/papyrus/ [4] >>>>>>>>=20 >> https://www.eclipsecon.org/europe2015/session/papyrus4java-uml-diag >>>>>>>> ra >>>>>>>> ms-ordinary-java-developers >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>> El 16 nov 2015, a las 11:29, =C3=93scar Bou - GOVERTIS >>>>>>>>> >>>>>>>> escribi=C3=B3: >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> Hi all. >>>>>>>>>=20 >>>>>>>>> First of all, the good news for all romantics: >>>>>>>>>=20 >>>>>>>>> Together is still alive !!! See [1]. >>>>>>>>>=20 >>>>>>>>> [2] says it fully supports Eclipse. >>>>>>>>>=20 >>>>>>>>> Really interesting, Jeroen, introducing Lombok. >>>>>>>>> Look how clear and concise is the Aggregate in [3] expressed = in >> C#. >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> 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. >>>>>>>>>=20 >>>>>>>>> I=E2=80=99m used to drag-n-drop like interfaces, and I'm there = are >> =E2=80=9Cvisual=E2=80=9D >>>>>>>> tools out there that support plantuml, so it would be ok to be >>>>>>>> based on >>>>>> it. >>>>>>>>>=20 >>>>>>>>> Also agree that the model "must be" the code (and not =E2=80=9Ct= he code is >>>>>>>>> the >>>>>>>> model=E2=80=9D MDA approach, despite my experience with Bold = for >>>>>>>> Delphi/Capable Objects was REALLY really good). >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> Regards, >>>>>>>>>=20 >>>>>>>>> Oscar >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> [1] >>>>>>>>>=20 >> http://www.borland.com/en-GB/Products/Requirements-Management/Toge >>>>>>>>> t >>>>>>>>> her >>>>>>>>> [2[ >>>>>>>>>=20 >> http://www.borland.com/en-GB/Products/Requirements-Management/Toge >>>>>>>>> t >>>>>>>>> her >>>>>>>>> /Plugins-and-integrations [3] >>>>>>>>>=20 >> https://github.com/Lokad/lokad-cqrs/blob/master/SaaS.Domain/Aggreg >>>>>>>>> a >>>>>>>>> tes >>>>>>>>> /Register/RegistrationState.cs >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>> El 16 nov 2015, a las 10:57, Mike Burton >>>>>>>>>> >>>>>>>> escribi=C3=B3: >>>>>>>>>>=20 >>>>>>>>>> Hi Jeroen, >>>>>>>>>>=20 >>>>>>>>>> My experience is similar. I was always suspicious of the = "code >>>>>>>> generation " approach, inevitably gives 2 "sources" that get = out of >>>>>> step. >>>>>>>>>>=20 >>>>>>>>>> The only good exception I saw was TogetherJ where "the code = is >>>>>>>>>> the >>>>>>>> model" >>>>>>>>>>=20 >>>>>>>>>> Best Regards >>>>>>>>>>=20 >>>>>>>>>> Mike Burton >>>>>>>>>> (Sent from my iPhone) >>>>>>>>>>=20 >>>>>>>>>>=20 >>>>>>>>>>=20 >>>>>>>>>>> On 15 Nov 2015, at 23:44, Jeroen van der Wal >>>>>>>>>>> >>>>>>>> wrote: >>>>>>>>>>>=20 >>>>>>>>>>> All very interesting! >>>>>>>>>>>=20 >>>>>>>>>>> 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. >>>>>>>>>>>=20 >>>>>>>>>>> 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. >>>>>>>>>>>=20 >>>>>>>>>>> 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. >>>>>>>>>>>=20 >>>>>>>>>>> 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: >>>>>>>>>>>=20 >>>>>>>>>>> 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. >>>>>>>>>>>=20 >>>>>>>>>>> 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. >>>>>>>>>>>=20 >>>>>>>>>>> 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? >>>>>>>>>>>=20 >>>>>>>>>>> That's just my two cents. >>>>>>>>>>>=20 >>>>>>>>>>> Cheers, >>>>>>>>>>>=20 >>>>>>>>>>> Jeroen >>>>>>>>>>>=20 >>>>>>>>>>>=20 >>>>>>>>>>>> On 15 November 2015 at 21:01, David Tildesley >>>>>>>>>>>> >>>>>>>> wrote: >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>> On Sunday, 15 November 2015 5:37 AM, Dan Haywood < >>>>>>>>>>>> dan@haywood-associates.co.uk> wrote: >>>>>>>>>>>>> Thanks for this James. >>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>=20 >>>>>>>>>>>> Couldn't agree more. >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>=20 >>>>>>>>>>>> Quite right. Any business app that is non trivial should be >>>>>>>>>>>> domain modelled. >>>>>>>>>>>>=20 >>>>>>>>>>>> David. >>>>>>>>>>>>=20 >>>>>>>>>>>>> Dan >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>=20 >>>>>>>>>>>>> On 14 November 2015 at 15:00, James Agada >>>>>>>>>>>>> >>>>>>>> wrote: >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> On 14 Nov 2015, at 3:49 PM, =C3=93scar Bou - GOVERTIS >>>>>>>>>>>>> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Many thanks, Stephen for this detailed explanation. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> The problem I=E2=80=99m facing is that I intent to = communicate the >>>>>>>>>>>>> developers what=E2=80=99s the model to implement. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> And I usually don=E2=80=99t 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=E2=80=99re modeling in English) or wrong or = missing >>>>>>>>>>>>> relationships >>>>>>>>>>>> between >>>>>>>>>>>>> those entities. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> All that could be avoided by firstly agree in a common UML >>>>>>>>>>>>> Class >>>>>>>> Diagram. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> And if it could potentially reverse engineer Java (incl. >>>>>>>>>>>>> Apache Isis >>>>>>>>>>>>> idioms) a really good feature. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Any ideas about what tools could best adapt to the = workflow >>>>>>>>>>>>> (that could >>>>>>>>>>>> be >>>>>>>>>>>>> potentially customized to cover the last 2 whishes) ? >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Oscar >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> El 14 nov 2015, a las 2:03, Stephen Cameron >>>>>>>>>>>>> >>>>>>>>>>>>> escribi=C3=B3: >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Hi Oscar, >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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]. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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]. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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.] >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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'. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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!). >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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). >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> [1] >> http://www.developerdotstar.com/mag/articles/reeves_design_ >>>>>>>>>>>>> m >>>>>>>>>>>>> ain >>>>>>>>>>>>> .html >>>>>>>>>>>>> = [2]http://schemaspy.sourceforge.net/sample/relationships.html >>>>>>>>>>>>> [3] >>>>>>>>>>>>=20 >> 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 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> On Fri, Nov 13, 2015 at 8:45 PM, =C3=93scar Bou - GOVERTIS = < >>>>>>>>>>>> o.bou@govertis.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Hi all. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> I=E2=80=99m 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> It would be wonderful if the UML solution could also be >>>>>>>>>>>>> =E2=80=9Cintegrated=E2=80=9D with Apache Isis or Java, = automating at least the >>>>>>>>>>>>> entities Java skeleton generation. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> I=E2=80=99ve worked extensively with Rational Rose and = Sparx >>>>>>>>>>>>> EnterpriseArchitect, but was thinking about an = Eclipse-based >>>>>>>> solution that could =E2=80=9Cpotentially=E2=80=9D >>>>>>>>>>>>> be adapted to generate the Java entities with Isis >> annotations. >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Any ideas? >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>=20 >>>>>>>>>>>>> Oscar >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> [1] http://roomodeler.com >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>>=20 >>>>>>>>>>>>>=20 >>>>>>>>>>>>> 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. >>>>>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>>=20 >>>>>>>> --- >>>>>>>> This email has been checked for viruses by Avast antivirus >> software. >>>>>>>> https://www.avast.com/antivirus >>>>>>>>=20 >>>>>>>>=20 >>>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> --- >>>>>> This email has been checked for viruses by Avast antivirus = software. >>>>>> https://www.avast.com/antivirus >>>>>>=20 >>>>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>> --- >>>> This email has been checked for viruses by Avast antivirus = software. >>>> https://www.avast.com/antivirus >>>>=20 >>>>=20 >>>>=20 >>>=20 >>=20