Разработка ПО достигла такого уровня развития, что возникла необходимость в использовании инженерных методов оценивания результатов его проектирования на всех этапах ЖЦ, контроля степени достижения запланированных показателей качества и их метрического анализа, оценки риска и степени использования готовых компонентов для снижения стоимости разработки нового проекта. Основу инженерных методов в программировании составляет повышение качества ПО , для достижения которого сформировались методы определения требований к качеству, подходы к выбору и усовершенствованию моделей метрического анализа показателей качества и методы количественного измерения показателей качества на всех этапах ЖЦ. Статические техники оценки качества ПО представлены на рис. 9.1. Динамические техники так или иначе связаны с тестированием ПО.

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

Качество ПО является предметом стандартизации. Согласно ГОСТ 2844-94 качество ПО есть совокупность свойств (показателей качества) ПО, которые обеспечивают его способность удовлетворять потребности заказчика в соответствии с его назначением. Этот стандарт регламентирует базовую модель качества и показатели, главным среди которых является надежность. Стандарт 180/1ЕС12207 опре-

Рис. 9.1.

делил не только основные процессы ЖЦ разработки ПО, но и организационные и дополнительные процессы, которые регламентируют инженерию, планирование и управление качеством ПО.

Согласно этому стандарту на всех этапах ЖЦ разработки ПО должен проводиться следующий контроль качества ПО:

  • проверка соответствия требований проектируемому программному продукту и критериев их достижения;
  • верификация и аттестация (валидация) промежуточных результатов ПО на этапах ЖЦ и измерение степени удовлетворения достигаемых показателей;
  • тестирование готового ПО, сбор данных об отказах, дефектах и других ошибках, обнаруженных в системе;
  • подбор моделей надежности для оценивания надежности по полученным результатам тестирования (дефекты, отказы и др.);
  • оценка показателей качества, заданных в требованиях на разработку ПО.

Инспектирование качества - это процесс проверки качества, ориентированный на команду разработчиков. Он применяется на всех этапах разработки ПП.

Доказательство правильности - это математическая или логическая методика, используемая для убеждения себя и других в том, что программа делает то, что должна делать. Такое доказательство является формальным (строгим) методом.

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

Стоимость качества может быть дифференцирована на стоимость предупреждения дефектов, стоимость оценки, стоимость внутренних, а также внешних сбоев. Движущей силой программных проектов является желание создать ПО, обладающее определенной ценностью (значимое для решения определенных задач или достижения целей). Ценность ПО может выражаться в форме стоимости или какой-то другой форме. Заказчик обычно имеет свое представление о максимальных стоимостных вложениях, возврат которых ожидается в случае достижения основных целей создания ПО. Заказчик может также иметь определенные ожидания в отношении качества ПО. Иногда заказчики не задумываются о вопросах качества и связанной с ними стоимости, поэтому на этом этапе предметом обсуждения может стать вопрос о полном понимании заказчиком стоимости и выгоды, связанных с достижением того или иного уровня качества, и о степени вовлечения заказчика в процесс принятия решения. В идеальном случае большинство такого рода решений должно приниматься на этапе работы с требованиями, но эти вопросы могут (и должны) подниматься на протяжении всего ЖЦ ПО. Не существует каких-то «стандартных» правил того, как именно необходимо принимать такие решения. Однако инженеры должны быть способны представить различные альтернативы способов достижения различного уровня качества и их стоимость.

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

Качество ПО характеризуется тремя аспектами: качеством ПП, качеством процессов ЖЦ и качеством сопровождения или внедрения (рис. 9.2).

Качество Качество Качество

процесса продукта сопровождения

Рис. 9.2.

Аспект, связанный с процессами ЖЦ ПО, определяет степень формализации, достоверности самих процессов ЖЦ разработки ПО, а также верификацию и валидацию (кратко - V&V) промежуточных результатов этих процессов. Поиск и устранение ошибок в готовом ПО проводится методами тестирования, которые снижают количество ошибок и повышают качество этого продукта.

Качество ПП достигается за счет использования процедур контроля промежуточных продуктов на всех этапах их ЖЦ, проверкой их на достижение необходимого качества, а также использованием методов сопровождения ПП. Эффект от внедрения программного средства в значительной степени зависит от знаний обслуживающего персонала функций продукта и правил их выполнения.

Модель качества ПО имеет четыре уровня представления.

Первый уровень соответствует определению характеристик (показателей) качества ПО, каждая из которых отражает отдельную точку зрения пользователя на качество. Согласно существующим стандартам (ISO/IEC9126, ДСТУ 2844-1994, ДСТУ 2850-1994, ДСТУ 3230-1995) в модель качества входит шесть характеристик или шесть показателей качества (рис. 9.3): функциональность (functionality), надежность (realibility), удобство (usability), эффективность (efficiency), сопровождаемость (maitainnability), переносимость (portability).

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

