0:00
[БЕЗ_ЗВУКА] Вот
вы видите примеры компонентных описаний.
Конечно же, мы не будем подробно разбирать эти описания, но я хочу, чтобы
вы обратили внимание чисто визуально, для чего их удобно использовать.
Когда вы рассматриваете вашу целевую систему как прозрачный ящик,
который должен выдать какую-то функцию на своей поверхности, например,
рассматриваете систему «холодильник», которая что-то охлаждает,
или рассматриваете какую-то радиосхему,
которая должна выдать правильные напряжения на поверхности своей,
или рассматриваете какую-то гидравлическую систему или пневматическую систему,
или рассматриваете какую-то программную систему, то вас интересует
поведение: что как себя ведет, что с чем связано внутри вашей системы?
И вы хотите посчитать режимы работы отдельных частей,
вы хотите представить логику функционирования.
Я прошу обратить ваше внимание, что я все время говорю про функционирование,
логику функционирования, про то, как работает, то есть operations.
То есть я отношу все это к одному и тому же времени — времени эксплуатации системы,
времени работы, функционирования, operation.
И я буду говорить при этом об элементах вашей системы,
и эти элементы типа компоненты,
в других источниках это будут функциональные элементы,
в третьих источниках вы найдете чуть ли там не процессы,
это описание процессное у вас будет.
Обратите внимание, как они выглядят, чисто визуально.
Принципиальные схемы, технологические диаграммы — это все про одно.
И вы видите, что там есть равенство — префикс для обозначения в ISO 81346.
И вы понимаете, что эти элементы не интерфейсы между собой имеют, а порты,
связи, потому что слово «интерфейс» обычно указывает, что вас другое интересует.
Вас интересует что-то из конструкции системы.
Вы понимаете, что важная практика — это мультифизическое моделирование,
потому что время важно, но это время не сборки, а это время эксплуатации.
И мы мыслим так, как будто эти логические компоненты физичны.
Даже если вы диод делаете потом диодом, не купленным в магазине,
а диодом из диодной сборки — диод на принципиальной схеме; даже если этот диод,
оказывается, вы просто взяли две ножки от дискретного транзистора,
и у вас это диод; даже если этот диод вы сварили
сами и пружинкой в каком-то кристалле нащупали место, которое выполняет
детектирование в детекторном приемнике (сделали самодельный), вы мыслите про вот
этот диод как логический так, как будто физический этот диод.
И совмещаем с модулями, с физическими элементами,
через вот этот самый 4D экстенционализм, понимая,
что в пространстве-времени будет какой-то объект, который выполняет,
с одной стороны, эту роль, с другой стороны, имеет вот такую физичность,
с третьей стороны, он имеет какое-то место, где в пространстве он находится.
И какая у нас есть проблема?
Проблема с компонентами и соединениями,
что мало кто в быту понимает вот это функциональное разделение.
Когда-то теория решения изобретательских задач, которая впервые сказала,
что «мы сначала, перед тем, как думать о конструкции,
мы должны будем сделать функциональное разбиение,
например на 5–7 функциональных элементов нашей системы».
Это когда-то было откровение.
Это было еще в 60–70-х годах, в начале 80-х.
Это все было откровение.
Сейчас — это общее место, потому что все так делают,
все работают с функциями, но редко это объясняется.
В нашем курсе пользуйтесь возможностью.
Поймите, что такое функция.
Поймите, что такое функциональный элемент.
Поймите, что такое компоненты, соединения.
Научитесь рисовать принципиальные схемы, искать принципиальные схемы, моделировать.
И функциональное разбиение контринтуитивно.
Начинайте с ним работать, добивайтесь, чтобы это была у вас интуиция ваша,
чтобы вы это делали полубессознательно, и каждый раз,
когда у вас появляется в рассмотрении какая-то система,
вы разбирались с функциональной стороной вопроса.
И теперь обратите внимание, насколько примеры модульных описаний,
насколько эти модульные описания отличаются от функциональных.
Почему?
В модульных описаниях интересует: как оно устроено, какая структура с точки зрения
как бы собрать эту систему, как ее создать, как закупить элементы.
И вы видите всевозможные списки комплектующих, то есть просто списки.
Вы видите какие-то слоистые конструкции, которые про уровни.
Вот, например, семь уровней открытого связного интерфейса.
Это означает, что там есть какие-то уровни взаимодействия — это системные уровни,
и каждый уровень более высокий, он ничего не знает про тот мелкий уровень,
который обеспечивает выполнение функций вышестоящего уровня просто на его базе.
То есть вы должны думать об этом так, что это описывается вот такими
уровневыми диаграммами, описываются какие-то холархии.
Но части и целые вот этих уровней холархии, они обеспечиваются тем,
что одни модули собираются в другие модули, из них собираются третьи,
всё во всё втыкается, и вы интересуетесь видимостью: могу ли я вот
какой-нибудь модуль один использовать в нем модуль другой, видны ли интерфейсы?
Грубо говоря,
вы всегда об этом думаете: могу ли я вот этот утюг воткнуть в электростанцию,
в линию высоковольтовых электропередач, или нет, все-таки есть розетка?
А если есть розетка, то это розетка 220 Вольт или 120 Вольт?
То есть, смотрите, я не говорю, как оно работает.
Я говорю сейчас: могу ли я воткнуть, могу ли собрать эту сеть?
Или я приехал в Англию со своей розеткой из России (знаете,
вот такая двойная вилка на 220 Вольт с совершенно маленькими штырьками,
и я имею дикие трудности), а в Америке со 110 Вольтами я ничего не могу сделать.
То есть я не могу собрать свою систему, потому что невидимы эти модули оказываются
друг другом, я не могу втыкаться в электростанцию, все это не мое.
Вот об этом модульное мышление.
Вот посмотрите, когда вы заказываете систему в магазине,
вы видите прежде всего ровно вот это.
Вот вам пример — USB Potable Power Module.
Слово «модуль» использовано, немедленно говорится, что там есть какие-то размеры.
На самом деле, это интерфейс.
Интерфейс — это «междумордие» буквально,
между «мордой» одного устройства и другого вот этот промежуток.
Вы увидите, что там размеры,
то есть модуль физически куда-то должен вставляться.
И вы увидите, что там USB, то есть там протокол, который описывает,
как две части соединяются, два таких устройства как соединяются.
И вы видите, что когда вы беседуете о модулях, вы все время видите списки,
заказы, сборочные диаграммы, перечисления — совершенно другое представление.
Вы также должны понимать, что когда вы говорите о модулях,
то слово «платформы» — это о модулях.
То есть, есть модули более маленькие, ну например атомы,
и вы видите, что на платформе атомов вы можете собирать молекулы.
Вы видите, что если вы преодолели ограничение атомов,
у вас сработала эмерджентность, там у вас уже есть химические связи,
вы работаете с молекулами, совершенно другими объектами, не заботясь о том,
что где-то там есть электроны, нейроны, вы можете уже обсуждать какие-то молекулы,
делать какие-нибудь органеллы клеточные.
Когда разобрались с органеллами, со всеми этими митохондриями, вакуолями,
вы можете пообсуждать клетки.
И вот таким образом вы видите, что системы имеют структуру,
конструктивную структуру, которая слоями расположена.
Вот это и есть системные уровни, они собираются в стопки.
Стопка — это слово stack.
По-русски это стопка, вот как последовательность листов,
или в англоязычных странах они любят приводить подносы,
которые в столовой, они в стопках стоят — stack.
Когда вы смотрите на такие стековые диаграммы,
вы понимаете, что это некоторые платформы.
И вот мы можем посмотреть одну из таких платформ как пример.
Вы видите, это стек платформ искусственного интеллекта.
В самом низу этого стека вы видите, что там есть аппаратура,
потому что когда мы смотрим вот эти системы, мы видим,
что там какие-то ускорители, какие-то нейрокомпьютеры.
А выше этого уровня мы видим, что в этих аппаратных средствах,
внизу, там, где проходят вычисления, чуть-чуть выше уровнем,
находятся те места вот этих аппаратных средств, которые как-то уже организованы
и которые выполняют функции драйверов к этой аппаратуре.
И мы понимаем, что эти драйверы осуществляют просто фактически
интерфейсную функцию, такой промежуточный слой.
Они унифицируют интерфейс для более высокого уровня, и в этом высоком
уровне расположены, например, какие-то вычислительные библиотеки,
которые ничего больше не умеют, как они Оборачивает матрицы,
они умножают матрицу на матрицу, выполняют какие-то вычисления с цензорами.
Фактически, это тоже какие-то блоки в оперативной памяти,
блоки в этих ускорителях, которые занимаются этой работой.
Выше находятся платформы со своими интерфейсами обучающихся алгоритмов.
Но, с одной стороны, они имеют обращение к аппаратуре ускорительной со
стороны драйверов, а с другой стороны, они предоставляют возможности
обучения уже более высокой платформе, cognitive architecture platform.
То есть когнитивной архитектуре, то есть той системе,
которая работает со знаниями в общем виде.
И система, которая работает со знаниями в общем виде,
она дальше работает с какой-то платформой,
которая обеспечивает часть приложений уже в какой-то предметной области.
Либо в машиностроении, либо в автомобилях это системы,
которые позволяют водить без водителя.
И что мы видим?
Мы видим, что каждым уровнем платформы занимаются свои люди.
Потому что электронщики занимаются самым нижним уровнем, там,
где есть аппаратура и ускорение.
Математики занимаются алгоритмами обучения.
Какие-то люди занимаются системами искусственного интеллекта,
но они уже не математики, они когнитивные инженеры.
И какие-то люди, прикладные инженеры, они берут системы искусственного
интеллекта общего вида и приспосабливают к решению своих задач.
Мало какая фирма имеет всех этих людей.
Но вот это вот системное мышление, то, что мы работаем с разными уровнями модулей,
вот как собирается это из разных модулей, которые делают разные организации,
разные люди, разные коллективы, позволяет делать удивительной сложности системы.
По настоящему сложные системы многоуровневы,
они задействуют существенно разделение труда.
И системное мышление позволяет в этом не путаться,
потому что вы видите пример такой же точно холархии, как любой другой.
И эта холархия — конструктивная холархия.
Деньги обычно поступают в эту систему сверху, от применений этих платформ.
А прорыв, разрыв, взрыв, подрыв обычно снизу.
То есть когда вы делаете самый новый ускоритель,
на самом нижнем уровне, там, где обычно атомы, то,
где незаметные, самые мелкие единицы структуры.
Если вам удается перейти на другие физические принципы,
вы практически перетряхиваете весь платформенный стек до самого верха и
получаете новый поток денег, потому что у вас самый низ обеспечивает новые свойства.
Это всё равно, как если бы вы сумели сделать новые атомы, какие-то с особыми
свойствами, то, скорее всего, вы бы смогли создать вообще полностью новый мир.
Но в данном случае вы просто не атомы делаете, а какие-то, мы говорили,
на среднем уровне структуры вещества весь этот разговор идет.
Вот каждый раз, когда вы слышите «платформа», вы должны вспоминать слово
«интерфейс», вы должны вспоминать слово «модуль», вы должны вспоминать то,
что мы обсуждаем, как сделать, как собрать, а не как работает.
Цель.
Для чего вам вообще нужны модули и почему мы вот так говорим об интерфейсах?
Ну в системах, мы же понимаем, всё со всем связано.
Вам надо уменьшить количество связей между элементами системы так,
чтобы связи ошибку пропускали исключительно в маленьком количестве мест,
которые вы называете интерфейсами.
Если у вас всё со всем связано, то вы такую систему не отладите.
Вы начали улучшать маленький элемент,
и немедленно у вас в системе всё остальное ухудшилось.
Если вы добились того, что ваша система на каком-то уровне устроена как подводная
лодка, то есть связь между двумя конструктивными, замечу, я говорю,
как сделать, между двумя какими-то кусками конструкции, обеспечена так,
что она идет через маленькое узкое окошечко и вы контролируете,
что там происходит, то у вас есть шанс что-то улучшать,
и ошибка тогда будет останавливаться на границах двух модулей.
Вы ее сможете поймать.
Поэтому цель — нераспространение ошибки.
Если у вас какой-то модуль поломался,
вы можете не распространить ошибку другим образом.
Вы можете выкинуть этот модуль и вставить новый, точно так же,
как мы вставляли насос неработающий на колонну нефтеперегонки,
точно так же, как меняли двигатель на самолете.
Например, ставили двигатель на обслуживание,
в этот момент самолет летел с другим двигателем.
И мы еще помним, что интерфейсы — это между модулями.
И когда говорится, что этот модуль — интерфейс, вы не верьте,
интерфейс — между, это междумордие.
А каждый раз, когда говорят: «Ну как же?
Вот же USB-интерфейс!» и показывают на какую-то плату.
Вы говорите: «Ну как.
Интерфейс — это у модуля там, где USB.
Но вот смотрите, есть ножки, которые вот эту вот плату с USB и вот эту вот
микросхему, которая обеспечивает выполнение соглашений интерфейса и USB,
как-то вот этот вот модуль привязывает к плате.
И тут тоже есть интерфейс, тоже есть какие-то правила.
Следовательно, у модуля два интерфейса — один к плате, а другой интерфейс — к USB».
И к плате можно обсуждать тоже, по стандарту этот интерфейс,
или вы как-то его сами описали.
Поэтому не надо называть модули интерфейсами, интерфейс между модулями.
А если уж очень хочется, то вы называйте это интерфейсным модулем,
если этот модуль позволяет вам работать с каким-то известным интерфейсом.
У программистов слово «интерфейс» очень хорошо используется.
У них любимое слово — это application programming interface,
прикладной интерфейс программы.
Но у инженеров других тоже такие должны быть интерфейсы в ходу.
И даже у тех людей, которые делают системы
из людей, даже у менеджеров,
они тоже должны думать по возможности об интерфейсах, они должны думать о сервисах,
о том, что сервисы предоставляются через какие-то каналы.
Иногда можно говорить не интерфейс, иногда говорят о каналах предоставления услуг.
Вот это тоже интерфейсы, надо понимать, что так вот строят системы,
это конструктивное мышление.
Чтобы уменьшить количество связей,
вы можете применять практику Dependency Structure Matrix.
Но это не входит в наш курс, можете погуглить,
что такое DSM, и использовать это в своей деятельности.
Еще помним, что модуль может реализовывать множество компонент.
О размещениях нам что сказать?
Надо понимать, что размещением может быть и место транспортировки, в каком
ящике в данный момент находится в каком поезде деталь, которая к нам едет сейчас.
И место хранения на складе.
И на линейных объектах это может быть, например, на 20-м километре нашей дороги.
Размещение — это где будет производиться и проектироваться.
На заводе № 10 сейчас мы разместили производство нашей детали, Фактически,
ответ на вопрос, где во Вселенной находится система, он очень не лишний.
Потому что он лишний раз позволяет проконтролировать то,
что мы делаем системы, которые меняют реальный мир, которые меняют физику.
Ну и помнить надо, что то, что я говорю, это чистая теория.
Потому что в жизни чаще всего вы встретите гибридное описание.
Конечно, полезно иметь отдельно абсолютно модульное описание,
отдельно иметь описание компонент, отдельно размещений.
Но чаще всего будет так, как на этих картинках.
Вы будете видеть и попытку изобразить то, из чего система состоит,
чтобы ее собрать, вот как это в физическом мире выглядит,
где оно находится одновременно в какой-то большой системе.
И какую функцию выполняет.
Вы понимаете, что терминология не устоялась,
четкого различения, особенно, когда речь идет о функциях, нет в головах.
Что такое платформа, тоже люди особо не понимают.
Поэтому вы будет видеть модули из самых разных уровней модуляризации,
на самом разном уровне детализации, будем говорить вот так,
с показом в самых разных неожиданных интерфейсов, важных и неважных, системы.
Но что делать, наша жизнь сложна.
Главное, если вы понимаете из нашего курса,
что есть три главных взгляда на систему, три вида описания системы,
вы справитесь с такими гибридными описаниями.