Научная статья на тему 'Инструментальная поддержка эволюционного расширения программ средствами процедурно-параметрического программирования'

Инструментальная поддержка эволюционного расширения программ средствами процедурно-параметрического программирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
79
14
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭВОЛЮЦИОННАЯ РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / EVOLUTIONARY SOFTWARE DEVELOPMENT / ПРОЦЕДУРНО-ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / PROCEDURAL AND PARAMETRIC PROGRAMMING / ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ / PROGRAMMING PARADIGMS / ЯЗЫКИ ПРОГРАММИРОВАНИЯ / PROGRAMMING LANGUAGES / МЕТОДЫ ГИБКОЙ РАЗРАБОТКИ ПРОГРАММ / AGILE METHODS OF PROGRAM DEVELOPMENT

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Легалов А. И., Косов П. В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Легалов А. И., Косов П. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

TOOL SUPPORT OF EVOLUTIONARY EXTENSION OF PROGRAMS USING PROCEDURAL-PARAMETRIC PROGRAMMING

The methods of evolutionary extension, providing additional opportunities to create programs are viewed. Their using increases the effectiveness of Agile methodologies, allowing these to use in software development of spacecrafts and autonomous objects.

Текст научной работы на тему «Инструментальная поддержка эволюционного расширения программ средствами процедурно-параметрического программирования»

Решетнеескцие чтения. 2015

УДК 004.432.2

ИНСТРУМЕНТАЛЬНАЯ ПОДДЕРЖКА ЭВОЛЮЦИОННОГО РАСШИРЕНИЯ ПРОГРАММ СРЕДСТВАМИ ПРОЦЕДУРНО-ПАРАМЕТРИЧЕСКОГО ПРОГРАММИРОВАНИЯ*

А. И. Легалов1, П. В. Косов2

1 Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

2Сибирский федеральный университет Российская Федерация, 660041, г. Красноярск, просп. Свободный, 79 E-mail: [email protected]

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

Ключевые слова: эволюционная разработка программного обеспечения, процедурно-параметрическое программирование, парадигмы программирования, языки программирования, методы гибкой разработки программ.

TOOL SUPPORT OF EVOLUTIONARY EXTENSION OF PROGRAMS USING PROCEDURAL-PARAMETRIC PROGRAMMING

A. I. Legalov1, P. V. Kosov2

1Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation 2Siberian Federal University 79, Svobodny Av., Krasnoyarsk, 660041, Russian Federation E-mail: [email protected]

The methods of evolutionary extension, providing additional opportunities to create programs are viewed. Their using increases the effectiveness of Agile methodologies, allowing these to use in software development of spacecrafts and autonomous objects.

Keywords: evolutionary software development, procedural and parametric programming, programming paradigms, programming languages, agile methods of program development.

Введение. Повышение эффективности процесса разработки программного обеспечения (ПО) для космических аппаратов и автономно функционирующих объектов зачастую связано с сокращением времени его создания при сохранении требуемых критериев качества. Часто требуется наращивать и изменять функциональность уже работающих систем. В методологическом контексте данное направление активно развивается за счет использования гибких (Agile) методов [1]. Однако отвергая ряд традиционных подходов, данные методы не всегда обеспечивают адекватную им замену [2]. Зачастую недостатки Agile связаны не столько с организационными аспектами, сколько с отсутствием современных языковых и инструментальных средств, позволяющих гибко реагировать на требования, предъявляемые к процессу создания программ. Поэтому для их поддержки предлагается процедурно-параметрическая парадигма программирования [3], обеспечивающая эволюционную расширяемость и в большей степени ориентированная на методы гибкой разработки ПО. Для повышения гибкости и безболезненного расширения данная парадигма предлагает обобщенные записи [4], подклю-

чаемые модули [5] и перегрузку процедур с одинаковой сигнатурой [6].

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

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

* Работа выполнена при поддержке гранта РФФИ № 13-01-00360 «Методы и средства эволюционной разработки программного обеспечения с применением процедурно-параметрической парадигмы программирования».

Программные средства и информационные технологии

