Re: [argouml-dev] Some observations on java reverse engineering
Bob Tarling <[email protected]> Thu, 18 Dec 2014 21:50:20 +0000
| Newsgroups | gmane.comp.db.axion.devel |
|---|---|
| Message-ID | <CAKWB3RQqaU59-YFVsGqu82frhxXNnHXtqtr7ZsA1JZh6MD4P0w@mail.gmail.com> |
------=_Part_2556_1684141331.1418939437446 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit sorry, I accidentally sent that last email before finished. I'll create an issue and attach a demo project. We can carry on discussions from there. Thanks Bob On 18 December 2014 at 21:44, Bob Tarling <[email protected]> wrote: > > Hi Thomas > > Looks good from within the same package. > > Can this be adapted to create the dependencies across package? > > I can't currently see what is preventing this. > > Bob > > On 18 December 2014 at 20:37, Thomas Neustupny <[email protected]> wrote: >> >> Hi Bob, hi Tom, >> >> thanks for sharing the knowledge about these tools, there're for sure >> worth a look when cyclic dependencies need to be analyzed. >> >> To answer your question, Bob: The parser will only create a dependency if >> there is still none for the given client/supplier combination, or, if a >> stereotype name is provided, if there is no such dependency with that >> stereotype name. See the implementation of the private buildDependency(...) >> method in the Modeller class. >> >> Regards, >> Thomas >> >> >> Gesendet: Donnerstag, 18. Dezember 2014 um 20:25 Uhr >> Von: "Bob Tarling" <[email protected]> >> An: [email protected] >> Betreff: Re: [argouml-dev] Some observations on java reverse engineering >> >> Cool, thanks Tom. >> IntelliJ may be the direction for us at work some time soon anyway, I'll >> start of looking at classcycle for now though.. >> I'd still like to tackle this for Argo as well, I'll go take a look at >> Thomas's work as soon as I can. >> >> Cheers >> >> Bob >> >> >> On 18 December 2014 at 18:38, Tom Morris <[email protected]> wrote: >> >> On Thu, Dec 18, 2014 at 5:29 AM, Bob Tarling <[email protected][ >> [email protected]]> wrote: >> >> My end goal is actually to determine package dependencies. I have a >> large application that I'm sure has cyclic dependencies between packages >> and I'd like to demonstrate that problem to the team I work with before we >> tackle how to resolve it and split the app to smaller jars. >> >> The tool I used to do this analysis for ArgoUML itself (although we never >> tackled removing the package cycles) was Classycle: >> http://classycle.sourceforge.net/[http://classycle.sourceforge.net/] It >> is available as an Eclipse plugin as well as standalone tool. One nice >> addition since the last time I used it is support for Dependency Definition >> Files. This allows you to describe allowable dependencies (e.g. your >> architectural layers) and it will check for violations. >> http://classycle.sourceforge.net/ddf.html[http://classycle.sourceforge.net/ddf.html] >> Looking at >> http://argouml.tigris.org/source/browse/argouml/trunk/tools/classycle/[http://argouml.tigris.org/source/browse/argouml/trunk/tools/classycle/] >> it looks like it's been 7-8 years since I used it for ArgoUML. >> >> IntelliJ's dependency analysis looks pretty powerful too (although I >> haven't used it): >> https://www.jetbrains.com/idea/features/dependency_analysis.html[https://www.jetbrains.com/idea/features/dependency_analysis.html] >> >> While adding dependencies to the Java reverse engineering may be useful >> for other stuff, it's not how I'd recommend finding package cycles. A tool >> designed for that purpose will do a better job. >> >> Tom >> >> >> >> ------------------------------------------------------ >> >> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=3093000 >> >> To unsubscribe from this discussion, e-mail: [ >> [email protected]]. >> To be allowed to post to the list contact the mailing list moderator, >> email: [[email protected]] >> > ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=3093004 To unsubscribe from this discussion, e-mail: [[email protected]]. To be allowed to post to the list contact the mailing list moderator, email: [[email protected]] ------=_Part_2556_1684141331.1418939437446 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div><div><div><div>sorry, I accidentally sent that last e= mail before finished.<br><br></div>I'll create an issue and attach a de= mo project.<br><br></div>We can carry on discussions from there.<br><br></d= iv>Thanks<br><br></div>Bob<div><div><br></div></div></div><div class=3D"gma= il_extra"><br><div class=3D"gmail_quote">On 18 December 2014 at 21:44, Bob = Tarling <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" targ= et=3D"_blank">[email protected]</a>></span> wrote:<blockquote class= =3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd= ing-left:1ex"><div dir=3D"ltr"><div><div><div>Hi Thomas<br><br></div>Looks = good from within the same package.<br><br>Can this be adapted to create the= dependencies across package?<br><br></div><div>I can't currently see w= hat is preventing this.<span class=3D"HOEnZb"><font color=3D"#888888"><br><= br></font></span></div><span class=3D"HOEnZb"><font color=3D"#888888"><div>= Bob<br></div></font></span></div></div><div class=3D"HOEnZb"><div class=3D"= h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On 18 Decembe= r 2014 at 20:37, Thomas Neustupny <span dir=3D"ltr"><<a href=3D"mailto:t= [email protected]" target=3D"_blank">[email protected]</a>></span> wrote:<blockquot= e class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc sol= id;padding-left:1ex">Hi Bob, hi Tom,<br> <br> thanks for sharing the knowledge about these tools, there're for sure w= orth a look when cyclic dependencies need to be analyzed.<br> <br> To answer your question, Bob: The parser will only create a dependency if t= here is still none for the given client/supplier combination, or, if a ster= eotype name is provided, if there is no such dependency with that stereotyp= e name. See the implementation of the private buildDependency(...) method i= n the Modeller class.<br> <br> Regards,<br> Thomas=C2=A0<br> =C2=A0<br> <br> Gesendet:=C2=A0Donnerstag, 18. Dezember 2014 um 20:25 Uhr<br> Von:=C2=A0"Bob Tarling" <<a href=3D"mailto:[email protected]= om" target=3D"_blank">[email protected]</a>><br> An:=C2=A0<a href=3D"mailto:[email protected]" target=3D"_blank">dev@ar= gouml.tigris.org</a><br> Betreff:=C2=A0Re: [argouml-dev] Some observations on java reverse engineeri= ng<br> <span><br> Cool, thanks Tom.<br> =C2=A0IntelliJ may be the direction for us at work some time soon anyway, I= 'll start of looking at classcycle for now though..<br> =C2=A0I'd still like to tackle this for Argo as well, I'll go take = a look at Thomas's work as soon as I can.<br> =C2=A0<br> Cheers<br> =C2=A0<br> Bob<br> =C2=A0<br> =C2=A0<br> On 18 December 2014 at 18:38, Tom Morris <<a href=3D"mailto:tfmorris@gma= il.com" target=3D"_blank">[email protected]</a>> wrote:<br> <br> </span><span>On Thu, Dec 18, 2014 at 5:29 AM, Bob Tarling <<a href=3D"ma= ilto:[email protected]" target=3D"_blank">[email protected]</a>[<a = href=3D"mailto:[email protected]" target=3D"_blank">[email protected]= om</a>]> wrote:<br> <br> =C2=A0My end goal is actually to determine package dependencies. I have a l= arge application that I'm sure has cyclic dependencies between packages= and I'd like to demonstrate that problem to the team I work with befor= e we tackle how to resolve it and split the app to smaller jars.<br> =C2=A0<br> </span>The tool I used to do this analysis for ArgoUML itself (although we = never tackled removing the package cycles) was Classycle:=C2=A0<a href=3D"h= ttp://classycle.sourceforge.net/%5Bhttp://classycle.sourceforge.net/%5D" ta= rget=3D"_blank">http://classycle.sourceforge.net/[http://classycle.sourcefo= rge.net/]</a> It is available as an Eclipse plugin as well as standalone to= ol.=C2=A0 One nice addition since the last time I used it is support for De= pendency Definition Files.=C2=A0 This allows you to describe allowable depe= ndencies (e.g. your architectural layers) and it will check for violations.= =C2=A0<a href=3D"http://classycle.sourceforge.net/ddf.html%5Bhttp://classyc= le.sourceforge.net/ddf.html%5D" target=3D"_blank">http://classycle.sourcefo= rge.net/ddf.html[http://classycle.sourceforge.net/ddf.html]</a> =C2=A0Looki= ng at <a href=3D"http://argouml.tigris.org/source/browse/argouml/trunk/tool= s/classycle/%5Bhttp://argouml.tigris.org/source/browse/argouml/trunk/tools/= classycle/%5D" target=3D"_blank">http://argouml.tigris.org/source/browse/ar= gouml/trunk/tools/classycle/[http://argouml.tigris.org/source/browse/argoum= l/trunk/tools/classycle/]</a> it looks like it's been 7-8 years since I= used it for ArgoUML.<br> =C2=A0<br> IntelliJ's dependency analysis looks pretty powerful too (although I ha= ven't used it): <a href=3D"https://www.jetbrains.com/idea/features/depe= ndency_analysis.html%5Bhttps://www.jetbrains.com/idea/features/dependency_a= nalysis.html%5D" target=3D"_blank">https://www.jetbrains.com/idea/features/= dependency_analysis.html[https://www.jetbrains.com/idea/features/dependency= _analysis.html]</a><br> <span>=C2=A0<br> While adding dependencies to the Java reverse engineering may be useful for= other stuff, it's not how I'd recommend finding package cycles.=C2= =A0 A tool designed for that purpose will do a better job.<br> =C2=A0<br> Tom<br> =C2=A0<br> =C2=A0<br> <br> </span>------------------------------------------------------<br> <a href=3D"http://argouml.tigris.org/ds/viewMessage.do?dsForumId=3D450&= dsMessageId=3D3093000" target=3D"_blank">http://argouml.tigris.org/ds/viewM= essage.do?dsForumId=3D450&dsMessageId=3D3093000</a><br> <div><div><br> To unsubscribe from this discussion, e-mail: [<a href=3D"mailto:dev-unsubsc= [email protected]" target=3D"_blank">[email protected]= rg</a>].<br> To be allowed to post to the list contact the mailing list moderator, email= : [<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</= a>]<br> </div></div></blockquote></div></div> </div></div></blockquote></div></div> ------=_Part_2556_1684141331.1418939437446--