Популярная системотехника Михаил Токарев В этой статье мы обобщим результаты анализа литературы и практического опыта автора по вопросу системотехники и самого понятия системы, отойдя, насколько это возможно, от «наукообразия» этих понятий, описав их простым доступным языком. Необходимость подобной работы следует из необходимости использования принципов системотехники специалистами, занимающимися разработкой сложных систем, не прошедшими специального обучения. Как правило, нарушение этих принципов приводит к реализации систем, не отвечающих тривиальным требованиям науки и практики, чрезмерного финансирования при создании систем, создания неиспользуемых систем и просто к потере вложенных средств. Общеизвестно, что понятия системотехники можно применять к различным областям знания, начиная от биологических, естественных и заканчивая искусственными системами. Мне пришлось продолжительное время заниматься искусственными системами (информационными, АСУ, ERP) и поэтому, помимо простого описания понятий, попытаюсь обосновать свои взгляды на конкретных примерах. Начнем с определения системы понятий. Основные понятия системотехники Элемент – объект любой природы, неделимый в данном контексте рассмотрения. Если, например, Элемент входит как составная часть в автомобиль, то это двигатель, трансмиссия, кузов, колеса и т.д. На более низком уровне, Элементами кузова являются двери, стекла, крылья, бампер и т.д. Связь – это отношение объектов друг к другу. Связи могут быть самой различной природы, от организационных до виртуальных. Функция – действия, поведение того или иного объекта, как правило, направленное во внешнюю среду. Комплекс – это совокупность элементов, объединенных по какому-либо принципу и/или в каком-либо контексте рассуждения. Это может быть и набор карандашей, и группа людей, и даже группа звезд. Чаще всего в комплекс объединяются объекты (элементы) одинаковой природы. Система – это тоже совокупность элементов. В отличие от понятия комплекс, Система обладает рядом свойств, специфичных только ей: связность – элементы Системы связаны друг с другом существенными связями, которые значительно сильнее (в данном контексте рассмотрения), чем связи между этими элементами и внешними, по отношению к системе, объектами. Например, с точки зрения автомобиля, как системы, колеса связаны с другими элементами автомобиля существенно сильнее, чем с дорогой, по которой автомобиль едет. целостность – ни один из элементов Системы не может быть изъят из нее. Система предназначена для выполнения конкретных функций и все без исключения элементы участвуют в выполнении этих функций. Если элемент выделить из Системы, он становится независимым объектом, и Система перестает выполнять весь набор функций, для которых она предназначена. делимость – каждый из элементов является самостоятельным объектом с четкими границами и связями с другими элементами. организация – элементы Системы ориентированы относительно друг друга в пространстве, во времени и в связях друг с другом, в отличие от комплекса, в котором элементы могут быть представлены как простой, неупорядоченный набор. Таким образом, Система – это совокупность сильносвязанных элементов, обладающая свойствами организации, связности, целостности и делимости. Система – это модель, с помощью которой человек изучает объекты живой и неживой природы. Прежде чем приступить к описанию Системы исследователь должен четко определить следующее: границы Системы, совокупность элементов и связей между ними, интерфейсы Системы (внешние связи со сторонними объектами), совокупность функций, которые Система выполняет. Цель – конечное состояние объекта (Системы), характеризующееся набором свойств, параметров (целевых критериев) или результат его функционирования для внешних сущностей. Цель – это состояние объекта (набор свойств) отличное от текущего состояния, и которое может оцениваться лишь в сравнении с текущим состоянием. Системный анализ Под системным анализом понимается вся совокупность методов и технологий, использующих в себе системный подход. В свою очередь, системный подход основывается на представлении объекта в виде системы, изучение его морфологии (структуры, связей элементов, интерфейса), анализе системы на микроуровне (элементы и связи между ними) и макроуровне (интерфейсы системы), анализ системных функций с точки зрения достижения целей всей системой. Моделирование Общеизвестно, что модель, это некоторая интерпретация, проекция объекта, в которой выделяются существенные детали, связи, свойства и игнорируются несущественные в данном контексте. Основная задача создания модели – это изучение моделируемого объекта. Значительно проще создать уменьшенную модель самолета и изучить ее свойства с помощью продувания в аэродинамической трубе, чем построить для этого реальный самолет. Часто модели создают для передачи знаний между специалистами. Например, для описания бизнес-процессов предприятия. В качестве примеров моделей можно также привести чертежи зданий и сооружений, уменьшенные копии автомобилей, математическую формулу, описывающую физические законы (свободное падение, например) и т.д. Если говорить об информационных системах, то в качестве моделей могут выступать чертежи в нотации ERD, DFD и даже Техническое задание. Целеполагание Основное отличие искусственных систем от естественных – в том, что существует цель, с которой они создаются. Очевидно, что естественные системы не имеют прагматических характеристик, хотя человек в силу природы своего разума старается эти характеристики приписать «живым» системам. Цель – понятие настолько же простое, насколько и сложное. Если система создается одним человеком, он четко представляет себе, зачем она ему нужна. Чаще всего это простая система. Если же система создается для достижения целей группы людей, корректное определение ее целевых характеристик может стать неразрешимой задачей. Ни в коем случае нельзя путать понятия «цель» и «задача». В этом случае создание системы может превратиться в самоцель (мы создаем автоматизированную систему, чтобы автоматизировать предприятие). С теоретической точки зрения системы в первую очередь создаются для удобства. Это не очевидный факт, но если проанализировать, что же мы получаем в итоге от работающей системы, он становится более понятным. Если в качестве примера взять автомобиль или здание, этот факт более очевидный. Если рассмотреть цели автоматизированной системы, на первый взгляд кажется, что ее основной целью является улучшение управляемости предприятием. Но улучшение управляемости связано как раз со своевременность получения отчетов, с исключением ошибок в отчетах и т.п. Это все составляющие подцели глобальной цели: увеличения удобства. Рассмотрим еще несколько примеров систем. Возьмем простую, на первый взгляд, систему: автомобиль. Ее целевая функция известна – доставить груз из точки А в точку В. Но если мы поставим задачу детализации (квантификации) этой цели, мы получим множество противоречивых критериев в зависимости от вида груза, удобств, стоимости и т.п. Если система уже существует, мы можем корректировать не ее функции, а только свои ожидания, т.е. цели. Или заниматься ее модернизацией, например, «тюнигом» автомобиля. Эти же соображения касаются и информационных систем. Если современное предприятие уже существует, то у него уже есть в том или ином виде информационная система (или комплекс). Исходя из этого, при внедрении новых систем, специалисты должны четко понимать, что существующая инфраструктура при ее создании предполагала достижение каких-либо целей. И цели новой системы должны, как минимум, учитывать их. Это дополнительно усложняет целеполагание. Только в том случае, когда система только создается, есть возможность корректно построить дерево целей и реализовать именно то, что требуется. Какими критериями должны обладать цели, чтобы реализация системы прошла успешно? В первую очередь, это корректность. Во вторую – полнота и непротиворечивость. Если с корректностью и полнотой все очевидно, с противоречивостью целей при создании сложных систем приходится бороться значительно дольше. Сложно создать один и тот же автомобиль для перевозки людей и кирпича. Невозможно создать автоматизированную систему, реагирующую на входное воздействие мгновенно (в режиме реального времени), если сложность преобразования информации значительно превосходит существующие вычислительные мощности или эти мощности недоступны из-за ограничений финансирования. Еще сложнее разработать дерево целей для специализированных заказных систем. В частности, большинство автоматизированных систем управления (АСУ) являются заказными. В работу таких систем вовлекаются разные слои пользователей, начиная с операторов, вносящих информацию в систему и заканчивая учредителями предприятия. Очевидно, что цели последних имеют больший приоритет, но при проектировании таких систем из-за недостатка времени они мало уделяют внимания системе. В результате цели смещаются, и конечный результат чаще всего не устраивает топ-менеджеров компании. Каков выход из сложившейся ситуации? Очевидно, что при создании и автомобиля, и АСУ необходимо как можно раньше зафиксировать основные цели и начать их детализацию. При появлении противоречивых целей необходимо решать соответствующие задачи оптимизации в соответствии с утвержденными критериями. В третью очередь, цели должны быть измеримы. Этот критерий позволяет однозначно толковать достижимость цели. Необходимо помнить, что измеримость бывает 3 категорий: интервальная (конкретное значение, интервал), порядковая (больше-меньше и т.п.) и категорийная (да-нет и т.п.). Ну и, конечно, цели должны быть полезны. Правильность выбора цели определяет правильность разработки системы, но не обеспечивает эту разработку. Что еще необходимо знать, чтобы правильно построить и использовать искусственную систему? Чтобы ответить на этот вопрос рассмотрим как система «рождается» и почему «погибает». Анализ некоторых общих законов развития систем Любая искусственная система, как и «живая» «рождается» и «погибает». В этом вопросе есть несколько аспектов. Один из них – это «жизненный цикл» системы. Если «рождение» естественной системы не всегда подвластно человеку, то на жизнь многих из них человек может влиять целенаправленно. Искусственные же системы подвластны человеку с самого «рождения» на протяжении всей «жизни». Развитие большинства систем можно смоделировать логистической S-образной кривой, на которой выделяются три стадии развития: первая, характеризующаяся накоплением потенциала, развитием функционала, большими затратами ресурсов, медленным ростом или отсутствием отдачи; вторая стадия развития, при которой система наиболее эффективна при небольших затратах на ее развитие; третья, характеризующаяся резким замедлением отдачи от системы, несмотря на увеличивающиеся затраты ресурсов. Известно, что третья стадия заканчивается или появлением новой системы со своим «жизненным циклом», или «гибелью» существующей. Заметим, что эти рассуждения верны и для большинства «живых» систем. В контексте сказанного, необходимо понимать, что любая искусственная система имеет ограниченный срок использования, который должен быть известен заранее, до создания системы. Как правило, при создании систем (и АСУ, в частности) разработчики об этом не задумываются, уделяя значительно большее внимание проектным стадиям и технологиям. Важно четко понимать, из чего будет складываться стоимость не только создания, но и эксплуатации системы и ее утилизации. Второй интересный аспект заключается в изучении причин «гибели» системы. Они могут быть как внешними, так и внутренними. Внешние воздействия понятны и мы не будем их подробно рассматривать здесь. При изучении «гибели» системы нам более интересны внутренние причины. Рассмотрим идеальный вариант – отсутствие внешних воздействий. Что же происходит с искусственными системами внутри? Детали автомобиля действуют друг на друга, трение, износ. Если своевременно не прикладывать силу извне, в частности, не менять масло в двигателе, двигатель встанет. То же происходит и в автоматизированных системах. Если своевременно не очищать дисковое пространство, не делать архивы данных, не администрировать элементы инфраструктуры, не осуществлять мониторинг система встанет. То же происходит и в строительстве. Все здания и сооружения требуют регулярного мониторинга и ремонта. В этих примерах причиной остановки работоспособности системы являются внутренние причины, взаимодействие деталей, коррозия (влажность внутри сооружения) и, например, переполнение дискового пространства. Что надо сделать для продления «жизни» системы? Любой специалист скажет – необходимо приложение внешней силы: замена масла и других жидкостей, очистка дискового пространства администратором системы, модификация системы, капитальный ремонт зданий и т.п. А может, стоит просто расширить рамки системы настолько, чтобы сервис системы входил в нее, как совокупность внутренних элементов? На практике последнее решение позволит удлинить «жизненный цикл» системы. При следующем расширении рамок системы удастся еще больше удлинить срок ее службы, создавая автопарки с ремонтной составляющей, передавая автоматизированные системы в «оутсорсинг» и т.п. Но в конце концов наступит момент, когда затраты на поддержание «жизнеспособности» системы превзойдут эффект от ее использования. Нет смысла считать отдачу от использования системы (возврат инвестиций) на неопределенный срок. Просто потому, что человек не умеет по-другому создавать системы. Исходя из этого, искусственная система всегда конечна, следовательно, конечен и ее «жизненный цикл». Для продления жизненного цикла необходимо предпринимать специальные действия по сопровождению системы. Любая система не является статическим объектом. Происходит постоянное изменение как структуры системы, свойств ее элементов, так и ее функций. Это может быть вызвано как требованиями к модификации системы извне, так и процессами, происходящими внутри системы и с каждым из ее элементов в отдельности. Например, в информационные системы помимо технических средств входят пользователи и эксплуатационный персонал. Очевидно, что эти элементы иногда могут изменяться в короткие сроки значительным образом. При смене оператора, на его место может придти необученный пользователь, при болезни эксплуатационника могут перестать выполняться функции обслуживания системы и т.п. Если рассматривать автомобиль в качестве системы, то к факторам изменчивости относятся такие как износ элементов, изменение свойств жидкостей, внешние воздействия от дороги, осадков и т.п. Большое влияние на функционирование системы оказывает внешнее воздействие, которое может быть и положительным и отрицательным относительно выполнения системой ее функций. При проектировании системы очень важно учитывать то, насколько создаваемая система должна быть устойчивой как для внешних, так и для внутренних воздействий и какие меры необходимо применять для поддержания системы в работоспособном состоянии. Проголосуйте за лучшую статью (02.08-15.08)