Назад в библиотеку

Обзор метрик и измерений программного обеспечения

Автор: Прабхьот Каур
Источник: International Journal of Computer Applications & Information Technology Vol. 9, Issue 2, July 2016 (ISSN: 2278–7720), 187–191 pp. https://www.researchgate.net/publication/323800192_A_Review_of_Software_Metric_and_Measurement
Автор перевода: Мазалов Р.А.

Аннотация

Программная инженерия — одна из доминирующих областей для исследователей компьютерных наук. Трудно охватить все аспекты любой области в одной обзорной статье. Метрика программного обеспечения — это важное понятие, которое используется для определения производительности, стоимости и эффективности различных аспектов, связанных с процессом разработки программного обеспечения. В этой статье делаются попытки продемонстрировать исследования, связанные с различными метриками и измерениями программного обеспечения. Кроме того, кратко упоминаются метрики последних программных подходов. Обсуждается роль различных ключевых исследователей, которые работали в области различных статических, динамических и объектно-ориентированных метрик. Исследование показывает, что метрики очень полезны при создании ориентированного на качество программного продукта.

Введение

Программная инженерия — одна из основных тем исследований в области компьютерных наук. Многие исследователи проводили свои исследования в этой области. Некоторыми из ключевых областей разработки программного обеспечения являются программные агенты, метрики программного обеспечения, тестирование программного обеспечения, SQA (обеспечение качества программного обеспечения), надежность программного обеспечения и т. д. Согласно существующей литературе, можно определить метрики как индикатор качества программного обеспечения. Отдать должное можно Волветрону в области показателей программного обеспечения, он проводит исследование производительности программиста с использованием концепции LOC, то есть количество строк кода. Метрику можно разделить на две категории: контрольную метрику и прогнозную метрику. Проще говоря, с помощью метрики программного обеспечения можно понять важные концепции в области разработки программного обеспечения [1] [2].

Исследователи информатики прилагают все усилия для измерения количественной информации из компонентов программного обеспечения. Метрика программного обеспечения связана с различными измерениями компьютерного программного обеспечения и его разработкой. Это помогает нам оценить эффективность различных функций программного обеспечения. Процесс измерения программного обеспечения должен иметь оптимальный методологический процесс, который измеряет, оценивает, корректирует и, наконец, улучшает процесс разработки программного обеспечения. Метрики программного обеспечения имеют дело с измерением программного продукта и процесса разработки программного продукта, а также оценивают модели и инструменты [1,4,7].

Как показано на рисунке 1, восприятие, проверка программного обеспечения, планирование, оптимизация и улучшение качества являются одними из основных целей метрик программного обеспечения. С помощью прогнозной метрики можно определить как статические, так и динамические характеристики программного обеспечения. Метрики могут определять потенциальные области программного обеспечения, которые могут привести к проблемам или ошибкам. Обнаружение этих областей на этапе их разработки снижает стоимость и позволяет избежать серьезных волновых эффектов от изменений на более поздних этапах жизненного цикла разработки [1,2,5,6,7].

На рисунке 1 представлены свойства, получаемые с помощью метрики программного обеспечения. Прогнозирующие метрики обычно связаны с программным продуктом.

Рисунок 1 — Возможности метрик ПО

Рисунок 1 — Возможности метрик ПО

Цели исследовательской работы

Одними из главных целей этой работы являются:

Обзор существующей литературы

Мин Чанг Ли и То Чанг [4] разъясняют роль измерения программного обеспечения и метрик программного обеспечения. Авторы привели список важных показателей программного обеспечения и их краткое описание. Авторы классифицируют различные показатели на основе разных точек зрения, а именно: коммерция, наблюдения, значимость, измерение и разработка программного обеспечения. Кроме того, были упомянуты различные типы методологий с их применением. Авторы обсуждают 15 различных типов методик измерения. Кроме того, они также рассматривают 24 типа метрик тестирования с их определением, формулами и эффектами.

К.П. Сринивасан и Т. Деви [5] утверждают, что очень сложно оценить валидацию метрик программного обеспечения. Авторы пытаются проверить показатели, используя различные атрибуты программных показателей. Авторы также обсуждают роль эмпирических и теоретических моделей проверки. Кроме того, обсуждаются различные свойства методов Викера, Китченмана и Браенда.

Амрит и Амриндер Сингх [6] изучают метрический анализ для двух различных алгоритмов сортировки, а именно: пузырьковая сортировка и сортировка по выбору. Авторы сравнивают различные метрики, такие как LOC, n1, n2, N1, N2, время выполнения, длина программы, плотность управления и т. д. Они обнаружили, что оба алгоритма имеют почти одинаковый LOC. Однако значения для различных показателей, таких как словарь программы, длина и объем программы, меньше при сортировке выбора по сравнению с алгоритмом пузырьковой сортировки.

Маник Шарма и Гурдев Сингх [7] выполняют анализ статических и динамических метрик, используемых для анализа времени и производительности. Авторы обсуждают статические и динамические метрики в контексте простой программы на C++. Авторы изучают разницу между количеством символов и строк кода, используемыми в трех различных подходах, а именно: итеративный, функциональный и рекурсивный подход. Авторы также разработали динамические показатели, которые называются DECT, что означает время динамического выполнения на символ.

