создатели ПО все более уверенно вторгаются на внешний рынок, а значит, для них настало время задуматься над приведением качества своих изделий и всего цикла их разработки в соответствие с международными стандартами. Но, увы, книг на русском языке, описывающих систему стандартов ISO 9000, регламентирующих этот процесс, до сих пор нет.
Так что же это такое - ISO 9000? Обстоятельный ответ, как нам представляется, содержится в книге, выпущенной известным издательством Prentice Hall PTR.
Коротко напомним, что ISO - это Международная организация по стандартизации, членами которой являются национальные службы, например Госстандарт РФ и ANSI (Американский национальный институт стандартов). Основными задачами ISO являются подготовка и публикация международных стандартов.
В первой части книги рассмотрена структура семейства стандартов ISO 9000, регламентирующих применение как программного, так и аппаратного обеспечения, рекомендации по их использованию.
Книга содержит принципиальное и структурное описания системы контроля качества. Так, ISO 9001 носит название "Системы качества. Модель гарантии качества при проектировании, разработке, инсталляции и обслуживании (сопровождении)". Это семейство стандартов содержит требования к управлению компанией. Авторы книги обращают внимание на то, что поставщик должен удовлетворять двум основным требованиям:
- все действия, оказывающие влияние на качество продукта, должны быть под контролем;
- контроль должен быть явным.
Книга содержит рекомендации по применению ISO 9001 при разработке, поставке, сопровождении ПО и описывает три составляющие: интегрированную систему качества (quality system framework), систему качества функционирования в течение жизненного цикла (quality system life-cycle activities) и систему качества, поддерживающую функционирование (quality system supporting activities).
Некоторые специфические аспекты сертификации компаний по ISO 9001 также не остались без внимания авторов. Главным образом это относится к трудностям установления приемлемости того или иного понимания элементов системы качества, например, как вписать в проектный этап лабораторную стадию разработки продукта или работу с прототипами, как быть со старыми программными продуктами, включаемыми в состав новых, и т. п.
Сравнению с другими системами контроля качества ПО авторы отвели главу, содержащую материалы по системам Питсбургского института разработки ПО (Software Engineering Institute in Pittsburgh), IEEE 730, AQAP-110 и 150, MIL-STD-498.
Система контроля качества ПО в книге определяется как организационная структура (являющаяся частью общей системы управления), задающая ответственность исполнителей, процедуры и процессы управления качеством. Во-первых, устанавливается ответственность, распределяются полномочия и интерфейсы; во-вторых, все процессы дифференцируются на находящиеся под непосредственным наблюдением и самоуправляющиеся. Заметим, что авторы не поддерживают миф об индивидуальности труда программиста. К важным мерам поддержания качества они относят внутренний аудит качества, практические шаги по поддержанию активности, сбору информации и ее анализу, считают также, что не следует пренебрегать и постпроектным анализом.
Во второй части книги рассматривается применение ISO 9000 к программным проектам. Отмечается, что важную роль в оценке проекта играют его размеры, области применения, а также критичность ПО (например, использование его в особых для человека условиях) и, наконец, новизна.
Пристальное внимание авторы уделяют принципам контроля при разработке продукта: сверху вниз (когда каждая новая версия продукта испытывается целиком) и снизу вверх (когда проверка производится по частям).
Тестирование и оценка продукта в значительной мере связаны с проверкой документации.
И хотя дублирование, доставка и инсталляция ПО представляют собой наиболее формализованный вид работ, они тем не менее требуют повышенного внимания со стороны системы контроля качества. Для успешной работы системы непременно нужно иметь четкий план поддержки или сопровождения программного продукта. Такая поддержка может осуществляться постоянно или носить превентивный характер, причем контролю необходимо подвергать не только исходные тексты программ, но и документацию.
Подводя итог своим представлениям о системе контроля качества ПО, авторы пишут: "Качество - трудноуловимая категория. Перед нами стояла задача его определения. Мы изучили проблемы его достижения, его измерения. Мы видим не только национальные различия и метаморфозы в подходах, но и существенные практические шаги к производству продуктов с признанным качеством".