Тип работы:
Предмет:
Язык работы:


Повторно используемая инфраструктура мультиязыковой среды разработки для языка Python

Работа №142483

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы73
Год сдачи2023
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
20
Не подходит работа?

Узнай цену на написание


Введение 5
1. Постановка цели и задач 7
2. Обзор предметной области 8
2.1. Семейства программных продуктов и повторно использу­емые активы 8
2.2. SRC IDE 10
2.3. IntelliJ Platform 15
2.4. Eclipse JDT 18
2.5. Pydev Plugin 23
3. Архитектура разработанного решения 24
4. Выделение из кодовой модели для языка Java повторно
используемой инфраструктуры и её доработка 28
4.1. Проектная модель 28
4.2. Индексы 35
4.3. Тестовая инфраструктура 40
4.4. Регрессионное тестирование изменений в кодовой модели
для языка Java 44
5. Реализация повторно используемой инфраструктуры для
языка Python 45
5.1. Проектная модель 45
5.2. Индексы 53
5.3. Тестовая инфраструктура 57
6. Тестирование повторно используемой инфраструктуры
и функциональности для языка Python 60
6.1. Проектная модель 60
6.2. Индексы 60
6.3. Возможности SRC IDE 61
7. Апробация разработанного решения на возможностях SRC
IDE для языка Python 62
7.1. Структура проекта 62
7.2. Структура файла 63
7.3. Текстовый поиск 64
7.4. Поиск использований кода 66
7.5. Навигация по коду 67
7.6. Подсказки в коде 68
7.7. Эффективность переиспользования инфраструктуры ко­
довой модели 70
Заключение 71
Будущее работы 72
Благодарности 73
Список литературы 74

История программирования неразрывно связана с развитием ин­струментов разработки. От функциональности и удобства использова­ния интегрированных сред разработки (IDE) зависит скорость создания программного обеспечения и его качество. В связи с определяющим влиянием таких средств разработки на процессы технологических ком­паний, сфера разработки IDE является перспективным направлением бизнеса.
В рамках Saint-Petersburg Research Center (SRC), входящего в состав известной технологической компании1, было решено создать собствен­ное окружение для разработки, основой которого является мультия- зыковая SRC IDE. На момент начала работы, данная среда разработки поддерживала только язык Java, однако в связи с растущими потребно­стями компании в выпуске новых продуктов, стало необходимым обес­печить беспрепятственное развитие семейства программных продуктов на её основе. К текущему моменту, SRC IDE предназначена для внут­реннего использования в компании, однако в будущем планируется её выпуск в виде продукта.
Язык Python применяется для решения широкого спектра задач, возникающих в различных сферах деятельности бизнеса, в том чис­ле для аналитики, обработки больших данных и машинного обучения. Являясь самым популярным языком программирования в 2022 году по версии IEEE, он создает необходимость поддерживать его во всех известных IDE. К тому же, язык Python является динамически строго типизированным, что, с одной стороны, позволяет быстро разрабаты­вать на нем прикладные программы, но, с другой стороны, оставляет простор для допущения неявных ошибок. В связи с этим, создание про­двинутых средств разработки, позволяющих программисту проводить более детальный анализ кода и помогающих при его написании, явля­ется актуальной задачей для языка Python. Таким образом, в Saint- Petersburg Research Center было решено обеспечить поддержку языка
Python в собственной среде разработки.
В сфере программной инженерии накоплен большой опыт создания семейств программных продуктов. Одним из наиболее эффективных методов разработки таких решений является создание повторно исполь­зуемой инфраструктуры (активов), применяющейся во всех продуктах семейства. SRC IDE требуется развивать с применением этого подхо­да, а в качестве инфраструктуры необходимо создать мультиязыковую платформу, компоненты которой можно переиспользовать для добав­ления поддержки новых языков.
В SRC IDE за представление проектов, создание индексов, обработ­ку исходного кода и его семантики в удобном для функционирования среды разработки виде отвечает центральный компонент системы — модель кода (Code Model). Она также предоставляет программный ин­терфейс (API) для большинства других частей IDE, обеспечивающих продвинутые возможности работы с кодом, поэтому именно в ней необ­ходимо начинать создание мультиязыковой платформы.
Таким образом, исходя из существующего решения для языка Java, в кодовой модели SRC IDE необходимо подготовить повторно исполь­зуемую инфраструктуру, пригодную для дальнейшего расширения и поддержки новых языков, а затем на её основе реализовать функцио­нальность для языка Python. При этом требуется не нарушить работо­способность системы для языка Java и сохранить все ключевые техно­логии проекта. В итоге кодовая модель SRC IDE должна поддерживать уже два языка — Java и Python.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Для создания в кодовой модели SRC IDE повторно используемой ин­фраструктуры и реализации на её основе функциональности для язы­ка Python в ходе выпускной квалификационной работы были получены следующие результаты.
• Рассмотрены семейства программных продуктов и повторно ис­пользуемые активы. Проведён обзор кодовых моделей в мультия- зыковых платформах (IntelliJ Platform), существующих IDE (SRC IDE, Eclipse IDE) и расширениях к ним (Pydev Plugin).
• Из кодовой модели для языка Java выделена и доработана повтор­но используемая инфраструктура, а именно: проектная модель, индексы, а также инфраструктура для тестирования. Проведе­но регрессионное тестирование изменений в кодовой модели для языка Java.
• Выделенная в кодовой модели повторно используемая инфраструк­тура реализована для языка Python.
• Проведено тестирование повторно используемой инфраструктуры кодовой модели и реализованной на её основе функциональности для языка Python, а именно: проектной модели, индексов и ряда возможностей SRC IDE.
• Выполнена апробация разработанного решения с помощью создан­ных в SRC IDE возможностей для языка Python, а именно: струк­туры проекта, структуры файла, текстового поиска, поиска ис­пользований кода, навигации по коду и подсказок в коде.