Третий уровень предназначен для измерения качества с помощью метрик, каждая из которых, согласно стандарту 1SO/IEC9126, определяется как комбинация метода измерения атрибута и шкалы измерения его значений. Для оценки атрибутов качества на этапах ЖЦ ПО (при просмотре документации и программ, а также результатов тестирования программ) используются метрики с заданным оценоч-

Показатели-характеристики

Атрибуты

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

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

Выбранные атрибуты и их приоритеты отражаются в требованиях на разработку системы, либо используются соответствующие приоритеты эталона класса ПО, к которому это ПО относится.

Рассмотрим более подробно показатели качества ПО.

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

Функциональная полнота - свойство компонента ПО, которое показывает степень достаточности основных функций для решения задач в соответствии с назначением ПО.

Правильность (точность) - атрибут, который показывает степень достижения правильных результатов.

Интероперабельность - атрибут, который показывает возможность взаимодействия компонентов ПО на специальных системах и средах (ОС, сети и пр.).

Защищенность - атрибут, определяющий способность ПО предотвращать несанкционированный доступ (случайный или умышленный) к программам и данным.

Надежность. Это совокупность атрибутов, которые определяют способность ПО преобразовывать исходные данные в результаты при условиях, зависящих от периода времени жизни ПО (износ и его старение не учитываются). Снижение надежности ПО происходит из-за ошибок в требованиях, проектировании и выполнении. Отказы и ошибки в программах появляются на заданном промежутке времени.

К подхарактеристикам (субхарактеристикам) надежности ПО относятся следующие.

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

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

Восстанавливаемость - атрибут, который показывает способность ПО к перезапуску для повторного выполнения и восстановления данных после отказов.

К некоторым типам «критических систем» (реального времени, радарных, систем безопасности, коммуникаций и др.) предъявляются требования по обеспечению высокой надежности (недопустимость ошибок, точность, достоверность, удобство применения и др.). Надежность ПО в значительной степени зависит от числа оставшихся и неустраненных ошибок в процессе его разработки на этапах ЖЦ. В ходе эксплуатации ошибки обнаруживаются и устраняются. Если при исправлении ошибок не вносятся новые или, по крайней мере, новых ошибок вносится меньше, чем устраняется, то в ходе эксплуатации надежность ПО непрерывно возрастает. Чем интенсивнее проводится эксплуатация, тем интенсивнее выявляются ошибки и быстрее растет надежность ПО.

На надежность ПО влияют следующие факторы:

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

Обнаруженные ошибки могут быть результатом угрозы извне или отказов, они повышают риск и уменьшают некоторые свойства надежности системы.

Надежность - одна из ключевых проблем современных программных систем, и ее роль будет постоянно возрастать, поскольку постоянно повышаются требования к качеству компьютерных систем. Новое направление - инженерия программной надежности (Software reliability engineering) - ориентировано на количественное изучение операционного поведения компонентов системы по отношению к пользователю, ожидающему надежную работу системы, и включает следующие аспекты:

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

в процессе эксплуатации, а также современных моделей надежности;

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

Верификация применяется для определения соответствия готового ПО установленным спецификациям, а валидация - для установления соответствия системы требованиям пользователя, которые были предъявлены заказчиком.

В инженерии надежности термин пригодноспособностъ (dependability) обозначает способность системы иметь свойства, желательные для пользователя, который уверен в качественном выполнении функций, заданных в требованиях. Данный термин определяется дополнительным количеством атрибутов, которыми должна обладать система:

  • готовностью к использованию (availability);
  • готовностью к непрерывному функционированию (reliability);
  • безопасностью для окружающей среды, т.е. способностью системы не вызывать катастрофических последствий в случае отказа (safety);
  • секретностью и сохранностью информации (confidential);
  • способностью к сохранению системы и устойчивости к самопроизвольному ее изменению (integrity);
  • способностью к эксплуатации ПО, простотой выполнения операций обслуживания, а также устранения ошибок, восстановлением системы после их устранения (maintainability);
  • готовностью и сохранностью информации (security) и др. Достижение надежности системы обеспечивается предотвращением отказа (fault prevention) или его устранением (removal fault), а также оценкой возможности появления новых отказов и мер борьбы с ними.

Для численной оценки надежности используются методы теории вероятностей. Каждый программный компонент, его операции и данные обрабатываются в дискретные моменты времени, например 5, 28,..., пЪ.

Пусть за время Т после первого неудачно обработанного компонента системы появился отказ, для которого справедливо выражение

Р{ Т > пЬ} = (1 - Л.) И, где Л. - вероятность отказа, при этом среднее

