Top Banner
Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 1 Style checker for JAVA A style checker for JAVA and its application at HU 25.08.05
32

Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Dec 18, 2015

Download

Documents

Matilda Eaton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 1

Style checker for JAVA

A style checker for JAVA and

its application at HU

25.08.05

Page 2: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 2

Style checker for JAVA

1. Introduction

2. How to use AssessStyle

3. Experience at HU in WS 04 /05and related work

Page 3: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 3

Style checker for JAVA

Humboldt University Berlin1st Semester

Introduction to object-oriented programming with Java:

• lectures: 64 hours• exercises on paper: 32 hours

• lab work: Java programs

about 200 students involved,3 students work as correctors

Page 4: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 4

Style checker for JAVA

Students final grading covers correctness and programming

style

Students final grading covers correctness and programming

style

Assessment of Java programs at HU by correctors- assistance for correctors and students final grading -

Java program

compilability correctness programming style

Javacompiler

apply theprogram topreparedtest cases

short manualinspection

Page 5: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 5

Style checker for JAVA

Tool AssessStyle- assistance for correctors and students -

Java program

compilability correctness programming style

Javacompiler

apply theprogram topreparedtest cases

short manualinspection

ToolAssessStyle(since WS 04/05)

Source: N. Rocca Diploma thesis, supervisor: K. Bothe

Page 6: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 6

Style checker for JAVA

• missing empty line• missing white space • wrong indentation• switch without ‘default‘• method too long• missing comment• too short identifiers• . . .

Tool ‘AssessStyle‘: Style guide checks

48 criterias (check types) of good programming style, e. g.

criterias(check types)

criterias(check types)

Page 7: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 7

Style checker for JAVA

• White spaces and other optical aspects, e.g.missing empty linemissing white spacewrong indentation

• Statements, e. g.switch without ‘default‘

• Size, length, complexity, e. g.method too long

• Comments, e. g.missing comment

• Names and declarations, e. g.too short identifiers

Tool ‘AssessStyle‘: Style guide checks

48 criterias (checks) of good programming style in the fields, e. g.

in additional, you can group criterias

tomistake types

in additional, you can group criterias

tomistake types

Page 8: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 8

Style checker for JAVA

How to use AssessStyle

1. Introduction

2. How to use AssessStyle1. Load Java program into the tool

2. Tool automatically checks for style guides

3. Some criteria are checked semi-automaticallyand some manually

4. Tool automatically computes a metric and a markaccording to conformance to style guidelines

5. Tool configuration

3. Experience at HU in WS 04 /05and related work

Page 9: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 9

Style checker for JAVA

User interface of AssessStyle Set of mistake types

bad nameD

Page 10: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 10

Style checker for JAVA

Example of AssessStyle (1) Set of mistake types

bad nameD

D

Page 11: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 11

Style checker for JAVA

Example of AssessStyle (2)

bad nameD

D

Page 12: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 12

Style checker for JAVA

Example of AssessStyle (3)

D

Page 13: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 13

Style checker for JAVA

How to use AssessStyle

1. Introduction

2. How to use AssessStyle1. Load Java program into the tool

2. Tool automatically checks for style guides

3. Some criteria are checked semi-automaticallyand some manually

4. Tool automatically computes a metric and a markaccording to conformance to style guidelines

5. Tool configuration

3. Experience at HU in WS 04 /05and related work

Page 14: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 14

Style checker for JAVA

There are tree kinds of checks:

automatic

semi automatic

manual

search algorithms are implemented; they are applied

generally

search algorithms are implemented;

the user decides on their application

search algorithms are not implemented; the

user can mark mistakes manually

Page 15: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 15

Style checker for JAVA

Example of AssessStyle - manual (1)

bad name

bad commentK

Page 16: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 16

Style checker for JAVA

Example of AssessStyle - manual (2)

bad name

bad commentK

K

drag & drop

Page 17: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 17

Style checker for JAVA

How to use AssessStyle

1. Introduction

2. How to use AssessStyle1. Load Java program into the tool

2. Tool automatically checks for style guides

3. Some criteria are checked semi-automaticallyand some manually

4. Tool automatically computes a metric and a markaccording to conformance to style guidelines

5. Tool configuration

3. Experience at HU in WS 04 /05and related work

Page 18: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 18

Style checker for JAVA

Tool computes a metric P and a mark

Parameters are:1. The weight of particular mistake-types, e. g.

missing comment 4 missing empty line 2 bad indentation 1 file too long 9

2. The relation between the mark and the values of P

P = h(f) * g(f)f F

weight of error f

number of errors fin 100 LOC

Set of all mistake-types

mark total number P

