Процедуры и вся технология проведения работ по сертификации определяются схемой сертификации, которая устанавливает четкую совокупность действий, по результатам которых принимается решение о соответствии или несоответствии продукции заданным требованиям. Согласно идеологии Международной организации по стандартизации (ИСО) общепризнанными являются восемь основных схем сертификации. Они используются и в комплекте основополагающих документов системы сертификации ГОСТ Р. При этом число схем сертификации, принятых Госстандартом России, в два раза больше, чем принято в зарубежной и международной практике. Схемы сертификации, принятые в системе сертификации ГОСТ Р, приведены в приложении 1.
Для каждой схемы сертификации продукции приводятся условия ее применения с учетом степени опасности продукции. При проведении сертификации программного обеспечения наиболее удобно применение схемы 10а. Госстандартом России предусматривается ее использование в качестве доказательства соответствия (несоответствия) продукции (программного обеспечения) установленным требованиям декларации, о соответствии прилагаемым к ней документам, подтверждающим соответствие продукции установленным требованиям.
Порядок проведения сертификации программного обеспечения средств измерений, информационно-измерительных систем и аппаратно-программных комплексов определен такими методиками как МИ 2891-2004 "ГСИ. Общие требования к программному обеспечению средств измерений" и МИ 2955-2005 "Типовая методика аттестации программного обеспечения средств измерений и порядок ее проведения".
Кроме того, в настоящее время в связи с принятием 11 июня 2008 г. новой редакции Закона РФ "Об обеспечении единства измерений", где в статье 9, п. 1 говорится о том, что "в состав обязательных требований к средствам измерений …в необходимых случаях включаются также требования к … программному обеспечению", ФГУП ВНИИМС приступил к разработке национального стандарта ГОСТ Р "ГСИ. Требования к программному обеспечению средств измерений и информационно-измерительных систем".
Порядок проведения сертификации программного обеспечения включает:
Результатом сертификации является возможность приобрести программный продукт в Российской Федерации с соответствующей поддержкой от производителя или его официального представителя.
В результате проведенной сертификации производитель ПО получает:
Сертификация выгодна и для покупателей соответствующего программного обеспечения. Покупатель получит:
Перечень документов, сопровождающих программное обеспечение, может корректироваться соглашением между исполнителем и заказчиком сертификации ПО.
Анализ требований к программному обеспечению предполагает определение следующих характеристик для каждого компонента ПО:
Требования к ПО оцениваются исходя из критериев соответствия требованиям к системе, реализуемости и возможности проверки при тестировании.
Проектирование архитектуры ПО включает задачи (для каждого компонента ПО):
Архитектура компонентов ПО должна соответствовать требованиям, предъявляемым к ним, а также принятым проектным стандартам и методам.
Детальное проектирование ПО включает следующие задачи:
Кодирование и тестирование ПО охватывает задачи:
Сертификация программного обеспечения представляет собой процесс испытаний программ в нагруженных режимах применения, подтверждающий соответствие показателей качества программного изделия требованиям установленным в нормативно-технических документах на него и обеспечивающий документальную гарантию использования программного средства при соблюдении заданных ограничений.
Сертификация программного обеспечения возможна при выполнении следующих условий:
В процессе сертификации сложного ПО следует выделить два аспекта: методический и технологический. Методический аспект связан с разработкой комплекса методик сертификации программного обеспечения с учетом специфики его применения, а технологический с автоматизацией процесса применения методического аппарата.
Следует отметить, что по некоторым оценкам до 70% общих затрат на создание и внедрение сложных программных комплексов приходится на реализацию процесса их сертификации. Причем значительная доля этих затрат относится к организации аппаратно-программной платформы, моделирующих средств и тестового обеспечения стенда сертификации.
Кроме того, важнейшим вопросом создания качественных программных изделий является обеспечение технологической безопасности ПО на этапе сертификационных стендовых испытаний. Недостаточный уровень развития современных информационных технологий разработки ПО, доминирующее использование зарубежных инструментальных средств и применение разработчиками программ лишь средств защиты от непреднамеренных дефектов обуславливают существенные, принципиально новые изменения технологии создания программ в этих условиях. Поэтому, одной из задач сертификации на современном уровне развития информационных технологий становится выявление преднамеренных программных дефектов.
Технологическая безопасность на этапе сертификационных испытаний характеризуется усилением мер контроля, так как в настоящее время предполагается, что вероятность внедрения закладок на окончательных фазах разработки программ выше, чем на начальных фазах в связи со снижением вероятности их обнаружения при последовательном технологическом контроле. В связи с этим завершающей процедурой тестового контроля и испытаний программ должна стать сертификация ПО по требованиям безопасности с выпуском сертификата на соответствие этого изделия требованиям технического задания.
В условиях существующих технологий создания ПО сертификация программ является наиболее дешевым и быстро реализуемым способом "фильтрации" компьютерных систем от низкокачественных, не отвечающих условиям безопасности программных средств.
Сертификационные испытания программных средств, в том числе защищенных программных средств и программных средств контроля защищенности проводятся в государственных и отраслевых сертификационных центрах.
Право на проведение сертификационных испытаний защищенных средств вычислительной техники, в том числе программных средств предоставляется Гостехкомиссией России по согласованию с Госстандартом России предприятиям-разработчикам защищенных СВТ, специализированным организациям ведомств, разрабатывающих защищенные СВТ, в том числе программные средства.
В соответствии с "Положением о сертификации.." по результатам сертификационных испытаний оформляется акт, а разработчику выдается сертификат, заверенный в Гостехкомиссии России и дающий право на использование и распространение этих средств как защищенных.
Разработанные программные средства после их приемки представляются для регистрации в специализированный фонд Государственного фонда алгоритмов и программ.
Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором. В процессе установки проверяется работоспособность ПО и баз данных. Если устанавливаемое программное обеспечение заменяет существующую систему, разработчик должен обеспечить их параллельное функционирование в соответствии с договором.
Приемка ПО предусматривает оценку результатов квалификационного тестирования ПО и системы и документирование результатов оценки, которые проводятся заказчиком с помощью разработчика. Разработчик выполняет окончательную передачу ПО заказчику в соответствии с договором, обеспечивая при этом необходимое обучение и поддержку.
Процесс эксплуатации охватывает действия и задачи оператора-организации, эксплуатирующей систему и включает действия:
Управление конфигурацией позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях его жизненного цикла. Общие принципы и рекомендации по управлению конфигурацией ПО отражены в проекте стандарта ISO/IEC 12207-2: 1995 “Information TechnologySoftware Life Cycle Processes. Part2. Configuration Management for Software”.
Процесс обеспечения качества обеспечивает соответствующие гарантии того, что ПО и процессы его жизненные циклы соответствуют заданным требованиям и утвержденным планам. Под качеством ПО понимается совокупность свойств, которые характеризуют способность ПО удовлетворять заданным требованиям.
Для получения достоверных оценок создаваемого ПО процесс обеспечения его качества должен происходить независимо от субъектов, непосредственно связанных с разработкой ПО. При этом могут использоваться результаты других вспомогательных процессов, таких, как верификация, аттестация, совместная оценка, аудит и разрешение проблем. Процесс обеспечения качества программного обеспечения включает:
Процесс верификации состоит в определении того, что программные продукты, являющиеся результатами некоторого действия, полностью удовлетворяют требованиям или условиям, обусловленным предшествующими действиями (верификация в узком смысле означает формальное доказательство правильности ПО). В процесс верификации проверяются следующие условия:
Аттестация, так же как и верификация, может осуществляться с различными степенями независимости. Если процесс аттестации выполняется организацией, не зависящей от поставщика, разработчика, оператора или службы сопровождения, то он называется процессом независимой аттестации. Процесс аттестации предусматривает определение полноты соответствия заданных требований и созданной системы или программного продукта их конечному функциональному назначению. Под аттестацией обычно понимается подтверждение и оценка достоверности проеденного тестирования. Аттестация должно гарантировать полное соответствие ПО спецификациям, требованиям и документации, а также возможность его безопасного и надежного применения пользователем. Аттестацию рекомендуется выполнять путем тестирования во всех возможных ситуациях и использовать при этом независимых специалистов. Аттестация может проводиться на начальных стадиях жизненного цикла ПО или как часть работы по приемке ПО.
Процесс совместной оценки предназначен для оценки состояния работ по проекту и ПО. Он сосредоточен в основном на контроле планирования и управления ресурсами, персоналом, аппаратурой и инструментальными средствами проекта. Оценка применяется как на уровне управления проектом, так и на уровне технической реализации проекта и проводится в течение всего срока договора. Данный процесс может выполняться двумя любыми сторонами, участвующими в договоре, при этом одна сторона проверяет другую.
Процесс совместной оценки включает действия:
Аудит это ревизия (проверка) , проводимая компетентным органом (лицом) в целях обеспечения независимой оценки степени соответствия ПО или процессов установленным требованиям. Аудит служит для установления соответствия реальных работ и отчетов требованиям, планам и контракту. Аудиторы не должны иметь прямой зависимости от разработчиков ПО. Они определяют состояние работ, использование ресурсов, соответствие документации требованиям и стандартам, корректность тестирования. Процесс аудита представляет собой определение соответствия требованиям, планам и условиям договора. Аудит может выполняться двумя любыми сторонами, участвующими в договоре, когда одна сторона проверяет другую.
Процесс разрешения проблем предусматривает анализ и решение проблем (включая обнаруженные несоответствия) независимо от их происхождения или источника, которые обнаружены в ходе разработки, эксплуатации, сопровождения или других процессов. Каждая обнаруженная проблема должна быть идентифицирована, описана, проанализирована и разрешена.
В организационные процессы жизненного цикла ПО входят:
1. Процесс управления состоит из действий и задач, которые могут выполняться любой стороной, управляющей своими ресурсами. Данная сторона (менеджер) отвечает за управление выпуском продукта, управление проектом и управление задачами соответствующих процессов, таких, как приобретение, поставка, разработка, эксплуатация, сопровождение и т.д. Процесс управления включает следующие действия:
2. Процесс создания инфраструктуры охватывает выбор и поддержку (сопровождение технологии) , стандартов и инструментальных средств, выбор и установку аппаратных и программных средств, используемых для разработки, эксплуатации или сопровождения ПО. Инфраструктура должна модифицироваться и сопровождаться в соответствии с изменениями требований к соответствующим процессам. Инфраструктура, в свою очередь, является одним из объектов управления конфигурацией.
3. Процесс усовершенствования предусматривает оценку, измерение, контроль и усовершенствование процессов жизненного цикла программного обеспечения.
4. Процесс обучения охватывает первоначальное обучение и последующее постоянное повышение квалификации персонала.
Процессы жизненного цикла программного обеспечения, регламентированные стандартом ISO/IEC 12207, могут использоваться различными организациями в конкретных проектах самым различным образом.
В заключении хотелось бы отметить какой эффект дает сертификация программного обеспечения для разработчиков, заказчика и конечных пользователей программных средств.
Благодаря тестированию, экспертизам, различным видам испытаний и соответствующим доработкам программного обеспечения пользователь получает программный продукт, а не полуфабрикат. По эксплуатационной документации пользователь легко может установить программное обеспечение и быстро освоить приемы работы с ним. Ошибки, выявленные испытательным центром при тестировании и испытаниях, позволяют разработчику повысить надежность и качество программного обеспечения.
Таким образом, заказчик получает уверенность в том, что в его распоряжении находится качественный, законченный программы.