Evaluation of a Prototype Identifying Unnecessary Code

27 views
Skip to first unread message

Roman Haas

unread,
Feb 13, 2017, 7:11:09 AM2/13/17
to Jenkins Developers
Dear Jenkins developers,

you are working on an amazing project and I am sure you are investing a lot of time to keep it up and running! 

I am researching in the field of software maintenance and I implemented a tool to identify unnecessary code in code bases using a static code analysis. The aim of my work is to support developers like you in deleting parts of the system that are not needed anymore, resulting in less wasted maintenance time due to maintaining irrelevant code. The hypothesis of my work is that stable and decentral classes are good candidates for unnecessary code and could be taken care of in a future clean-up of the software system.

I evaluated my work on the history of some open source systems and the results are promising. Nevertheless, I would like to extend my evaluation using the feedback of developers. It would be great if you could help me with your expert knowledge about your system.

Using my tool, I generated some candidates for unnecessary code for your software system, i.e. classes or even whole packages that may be unnecessary and therefore could be deleted. Unfortunately, I am not able to classify whether the recommendations are helpful. You could help me a lot by taking a look at the suggestions (I generated ten of them for you) and answering one simple question for each of them ("Do you consider the suggested file(s) or package(s) as unnecessary?"). I estimate that you do not need to invest more than 10-15 minutes into this evaluation. In addition, I hope that the 10-15 minutes also pay off for you when my work supports you in maintaining and maybe even cleaning up your project.

In the attachment, you find a file that lists ten suggestions for unnecessary code in your code base. Each suggestion consists of one or more files or packages; if there are several elements they are part of the same package. Please use the link to the evaluation form in the attached file to provide your feedback.

Please do not hesitate to ask me if there are any questions regarding my research, the prototype in general or the suggestions for your project.

I am looking forward to your feedback! Thank you very much for your help and interest in my work.

Best regards,

Roman Haas
Master's Student at the Technical University of Munich
Student E-Mail: first<DOT>last<AT>tum.de
suggestions.txt

Daniel Beck

unread,
Feb 13, 2017, 7:34:29 AM2/13/17
to jenkin...@googlegroups.com

> On 13.02.2017, at 13:11, 'Roman Haas' via Jenkins Developers <jenkin...@googlegroups.com> wrote:
>
> In the attachment, you find a file that lists ten suggestions for unnecessary code in your code base. Each suggestion consists of one or more files or packages; if there are several elements they are part of the same package.

- (Almost) All public classes in core are potentially used by any of the 1000+ plugins.
- Besides that, even unreferenced code can be used through the extension mechanism. Read hudson.Extension Javadoc.
- For some reason, there's even interfaces with implementation in core (RunAction2) on the list. This makes no sense.

Given these obvious problems, I haven't checked every item on the list, and I won't

> … use the link to the evaluation form in the attached file to provide [my] feedback.


Baptiste Mathus

unread,
Feb 13, 2017, 8:17:01 AM2/13/17
to Jenkins Developers
Hello Roman,

To add to Daniel answer, IOW, if you want to have something that would start to be meaningful, you need to basically scan every single repository of https://github.com/jenkinsci/

Then that would provide interesting data, though it would still be insufficient because some things could still be used by unknown plugins out there, Jenkins being designed with extensibility at heart.

Cheers

2017-02-13 13:34 GMT+01:00 Daniel Beck <m...@beckweb.net>:


--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/ACCD90F1-0D7F-4514-97EB-5DDBA3A4674A%40beckweb.net.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages