Метрика программного обеспечения
Материал из Википедии — свободной энциклопедии
Ме́трика програ́ммного обеспе́чения (англ. software metric) — это мера, позволяющая получить численное значение некоторого свойства программного обеспечения или его спецификаций.
Поскольку количественные методы хорошо зарекомендовали себя в других областях, многие теоретики и практики информатики пытались перенести данный подход и в разработку программного обеспечения. Как сказал Том ДеМарко, «вы не можете контролировать то, что не можете измерить».
[править] Метрики
Набор используемых метрик включает:
- порядок роста (имеется в виду анализ алгоритмов в терминах асимптотического анализа и O-нотации)
- количество строк исходного кода
- цикломатическая сложность
- анализ функциональных точек
- количество ошибок на строку кода
- покрытие кода
- количество классов и интерфейсов
- метрики программного пакета от Роберта Сесиль Мартина
- связность
[править] Критика
Потенциальные недостатки похода, на которые нацелена критика:
- Неэтичность: Утверждается, что неэтично сводить оценку работы человека к нескольким числовым параметрам и по ним судить о производительности. Менеджер может назначить наиболее талантливых программистов на сложнейший участок работы; это означает, что разработка этого участка займёт наибольшее время и породит наибольшее количество ошибок, из-за сложности задачи. Не зная об этих трудностях, другой менеджер по полученным показателям может решить, что программист сделал свою работу плохо.
- Замещение «управления людьми» на «управление цифрами», которое не учитывает опыт сотрудников и их другие качества
- Искажение: Процесс измерения может быть искажён за счёт того, что сотрудники знают об измеряемых показателях и стремятся оптимизировать эти показатели, а не свою работу. Например, если количество строк исходного кода является важным показателем, то программисты будут стремиться писать как можно больше строк и не будут использовать способы упрощения кода, сокращающие количество строк.
- Неточность: Нет метрик, которые были бы одновременно и значимы и достаточно точны. Количество строк кода — это просто количество строк, этот показатель не даёт представление о сложности решаемой проблемы. Анализ функциональных точек был разработан с целью лучшего измерения сложности кода и спецификации, но он использует личные оценки измеряющего, поэтому разные люди получат разные результаты.