Araştırma Makalesi
BibTex RIS Kaynak Göster

SOLID İlkelerinin Microsoft VS Code Metriğine Etkisinin Deneysel Olarak Değerlendirilmesi

Yıl 2018, Cilt: 9 Sayı: 34, 7 - 24, 01.09.2018
https://doi.org/10.5824/1309-1581.2018.4.001.x

Öz

Yazılımın bakımı, kullanıcı ihtiyaçlarındaki değişiklikler, altyapıda meydana gelen değişiklikler, sistemin çalışma koşullarındaki değişiklikler, öngörülemeyen hataların ortaya çıkması gibi nedenlerle gereklidir. Yazılımın bakım işlemleri için uygunluğu maliyeti düşürmede önemli bir etkendir. Sadece temel nesne tabanlı programlama kavramlarını kullanmak, uygulamalarımızda sürdürülebilir kod yazdığımızı göstermez. SOLID gibi nesneye yönelik tasarım prensipleri bağımlılıkları azaltmak ve yazılım bakımını artırmak ile ilgilidir. ISO/IEC 9126 bakım yapılabilirlikle ilgilidir fakat ISO/IEC 9126 ölçüme ilişkin tim girdilerin bir arada mı yoksa ayrı olarak mı kullanılmaları gerektiği konusunda net değildir. Nitekim, ISO/IEC 9126 pratik olarak veya deneysel tarzda yazılım ölçümlerinin nasıl yapılacağı, bu ölçümlerin nasıl basitçe toplanacağı, ölçümlerin nasıl değiştirilebileceği konusunda rehberlik sağlamaz. Bu çalışmada, Visual Studio VS kod metrik aracı yardımıyla ISO / IEC bakım yapılabilirliğin her alt-özelliği değerlendirilmiştir. Bu değerlendirmenin odağı sürdürülebilirlik ve analiz edilebilirlik, test edilebilirlik, değiştirilebilirlik ve kararlılık gibi alt özellikler üzerine odaklanmaktadır. Bir analiz yapmadan önce, ISO / IEC 9126 standardının bakım yapılabilirlik bölümünün her bir alt-karakteristiği özelliklerin ölçümü için beş VS kod metriğine eşlenmiştir. Bu çalışma, nesneye yönelik tasarım ilkelerinin SOLID ISO / IEC, VS kod metriği ve SOLID'i ilişkilendirerek kodun bakım yapılabilirliği, karmaşıklığı ve esnekliği üzerindeki etkisini gösterir.

