... | ... | @@ -206,3 +206,295 @@ The response includes TD in minutes, TD in currency, number of bugs, number of v |
|
|
|:------------:|:---------------------------------------------------------------:|:--------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
|
|
| projectID | The name of the project. The name should be the same as the name that given through the analysis phase. | Yes | String |
|
|
|
| language | The programming language of the software project that needs to be analyzed. | Yes | String | Accepted strings are: java and c. For c++ projects use c.
|
|
|
|
|
|
|
|
|
**Interest Summary**
|
|
|
|
|
|
Interest summary includes interest metrics at project level.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve pre analysed data in project level for the project with ID ‘Neurasmus’ and language ‘c’. The metrics are the same for Java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/interestSummary/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
The response includes interest metrics in project level. These metrics are: interest and principal in currency, breaking point, and interest probability.
|
|
|
```
|
|
|
{
|
|
|
"interestSummary":{
|
|
|
"name":"Neurasmus",
|
|
|
"totalInterest":42.90899808743728,
|
|
|
"totalPrincipal":4808.523,
|
|
|
"breakingPoint":112.06327843408256,
|
|
|
"interestProbability":0.11447368421052631
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**Interest Indicators**
|
|
|
|
|
|
Interest indicators includes interest metrics at artefact level.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve pre analysed data in artefact level for the project with ID ‘Neurasmus’ and language ‘c’. The metrics are NOT the same for Java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/interestIndicators/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response format is like a table (columns, rows). The response includes interest metrics for C/C++ language. These metrics are: interest, interest probability, lines of code, cyclomatic complexity, number of functions, comments density, fan-out and lack of cohesion between lines. The metrics are NOT the same for Java projects. Java language is treated as OOP language so the metrics are different. The response format is the same just with different metrics. The metrics for Java are: interest, interest probability, MPC, DIT, NOCC, RFC, LCOM, WMC, DAC, NOM, LOC, NOP, REM and CPM. For an explanation of each metric please check D3.1.
|
|
|
```
|
|
|
{
|
|
|
"interestIndicators":{
|
|
|
"columns":[
|
|
|
{
|
|
|
"label":"Artifact",
|
|
|
"field":"name"
|
|
|
},
|
|
|
{
|
|
|
"label":"Interest",
|
|
|
"field":"Interest"
|
|
|
},
|
|
|
{
|
|
|
"label":"Interest Probability",
|
|
|
"field":"IP"
|
|
|
},
|
|
|
{
|
|
|
"label":"Lines of Code",
|
|
|
"field":"LOC"
|
|
|
},
|
|
|
{
|
|
|
"label":"Cyclomatic Complexity",
|
|
|
"field":"CC"
|
|
|
},
|
|
|
{
|
|
|
"label":"Number of Functions",
|
|
|
"field":"NoF"
|
|
|
},
|
|
|
{
|
|
|
"label":"Comments Density",
|
|
|
"field":"CD"
|
|
|
},
|
|
|
{
|
|
|
“label":"Fan-Out",
|
|
|
"field":"Coupling"
|
|
|
},
|
|
|
{
|
|
|
“label":"Lack of Cohesion between Lines",
|
|
|
"field":"Cohesion"
|
|
|
}
|
|
|
],
|
|
|
"rows":[
|
|
|
{
|
|
|
"name":"imd-emulator/api.cpp",
|
|
|
"LOC":93,
|
|
|
"CC":15,
|
|
|
"NoF":11,
|
|
|
"CD":11.4,
|
|
|
"IP":0,
|
|
|
“Interest”:0,
|
|
|
“Coupling":1,
|
|
|
"Cohesion":58
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**Interest Probability Ranking**
|
|
|
|
|
|
Interest probability ranking is the ranking for a specific project among the other projects in terms of interest probability.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve interest probability ranking for the project with ID ‘Neurasmus’ and language ‘c’. Same output for java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/interestProbabilityRanking/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response is a value between 0 and 1. The interest probability for this project among the others is 88%.
|
|
|
```
|
|
|
{
|
|
|
"interestProbabilityRank":0.8888888888888888
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**Interest Ranking**
|
|
|
|
|
|
Interest ranking is the ranking for a specific project among the other projects in terms of interest.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve interest ranking for the project with ID ‘Neurasmus’ and language ‘c’. Same output for java projects.
|
|
|
{GET} http://195.251.210.147:7070/interestRanking/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response is a value between 0 and 1. The interest for this project among the others is 55%.
|
|
|
```
|
|
|
{
|
|
|
“interestRank":0.5555555555555556
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**Interest Line Chart**
|
|
|
|
|
|
Interest at project level for each version.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve interest per version for the project with ID ‘Neurasmus’ and language ‘c’. Same output for java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/lineChartInterestTD/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response includes the interest of the project for each version. For projectID = ‘Neurasmus’ there are 9 version, so the sample response has 9 rows.
|
|
|
```
|
|
|
{
|
|
|
"lineChartInterestTD":{
|
|
|
"values":[
|
|
|
0,
|
|
|
51.044956239316235,
|
|
|
35.780203211501686,
|
|
|
73.0571630280236,
|
|
|
66.29283265492943,
|
|
|
81.88532319924747,
|
|
|
69.39658459607544,
|
|
|
69.47329963903428,
|
|
|
42.90899808743728
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**Principal Line Chart**
|
|
|
|
|
|
Principal at project level for each version.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve principal per version for the project with ID ‘Neurasmus’ and language ‘c’. Same output for java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/lineChartPrincipalTD/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response includes the principal of the project for each version. For projectID = ‘Neurasmus’ there are 9 version, so the sample response has 9 rows.
|
|
|
```
|
|
|
{
|
|
|
"lineChartPrincipalTD":{
|
|
|
"values":[
|
|
|
1590.3705,
|
|
|
1647.6330000000003,
|
|
|
1685.8080000000002,
|
|
|
3299.0834999999997,
|
|
|
2863.1249999999995,
|
|
|
3017.352,
|
|
|
2953.2179999999994,
|
|
|
3325.0425,
|
|
|
4808.523
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**Breaking Point Line Chart**
|
|
|
|
|
|
Breaking Point at project level for each version.
|
|
|
|
|
|
**Sample Request**
|
|
|
|
|
|
In this example, we want to retrieve breaking point per version for the project with ID ‘Neurasmus’ and language ‘c’. Same output for java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/lineChartBreakingPointTD/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response includes the breaking point of the project for each version. For projectID = ‘Neurasmus’ there are 9 version, so the sample response has 9 rows.
|
|
|
```
|
|
|
{
|
|
|
"lineChartBreakingPointTD":{
|
|
|
"values":[
|
|
|
null,
|
|
|
32.27807645235961,
|
|
|
47.11566309545415,
|
|
|
45.15756379336168,
|
|
|
43.18905808269308,
|
|
|
36.848508158880044,
|
|
|
42.55566779243213,
|
|
|
47.860725160256976,
|
|
|
112.06327843408256
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
**Cumulative Interest Line Chart**
|
|
|
|
|
|
Cumulative Interest at project level for each version.
|
|
|
|
|
|
**Sample Request**
|
|
|
In this example, we want to retrieve cumulative per version for the project with ID ‘Neurasmus’ and language ‘c’. Same output for java projects.
|
|
|
|
|
|
{GET} http://195.251.210.147:7070/cumulativeInterestLineChart/search?projectID=Neurasmus&language=c
|
|
|
|
|
|
Headers: -
|
|
|
|
|
|
Authorization: -
|
|
|
|
|
|
**Response**
|
|
|
|
|
|
The response includes the cumulative interest of the project for each version. For projectID = ‘Neurasmus’ there are 9 version, so the sample response has 9 rows.
|
|
|
```
|
|
|
{
|
|
|
"cumulativeInterestLineChart":{
|
|
|
"values":[
|
|
|
0,
|
|
|
51.044956239316235,
|
|
|
86.82515945081792,
|
|
|
159.8823224788415,
|
|
|
226.17515513377094,
|
|
|
308.0604783330184,
|
|
|
377.45706292909387,
|
|
|
446.93036256812815,
|
|
|
489.83936065556543
|
|
|
]
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
## Design-Level Refactorings Service
|
|
|
|
|
|
|