Гурвиндер Сингх, Маник Шарма [8] обсуждают краткую информацию о предсказывающих метриках. Авторы утверждают, что предсказывающую метрику можно разделить на статическую и динамическую. Авторы также обсуждают пяти ступенчатую цель метрик программного обеспечения. Авторы различают работу статической и динамической метрики, взяв подходящий пример программы на C++.

Амджан Шайк и др. [9] обсуждают метрики и оценку качества объектно-ориентированного программного обеспечения. Авторы утверждают, что правильные исследования объектно-ориентированных метрик играют значительную роль в современном объектно-ориентированном программировании. Авторы предлагают использовать метрику программного обеспечения для анализа риска, стоимости и качества программного обеспечения. Авторы обсуждают различные объектно-ориентированные метрики, а именно: WMC, RFC, MIF, AHF, CTA, CIM и др. Авторы приходят к выводу, что новое направление в области программных метрик — это сфокусироваться на значительном улучшении качества объектно-ориентированного программного обеспечения.

Рани Гитика и Парамвир Сингх [10] написали обзорную статью, посвященную изучению метрики динамической связи для объектно-ориентированной системы. Авторы утверждают, что сцепление — один из основных параметров, позволяющих найти зависимость между двумя или более объектами. Авторы обсуждают различные метрики сцепления, разработанные разными ключевыми исследователями, а именно: метрики Якауба, метрики Митчелла и Пауэра, метрики Хассоуна, метрики Зайдмана и Демеера и др.

Р.А. Виванко, Н.З. Пицци [11] используют генетический алгоритм для измерения оптимальной комбинации различных программных метрик, которые можно использовать для объектно-ориентированных показателей. Авторы обнаруживают, что с помощью генетического алгоритма можно эффективно классифицировать различные метрики программного обеспечения, используемые в объектно-ориентированном программировании, по сравнению с другими используемыми методами.

Кристина Куэрия [12] разработала генетический алгоритм для построения метрик для коллаборативной системы. Автор использует генетический алгоритм для измерения сложности коллаборативной банковской системы.

Мрингал Сингх Рават, Арпита Миттал и Санджай Кумар Дубей [13] написали обзорную статью, чтобы определить влияние различных метрик программного обеспечения на качество программных процессов и продуктов. Авторы приходят к выводу, что в будущем использование программных метрик значительно улучшит качество программного обеспечения.

М.П. Тапалиял, Гарима Верма [14] эмпирически изучают дефекты программного обеспечения и объектно-ориентированные метрики. Авторы сосредоточились на двух разных объектно-ориентированных метриках, а именно: взвешенный метод на класс (WMC) и сцепление между классами объектов (CBO). Авторы также обнаруживают корреляцию этих двух объектно-ориентированных метрик с контекстом и размером класса.

Чен Хуэй Чоу [15] утверждает, что при разработке программного обеспечения дефекты составляют большую часть затрат на разработку программного обеспечения. Автор исследует статические и объектно-ориентированные метрики. Автор обсуждает несколько метрик программного обеспечения, используемых для измерения дефектов в модели разработки программного обеспечения.

Варун Гупта и Джитендер Кумар Чаббра [16] утверждают, что динамический анализ играет важную роль в измерении динамической метрики программного обеспечения. Прежде всего, авторы разделяют статический и динамический анализ. Кроме того, обсуждаются различные типы подходов к статическому и динамическому анализу. Авторы обнаруживают, что с помощью динамического анализа можно эффективно измерять различные объектно-ориентированные метрики. Наконец, авторы сравнивают эффективность различных методов динамического анализа, используемых для измерения метрики программного обеспечения.

Маник Шарма, Гурдев Сингх [17] обсуждают роль различных алгоритмов планирования параллельных задач. Они изучают различные метрики, связанные с алгоритмом планирования задач. Авторы исследуют два различных подхода к алгоритму планирования задач, а именно: DLS и HLFET. Они изучают различные метрики, такие как время выполнения, статический b-уровень, t-уровень, b-уровень, время ALAP и динамический уровень DLS и HLFT. Авторы обнаруживают, что использование HLFET и DLS позволяет сократить время решения проблемы по сравнению с последовательной обработкой.

Кунал Чопра и Моника Сачдева [18] рассматривают три различных проекта по оценке метрик программного обеспечения. Используя один из инструментов измерения программного обеспечения под названием NDepend, авторы вычисляют и анализируют различные показатели программного обеспечения, а именно: LOC, NBMETODS, афферентное и эфферентное сцепление, DIT, NOC, LCOM и т. д. Авторы обнаруживают, что инструмент NDepend эффективен при анализе различных типов кода.

Рисунок 2 показывает год и количество опубликованных исследовательских работ в области метрик программного обеспечения. На рисунке 3 графически представлена история публикаций. Замечено, что в 2010 году было проведено огромное количество исследований метрик программного обеспечения. Начиная с 2010 года, наблюдается падение опубликованных исследовательских работ.

