
- •1. Системная инженерия
- •Определения системной инженерии
- •Ответственность за целокупность и междисциплинарность
- •Для чего нужна системная инженерия: победить сложность
- •Профессия системного инженера
- •Системный инженер как профессия
- •Профессиональные организации системных инженеров
- •Можно ли научить творчеству?
- •Метанойя — не просто обучение, а смена способа мышления
- •Можно ли научить системного инженера, или им нужно родиться?
- •Моделирование творчества в виде, понятном даже компьютеру
- •Методология системной инженерии
- •Образование системных инженеров
- •Отличия системной инженерии от других дисциплин
- •Системная инженерия против других инженерий
- •Системная инженерия против советской инженерии
- •Системная инженерия и системотехника
- •Системная инженерия и менеджмент
- •Инженерный менеджмент
- •Управление технологией
- •Системная инженерия и государство
- •2. Формализмы системной инженерии
- •Терминология и онтология
- •Соглашение по терминологии
- •Выбирайте слова
- •Что такое онтология
- •Индивиды, классы и классификаторы
- •Экстенсионализм и интенсионализм
- •Функциональные объекты
- •Процессы и действия
- •О логических уровнях
- •Выбор уровней
- •Математические формализмы
- •Объекты и атрибуты
- •Объекты и факты
- •Факты и графы
- •Теория категорий
- •Моделеориентированность
- •Что такое модели
- •Онтологизирование, моделирование, программирование
- •Зачем моделировать
- •Почему моделирование не повсеместно
- •Информатика
- •Принципы моделеориентированности
- •3. Инженерия и наука
- •Инженерия не научна
- •Разница между инженерами и учёными
- •Предмет инженерии и научные предметы для инженерных объектов
- •Ненаучность инженерии. Эвристики
- •Наука как “научение птиц полёту”
- •Инженерия научна
- •Инженерная наука
- •Научное (формальное) основание системной инженерии
- •Системный подход как научное основание системной инженерии
- •Системноинженерное мышление коллективно
- •А в чём мышление?
- •Наука/менеджмент = наука/инженерия
- •4. Схема/онтология инженерного проекта
- •Схемное/онтологичное мышление
- •Ситуационная инженерия методов
- •Описание метода в настоящем курсе системноинженерного мышления
- •Яблоки из жизни и яблоки из задачи
- •Альфы
- •Метонимия и схемы
- •Методологическая действительность: дисциплины, практики, методы
- •Дисциплины/области интереса
- •Практики
- •Метод
- •Методологическая действительность и действительность предпринятия
- •Семь основных альф инженерного проекта
- •Основы системной инженерии: альфы инженерного проекта
- •Стейкхолдеры
- •Возможности
- •Определение системы
- •Воплощение системы
- •Команда
- •Работы
- •Технология
- •5. Системный подход
- •Понятие “подхода”
- •Системный подход в системной инженерии
- •Варианты системного подхода
- •Системный подход и кибернетика
- •Сложность и меры сложности
- •Термин “система”
- •Классификация систем по ISO 15288
- •Системная медитация
- •“Сначала как часть надсистемы”
- •Стейкхолдеры. Театральная метафора
- •Система — это субъективное понятие
- •Театральная метафора.
- •Позиция
- •Работа со стейкхолдерами
- •Граница системы и деятельностная субъективность её проведения
- •“Просто” системы и системы систем.
- •Навигация по уровням холархии ”zoom — select”.
- •Системы с участием людей: осторожно!
- •6. Воплощение системы: компоненты, модули, размещения
- •Многерица
- •Сколько разных ипостасей в одной системе?
- •Принцип разделения интересов
- •Закрытый и открытый миры
- •Два типа “целого”
- •Компоненты, модули, размещения
- •Компоненты
- •Модули
- •Размещения
- •Структура системы: разбиения.
- •Разбиения (breakdowns)
- •Представления разбиений
- •Обозначения систем
- •Практики изготовления (производства)
- •7. Определение системы: требования, архитектура, неархитектурная часть проекта
- •Определения и описания
- •Обобщение ISO 42010 на определение системы
- •Контроль конфигурации
- •Фокусирование определений системы
- •Практики проверки и приёмки
- •Практики описания системы
- •Требования
- •Два смысла слова “требования”.
- •Модальности в требованиях
- •Инженерные обоснования
- •Рабочие продукты требований
- •Требования стейкхолдеров
- •Требования и ограничения
- •Требования к системе
- •Инженерия требований
- •Какие бывают виды требований
- •Кто должен делать требования
- •Целеориентированная инженерия требований
- •Архитектура
- •Практики архитектурного проектирования
- •Минимальная архитектура
- •Субъективность и относительность архитектуры.
- •Архитектурные описания
- •Как объединять разные модели и группы описаний
- •Архитектурные модели и другие виды описаний
- •Архитектурные знания
- •Неархитектурная часть проекта
- •8. Жизненный цикл системы и проекта
- •Понятие жизненного цикла
- •Жизненный цикл чего?
- •Управление жизненным циклом
- •Типовой жизненный цикл и разнообразие
- •Гейты и вехи
- •Рабочие продукты для определения жизненного цикла
- •Информационные системы управления жизненным циклом
- •Управление информацией/данными жизненного цикла
- •Практики жизненного цикла
- •V-диаграмма
- •Горбатая диаграмма
- •Водопад и agile
- •Вид жизненного цикла
- •Стили разработки: водопад и agile
- •Паттерны жизненного цикла
- •Основной жизненный цикл
- •Состояния альф
- •Основной жизненный цикл
- •Практики жизненного цикла в версии ISO 15288
- •9. Практика контрольных вопросов
- •Контрольные вопросы для управления жизненным циклом
- •Успех контрольных вопросов
- •Контрольные вопросы к состояниям альф
- •Карточки состояний
- •Когда заводить подальфы
- •Карточные игры
- •Контрольные вопросы инженерного проекта
- •Карточки основных альф инженерного проекта
- •Стейкхолдеры
- •Возможности
- •Определение системы
- •Воплощение системы
- •Команда
- •Работа
- •Технологии
- •Пример введения новой альфы: подальфа «подрядчик»
- •10. Инженерия предпринятия
- •Инженерия: организационная, предприятия, бизнеса, предпринятия
- •Сообщества и их отличия от предпринятия: целенаправленная коллективная деятельность
- •Миссия предпринятия
- •Корпоративное управление
- •Стратегирование, маркетинг, продажи
- •Предпринятие как система-машина, а не толпа людей
- •Развитие и совершенствование предпринятия
- •Проект технологического развития: постановка практик
- •Организационное развитие. Закон Конвея
- •Системноинженерное мышление и инженерия предпринятия
- •Цикл непрерывного совершенствования
- •Цикл Деминга
- •Шесть Сигм
- •Архитектура предпринятия
- •Основные альфы организационного и технологического решения предпринятия
- •Подальфы определения предпринятия
- •Подальфы воплощения предпринятия
- •Виды практик описания деятельности
- •Предпринятия-киборги, workflow
- •Организация, координация, коммуникация
- •Архитектура предприятия
- •Подход Захмана к архитектуре предприятия
- •Бизнес-архитектура
- •Органиграмма
- •Писцы против инженеров
- •Неархитектурные описания предпринятия
- •Это всё системный подход
- •ArchiMate
- •Зачем нужен Архимейт
- •Люди, программы, оборудование
- •Элементы и отношения
- •Нужен не ты, нужен твой сервис.
- •Люди
- •Роли
- •Работы людей
- •Архитектура IT-решения
- •Управление операциями
- •Инженерия предпринятия и управление операциями
- •Проектное управление
- •Управление процессами
- •Ведение дел/кейс-менеджмент
- •Управление проектами и управление жизненным циклом
- •Проектное управление и ведение дел: не “или”, а “и”.
- •Управление мероприятиями
- •Финансы
- •Управление знаниями, НСИ, (справочными и мастер, а также проектными) данными
- •Инженерия и предпринятия-киборги.
- •Инженерия знаний и управление знаниями.
Системноинженерное мышление |
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. Полезность моделирования неочевидна. Опыт показывает, что множество решений вполне можно выполнить без моделирования. Никто не может предъявить конкретных цифр, что с моделированием эти проекты были бы выполнены быстрее (решения бы по ним принимались быстрее плюс экономия от меньшего количества ошибок). Ничего удивительного, когда-то и строительных чертежей не было, и моделей сопромата для мостостроителей. Хотя и делали какие-то эскизы и макеты,