Эволюционное расширение в простых ситуациях для различных парадигм

Ситуация Подходы

Процедурный ОО ПП

Добавление специализации и ее обработчиков нет есть есть

Добавление процедур с дополнительной функ- есть нет есть

циональностью

Добавление новых полей в существующий тип косвенное, для косвенное, при косвенное, при использо-

расширяемых типов наличии ЯТТ1 вании обобщенной записи

Добавление обработчика специализации, вклю- есть нет есть процедурный и па-

ченной в обобщение раметрический

Создание обобщения на основе существующих есть косвенное есть

специализаций

Добавление в программу мультиметода есть нет есть

Изменение мультиметода при добавлении специа- нет нет есть

лизации

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

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

Сравнение возможностей эволюционного расширения при различных парадигмах программирования. Для анализа возможностей эволюционного расширения по сравнению с процедурным и объектно-ориентированным (ОО) подходами выделен ряд типичных ситуаций (см. таблицу). Показано, что процедурно-параметрическая парадигма обеспечивает расширение практически во всех случаях, перекрывая по гибкости процедурный и ОО подходы.

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

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

1. Субраманиам В., Хант Э. Этюды на тему быстрой разработки программного обеспечения. Работа в реальном мире : пер. с англ. М. : Лори, 2009.

2. Meyer B. Agile! The Good, the Hype and the Ugly. Springer International Publishing, Switzerland. 2014.

3. Легалов А. И. Швец Д. А. Процедурный язык с поддержкой эволюционного проектирования // Научный вестник НГТУ. 2003. № 2(15). С. 25-38.

4. Легалов И. А. Применение обобщенных записей в процедурно-параметрическом языке программирования // Науч. вестник НГТУ. 2007. № 3(28). С. 25-38.

5. Легалов А. И., Бовкун А. Я., Легалов И. А. Расширение модульной структуры программы за счет подключаемых модулей // Доклады АН ВШ РФ. 2010. № 1(14). С. 114-125.

6. Легалов А. И., Косов П. В., Легалов И. А. Использование процедур с одинаковой сигнатурой для эволюционного расширения программ // Доклады АН ВШ РФ. 2015. № 1 (26). С. 41-51.

References

1. Subramaniam V., Hunt E. Etjudy na temu bistro razrabotki programmnogo obespechenija.Rabota v real'nom mire [Practices of an Agile Developer. Working in the Real World]. Moskow : Lori, 2009.

2. Meyer B. Agile! The Good, the Hype and the Ugly / Springer International Publishing, Switzerland, 2014.

3. Legalov A. I., Shvets D. A. Protsedurnyi yazyk s podderzhkoi evolyutsionnogo proektirovaniya [Procedural language with support for evolutionary design] // Nauchnyi vestnik NGTU - Science bulletin of the Novosibirsk state technical university, 2003. No. 2(15), pp. 25-38.

4. Legalov I. A. Primenenie obobschennyh zapisey v procedurno-parametricheskom jazyke programmirovanija [Using Generalized Records in procedure-parametric programming language] // Nauchnyi vestnik NGTU -Science bulletin of the Novosibirsk state technical university, 2007. No. 3(28), pp. 25-37.

5. Legalov A. I., Bovkun A. Ya., Legalov I. A. Rasshirenie modul'noi struktury programmy za schet podklyuchaemykh modulei [Extension of program's modular structure at the expense of attachable modules] // Doklady Akademii nauk vysshei shkoly Rossiiskoi Federatsii - Proceedings of the Russian higher school Academy of sciences, 2010. No. 1(14), pp. 114-125.

6. Legalov A. I., Kosov P. V., Legalov I. A. Ispol'zovanie protsedur s odinakovoi signaturoi dlya evolyutsionnogo rasshireniya programm [Using identical signature procedures for evolutionary extension of programs] // Doklady Akademii nauk vysshei shkoly Rossiiskoi Federatsii - Proceedings of the Russian higher school Academy of sciences. 2015. No. 1(26), рр. 41-51.

© Легалов А. И., Косов П. В., 2015

i Надоели баннеры? Вы всегда можете отключить рекламу.