Когда вы можете измерить, то о чем вы говорите, и выразить это в числах, вы знаете кое-что об этом; но если вы не можете измерить это и выразить в числах, ваше знание скудно и неудовлетворительно.
Лорд Кельвин
Введение
Процессы разработки, приобретения и внедрения сложных систем, к которым относятся в частности программные комплексы, должны находится под жестким управленческим контролем. В настоящее время практически во всех организациях обеспечивается контроль важнейших характеристик, связанных с производством и использованием программных продуктов, таких как время, финансовые средства, ресурсы и т.п. Однако в большинстве случаев вне пределов сферы контроля оказывается наиболее важная характеристика программных продуктов, ради которой, собственно и осуществляются затраты времени, финансовых средств и ресурсов – это качество продукта, поскольку «невозможно контролировать то, что нельзя измерить» (“You cannot control what you cannot measure” ).
Отсутствие возможности установки полного контроля вызывает рост количества необоснованных решений, увеличивает финансовые и проектные риски, связанные с разработкой и внедрением систем.
Однако в настоящее время уже существуют организации, в которых накоплен достаточно большой опыт использования метрик в управлении качеством разрабатываемых и внедряемых программных продуктов. Использование апробированных подходов в управлении качеством разработки и внедрения крупных программных систем значительно повышает предсказуемость проектов, снижает финансовые и ресурсные издержки.
Среди используемых метрик качества программного обеспечения есть универсальные метрики, которые применимы практически ко всем видам программного обеспечения. В то же время большая часть наиболее важных метрик в успешных проектах разрабатывается индивидуально на основе особенностей проекта и характеристик предметной области.
В данном документе представлен краткий обзор современных подходов к методам численного измерения качества программных систем.
Понятие качества
Определение качества
Сейчас существует несколько определений качества, которые в целом совместимы друг с другом. Приведем наиболее распространенные:
Определение ISO: Качество - это полнота свойств и характеристик продукта, процесса или услуги, которые обеспечивают способность удовлетворять заявленным или подразумеваемым потребностям [61].
Определение IEEE: Качество программного обеспечения - это степень, в которой оно обладает требуемой комбинацией свойств [58].
Многомерность качества
Общее качество программной системы включает в себя на верхнем уровне ряд составляющих, которые должны быть приняты во внимание при управлении качеством (рис. 1 [2]).
Рис. 1. Многомерность качества
Составляющие качества информационной системы:
- Качество инфраструктуры (infrastructure quality): качество аппаратного и поддерживающего программного обеспечения (например, качество операционных систем, компьютерных сетей и т.п.).
- Качество программного обеспечения (software quality): качество программного обеспечения информационной системы.
- Качество данных (data quality): качество данных, использующихся информационной системой на входе.
- Качество информации (information quality): качество информации, продуцируемое информационной системой.
- Качество административного управления (administrative quality) – качество менеджмента, включая качество бюджетирования, планирования и календарного контроля.
- Качество сервиса (service quality) – качество обучения, системной поддержки и т.п.
Кроме перечисленных составляющих качества должно быть принято во внимание качество обслуживаемого бизнес процесса.