Re: Some observations on java reverse engineering
Bob Tarling <[email protected]> Thu, 18 Dec 2014 21:44:28 +0000
| Newsgroups | gmane.comp.lang.uml.argouml.devel |
|---|---|
| Message-ID | <CAKWB3RT883+mOWsPwj-8ABCMyAJLT=GCzO3q3QdZyq_1SNVsVw__10904.0783405819$1418939081$gmane$org@mail.gmail.com> |
------=_Part_2548_872872845.1418939072178 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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=3093002 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_2548_872872845.1418939072178 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div><div><div>Hi Thomas<br><br></div>Looks good from with= in the same package.<br><br>Can this be adapted to create the dependencies = across package?<br><br></div><div>I can't currently see what is prevent= ing this.<br><br></div><div>Bob<br></div></div></div><div class=3D"gmail_ex= tra"><br><div class=3D"gmail_quote">On 18 December 2014 at 20:37, Thomas Ne= ustupny <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"_bl= ank">[email protected]</a>></span> wrote:<blockquote class=3D"gmail_quote" st= yle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Bo= b, 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">[email protected]</a>><br> An:=C2=A0<a href=3D"mailto:[email protected]">[email protected]</= a><br> Betreff:=C2=A0Re: [argouml-dev] Some observations on java reverse engineeri= ng<br> <span class=3D""><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">[email protected]</a>> wrote:<br> <br> </span><span class=3D"">On Thu, Dec 18, 2014 at 5:29 AM, Bob Tarling <<a= href=3D"mailto:[email protected]">[email protected]</a>[<a href=3D= "mailto:[email protected]">[email protected]</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/[http://classycle.sourceforge.net/]" target= =3D"_blank">http://classycle.sourceforge.net/[http://classycle.sourceforge.= net/]</a> It is available as an Eclipse plugin as well as standalone tool.= =C2=A0 One nice addition since the last time I used it is support for Depen= dency Definition Files.=C2=A0 This allows you to describe allowable depende= ncies (e.g. your architectural layers) and it will check for violations.=C2= =A0<a href=3D"http://classycle.sourceforge.net/ddf.html[http://classycle.so= urceforge.net/ddf.html]" target=3D"_blank">http://classycle.sourceforge.net= /ddf.html[http://classycle.sourceforge.net/ddf.html]</a> =C2=A0Looking at <= a href=3D"http://argouml.tigris.org/source/browse/argouml/trunk/tools/class= ycle/[http://argouml.tigris.org/source/browse/argouml/trunk/tools/classycle= /]" target=3D"_blank">http://argouml.tigris.org/source/browse/argouml/trunk= /tools/classycle/[http://argouml.tigris.org/source/browse/argouml/trunk/too= ls/classycle/]</a> it looks like it's been 7-8 years since I used it fo= r 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[https://www.jetbrains.com/idea/features/dependency_ana= lysis.html]" target=3D"_blank">https://www.jetbrains.com/idea/features/depe= ndency_analysis.html[https://www.jetbrains.com/idea/features/dependency_ana= lysis.html]</a><br> <span class=3D"">=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 class=3D"HOEnZb"><div class=3D"h5"><br> To unsubscribe from this discussion, e-mail: [<a href=3D"mailto:dev-unsubsc= [email protected]">[email protected]</a>].<br> To be allowed to post to the list contact the mailing list moderator, email= : [<a href=3D"mailto:[email protected]">[email protected]</a>]<br> </div></div></blockquote></div></div> ------=_Part_2548_872872845.1418939072178--