Что значит состояние объекта
Основные состояния объекта
С позиций надежности объект может находиться в следующих технических состояниях: исправное, неисправное, работоспособное, неработоспособное и предельное.
Исправное состояние— состояние объекта, при котором он соответствует всем требованиям нормативно-технической и (или) конструкторской (проектной) документации.
Если хотя бы по одному из требований объект не соответствует нормативно-технической и (или) конструкторской (проектной) документации, состояние объекта считается неисправным.
Работоспособное состояние— состояние объекта, при котором значения всех параметров, характеризующих способность выполнять заданные функции, соответствует требованиям нормативно-технической и (или) конструкторской (проектной) документации.
В нормативно-технической документации отражены количественные значения параметров, а также их допустимые пределы изменения. Состояние объекта, при котором значение хотя бы одного параметра, характеризующего способность выполнять заданные функции, не соответствует требованиям нормативно-технической и (или) конструкторской (проектной) документации, называется неработоспособным.
Для сложных объектов возможно наличие нескольких работоспособных состояний, отличающихся уровнем эффективности применения объекта. Возможно также наличие нескольких неработоспособных состояний, при этом из всего множества неработоспособных состояний выделяют частично неработоспособные состояния, при которых объект способен частично выполнять требуемые функции.
Понятие “исправное состояние” является более “жестким” по отношению к объему требований, предъявляемых к объекту, чем понятие “работоспособное состояние”. Исправный объект всегда работоспособен. Работоспособный объект, в отличие от исправного, удовлетворяет не всем требованиям нормативно-технической и (или) конструкторской (проектной) документации, а лишь тем, которые обеспечивают его нормальное функционирование. При этом он может не удовлетворять, например, требованиям, относящимся к его внешнему виду (иметь местные нарушения лакокрасочного покрытия, вмятины на кожухах ограждений и т.п.). Работоспособный объект может быть неисправным, однако, его повреждения при этом не настолько существенны, чтобы они могли препятствовать функционированию объекта.
Предельное состояние обусловлено физической невозможностью дальнейшей эксплуатации объекта, либо недопустимым снижением его эффективности, либо требованиями безопасности и определяется установленным критерием предельного состояния.
Критерий предельного состояния— признак или совокупность признаков предельного состояния объекта, установленные нормативно-технической и (или) конструкторской (проектной) документацией.
Типичные критерии предельных состояний:
1) отказ одной или нескольких составных частей, восстановление или замена которых на месте эксплуатации не предусмотрены эксплуатационной документацией (должны выполняться на предприятии-изготовителе или на специализированном ремонтном предприятии);
2) механический износ ответственных деталей (узлов) или снижение физических (химических) свойств материалов до предельно допустимого уровня;
3) снижение наработки на отказ (повышение интенсивности отказов) ниже (выше) допустимого уровня;
4) повышение установленного уровня текущих (суммарных) затрат на техническое обслуживание и ремонт или другие признаки, определяющие экономическую нецелесообразность дальнейшей эксплуатации.
Понятия дефекта, неисправности, повреждения, отказа как событий, приводящих к нарушению исправного состояния объекта; понятие восстановления как события, приводящего к переходу из неисправного состояния в исправное.
Отказ— событие, заключающееся в нарушении работоспособного состояния объекта.
Критерий отказа— признак или совокупность признаков неработоспособного состояния объекта, установленных в нормативно-технической и (или) конструкторской (проектной) документации.
Типичные критерии отказов:
1) прекращение выполнения объектом заданных функций (отказ функционирования); снижение качества функционирования по одному или нескольким из выходных параметров (производительность, мощность, точность и др.) за пределы допускаемого уровня (параметрический отказ);
2) искажения информации на выходе объектов, из-за сбоев;
3) внешние проявления, связанные с наступлением или предпосылками наступления неработоспособного состояния (шум, вибрации, перегрев и др.).
В информационных системах подразделяют следующие отказы.
Аппаратным отказом принято считать событие, при котором изделие утрачивает работоспособность и для его восстановления требуется проведение ремонта аппаратуры или замена отказавшего изделия на работоспособное.
Информационный отказ возникает вследствие ошибки в информации и искажает результат работы программы.
Эргатический отказ возникает из-за ошибки персонала (например, оператора) и искажает результат работы программы.
Дата добавления: 2016-02-20 ; просмотров: 9442 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Как производится оценка состояния объекта?
В школе мне понадобились колоссальные усилия, чтобы понять концепт Кантора о множестве мощности континуум. Но потом я понял, что ничего не понял, а лишь заучил правила работы с такого рода объектами. В области понимания как было белое пятно, так оно и осталось белым. С тех пор я неоднократно возвращался к этому вопросу, пока не познакомился со статистической физикой и сопроматом.
В этих науках очень хорошо были определены понятия вещества и понятие состояния. Было сказано, что для определения вещества нужен объем минимального размера, меньше которого мы имеем уже не вещество, а набор молекул, а для оценки состояния требуется конечное время, чтобы зарегистрировать некоторое значение, связанное с состоянием. Если мы будем говорить о состоянии, используя временные интервалы менее минимального, то получим не оценку состояния, а что-то непонятное.
Я понимал, что на этой основе можно построить иную математику с иными аксиомами. Этого я не сделал, но запомнил, что для оценки состояния нужно указать минимальное время, в течение которого есть смысл говорить о совершении измерения, как для определения вещества нужен минимальный объем. Тогда данное время будет считаться мгновением для оценки данного состояния. Это время может быть разным для разных свойств и методов оценки. Например, для того, чтобы понять, какого цвета автобус при помощи глаз, нужны миллисекунды, а для того, чтобы понять в каком состоянии сейчас находится климат Земли при помощи термометра, нужно несколько лет.
Вторая трудность связана с выбором этих интервалов времени. Если мы решаем, что для оценки свойства объекта нужно конечное время, например, сутки, то можно разбить временную ось на суточные отрезки, определить значения для каждого такого отрезка и сказать, что мы оценили мгновенные состояния объекта. Но в таком решении чего-то не хватает. Вопрос: чего? Вы, наверно догадались, что есть два вопроса, на которые нужно ответить: будет ли минимальное количество времени само зависеть от времени? Можно ли сделать нарезку временных интервалов иным способом? Да, и да. И вот об эти вопросы разбиваются все рассуждения.
И снова нам на помощь приходит статистическая физика, или сопромат. В них рассматриваются множества разбиений. Если речь идет об оценке состояний, то речь идет о множестве разных разбиений временного отрезка на интервалы, внутри которых состояние может быть оценено. Далее любой вопрос, который волнует нас относительно объекта, чье состояние мы исследуем, надо обращать не к конкретному разбиению, а к множеству разбиений. Например, если мы исследуем состояние вращения вала двигателя, регистрируя его «мгновенные» частоты вращения, то можно задать вопрос: сколько оборотов совершил двигатель за конечный интервал времени? Чтобы это сделать, нужно будет для каждого разбиения сделать суммирование произведений скорости и времени. Для каждого разбиения мы получаем некий ответ и далее нам надо сделать предельный переход.
Этот переход делается в статистической физике и сопромате, но плохо описан и там, и там. Дело в том, что он связан с математической моделью, далекой от реальности, в которой утверждается, что свойство может быть измерено мгновенно не в смысле, который мы определили ранее, а в буквальном смысле. Это допущение, которое многими не осознается, приводит к доказательству сходимости частичных сумм, но является чистой воды фокусом. И этот фокус может не пройти. Есть свойства, для которых можно построить разные ряды разбиений, частичные суммы которых будут сходится к разным пределам. Однако, такие свойства мы обычно не моделируем, считая их экстравагантными. Наши теплые ламповые свойства не такие. Для них мы можем строить разбиения и делать предположения о сходимости. Правда, отличие от математической модели есть, и оно в том, что надо помнить о точности такого рода перехода. Точность будет определятся частотой разбиения, ниже которой мы не можем опуститься в силу того, что мгновенное свойство перестанет быть определено. У нас появится разброс в данных, который надо уметь обрабатывать. Эта обработка описана в статистической физике довольно подробно и названа флуктуацией свойства. Только не того свойства, значения которого мы собирали, а нового, расчетного.
Таким образом, что такое свойство объекта на отрезке времени? Это множество всех разбиений этого отрезка на интервалы, внутри которых определено «мгновенное значение» этого свойства. Когда мы фиксируем конкретное разбиение и «мгновенные значения» свойства на конкретном разбиении, это не свойство объекта в течении времени, это – не знаю, как назвать. Поможете?
Возможно вы сможете привести пример нетеплых и неламповых свойств, частичные суммы для которых зависят от разбиения?
Данное определение оценки свойства объекта приводит к тому, что оценка свойства зависит от метода измерений. Как правило, мы считаем, что значение свойства не зависит от метода измерений. Возможно, так и есть, если пренебречь точностью. Но на самом деле разные методы измерений дают разные значения. И это, порой, приводит к фундаментальным ограничениям на точность наших измерений, как, например, случилось в квантовой механике.
Состояние объекта и события, характеризующие надежность
2.2.1. Состояние объекта
Исправное состояние – состояние объекта, при котором он соответствует всем требованиям нормативно-технической и (или) конструкторской документации.
Неисправное состояние – состояние объекта, при котором он не соответствует хотя бы одному из требований нормативно-технической и (или) конструкторской документации.
Работоспособное состояние – состояние объекта, при котором значения всех параметров, характеризующих способность выполнять заданные функции, соответствуют требованиям нормативно-технической и (или) конструкторской документации.
Неработоспособность состояния – состояние объекта, при котором значение хотя бы одного параметра, характеризующего способность выполнять заданные функции, не соответствует требованиям нормативно-технической и (или) конструкторской документации.
Предельное состояние – состояние объекта, при котором его дальнейшее применение по назначению недопустимо или нецелесообразно либо восстановление его исправного или работоспособного состояния невозможно или нецелесообразно.
Предельное состояние определяется с помощью специального критерия.
Критерии предельного состояния – признак или совокупность признаков предельного состояния объекта, установленные в нормативно-технической и (или) конструкторской документации.
Следует отметить принципиальное различие терминов: исправное и работоспособное состояния, неисправное и неработоспособное состояния.
Работоспособное состояние объекта характеризуют лишь те параметры, от которых зависит выполнение заданных функций. Исправным же состояние объекта считается тогда, когда все требования, а следовательно, и все параметры соответствуют нормативно-технической и (или) конструкторской документации. Так, транспортное средство, способное выполнять все свои функции, находится в работоспособном состоянии. Но по характеристикам исправности оно может одновременно находиться в неисправном состоянии. Например, это транспортное средство имеет дефекты и повреждения: нарушение лакокрасочного покрытия корпуса, трещины в смотровых стеклах, вмятины в элементах корпуса, трещины в резиновых деталях (уплотнителях, соединительных шлангах). Таким образом, заданные функции объект выполнять может, т.е работоспособен, но всем требованиям документации не соответствуют, т.е. неисправен.
По аналогии с изложенным можно сделать вывод, что неисправное состояние – более широкое понятие, чем неработоспособное состояние; неработоспособное состояние более конкретно отражает неисправное состояние, так как устанавливает соответствие параметров объекта возможностям выполнять им свои функции.
Таким образом, можно одновременно характеризовать объект следующими состояниями:
1. Исправное, работоспособное (так как по определению исправное состояние характеризуется удовлетворением всем требованиям документации, а следовательно, и способности выполнять заданные функции);
2. Неисправное и работоспособное;
3. Неисправное, неработоспособное (уточненное неисправное).
Обычно эта терминология используется так:
а) для оценки работоспособности объекта применяются лишь термины: «работоспособное состояние», «неработоспособное состояние»;
Таким образом, имеем структурную схему терминов (рис.2.2).
Состояния
Работоспособное Неработоспособное
Исправное Неисправное Предельное
Рис.2.2. Структура состояний, характеризующих объект
В отношении термина предельное состояние целесообразно заметить следующее:
а) недопустимость применения объекта объясняется очевидной его неработоспособностью такого уровня, что даже при её восстановлении велик риск применения из-за аварий и материального ущерба (поэтому объект подлежит списанию);
б) нецелесообразность применения объекта объясняется низким уровнем полезного эффекта из-за ненадежности (это также приводит к списанию объекта);
в) невозможность восстановления объекта может быть объяснена его конструктивными особенностями;
г) нецелесообразность восстановления объясняется экономическими факторами.
В других случаях наступление предельного состояния может означать невозможность применения, но возможность восстановления путем средних и капитальных ремонтов.
Сущность изложенных терминов становится более понятной после рассмотрения событий, характеризующих надежность.
2.2.2. События, характеризующие надежность
Основным из таких событий является отказ.
Отказ – событие, заключающееся в нарушении работоспособности объекта.
Основные классификационные признаки и соответствующие им виды отказов представим в виде табл. 2.1.
Поясним перечисленные виды отказов.
Отказ, характеризующийся скачкообразным изменением одного или нескольких заданных параметров, называется внезапным (например, остановка транспортного средства в результате неработоспособности топливного насоса энергетической установки).
Отказ, характеризующийся постепенным изменением заданных параметров, называется постепенным (например, потеря мощности энергетической установки транспортного средства из-за недопустимой величины зазора между внутренней стенкой цилиндра и внешней поверхностью поршня в поршневом двигателе). Постепенные отказы могут быть предотвращены путем осмотров объекта или контроля его состояния.
Признак классификации | Вид отказа |
Характер изменения параметра до момента отказа | Внезапный Постепенный |
Степень потери полезных свойств | Полный Частичный Перемежающийся |
Связь с другими отказами | Зависимый Независимый |
Наличие внешних признаков | Явный (очевидный) Неявный (скрытый) |
Причина возникновения | Конструктивный Производственный Эксплуатационный |
Время появления | При работе При хранении |
Цена отказа | Простой объекта Невыполнение задачи |
В случае, если после возникновения отказа использование объекта по назначению невозможно до восстановления его работоспособности, отказ является полным (например, спущено одно из колес автомобиля, троллейбуса). Отказ, наступивший в результате ухода параметра (параметров) за установление пределы, но не приводящий к полной утрате объектом способности выполнять требуемые функции, считается частичным (двигатель работает не на всех цилиндрах).
Перемежающийся отказ – это отказ объекта, проявляющийся в течение ограниченного интервала времени, после чего объект восстанавливает свою работу без проведения какого-либо корректирующего мероприятия извне (движение автомобиля на разбавленном топливе).
Такой отказ является самоустраняющимся и чаще всего – повторяющимся.
Независимый отказ – отказ, возникающий в результате любой причины, кроме другого отказа, а в противном случае – зависимый.
Отказ, возникающий вследствие несовершенства принятых методов проектирования или ошибок конструкторов, – конструктивный, вследствие нарушения установленного процесса производства (изготовление, ремонт) объекта – производственный, а вследствие нарушения установленных правил и (или) условий эксплуатации – эксплуатационный.
По времени появления различают отказы во время работы и хранения. Причем время работы обычно разбивают на три интервала: приработка, нормальная эксплуатация, износ (старение). Для подавляющего большинства узлов, деталей, элементов количество отказов в интервалах приработки и износа значительно больше, чем на интервале нормальной эксплуатации.
В случае, если объект отказал и его работоспособность может быть восстановлена прибывшей ремонтной бригадой, цена отказа – простой.
Если же объект (например, транспортное средство) в результате отказа отбуксируется на ремонтную базу с перерывом рейса, цена отказа – невыполнение задачи.
Критерий отказа – признак или совокупность признаков работоспособного состояния объекта, установленные в нормативно-технической и (или) конструкторской документации.
Другим событием, характеризующим надежность, является повреждение.
Повреждение – событие, заключающееся в нарушении исправного состояния объекта при сохранении работоспособного состояния.
NEWOBJ.ru → Введение в ООП с примерами на C# →
2.3. Поля и методы: состояние и поведение
2.3. Поля и методы: состояние и поведение
§ 15. Состояние и поведение. В настоящем разделе мы подробнее разберем особенности использования методов и полей классов. Начнем с определения [Буч 3]:
Состояние объекта (state) – перечень полей объекта (обычно статический) и текущих значений каждого из этих полей (обычно динамический).
Мы оговариваем, что перечень полей обычно статический, то есть зафиксированный в определении класса, так как в некоторых языках перечень полей может быть изменен после создания объекта.
Мы оговариваем, что перечень текущих значений полей обычно динамический, то есть может меняться после создания объекта, так как во всех языках есть механизмы, позволяющие ограничить изменение полей после создания объекта. Мы обсудим некоторые из таких возможностей в следующем параграфе.
В настоящей книге мы используем термин поле ( field ), так как оно используется в C#. При этом в других языках программирования для обозначения полей класса могут применяться и другие термины: переменная-член ( member variable, member ), свойство ( property ). Отметим, что термин свойство, в свою очередь, имеет в C# специфическое значение и будет рассмотрен ниже в настоящей главе.
Приведем определение поведения объекта аналогичное определению состояния объекта [3].
Мы оговариваем, что перечень методов, обычно статический, так как в некоторых языках программирования существуют механизмы, позволяющие изменять перечень методов класса или отдельного объекта при выполнении программы.
Мы оговариваем, что результаты вызова методов зависят от текущего состояния или, по-другому, определяются историей объекта (то есть историей изменения его состояния), так как один и тот же метод в общем случае может возвращать разные результаты в зависимости от состояния.
Сокрытие переменных можно назвать разновидностью более общего понятия – перегрузки – использования в одной и той же области видимости одного и того же имени для обозначения разных элементов языка. Если «элемент языка» – метод, то мы имеем дело с перегрузкой методов.
Перегрузка метода (overloading) – определение в одной и той же области видимости нескольких методов с одинаковым именем, но различающихся количеством или типами параметров.
Компилятор, используя различие в параметрах, определяет на этапе компиляции, какой именно метод необходимо вызывать.
Мы используем термин метод, так как он используется в C#, но в других языках и, в целом, в объектно-ориентированном программировании как синонимы также используются термины функция (function) и функция-член (member function). Исторически термин функция возник в процедурном программировании и обозначал функцию, не связанную ни с каким классом. В объектно-ориентированных языках чтобы различать функции, не связанные ни с каким классом, и функции класса, последние стали называть другими терминами, например, функциями-членами в C++ и методами в C# и Java, оставив термин функция для функций, объявленных вне классов. При этом во многих объектно-ориентированных языках вовсе нет возможности объявить функцию вне какого-либо класса.
§ 16. Неизменяемость. Изменение программистом значений переменных (состояния объектов) в ходе выполнения программы выглядит вполне естественной практикой. Однако существует множество ситуаций, когда желательно так или иначе ограничивать эту возможность.
Приведем еще пример:
Дополнительным аргументов в пользу неизменяемости состояния объектов является потенциальное повышение производительности. Компилятор, зная, что значение тех или иных переменных не будет никогда меняться, может сгенерировать более оптимальный код.
Значения констант должны быть определены на момент компиляции приложения, поэтому мы не можем их использовать со ссылочными переменными – экземплярами классов 26 :
Этот пример демонстрирует несколько важных особенностей.
Во-первых, в C# неизменяемость ( immutability ) – это свойство класса, а не объекта: или мы объявляем класс как неизменяемый и все его экземпляры будут неизменяемыми. Или мы объявляем класс как изменяемый и все его экземпляры будут также изменяемыми. У нас нет возможности сделать неизменяемым только некоторые экземпляры этого класса. Для сравнения, отметим, что в C++ такая возможность есть: мы можем отметить ключевым слово const переменную или даже параметр метода и это будет значить, что указанную переменная или параметр метода невозможно изменить, но другие, не отмеченные этим словом экземпляры будут изменяемыми, а объект-параметр будет изменяемым вне соответствующего метода.
И последний момент, который мы разберем – особенность копирования неизменяемых объектов. В конструкторе для копирования объекта-центра мы используем копирование ссылки, так как уверены, что переданный объект уже не будет никогда изменен и вполне достаточно иметь всего один экземпляр объекта, на который будут ссылаться множество логически не связанных между собой переменных.
В заключение отметим, что, применяя имеющиеся возможности языка, как правило, лучше избыточно ограничить изменение переменных и позже снять это ограничение, чем случайно изменить переменную, которая с точки зрения других фрагментов кода, должна быть неизменяемой.
Несмотря на широкое использование в ежедневной практике, для объектно-ориентированного программирования неизменяемость – это всегда ограничение, так как исходно переменные в ООП изменяемые ( mutable ). Более того, в теории языков программирования введение неизменяемости для всех объектов – это определение функциональной парадигмы программирования [Мартин 11].
§ 17. Сохраняемость. Иногда требуется сохранить состояние объекта между запусками программы или при перемещении объекта между приложениями. Конечно, строго говоря, при восстановлении сохраненного состояния, мы в действительности создаем новый объект в памяти и присваиваем его полям значения, соответствующе тем, которые были у другого объекта. Однако удобно представлять этот процесс на более высоком уровне абстракции, как сохранение и восстановление.
Сохраняемость – способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего первоначального адресного пространства. [Буч 3]
Для сохранения объекта в файл, передачи по сети или другому процессу, как правило, требуется привести значения полей объекта в формат, который будет понятен получателю и преобразовать их в непрерывную последовательность байт. Этот процесс называется сериализацией (от англ. serial – последовательный).
Сериализация (serialization) – преобразование состояния объекта в последовательность байт. Сериализация может быть двоичная, текстовая (JSON, XML) или какая-либо другая. Обратный процесс называется десериализацией.
На следующем рисунке предоставлен пример сериализации объекта в формат JSON.
ORM (object-relational mapping) – «объектно-реляционное сопоставление» – механизм (реализуемый не языком программирования, а сторонними библиотеками), позволяющий сохранять или восстанавливать состояние объекта в приложении в реляционную базу данных.
Следует отметить, что полноценное «зеркалирование» базы данных в объекты памяти помимо трудоемкости, а точнее рутинности этого процесса, сопряжено с множеством концептуальных проблем, прежде всего, связанных с транзакциями. Чтобы преодолеть эти ограничения некоторые базы данных заявляются как объектные, а не реляционные, в том смысле, что при работе с ними мы не транслируем объектную модель программы в реляционную модель БД с помощью ORM, а напрямую сохраняем в БД в объектной модели. Хотя эти направления динамично развиваются, однако пока остаются нишевыми.
§ 18. Свойства в C#. В заключение главы, коротко рассмотрим специальную синтаксическую разновидность методов в C# – свойства. В C# мы можем объявить метод, возвращающий значение заданного типа или принимающий один параметр заданного типа, используя следующий специальный синтаксис, позволяющий пользователям класса обращаться к этим методам, как к полям:
Отметим еще раз, что свойства – специфическая возможность C# и представляет лишь синтаксическое упрощение для объявления и вызова определенных методов, а термин «свойство» вне языка C# часто используется для обозначения обычных полей класса.
Вопросы и задания
1. Дайте определение следующим терминам и сопоставьте русские термины с английскими: состояние объекта, поле, переменная-член, свойство, поведение объекта, метод, перегрузка метода, функция, функция-член, сокрытие локальных переменных неизменяемость, константа; state, field, member variable, property, behavior, method, overloading, member function, immutability.
2. Имеет ли открытый ( public ) метод класса доступ к закрытым ( private ) полям того же класса (1) того же объекта, для которого этот метод был вызван; (2) для другого объекта того же класса, который был передан как параметр этого метода?
3. В чем отличие между классом без состояния ( stateless ) и неизменяемым классом ( immutable )?
4. Почему нельзя перегрузить методы с одинаковыми параметрами, но отличающимися типами возвращаемых значений?
6. Назовите преимущества и недостатки использования неизменяемых типов данных.
9. Является ли массив неизменяемым типом данных в C#?
10. Повышают ли производительность приложений использование const и readonly в C#? Является ли производительность фактором, который необходимо учитывать, применяя механизмы языка программирования по ограничению изменения состояния объектов?
11. Объясните утверждение, что в C# неизменяемость – свойство классов, а не объектов.
12.* Познакомьтесь с подходом «event sourcing» (к сожалению, устоявшегося перевода этого термина нет), в рамках которого мы храним список транзакций, то есть событий об изменении состояния, но не храним само состояние.
13.* Приведите аргументы в пользу следующего тезиса: «Чем большей памятью мы располагаем и чем быстрее становятся наши компьютеры, тем меньше мы нуждаемся в изменяемых состояниях.» [11]
24. Или – в C# – свойства, см. § 18.
25. Системы статического анализа кода не в счет, так как это внешние по отношению к языку программирования инструменты.
26. Строго говоря, структуры C# (struct) также не могут быть константами, хотя и являются значимыми типами.
27. Нередко этот способ сохранения объектов в реляционную БД подвергают критике. Подробный анализ этого вопроса приведен, например, в [Дейт 4]. Однако по факту, именно описанная модель сегодня является самой распространенной.