2011-10-17T12:10:51
PT8H23M40S
89
2018-05-09T17:15:57.683500852
LibreOffice/6.0.4.1$Linux_X86_64 LibreOffice_project/00m0$Build-1

# Data-Mining for Software Engineering:Nearest Neighbors

1247
-853
29797
21692
view1
false
false
false
true
true
true
false
false
true
1500
false
//////////////////////////////////////////8=
//////////////////////////////////////////8=
false
true
false
0
1
false
true
false
4
0
-3555
-413
29105
28361
2540
2540
254
254
254
1
254
1
false
1500
true
false
true
$(brandbaseurl)/share/palette%3B$(user)/config/standard.sob
0
$(brandbaseurl)/share/palette%3B$(user)/config/standard.soc
$(brandbaseurl)/share/palette%3B$(user)/config/standard.sod
1270
false
en
US
$(brandbaseurl)/share/palette%3B$(user)/config/standard.sog
true
$(brandbaseurl)/share/palette%3B$(user)/config/standard.soh
false
false
true
true
false
true
false
false
true
false
false
false
false
false
$(brandbaseurl)/share/palette%3B$(user)/config/standard.soe
false
4
false
0
low-resolution
DCP770CW
false
6
true

<number><number><number><number>

<number>

Click to edit the title text formatTitelmasterformat durch Klicken bearbeiten

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline LevelTextmasterformate durch Klicken bearbeiten

<number><number><number><number>

<number>

Click to edit the title text formatTitelmasterformat durch Klicken bearbeiten

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline LevelTextmasterformate durch Klicken bearbeiten

Zweite Ebene

Dritte Ebene

Vierte Ebene

<number><number><number><number>

<number>

Click to edit the title text formatTitelmasterformat durch Klicken bearbeiten

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline LevelTextmasterformate durch Klicken bearbeiten

Zweite Ebene

Dritte Ebene

Vierte Ebene

<number><number><number><number>

<number>

Click to edit the title text formatTitelmasterformat durch Klicken bearbeiten

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline LevelTextmasterformate durch Klicken bearbeiten

Zweite Ebene

Dritte Ebene

Vierte Ebene

<number><number><number><number>

Spoon: What is it?

Spoon parses Java source code and creates an Abstract Syntax Tree (AST)

Usage for static analysis:

Eg Micro/Design pattern detection

Eg Architectural rule checking

Eg Metrics

Usage for source-to-source code transformation:

Eg Automatic instrumentation & logging

Eg Automatic refactoring

Eg Automatic repair

Very powerful API (better than JavaParser)

Spoon: Community?

Old and mature

2200+ commits since 2006

Active on Github

500+ stars, 100 forks

39 contributors, 700+ issues

Top software engineering

Continuous integration, strong test discipline

100% of changes are code-reviewed (PR)

Emphasis on API stability over time

Spoon Example: Detecting public fields

public class PublicFieldProcessorWarning

extends AbstractProcessor<CtField<?>>{

@Override

public void process(CtField<?> field) {

if (field.hasModifier(ModifierKind.PUBLIC)) {

getEnvironment().report(this, Severity.WARNING, field,

"Found a public field");

}

}

}

$ java spoon.Launcher -g -i src/main/java -p PublicFieldProcessorWarning