DOI: 10.17586/2226-1494-2019-19-6-1079-1085


УДК 004.4’23

АРХИТЕКТУРА ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОДДЕРЖКОЙ СТРУКТУРНОГО РЕДАКТИРОВАНИЯ

Ванясин Н.В., Сидоркина И.Г., Поляков В.И.


Читать статью полностью 
Язык статьи - русский

Ссылка для цитирования:
Ванясин Н.В., Сидоркина И.Г., Поляков В.И. Архитектура интегрированной среды разработки программного обеспечения с поддержкой структурного редактирования // Научно-технический вестник информационных технологий, механики и оптики. 2019. Т. 19. № 6. С. 1079–1085. doi: 10.17586/2226-1494-2019-19-6-1079-1085


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

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

Благодарности. Работа выполнена при финансовой поддержке РФФИ (проект № 17-07-00700/19).

Список литературы
  1. Князева М.А., Тимченко В.А. Структурные редакторы программ на языках программирования высокого уровня и генератор моделей структурных программ в Банке знаний о преобразованиях программ // Искусственный интеллект. 2005. № 4. С. 200–208.
  2. Мучник Т.Г. Языково-настраиваемый структурный редактор со средствами семантического контроля // Программирование. 1990. Т. 16. № 2. С. 10–20.
  3. Fowler M. Projectional editing. 2008 [Электронный ресурс]. URL:  https://martinfowler.com/bliki/ Projectional Editing.html (дата обращения: 23.03.2019).
  4. Александров С.Ю. Синтаксически-ориентированные редакторы: функциональные возможности и архитектура: Препринт № 3. Новосибирск: ИТМи ВТ АН СССР, 1987. 35 с.
  5. Voelter M., Siegmund J., Berger T., Kolb B. Towards user-friendly projectional editors // Lecture Notes in Computer Science. 2014. V. 8706. P. 41–61.
  6. Charles Simonyi, Magnus Christerson, Shane Clifford, «Intentional Software», an OOPSLA 2006 paper [Электронный ресурс]. URL:  http://www.intentsoft.com/technology/IS_OOPSLA_2006_paper.pdf (дата обращения: 23.03.2019).
  7. Reps T., Teitelbaum T. The synthesizer generator // ACM SIGSOFT Software Engineering Notes. 1984. V. 9. N 3. P. 42–48. doi: 10.1145/390010.808247
  8. Грачев Д.А., Лаптев В.В. SemanticIDE как обучающая среда и веб-сервис // Математические методы в технике и технологиях-ММТТ. 2013. № 9-1. С. 131–135.
  9. Aho A.V., Lam M.S., Sethi R., Ullman J.D. Compilers: principles, techniques, and tools. 2nd edition. Pearson Addison Wesley, 2007. 1009 p.
  10. Ванясин Н.В. Семантическое редактирование программного кода в интеллектуальных интегрированных средах разработки приложений // Кибернетика и программирование. 2017. № 1. С. 61–68. doi: 10.7256/2306-4196.2017.1.18881
  11. Vaniasin N.V., Sidorkina I.G. Semantic source code editing in Integrated Development Environments // Economics, Management, Information and Technology. 2018. V. 5. N 2. P. 48–53.
  12. Clark T. A general architecture for heterogeneous language engineering and projectional editor support // arXiv preprint. 2015. arXiv:1506.03398.
  13. Roedy G. Source code in database (Java source code SCID-style browser/editor) [Электронный ресурс]. URL: http://mindprod.com/projects/scid.html (дата обращения: 23.03.2019).
  14. Уваров А.Н. Инверсия управления и внедрение зависимостей // Символ науки. 2016. № 10-1. C. 28–32.
  15. Немолочнов О.Ф., Зыков А.Г., Поляков В.И., Сидоров А.В. Структурирование программ и вычислительных процессов на множество линейных и условных вершин // Научно-технический вестник Санкт-петербургского государственного университета информационных технологий, механики и оптики. 2005. Т. 5. № 3. С. 207–212.
  16. Гришенцев А.Ю., Коробейников А.Г. Улучшение сходимости метода конечных разностей с помощью вычисления промежуточного решения // Научно-технический вестник информационных технологий, механики и оптики. 2012. Т.12. № 3. С. 124–127.
  17. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. AddisonWesley Professional, 1994. 416 p.
  18. Hempel B., Lubin J., Lu G., Chugh R. DEUCE: a lightweight user interface for structured editing // Proc. of the 40th International Conference on Software Engineering (ICSE 2018). 2018. P. 654–664. doi: 10.1145/3180155.3180165
  19. Мартин Р. Чистый код: создание, анализ и рефакторинг: Пер. с англ. Издательский дом «Питер», 2019. 464 c. (Библиотека программиста)


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2019 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

Яндекс.Метрика