[1] Adams Elizabeth S., Meltzer Arnold C. Trigrams as Index Element in Full Text Retrieval: Observations and Experimental Results // Proceedings of the 1993 ACM Conference on Computer Science. — CSC ’93. — New York, NY, USA : Association for Computing Machin­ery, 1993. — P. 433-439. — URL: https://doi.org/10.1145/170791. 170891.
[2] IDE компании JetBrains.— Сайт JetBrains.— URL: https:// www.jetbrains.com/ru-ru/products/#type=ide (дата обращения: 4 апреля 2023 г.).
[3] IntelliJ Platform. — Документация JetBrains. — URL: https://plugins.jetbrains.com/docs/intellij/welcome.html (дата обращения: 4 апреля 2023 г.).
[4] Northrop Linda M., Clements Paul C. A Framework for Software Prod­uct Line Practice, Version 5.0.— 2012.
[5] Visual Studio Code API. — Документация Microsoft. — URL: https: //code.visualstudio.com/api (дата обращения: 3 апреля 2023 г.).
[6] Божнюк А. С. Система модификации структуры исходного кода для интегрированных сред разработки. — 2023.
[7] Кодовая модель JDT Core. — Документация JDT. — URL: https://help.eclipse.org/latest/topic/org.eclipse.jdt.doc. isv/guide/jdt_int_core.htm (дата обращения: 5 апреля 2023 г.).
[8] Мирошников В. И. Статический вывод типов для языка Python в интегрированной среде разработки. — 2023.
[9] Набор разработки Eclipse JDT. — Документация Eclipse. — URL: https://wiki.eclipse.org/JDT (дата обращения: 5 апреля 2023 г.).
[10] Пакетный менеджер Pip.— Документация Pip.— URL: https:// pip.pypa.io/en/stable/user_guide/ (дата обращения: 27 апреля 2023 г.).
[11] Поддержка новых языков в Eclipse IDE. — Документация Eclipse. — URL: https://wiki.eclipse.0rg/The_Official_Eclipse_FAQs# Implementing_Support_for_Your_Own_Language (дата обращения: 5 апреля 2023 г.).
[12] Протокол языкового сервера LSP.— Документация Microsoft.— URL: https://microsoft.github.io/language-server-protocol/ overviews/lsp/overview/ (дата обращения: 3 апреля 2023 г.).
[13] Расширение Pydev для Eclipse IDE. — Сайт GitHub. — URL: https: //github.com/fabioz/Pydev (дата обращения: 5 апреля 2023 г.).
[14] Рейтинг языков программирования. — Редакция Spec­trum IEEE, 2022.— URL: https://spectrum.ieee.org/ top-programming-languages-2022 (дата обращения: 1 апреля 2023 г.).
[15] Спецификация языка Python.— Документация Python.— URL: https://docs.python.org/3/reference/ (дата обращения: 10 апреля 2023 г.).
... всего 18 источников


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