Сертификация автономного программного обеспечения «Модуль расчета массы светлых нефтепродуктов Сургутского ЗСК, отгруженных в железнодорожные цистерны (mvi_gd_l.prg)». М.В. Козлов (АНО «МИЦ»), Ю.А Кудеяров (ФГУП «ВНИИМС»), А.В. Шестаков (АНО «МИЦ») В связи с расширяющимся использованием автоматизированных систем управления (АСУ) производственными процессами в нефтегазовой отрасли, в частности для учета потоков сырьевых ресурсов, проблема оценки качества программного обеспечения (ПО), являющегося неотъемлемым элементом таких систем, стала чрезвычайно актуальной. В АСУ присутствуют измерительные каналы различной организации и степени сложности. Средства измерений (СИ), входящие в их состав, в большинстве случаев используют встроенные программные продукты, существенно расширяющие, а зачастую и определяющие функциональные возможности самих СИ. Одновременно в АСУ могут использоваться автономные программные продукты, взаимодействующие с различными СИ и способные, при определенных неблагоприятных условиях, оказывать негативное влияние на результаты измерений. Очевидно, что указанные качества ПО должны быть систематизированы и метрологически исследованы. С целью объективной оценки качества программных продуктов (как встроенных, так и автономных) была создана Система добровольной сертификации программного обеспечения (СДС ПО), ориентированная на средства измерений, информационно-измерительные системы и аппаратно-программные комплексы, в которой уже в течение длительного времени, начиная с 2006 года, проводятся сертификационные испытания названных объектов сертификации. Одной из задач сертификации продукции является установление соответствия её свойств требованиям нормативной документации. Основными документами, с которыми работает СДС ПО, являются ГОСТ Р 8.654-2009 [1] «ГСИ. Требования к программному обеспечению средств измерений. Основные положения» и методика института МИ 2955-2010 [2] «ГСИ. Типовая методика аттестации программного обеспечения средств измерений. Основные положения». Сертификация ПО СИ является актуальной, но не имеющей ещё глубоко укоренившихся методологических подходов деятельностью, активно ведущейся энтузиастами в нашей стране, и более систематично – в странах Европы и Северной Америки. Несмотря на ряд критических замечаний, которые можно услышать от специалистовметрологов в адрес упомянутых отечественных документов, с нашей точки зрения, они достаточно полно гармонизированы с такими известными международными рекомендациями, как Рекомендация Международной организации законодательной метрологии OIML D 31:2008(E) [3], устанавливающая общие требования к программно-контролируемым средствам измерений и руководство по программному обеспечению WELMEC 7.2 [4]. В данной статье описан метод сертификации с помощью опорного программного продукта, разработанного специально для сертификации ПО, используемого при расчете массы светлых нефтепродуктов Сургутского завода по стабилизации конденсата (ЗСК). В соответствиями с правилами функционирования СДС ПО была разработана методика сертификационных испытаний (далее – Методика) данного ПО, основанная на установленных вышеуказанной нормативной документацией требованиях к испытаниям программного продукта. Прежде всего, согласно [1], требования, которым должно соответствовать ПО СИ, следующие: требования к технической документации на ПО; требования к методам идентификации и к возможности установления идентификационных признаков программного продукта; требования к функциональным и вычислительным возможностям ПО. Также требованием Методики является определение уровня защищенности представленного образца ПО и данных. 2 При проверке технической документации анализировалось ее содержание, в том числе: обозначение ПО, включающее в себя его наименование, обозначение версии или версий его модулей; описание назначения ПО, его структуры и выполняемых функций; описание методов и способов идентификации ПО, а также его значимых частей, функций и параметров; описание интерфейсов пользователя, всех меню и диалогов; описание интерфейсов связи ПО для передачи, обработки и хранения данных (в т.ч. посредством открытых или закрытых сетей связи); описание реализованных методов защиты ПО и данных; описание способов хранения данных на встроенном, удаленном или съемном носителе; описание требуемых программных и аппаратных средств; указание на языки программирования, среду разработки, средства компиляции, использованные при разработке ПО. В результате было установлено, что документация тестируемого ПО в полной мере удовлетворяет требованиям, предъявляемым к ней нормативной документацией. Далее методика предусматривает проверку идентификационных признаков ПО. Под идентификационными признаками понимаются встроенные алгоритмы определения версионности ПО, расчет контрольных сумм или иные специфические критерии, однозначно идентифицирующие конкретный программный продукт. К сожалению, разработчики программного продукта не всегда предусматривают наличие встроенных алгоритмов определения идентификационных признаков. В тестируемом ПО, в силу специфики его структуры, также не было предусмотрено встроенных алгоритмов определения идентификационных признаков, поэтому для идентификации программного продукта использовалось стороннее автономное 3 ПО, рассчитывающее контрольную сумму по стандартному алгоритму MD5. Поскольку программное разделение (выделение метрологически значимой части) не было предусмотрено разработчиком, контрольные суммы рассчитывались для всех файлов программного продукта, таким образом, всё ПО было признано метрологически значимым. В соответствии с Методикой предстояло провести оценку функциональных и вычислительных возможностей ПО, в частности, установить относительное отличие расчетов, проведенных алгоритмами ПО, от расчетов, выполненных программным продуктом, принятым за опорный. Для выполнения этих задач был собран испытательный стенд, состоящий из персонального компьютера и испытываемого ПО. Был также подготовлен тестовый набор данных, учитывающий следующие параметры: код вида нефтепродукта в соответствии с таблицами температурных поправок для расчета плотности; уровень нефтепродукта в железнодорожной цистерне (с точностью до одного знака после запятой); температура (ºС), при которой выполнялось измерение уровня налива нефтепродукта (с точностью до одного знака после запятой); тип калибровочного котла железнодорожной цестерны; плотность нефтепродукта (кг/м3), определенная в лабораторных условиях (с точностью до одного знака после запятой); температура (ºС), при которой определена плотность в лабораторных условиях (15°С или 20°С). На выходе испытываемый программный продукт должен был выдать следующие параметры: масса нефтепродукта в цистерне, (т), (с точностью до третьего знака после запятой); объем нефтепродукта в цистерне (м3), при температуре измерения уровня налива (с точностью до третьего знака после запятой); 4 плотность нефтепродукта в цистерне (кг/м3) при температуре измерения уровня налива, определенная в лабораторных условиях с точностью до одного знака после запятой. Специфика тестирования данного конкретного ПО заключалась в том, что аналогичный широко известный и апробированный готовый опорный программный продукт отсутствовал, поэтому, с учетом того, что основные алгоритмы обработки измерительной информации не были сложными, было принято решение его разработать. При этом, для решения поставленной задачи, можно было ограничиться воспроизведением не всех функций тестируемого ПО, а только тех, которые будут подвергаться проверке. Проверка ПО осуществлялась по схеме, представленной на рис. 1. Рис.1. Схема тестирования ПО. Испытываемым ПО являлось ПО Сургутского ЗСК, опорным ПО – программный продукт, который был разработан на основе вычислительных алгоритмов, используемых в тестируемом ПО. Основным документом, содержащим описание вычислительных алгоритмов, служила Методика выполнения измерений (МВИ) массы нефтепродуктов, отгружаемых в железнодорожные цистерны, на сливоналивных эстакадах Сургутского ЗСК [5]. Основные расчетные функции, определённые МВИ следующие: 5 масса продукта в железнодорожной цистерне М (кг) определяется соотношением: М Vф ρ V , где V - плотность продукта (кг/м3), Vф - фактический объем про- дукта (м3). Объем продукта определяется по таблицам калибровки железнодорожных цистерн, исходя из типа цистерны и уровня налива жидкости, измеренного в соответствии с МВИ. Если температура при измерении уровня налива продукта в цистерне отличается от 20 ºС, то фактический объем продукта в железнодорожной цистерне Vф (м3) определяется так: Vф К t V , где V - объем продукта в железнодорожной цистерне на измеряемом уровне (м3), определяемый по таблице калибровки, составленной при температуре 20 ºС. Кt - коэффициент корректировки объема продукта в цистерне по температуре, рассчитываемый по формуле: К t 1 (2α ст α s ) (t ст 20) , где tст - температура стенки железнодорожной цистерны, принимаемая равной температуре продукта, (С); αст, αs - температурные коэффициенты линейного расширения материала стенки железнодорожной цистерны и метроштока, соответственно, (С1) . Значение температурного коэффициента линейного расширения мате- риала для стали равно 12,5·10-6 С-1, для алюминия – 2,3·10-6 С-1. При определении объема продукта, соответствующего уровню между значениями, определенными в градуировочных таблицах (вычисление объема неполного сантиметра), в соответствии с МВИ использовался метод линейной интерполяции. 6 Указанные выше особенности нашли свое отражение в разработанном опорном программном продукте. Специфика вычислительных алгоритмов позволила разработать его в среде Microsoft Excel. Были прописаны вычислительные алгоритмы, внесены данные градуировочных таблиц, подготовлен массив тестовых данных (см. Таблицу 1). Таблица 1. Тестовые примеры (фрагмент отчета). 7 В процессе испытаний был получен массив данных, состоящий из 800 тестовых задач, ориентированных на различные виды топлива. Фрагмент результирующих таблиц, полученных после обработки данных, представлен в Таблице 2. Таблица 2. Фрагмент результирующего отчета. 8 В соответствии с методикой оценки вычислительных возможностей тестируемого ПО, тот же массив данных подавался на вход испытываемого ПО, и было проведено сличение результатов, полученных опорным и испытываемым программным обеспечением. Сличение результатов показало, что относительное отличие вычислительных алгоритмов ПО «Модуль расчета массы светлых нефтепродуктов Сургутского ЗСК, отгруженных в железнодорожные цистерны (mvi_gd_l.prg)» от опорных не превышает ±0.05 %. Указанная величина явилась подтверждением надлежащего качества программного обеспечения Сургутского ЗСК. На завершающем этапе работы согласно Методике анализировались реализованные в ПО методы защиты программного продукта и данных. В частности, файлы данного автономного ПО хранились в бинарном виде, что делало невозможным несанкционированное воздействие на них и их изменение без применения сторонних программных (технических) средств. В настоящей статье на конкретном примере описан практически реализованный подход к сертификации программного обеспечения, предназначенного для расчета массы нефтепродуктов. Описанная выше методика, представляющаяся наиболее оправданной для сертификационных испытаний ПО в случаях, когда отсутствует готовый опорный программный продукт, неоднократно использовалась испытательными лабораториями в рамках упомянутой выше Системы добровольной сертификации программного обеспечения и аппаратно-программных комплексов. 9