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 > > >
