I recently found a tool for code smell detection and decided to test Universal Password Manager for bad smells. Code smells indicate weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future. JDeodorant can detect certain kinds of code smells and offer appropriate refactorings in order to remove them.
More about code smells: https://en.wikipedia.org/wiki/Code_smell
More about JDeodorant and the approach it follows for the identification of the bad smells: www.jdeodorant.org
Using the tool, I found some code smells in the source code, so I created a presentation to explain what I found and the appropriate refactorings I made in order to successfully remove some of them. It was relatively easy to remove all the feature envy code smells whereas refactoring God classes needs to take into account more factors.
Exported God class results, as JDeodorant detected, can be found here: https://app.box.com/s/341rvgnlzvd458o3ahh9pje6rmokdzzu
I would like to contribute to this project, so it would be really nice if you could read the presentation I prepared and, maybe, include some of the refactorings in the source code.
A reply would be greatly appreciated,
Panagiotis Chatziantoniou
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
How About to add Pictures In databse..
Like If I don't want to write my name and address but I have my my visiting card So I can take screenshot and add it to database...
and yes it will increase the size of database but it's ok...
if possible please add it asap...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is great work. Thanks for taking the time to take a careful look at UPM and offer ways of improving it.
There are some really good suggestions in there for improving quality and design.
What I'd suggest you do is submit a pull request, per change, to the project in Github, https://github.com/adrian/upm-swing. We can then discuss each one in turn and decide if it makes sense or not.
There are certainly some methods that could be refactored. Others may not make sense when consided in the context of overall codebase.
I expect some methods may be difficult to refactor without putting a lot of work in to change the surrounding code design. Lets see how it goes.
Thanks again
Adrian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Good to hear that you find my work useful. I followed your suggestion and submitted a pull request to the project in Github. I will try to carefully submit more so that you don't need to put a lot of work in to change the surrounding code design. I guess I will select some of the refactorings I mentioned in the presentation but the results from the code smell detection are open for everyone in the community to help. Also, keep in mind that I am new to GitHub.
Panagiotis
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, I have prepared three pull requests but I haven't submitted them yet. I have created a separate branch for each change but I would like to see if the first pull request I already submitted is merged or not. This is because I made a mistake and my first two commits were added to my master branch, so my feature branches have these commits (which might be accepted or not).
So, could you please check that pull request when you find some time?
Thank you for your understanding.
Panagiotis
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello and thank you for your great software.
I recently found a tool for code smell detection and decided to test Universal Password Manager for bad smells. Code smells indicate weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future. JDeodorant can detect certain kinds of code smells and offer appropriate refactorings in order to remove them.
More about code smells: https://en.wikipedia.org/wiki/Code_smell
More about JDeodorant and the approach it follows for the identification of the bad smells: www.jdeodorant.org
Using the tool, I found some code smells in the source code, so I created a presentation to explain what I found and the appropriate refactorings I made in order to successfully remove some of them. It was relatively easy to remove all the feature envy code smells whereas refactoring God classes needs to take into account more factors.
Exported God class results, as JDeodorant detected, can be found here: https://app.box.com/s/341rvgnlzvd458o3ahh9pje6rmokdzzu
Here is the link for the presentation: https://app.box.com/s/1c2wiby0dc1sx7hpm0l0735j9z0sq80o
The new source code after applying all the refactorings for the "feature envy" code smell can be found here: https://app.box.com/s/doobpfwk31eoveleoxyw34o51ghlzexr
I would like to contribute to this project, so it would be really nice if you could read the presentation I prepared and, maybe, include some of the refactorings in the source code.
A reply would be greatly appreciated,
Panagiotis Chatziantoniou
How About to add Pictures In databse..
Like If I don't want to write my name and address but I have my my visiting card So I can take screenshot and add it to database...
and yes it will increase the size of database but it's ok...
if possible please add it asap...
Hi Panagiotis,
This is great work. Thanks for taking the time to take a careful look at UPM and offer ways of improving it.
There are some really good suggestions in there for improving quality and design.
What I'd suggest you do is submit a pull request, per change, to the project in Github, https://github.com/adrian/upm-swing. We can then discuss each one in turn and decide if it makes sense or not.
There are certainly some methods that could be refactored. Others may not make sense when consided in the context of overall codebase.
I expect some methods may be difficult to refactor without putting a lot of work in to change the surrounding code design. Lets see how it goes.
Thanks again
Adrian
Hi Adrian,
Good to hear that you find my work useful. I followed your suggestion and submitted a pull request to the project in Github. I will try to carefully submit more so that you don't need to put a lot of work in to change the surrounding code design. I guess I will select some of the refactorings I mentioned in the presentation but the results from the code smell detection are open for everyone in the community to help. Also, keep in mind that I am new to GitHub.
Panagiotis
Hi again,
Well, I have prepared three pull requests but I haven't submitted them yet. I have created a separate branch for each change but I would like to see if the first pull request I already submitted is merged or not. This is because I made a mistake and my first two commits were added to my master branch, so my feature branches have these commits (which might be accepted or not).
So, could you please check that pull request when you find some time?
Thank you for your understanding.
Panagiotis