время ожидания будет равно Т = -.

Положим, что значение 5 уменьшается, а время Т остается фиксированным, тогда имеем

R{T>t} =

где t - время до отказа, в данном случае - непрерывная величина, распределенная экспоненциально.

Таким образом, обеспечение надежности ПО - это трудоемкий процесс, требующий создания устойчивой работы системы по отношению к отказам ПО, т.е. обеспечения достаточно высокой вероятности того, что система восстановится самопроизвольно в некоторой точке после возникновения в ней отказа (fault).

Удобство применения. Этот показатель характеризуется множеством атрибутов, определяющих необходимые пригодные условия использования ПО (например, диалоговое, недиалоговое) заданным кругом пользователей для получения соответствующих результатов. В стандарте ДСТУ 2850-1994 удобство применения определено как множество атрибутов ПП, характеризующих его эргономичность:

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

Эффективность. Это множество атрибутов, которые определяют взаимосвязь уровней выполнения ПО, степень использования ресурсов (средств, аппаратуры, материалов - бумаги для печатающего устройства и др.) и услуг, выполняемых штатным обслуживающим персоналом. К атрибутам эффективности ПО относятся:

  • реактивность - атрибут, который показывает время отклика, обработки и выполнения функций;
  • эффективность ресурсов - атрибут, показывающий количество и продолжительность используемых ресурсов при выполнении функций ПО;
  • согласованность - атрибут, который показывает соответствие данного атрибута заданным стандартам, правилам и предписаниям. Сопровождаемость. Это множество свойств, определяющих усилия, которые надо затратить на проведение модификаций, включающих корректировку, усовершенствование и адаптацию ПО при изменении среды, требований или функциональных спецификаций. Сопровождаемость определяется следующими атрибутами:
  • анализируемостъ - атрибут, определяющий необходимые усилия для диагностики отказов или идентификации частей, которые будут модифицироваться;
  • изменяемость - атрибут, который определяет возможность удаления ошибок в ПО или внесение изменений для их устранения, а также введение новых возможностей в ПО или в среду функционирования;
  • стабильность - атрибут, указывающий на постоянство структуры и риск ее модификации;
  • тестируемость - атрибут, определяющий усилия при проведении валидации и верификации ПО с целью обнаружения несоответствий требованиям, а также необходимость проведения модификации ПО и его сертификации;
  • согласованность - атрибут, который показывает соответствие данного атрибута соглашениям, правилам и предписаниям стандарта. Переносимость. Это множество показателей, определяющих способность ПО адаптироваться к работе в новых условиях среды выполнения. Среда может быть организационной, аппаратной и программной. Перенос ПО в новую среду выполнения может быть связан с некоторой совокупностью действий, направленных на обеспечение его функционирования в среде, отличной от той, в которой оно создавалось, с учетом новых программных, организационных и технических возможностей. Переносимость включает в себя следующие атрибуты:
  • адаптивность - атрибут, определяющий усилия, затрачиваемые на адаптацию к различным средам;
  • настраиваемость (простота инсталляции) - атрибут, который определяет необходимые усилия для запуска данного ПО в специальной среде;
  • сосуществование - атрибут, который определяет возможность использования специального ПО в среде действующей системы;
  • заменяемость - атрибут, который обеспечивает возможность интероперабельности при совместной работе с другими программами с необходимой инсталляцией или адаптацией ПО;
  • согласованность - атрибут, который определяет соответствие стандартам или соглашениям по обеспечению переноса ПО.

Каждое ПС должно выполнять определенные функции, т.е. делать то, что задумано. Хорошее ПС должно обладать еще целым рядом свойств, позволяющим успешно его использовать в течении длительного периода, т.е. обладать определенным качеством. Качество ПС - это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданные потребности пользователей . Это не означает, что разные ПС должны обладать одной и той же совокупностью таких свойств в их высшей возможной степени. Этому препятствует тот факт, что повышение качества ПС по одному из таких свойств часто может быть достигнуто лишь ценой изменения стоимости, сроков завершения разработки и снижения качества этого ПС по другим его свойствам. Качество ПС является удовлетворительным, когда оно обладает указанными свойствами в такой степени, чтобы гарантировать успешное его использование.

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

    функциональность,

    надёжность,

    лёгкость применения,

    эффективность,

    сопровождаемость,

    мобильность.

Функциональность - это способность ПС выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ПС.

Надежность подробно обсуждалась в первой лекции.

Лёгкость применения - это характеристики ПС, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПС и оценке полученных результатов, а также вызывать положительные эмоции определённого или подразумеваемого пользователя.

Эффективность - это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объему используемых ресурсов.

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

