Scientific journal
International Journal of Applied and fundamental research
ISSN 1996-3955
ИФ РИНЦ = 0,593

METHODOLOGY FOR UNIFYING INPUT PARAMETERS FOR TYPICAL AUTOMATION TASKS

Leleykin S.S. 1
1 Moscow Technological Institute
In this article, the author suggests to get acquainted with the methodology of unification of input parameters for various kinds of automated systems. The need to develop this technique is due to the possibility of its application in order to reduce labor and financial costs in the development and implementation of automated systems and automation processes in general. This technique is successfully used by the author to unify the input parameters of CI/CD DevOps pipelines for software assembly and delivery, but due to the versatility of mathematical models, it can be applied to any automation systems with input parameters. Mathematical modeling, set theory, and Venn diagrams were used for the study. The result of the research is an algorithm that makes it possible to unify the input parameters. The study was conducted in the field on CI/CD DevOps pipelines for the assembly and supply of software to an existing software development organization, which gave the study a solid practical basis. In the article, the author provides two hypothetical examples of using the presented methodology: determining the parameters of an ice cream machine of various flavors and shapes and determining the parameters of the simplest DevOps pipeline for building Java and Ruby applications.
automation
parameters
unification
automated system
set theory
sets
mathematical modeling

Введение

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

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

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

Цель работы – получить методику унификации входных параметров для различных систем автоматизации, вне зависимости от их типа и предназначения.

Материалы и методы исследования

Изначально исследования проводились автором в полевых условиях на CI/CD Dev Ops пайплайнах для сборки и поставки программного обеспечения [1]. После получения необходимых результатов и достижения определенных производственных успехов в унификации, автор решил уйти от конкретного случая и выработать абстрактную модель, применимую вне специфики текущих процессов.

missing image file

Рис. 1. Абстрактная блок-схема автоматизированной системы В центре – автоматизированная система, она имеет интерфейс для приема параметров и алгоритм, используемый для обработки поступающих в нее объектов (блок «Объекты обработки» внизу на рисунке), справа изображен блок получаемого результата

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

Ввиду универсальности математических моделей [2] представленная методика применима к любым системам автоматизации, имеющим входные параметры, будь то станок с ЧПУ, 3D принтер, DevOps пайплайн [1] или автомат для приготовления мороженого. Заходя немного вперед, стоит отметить, что как раз последний и будет использован как пример в данной статье.

Для исследования автором применялись математическое моделирование [2], теория множеств [3] и диаграммы Венна [4].

Результаты исследования и их обсуждение

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

Итак, непосредственно алгоритм:

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

Типовые (встречаются часто, стандартные):

1) Пломбир сливочный в стаканчике, наливной.

2) Пломбир шоколадный с шоколадной посыпкой в рожке, наливной.

3) Пломбир клубничный в картонном контейнере, шариками.

4) Пломбир шоколадный в рожке, шариками.

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

5) Пломбир клубничный, на палочке.

6) Молочный коктейль из мороженого, в пластиковом стаканчике.

7) Различные шарики мороженого, в гонконгской вафле

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

Пары характеристика – значение, составленные для приведенного в первом шаге примера, отражены в табл. 1, где xn – характеристика (потенциальный параметр), yn – значение.

Таблица 1

Пары характеристика – значение сценариев работы автомата для приготовления мороженого

Идентификатор

Характеристика (xn)

Значение (yn)

a

x1 = Тип

y1 = мороженое

b

x2 = Метод производства

y2 = охлаждение

c

x3 = Производство

y3 = автоматическое

d

x4 = Основа

y4 = молоко (пломбир)

e

x5 = Вкусовая добавка

y5 = шоколад

f

x5 = Вкусовая добавка

y6 = клубника

g

x6 = Тара

y7 = стаканчик

h

x6 = Тара

y8 = рожок

i

x6 = Тара

y9 = контейнер

j

x6 = Тара

y10 = палочка

k

x6 = Тара

y11 = вафля

l

x7 = Посыпка

y12 = шоколадная крошка

m

x8 = Форма выпуска

y13 = наливное мороженое

n

x8 = Форма выпуска

y14 = шарики

o

x8 = Форма выпуска

y15 = коктейль

p

x8 = Форма выпуска

y16 = брусок на палочке

q

x9 = Упаковка

y17 = бумажный пакет стандартный

r

x9 = Упаковка

y18 = пакет пластиковый

s

x5 = Вкусовая добавка

y19 = различные

t

x3 = Производство

y20 = ручное

u

x2 = Метод производства

y21 = нагрев

Источник: составлено автором.

