qalight
Центр подготовки
IT специалистов

База знаний

Качество программного обеспечения

В различных источниках терминология характеристик качества программного обеспечения, отличаются друг от друга. Авторы создали разные модели качества со своим набором характеристик и атрибутов, и они  могут быть полезны для обсуждения, планирования и оценки самого качества программных продуктов.

В 1979 году Crosby определил качество как «соответствие требованиям» («conformance to requirements»), а Juran и Gryna в 1970 году определили качество как «пригодность к использованию» («fitness for use»).

«Соответствие требованиям» предполагает, что требования должны быть настолько четко определены, что не могут быть поняты и интерпретированы некорректно. Любые несоответствия должны рассматриваться как дефекты – отсутствие качества.

«Пригодность к использованию» принимает во внимание требования и ожидания конечных пользователей продукта, т.е. продукт или предоставляемый сервис будет удобным для их нужд. Однако разные пользователи могут использовать продукт по-разному. А это означает, что продукт должен обладать максимально разнообразными вариантами использования. Согласно определению Juran, каждый вариант использования — это характеристика качества и все они могут быть классифицированы по категориям, в качестве параметров пригодности к использованию. Другими словами, делает ли данный продукт то, в чем я нуждаюсь, облегчает ли он мою работу, могу ли я его использовать так, как мне удобно.

Проблема в том, что специфицированные и собранные требования это обычно лишь часть всех реальных потребностей и ожиданий заказчика. Очень часто неявные требования настолько очевидны для заказчика или пользователя, что он даже не предполагает, что они неизвестны разработчикам. А разработчики в свою очередь не готовы брать на себя ответственность за то, что не описано в требованиях. Где же выход из этого круга?

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

Заказчик будет доволен и приведет с собой еще заказчиков, только в том случае, если купленный продукт будет полностью удовлетворять его реальным и жизненным потребностям, как специфицированным, так и нет.

Но все это не на столько абстрактно на сколько может показаться с первого раза. Существует набор стандартов ISO 9000, регулирующий общие принципы обеспечения качества во всех отраслях. Наиболее важными стандартами в разработке ПО являются:

  •  ISO 9000:2000 Quality management systems — Fundamentals and vocabulary;
  • ISO 9001:2000 Quality management systems — Requirements. Models for quality assurance in design, development, production, installation, and servicing;
  • ISO 9004:2000 Quality management systems — Guidelines for performance improvements;
  • ISO/IEC 90003:2004 Software engineering — Guidelines for the application of ISO 9001:2000 to computer software.

 

Так же в каждой компании могут быть разработаны свои стандарты качества, отвечающие конкретной специфики работы и соответственно ее требованиям.

Что же все таки с определением? На сегодняшний день их существует много, и все они друг на друга крайне похожи, можете сами в этом убедится:
[1061-1998 IEEE Standard for Software Quality Metrics Methodology]

Качество ПО — это степень, в которой ПО обладает требуемой комбинацией свойств.

 

[IEEE Std 610.12-1990]

Качество ПО — степень, в которой система, компонент или процесс удовлетворяют потребностям или ожиданиям заказчика или пользователя.

 

[ISO/IEC 25000:2014]

Качество ПО — способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям.

 

[ISO 8402:1994 Quality management and quality assurance]

Качество ПО — это совокупность характеристик ПО, относящихся к его способности удовлетворять установленные и предполагаемые потребности.

 

Характеристики качества ПО

Функциональность (Functionality) — определяется способностью ПО решать задачи, которые соответствуют зафиксированным и предполагаемым потребностям пользователя, при заданных условиях использования ПО. Т.е. эта характеристика отвечает за то, что ПО работает исправно и точно, функционально совместимо, соответствует стандартам отрасли и защищено от несанкционированного доступа.

Надежность (Reliability) – способность ПО выполнять требуемые задачи в обозначенных условиях на протяжении заданного промежутка времени или указанное количество операций. Атрибуты данной характеристики – это завершенность и целостность всей системы, способность самостоятельно и корректно восстанавливаться после сбоев в работе, отказоустойчивость.

Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО для пользователя.

Эффективность (Efficiency) – способность ПО обеспечивать требуемый уровень производительности в соответствие с выделенными ресурсами, временем и другими обозначенными условиями.

Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться, тестироваться, изменяться для исправления дефектов, для реализации новых требований, для облегчения дальнейшего обслуживания и адаптироваться к именующемуся окружению.

Портативность (Portability) – характеризует ПО с точки зрения легкости его переноса из одного окружения (software/hardware) в другое.

Модель качества программного обеспечения

На данный момент наиболее распространена и используется многоуровневая модель качества программного обеспечения, представленная в наборе стандартов ISO 9126. На верхнем уровне выделено 6 основных характеристик качества ПО, каждую из которых определяют набором атрибутов, имеющих соответствующие метрики для последующей оценки (см. диаграмму).

Модель качества программного обеспечения (ISO 9126-1)

1