|
| 1 | +Aibolit is a recommender system that helps improve the quality of Java classes. |
| 2 | +The recommendations are learned from OSS Java projects using ML methods. |
| 3 | +Aibolit provides ranked recommendations for each specific Java class, |
| 4 | +which differs Aibolit from others style checkers and makes it unique. |
| 5 | + |
| 6 | +Aibolit is an extendable system, allowing anyone to add new patterns and to |
| 7 | +increase the training dataset and thus improve the precision and usefulness |
| 8 | +of recommendations. Aibolit can also be used as a framework for analysis of |
| 9 | +patterns and to decide whether any pattern, however subjective it is, is an anti- or a pro-pattern |
| 10 | +with respect to a particular quality metric. As a complementary result, |
| 11 | +we contribute a 100K+ dataset of patterns and metrics calculated for Java classes. |
| 12 | + |
| 13 | +The first version of Aibolit is relatively simple and there is room |
| 14 | +for improvement. If the anti-pattern has found, we recommend to fix all instances |
| 15 | +of the pattern in the code. Instead, we may consider each specific occurrence of the pattern. |
| 16 | +We may exploit its relative position in the structure of the code, rather than just count |
| 17 | +the frequency. Moreover, Aibolit inspects each Java class independently. But |
| 18 | +we might consider the relations between classes in the future. Furthermore, |
| 19 | +Aibolit's prediction model relies on patterns only. In order to improve the model, |
| 20 | +we have to think about additional features, for example, information about |
| 21 | +project domain or used frameworks. |
| 22 | + |
| 23 | +Aibolit is a firm step toward the next generation of tools to control |
| 24 | +and improve software quality. It is a complementary tool for |
| 25 | +product owners who already use tools to manage software quality. |
| 26 | + |
| 27 | + |
| 28 | + |
0 commit comments