ГОСТ Р 50779.90-2014/ISO/TR 13519:2012
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Статистические методы
ТРЕБОВАНИЯ К ИНФОРМАЦИИ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ, ИСПОЛЬЗУЕМОМ ПРИ РАЗРАБОТКЕ НОРМАТИВНЫХ ДОКУМЕНТОВ
Statistical methods. Requirements to information about software, used in development of normative documents
ОКС 03.120.30
Дата введения 2015-12-01
Предисловие
1 ПОДГОТОВЛЕН Открытым акционерным обществом "Научно-исследовательский центр контроля и диагностики технических систем" (АО "НИЦ КД") на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в пункте 4
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 125 "Применение статистических методов"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 29 октября 2014 г. N 1454-ст
4 Настоящий стандарт идентичен международному документу ISO/TR 13519:2012* "Требования к информации о программном обеспечении, используемом при разработке нормативных документов" (ISO/TR 13519:2012 "Guidance on the development and use of ISO statistical publications supported by software", IDT).
________________
* Доступ к международным и зарубежным документам, упомянутым в тексте, можно получить, обратившись в Службу поддержки пользователей. - .
Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2012 (пункт 3.5)
5 ВВЕДЕН ВПЕРВЫЕ
6 ПЕРЕИЗДАНИЕ. Июль 2020 г.
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
В настоящем стандарте установлены требования по разработке документов в области статистических методов, поддерживаемых программным обеспечением.
В стандарте рассмотрены следующие аспекты:
- прослеживаемость данных, используемых в программном обеспечении (чисел, графиков, таблиц и других количественных данных);
- требования к программному обеспечению;
- категории поддержки программного обеспечения;
- функционирование программного обеспечения, включая использование контрольных данных для тестирования программ.
Все ссылки на коммерческие программные продукты любого вида (включая программное обеспечение, данные или аппаратные средства) или ссылки на сайты не предполагают необходимости получения разрешения, одобрения или рекомендаций со стороны разработчика, а также и какой-либо ответственности со стороны пользователя.
1 Область применения
В настоящем стандарте установлены требования к разработке и использованию документов, поддерживаемых программным обеспечением (далее документов). В первую очередь эти требования относятся к документам в области статистических методов, однако они применимы и к другим документам.
В стандарте даны рекомендации по обеспечению прослеживаемости данных, используемых в программном обеспечении документа (графиках, таблицах и других числовых данных).
В настоящем стандарте приведены требования к информации, которая должна быть включена в документ, относящейся к программному обеспечению, категориям поддержки программного обеспечения и функционированию программного обеспечения, включая набор данных, используемый для тестирования.
В стандарт включены примеры, иллюстрирующие его применение.
2 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
2.1 алгоритм (algorithm): Пошаговая процедура, описывающая порядок выполнения вычислений с детализацией, достаточной для разработки соответствующего программного обеспечения.
2.2 программные данные (data product): Цифровые данные, включая рисунки и графики, представленные в цифровой форме.
Пример 1 - Числовая таблица.
Пример 2 - Рисунок, представленный в цифровой форме, как набор пикселей.
2.3 область применения (domain of applicability): Набор входных данных, для которых программное обеспечение должно работать установленным способом.
2.4 числовая точность (numerical accuracy): Точность числовой величины, выраженная в виде количества правильных десятичных цифр в абсолютной или относительной форме представления числа.
2.5 параметризация задачи (problem parametrization): Математическое описание задачи, включающее установленный набор параметров.
Примечание - Как правило, в описании использовано более одного параметра.
Пример - Уравнение прямой с двумя переменными (См. ISO/TS 28037:2010).
Прямая может быть представлена в виде и (и другими способами). Вторая форма более предпочтительна, если она должна быть использована как модель линейной регрессии, где - температура по Цельсию, близкая к 100°С (см. ISO/TS 28037:2010).
2.6 контрольные данные (reference data): Данные, используемые для тестирования элементов программного обеспечения при выполнении вычислений.
2.7 контрольный результат (reference result(s)): Результат, который должен быть получен при выполнении вычислений в соответствии с установленным алгоритмом с использованием контрольных данных.
Примечание - Контрольный результат не зависит от тестируемого программного обеспечения и числовой точности, если она выше, чем требуемая точность результатов тестируемого программного обеспечения.
2.8 результат тестирования (test result(s)): Результат, полученный при тестировании программного обеспечения при выполнении вычислений в соответствии с установленным алгоритмом с использованием контрольных данных.
2.9 тестируемое программное обеспечение (test software): Программное обеспечение, для которого проводят тестирование.
2.10 интервал округления (unit roundoff): Расстояние от 1,0 до самого близкого числа с плавающей запятой строго меньшего 1,0.
Примечания:
1 - См. IEEE 754:2008 (см. [1]).
2 - Числа с плавающей запятой являются частью системы вычислений, используемой для получения статистических результатов.
3 - Все значения, приведенные в настоящем стандарте, получены на компьютере, имеющем интервал округления 2,2210.
3 Прослеживаемость данных
3.1 Документ должен обеспечивать прослеживаемость до достоверных источников всех использованных числовых данных, включая графики и рисунки. Такие данные называют программными данными в отличие от источника или исходных данных.
3.2 Прослеживаемость данных обеспечивается представлением информации об исходных данных и процессах, с помощью которых получены программные данные из исходных данных. Этот процесс называют преобразованием данных.
Примечание - Прослеживаемость достоверности опубликованных данных жизненно важна для научных работ и практического применения статистических методов.
3.3 При разработке документа происхождение программных данных должно быть описано, чтобы программные данные могли быть воспроизведены и обновлены при необходимости.
Примечание - Вопросы прослеживаемости рассмотрены в ИСО 19115-1 (см. [5]). Этот стандарт разработан для географической информации в форме цифровых данных, но его принципы применимы и к другим данным. Стандарт ИСО 19115-1, как правило, применяют к задачам, требующим создания и использования крупномасштабных баз данных. Настоящий стандарт ориентирован на существенно меньшие объемы данных, но некоторые понятия ИСО 19115-1 в этом случае также полезно использовать.
3.4 Для всех программных данных используемые исходные данные и примененные преобразования данных следует записывать достаточно подробно, что обеспечивает возможность воспроизведения программных данных. Для этого в соответствующем программном обеспечении должны быть приведены необходимые прямые ссылки.
3.5 Если программные данные представляют собой график или рисунок, прослеживаемость охватывает и необходимую разрешающую способность. Для цифровых данных прослеживаемость касается количества необходимых десятичных знаков.
Пример - Программные данные, полученные с применением MATLAB и LATeX.
Все числовые таблицы в ISO/TS 28037:2010 были получены с использованием MATLAB и LATeX для создания PDF-версии ISO TS/28037:2010. Таблица содержит данные, полученные преобразованием (с помощью MATLAB) набора данных, соответствующего точкам (источникам данных) или данным, полученным с помощью моделирования на основе информации источника данных. При разработке проекта отражены все изменения в источнике данных и преобразования, использованные для получения программных данных. Проверка (при подготовке к изданию) показала, что никаких ошибок преобразований в числовых таблицах нет. Исходные данные и детали преобразований установлены в ISO/TS 28037:2010.
Исходные данные и преобразования приведены в ISO/TS 28037:2010.
Примечания:
1 - Разработчик программного обеспечения может поддерживать соответствующий веб-сайт для обеспечения прослеживаемости данных и программного обеспечения.
2 - MATLAB является торговой маркой программного продукта, поставляемого MathWorks Inc.
3.6 К десятичным числам применяют правила округления, установленные в приложении В ИСО 80000-1:2009 (см. [6]).
4 Требования программного обеспечения
Документ должен содержать требования программного обеспечения, которые могут быть полезны при его использовании. Программное обеспечение, как правило, касается статистических вычислений. Требования программного обеспечения должны включать следующие элементы:
a) входы программного обеспечения;
b) выходы программного обеспечения;
c) преобразование входов в выходы;
d) связь входов и выходов и промежуточных значений с характеристиками, использованными в документе;
e) функционирование программного обеспечения с указанием числовой точности результатов (см. также 6.2).
Пример 1 - см. ИСО 13528:2005 "Статистические методы при экспериментальной проверке компетентности посредством межлабораторных сравнительных испытаний".
В подразделе 8.6 ИСО 13528:2005 приведен пример построения графика стандартного отклонения повторяемости для каждой лаборатории, участвующей в схеме проверки квалификации, по сравнению с соответствующим средним арифметическим по всем лабораториям. Также построена доверительная область, соответствующая уровню значимости (1-Р) в предположении о нормальности распределения. В этом случае требования программного обеспечения имеют вид:
a) Входные данные:
- количество участвующих лабораторий;
- количество повторных измерений характеристики;
- среднее значение характеристики для -той лаборатории, =1, ..., ;
- стандартное отклонение в пределах лаборатории для -той лаборатории =1, ..., ;
- уровень значимости (например, 0,05).
b) Выходные данные:
- координата на оси , определяющая границу доверительной области с уровнем значимости 100%;
- соответствующая координата на оси .
c) Выходы получены из входов с использованием:
значений , лежащих в интервале от до , где
,
и значений , соответствующих этим значениям ,
,
где * - робастное среднее , ..., и * - робастное объединенное значение , ..., (см. перечисление d);
d) Связь входов и выходов и соответствующих промежуточных значений:
Параметры, перечисленные в a) и b) и их взаимосвязь описаны в подразделе 8.6.1 ИСО 13528:2005.
Значение * вычисляют с помощью алгоритма , приведенного в п.С.1 приложения С ИСО 13528:2005.
. Значения вычисляют с помощью алгоритма , приведенного в п.С.2 приложения С ИСО 13528:2005.
Для расчета s используют формулу (41) в ИСО 13528:2005.
e) Функционирование программного обеспечения
Для входных значений, лежащих в пределах установленной области применения, стандартные отклонения и средние значения должны быть представлены в виде десятичного числа с одним и тем же установленным количеством значащих цифр (обычно 1 или 2).
В каждом конкретном случае должны быть заданы конкретные числовые значения входных параметров (, , , и ). Рисунок 11 в ИСО 13528:2005 является примером графика, построенного по точкам (, ), =1, ..., . На рисунке также приведены границы доверительных областей, соответствующих уровню значимости для =[0,001; 0,01; 0,05].
Пример 2 - см. ISO/TS 28037:2010
В разделе 9 ISO/TS 28037:2010 приведен пример получения оценок a и b параметров и линейной калибровочной функции с переменными и . Результаты измерений значений и , переменных и , а также соответствующая им стандартная неопределенность и ковариация cov (, ) для каждой пары чисел (, ), =1, ..., , j=1, ..., , # известны. Предполагается, что неопределенности пренебрежимо малы, как и их ковариации. Требования программного обеспечения в этом случае следующие:
a) входные значения для программного обеспечения:
- количество результатов измерений;
- значение координаты -ой точки по оси X, =1, ..., ;
- значение координаты -ой точки по оси Y, =1, ..., ;
- стандартная неопределенность , =1, ..., ;
(, ) - ковариация пары чисел (, ), j=1, ..., , =1, ..., , # .
b) выходные значения:
a - оценка ;
b - оценка ;
u(a) - стандартная неопределенность оценки a;
и(b) - стандартная неопределенность оценки b;
cov(a, b) - ковариация оценок a и b.
c) выходы получены из входов с использованием алгоритма, приведенного в подразделе 9.2.2 ISO/TS 28037:2010;
Примечание - Программное обеспечение может быть найдено в Интернете по ссылке //iso.org/iso/ts/28037.
d) входные и выходные значения и соответствующие промежуточные значения;
Параметры, перечисленные в a) и b) и их взаимосвязь описаны в подразделах 9.1 и 9.2 ISO/TS 28037:2010.
e) функционирование программного обеспечения
Программное обеспечение позволяет получить результаты, имеющие необходимую числовую точность для практических задач калибровки за счет использования устойчивых численных методов (см. 6.2). Программное обеспечение воспроизводит программные данные (числа, графики, таблицы и другие числовые результаты) в соответствии с разделом 3 ISO/TS 28037:2010.
5 Сопровождение программного обеспечения
5.1 Сопровождение программного обеспечения
5.1.1 Разработчику следует рассмотреть все аспекты программного обеспечения, применяющегося в документе и установить категории сопровождения. Категориями сопровождения являются следующие:
0 отсутствие сопровождения;
1 программное обеспечение общего назначения, представляемое третьей стороной;
2 конкретное программное обеспечение, предоставляемое третьей стороной;
3 автономное программное обеспечение, сопровождающее документ, т.е. программное обеспечение, которое может применить пользователь документа;
4 текст программы, включенной в документ может быть расширен или обобщен и использован пользователем или третьей стороной для разработки собственного программного обеспечения;
5 алгоритм для разработки программного обеспечения пользователями или третьей стороной.
Категория сопровождения в каждом случае должна быть указана в документе.
Примечания:
1 - "Третья сторона" является поставщиком программного обеспечения, первая сторона - пользователь документа, вторая сторона - организация, участвующая в подготовке документа.
2 - Требования 2 и 3 приведены в примере в 5.1.3.
5.1.2 В каждом документе должна быть приведена следующая информация:
a) область применения программного обеспечения;
b) числовая точность результатов при использовании программного обеспечения. Также может быть указана мера чувствительности выходов к изменениям входных значений (см. 6.2.4);
Примечание - Числовая точность зависит от входных данных и должна быть установлена для этих данных.
c) все результаты, которые могут быть получены с помощью программного обеспечения в дополнение к имеющимся выходам. Это могут быть результаты промежуточных вычислений;
d) время выполнения программы и требования к памяти, необходимой для использования программного обеспечения.
Пример - Время вычисления медианы по N входным данным сопоставимо со временем сортировки N чисел с плавающей запятой при использовании быстрого алгоритма сортировки.
Разработчик должен проанализировать, какие из пунктов a)-d) относятся к разрабатываемому документу, и определить категорию сопровождения в соответствии с 5.1.1.
Примечания:
1 - Время выполнения программы зависит от многих факторов, в том числе от аппаратных средств и языка программирования, поэтому оно может быть указано в относительных величинах.
2 - Применение программного обеспечения рассмотрено в 6.2.
5.1.3 Для каждой задачи следует установить и указать в документе требования к программному обеспечению, необходимому для ее решения:
A - может быть использовано любое программное обеспечение, пригодное для выполнения задачи;
B - требование, приведенное в перечислении A, с установленными требованиями к программному обеспечению;
C - следует использовать только программное обеспечение, реализующее установленный алгоритм;
D - может быть использовано только конкретное программное обеспечение (например, программное обеспечение, разработанное конкретной третьей стороной или программное обеспечение, сопровождающее документ).
Пример 1 - Иллюстрацией категории A является ISO/TR 12845:2010.
В ISO/TR 12845:2010 (см. [9]) использовано программное средство по обработке статистических данных для анализа экспериментальных данных в шести примерах. В каждом примере программное средство помогает пониманию результатов анализа экспериментальных данных. Всего использовано четыре программных средства:
a) JMP, торговое наименование продукта, поставляемого SAS Inc;
b) Disign-Expert, торговое наименование продукта, поставляемого Stat-Прост, Inc;
c) Minitab, торговое наименование продукта, поставляемого Minitab Inc;
d) R, бесплатная среда программирования для выполнения статистических вычислений, которая работает на различных платформах UNIX, Windows и MacOS.
Примечания:
1 - Эта информация приведена для удобства пользователей ISO/TR 12845:2010 и не означает одобрения указанных программных продуктов.
2 - Для анализа экспериментальных данных рассматриваемого типа существуют также другие статистические программные продукты.
3 - В отдельных случаях, особенно для критически важных применений, может быть полезно сравнить результаты, полученные с помощью нескольких программных средств. Однако следует помнить, что результаты могут отличаться по разным причинам, и пользователи не всегда могут выявить эти причины.
4 - В ISO/TR 14468:2010 (см. [10]) и ISO/TR 29901:2007 (см. [11]) для анализа экспериментальных данных также использованы программные средства JMP и Minitab.
Пример 2 - Иллюстрация категорий A-D: моделирование по данным параметров линейной модели.
Рассмотрим задачу моделирования значений , , i=1, ..., , соответствующих линейной модели, используя метод наименьших квадратов, где:
(a) известна стандартная неопределенность установленных значений ;
(b) неопределенностью значений можно пренебречь;
(c) ковариация любой пары данных отсутствует.
Для такой задачи уровень требований означает, что может быть использовано любое программное обеспечение, допускающее расчеты в соответствии с методом наименьших квадратов:
,
где - линейная функция с параметрами , ..., (минимизацию выполняют по , ..., ).
Примером уровня требований является возможность использования такого же как указано выше программного обеспечения, но с реализацией численно-устойчивого алгоритма, гарантирующего, что ошибки округления с плавающей запятой не оказывают влияния на результаты вычислений. В частности программное обеспечение должно обеспечивать установленную числовую точность (6.2), по крайней мере, для всех примеров, приведенных в документе (см. пример 1 e) в разделе 4).
Уровень требований означает, что может быть применено только программное обеспечение, специально предназначенное для решения задачи
,
где и - свободный член и угловой коэффициент прямой, соответственно - остаток модели в точке .
Уровень требований означает, что необходимо применить только программное обеспечение, разработанное в качестве сопровождения к разделу 6 ИСО/TS 28037:2010 (см. раздел 4, пример 2).
5.1.4 Подходящими могут быть часть или части большого пакета программ. В этом случае они должны быть идентифицированы.
5.1.5 Результаты, полученные с помощью программного обеспечения, могут зависеть от:
a) версии программного обеспечения;
b) версии среды программного обеспечения;
c) версии языка программирования;
d) версии операционной системы;
e) компьютерной техники.
Выбор элементов a)-e) должен быть сделан так, чтобы минимизировать эти влияния в максимально возможной степени. Эти аспекты также касаются сопровождения программного обеспечения (см. 6.3).
5.2 Особенности поддержки программного обеспечения
5.2.1 Программное обеспечение, поддерживающее статистические вычисления, может иметь следующую форму:
a) свободное общедоступное программное обеспечение;
b) коммерческое общедоступное программное обеспечение;
c) свободное программное обеспечение закрытого источника;
d) коммерческое программное обеспечение закрытого источника.
Примечание 1 - Свободное общедоступное программное обеспечение представляет собой программное обеспечение, разработанное, тестированное, распространяемое и модифицируемое для общего пользования. Пользователь имеет возможность модифицировать и улучшать это программное обеспечение.
Примечание 2 - Коммерческое общедоступное программное обеспечение представляет собой программное обеспечение, которое содержит элементы свободного общедоступного программного обеспечения, но часто с ограниченной функциональностью.
Примечание 3 - Анализ показывает, что:
(a) пользователи документов чаще применяют бесплатное общедоступное программное обеспечение;
(b) общедоступное программное обеспечение открыто для контроля и привлекает больше общественного внимания.
5.2.2 Если наиболее важными факторами являются прозрачность и прослеживаемость, то для выбора программного обеспечения следует применять перечисления a)-d) 5.2.1.
5.2.3 Наибольшее внимание пользователи уделяют практическому функционированию программного обеспечения.
5.2.4 Следует также уделять внимание известным брендам применяемого программного обеспечения.
Примечание - Не следует указывать в требованиях применение программного обеспечения, не совместимого с платформами, используемыми большинством пользователей документа.
5.3 Языки программного обеспечения
5.3.1 При выборе языка программного обеспечения для категории 4 (см. п.5.1.1), должно быть уделено внимание следующим аспектам:
a) переносимости: компиляторы языков, таких как C, C++, Java и ФОРТРАН доступны для многих различных платформ программного обеспечения;
b) стабильности: языки, устойчивые в течение долгого времени, обладают преимуществами. Например, программы, которые удовлетворительно работали в ранних версиях ФОРТРАНа, как правило, также работают и в более свежих версиях языка;
c) соответствию стандартам: предпочтительно использование языков, принятых в ИСО;
d) используемости конечными пользователями: следует избегать применения языков программирования, которые не могут быть легко установлены для использования целевой аудиторией, и отдавать предпочтение языкам программирования, имеющимся у пользователей или легко устанавливаемым.
5.3.2 При необходимости следует приводить тексты программ на нескольких языках.
5.3.3 Решающим фактором является степень, в которой текст программы помогает реализации требований документа.
6 Качество
6.1 Общие положения
6.1.1 Программное обеспечение, которое поддерживает статистические вычисления, следует разрабатывать в соответствии с системой качества программного обеспечения. Модель оценки качества программного обеспечения приведена в ИСО/МЭК 25010 (см. [7]). Положения этого стандарта касаются ряда подпунктов настоящего стандарта.
Рисунок 1 - Модель оценки качества программного обеспечения по ИСО/МЭК 25010:2011
Качество программного обеспечения следует проверять при валидации с применением контрольных данных или других сопоставимых средств.
6.1.2 Приведенный текст программы должен соответствовать требованиям [15]. В частности он должен:
- включать необходимые комментарии;
- использовать важные имена идентификаторов, предпочтительно с использованием терминов, применяемых в документе.
6.1.3 Требования к документации пользователя установлены в ИСО/МЭК 26514:2008.
6.2 Функционирование программного обеспечения
6.2.1 Примеры, приводимые в документе
Чтобы получить числовые результаты примера, приведенного в документе, во многих случаях достаточно использовать коммерческое программное обеспечение (например, Microsoft Excel, MATLAB, Minitab, SAS). Если проводятся статистические вычисления, которые можно выполнить с помощью одной программы (например, -критерий или дисперсионный анализ), достаточно применить подходящее программное обеспечение. Однако нельзя предположить, что любое коммерческое программное обеспечение может обеспечить получение необходимых результатов. Вычисление, например, стандартного отклонения для набора чисел [см. страница 109 [13]] (также см. пример 1 в 6.2.4) не может быть хорошо выполнено любым доступным программным обеспечением. В таких случаях в документе следует указать элемент программного обеспечения, который необходимо использовать. В некоторых случаях предварительная обработка данных может сделать их более подходящими для применения определенных элементов программного обеспечения. Полученные результаты в этом случае следует пересчитать к исходному состоянию.
Пример - Центрирование и масштабирование данных в регрессионном анализе.
Рассмотрим преобразование независимой переменной в задаче регрессии, с помощью центрирования и масштабирования:
.
Здесь - исходная величина;
- преобразованная величина;
- величина масштаба, выбранная таким образом, чтобы новая переменная принимала значения в интервале [-1, 1]. Если исходные значения имеют широкий интервал изменчивости, то преобразованные данные изменяются в более узком диапазоне и облегчают вычисления.
Если переменных несколько, такое преобразование можно применить к каждой переменной. Дополнительная информация приведена в [13].
6.2.2 Контрольные данные
6.2.2.1 Для оценки пригодности программного обеспечения рекомендуется использовать контрольные данные. Изложение такого подхода приведено в [13]. Такой подход может быть использован для получения показателя согласованности программного обеспечения с положениями документа. В основном документ основан на следующих положениях:
a) при тестировании программного обеспечения его рассматривают как "черный ящик". Таким образом, рассматривают только входные и выходные данные;
b) правильное выполнение тестирования программного обеспечения дает результаты с требуемой числовой точностью для входных данных в пределах области применения программного обеспечения;
c) процесс тестирования обеспечивает получение информации о степени выполнения требований, приведенных в перечислении b);
d) доступен необходимый набор контрольных данных и соответствующих контрольных результатов. Набор должен соответствовать реальным входным данным, соответствующим перечислению b) по мере возможности;
e) числовая точность контрольных данных должна быть выше требуемой в документе;
f) при тестировании программного обеспечения результаты тестирования для контрольных данных сравнивают с контрольными результатами.
6.2.2.2 Тестируемое программное обеспечение должно, по крайней мере, давать результаты, соответствующие результатам примеров, приведенных в документе, и воспроизводить эти результаты.
6.2.2.3 Контрольные данные и соответствующие контрольные результаты, указанные в 6.2.2.1 d), должны быть взаимно совместимыми до требуемой степени. Предположим, что тестируемое программное обеспечение должно давать для контрольных данных результаты с установленной числовой точностью. Результаты, полученные при тестировании, должны иметь такую же точность, как и контрольные результаты. Как правило, высокая числовая точность представляет собой один или два знака после запятой.
6.2.2.4 Сопоставление, указанное в 6.2.2.1 f), предусматривает определение меры отклонения результатов тестирования от контрольных результатов. Это отклонение может быть оценено в абсолютных или относительных величинах.
Примечание - Статистические тесты NIST предоставляют справочные наборы данных с сертифицированными значениями для различных статистических методов.
6.2.3 Сопоставление результатов выполнения нескольких программ
Если наборы контрольных данных недоступны, можно оценить пригодность рассматриваемого программного обеспечения, сравнивая его результаты с результатами другого аналогичного программного обеспечения для одних и тех же входных данных. Следует помнить, что такая проверка может только продемонстрировать согласованность результатов работы двух или нескольких программ, но не может подтвердить их корректность. Однако, она все же обеспечивает некоторое доверие к рассматриваемому программному обеспечению, если сравнение с другим, независимо разработанным программным обеспечением, дает благоприятный результат.
6.2.4 Вопросы численного анализа
Вопросы численного анализа актуальны во многих случаях. Например, может существовать много способов описания алгоритма и много математически эквивалентных формул, но при арифметических расчетах с плавающей запятой числовые свойства результатов могут быть различны.
Пример 1 - Оценка точности среднего арифметического и стандартного отклонения.
Среднее арифметическое и оценка стандартного отклонения для значений , =1, ..., имеют вид:
, . (1)
В большинстве случаев (хотя бывают и исключения) программное обеспечение для вычисления среднего арифметического по заданным дают результат, относительная числовая точность которого стремится к единице округления и, следовательно, является приемлемой во всех прикладных областях. Вычисление зависит от качества программного обеспечения.
Рассмотрим следующие значения массы (в килограммах) с номинальным весом 1 кг, полученные с помощью точных весов, таких как, например, в национальном институте метрологии:
1,000 000 008; 1,000 000 012; 1,000 000 009; 1,000 000 009; 1,000 000 011. (2)
Используя функции среднего арифметического и стандартного отклонения в Microsoft Excel 2000 (версия 9.0 6926 3) с требованием девяти знаков после запятой, получаем: =1, 000 000 010 кг, =0,000 000 021 кг.
Среднее арифметическое является корректным, а отличается от своего целевого значения (с девятью значащими цифрами, =0,000 000 002 кг).
Потенциально нестабильная формула (см. [13])
(3)
является математически верной, но не самой удачной для вычислений. Для наборов данных с небольшим коэффициентом вариации эта формула дает более грубые значения стандартного отклонения*. Стандартное отклонение в выражении (1) намного более устойчиво в таких случаях.
________________
* За счет потери одного члена формулы (1).
Пример 2 - Ситуация аналогична примеру 1, но в условиях производственной калибровочной лаборатории.
Предположим, что следующие значения массы в кг получены в производственной калибровочной лаборатории. Эти значения имеют неопределенность большую, чем в примере 1 (шесть знаков после запятой):
1,000 008; 1,000 012; 1,000 009; 1,000 009; 1,000 011. (4)
Использование тех же формул Microsoft Excel для 6 знаков после запятой дает =1,000010 кг, =0,000002 кг, которые в этом случае являются корректными.
Примечания:
1 - Данные (4) были представлены в виде (1+10 (-1)), где - данные (2) из примера 1.
2 - Использование нестабильной формулы (3) достаточно для этих и сопоставимых данных, при использовании компьютера с единицей округления 2,2210 или меньше. Однако рекомендуется всегда использовать формулу (1).
Пример 3 - Угол между двумя векторами.
Рассмотрим вычисление угла между двумя векторами и (см. [14]). Математическая формула для вычисления угла имеет вид (см. рисунок 2):
, (5)
. (6)
Рисунок 2 - Угол между двумя векторами
Формула (5) является более простой на вид и приемлема для решения задачи. Различие формул особенно для применения в метрологии (см. ниже) тем не менее, заметно.
Предположим, что векторы почти параллельны, как в ИСО 10360-6:2001, где , 0<<<1.
В соответствии с (5) , отсюда .
При получении результатов для значений с плавающей запятой существует ошибка округления (см. определение 2.10). Для стандартного формата представления чисел с плавающей запятой IEEE [1, 2], использующегося на многих компьютерах, имеет значение 2,2·10. Так как самые маленькие отличные от нуля, для которых (1-) отлично от единицы, на компьютере равны , самым маленьким при вычислении формулы (5) является , который равен приблизительно 110 рад. Таким образом, угол, менее 110 рад не может быть обнаружен при использовании формулы (5) (если угол не равен нулю). Значения , получаемые по формуле (6), имеют меньшую по порядку величины (степени ) относительную погрешность для любых a и b.
Этот пример имеет значение для реализации процедур, установленных в стандарте ИСО 10360-6:2001 и касающихся тестирования программного обеспечения для вычисления геометрических параметров на основе результатов измерений. Такие вычисления используют при производственном контроле и при применении геометрических допусков. Стандарт требует, чтобы единичный вектор, используемый в параметризации таких геометрических фигур как плоскости, цилиндры и конусы, и полученный при тестировании программного обеспечения был сопоставлен с контрольным решением путем сравнения тестового и контрольного угла. Условием приемки в стандарте установлен угол менее 10 рад. При использовании формулы (5) этот критерий не может быть удовлетворен независимо от того, насколько близки тестовый и контрольный векторы (только если угол не равен нулю). При использовании формулы (6) такая проблема не возникает. Использование устойчивой формулы очень важно. Программное обеспечение для таких вычислений имеет категорию уровня C из 5.1.3.
Примечание - Вычисление по формуле (6) включает вычисление разности (b-a) двух почти идентичных векторов с координатами, представленными в формате чисел с плавающей запятой, которые часто получаются именно в результате выполнения арифметических операций по стандарту IEEE. Другие операции (деление на 2, получение векторной нормы, вычисление от полученного значения, и умножение на 2) не влияют на ошибку округления и имеют относительную погрешность порядка .
6.3 Сопровождение программного обеспечения
6.3.1 Общие положения
Программное обеспечение требует сопровождения в течение всего своего жизненного цикла. Ответственный за сопровождение программного обеспечения должен быть указан на соответствующем сайте. Информация о пересмотре программного обеспечения должна быть указана на соответствующем сайте (см. примечание к 3.5).
6.3.2 Доступность
Разработчик документа в любое время должен иметь доступ к программному обеспечению, используемому в документе.
6.3.3 Актуализация
6.3.3.1 Обычно стандарты периодически (каждые пять лет) пересматривают. Поэтому программное обеспечение следует пересматривать одновременно с документом. То же самое относится к большинству коммерческих стандартных статистических пакетов. Однако могут быть проблемы, когда в новой версии стандартного статистического пакета использован макрос, или используются новые или обновленные (пересмотренные) компиляторы. При наличии таких изменений все макросы следует проверять. Ответственность за сопровождение программного обеспечения, используемого в документации, должна быть установлена разработчиком.
6.3.3.2 При ликвидации организации, разработавшей программное обеспечение, его сопровождение должно быть закреплено за другой организацией.
7 Правовые последствия
Следует рассмотреть правовые последствия применения программного обеспечения, касающиеся следующих аспектов:
a) в документе должны быть указаны поставщики программного обеспечения;
b) в документе не следует давать никаких правовых рекомендаций или подразумевать их;
c) на предоставление программного обеспечения и контрольных данных распространяется ограничение ответственности;
d) в документе следует указывать авторские права. Целесообразно выдавать отдельную лицензию, разрешающую копирование отдельных частей документа, таких как текст отдельных частей программного средства или данные, приведенные в примерах, обеспечивающие третьим лицам возможность поддерживать общедоступную электронную копию программного средства. Соображения относительно копирования должны соответствовать политике документа.
Более подробное рассмотрение этого аспекта выходит за рамки настоящего стандарта. Ответственность за решение таких вопросов несет разработчик.
8 Пример
8.1 Общие положения
8.1.1 В данном разделе показано, как использовать настоящий стандарт при разработке документа, в котором использованы методы расчета, требующие сбора и использования псевдослучайных чисел, имеющих равномерное распределение.
Примечание - Часть материала, приведенного в данном разделе, заимствована с незначительной адаптацией из [16].
8.1.2 Для иллюстрации ниже приведены соображения, используемые при поддержке категорий 2 и 5 из 5.1.1.
8.1.3 В 8.2.1 и 8.2.2 приведены некоторые типовые части документа, связанные с генерацией псевдослучайных чисел, для каждой из категорий. В обоих случаях в эту часть документа следует включить текст, как это сделано в 8.1.4.
8.1.4 Во избежание неправильных результатов необходимо использовать генератор псевдослучайных чисел, имеющий хорошие статистические свойства. Всестороннюю проверку статистических свойств генератора осуществляют с помощью набора тестов TestU01 [17].
8.2 Примеры конкретного программного обеспечения
8.2.1 Категория поддержки 2: специальное программное обеспечение предоставляется третьей стороной.
Рекомендуется генератор Мерсенна-Твистера, прошедший набор тестов, указанных в 8.1.4 [18]. Реализации программного обеспечения доступны на многих языках, включая C, C + +, C #, Fortran 95 , Java, Lisp , Mathematica, MATLAB, Microsoft Excel, Perl и Python [19].
8.2.2 Категория сопровождения 5: последовательная процедура разработки программного обеспечения пользователями или третьей стороной.
8.2.2.1 Общие положения
Усовершенствованный генератор Вичмана-Хилла (п.8.2.2.2), имеющий версии для 32-битовых и 64-битовых компьютеров, прошедший набор тестов, указанных в 8.1.4, имеет следующие свойства [21]:
a) компактность;
b) его просто программировать на любом языке программирования, который поддерживает формат чисел с плавающей точкой, и не зависит от частотной манипуляции, как у некоторых генераторов;
c) структура параметров состояния (объем информации, сохраняемой в генераторе между обращениями к нему), а именно параметры, , , и в таблице 1 немного и их легко изменить;
d) генератор может быть использован для получения нескольких последовательностей случайных чисел, необходимых для высокопроизводительных параллельных приложений.
8.2.2.2 Процедура генерации псевдослучайных чисел, подчиняющихся равномерному распределению.
В таблице 1 приведен расширенный генератор Вичмана-Хилла для генерации псевдослучайных чисел из равномерного распределения R(0,1) в интервале (0,1), для 32-разрядного компьютера.
Таблица 1 - Расширенный генератор Вичмана-Хилла псевдослучайных чисел из распределения R(0,1) в интервале (0,1) для 32-разрядного компьютера.
Параметры входа-выхода | Описание |
, , , | В качестве входных величин использованы целые числа, которые изменяются в соответствии с процедурой. Перед первым вызовом генератора определяют множество целых чисел между 1 и 2 147 483 647. Запрещается изменять входные величины между вызовами генератора |
Константы | Описание |
a, b, c, d | Вектор целых констант размерности 14, где а=(а1, а2, а3, а4) и т.д. задают в виде |
Выходной параметр | Описание |
Псевдослучайное число из R(0,1) | |
Вычисления | |
a) Для =1, ..., 4 | |
Примечание 1 - - наибольшее целое число, не превышающее . Примечание 2 - - остаток от деления на . |
Библиография
[1] | IEEE 754:2008 | Standard for binary floating-point arithmetic |
[2] | IEEE 854:1987 | A radix-independent standard for floating-point arithmetic |
[3] | ISO 10360-6:2001 | Geometrical Product Specifications (GPS). Acceptance and reverification tests for coordinate measuring machines (CMM). Part 6. Estimation of errors in computing Gaussian associated features |
[4] | ISO 13528:2005* | Statistical methods for use in proficiency testing by interlaboratory comparisons |
_________________ | ||
[5] | ISO 19115-1:2014 | Geographic information - Metadata - Part 1: Fundamentals |
[6] | ISO 80000-1:2009 | Quantities and units - General |
[7] | ISO/IEC 25010:2011 | Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models |
[8] | ISO/IEC 26514:2008 | Systems and software engineering - Requirements for designers and developers of user documentation |
[9] | ISO/TR 12845:2010 | Selected illustrations of fractional factorial screening experiments |
[10] | ISO/TR 14468:2010 | Selected illustrations of attribute agreement analysis |
[11] | ISO/TR 29901:2007 | Selected illustrations of full factorial experiments with four factors |
[12] | ISO/TS 28037:2010 | Determination and use of straight-line calibration functions |
[13] | Butler, B.P., Cox, M.G., Ellison, S.L.R. and Hardcastle, W.A., Eds. Statistics Software Qualification: Reference Data Sets. Royal Society of Chemistry, Cambridge, 1996 | |
[14] | Cook, H.R., Cox, M.G., Dainton, M.P. and Harris, P.M. A methodology for testing spreadsheets and other packages used in metrology. Tech. Rep. CMSC 25/99. National Physical Laboratory, Teddington, UK, 1999 | |
[15] | Haneef, N.J. Software documentation and readability: A proposed process improvement. ACM SIGSOFT Software Engineering Notes. 1998, 23, pp.75-77 | |
[16] | ISO/IEC Guide 98-3:2008, Suppl. 1:2008 | Uncertainty of measurement - Part 3: Guide to the expression of uncertainty in measurement (GUM: 1995) - Supplement 1: Propagation of distributions using a Monte Carlo method |
[17] | L'ecuyer, P. and Simard, R. TestU01: A software library in ANSI С for empirical testing of random number generators. //www.iro.umontreal.cf/~simardr/testu01/tu01.html | |
[18] | Matsumoto, M. and Nishimura, T. Mersenne Twister: A623-dimensionally equidistributed uniform pseudorandom number generator. ACM Trans. Model. Comput. Simul. 1998, 8, pp.3-30 | |
[19] | Mersenne Twister, Wikipedia. //en.wikipedia.org/wiki/Mersenne_twister/ | |
[20] | Statistical Reference Datasets (StRD), NIST. //www.nist.gov/itl/sed/gsg/strd.cfm | |
[21] | Wichm ann, B.A. and Hill, I.D. Generating good pseudo-random numbers. Comput. Stat. Data Anal. 2006, 51, pp.1614-1622 |
УДК 658.562.012.7:65.012.122:006.354 | ОКС 03.120.30 |
Ключевые слова: программное обеспечение, программные данные, прослеживаемость данных, категории поддержки, тестирование, алгоритм, числовая точность, параметризация задачи, контрольные данные, результат тестирования, тестируемое программное обеспечение, интервал округления |
Электронный текст документа
и сверен по:
, 2020