Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

ЦИФРОВЫЕ ЭКОСИСТЕМЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ

Гопоненко А.А. 1 Исхакова А.Р. 1
1 Сибирский федеральный университет Институт космических и информационных технологий
В данной статье описывается схожесть структуры программного обеспечения и естественных экосистем. В связи с этим проводится некая параллель между этими понятиями. Особое внимание в статье уделено понятию цифровых экосистем, а также их применению в программном обеспечении. Цифровые экосистемы схожи с естественными экосистемами, так как в них есть конкуренция и сотрудничество между разными объектами. Программное обеспечение рассматривается как часть цифровой экосистемы. Также в статье рассматриваются программные агенты, которые являются частью цифровых экосистем. Агенты - это такие программы-посредники между другими программами или пользователями. Смысл применения агентов заключается в их самостоятельности. Рассматриваются модели цифровых экосистем и их сущность. Существуют две модели цифровых экосистем: холистическая и мерологическая. Они позволяют выделить характерные свойства для цифровых экосистем. Цифровая экосистема представлена как некоторая техническая система со свойствами самоорганизации и устойчивости, основанной на природных экосистемах. В данной статье также рассматривается применение цифровых экосистем в разных областях деятельности человека, таких как бизнес и экономика. Рассматриваются плюсы применения цифровых экосистем в программной инженерии.
цифровые экосистемы
экологический подход
программное обеспечение
программные агенты
1. Никулина Д.М., Яковлева В.А., Михалев А.С. Применение информационных систем в управлении персоналом // Новая наука: теоретический и практический взгляд. – Стерлитамак: АМИ, 2016. -№12(3) – С.133-136.
2. Евдокимов И.В., Михалев А.С., Чучунева А.С., Павлушкина Л.В. Применение систем отслеживания ошибок в дистанционном обучении по ИТ-направлениям подготовки // Дистанционное и виртуальное обучение. 2018. - №1 – С. 132-137.
3. Кокташев В.В., Макеев В.В., Михалев А.С. Применение системы управления инцидентами для разработки программного обеспечения в образовании // Современные информационные технологии. 2017. - № 26. – С. 139-143.
4. Евдокимов И.В., Коваленко М.А., Мелех Д.А. Управление разработкой и внедрением учетной информационной системы // Научное обозрение. Экономические науки. – 2017. – № 4. – С. 34-39.
5. Патаракин Е.Д., Шустов С.Б. Цифровая экология: эколого-социальные сети и информационные экосистемы // Вестник Мининского университета. – 2013. – №3.
6. Сидоров Н. А. Экология программного обеспечения // Инженерия программного обеспечения. – 2010. - №1. – с. 53-61.
7. Хоменко В.А. Экосистемы программного обеспечения // Вестник Нац. техн. ун-та "ХПИ": сб. науч. тр. темат. вып.: Новые решения в современных технологиях. – Харьков: НТУ "ХПИ". – 2011. – № 23. – С. 114-118.
8. G. Briscoe and P. De Wilde Digital Ecosystems: Evolving service-oriented architectures // In Conference on Bio Inspired Models of Network, Information and Computing Systems. IEEE Press, 2006.
9. M.F. Lungu. Reverse Engineering Software Ecosystems. – Doct. Diss. – USI, 2009. – 208 p.

В последнее время наша жизнь становится всё более насыщенной различными технологиями. Рост программного обеспечения оказывает огромное влияние на жизнь и развитие общества. Программные продукты стали уже сейчас неотъемлемой частью нашей жизни [1-3]. В связи с этим проблемы, возникающие в процессе создания программного обеспечения, связанные с усложнением их структуры, не могут остаться без нашего внимания. В связи с этим возникла острая необходимость в упрощении и правильном распределении нагрузки на информационные системы [4]. Решение проблемы учёные неожиданно обнаружили, заметив, что структуры программного обеспечения и естественных  экосистем во многом схожи. Данную аналогию в своих работах проводит Мануэль Кастельса. Вследствие этого появился  термин «экологический подход». Под ним подразумевают методологию исследований программного обеспечения, как целой (системной) части окружающей среды, рассматриваемой в форме экосистемы, с учетом устойчивого развития [6]. Существует несколько направлений применения экологического подхода в исследованиях программного обеспечения. Одно из них рассматривает  программное обеспечение как часть цифровой экосистемы. Другие связаны с реализацией ресурсосберегающих и безотходных производств программного обеспечения. Третьи связаны с применением общих принципов и требований экологичности производства к программному обеспечению [9].