Kaynakça

  • Sandi Metz (Duke University) , “SOLID Object-Oriented Design”, Talk given at the 2009 Gotham Ruby Conference in May, 2009. Online at http://www.youtube.com/watch?v=v-2yFMzxqwU
  • Walid Al-Ahmad, “A framework for conceptual modeling in OOP”, Journal of the Franklin Institute, 2006
  • Kostas Zotos, “Object-oriented design principles in mathematics”, Applied Mathematics and Computation, 2006
  • Ignatios Deligiannis, Martin Shepperd, Manos Roumeliotis, Ioannis Stamelos, “An empirical investigation of an object-oriented design heuristic for maintainability”, The journal of system and software, 2001
  • Magiel Bruntink, Arie van Deursen, “An empirical study into class testability”, The Journal of System and Software, 2006
  • Gabriele Bavota, Andrea De Lucia, Rocco Oliveto , “Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures”, The Journal of Systems and Software, 2011
  • David Lievens, William Harrison, “Abstraction over implementation structure with symmetrically encapsulated multimethods”, Science of Computer Programming, 2013
  • Alexander Chatzigeorgiou, Nikolaos Tsantalis, Ignatios Deligiannis , “An empirical study on students ability to comprehend design patterns”, Computers & Education, 2008
  • Gabriale Arevalo, Stephane Ducasse, Silvia Gordillo, Oscar Nierstrasz , “Generating a catalog of unanticipated schemas in class hierarchies using Fomal Concept Analysis”, Information and Software Technology, 2010
  • Vassilis E. Zafeiris, Sotiris H. Poulias, N.A. Diamantidis, E.A. Giakoumakis, “Automated refactoring of super-class method invocations to the Template Method design pattern”, Information and Software Technology, 2016
  • Mahmood Ghaleb Al-Bashayreh, Nor Laily Hashim, Ola Taiseer Khorma, “Context- Aware Mobile Patient Monitoring Framework Development”, 2013 International Conference on Electronic Engineering and Computer Science, 2013
  • Jehad Al Dallal , “Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics”, information and Software Technology, 2012
  • Marios Fokaefs, Nikolaos Tsantalis, Eleni Stroulia, Alexander Chatzigeorgiou, “Identification and application of Extract Class refactorings in object-oriented systems”, Journal of Systems and Software, 2012
  • Harmeet Singh, Syed Imtiyaz Hassan , “Effect of SOLID Design Principles on Quality of Software: An Empirical Assessment”, International Journal of Scientific & Engineering Research, April- 2015
  • Paul Oman and Jack Hagemeister. “Metrics for assessing a software system’s maintainability”. Proceedings International Conference on Software Mainatenance (ICSM), 1992, pp 337-344.
  • www.microsoft.com, 01.08.2017
  • ISO 9126-1 Software Engineering - Product Quality - Part 1: Quality Model, 2001.
  • Hiyam Al-Kilidar, Karl Cox, Barbara Kitchenham, “The Use and Usefulness of the ISO/IEC 9126 Quality Standard”, International Symposium on Empirical Software Engineering, 2005
  • ISO/IEC 25010:2011, http://www.iso.org/iso/catalogue_ detail.htm?csnumber=35733, 01.08.2017
  • Morteza Asadi, Hassan Rashidi, “A Model for Object Oriented Software Maintainability Measurement”, I.J. Intelligent Systems and Application (MECS), 2016
  • https://docs.microsoft.com/tr-tr/visualstudio/code-quality/code-metrics-values, 01.08.2017
  • Ho-Won Jung, Seung-Gweon Kim, Chang-Shin Chung, “Measuring Software Product Quality: A Survey of ISO/IEC 9126”, IEEE Software, vol. 21, pp. 88-92, 2004
  • Meine J.P. van der Meulen, Miguel A. Revilla, “Correlations between Internal Software Metrics and Software Dependability in a Large Population of Small C/C++ Programs”, 18th IEEE International Symposium on Software Reliability Engineering, 2007
  • Galorath, D.D., “Software total ownership costs: development is only job one” Softw. Tech. News, 23–32, 2008
  • Chen, J.-C., Huang, S.-J., “An empirical analysis of the impact of software development problem factors on software maintainability” System Software. 82, 981–992, 2009
  • Péter Hegedűsa, István Kádárb, Rudolf Ferenc, Tibor Gyimóthyb, “Empirical evaluation of software maintainability based on a manually validated refactoring dataset”, Information and Software Technology, 2017
  • M. Fowler, “Refactoring: Improving the Design of Existing Code”, Addison-Wesley, 1999.
  • Gábor Szoke, Gábor Antal, Csaba Nagy, Rudolf Ferenc, Tibor Gyimóthy, “Empirical study on refactoring large-scale industrial systems and its effects on maintainability”, The Journal of Systems and Software, 2016
  • Gabriele Bavotaa, Andrea De Luciab, Massimiliano Di Pentac, Rocco Olivetod, Fabio Palombab, “An experimental investigation on the innate relationship between quality and refactoring”, The Journal of Systems and Software, 2015
  • M. Gatrell, S. Counsell, “The effect of refactoring on change and fault-proneness in commercial C# Software”, Science of Computer Programming, 2014
  • Jehad Al Dallal, “Identifying refactoring oppurtunities in object oriented code: A systematic literatur review”, Information and Software Technology, 2014