1 0 – 202 20 – 403 41 – 604 61 – 805 81 – 1006 > 100

Page 19: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 19

Style checker for JAVA

Tool has found these mistakes

Page 20: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 20

Style checker for JAVA

How to use AssessStyle

1. Introduction

2. How to use AssessStyle1. Load Java program into the tool

2. Tool automatically checks for style guides

3. Some criteria are checked semi-automaticallyand some manually

4. Tool automatically computes a metric and a markaccording to conformance to style guidelines

5. Tool configuration

3. Experience at HU in WS 04 /05and related work

Page 21: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 21

Style checker for JAVA

1. Selection and configuration of a proper set of style errors for the lab (mistake types and detailed checks)

2. Weight of particular mistake types

3. Define the mark depending on the value of P

Tool configuration

Page 22: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 22

Style checker for JAVA

Tool configuration (1) Set of mistake types

you can configure all these with the

tool

Page 23: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 23

Style checker for JAVA

1. Selection and configuration of a proper set of style errors for the lab (mistake types and detail checks)

2. Weight of particular mistake types, e. g. missing commend 4 missing empty line 2 bad indentation 1 file too long 9

3. Define the mark depending on the value of P

Tool configuration (2, 3)

total number P mark

0 – 20 120 – 40 241 – 60 361 – 80 481 – 100 5> 100 6

you can configure all these whith the

tool

you can configure all these with the

tool

Page 24: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 24

Style checker for JAVA

1. Introduction

2. How to use AssessStyle

3. Experience at HU in WS 04 /05and related work

Page 25: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 25

Style checker for JAVA

Experience at HU in WS 04 / 05

used by correctors without too much effort used by students as a pre-check of their solutions accepted by correctors and students programming style improved during the semester

Page 26: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 26

Style checker for JAVA

Programming style improved during the semester

Figure 1: first Java exercise

style error points (P)

a significant amount of students has a lot of style error points

den

sity

(~

stud

ents

)

Page 27: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 27

Style checker for JAVA

Programming style improved during the semester

Figure 2: third Java exercise

style error points (P)

now, almost all students have very

few error points

den

sity

(~

stud

ents

)

Page 28: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 28

Style checker for JAVA

Related work: style check and style assessment

Program Operating system GUI File Types Aim of application

AssessStyle independent yes Java display of style errors, assessment of style

Checkstyle independent no Java display of style errors

Artistic Style independent no C, C++, new formatting C#, Java

JStyle windows yes Java display of style errors, metrics

Praktomat web-interface web- Java, function tests and display interface C++ u. a. of style errors, manuell assisted assessment

Jalote-Prog. ? ? C assessment of style

Page 29: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 29

Style checker for JAVA

Related work: style check and style assessment

Program Operating system GUI File Types Aim of application

AssessStyle independent yes Java display of style errors, assessment of style

Checkstyle independent no Java display of style errors

Artistic Style independent no C, C++, new formatting C#, Java

JStyle windows yes Java display of style errors, metrics

Praktomat web-interface web- Java, function tests and display interface C++ u. a. of style errors, manuell assisted assessment

Jalote-Prog. ? ? C assessment of style

Very good, but- commercial (1000 dollar / licence)- no assessment+ metrics (e. g. Halstead, …)

Page 30: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 30

Style checker for JAVA

Related work: style check and style assessment

Program Operating system GUI File Types Aim of application

AssessStyle independent yes Java display of style errors, assessment of style

Checkstyle independent no Java display of style errors

Artistic Style independent no C, C++, new formatting C#, Java

JStyle windows yes Java display of style errors, metrics

Praktomat web-interface web- Java, function tests and display interface C++ u. a. of style errors, manuell assisted assessment

Jalote-Prog. ? ? C assessment of style

It checks very many programming style criterias and

it is open source, but- no GUI- no assessment

Page 31: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 31

Style checker for JAVA

Related work: style check and style assessment

Program Operating system GUI File Types Aim of application

AssessStyle independent yes Java display of style errors, assessment of style

Checkstyle independent no Java display of style errors

Artistic Style independent no C, C++, new formatting C#, Java

JStyle windows yes Java display of style errors, metrics

Praktomat web-interface web- Java, function tests and display interface C++ u. a. of style errors, manuell assisted assessment

Jalote-Prog. ? ? C assessment of style

AssessStyle is an enhancement from Checkstyle!+ GUI+ assessment+ manual checks+ statistics, …

Page 32: Style checker for JAVA Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.

Baile Herculane, 28.8. – 3.9.2005 U. Sacklowski, Dept. of Comp. Sc., HU-Berlin 32

Style checker for JAVA

Thank y u f r y ur attenti n!