From beef3a526227cf3a6c86b158b1a3c61bceb6e25f Mon Sep 17 00:00:00 2001 From: George Aristy Date: Wed, 14 Feb 2018 14:14:34 -0400 Subject: [PATCH 1/3] (#120) TCC: establishing relations between methods when both call a 3rd method of the class. --- README.md | 7 +++++++ papers/bieman95.pdf | Bin 0 -> 182160 bytes src/main/resources/org/jpeek/metrics/TCC.xsl | 17 ++++++++++++---- src/test/java/org/jpeek/MetricsTest.java | 3 ++- .../org/jpeek/samples/MethodMethodCalls.java | 19 ++++++++++++++++++ 5 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 papers/bieman95.pdf create mode 100644 src/test/resources/org/jpeek/samples/MethodMethodCalls.java diff --git a/README.md b/README.md index f675c01f..74767fd0 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,13 @@ _[A] new metric [...] yielding meaningful values [...] more sensitive than those International Journal "Information Theories & Applications", Volume 13, 2006, [PDF](http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=55D08270F99333F15E0937AF137F4468?doi=10.1.1.84.1506&rep=rep1&type=pdf). +[`bieman95`] +Tight Class Cohesion (**TCC**).
+James M. Bieman et al.,
+Cohesion and Reuse in an Object-Oriented System,
+Department of Computer Science, Colorado State University, 1995, +[PDF](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.2683). + ## How it works? First, `Skeleton` parses Java bytecode using Javaassit and ASM, in order to produce diff --git a/papers/bieman95.pdf b/papers/bieman95.pdf new file mode 100644 index 0000000000000000000000000000000000000000..568b43ef7894bc3d0e81a4d280a550147330f333 GIT binary patch literal 182160 zcma&NLy#^^)TLXtZJn}>Q|2k#wr$(yTefZ6wr$(4x?lJ0_$NK-QD*GP8m!33%=PR| zCNCmJ$3)KpLpFL9R{+CC#7JakXbHo^!ys*9YvycD#QtAJkwMJD+S$aBh(XNSz}ZB^ z#K_LrgpUu#$=T7wzy`)Wt6EzpX;aKqMrDV*;tN7mS12V6=^ox#PnE!qT~mujE5n%3 z^aWVhFtko05JX^H>6kEgbGx;3mQ29HxV^=-IRrT1=F{P(oiOIL(FAD*aKZm|Yw31> zV8iEi#sFySUGO8M-_Z;H2*v(w+?ej^F3E&>&NO%R@iXvkhcYuro^D`(yEM|PoRlCaGDv?o7W?I+4J2`0 zrS_qV3^dUlIoX*0n%;gCRRvhYlRoBNF4ws)vOWL2^Vj~mDlB9>Bs|uJY4-9`pIw`b zVD9q12zM*3>UG7W+S;8nQ%2I}(k&2C115!bKWn|Uj%>9=Oz?u&X=4Lv>8Ex4DqUS_ zThk#;&RX98&V5n^u{IyPwUoP=N-^w^*L#^KLO6JmFyF6GlI8>QeI^bae(TRcMQF?FNlS$3Qk4Qqh0fgXO(vo>dHbr<_H&G`WfR=h58<@bVPddqMJl;!*l)EB z2b6H{Ov@ra1@y^}PE(sr<1IsT$0X5x6nF2HVY*oTkD$=x%yz?WH|r!ZNBDS>JVfiG zJN7Q$X*ap~@zRlo z*cW;|U6)}sn(!w#_UGS$b&`W28aw>a28k_>Q9#W}5*K?$I{cffvzSL1Ci&em?-D2p zl(45kVS}ohlF5`wvU3kcF2mh>g&x4VmeXXO-lokhwfqfK=pGigo69PGS6Eyyfv90x zBiWMAOKY9%`MOo|3^Q;S%?Qt|u^6@~5YHG2Sczf>*w~$_K_8ozTF<=Pq9+Ef;6MbW zmI*6m5Z#&f5m1`x@F%)ukFhTcHfvZ%Z-_@oneNS?)AigB^xIz*j%AVjQubzV)pjZ=_)W+8r!`qkZzFR7FqeJQdigWXgj3ZoJnaB5~yi5ISx!CU2+Zu4Lr+9pu0AF(V1Vzg|C zj0L{z-4`J(n#uY)AUM&sjqHaP?4m} z5ZInPxA4A!D=e)>5!-+eC{M@UV_LuVT)#Q=;lLF=!BG`+EXGaOVS}EQc+{!&7a_}H z4$Yj|l{0dmxHl0nzBiVTfdKPJtsW

)&pLM-a7+^~wW3c21Qn4w{uLubkU-TuTEh_> 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 J@@?Nz^M8*zup$5e literal 0 HcmV?d00001 diff --git a/src/main/resources/org/jpeek/metrics/TCC.xsl b/src/main/resources/org/jpeek/metrics/TCC.xsl index bec2af71..60d8825c 100644 --- a/src/main/resources/org/jpeek/metrics/TCC.xsl +++ b/src/main/resources/org/jpeek/metrics/TCC.xsl @@ -38,25 +38,34 @@ SOFTWARE. + + + + - + diff --git a/src/test/java/org/jpeek/MetricsTest.java b/src/test/java/org/jpeek/MetricsTest.java index d0767c15..5e76c8a5 100644 --- a/src/test/java/org/jpeek/MetricsTest.java +++ b/src/test/java/org/jpeek/MetricsTest.java @@ -143,7 +143,8 @@ public static Collection targets() { new Object[] {"OneVoidMethodWithoutParams", "LCOM3", 1.0d}, new Object[] {"OverloadMethods", "LCOM3", 0.25d}, new Object[] {"TwoCommonAttributes", "LCOM3", 1.0d}, - new Object[] {"WithoutAttributes", "LCOM3", 0.0d} + new Object[] {"WithoutAttributes", "LCOM3", 0.0d}, + new Object[] {"MethodMethodCalls", "TCC", 0.2d} ); } diff --git a/src/test/resources/org/jpeek/samples/MethodMethodCalls.java b/src/test/resources/org/jpeek/samples/MethodMethodCalls.java new file mode 100644 index 00000000..ae380728 --- /dev/null +++ b/src/test/resources/org/jpeek/samples/MethodMethodCalls.java @@ -0,0 +1,19 @@ +public final class MethodMethodCalls { + private int num; + + public int methodOne() { + return this.num++; + } + + public void methodTwo() { + this.methodFour(); + } + + public void methodThree() { + this.methodFour(); + } + + public int methodFour() { + return this.num /= 2; + } +} From 5e90b2a0d733c80a95ab9388874b426df8306642 Mon Sep 17 00:00:00 2001 From: George Aristy Date: Wed, 14 Feb 2018 16:53:52 -0400 Subject: [PATCH 2/3] (#120) TCC: establishing relations between methods when both call a 3rd method of the class --- src/main/resources/org/jpeek/metrics/TCC.xsl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/resources/org/jpeek/metrics/TCC.xsl b/src/main/resources/org/jpeek/metrics/TCC.xsl index 60d8825c..cd07fb43 100644 --- a/src/main/resources/org/jpeek/metrics/TCC.xsl +++ b/src/main/resources/org/jpeek/metrics/TCC.xsl @@ -38,7 +38,7 @@ SOFTWARE. - + @@ -58,20 +58,20 @@ SOFTWARE. - + - - - - + + + + - + From 8ce5057d1bb96fb37ef3cf8fe4db87699eaf9542 Mon Sep 17 00:00:00 2001 From: George Aristy Date: Thu, 15 Feb 2018 14:58:33 -0400 Subject: [PATCH 3/3] (#120) TCC Revised after these notes were taken: https://github.com/yegor256/jpeek/issues/120#issuecomment-365953921 --- src/main/resources/org/jpeek/metrics/TCC.xsl | 34 +++++++++++-------- src/test/java/org/jpeek/MetricsTest.java | 3 +- .../org/jpeek/samples/MethodMethodCalls.java | 19 ----------- 3 files changed, 22 insertions(+), 34 deletions(-) delete mode 100644 src/test/resources/org/jpeek/samples/MethodMethodCalls.java diff --git a/src/main/resources/org/jpeek/metrics/TCC.xsl b/src/main/resources/org/jpeek/metrics/TCC.xsl index cd07fb43..18879aac 100644 --- a/src/main/resources/org/jpeek/metrics/TCC.xsl +++ b/src/main/resources/org/jpeek/metrics/TCC.xsl @@ -38,8 +38,17 @@ SOFTWARE. - - + + + + @@ -49,22 +58,14 @@ SOFTWARE. #156 is fixed. The ops for fields must be properly filtered to ensure that they belong to the enclosing class. --> - - - + - - - + + @@ -75,7 +76,9 @@ SOFTWARE. - 00 + + 0 + @@ -83,6 +86,9 @@ SOFTWARE. + + + diff --git a/src/test/java/org/jpeek/MetricsTest.java b/src/test/java/org/jpeek/MetricsTest.java index c2dc64ee..0c235232 100644 --- a/src/test/java/org/jpeek/MetricsTest.java +++ b/src/test/java/org/jpeek/MetricsTest.java @@ -145,7 +145,8 @@ public static Collection targets() { new Object[] {"OverloadMethods", "LCOM3", 0.25d}, new Object[] {"TwoCommonAttributes", "LCOM3", 1.0d}, new Object[] {"WithoutAttributes", "LCOM3", 0.0d}, - new Object[] {"MethodMethodCalls", "TCC", 0.2d} + new Object[] {"Foo", "TCC", 1.0d}, + new Object[] {"MethodsWithDiffParamTypes", "TCC", 0.2d} ); } diff --git a/src/test/resources/org/jpeek/samples/MethodMethodCalls.java b/src/test/resources/org/jpeek/samples/MethodMethodCalls.java deleted file mode 100644 index ae380728..00000000 --- a/src/test/resources/org/jpeek/samples/MethodMethodCalls.java +++ /dev/null @@ -1,19 +0,0 @@ -public final class MethodMethodCalls { - private int num; - - public int methodOne() { - return this.num++; - } - - public void methodTwo() { - this.methodFour(); - } - - public void methodThree() { - this.methodFour(); - } - - public int methodFour() { - return this.num /= 2; - } -}