Мобильность - это способность ПС быть перенесенным из одной среды (окружения) в другую, в частности, с одной ЭВМ на другую.

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

      1. Обеспечение надёжности - основной мотив разработки программных средств

Рассмотрим теперь общие принципы обеспечения надёжности ПС, что, как мы уже подчёркивали, является основным мотивом разработки ПС, задающим специфическую окраску всем технологическим процессам разработки ПС. В технике известны четыре подхода обеспечению надёжности :

    предупреждение ошибок;

    самообнаружение ошибок;

    самоисправление ошибок;

    обеспечение устойчивости к ошибкам.

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

    борьбе со сложностью;

    обеспечении точности перевода;

    преодоления барьера между пользователем и разработчиком;

    обеспечения контроля принимаемых решений.

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

Остальные три подхода связаны с организацией самих продуктов технологии, в нашем случае - программ. Они учитывают возможность ошибки в программах. Самообнаружение ошибки в программе означает, что программа содержит средства обнаружения отказа в процессе ее выполнения. Самоисправление ошибки в программе означает не только обнаружение отказа в процессе ее выполнения, но и исправление последствий этого отказа, для чего в программе должны иметься соответствующие средства. Обеспечение устойчивости программы к ошибкам означает, что в программе содержатся средства, позволяющие локализовать область влияния отказа программы, либо уменьшить его неприятные последствия, а иногда предотвратить катастрофические последствия отказа. Однако, эти подходы используются весьма редко (может быть, относительно чаще используется обеспечение устойчивости к ошибкам). Связано это, во-первых, с тем, что многие простые методы, используемые в технике в рамках этих подходов, неприменимы в программировании, например, дублирование отдельных блоков и устройств (выполнение двух копий одной и той же программы всегда будет приводить к одинаковому эффекту - правильному или неправильному). А, во-вторых, добавление в программу дополнительных средств приводит к её усложнению (иногда - значительному), что в какой-то мере мешает методам предупреждения ошибок.

Критерии качества представляют собой измеряемые числовые показатели, в виде некоторой целевой функции, характеризующие степень выполнения объектом своего назначения. В общем случае критерии качества должны отображать обобщенную «полезность» для общества, анализируемого объекта, эффективность технологии проектирования. ПС в первую очередь характеризуется трудоемкостью и длительностью создания, а также достигаемым качеством программ при применении соответствующих технологий.

Анализ критерий качества ПС ЖЦ программы является основой для оценки эффективности технологии проектирования. В процессе формирования технического задания на ПС, выявляются доминирующие показатели, устанавливается относительная важность каждого из них и строится обобщенная функция требуемого качества конкретного ПС, кроме того устанавливаются допустимые затраты и длительность разработки программных средств, которые должна обеспечить соответствующая технология.

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

Разработчики ПС стремятся выделить и определить единый критерий эффективности программ:

1. Численно и в наиболее общем виде характеризовать степень выполнения системой своей основной целевой функции.

2. Позволять выявить и оценить степень влияния на эффективность системы различных факторов и параметров, и в том числе затрат различного вида на ее реализацию.

3. Быть простым и иметь малую дисперсию, т.е. мало зависеть от неконтролируемых, случайных факторов.

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

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

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

Показатели качества могут уточняться также в процессе эксплуатации, в результате чего обеспечивается долгосрочная перспектива объективного измерения и повышения качества программ.

1. Функциональные критерии качества отражают основную специфику применения и степень соответствия ПС их целевому назначению. Для программ управления в них входят показатели точности выходных данных, диапазоны изменения параметров, время реакции, адаптивность к внешним воздействиям и т.д. В системах обработки данных функциональные показатели отражают номенклатуру исходных данных, достоверность результатов, разнообразие функций и другое. Функциональные критерии весьма различны и соответствуют разнообразию целевого назначения, функций и областей применения ПС. Они являются важнейшими для каждой системы (перечень исходных документов - конкретно).

2. Конструктивные критерии качества ПС более или менее инвариантны к их целевому назначению и основным функциям. К ним относятся сложность программ, надежность функционирования, используемые ресурсы, корректность программ и т.п. Некоторые конструктивные критерии могут быть важны с позиции прямого функционального назначения, определяемых программными средствами (надежность).

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

Особо следует выделить временные показатели ЖЦ программ:

1. длительность проектирования

2. продолжительность эксплуатации очередной версии

3. длительность проведения каждой модификации

Продолжительность и модификация проведения этих работ в ряде случаев может быть более важным критерием, чем трудоемкость. В некоторых случаях суммарная длительность эффективной эксплуатации является доминирующим критерием качества ПС. Для каждой из разработок целесообразно проводить ранжирование (ранги) критериев и факторов на этапах ЖЦ ПС.

