Особенности разработки развивающихся программных комплексов

УДК 004.4

ОСОБЕННОСТИ РАЗРАБОТКИ РАЗВИВАЮЩИХСЯ ПРОГРАММНЫХ КОМПЛЕКСОВ

А.А. Рындин, С.В. Сапегин

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

Ключевые слова: программные комплексы, разработка ПО, многовариантная интеграция

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

1. Широкий охват большого количества разнородных задач, связанный с комплексной автоматизацией какой-либо области.

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

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

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

1. увеличение времени разработки комплексов;

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

3. увеличение рынка готовых программных компонентов;

4. общее увеличение сложности систем;

5. возрастающие требования к качеству программных систем.

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

Рындин Александр Алексеевич - ВГТУ, д-р техн. наук, профессор, тел. (473) 243-77-04

Сапегин Сергей Владимирович - ВГУ, канд. техн. наук, доцент, тел. (473) 220-86-18

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

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

2. Избыточная трудоемкость разработки компонентов, предназначенных для решения задач на коротком отрезке времени;

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

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

5. Несбалансированность показателей качества удовлетворенности пользователей, вызванная несогласованностью стратегии развития ИС.

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

Рассмотрим процесс разработки программного комплекса с точки зрения системного подхода. Как показывает практика, в рамках описания программного комплекса, как и процессов его разработки и использования, возможно представить ПК в виде системы с наборами входных и выходных воздействий, а также внутренним состоянием, влияющим на отклик системы. Анализ программных проектов показывает, что в некотором количестве случаев разработка и доработка программных компонентов в составе крупных информационных систем ведется непрерывно, в том числе и после официальной сдачи компонентов. То же самое, во многих случаях, наблюдается и с эксплуатацией ПК, когда в работу вводятся не до конца сделанные компоненты. Если представить структуру программного комплекса в виде в виде совокупности информационных потребностей х(^), структуры системы и сервисов, осуществляющих

автоматизацию человеческой деятельности у(.1), то получается, что в вышеперечисленных случаях все

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

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

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

3. В системе должна существовать подсистема воспроизводства и совершенствования, в т.ч. совершенствования этой самой подсистемы. Это свойство определяется итеративным характером разработки программных комплексов, а также свойствами современных адаптируемых процессов разработки разных семейств (от Oracle CDM и RUP до манифеста AGILE).

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

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

В общем виде класс динамических систем в линейном и конечномерном приближении может быть представлен в виде t

R

—œ

где I - вектор входных воздействий, R - вектор реакций системы, K - матрица импульсных переходных функций системы, t - время. В нелинейных случаях K зависит от I.

В случае моделирования простейшей РС мы имеем две функции:

1. Внутренняя, обеспечивающая ее существование

2. Внешняя, являющаяся результатом взаимодействия с внешней средой.

Интегральное описание развивающихся систем достаточно удобно для их пристального

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

1. Алгоритмически-автоматное описание.

2. Исследование квазистохастического поведения простейших детерминированных моделей

3. Теория катастроф [1]

4. Автоволновые процессы

5. Теория групп и инвариантов

6. Метод КБМ.

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

1. Архитектурно-ориентированные методы, в основе которых лежит идея о важности хорошо проработанной, единообразной архитектуры с четким делением программного средства на подсистемы и компоненты.

2. Технологические методы, связанные с исследованием современных подходов в программировании, включая различные парадигмы, языки и среды программирования и построении на их основе эффективного процесса производства ПО.

3. Организационно-ориентированные методы, рассматривающие проблему построения программного средства с точки зрения организации наиболее эффективного процесса работы с пользовательскими требованиями.

Сравнительный анализ этих групп методов приведен в таблице.

Сравнительный анализ групп методов

Архитектурные методы Технологические методы Организационные методы

Акцент в разработке Общая модель системы, декомпозиция Методология, языковые средства, парадигма Процесс разработки, взаимодействие с пользователем

Типичная модель разработки Каскадная Итеративная Итеративная, Agile

Предсказуемость проекта Высокая Средняя Низкая

Причины неудач(при разработке выраженных РС) Расхождение концепции с пользовательскими требованиями Исчерпание «запаса прочности», нарушение общей идеи ПО Утрата архитектурной и технологической целостности

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

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

а = {А1 ,-;Ап,...,Ам }= \а„, в = {ВХ!..., Вт,..., Бм }= В

у = {С-1,..., С1,..., Сь }= {р„ I =

, т

1, ^ = 1М },

