Я в ИТ-сфере официально около 15 лет, и большую часть этого времени занимался проектированием систем. Очень часто в работе или при знакомстве с новыми коллегами возникают споры на профессиональные темы, одним из которых является ответ на вопрос – «Что такое система?». Каждый понимает это понятие по-своему, чаще всего опираясь на свой опыт и знания, полученные в ИТ-сфере; другие трактуют определения, взятые из интернета или учебников. И чаще всего эти споры не приводят к единому мнению, так и сейчас я не претендую на 100% принятия моих рассуждений.

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

Перед тем как перейти к определению системы, я расскажу одну историю, а именно слова одного из моих преподавателей в институте. На последних курсах учебы, 4 или 5 курс, точно не помню, он раскрыл нам секрет: «Систем не существует». То есть после нескольких лет обучения нас тонкостям и методам создания систем он заявляет, что систем не существует. Смотря на нас с улыбкой на лице и после непродолжительной паузы он добавил, что система — это не что-то существующее в нашем мире: это умение видеть окружающий мир в виде некоторых повторяющихся зависимостей. Умение каждого человека видеть, определять системность вокруг нас. И так же, как художник видит мир в своих цветах, так же и мы видим эту системность мира по-своему. Именно поэтому я считаю, что наша профессия самая что ни на есть творческая.

Мы творцы, мы рисуем мир цифрами.

Отсюда напрашивается вопрос — что нужно, чтобы увидеть систему, что отличает простое видение от системного? Для начала — поймите, что вы ищете, выберите свое определение, которое вам подходит, которое вы понимаете.

Я дам свое определение системы, которое мне больше всего нравится, и я везде использую его как основу. Оно, на мой взгляд, самое простое и понятное:

«Система — это набор объектов и правила взаимодействия между ними»

Чтобы точнее понять, о чем тут речь, давайте вспомним из нашего опыта, какие системы мы знаем: система уравнений из школы; солнечная система; экономические системы; социальные системы и т.д. Во всех этих системах есть ключевые объекты, которые мы рассматриваем: например, уравнения, космические тела солнечной системы, люди вокруг нас, как объекты социальной системы; и определенные правила, по которым они взаимодействуют в рамках своих систем: гравитационные силы, социальные, межличностные правила общения и так далее. Как и было сформулировано в определении, все эти системы объединяет наличие общих элементов — набор объектов и правил, по которым эти объекты связаны друг с другом. Тогда получается, что любой человек, определяя связь между двумя и более объектами во внешнем мире, создает систему.

Скорее всего, вы сейчас думаете — а причем тут АИС, как это поможет нам? Разберем для начала, что такое информационная система. Рассмотрим наше определение и доработаем его:

Информационная (Система — это набор объектов и правила взаимодействия между ними) => Информационная система — это набор информационных объектов и правила информационного взаимодействия между ними

Получается, что разница между системой физической и системой информационной в том, какие объекты рассматриваются в этих системах и какие правила взаимодействия между ними выделяют.

Разберем, что такое информационный объект и что такое информационное взаимодействие между этими объектами.

На мой взгляд, информационный объект — это информационная модель физического объекта, хранимая в виде информации, и она должна указывать на физический объект

Давайте рассмотрим пример: вокруг вас находится с десяток различных физических объектов, будь то стулья, столы, ноутбук, кровать, диван и пара кресел. И если сказать: «Возьми вот тот конкретный стул!», указав на конкретный физический объект, то взять сразу нужный стул не составит никакого труда — в этом случае вы работаете с физическим объектом. Но, когда вы разрываете привязку к физическому объекту, оперируя только его названием, вы работаете уже с моделью физического объекта — информационным объектом: говоря «стул», вы не имеете ввиду конкретный стул, а просто выделяете такое понятие — информационное понятие, обозначающее абстрактный информационный объект, с которым можно дальше работать — стул, стол, кресло. Если сказать эти слова человеку, который не знает значений этих моделей, ему будет непонятно, о каких физических объектах идет речь. Потребуется объяснить, на какие свойства (параметры или атрибуты) нужно обратить внимание, чтобы из данного множества объектов выделить нужный вам физический объект. Именно эти параметры информационного объекта и являются его ключевым элементом. Информационный объект или, как я привык его называть, сущность — это набор свойств, выделяющих нужные нам физические или информационные объекты из выделенного множества других физических или информационных объектов.

Чтобы стало понятнее, я выделю из вышеперечисленного примера 2 сущности:
  • стулья — объекты, определяющиеся наличием 4 ножек, основы, чтобы сидеть на нем, и спинки, на которую можно облокотиться. Возможно определение не точное, но оно подходит для понимания.
  • предметы интерьера, на которые можно садиться — это объекты, имеющие плоскую опору, на которую можно сесть и которые стоят на полу и возвышаются на высоту не менее 40 см и не более 1,5 метров.

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

Идем дальше… Правила информационного взаимодействия. Рассмотрим для примера цветовую индикацию светофора как возможную систему, и выделим объекты рассматриваемой нами системы. Объектами системы являются три элемента света: красный, желтый, зеленый. Если человек не понимает предназначения светофора, то, наблюдая за ним, он все равно может увидеть связи между этими объектами. Красный свет загорается после зеленого, желтый после красного, зеленый после желтого; иногда встречаются светофоры, на которых зеленый загорается после одновременно горящих красного цвета и желтого и т.д. Добавляя в эту систему новые объекты — автомобили, он выявит, что на зеленый все едут, на красный — останавливаются перед светофором и т.д.

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


Еще один пример. Возьмем сущность «Контрагент» — некоторое физическое или юридическое лицо, с которым осуществляется какая-либо деятельность; добавим к системе новую сущность – «Сделка». Если сущность «Сделка» связать с «Контрагентом», то мы можем получить 2 новые сущности – «Покупатель» и «Поставщик».

Теперь, понимая, что такое информационная система, разберем, что такое автоматизированная информационная система. По аналогии с разбором определения выше мы можем понять, что нужно автоматизировать информационные объекты и автоматизировать информационное взаимодействие.

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

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

Поэтому я бы определил «автоматизированную информационную систему» как проекцию информационной системы на технические средства

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