Özet:
The quality of IT software systems outlined by how well it has been designed from the internal and external points of view, also by how well the prerequisites have been met . Ease of developing and maintenance are the targeted factors that ensure successful completion and continuous use. From Steve McCall’s perspective[1], software quality characteristics can be categorized for: External and Internal factors .The external quality factors such as reliability, correctness, accuracy, reusability and integrity concern the end user. The external software quality isn’t mentioned in this study. The most reveal factors of internal software quality are maintainability, re-usability, flexibility and testability. These factors concern the developers and they ease development and maintenance also.
However, they are affected negativly by bad coding styles in the source code that is known as Code Smells. One of the important princepals in object orienred programming is to build classes with high cohesion and losely coupled. This principle can be violated by one type of code smells known as Feature Envy. In the same context of object-oriented programming, the concept of inheritance has been known as a key feature proposed to increase the amount of software reusability. However, using inheritance is not always the best solution, particularly if it is utilized in improper cases where other types of relationships would be more appropriate. One of the particular issues that violate inheritance principles is the Refused Bequest code smell.These design smells can be detected by expert developers and when they are
detected, it is very important to refactor them to bring up with a better coding design that improves the system’s code quality.
Manually searching for code smells in a large code base will take a significant amount of time. Software metrics gives a clear view of the tested software status.Metric based detection technique eases the detection task. Even new developers will have the ability to analyze and detect code flaws automatically without the need for an experts. Metrics values have the important role in modern developing procedures. Therefore automatic detection of code smells can be done in reasonable time and effort. And consecuently reflects on the software quality.
This study aims to detect some types of code smells in Java code. We have used object oriented metrics, static code analysis techniques to detect the code smells.