Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
systems_engineering_thinking_2015.pdf
Скачиваний:
363
Добавлен:
28.03.2016
Размер:
8.09 Mб
Скачать

Системноинженерное мышление

TechInvestLab, 2 апреля 2015

78

категорном анализе диаграмм можно получить серии записей в блоге http://soberspace.livejournal.com/tag/%D0%BA%D1%83%D1%80%D1%81%20%D1%81%D1%8 2%D1%80%D1%83%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B4%D0%B8%D 0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B .

Некоторое количество ссылок на приложения теории категорий для компактификации и универсализации онтологического знания можно найти в http://ailev.livejournal.com/1154791.html .

Теория категорий всё более используется в системной инженерии и программной инженерии. Вот материалы докторской диссертации Сергея Ковалёва, в котором можно об этом почитать подробней: http://www.ccas.ru/avtorefe/0001d.pdf

Моделеориентированность

Что такое модели

Мы довольно часто использовали выше слово "модель". В основном – в сочетании "информационная модель". Давайте обсудим, что же это такое.

Самое общее определение модели — это использование одного объекта (модели) для вынесения суждений о другом (моделируемом) объекте.

Объект M является моделью объекта S только для какого-то определённого лица. Для других лиц тот же самый объект М может восприниматься как вовсе не связанный с объектом S. Объект М может использоваться для получения ответов только на некоторые вопросы в отношении S, или только на протяжении какого-то конечного промежутка времени.

Модели могут быть физическими (макет самолёта для продувки в аэродинамической трубе) или информационными (набор формул на бумаге, файл или целый программный комплекс в системе автоматизации проектирования).

Каково онтологическое отношение между моделью и моделируемым объектом? Стандартного ответа на этот вопрос нет, в разных онтологиях на него отвечают поразному. Иногда это отношение называют отношением "представления" (representation) – модель представляет объект. Никакой особой теории на счёт отношений representation нет, и надо учитывать, что в некоторых других онтологиях representation называют совсем иное отношение. В некоторых случаях говорят, что модель является описанием (description) моделируемого объекта. Так модно сказать о моделях, которые позволяют вынести суждение о моделируемом объекте только путём их прочтения, без возможности узнать что-то дополнительно к написанному, например, что-то посчитать. Такое моделирование называют структурным, логическим.

Модели, по которым можно проводить вычисления, заставлять их как-то действовать в роли моделируемого объекта – обычно называют симуляционными/имитационными моделями. В них разворачиваются во времени какие-то характеристики моделируемого объекта, решаются уравнения, используются численные методы. Современное моделирование пытается объединить эти виды моделей, предлагая всё более и более мощные и выразительные языки моделирования.

В принципе, любой текст (описание объекта), любая картинка, видео или фотография могут считаться информационной моделью. Но мы среди информационных моделей будем особо выделять машинообрабатываемые модели.

Системноинженерное мышление

TechInvestLab, 2 апреля 2015

79

Обратите внимание, не "машиночитаемые", то есть те, которые можно записать на машинные носители, а "машинообрабатываемые", то есть те, с которыми компьютер может проводить хоть какие-то осмысленные операции. Хотя бы отвечать на вопрос "из каких частей состоит моделируемый объект?". Это ещё не имитационная/симуляционная модель, но уже машиночитаемая.

К сожалению, подход 4D экстенсионализма не позволяет удобно рассуждать об общих чертах информационных и физических моделей — в этой парадигме очень жёсткие критерии различение индивидов и абстрактных объектов.

Однако в нашей книге мы до сих пор писали об информационных моделях, и далее будем в основном рассказывать именно о них. Более того, во многих случаях мы будем говорить о моделях данных, то есть моделируемый объект у нас будет данными о каком-то ином объекте, моделью ещё чего-то. Вспомним, что мы называли такую ситуацию мета-моделированием. Для таких мета-моделей - моделей данных – отношение между мета-моделью и моделируемым информационным объектом можно онтологически описать ещё одним понятием – определение (definition). Действительно, в этих случаях мета-модель позволяет оценить правильность, корректность данных, верифицировать их соответствие каким-то требованиям.