Рисунок 2 — Рейтинг исселдовательских работ в области метрик ПО

Рисунок 2 — Рейтинг исселдовательских работ в области метрик ПО

Рисунок 3 — График исследовательских работ в области метрик ПО за последние годы

Рисунок 3 — График исследовательских работ в области метрик ПО за последние годы

Выводы

Метрики программного обеспечения играют важную роль в исследованиях программной инженерии и в оценке производительности программного обеспечения и используемых методов. Этот обзор написан для краткого обсуждения работ некоторых ключевых исследователей, которые внесли свой вклад в область метрик программного обеспечения. В общем, предсказывающие метрики делятся на статические и динамические. Статическая метрика имеет дело со статическими свойствами программного обеспечения, такими как количество строк кода, объем, размер и т. д. С другой стороны, динамическая метрика имеет дело со свойствами, которые появляются во время выполнения программного обеспечения или кода. Ряд авторов разработали свои собственные статические или динамические показатели для различных целей. Авторы используют концепцию метрики программного обеспечения в различных областях, например, для измерения производительности алгоритма планирования задач, оценки качества программного обеспечения, тестирования функциональности программного обеспечения и т. д.

Список использованной литературы

  1. L. J. Arthur, Measuring programmer productivity and software quality, John Wiley & Son, NY, (1985).
  2. J. H. Baumert and M. S. McWihinnet, Software measurement and the capability maturity model, Software Engineering Institute Technical Report, cMMI/SEI-92-TR, ESC-TR-92–0, (1992).
  3. K. Christensen, G. P. Fistos and C. P. Smith, A perspective on the software science, IBM systems Journal, (1988), vol. 29, no. 4, pp. 372–387.
  4. Ming Chang Lee, To Chang. 2013. Software Measurement and Software Metrics in Software Quality. International Journal of Software Engineering and Its Applications Vol. 7, No. 4, July, 2013
  5. K.P. Srinivasan, T. Devi. 2014. Software Metric Validation Methodologies in Software Engineering. International Journal of Software Engineering & Applications (IJSEA), Vol.5, No.6, November 2014.
  6. Amrit Dhillon, Amrinder Singh. 2012. Analysis of Software Metrics for Bubble Sort and Selection Sort. International Journal of Computer Applications & Information Technology Vol. 1, No.1, July 2012
  7. Manik Sharma, Gurdev Singh. 2011. Analysis of Static and Dynamic Metrics for Productivity and Time Complexity, International Journal of Computer Applications (0975 – 8887) Volume 30, No.1, September 2011
  8. Manik Sharma, Gurvinder Singh. 2011. Predictive Metric- A Comparative Study. International Journal of Computer Science and Technology (IJCST), Volume 2, Issue1, 2011.
  9. Amjan Shaik, CRK Reddy, A Damodaram. 2012. Object Oriented Software Metric and Quality Assesment: Current State of the Art. International Journal of Computer Applications. Volume 37, Number 11, 2012.
  10. Rani Geetika, Paramvir Singh. 2014. Dynamic Coupling Metrics for Object Oriented Software Systems- A Survey. ACM SIGSOFT Software Engineering Notes, Volume 39, Number 2, 2014.
  11. RA Vivanco, NJ Pizzi. 2004. Identify Effective Software Metrics using Genetic Algorithms. Canadian Conference on Electrical and Computer Engineering.
  12. Cristina CUIRIA. 2011. Using Genetic Algorithm for Building Metrics of Collaborative Systems. Informatica Economica. Volume 15, Number 1, 2011.
  13. Mringal Singh Rawat, Arpita Mittal and Sanjay Kumar Dubey. 2012. Survey on Impact of Software Metrics on Software Quality. International Journal of Advanced Computer Science and Applications, Vol. 3, No. 1, 2012
  14. M.P. Thapaliyal, Garima Verma.2010. Software Defects and Object Oriented Metrics- An Empirical Analysis. International Journal of Computer Applications. Volume 9, Issue 5, 2010.
  15. Chen Huei Chou. 2013. Metrics in Evaluating Software Defects. International Journal of Computer Applications (0975 – 8887) Volume 63– No.3, February 2013
  16. Varun Gupta, Jitender Kumar Chabbra. 2008. Measurement of Dynamic Metrics Using Dynamic Analysis of Programs. Applied Computing Conference (ACC '08), Istanbul, Turkey, May 27 -30, 2008.
  17. Manik Sharma, Gurdev Singh and Harsimran Kaur. 2012. A Study of BNP Parallel Task Scheduling Algorithms Metric’s for Distributed Database System. International Journal of Distributed and Parallel Systems (IJDPS) Vol.3, No.1, January 2012. DOI : 10.5121/ijdps.2012.3112
  18. Kunal Chopra, Monika Sachdeva. 2015. EVALUATION OF SOFTWARE METRICS FOR SOFTWARE PROJECTS. International Journal of Computers & Technology. Volume 14, No. 6, May -June, 2015