Программное обеспечение (softwаrе) на данный момент составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информация с самыми различными целями. В зависимости от того, какие задачи выполняет то или иное программное обеспечение можно разделять все программное обеспечение на несколько групп:

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

­ Операционные системы

­ Оболочки операционных систем.

­ Программы-утилиты

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

Прежде чем рассматривать стандарты, регламентирующие аспекты качества программного обеспечения, необходимо сначала обсудить общие вопросы, касающиеся качества любого вида продукции. К общим вопросам относятся определения и терминология в данной области, основные концепции качества, роль документации в обеспечении качества продукции, а также выбор и применение международных стандартов качества. Безусловно, основными стандартами в области качества стали международные стандарты серии ИСО 9000, разработанный Международной организацией по стандартизации. Следующий подраздел посвящен рассмотрению общих вопросов, перечисленным выше, в свете стандартов серии ИСО 9000.

1.1 Основные положения стандартов серии исо 9000

Во-первых, под стандартами серии ИСО 9000 понимаются все международные стандарты, разработанные Техническим комитетом 176 “Административное управление качеством и обеспечении качества” Международной организации по стандартизации (ИСО). В настоящее время серия содержит все международные стандарты с номерами от 9000 до 9004 (включая все части ИСО 9000 и ИСО 9004), от 10001 до 10020 (включая все части), а также ИСО 8402. Ниже приведены названия основных стандартов, составляющих данную серию.

ИСО 9000-1-94 Стандарты в области административного управления качеством и обеспечения качества. Часть 1. Руководящие положения по выбору к применению.

ИСО 9000-2-93 Стандарты в области административного управления качеством и обеспечения качества. Часть 2. Общие руководящие положения по применению ИСО 9001,ИСО 9002 и ИСО 9003.

ИСО 9000-3-91 Стандарты в области административного управления качеством и обеспечения качества. Часть 3. Руководящие положения по применению ИСО 9001 при разработке, поставке и техническом обслуживании ПО.

ИСО 9000-4-93 Стандарты в области административного управления качеством и обеспечения качества. Часть 4. Руководящие положения по административному управлению программой общей надежности.

ИСО 9001-94 Системы качества. Модель для обеспечения качества при проектирование, разработке, производстве, монтаже и обслуживании.

ИСО 9002-94 Системы качества. Модель для обеспечения качества при производстве, монтаже и обслуживании.

ИСО 9003-94 Системы качества. Модель для обеспечения качества при контроле готовой продукции и заключительных испытаниях.

ИСО 9004-1-94 Административное управление качеством и элементы системы качества. Часть 1. Руководящие положения.

ИСО 9004-2-91 Административное управление качеством и элементы системы качества. Часть 2. Руководящие положения по услугам.

ИСО 9004-3-93 Административное управление качеством и элементы системы качества. Часть 3. Руководящие положения по обработанным материалам.

ИСО 9004-4-93 Административное управление качеством и элементы системы качества. Часть 4. Руководящие положения по повышению качества.

ИСО 10011-1-90 Системы качества. Руководящие положения по проверкам. Часть 1. Проверки.

ИСО 10011-2-91 Системы качества. Руководящие положения по проверкам. Часть 2. Критерии квалификации экспертов-аудиторов систем качества.

ИСО 10011-3-91 Системы качества. Руководящие положения по проверкам. Часть 3. Административное управление программами проверок.

ИСО 10012-1-92 Обеспечение качества измерительного оборудования. Требования. Часть 1. Системы метрологического обеспечения измерительного оборудования.

ИСО 10013 Руководства по качеству. Положения по разработке. (На стадии издания).

ИСО 8402-94 Управление качеством и обеспечение качества. Словарь.

Увеличившаяся в настоящее время конкуренция между организациями, производителями продукции, в том числе и программного обеспечения, приводит к установлению более жестких требований к качеству это продукции. Для того чтобы быть конкурентоспособными, организации должны применять эффективные системы, ведущие к повышению качества продукции и более совершенному удовлетворению требований своих заказчиков. Правильно сформулированные и полные требования заказчика, включенные в технические условия, еще не гарантирует того, что эти требования будут полностью удовлетворены, так как в системе поставок и обеспечения организации имеются недостатки. Это соображение обусловило разработку стандартов, относящихся к системам качества и дополняющих требования заказчика к продукции. Международные стандарты серии ИСО 9000 предназначены для создания общей основы стандартов на системы качества. Под системой качества понимается, согласно ИСО 8402, совокупность организационной структуры, методик, процессов и ресурсов, необходимых для осуществления общего руководства качеством продукции, производимой организацией.

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

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

