Оценка программного обеспечения¶
Оценка программного обеспечения — совокупность методов, процедур и метрик, применяемых для определения качества, надёжности, производительности, безопасности и экономической эффективности программного продукта. Оценка может проводиться как на этапе разработки, так и после выпуска, и служит основой для принятия решений о пригодности, доработке или замене программного обеспечения.
¶Цели и задачи
Основные цели оценки:
- определение соответствия продукта заявленным требованиям и стандартам;
- выявление дефектов, уязвимостей и узких мест производительности;
- сравнение альтернативных решений при выборе ПО;
- обоснование затрат на разработку, сопровождение и закупку;
- прогнозирование надёжности и сроков эксплуатации.
Оценка отвечает на вопросы: работает ли система корректно, насколько она безопасна, какова стоимость владения, соответствует ли она ожиданиям пользователей.
¶Характеристики качества
Наиболее распространённая модель качества закреплена в стандарте ISO/IEC 25010 (серия SQuaRE), который выделяет восемь характеристик:
| Характеристика | Содержание |
|---|---|
| Функциональная полнота | Соответствие функций заявленным задачам |
| Производительность | Время отклика, пропускная способность, ресурсоёмкость |
| Совместимость | Способность работать с другими системами |
| Удобство использования | Понятность интерфейса, обучаемость |
| Надёжность | Безотказность, восстанавливаемость |
| Безопасность | Защита данных и устойчивость к атакам |
| Сопровождаемость | Простота модификации и тестирования |
| Переносимость | Работа на разных платформах |
В России применяются также ГОСТ Р ИСО/МЭК 25010 и ГОСТ 28195-89, задающие номенклатуру показателей качества программ.
¶Метрики
Количественная оценка опирается на метрики:
- Метрики кода: число строк (LOC), цикломатическая сложность Маккейба, плотность дефектов на тысячу строк.
- Метрики надёжности: среднее время наработки на отказ (MTBF), интенсивность отказов, вероятность безотказной работы.
- Метрики производительности: время отклика, число транзакций в секунду, загрузка процессора и памяти.
- Метрики Холстеда: оценка объёма и сложности программы через число операторов и операндов.
- Функциональные метрики: количество функциональных точек (метод FPA).
¶Методы оценки
¶Статические методы
Анализ выполняется без запуска программы: рецензирование кода, автоматический статический анализ, проверка соответствия стандартам кодирования. Инструменты — SonarQube, PVS-Studio, Coverity.
¶Динамические методы
Требуют исполнения программы: модульное, интеграционное, системное и нагрузочное тестирование, профилирование. Применяются фреймворки JUnit, Selenium, JMeter.
¶Экспертные методы
Основаны на суждениях специалистов: метод Дельфи, метод анализа иерархий, экспертные опросы. Используются, когда количественные данные ограничены.
¶Экономические методы
Оценивают совокупную стоимость владения (TCO), возврат инвестиций (ROI), стоимость сопровождения. Учитывают затраты на лицензии, обучение, инфраструктуру.
¶Этапы проведения
- Постановка целей и выбор критериев.
- Сбор исходных данных (документация, код, результаты тестов).
- Измерение показателей.
- Сравнение с эталоном или требованиями.
- Формирование заключения и рекомендаций.
¶Оценка в жизненном цикле
На этапе проектирования оценивают архитектуру и риски; при разработке — качество кода и тестовое покрытие; перед выпуском — готовность к эксплуатации; в процессе сопровождения — деградацию и необходимость модернизации. Стандарты серии ISO/IEC 12207 и ГОСТ Р ИСО/МЭК 12207 регламентируют процессы жизненного цикла, включая оценку.
¶Инструменты и стандарты
Распространённые средства: системы непрерывной интеграции (Jenkins, GitLab CI), платформы тестирования, анализаторы кода, системы управления дефектами. Нормативную базу образуют стандарты ISO/IEC 25000, IEEE 1061 (метрики качества), ГОСТ 28195-89, ГОСТ Р ИСО/МЭК 9126.
¶Критика и ограничения
Метрики не всегда отражают реальную ценность продукта: большой объём кода не означает высокое качество, а низкая сложность — надёжность. Экспертные оценки субъективны, статический анализ даёт ложные срабатывания. Комплексная оценка требует сочетания методов и учёта контекста эксплуатации.
¶Значение
Оценка ПО снижает риски сбоев, особенно в критических системах — авионике, медицине, финансовом секторе. Она служит инструментом контроля качества, планирования ресурсов и обоснования инвестиций в информационные технологии.
Источники: ISO/IEC 25010, ISO/IEC 25000, IEEE 1061, ГОСТ 28195-89, ГОСТ Р ИСО/МЭК 12207, ГОСТ Р ИСО/МЭК 9126.