OberonCore
https://forum.oberoncore.ru/

Принцип приоритета угроз
https://forum.oberoncore.ru/viewtopic.php?f=57&t=6119
Страница 1 из 2

Автор:  Info21 [ Воскресенье, 01 Октябрь, 2017 18:36 ]
Заголовок сообщения:  Принцип приоритета угроз

Д.В.Дагаев (РОСАТОМ) на Дне Оберона 2017 сформулировал (в докладе, по названию которого ничего такого ожидать было нельзя) абсолютно фундаментальный принцип:

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

Понятно, почему именно "росатомный" программист сформулировал принцип: в докладе крупно фигурировал жёлтый значок радиационной опасности:

Изображение.

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

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

Автор:  Дмитрий Дагаев [ Воскресенье, 01 Октябрь, 2017 19:07 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

В докладе https://forum.oberoncore.ru/viewtopic.php?f=127&p=101972#p101972.
Новые программные продукты привносят, во-первых, новые угрозы (не верифицируемость, уязвимость к кибер-атакам), и только во-вторых, новые преимущества.
Вложение:
alarmDP.png
alarmDP.png [ 5.06 КБ | Просмотров: 11896 ]
•Отсутствие обеспечение целостности при работе с указателями.
Вложение:
alarmMP.png
alarmMP.png [ 5.32 КБ | Просмотров: 11894 ]
•Отсутствует изоляция данных от других задач.
Вложение:
alarmSO.png
alarmSO.png [ 5.12 КБ | Просмотров: 11894 ]
•Возможность переполнения стека.
Вложение:
alarmLIFO.png
alarmLIFO.png [ 4.03 КБ | Просмотров: 11894 ]
•Обеспечение LIFO-последовательности вызова сопрограмм.

Автор:  Дмитрий Дагаев [ Воскресенье, 01 Октябрь, 2017 19:18 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Купирование последствий угроз может быть дорогостоящим (например, защита в многопоточных приложениях).
Нассим Талеб писал(а):
Чистый убыток такого рода, ущерб от лечения (обычно скрытый или отложенный), который превышает пользу,
называется ятрогенией (буквально причиненный врачом)

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

Автор:  prospero78 [ Среда, 04 Октябрь, 2017 11:45 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Я тут нечаянно подумал, ведь можно к программной системе применить критерий устойчивости Найквиста?
Есть вполне осязаемые метрики кода, как количественные, та и качественные.
Оберон -- про качество, код -- про количество.
Оберон -- марка стали, код -- размер щита из этой стали.
Какие будут предложения?)

Автор:  Alexey_Donskoy [ Среда, 04 Октябрь, 2017 11:57 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

prospero78 писал(а):
Я тут нечаянно подумал, ведь можно к программной системе применить критерий устойчивости Найквиста?
Какой, к лешему, Найквист для настолько нелинейной системы?!
Каждый байт кода - потенциальная бифуркация с серьёзными последствиями.
Тут никакая метрика не даст даже качественной оценки, имхо.

Автор:  prospero78 [ Среда, 04 Октябрь, 2017 13:43 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Да ладно??
Использование типизированных ссылок против не типизированных никакого качества не даёт?
Или сигнатура функции по результату и параметрам ведь лучше чем просто произвольные параметры?

Коэффициент для выравнивания качества можно, скажем, предусмотреть х500. Почему нет?
А если есть аппаратная поддержка пространства модулей/кода/данных/стека -- разве это не критерий?

Автор:  Alexey_Donskoy [ Среда, 04 Октябрь, 2017 16:17 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

prospero78 писал(а):
Использование типизированных ссылок против не типизированных никакого качества не даёт?
Само по себе - нет.
Только в комплекте с дисциплиной разработки.
На трудозатраты влияет прямо (или даже экспоненциально :wink: ), но трудозатраты и качество не взаимозависимы.

Цитата:
Коэффициент для выравнивания качества можно, скажем, предусмотреть х500. Почему нет?
Да пожалуйста. Никто не запрещает использовать среднюю температуру по больнице. :D

Цитата:
А если есть аппаратная поддержка пространства модулей/кода/данных/стека -- разве это не критерий?
Конечно, критерий.
Я не против критериев. Я о том, что применение Найквиста к столь сильно "устреднённым" моделям практически бессмысленно.

Автор:  prospero78 [ Среда, 04 Октябрь, 2017 16:39 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Alexey_Donskoy писал(а):
На трудозатраты влияет прямо (или даже экспоненциально :wink: ), но трудозатраты и качество не взаимозависимы.

Вообще-то, взаимозаменяемы. Правда, я умолчу какова будет цена. Всё в этом мире имеет свою цену.
Alexey_Donskoy писал(а):
Я не против критериев. Я о том, что применение Найквиста к столь сильно "устреднённым" моделям практически бессмысленно.

х500 -- это усреднение?))

Автор:  PSV100 [ Среда, 04 Октябрь, 2017 20:13 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

prospero78 писал(а):
Оберон -- про качество
...
Коэффициент для выравнивания качества можно, скажем, предусмотреть х500. Почему нет?

И как же мерить качество? К примеру, вот здесь ограничений больше, чем в Оберонах (прежде всего -- статическое выделение ресурсов). Но в итоге любая программа сразу же по построению, как минимум, с гарантией отсутствия deadlock-ов и livelock-ов. И по сравнению с Обероном, к примеру, на борту имеются даже "generic"-и для обобщённых алгоритмов. Т.е. что-то урезано, но нечто другое расширено, и, главное, имеется условный формальный контроль -- вроде есть "качество", но могут быть ограничены возможности.
Но, в принципе, динамическое выделение ресурсов (включая запуск процессов) "сдерживается" лишь проблематикой верификации. Однако возможны техники частичных проверок, и если допустить "динамику" -- возможностей возникает существенно больше, и вновь под контролем.
В общем, лишь "выбрасывание всего лишнего" -- вряд ли можно принимать за фундаментальный критерий качества.

Автор:  Илья Ермаков [ Среда, 04 Октябрь, 2017 21:46 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Для встроенки динамика может быть структурирована по стадиям рантайма.

viewtopic.php?f=152&t=6126

Автор:  Дмитрий Дагаев [ Четверг, 05 Октябрь, 2017 19:23 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Важна также и ПРЕЗУМПЦИЯ НАЛИЧИЯ УГРОЗ.

У Дейкстры и Хоара доказывается корректность программы исходя из некоторых необходимых условий. Если условия не удовлетворяются, программа не корректна. Дейкстра говорит в идеале об "интеллектуально-управляемых программах".
Я разобрал программу по зернышкам и отдаю на экспертизу - мне отвечают, а докажите еще отсутствие взаимодействия каждого оператора одной процедуры с каждым оператором другой процедуры. Это - правильный подход.

Зато, когда речь идет о хорошем коммерческом ПО, предлагается всегда ПРЕЗУМПЦИЯ ОТСУТСТВИЯ УГРОЗ.
PSV100 писал(а):
К примеру, вот здесь ограничений больше, чем в Оберонах (прежде всего -- статическое выделение ресурсов). Но в итоге любая программа сразу же по построению, как минимум, с гарантией отсутствия deadlock-ов и livelock-ов

Я знаю, я в курсе АСУТП, но как разработчик я никаких гарантий не дам, до тех пор, пока мне не докажут каждую строчку кода.

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

Автор:  Info21 [ Четверг, 05 Октябрь, 2017 22:57 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Дмитрий Дагаев писал(а):
Важна также и ПРЕЗУМПЦИЯ НАЛИЧИЯ УГРОЗ.
Да, это должно быть явной частью Принципа.

Автор:  prospero78 [ Пятница, 06 Октябрь, 2017 09:38 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Дмитрий Дагаев писал(а):
Верификация посредством тестирования доказательством корректности не является.

Совершенно верно.
Можно сколько угодно тестов написать, но если память сбоит -- то код даже после верификатора будет глючить.
Доказательство трудоёмко и зачастую невозможно. Есть замечательная русская пословица:"Гладко было на бумаге да забыли про овраги"

Автор:  PSV100 [ Пятница, 06 Октябрь, 2017 18:29 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Дмитрий Дагаев писал(а):
PSV100 писал(а):
К примеру, вот здесь ограничений больше, чем в Оберонах (прежде всего -- статическое выделение ресурсов). Но в итоге любая программа сразу же по построению, как минимум, с гарантией отсутствия deadlock-ов и livelock-ов

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

В тех краях как раз компилятор выдаёт программы только после базовой верификации и гарантирует начальную достижимость. Здесь уточнения:
viewtopic.php?f=152&t=6126#p102120

Автор:  PSV100 [ Пятница, 06 Октябрь, 2017 18:33 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

prospero78 писал(а):
Можно сколько угодно тестов написать, но если память сбоит -- то код даже после верификатора будет глючить.
Доказательство трудоёмко и зачастую невозможно. Есть замечательная русская пословица:"Гладко было на бумаге да забыли про овраги"

У Мухопада были обзорчики принципов реализаций самоконтролируемых автоматов. См. в этом сборнике -- с.32:
http://docplayer.ru/39045765-Informacio ... istem.html
И ещё:
http://www.problem-info.sscc.ru/2013-1/1.pdf

Я о том, что кому нужно, тот и о железе позаботится. А верификация модели подтвердит, что все критические траектории системы правильно заданы (к примеру, не забыты спекулятивные вычисления в виде дублирования процессов, на разном железе или/и с разными алгоритмами, с последующим консенсусом -- анализ кворума результатов).

Автор:  prospero78 [ Пятница, 06 Октябрь, 2017 19:45 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Уважаемый PVS100!))
Не считаю приличным обсуждать то, в чем половину слов не понимаю))
Академические исследования, безусловно, надо осваивать. Но освоение -- это тоже технология и к этой технологии предъявляются всё те же требования: легко понять, легко внедрить, легко поддерживать.
Шаги освоения должны быть понятными. Технология должна жизнь упрощать, а не наращивать сложность.
И не забывает про правило 80/20.

Автор:  Евгений Темиргалеев [ Вторник, 31 Октябрь, 2017 22:55 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Эпиграф "Продать «смотрите, что я ради вас сделал» куда легче, чем «смотрите, от чего я ради вас уклонился»" (Нассим Талеб, Антихрупкость) подчёркивает важность формулирования оснований для отказа, в том числе на живых примерах из конкретного опыта. Про новое естественно рассказывать, а вот про отбрасываемое, ставшее не нужным, наоборот.

Пример Вирта показателен тем, что он, набирая опыт применения инструмента, создавал следующий, отбрасывая лишнее. Интересно было бы посмотреть теперь процесс с самого начала, какие "several commonly used features of other languages" не попали в Паскаль и т. д.

Не писал Вирт такого обзора?

Автор:  Дмитрий Дагаев [ Среда, 06 Декабрь, 2017 21:25 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Марвин Мински рассматривает ИИ как эмоциональную машину The Emotion Machine. §1-5. Seeing a Mind as a Cloud of Resources.
Вложение:
minsky_feelings.png
minsky_feelings.png [ 13.21 КБ | Просмотров: 11264 ]

Ментальные состояния - ресурсы эмоциональной машины (нарисованные кружочками) оказываются в плену страстей: Гнев (Anger), Страх(Fear), Привязанность(Affection), Тревога(Alarm). Угроза(Threat) на рисунке рассмотрена как "смешанное чувство", захватывает ресурсы Гнева и Страха.

Если Вам хотят закрыть глаза на имеющиеся (потенциальные) угрозы в предложенном Вам продукте, правильная тактика будет в активации чувства Привязанности для притупления алармистских настроений.
- А посмотрите на наш замечательный бесплатный сыр!
- А обратите внимание на объем функций новой MS Visual Studio 2017!

Автор:  Дмитрий Дагаев [ Суббота, 21 Апрель, 2018 12:55 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

В медицине этот принцип известен давно как «Не навреди», или primum non nocere

Автор:  Info21 [ Воскресенье, 18 Ноябрь, 2018 22:52 ]
Заголовок сообщения:  Re: Принцип приоритета угроз

Медицинская аналогия не вцепляется в подсознание.
Может, кто-нибудь пофилософствует немного на эту тему?
Чтобы вцеплялось на уровне интуиции.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/