Под понятием цифровой экосистемы понимают распределенную, адаптивную, открытую социально-техническую систему со свойствами самоорганизации и устойчивости, основанной на природных экосистемах. Цифровые экосистемные модели основаны на естественных экосистемах, особенно они схожи в отношении аспектов, связанных с конкуренцией и сотрудничеством между различными субъектами [8]. С термином цифровые экосистемы знакома не только программная инженерия, но и другие отрасли человеческой деятельности. Широкое применение цифровые экосистемы нашли в бизнесе и экономике. В каждом из них цифровые экосистемы активно помогают и упрощают решение проблем, возникающих по ходу работы людей. Например, в бизнесе экосистема вводит четкие принципы технического и рыночного поведения. Так же экосистемы решают вопросы безопасности и предлагают комплексные решения возникающих проблем. Они вносят четкость, релевантность в отношения между автоматизированными системами и экономическими субъектами.

Среди сложноорганизованных моделей цифровые экосистемы имеют преимущества, так как обладают потенциалом для динамической адаптивной самоорганизации.  Но чтобы цифровые экосистемы были наиболее полезны, они должны решать задачи с конкретно поставленной целью. Цифровая экосистема описывает ситуацию в мире компьютерных программ, где на базе компьютерной сетевой инфраструктуры происходит взаимодействие и взаимное использование программных агентов [5]. Агенты - это такие программы-посредники между другими программами или пользователями. Они способны принимать сообщения, интерпретировать их содержание и формировать новые, которые отправляются либо другим агентам, либо в общую базу. Смысл применения агентов заключается в их самостоятельности. Кроме этого они обладают следующими свойствами:

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

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

При классификации агентных программ пользуются двумя основными признаками: уровень развития представления о внешнем мире и способ принятия решения. На основе данных признаков выделяют следующие виды агентов:

  • простой рефлексный агент (выбор действия основывается на текущем восприятии состояния среды)
  • агент, учитывающий внутреннее состояние (отслеживает текущее состояние среды и сопоставляет его с прежним внутренним состоянием, на основе этого совершает действие)
  • агент, действующий на основе целей (отслеживает состояние среды и множество целей, после чего выбирает действие, направленное на их достижение)
  • агент, основанный на полезности (выбор действия агента зависит от степени полезности)
  • обучающийся агент (изменение действий агента для его более успешной работы)

Чаще всего при моделировании сложных цифровых экосистем используют многоагентные системы. Многоагентной  системой или мультиагентной системой называют систему, состоящую из нескольких агентов, взаимодействующих между собой [8]. Взаимодействие агентов между собой является отличительной чертой многоагентных систем. Существует несколько базовых видов взаимодействия между агентами, к ним относятся: кооперация (сотрудничество), конформизм (отказ от своих интересов в пользу других), конкуренция (конфликт), компромисс (учёт интересов других агентов). Важнейшими характеристиками взаимодействия агентов  между собой являются:

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

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

Экосистемы программного обеспечения можно представить в виде двух моделей: холистической и мерологической. Обе эти модели позволяют выделить ряд свойств характерных для программного обеспечения. Важной задачей при построении моделей является выбор сущностей для обмена между элементами системы. Особенностью холистической модели является то, что она представляет собой обобщенную схему экосистемы, в которой отсутствуют подробности. Можно сказать, что она характеризует экосистему программного обеспечения в целом. Благодаря виду на экосистему снаружи, а не изнутри, можно понять, где располагаются её границы. Зная это, можно определить размер экосистемы и взаимосвязи цифровой экосистемы со средой. Мерологическая модель показывает элементы экосистемы программного обеспечения и взаимодействие между ними. В отличие от холистической модели она характеризует экосистему изнутри, подробно рассматривая её структуру. Данная модель весьма полезна при изучении экосистем, так как обладает свойствами, которые могут описывать состав и количество элементов, интенсивность взаимодействия между элементами [7].

Существует много примеров цифровых экосистем программной инженерии. Одним из них является цифровая экосистема, реализующая идею электронного правительства - eGaaS (Electronic Government as a Service). EGaaS является единой, цельной, многокомпонентной экосистемой. В её состав входят различные сферы деятельностей государства. Поэтому в сумме она даёт полную картину о ситуации внутри государства. Этими сферами являются 4 института: власти, социальной сферы, экономики и финансов. В основе экосистемы eGaaS заложена технология блокчейн.

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

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

  • Он позволяет в большей степени пренебречь затратами, которые возникают по причине заключения контрактов.
  • Стало возможным значительно сэкономить время на проведение сделок. Раньше на это отводилось более чем несколько дней, так как на различные проверки документов требовалось некоторое время, теперь это стало возможным реализовать всего за несколько часов.
  • Благодаря блокчейну у организаций и учреждений появилась возможность сократить свои расходы. По крайней мере, избавиться от части из них, что весьма выгодно для них.

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


Библиографическая ссылка

Гопоненко А.А., Исхакова А.Р. ЦИФРОВЫЕ ЭКОСИСТЕМЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ // Международный студенческий научный вестник. – 2018. – № 5. ;
URL: https://eduherald.ru/ru/article/view?id=18782 (дата обращения: 29.03.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674