Кроме того, руководящие положения и требования стандартов серии ИСО 9000 выражены в терминах целей системы качества, которые должны быть достигнуты, и не предписывают способы достижения этих целей, оставляя право выбора этих способов руководству организации. Стандарты данной серии отличают требования к системам качества от требований заказчика к продукции. Требования к системам качества являются дополнительными по отношению к техническим требованиям к продукции. Например, ИСО 12207 устанавливает жизненный цикл разработки программного обеспечения. Процессы и модели качества, соответствующие процессу обеспечения качества (2.3 по ИСО 12207) устанавливаются стандартами серии ИСО 9000.

ИСО 9000-1 идентифицирует четыре общие категории продукции, охватывающие все виды продукции, поставляемые любой организацией:

    Технические средства.

    Программное обеспечение.

    Обработанные материалы.

Требования к системам качества, установленные в международных стандартах серии ИСО 9000 применимы ко всем четырем общим категориям продукции, но терминология и некоторые положения и аспекты систем административного управления качеством могут быть различными. Это видно из названий стандартов ИСО 9004 - 2 и ИСО 9004 - 3. Необходимо отметить, что любая организация предлагает продукцию, как минимум, двух категорий. Например, организация, занимающаяся разработкой программного обеспечения, дополнительно предоставляет своим заказчикам услуги по сопровождению разработанного ПО.

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

1. Качество благодаря определению потребностей заказчиков в продукции. Первый аспект – это качество благодаря определению и модернизации продукции с целью ее соответствия требованиям и возможностям рынка.

2. Качество благодаря конструкции. Второй аспект – это качество благодаря встраиванию в продукцию характеристик, способствующих тому, чтобы она отвечала требованиям и возможностям рынка. Другими словами, качество благодаря конструкции – это те свойства конструкции, которые влияют на бесперебойность работы изделия в переменных условиях производства и применения.

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

4. Качество благодаря техническому обслуживанию. Четвертый аспект – это качество благодаря техническому обслуживанию продукции в процессе ее эксплуатации по мере необходимости, чтобы сохранить желаемые характеристики.

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

Международные стандарты серии ИСО 9000 основаны на понимании того факта, что всякая работа выполняется с помощью процессов (см. рис.1). Каждый процесс имеет входные факторы. Выходом процесса является результат - продукция, осязаемая и не осязаемая. Сам процесс является (или должен являться) преобразованием, добавляющим стоимость. В каждом процессе принимают участие в той или иной мере люди и/или другие ресурсы. Выходом может быть, например, программа, банковская услуга, готовое (или промежуточное) изделие любой основной категории продукции. Существуют возможности сделать измерения на входе, на различных стадиях процесса, а также на выходе.

Как показано на рис.2 , входы и выходы могут быть нескольких типов: связанные с продукцией (сплошные линии на рис.2) (например, сырье, готовое изделие) и связанные с информацией (пунктирные линии) (например, требования к продукции, информационные характеристики). Данный рисунок представляет процессы поставщика с процессами субпоставщиком и потребителем в сети поставок. В структуре это сети различные входные и выходные факторы перемещаются в разных направлениях. Термин “продукция” относиться здесь ко всем четырем основным категориям продукции.

Административное управление качеством осуществляется с помощью управления процессами в организации. Управление процессом имеет две стороны:

управление структурой и функционированием самого процесса, в рамках которого перемещается продукция или информация;

управление качеством продукции или информации внутри структуры.

Принимая во внимание сложную структуру большинства организаций, важно выделить основные процессы, а также упростить и ранжировать процессы в зависимости от целей административного управления качеством. Примером сложной сети процессов может служить организация, разрабатывающая программное обеспечение согласно ИСО/МЭК 12207 и DO-178.

Рис.1.1 Все работы выполняются с помощью процессов.

Процессы

поставщика

потребителя

требования

Входные факторы

Выходные факторы

Статус и хар-ки

продукции

Статус и хар-ки

продукции

требования

Обратная связь

Обратная связь

субпоставщика

Рис.1.2 Взаимосвязь процессов в сети поставок при наличии потоков, связанных с продукцией и информацией.

Любая организация должна определить и установить свою сеть процессов и интерфейсов, и управлять ею. Организация создает, совершенствует и обеспечивает постоянный уровень качества своей продукции с помощью выполнения сети процессов. Это концептуальная основа стандартов серии ИСО 9000. Процессы и их интерфейсы должны быть объектами анализа и постоянного совершенствования в целях обеспечения качества производимой продукции.

При оценке систем качества любой организации, стандарт ИСО 9000-1 рекомендует задать три важных вопроса относительно каждого оцениваемого процесса сети.

Определены ли эти процессы и документированы ли их процедуры?

Применяются ли эти процессы в полной мере и выполняются ли они согласно документации?