Онтологизирование, моделирование, программирование

Вы можете заподозрить, что описанные нами онтологизирование (составление онтологического описания реальности) и моделирование (создание информационной модели реальности) — это одно и то же. Так считают многие:

“What an engineer calls a model a logician calls an axiom set; what a logician calls a model an engineer calls a simulation. This equivalence of concepts leads to application of well-established methods of logic to engineering."

Henson Graves, http://www.omgwiki.org/MBSE/lib/exe/fetch.php?media=mbse:mathemataical_foundati on_engineering.pdf

Но отличия, разумеется, есть. Более точно можно сказать, что онтологизирование есть подвид моделирования, подчиняющийся некоторым правилам.

При онтологизировании/онтологическом моделировании считают хорошим тоном, чтобы описания разных предметных областей удовлетворяли хоть какой-то непротиворечивой общей модели мира – предельной онтологии философскологического уровня.

Однако все логические уровни описания можно считать уровнями моделирования. Просто при моделировании на нижних уровнях работают не столько с онтологией (что есть непротиворечивым представлением о мире в целом), сколько с онтиками (представлениями о том, какие объекты есть в каком-то маленьком кусочке мира. Две онтики вполне могут давать противоречивые описания, как будто они части совершенно разных онтологий). Онтики и онтологии часто путают, не различают даже в профессиональной речи, но приверженцы классической онтологической традиции всё же учитывают, что онтика пригодна обычно для решения одного класса задач, онтологии же пригодны для решения любых задач, поскольку они содержат универсальные утверждения про весь мир.

Онтологическое моделирование/онтологизирование часто называют “представлением знаний” (knowledge engineering), то есть формализацией знаний в

Системноинженерное мышление

TechInvestLab, 2 апреля 2015

80

каких-то структурных/онтологических моделях. Для этого используются формализмы языков представления знаний (Common Logic, OMG SBVR, OWL 2, CYCL), такие языки в большинстве своём основаны на логике предикатов, теоретико-множественной математической парадигме.

Всё чаще и чаще и программирование тоже понимается как моделирование. Языки, разработанные специально для симуляционного/имитационного моделирования просто неотличимы от языков программирования. Первый объект-ориентированный язык программирования (Simula 67, 1967г.) был создан именно как язык моделирования. Современный язык мультифизического моделирования Modelica мало отличается от языка программирования по синтаксису, но компилятор этого языка может собрать разбросанные по тексту программы уравнения, составить из них систему уравнений и решать её алгебраически и/или численно.

Зачем моделировать

Но зачем нам вообще моделировать?! Зачем что-то “ограниченно замещать”, когда можно работать с самим моделируемым объектом, а не моделью и не иметь никаких ограничений?

