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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Разработка программного обеспечения
Процесс разработки ПО
Ключевые процессы

Анализ • Проектирование • Программирование • Документирование • Тестирование

Модели

Итеративная • Спиральная • Каскадная • V-Model • Dual Vee Model

Методологии

Agile (XP, Lean, Scrum, FDD и др.) • Cleanroom • OpenUP • RAD • RUP • MSF • DSDM • TDD

Сопутствующие дисциплины

Конфигурационное управление • Управление проектами • Управление требованиями • Обеспечение качества

Ка́чество програ́ммного обеспечения — способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (ISO/IEC 25000:2014)[1].

Другие определения:

  • весь объём признаков и характеристик программ, который относится к их способности удовлетворять установленным или предполагаемым потребностям (ГОСТ Р ИСО/МЭК 9126-93, ISO 8402:94)[2][3];
  • степень, в которой система, компонент или процесс удовлетворяют потребностям или ожиданиям заказчика или пользователя (IEEE Std 610.12-1990)[4].

Характеристики качества по стандарту ISO/IEC 25010:2011[править | править вики-текст]

Стандарт ISO/IEC 25010:2011 (ГОСТ Р ИСО/МЭК 25010-2015)[5] определяет модель качества продукта, которая включает восемь характеристик верхнего уровня:

В этом стандарте модель качества продукта (англ. software product quality model) рассматривается отдельно от субъективного качества в использовании (англ. quality in use model), которое может сильно отличаться для различных стейкхолдеров[6]. Модель включает следующие характеристики верхнего уровня[5]:

  • результативность;
  • производительность;
  • удовлетворенность;
  • свобода от риска;
  • покрытие контекста.

Роберт Гласс в известной книге «Факты и заблуждения профессионального программирования» утверждает, что большинство профессиональных разработчиков согласны с выделением семи показателей качества как основных[7]:

Альтернативные подходы[править | править вики-текст]

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

Так, американский консультант по программной инженерии Том Демарко предложил при оценке качества программного обеспечения учитывать, что «качество программного продукта является показателем того, насколько он меняет мир к лучшему»[8]. Подобный подход означает, что функциональные возможности и степень удовлетворенности пользователей программного продукта важнее структурных характеристик при определении качества программного обеспечения.

В свою очередь, преподаватель психологии и антропологии разработки программного обеспечения Джеральд Вайнберг в своей работе 1992 года Quality Software Management: Volume 1, Systems Thinking дал определение качества как «значимого для какого-либо человека»[9][10], подчеркивая тем самым, что понятие качества является по своей природе субъективным — разные люди будут оценивать качество одного и того же программного обеспечения по-разному. Одной из сильных сторон этого определения являются вопросы, на которые должны ответить команды разработчиков программного обеспечения, такие как «Кто те люди, которые будут оценивать наше программное обеспечение?» и «Что будет ценным для них?».

В последнее время появляются новые подходы к формализации моделей качества программного обеспечения, такие как SQUALE и Quamoco[11], предусматривающие прямую интеграцию определений атрибутов качества и их измерений. В данных моделях производится декомпозиция основных сложных атрибутов качества (таких, как надежность и ремонтопригодность), которая может быть проведена с введением дополнительных характеристик, что позволяет сделать эти атрибуты более измеримыми и, следовательно, управляемыми. Эти модели качества были применены в промышленных условиях, но пока не получили широкого распространения.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Software quality — capability of software product to satisfy stated and implied needs when used under specified conditions: ISO/IEC 25000:2014(en) Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Guide to SQuaRE
  2. ГОСТ Р ИСО/МЭК 9126-93. Оценка программной продукции. Характеристики качества и руководства по их применению
  3. ISO 8402:94. Управление качеством и обеспечение качества. Словарь
  4. The degree to which a system, component, or process meets customer or user needs or expectations: IEEE Std 610.12-1990. IEEE Standard Glossary of Software Engineering Terminology
  5. 1 2 ISO/IEC 25010:2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models
    ГОСТ Р ИСО/МЭК 25010-2015 Информационные технологии. Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов
  6. Wijnholds, et al, 2016.
  7. Роберт Гласс. Факты и заблуждения профессионального программирования. = Facts and Fallacies of Software Engineering. — 2004. — ISBN 5-93286-092-8; 978-5-93286-092-2.
  8. DeMarco, T., Management Can Make Quality (Im)possible, Cutter IT Summit, Boston, April 1999
  9. Weinberg, Gerald M. (1992), Quality Software Management: Volume 1, Systems Thinking, New York, NY: Dorset House Publishing, с. 7 
  10. Weinberg, Gerald M. (1993), Quality Software Management: Volume 2, First-Order Measurement, New York, NY: Dorset House Publishing, с. 108 
  11. Wagner, Stefan (2015). «Operationalised product quality models and assessment: The Quamoco approach». Information and Software Technology 62: 101–123. DOI:10.1016/j.infsof.2015.02.009.

Литература[править | править вики-текст]

  • ГОСТ 28195-89 — Оценка качества программных средств
  • Gijs Wijnholds, Zeeger Lubsen, Sylvan Rigal, Joost Visser. Building Software Teams. — O'Reilly Media, Inc., 2016.

Ссылки[править | править вики-текст]