An Experimental Evaluation of The Effect of SOLID Principles to Microsoft vs Code Metrics

Yıl 2018, Cilt: 9 Sayı: 34, 7 - 24, 01.09.2018
https://doi.org/10.5824/1309-1581.2018.4.001.x

Öz

Software maintenance is necessary for reasons such as changes in user needs, changes in the operating conditions of the system due to changes in the infrastructure, the occurrence of unforeseen errors. The suitability of the software for maintenance operations is a significant influence in reducing the cost. Using only basic object oriented programming concepts do not show that we are writing maintainable code in our applications. Object oriented design principles such SOLID are about reducing dependencies and increasing maintainability. ISO/IEC 9126 is about maintainability but ISO/IEC 9126 is not clear about whether all inputs to measurement should be used together in conjunction or whether they should be used as appropriate or available. Indeed, ISO/IEC 9126 provides no guidance, heuristics, rules of thumb, or any other means to show how to trade off measures, how to weight measures or even how to simply collate them. In this study each sub-characteristic of ISO/IEC maintainability with help of Visual Studio VS code metric tool is assessed. The focus of this assessment is on maintainability and its sub-characteristics like analyzability, testability, changeability and stability. Before doing an analysis, each sub-characteristics of maintainability part of ISO/IEC 9126 standard are mapped to five VS code metrics for measurement of characteristics. This work shows the effect of object oriented design principles SOLID to the maintainability, complexity and flexibility of the code while associating ISO/IEC, VS code metric and SOLID.