Чем больше характеристик будет внесено в данный список, тем больше потенциальных производственных сценариев будет покрыто. Так же в данный список необходимо вынести гипотетические пары характеристика – значение для покрытия случаев, вероятность которых в данном контексте мала, но все же возможна (случаи t, u), и случаев, которые не описаны в техзадании, но участвуют в техпроцессе (q, r).

3. Необходимо определить множество пар характеристика – значение, жестко заданных для каждого экземпляра [3]:

A1 = {a, b, c, d, g, m, q, r},

A2 = {a, b, c, d, e, h, l, m, q, r},

A3 = {a, b, c, d, f, i, n, q, r},

A4 = {a, b, c, d, e, h, n, q, r},

A5 = {a, b, c, d, f, j, p, q, r},

A6 = {a, b, c, d, g, o},

A7 = {a, b, c, d, k, n, q, r, s},

где множество An – номерной случай, типовой или потенциальный, а объекты множества – применимые к нему пары характеристика – значение.

4. Для оптимизации необходимо из результата объединения множеств характеристик вычесть результат их пересечения [5]:

P = (А1∪А2∪А3∪А4∪А5∪А6∪А7∪Аn) \ (А1 ∩ А2 ∩ А3 ∩ А4 ∩ А5 ∩ А6 ∩ А7 ∩ Аn)

Также можно представить данную операцию как «множественную симметрическую разность» [5]:
P = А1 Δ А2 Δ А3 Δ А4 Δ А5 Δ А6 Δ А7 Δ Аn,
P = {g, e, f, m, q, r, h, l, i, n, j, p, o, k, s},
где P – результирующее множество пар характеристика  – значение, подлежащих вынесению в параметры, An – множества пар характеристика – значение.

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

missing image file

Рис. 2. Графическая интерпретация симметрической разности множеств пар характеристика – значение различных типовых и потенциально возможных производственных случаев; An – множества пар характеристика – значение; P – результирующее множество; Штриховкой обозначено множество объектов B1, не вошедших в результирующее множество P; Области An без штриховки входят в результат P

Произведенное действие графически отображено с применением диаграммы Венна на рис. 2 [4].

Исходя из диаграммы Венна [4], изображенной на рис. 2, можно сделать вывод, что

An ∈ P; B1 ∉ P

Резюмируя: в итоговую выборку войдут все элементы, кроме общих для всех множеств.

5. Получив выборку P, для выявления параметров, подлежащих вынесению, необходимо откинуть значения y из каждого элемента, а из оставшихся характеристик х сформировать мультимножество [6].

P = {g, e, f, m, q, r, h, l, i, n, j, p, o, k, s},

B = {x6, x5, x5, x8, x9, x9, x6, x7, x6, x8, x6, x8, x8, x6},

где B – мультимножество, сформированное из характеристик х элементов множества P

Мультимножество B необходимо привести к множеству C, преобразовав элементы, кратность которых больше 1, в элементы с кратностью 1, простыми словами, убрать все дубликаты из множества B. Результат:

С = {x5, x6, x7, x8, x9},

где C – набор уникальных элементов множества B, для удобства отсортированный по возрастанию индекса. Данное множество и является результатом работы алгоритма.

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

− x5 – вкусовая добавка,

− x6 – тара,

− x7 – посыпка,

− x8 – форма выпуска,

− x9 – упаковка.

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

− лотки для вкусовых добавок и возможность настройки их выбора,

− хранилище различной тары и возможность ее выбора,

− лотки для посыпок и возможность их выбора,

− возможность настройки подачи мороженого различной формы,

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

В дополнение ниже приведено краткое описание унификации параметров простейшего CI DevOps пайплайна для сборки программного обеспечения [1].

Возможные случаи:

1. Сборка java приложения, указана версия, используется jenkins.

Таблица 2

Пары характеристика – значение для типовых сборочных случаев CI DevOps пайплайна

Идентификатор

Характеристика (xn)

Значение (yn)

a

x1 = Язык программирования

y1 = java

b

x1 = Язык программирования

y2 = ruby

c

x3 = Версия приложения

y3 = x.x.x

d

x4 = Тесты

y4 = Выключены

e

x4 = Тесты

y5 = Включены

f

x5 = Сборщик

y6 = jenkins

g

x5 = Сборщик

y7 = teamcity

Источник: составлено автором.

2. Сборка java приложения, тесты выключены, используется jenkins.

3. Сборка ruby приложения, используется jenkins.

Пары характеристика – значение для данного примера отражены в табл. 2.

Множества случаев:

А1 = {a, c, f},

А2 = {a, d, f},

А3 = {b, f}.

Расчет:

P = A1 Δ A2 Δ A3,

P = {a, b, c, d},

B = {x1, x1, x3, x4},

C = {x1, x3, x4}.

Расшифровка:

− x1 – язык программирования,

− x3 – версия приложения,

− x4 – тесты.

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

Заключение

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

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

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