УДК 004.4
ТЕХНОЛОГИЯ РАЗРАБОТКИ СЛОЖНЫХ ПРОГРАММНЫХ СИСТЕМ УПРАВЛЕНИЯ ПРЕДПРИЯТИЕМ НА ОСНОВЕ МЕТОДОВ МНОГОВАРИАНТНОЙ ИНТЕГРАЦИИ
А.А. Рындин, С.В. Сапегин
В статье рассматриваются проблемы конструирования сложных программных комплексов для предприятий, работающих в сфере агротехники и сельского хозяйства. Разработка современных программных систем связана с автоматизацией различных аспектов человеческой деятельности, что, в свою очередь, связано с решением сложных нестандартных задач в области построения архитектур и технологий разработки ПО. Современные направления развития методологий разработки ПО, преследуя цели качества, приводят во многих случаях к значительной избыточности трудозатрат. Использование технологии разработки сложных программных систем управления предприятием на основе использования методов многовариантной интеграции позволяет принимать более качественные проектные решения, одновременно обеспечивая приемлемый уровень гибкости, функциональности и качества работы современных программных приложений. При этом методы многовариантной интеграции применимы как на уровне комбинирования групп архитектурных, технологических и организационно-ориентированных подходов, так и в рамках одного из перечисленных подходов для рационализации решений, возникающих в процессе построения ИС. Внедрение полученных результатов в процесс развития корпоративной ИС для предприятий агротехнического сектора позволило добиться существенных результатов по сравнению с исходными данными - оценками, прогнозами и т.д.
Ключевые слова: программная инженерия, многовариантная интеграция, корпоративные системы, управление предприятием
ВВЕДЕНИЕ
Проблемы организации процесса разработки программного обеспечения, конструирования эффективных архитектур и выбора проектных решений являются одними из самых важных в области производства ПО. Несмотря на большое количество попыток формализации процесса конструирования и создания программного обеспечения, на практике лишь немногие из них могут с определенной долей вероятности обеспечить требуемый результат. Это, во многом, обусловлено характером процесса разработки ПО, связанным с тем, что характер деятельности разработчика программного обеспечения достаточно специфичен по сравнению с другими видами человеческой деятельности.
Разработка программного обеспечения на современном уровне развития технологий и методологий является сложной, творческой задачей, решение которой, как правило, неочевидно и зачастую приводит к непредсказуемым результатам. Несмотря на большое количество попыток формализации процесса конструирования и создания программного обеспечения, на практике лишь немногие из них могут с определенной долей вероятности обеспечить требуемый результат. Это обусловлено тем, что характер деятельности разработчика программного обеспечения достаточно специфичен по сравнению с другими видами человеческой деятельности. Кроме того, информационные системы, в рамках которых используется разрабатываемое ПО, представляют
Рындин Александр Алексеевич - ВГТУ, д-р техн. наук, профессор, e-mail: alexandr.a.ryndin@me.com Сапегин Сергей Владимирович - ВГУ, канд. техн. наук, доцент, e-mail: svsapegin@mail.ru
собой сложные, многокомпонентные системы с динамично изменяющейся структурой.
Использование современного ПО связано с необходимостью решения задач автоматизации различных аспектов человеческой деятельности. При этом программные системы находятся в плотном взаимодействии друг с другом, совместно используют аппаратные и сетевые вычислительные ресурсы предприятия, а также задействуют в своей работе, как минимум, ключевых сотрудников.
ПОСТАНОВКА ЗАДАЧИ
Развитие современных технологий разработки программного обеспечения в настоящее время осуществляется в рамках следующих направлений:
1. Построение гибких, настраиваемых архитектур, основанных на принципах объектно-ориентированного проектирования (ООП) и компонентного подхода, многоплатформенной реализации, широкого использования слабосвязных решений, основанных на параметризации типов, использовании сообщений и «мягких» стандартов взаимодействия ПО.
2. Повышение качества программных компонентов путем введения популярных шаблонов и стандартов их разработки. Увеличение за счет используемых стандартов и практик скорости изготовления компонентов, легкости поддержки, изменения и доработки, соответствия популярным паттернам проектирования.
3. Построение и отладка гибкого процесса разработки ПО, включающего в себя непрерывное тестирование и интеграцию, максимально эффективно использующего человеческие ресурсы.
Целями использования подходов каждого из этих направлений является достижение
предсказуемости процесса разработки, борьба с проявлением следствий все более увеличивающейся сложности ПО, достижение максимально возможного качества ПО в процессе его разработки. При этом результат достигается, практически полностью за счет увеличения средней трудоемкости разработки ПО на начальных стадиях.
Вместе с тем, растущая сложность программных комплексов приводит ко все большим трудностям разработки в рамках каждого из вышеперечисленных направлений. Кроме того, качество конечного результата и прогноз затрат становится все менее предсказуемыми на начальных стадиях проекта. Это вынуждает разработчиков прибегать к постоянному поиску и развитию новых методологий, каждая из которых, в свою очередь имеет свои ограничения и приводит к следующим характерным проблемам:
1. Избыточность затрат на оборудование и платформенные продукты, вызванная непредсказуемостью поведения требований в процессе развития математического и программного обеспечения вычислительного комплекса предприятия;
2. Избыточная трудоемкость разработки компонентов ПО, предназначенных для решения задач на коротком отрезке времени;
3. Избыточность трудозатрат, связанных с интеграцией программных средств от различных производителей и команд разработчиков;
4. Избыточная функциональность используемых программных комплексов, отсутствие глубокой интеграции между их компонентами;
5. Несбалансированность показателей качества удовлетворенности пользователей, вызванная несогласованностью стратегии развития ИС
СТРУКТУРА ЗАДАЧИ
На основе классификации используемых представлений, среди современных практик разработки ПО можно выделить следующие группы подходов:
1. Архитектурные подходы, в основе которых лежит идея о важности хорошо проработанной, единообразной архитектуры с четким делением программного средства на подсистемы и компоненты.
2. Технологические подходы, связанные с исследованием современных подходов к написанию программного кода, включая различные парадигмы, языки и среды программирования и построении на их основе эффективного процесса производства ПО.
3. Организационно-ориентированные подходы, рассматривающие проблему построения программного средства с точки зрения организации наиболее эффективного процесса работы с пользовательскими требованиями.
Использование в современных методиках разработки на приоритетной основе одной из групп вышеперечисленных подходов в случае применения их для построения развивающихся ПК характеризуется следующими недостатками:
1. Увеличение проектных рисков вследствие невозможности предсказать развитие проектов с достаточной точностью и обеспечить необходимый комплекс мер, обеспечивающий их успешность.
2. Принципиальная невозможность рационализации процесса создания ПО в рамках одной парадигмы. Реально используемые методики обычно имеют в своем составе набор эмпирических правил, гарантирующих определенную вероятность успеха, но теоретически недостаточно изученных в рамках господствующей парадигмы. В подобных случаях попытка реорганизации процесса разработки ПО, как правило, ведет к формально успешному результату только в рамках принятой парадигмы, в то время, как с точки зрения удовлетворения информационных потребностей пользователей - к серьезному повышению вероятности неуспешного результата.
Необходимость учета системных связей, а также совместного влияния нескольких типов неопределенностей в процессе нахождения рациональных решений приводит к развитию моделей, в которых получение точного решения является неэффективным, так как в ходе поиска оптимального варианта теряется возможность анализа группы доминирующих вариантов решений. Вместе с тем, расширить возможности системного подхода для решения задачи проектирования и разработки программных компонентов удается, если использовать в качестве количественной характеристики рационального выбора вариантов информацион-ную
характеристику - энтропию многовариантной интеграции, определяющую степень разнообразия множества возможных вариантов интеграции. В условиях динамичного развития и изменения структуры рациональных решений зачастую именно энтропия является единственным показателем, на основе которого представляется возможным сделать выбор решения, обеспечивающего оптимальное развитие сложных программных пакетов в условиях
неопределенности.
МЕТОДОЛОГИЯ
Рассмотрим процесс построения
программного комплекса в виде маршрута проектирования, состоящего из
последовательности задач многокритериального выбора, причем результат каждого выбора влияет на траекторию последующего развития системы. Элементами выбора в процессе проектирования корпоративной ИС являются элементы вектора 14^, каждый из которых, в свою очередь, содержит в себе набор компонентов, из которых состоит
система. Элементы выбора шд = 1, Шд в целом задают вариант
= (1) и характеризуются вектором параметров .
При переходе от одной реализации = 1, Шд к другой компоненты вектора меняются
дискретным образом.
Выбор оптимального с точки зрения сложности воплощения варианта маршрута проектирования и реализующих его технических средств, с учетом многовариантности задания архитектуры ИС и принципов интеграции, осуществляется по совокупности технико-экономических показателей. Выбранный маршрут проектирования должен обеспечить
проектирование ПО с заданными эксплуатационными характеристиками: надежностью, эффективностью, функциональностью и т.д. Эксплуатационные характеристики ПО образуют подмножество, определяющее выбор варьируемых элементов процесса проектирования.
Для того, чтобы сформулировать принципы многовариантной интеграции, исследуем природу задачи проектирования сложных систем. Задача рационального синтеза в общем случае состоит в выборе наилучшего варианта 5 6 5, где - общее множество, обладающее разнообразием элементов. Выбор 5 осуществляется путем поэтапного исключения вариантов, не обеспечивающих выполнения заданных требований, т.е. ограничения разнообразия, выражающего отношение между двумя подмножествами, когда в одном из них разнообразие уменьшается в результате наложения каких-либо ограничений. Известные на настоящий момент методы перебора, ориентированные на редукцию разнообразия множества 5, позволяют получить решение в приемлемый период расчета только для задач синтеза, ограниченных определенностью связи параметров вариантов систем с требованиями ^(1 = 1,1), а также определенности требования к условиям функционирования систем, для которых в виде аналитического выражения сформулирован критерий, в целом оценивающий эффективность системы.
Для измерения в целом степени разнообразия вариантов, связанных вероятностными
соотношениями, наиболее эффективно
использовать энтропию, которая, например, для множества вариантов а имеет вид
Н(а) = -Е£=1 Рпа1дРпа
(2)
и характеризуется рядом свойств: она симметрична относительно координат вектора Ра, т.е. не зависит от взаимного расположения Р^;
она достигает своего максимума на векторе Ра с координатами Р^= 1/Ы, V п = 1, Л/, т.е. когда все варианты равнозначны;
она достигает своего минимума на векторе Ра, с координатами координатами Р„а=1, Р^ = 0, V п Ф V, т.е. когда пригодным для реализации оказывается единственный вариант интеграции.
При этом, необходимо придерживаться принципов локальной и многовариантной интеграции, максимальной надежности и адекватности.
В случае общего поиска эффективных решений в процессе разработки программного обеспечения целесообразно осуществлять комбинирование групп архитектурных,
технологических и организационно-
ориентированных подходов. Поставим в соответствие каждой группе подходов множества вариантов-кандидатов
{Д ...,Ап...,Аы }= \Ап,п = 1;}
а-
в= {Bv..., Bm...., Bu }= {Bm,m = 1, M}, у-{Ci ,.,C„.,CL}= {f„l = 1L}
(3)
где N, М, L - количества вариантов, выделенных в рассматриваемое множество на основе анализа задачи с помощью соответствующего представления.
Предпочтительность использования каждого из вариантов без учета связи с остальными вариантами выразим в виде следующих векторов вероятностей:
С I ^ ^
u
Pe = (P e,.,P!,..,PM \MP!= 1
p = (p/,...,p/,...,p; = i
V 1=1 У
Сочетаемость вариантов разных уровней можно определить в виде условных вероятностей их совместного использования.
СПОСОБЫ ПРИМЕНЕНИЯ
Рассмотрим задачу формирования плана автоматизации оперативного контура работ агротехнического предприятия. Агротехническое предприятие представляет в целом достаточно сложную, разнородную структуру с большим объемом специфичных, разнонаправленных производственных процессов, совокупная деятельность которых обеспечивает работу предприятия. Каждый из процессов обладает уникальным профилем (цикличным,
периодическим либо линейным), среди основных
n=1
направлений развития ИТ в агробизнесе можно выделить следующие:
- планирование агротехнических мероприятий
- планирование ремонта техники
- учет и оперативный контроль техники
- управление мотивацией сотрудников,
- учет урожая
и др. При этом, автоматизация различных направлений деятельности предприятия рассматривается, как один из источников повышения финансовой эффективности, что дает возможность использования экономических показателей предприятия в качестве основных критериев рациональности принимаемых решений.
Для определения информационных потребностей предприятия была составлена общая информационная модель предприятия,
включающая в себя сущности, их взаимосвязь, информационные и управляющие потоки. В рамках проекта была осуществлена иерархическая декомпозиция модели и определены условные единицы автоматизации.
В качестве исходного пакета был сформирован набор сервисов, автоматизирующих задачи предприятия, причем осуществлено максимальная детализация компонентов, способных работать автономно. Результатом работы стало формирование рационального стратегического плана конструирования программных компонентов ИС агротехнического предприятия.
Процесс детального конструирования программного обеспечения для автоматизации был разбит на фазы, соответствующие задачам автоматизации первого уровня иерархии (см. рис. 1). После этого для каждого набора задач процесс конструирования был организован итеративным образом - разбит на несколько фаз, причем в течении каждой фазы осуществлялась разработка версии ПО, после чего функциональность проверялась на соответствие пользовательским требованиям.
ЗАКЛЮЧЕНИЕ
Таким образом, использование методов многовариантной интеграции для комплексной оценки траекторий развития информационных экосистем предприятий, а также для выбора наиболее оптимального подхода к конструированию компонентов ПО в рамках корпоративной ИС является одним из способов повышения конкурентоспособности предприятия в текущих условиях.
О- л
□ □□
ПЛАНИРОВАНИЕ
Стартовая страница ПК «Агрополе»
На следующем этапе был проведен анализ платформенного обеспечения (состав
используемых ПК, сетевого оборудования, используемые виды ОС (кроме серверов -различные варианты Windows), ПО общего назначения (MS Office, пакеты коммуникационных и организационных программ), а также имеющиеся средства автоматизации производственных процессов (ПО на платформе 1С, SCADA-системы, мобильные приложения и т.д.) и связи между ними.
Литература
1. Проектирование корпоративных информационных систем [Текст] /А.А. Рындин, А.В. Хаустович, Д.В. Долгих, А.И. Мугалев, С.В. Сапегин ; под ред. А.А. Рындина. - Воронеж, Изд-во Кварта, 2003, 447 с.
2. Системная инженерия. Принципы и практика [Текст] / А. Косяков, У. Свит и др. - М.:ДМК-Пресс, 2014
3. Тельнов, Ю.Ф. Интеллектуальные информационные системы в экономике [Текст]: учеб. пособие / Ю.Ф. Тельнов. - М.: СИНТЕГ, 1998, 216 с.
4. Якобсон, А. Унифицированный процесс разработки программного обеспечения [Текст]/ А. Якобсон, Г. Буч, Дж. Рамбо. - СПб.: Питер, 2002. - 496 с.
5. Executing SOA: A Practical Guide for the Service-Oriented Architect: Norbert Bieberstein, Robert G. Laird, Keith Jones, Tilak Mitra, IBM Press, 2008, P. 240
6. Manifesto for Agile Software Development, http://agilemanifesto.org
Воронежский государственный технический университет Воронежский государственный университет
THE TECHNOLOGY OF DEVELOPMENT OF COMPLEX SOFTWARE SYSTEMS OF MANAGEMENT, BASED ON METHODS OF MULTIVARIANT INTEGRATION
A.A. Ryndin, Doctor of Technical Sciences, Professor, Voronezh State Technical University, Voronezh, Russian Federation, e-mail: alexandr.a.ryndin@me.com
S.V. Sapegin, Candidate of Technical Sciences, Associate Professor, Voronezh State University, Voronezh, Russian Federation, e-mail: svsapegin@mail.ru
The article deals with the problem of designing complex software systems for companies working in the field of farming and agriculture. Development of modern software systems related to the automation of various aspects of human activity, which, in turn, is connected with the solution of complex, non-standard tasks in building architectures and software development technologies. Modern directions of development of the software development methodologies in pursuit of quality objectives, in many cases, lead to significant labor redundancy. The use of technology in developing complex software enterprise management systems through the use of multivariate methods of integration allows you to make better design decisions, while ensuring an acceptable level of flexibility, functionality and performance of modern software applications. At the same time, methods of multivariate integration apply at the level of groups combining architectural, technological and organizational-oriented approaches, as well as in the framework of one of these approaches for the rationalization of decisions arising in the process of building the IS. Implementation of the results obtained in the process of corporate development of IS for the crop sector enterprises has allowed to achieve significant results in comparison with the original data - estimates, forecasts, etc.
Key words: software engineering, multivariant integration, corporate systems, enterprise management
References
1. Proektirovanie korporativnyh informacionnyh system [Design of corporate information systems] /A.A.Ryndin, A.V.Haustovich, D.V. Dolgih, A.I. Mugalev, S.V. Sapegin / pod red. A.A. Ryndina, Voronezh, Izd-vo Kvarta, 2003, 447 p.
2. Sistemnaja inzhenerija. Principy i praktika [Systems engineering. Principles and practice]. Kosjakov A, Svit U. i dr. .M.:DMK-Press, 2014
3. Tel'nov Ju. F. Intellektual'nye informacionnye sistemy v jekonomike [Intelligent information systems in economy].- M.: SINTEG, 1998, 216 p.
4. Jakobson I., Booch G., Rumbaugh j. Unificirovannyj process razrabotki programmnogo obespechenija [a Unified process of software development]. - Spb.: Piter, 2002. - 496 p.
5. Executing SOA: A Practical Guide for the Service-Oriented Architect: Norbert Bieberstein, Robert G. Laird, Keith Jones, Tilak Mitra, IBM Press, 2008, P. 240
6. Manifesto for Agile Software Development, http://agilemanifesto.org