Kaynakça

  • Sandi Metz (Duke University) , “SOLID Object-Oriented Design”, Talk given at the 2009 Gotham Ruby Conference in May, 2009. Online at http://www.youtube.com/watch?v=v-2yFMzxqwU
  • Walid Al-Ahmad, “A framework for conceptual modeling in OOP”, Journal of the Franklin Institute, 2006
  • Kostas Zotos, “Object-oriented design principles in mathematics”, Applied Mathematics and Computation, 2006
  • Ignatios Deligiannis, Martin Shepperd, Manos Roumeliotis, Ioannis Stamelos, “An empirical investigation of an object-oriented design heuristic for maintainability”, The journal of system and software, 2001
  • Magiel Bruntink, Arie van Deursen, “An empirical study into class testability”, The Journal of System and Software, 2006
  • Gabriele Bavota, Andrea De Lucia, Rocco Oliveto , “Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures”, The Journal of Systems and Software, 2011
  • David Lievens, William Harrison, “Abstraction over implementation structure with symmetrically encapsulated multimethods”, Science of Computer Programming, 2013
  • Alexander Chatzigeorgiou, Nikolaos Tsantalis, Ignatios Deligiannis , “An empirical study on students ability to comprehend design patterns”, Computers & Education, 2008
  • Gabriale Arevalo, Stephane Ducasse, Silvia Gordillo, Oscar Nierstrasz , “Generating a catalog of unanticipated schemas in class hierarchies using Fomal Concept Analysis”, Information and Software Technology, 2010
  • Vassilis E. Zafeiris, Sotiris H. Poulias, N.A. Diamantidis, E.A. Giakoumakis, “Automated refactoring of super-class method invocations to the Template Method design pattern”, Information and Software Technology, 2016
  • Mahmood Ghaleb Al-Bashayreh, Nor Laily Hashim, Ola Taiseer Khorma, “Context- Aware Mobile Patient Monitoring Framework Development”, 2013 International Conference on Electronic Engineering and Computer Science, 2013
  • Jehad Al Dallal , “Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics”, information and Software Technology, 2012
  • Marios Fokaefs, Nikolaos Tsantalis, Eleni Stroulia, Alexander Chatzigeorgiou, “Identification and application of Extract Class refactorings in object-oriented systems”, Journal of Systems and Software, 2012
  • Harmeet Singh, Syed Imtiyaz Hassan , “Effect of SOLID Design Principles on Quality of Software: An Empirical Assessment”, International Journal of Scientific & Engineering Research, April- 2015
  • Paul Oman and Jack Hagemeister. “Metrics for assessing a software system’s maintainability”. Proceedings International Conference on Software Mainatenance (ICSM), 1992, pp 337-344.
  • www.microsoft.com, 01.08.2017
  • ISO 9126-1 Software Engineering - Product Quality - Part 1: Quality Model, 2001.
  • Hiyam Al-Kilidar, Karl Cox, Barbara Kitchenham, “The Use and Usefulness of the ISO/IEC 9126 Quality Standard”, International Symposium on Empirical Software Engineering, 2005
  • ISO/IEC 25010:2011, http://www.iso.org/iso/catalogue_ detail.htm?csnumber=35733, 01.08.2017
  • Morteza Asadi, Hassan Rashidi, “A Model for Object Oriented Software Maintainability Measurement”, I.J. Intelligent Systems and Application (MECS), 2016
  • https://docs.microsoft.com/tr-tr/visualstudio/code-quality/code-metrics-values, 01.08.2017
  • Ho-Won Jung, Seung-Gweon Kim, Chang-Shin Chung, “Measuring Software Product Quality: A Survey of ISO/IEC 9126”, IEEE Software, vol. 21, pp. 88-92, 2004
  • Meine J.P. van der Meulen, Miguel A. Revilla, “Correlations between Internal Software Metrics and Software Dependability in a Large Population of Small C/C++ Programs”, 18th IEEE International Symposium on Software Reliability Engineering, 2007
  • Galorath, D.D., “Software total ownership costs: development is only job one” Softw. Tech. News, 23–32, 2008
  • Chen, J.-C., Huang, S.-J., “An empirical analysis of the impact of software development problem factors on software maintainability” System Software. 82, 981–992, 2009
  • Péter Hegedűsa, István Kádárb, Rudolf Ferenc, Tibor Gyimóthyb, “Empirical evaluation of software maintainability based on a manually validated refactoring dataset”, Information and Software Technology, 2017
  • M. Fowler, “Refactoring: Improving the Design of Existing Code”, Addison-Wesley, 1999.
  • Gábor Szoke, Gábor Antal, Csaba Nagy, Rudolf Ferenc, Tibor Gyimóthy, “Empirical study on refactoring large-scale industrial systems and its effects on maintainability”, The Journal of Systems and Software, 2016
  • Gabriele Bavotaa, Andrea De Luciab, Massimiliano Di Pentac, Rocco Olivetod, Fabio Palombab, “An experimental investigation on the innate relationship between quality and refactoring”, The Journal of Systems and Software, 2015
  • M. Gatrell, S. Counsell, “The effect of refactoring on change and fault-proneness in commercial C# Software”, Science of Computer Programming, 2014
  • Jehad Al Dallal, “Identifying refactoring oppurtunities in object oriented code: A systematic literatur review”, Information and Software Technology, 2014
Toplam 31 adet kaynakça vardır.

Ayrıntılar

Birincil Dil İngilizce
Bölüm Research Article
Yazarlar

Osman Turan Bu kişi benim

Ömer Özgür Tanrıöver Bu kişi benim

Yayımlanma Tarihi 1 Eylül 2018
Gönderilme Tarihi 1 Eylül 2018
Yayımlandığı Sayı Yıl 2018 Cilt: 9 Sayı: 34

Kaynak Göster

APA Turan, O., & Tanrıöver, Ö. Ö. (2018). An Experimental Evaluation of The Effect of SOLID Principles to Microsoft vs Code Metrics. AJIT-E: Academic Journal of Information Technology, 9(34), 7-24. https://doi.org/10.5824/1309-1581.2018.4.001.x