6 CONCLUSIONS
In this work, we proposed a new software quality
estimation approach, which employs information
about the popularity of source code components to
model their quality as perceived by developers.
Upon removing outliers using a one-class classifier,
we apply Principal Feature Analysis techniques to
effectively determine the most informative metrics
lying in five categories: complexity, coupling,
documentation, inheritance, and size metrics. The
metrics are subsequently given to five neural
networks that output quality scores. Our evaluation
indicates that our system can be effective for
estimating the quality of software components as
well as for providing a comprehensive analysis on
the aforementioned five source code quality axes.
Future work lies in several directions. At first,
the design of our target variable can be further
investigated for different scenarios and different
application scopes. In addition, various feature
selection techniques and models can be tested to
improve on current results. Finally, we could assess
the effectiveness of our methodology by means of a
user study, and thus further validate our findings.
REFERENCES
Alves Tiago L., Christiaan Ypma, and Joost Visser (2010).
Deriving metric thresholds from benchmark data. In
2010 IEEE International Conference on Software
Maintenance (ICSM), pp. 1–10.
Cai, T., Lyu, M., Wong, K.-F. and Wong, M. (2001).
ComPARE: A generic quality assessment environment
for component-based software systems. In 2001
International Symposium on Information Systems and
Engineering (ISE’ 2001), pp. 348–354.
Chidamber S. R. and Kemerer C. F. (1994). A Metrics
Suite for Object-Oriented Design. IEEE Trans.
Software Eng., vol. 20, no. 6, pp. 476–493.
Diamantopoulos, T., Thomopoulos, K. and Symeonidis A.
(2016). QualBoa: Reusability-aware Recommendations
of Source Code Components. In 13th International
Conference on Mining Software Repositories (MSR
'16). ACM, pp. 488–491.
Ferreira, K. A., Bigonha, M. A., Bigonha, R. S., Mendes,
L. F., & Almeida, H. C. (2012). Identifying thresholds
for object-oriented software metrics. Journal of
Systems and Software, 85(2), 244–257.
Foucault M., Palyart, M., Falleri, J. R., & Blanc X. (2014).
Computing contextual metric thresholds. In 29th ACM
Annual Symposium on Applied Computing, pp. 1120–1125.
Hegedűs, P., Bakota, T., Ladányi, G., Faragó, C., &
Ferenc, R. (2013). A drill-down approach for measuring
maintainability at source code element level.
Electronic Communications of the EASST, 60, 1–21.
Heitlager, I., Kuipers, T., & Visser, J. (2007). A practical
model for measuring maintainability. In IEEE 6th
International Conference on the Quality of Information
and Communications Technology, pp. 30–39.
ISO/IEC 25010:2011 (2011). [Retrieved March, 2017].
[Online]. Available: https://www.iso.org/obp/ui/#iso:
std:iso-iec:25010:ed-1:v1:en.
Kanellopoulos Y., Antonellis P., Antoniou D., Makris C.,
Theodoridis E., Tjortjis C. and Tsirakis N. (2010).
Code Quality Evaluation Methodology Using The
ISO/IRC 9126 Standard. Int. Journal of Software
Engineering & Applications, vol. 1, no. 3, pp. 17–36.
Kitchenham B. and Pfleeger S. L. (1996). Software
quality: The elusive target. IEEE Software, vol. 13, no.
1, pp. 12–21.
Le Goues C. and Weimer W. (2012). Measuring code
quality to improve specification mining. In IEEE
Transactions on Software Engineering, pp. 175–190.
Lu, Y., Cohen, I., Zhou, X. S. and Tian, Q. (2007). Feature
selection using principal feature analysis. In 15th ACM
International Conference on Multimedia, pp. 301-304.
Miguel, J. P., Mauricio, D., & Rodríguez, G. (2014). A
review of software quality models for the evaluation of
software products, arXiv preprint arXiv:1412.2977.
Papamichail, M., Diamantopoulos, T. and Symeonidis, A.
(2016). User-Perceived Source Code Quality
Estimation Based on Static Analysis Metrics. 2016
IEEE International Conference on Software Quality,
Reliability and Security (QRS), Vienna, pp. 100–107.
Pfleeger S. L. and Atlee J. M. (2009). Software
Engineering: Theory and Practice, Fourth Edition,
Pearson Education India.
Samoladas, I., Gousios, G., Spinellis, D., & Stamelos, I.
(2008). The SQO-OSS quality model: measurement
based open source software evaluation. In IFIP
International Conference on Open Source Systems, pp.
237–248. Springer US.
Schmidt C. (2015). Agile Software Development Teams,
First Edition, Springer Publishing Company.
Shatnawi R., Li W., Swain J., & Newman, T. (2010).
Finding software metrics threshold values using ROC
curves. Journal of software maintenance and
evolution: Research and practice, 22(1), 1–16.
SourceMeter (2016). [Retrieved March, 2017]. [Online].
Available: https://www.sourcemeter.com/
Taibi F. (2014). Empirical Analysis of the Reusability of
Object-Oriented Program Code in Open-Source Software.
International Journal of Computer, Information, System
and Control Engineering, vol. 8, no. 1, pp. 114–120.
Washizaki, H., Namiki, R., Fukuoka, T., Harada, Y. and
Watanabe, H. (2007). A Framework for Measuring
and Evaluating Program Source Code Quality. In
International Conference on Product Focused Soft-
ware Process Improvement, pp. 284–299.
Zhong, S., Khoshgoftaar, T. M. and Seliya, N. (2004).
Unsupervised Learning for Expert-Based Software
Quality Estimation. In 8th International Symposium on
High Assurance Systems Engineering, pp. 149–155.