“Моделирование в широком смысле – это эффективное по затратам использование чего-то одного вместо чего-то другого для мыслительных целей. Это позволяет нам использовать вместо реальности что-то такое, что проще, безопаснее или дешевле чем реальность для заданной цели; модель является абстракцией реальности в том смысле, что она не может представить все аспекты реальности. Это позволяет нам иметь дело с миром упрощённым способом, обходя сложность, опасность и необратимость реальности” (Modeling, in the broadest sense, is the cost -effective use of something in place of something else for some cognitive purpose. It allows us to use something that is simpler, safer or cheaper than reality instead of reality for some purpose. A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibility of reality. "The Nature of Modeling.", Jeff Rothenberg, in Artificial Intelligence, Simulation, and Modeling, L.E. William, K.A. Loparo, N.R. Nelson, eds. New York, John Wiley and Sons, Inc., 1989, pp. 75 -92, http://poweredge.stanford.edu/BioinformaticsArchive/PrimarySite/NIHpanelModeling/Ro thenbergNatureModeling.pdf).

Мы не тратим силы на обсуждение и обработку ненужных деталей моделируемого объекта. Модели это “правильные упрощения”.

Формальную (на основе математики) модель можно проверить — вручную или даже компьютером. Это называется model checking. Так, в радиосхеме можно формально удостовериться, что все её компоненты соединены и нет неприсоединённых компонент, все соединения не имеют разрывов (то есть не идут откуда-то в никуда).

Формальную модель можно подвергнуть оптимизации (в том числе компьютерной).

Где физических объект (систему) изготовить долго и дорого, можно ограничиться быстро составляемой информационной моделью, и всё-таки получить ответ на вопрос.

Формальную модель можно не делать руками, а породить (generate) компьютером

— это решение проблемы сложности. Так, 7 миллиардов транзисторов в современном микрочипе невозможно нарисовать руками на кремниевой пластине, и даже невозможно руками нарисовать принципиальную схему такого микрочипа.

Системноинженерное мышление

TechInvestLab, 2 апреля 2015

81

Но можно породить и принципиальную схему и литографическую маску из моделей более высокого уровня на языке описания микросхем.

Модель позволяет явно увидеть невидимое. Нельзя увидеть в реальной системе мощность или прибыль. Если показать пальцем на двигатель, и спросить “где тут находится его мощность?”, то все только посмеются. Если попросить “в каком шкафу компании лежит ваша прибыль — покажите”, то все только посмеются. Но и мощность и прибыль можно увидеть в модели.

Витоге с моделями мы работаем быстрее, безопасней, легче и дешевле, чем без моделей — особенно это относится к компьютерным формальным моделям.

Всистемной инженерии использование моделей настолько важно, что будущая системная инженерия называется Model-Based Systems Engineering (MBSE), прежде всего речь идёт о моделях требований и архитектурных моделях. В менеджменте тоже начало использоваться моделирование: архитектурные модели предприятия, модели бизнеса, модели рабочих процессов, финансовые модели.

Можно ли без моделей? Можно ли обсуждать сложные вопросы так, как это происходит обычно на совещаниях, “с голоса”, без моделей? Да, гроссмейстеры продумывают партии "внутри головы", не глядя на доску. Но не все люди — гроссмейстеры, плюс обдуманные в голове партии могут содержать невидимые другим людям ошибки, ибо не обсуждены. Более того, чужие (разработанные гроссмейстерами) партии простые люди просто не будут играть — нет к ним доверия, в критических ситуациях люди предпочтут делать какие-то простые ходы, а не прибегать к разработанным гроссмейстерами непонятным хитростям. Ну, или с гроссмейстерами будут ввязываться в длинные разговоры, чтобы разобраться, что там к чему — а это время.

Анри де Гиус (в книге "Живая компания" он описывает опыт принятия крупных проектных решений в Shell) заметил, что использование сценарного компьютерного моделирования не привело к более качественным решениям. Но принятие решений ускорилось примерно втрое, компания начала реагировать на изменения в окружающей среде и внутри себя втрое быстрее: модели позволяли втрое быстрее договариваться, люди с моделями чувствовали себя более уверенными в принятии решений, чем в случае устных обсуждений и текстовых “докладных записок”. То же самое относится к MBSE: вместо недели коллективных медитаций на совещаниях — ночь моделирования и утренняя демонстрация готового решения, при том же качестве результата (этот пример взят из частной переписки системных инженеров). Но в случае очень сложных решений без модели можно вообще не справиться: время обсуждения будет больше, чем будет открыто окно возможностей, и без моделирования можно просто не успеть отреагировать на ситуацию.

Почему моделирование не повсеместно

Если с моделированием всё так хорошо, то почему оно не повсеместно? Вот основные причины (подробнее — http://ailev.livejournal.com/1056723.html):

1. Полезность моделирования неочевидна. Опыт показывает, что множество решений вполне можно выполнить без моделирования. Никто не может предъявить конкретных цифр, что с моделированием эти проекты были бы выполнены быстрее (решения бы по ним принимались быстрее плюс экономия от меньшего количества ошибок). Ничего удивительного, когда-то и строительных чертежей не было, и моделей сопромата для мостостроителей. Хотя и делали какие-то эскизы и макеты,

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]