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&#39;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">&lt;<a href=3D"mailto:[email protected]" target=3D"_bl=
ank">[email protected]</a>&gt;</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&#39;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&quot;Bob Tarling&quot; &lt;<a href=3D"mailto:[email protected]=
om">[email protected]</a>&gt;<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=
&#39;ll start of looking at classcycle for now though..<br>
=C2=A0I&#39;d still like to tackle this for Argo as well, I&#39;ll go take =
a look at Thomas&#39;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 &lt;<a href=3D"mailto:tfmorris@gma=
il.com">[email protected]</a>&gt; wrote:<br>
<br>
</span><span class=3D"">On Thu, Dec 18, 2014 at 5:29 AM, Bob Tarling &lt;<a=
 href=3D"mailto:[email protected]">[email protected]</a>[<a href=3D=
"mailto:[email protected]">[email protected]</a>]&gt; wrote:<br>
<br>
=C2=A0My end goal is actually to determine package dependencies. I have a l=
arge application that I&#39;m sure has cyclic dependencies between packages=
 and I&#39;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&#39;s been 7-8 years since I used it fo=
r ArgoUML.<br>
=C2=A0<br>
IntelliJ&#39;s dependency analysis looks pretty powerful too (although I ha=
ven&#39;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&#39;s not how I&#39;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&amp;=
dsMessageId=3D3093000" target=3D"_blank">http://argouml.tigris.org/ds/viewM=
essage.do?dsForumId=3D450&amp;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--