Эффективны ли эти процессы в достижении ожидаемых результатов?

Результат оценки есть совокупность ответов на эти вопросы, связанные соответственно с подходом, применением и результатом. Оценка системы качества может различаться по охватываемой области и включать различные виды деятельности.

Одним из важнейших видов такой деятельности, выполняемой систематически, является оценка статуса и адекватности системы качества, проводимую руководством организации согласно стандартам ИСО 9001, 9002, 9003. Выводы, сделанные в процессе оценки системы качества должны вести к повышению ее эффективности и экономичности. Источником информации для таких выводов являются также результаты внутренних и внешних проверок системы качества.

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

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

Необходимо также обратить внимание на то, в каких ситуациях может применяться стандарты серии ИСО 9000 и способ использования данной серии поставщиком.

Международные стандарты серии ИСО 9000 предназначены для применения в следующих четырех ситуациях.

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

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

3. При утверждение или регистрации второй стороной. Это та ситуация, в которой система качества оценивается заказчиком. Поставщик может получить официальное признание соответствие его продукции стандарту.

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

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

При использование способа, мотивированного заинтересованным лицом, поставщик изначально вводит систему качества как ответ на непосредственные требования потребителей. Система качества должна соответствовать требованиям стандартов ИСО 9001, 9002, 9003. Руководство организации играет ведущую роль при этом способе, но движущей силой является внешнее заинтересованное лицо (потребители).

При использование способа, мотивированного руководством, именно руководство организации начинает прилагать усилия по определению будущих потребностей и тенденций рынка. Инструкцией по первоначальному установлению системы качества, повышающей качество продукции, является стандарт ИСО 9004-1 (и другие части ИСО 9004). Далее поставщик может применить стандарты ИСО 9001, 9002 или 9003, как модель обеспечения качества для демонстрации адекватности системы качества с целью получения сертификата. Система качества, реализуемая этим способом, более емкая и плодотворная, чем реализуемая первым способом.

В стандартах серии ИСО 9000 уделяется пристальное внимание подготовке и использованию документации, как виду деятельности, добавляющем стоимость. Соответствующая документация играет значительную роль в следующих видах деятельности по обеспечению качества:

в достижении требуемого качества продукции;

оценке систем качества;

в повышении качества;

в сохранении достигнутого уровня качества.

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

Кроме того, документация играет немаловажную роль в повышении качества продукции. Если процедуры документированы, применяются и выполняются, то есть возможность определить, как они выполняются.

Далее более подробно будет рассмотрен стандарт ИСО 9001, в котором определена модель для обеспечения качества при проектирование, разработке, производстве, монтаже и обслуживании всех видов продукции, включая программное обеспечение.

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

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

Вам будет интересно:

