University of Tuebingen Lehrstuhl Kognitive Systeme, Prof Dr. Zell
print version HomeJOELib >PMD Offline
 
Home
Introduction
Users/Publications
Screenshots
JOELib Tutorial
JOELib2 Tutorial
JOELib API
JOELib2 API
Download
Mailing lists
License
Acknowledgements
Links
 
JOELib@FM
JOELib@SF
PMD Online
PMD Offline
CVS Repository
 
Research at WSI-RA
Software at WSI-RA
WSI-RA Department
Faculty
University
 

NCSS-Statistic

The following figure shows the Non-Commentary Source Statements (NCSS) for the JOELib project.

Non-Commentary Calculated with JavaNCSS

JOElib contains also directly modified source code from other developers: for example the modified CML code of Egon Willighagen (joelib.io.types.cml), the modified 2D rendering of Dr. Christoph Steinbeck (joelib.gui.render) and other packages like Acme or com.obrador which are part of the source tree. All details are given below and can be found in the header of the source code files and in the utilities section of the tutorial. All binary libraries used are not listed at all, although their functionality is used.

So yes, the idea of open source is to use other source code, too. This will avoid to invent the wheel twice, but will this also improve the software design ? I say: "Only if there is time to redesign it!" See details given below:

 

Software engineering - Redesign using Eclipse, PMD and CAP

The definition of the software engineering problem is given in the german script "Softwaretechnik" by Prof. Klaeren.

English readers should refer an english book and can get a feeling for this problem by requesting the Encyclopedia Britannica for the terms: system engineering and engineering:

"Engineering is based principally on physics, chemistry, and mathematics and their extensions into ... thermodynamics, ... and systems analysis. A great body of special knowledge is associated with engineering; preparation for professional practice involves extensive training in the application of that knowledge. ..."

"Systems engineering is ... a technique for applying knowledge from other branches of engineering and disciplines of science in effective combination ..."

So sooner or later the functionality will grow and grow, also the complexity and the dependencies. So beside the functionality the quality of the software can be measured using different metrics available in the PMD project. This extensive statistic was introduced after the 04-06-21 release, so you can see that we are now trying to reduce the PMD warnings :-)

Release NCSS size (zip) [MB] dupl. code (c=200)
    basic braces codesize controv. coupling finalizers imports naming strictex. strings unused    
2002                            
2002-05-05 24350 66 188 232 1194 162 53 46 2405 33 117 185 3.08 5
2002-07-04 23424 68 320 250 1295 175 59 71 3935 33 117 300 3.27 7
2002-07-15 22309 68 400 255 1331 175 59 73 3991 33 117 300 3.28 9
2002-08-19 22833 75 417 256 1386 176 59 86 4096 45 121 315 3.45 9
2002-10-07 24209 71 401 259 1365 176 59 70 4032 33 117 301 3.29 8
2002-10-20 23186 72 407 261 1372 177 59 71 4063 33 118 304 3.30 9
2002-10-27 23471 74 436 262 1393 181 59 78 4102 35 118 311 3.82 10
2002-11-17 25512 79 471 270 1436 195 59 81 4188 35 119 317 3.89 10
2002-12-12 25535 80 471 270 1436 195 59 81 4189 35 119 317 3.89 11
2003                            
2003-01-20 34568 N.A. N.A. 338 1755 228 59 102 5016 60 142 424 4.38 20
2003-01-31 34843 95 610 338 1763 227 61 102 5034 60 142 431 4.40 19
2003-03-02 36981 117 820 364 1908 254 61 103 5135 61 158 199 4.47 24
2003-03-04 37466 118 822 368 1930 256 61 66 5152 61 158 199 4.49 24
2003-03-18 37714 118 842 368 1935 256 61 66 5160 66 159 198 4.51 24
2003-04-04 38736 129 887 380 1985 258 61 83 5269 67 159 213 5.00 24
2003-04-14 38980 N.A. N.A. 384 2002 259 61 83 5278 67 161 214 4.54 24
2003-04-23 40916 132 1106 413 2090 262 63 94 5471 68 166 221 4.60 24
2003-05-19 41856 136 1160 419 2129 266 63 94 5529 68 170 229 4.67 24
2003-06-25 42380 N.A. N.A. 427 2158 267 63 72 5568 68 172 232 5.13 24
2003-07-21 43690 141 1283 448 2265 270 63 93 5658 80 173 247 4.82 24
2003-08-04 43630 135 1302 452 2240 271 63 78 5672 82 173 189 4.94 16
2003-08-26 43963 136 N.A. 494 2245 272 63 66 5707 82 173 190 5.00 19
2003-10-13 49036 151 N.A. 535 2356 291 63 79 6355 96 184 259 5.99 19
2003-11-17 49325 151 4 539 2385 294 63 81 6377 96 184 261 6.10 19
2003-12-10 49459 151 8 541 2391 296 63 85 6383 96 185 263 6.10 19
2004                            
2004-01-14 49601 151 N.A. 542 2397 296 63 85 6395 96 185 262 6.11 19
2004-01-16 52559 154 N.A. 579 2543 299 63 96 6616 97 194 234 6.19 27
2004-03-16 53640 157 3 584 2570 306 63 94 6646 101 220 230 6.39 25
2004-03-19 54142 158 7 596 2582 309 63 95 6667 101 220 232 6.40 27
2004-03-23 54392 158 28 599 2605 309 63 95 6688 110 222 233 6.41 27
2004-05-28 55753 162 38 615 2658 312 63 100 6806 107 224 249 6.43 28
2004-06-21 56107 163 40 619 2661 318 63 98 6830 107 224 251 6.47 28
2004-07-25 56026 30 1 623 2666 317 54 35 6824 106 193 239 6.8 40
2004-08-27 56415 30 2 625 2684 323 54 35 6842 106 196 239 7.7 40
JOELib2 Requires Java J2SE5.0 and JavaNCSS has no 1.5. support. The optional Weka library is now part of the default release.
2005                            
2005-01-10 N.A. 2 8 501 1891 35 4 51 6231 131 82 51 9.88 43
2005-01-18 N.A. 2 1 431 1834 26 N.A. 11 5937 129 76 48 10.2 43

 

Furthermore the source code was analyzed using the Code Analysis Plugin (CAP) to measure the stability metric (lower distance values to the instability/abstractness line are better). We used Eclipse for the refactoring and we are definitely sure that we would never had started without it. The interface extraction, getter/setter generation and the dependecny resolving is absolutely fantastic and highly important.

 
Stability metric JOELib
Stability metric JOELib2

 

 

 

 

Cross-links to larger images are available for JOELib and JOELib2

 
JOELib release 2004-08-27
JOELib2 release 2005-01-18
Package
Entry
Distance
Distance
 
1
71
25
joelib.molecule / joelib2.molecule
2
6
7
joelib.desc / joelib2.feature
3
46
8
joelib.data / joelib2.data
4
53
27
joelib.util / joelib2.util
5
22
13
joelib.molecule.types / joelib2.molecule.types
6
48
63
joelib.desc.result / joelib2.feature.result
7
28
5
joelib.io / joelib2.io
8
79
36
joelib.util. iterator / joelib2.util.iterator
9
83
35
wsi.ra.tool
10
18
62
joelib.desc.types / joelib2.feature.types.atomlabel
11
95
35
joelib.util.types / joelib2.util.types
...
...
...
...

 

 


Last changes: 08.12.2010, 17:03 CET (UTC/GMT +1 hour) wegner.
http://www.ra.cs.uni-tuebingen.de/software/joelib/statistics.html
2003 University of Tübingen, Germany