Л,Ь\

где ^ М, Ь - количества вариантов, выделенных в рассматриваемое множество на основе анализа задачи с помощью соответствующего представления. Предпочтительность использования каждого из вариантов без учета связи с остальными вариантами выразим в виде следующих векторов вероятностей:

Ра = (ра

ра

, N \

. ра )е рпа =1

п=1

рр = (Р

рг = (р'

/ \ м

(рв,..., р>„ рм = 1

р }^р1Г = 1

Сочетаемость вариантов разных уровней можно определить в виде условных вероятностей их совместного использования. Например, сочетаемость

А -го архитектурного варианта с В -м вариантом технологического подхода будет выражена в виде условной вероятности р(Вт / А), и т.д.

Энтропия, представляющая собой

количественную характеристику степени

разнообразия вариантов интеграции, например, для

множества а имеет вид

Н(а) = -X рпа lgPnа

и характеризуется рядом свойств:

она симметрична относительно координат

а

вектора р , т.е. не зависит от взаимного расположения ра ;

она достигает своего максимума на векторе ра

с координатами р<а = 1/а, Уп = 1,Ы, т.е. когда все варианты равнозначны;

она достигает своего минимума на векторе ра

с координатами ра = 1, ра = 0, Уп Ф V, т.е. когда пригодным для реализации оказывается единственный вариант интеграции.

При этом, необходимо придерживаться принципов локальной и многовариантной интеграции, максимальной надежности и адекватности.

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

Хтп ) ^ eXtr, 11 £ 11 ,

%2(*тп ) ^ Ь,2, 12 £ /2 = I ,

ат _

X Хтп = 1 т = 1 м;

X = 1 , т = 1, м; п = 1, N ,

тп 1 0 5 5 5 5 т '

где I] - множество индексов показателей системы, требования к которым формализуются в виде критериев оптимизации; 12 - множество индексов показателей системы, требования к которым формализуются в виде ограничений. При

п=1

П

п=1

т=1

1=1

\

У

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

max min Ф( хтп, yi2) = хтп ) +

xmn yi2

I2 ,

+ £ ya

где р ^ - коэффициенты штрафной функции Лагранжа.

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

F ( хтп , КИ ) = £ ( xmn ) ^ max

¿1=1

где Кп - коэффициенты относительной

значимости критериев

ч'и ; £ К = 1 ; ^

¿1=1

нормированное значение критерия. Ориентация на глобальный критерий обусловлена возможностью

вероятностной интерпретации коэффициентов Ла в

рамках схемы ограничения разнообразия множеств

§ и С при р'Г, г = 1, Я. Выполнение

преобразования к штрафной функции Лагранжа требует задания коэффициентов штрафной функции

У а О'г = 1, ) и коэффициентов значимости

4101 = №.

Таким образом, выделение класса развивающихся программных комплексов, к которым

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

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

Литература

1. Арнольд В. И. Теория катастроф, 3-е издание, М.:Наука, 1990

2. Моделирование развивающихся систем. Глушков

B.М., Иванов В.В., Яненко В.М. М.:Наука, 1983

3. Системная инженерия. Принципы и практика. Косяков А, Свит У. и др. .М.:ДМК-Пресс, 2014

4. Подвальный, С.Л. Многоальтернативные системы: обзор и классификация [Текст] / С.Л. Подвальный // Системы управления и информационные технологии. -2012. - Т. 48. - № 2. - С. 4-13.

5. Подвальный, С.Л. Концепция многоальтернативного управления открытыми системами: истоки, состояние и перспективы [Текст] / С.Л. Подвальный, Е.М. Васильев // Вестник Воронежского государственного технического университета. - 2013. - Т. 9. - № 2. - С. 4-20

6. Podval'ny, S.L. Intelligent modeling systems:Design principles [Text] / S.L. Podval'ny, T.M. Ledeneva // Automation and Remote Control. - 2013. - Т. 74. - №7. -

C.1201-1210.

u =1

Воронежский государственный технический университет Воронежский государственный университет

FEATURES OF DEVELOPMENT OF THE EVOLVING PROGRAM COMPLEXES

A.A. Ryndin, S.V. Sapegin

In the article the problems of program complexes development is researching. We defined class of evolving program complexes, studied of applicability of traditional processes of development to this class, proved the using of multivariant integration for the rational development of the evolving program complexes

Key words: program complexes, software development, multivariant integration