В настоящее время существует два важных подхода, которые используются для определения качества ПО:

  • Управление дефектами.
  • Атрибут качества.
  • Все, что не соответствует требованию клиента, попадает в разряд дефектов. Команда разработчиков, которая не в состоянии полностью понять требования клиента, будет допускать ошибки проектирования.

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

    Качество программного обеспечения значительно улучшилось за последние два десятилетия. Одна из причин этого заключается в том, что компании используют новые технологии, такие как объектно-ориентированную разработку и инструменты CASE. Кроме того, можно наблюдать растущую важность внедрения методов управления на производстве.

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

    Например, при оценке синтаксического анализатора XML можно использовать набор тестов на соответствие XML W3C. Он включает в себя тесты, разработанные для удовлетворения всех направлений контроля, а также рекомендации W3C Extensible Markup Language (XML) с особым акцентом на требованиях к обработке ошибок в правильности или достоверности документов XML. Таким образом процент пройденных тестовых случаев используется, как метрика для оценки следующих характеристик рассматриваемого XML-анализатора:

    • Перспектива пользователя.
    • Функциональность.
    • Надежность и отказоустойчивость.

    С точки зрения пользователя есть несколько важных характеристик, отвечающих на следующие вопросы:

    • Кто предоставляет полный спектр необходимых функций по назначению?
    • Надежно ли работает ПО для получения необходимых результатов при правильном использовании?
    • Функционирует ли программа безопасно и надежно в случае неправильного ввода?
    • Легко ли использовать программный продукт?
    • ПО функционирует быстро или кажется излишне медленным?
    • Хорошо ли сочетается программа с другим продуктом, который использует пользователь?

    Считая, что вопросы качества пользователю важны, ИТ-группа, отвечающая за развертывание и обслуживание ПО, может столкнуться с другими проблемами:

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

    ИСО обеспечивает эту модель двумя новыми категориями высшего уровня, связанными с технологическим обеспечением качества программного обеспечения.

    Требования ISO 9126 к продукту

    ISO 9126 является международным стандартом для оценки ПО. Он разделен на четыре части, в которых рассматриваются следующие темы:

    • Внешние показатели.
    • Внутренние показатели.
    • Модель качества.
    • Показатели качества программного обеспечения.

    Первая часть ISO 9126 является расширением предыдущего стандарта, выполненного McCall (1977), Boehm (1978) и FURPS в определении набора характеристик качества.

    • Функциональность.
    • Надежность.
    • Юзабилити.
    • Ремонтопригодность.
    • Портативность.

    Функциональность продукта

    Вам будет интересно:

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

    Некоторые перечисленные характеристики ПО (например, удобство) присутствуют только в определенной степени, то есть не просто «включен» или «отключен». Многие люди путают общую функциональность процесса и программного продукта. Часто это связано с тем, что диаграммы потоков данных (DFD) и другие инструменты моделирования могут отражать функциональность процесса, как набор преобразованных данных в data out.

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

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

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

    Способность учиться использовать систему (обучаемость) является одной из основных характеристик юзабилити.

    КПД связан с системными ресурсами, применяемыми при предоставлении необходимой функциональности. Объем дискового пространства, память и сеть являются хорошими показателями КПД. Как и в случае ряда других критериев, существуют совпадения между ними. Например, удобство использования системы влияет на ее производительность.

    Способность идентифицировать и исправить ошибку в программном компоненте - это то, к чему относится характеристика ремонтопригодности. На ее показатели влияет читаемость или сложность кода, а также модульность. Это то, что помогает идентифицировать причину неисправности, чтобы затем устранить ее.

    Характеристики ремонтопригодности:

    • Анализируемость - выявляет основную причину отказа.
    • Изменчивость - определяет усилия, которые прилагаются к модификации кода для устранения ошибки.
    • Стабильность - демонстрирует, насколько стабильна система в работе, когда в нее вносятся изменения.
    • Тестируемость - определяет, сколько усилий идет на тестирование системы.
    • Переносимость - способность системы адаптироваться к изменениям в ее среде.
    • Адаптируемость - насколько легко система адаптируется к изменениям, внесенным в спецификации.
    • Скорость установки - насколько легко система может быть установлена.
    • Возможность замены - насколько легко можно заменить компонент системы.
    • Стоимость качества ПО. Она очень важна. Когда разработчик решит провести тестирование для своего продукта, он на самом деле собирается потратить время, деньги и усилия на ее проверку.
    • Пригодность - определяет, соответствуют ли функции ПО требованиям.
    • Точность - устанавливает правильность реализации функций.
    • Функциональная совместимость - взаимодействуя с другими компонентами системы.
    • Соответствие ПО необходимым законам и рекомендациям.
    • Обеспечение качества и безопасности программного обеспечения и обработки транзакций, связанных с данными.
    • Надежность - способность ПО работать в определенных условиях в течение обозначенного периода времени.
    • Зрелость - частота сбоев ПО.
    • Восстанавливаемость - представление о способности системы вернуться к полноценной работе после сбоя.

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

    Стоимость процессов анализа

    Стоимость качества рассчитывается путем анализа затрат на соответствие и несоответствие. Цена первого показателя связана с:

  • Расходами на профилактику. Это сумма, потраченная на обеспечение правильного соблюдения всех методов. Она включает в себя обучение командам, проверки кода и любые другие действия, связанные с QA.
  • Затратами на оценку. Это сумма денег, потраченная на планирование всех тестовых заданий, а затем на их выполнение, например, на разработку тестовых примеров.
  • Расходы на несоответствие. Это затраты, которые возникают из-за внутренних и внешних сбоев.
  • Внутренние сбои - это расходы, которые появляются, когда тестовые примеры выполняются впервые на внутреннем уровне, при этом некоторые из них терпят неудачу. Расходы возникают, когда программист должен исправить все дефекты, выявленные в его фрагменте во время модульного или компонентного тестирования.

    Внешние сбои - это расходы, которые возникают, когда дефект устанавливается заказчиком, а не тестером. Эти расходы намного больше, чем те, которые появляются на внутреннем уровне. Особенно это актуально, если усиливается программный сбой.

    Дисциплинированный анализ процесса

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

  • Самооценка. Проводится внутри собственного персонала организации.
  • Оценка сторонней организации.
  • Оценка третьей стороной.
  • Аудит процесса ПО выполняется в открытой общей среде с целью улучшения его показателей и с использованием программ обеспечения качества программного обеспечения. Результаты такого аудита являются конфиденциальными для организации.

    Вам будет интересно:

    Что касается сбора данных, то используются четыре метода:

  • Стандартный перечень вопросов зрелости.
  • Индивидуальные и групповые интервью.
  • Обзоры документов.