Курсовая работа: Ассистент для разработчиков в среде IntelliJ IDEA
Описание
Оглавление
Введение | | 5 | ||
1. | Обзор литературы | 7 | ||
| 1.1. | Существующиерешения ................... | 7 | |
| | 1.1.1. | Selene . . . . . . . . . . . . . . . . . . . . . . . . . . | 7 |
| | 1.1.2. Seahawk . . . . . . . . . . . . . . . . . . . . . . . . . | 8 | |
| | 1.1.3. | Prompter . . . . . . . . . . . . . . . . . . . . . . . . | 8 |
| | 1.1.4. | Bing Developer Assistant . . . . . . . . . . . . . . . | 9 |
| | 1.1.5. | NLP2Code . . . . . . . . . . . . . . . . . . . . . . . | 10 |
| | 1.1.6. | Иныерешения..................... | 10 |
| | 1.1.7. Выводы......................... | 11 | |
| 1.2. | Метрики для оценки качества ранжирования . . . . . . . | 13 | |
| | 1.2.1. | Normalized discounted cumulative gain . . . . . . . | 14 |
| | 1.2.2. | Expected reciprocal rank . . . . . . . . . . . . . . . | 14 |
2. | Алгоритм рекомендации | 16 | ||
| 2.1. | Форма предоставляемых данных . . . . . . . . . . . . . . | 16 | |
| 2.2. | Получениеданных ...................... | 17 | |
| 2.3. | Удалениедубликатов..................... | 17 | |
| 2.4. | Ранжирование полученных данных . . . . . . . . . . . . . | 18 | |
| | 2.4.1. | Ранжирование фрагментов кода . . . . . . . . . . | 18 |
| | 2.4.2. | Ранжирование обсуждений . . . . . . . . . . . . . | 20 |
3. | Архитектура инструмента | 21 | ||
4. | Пользовательский интерфейс | 22 | ||
| 4.1. | Функциональность ...................... | 22 | |
5. | Апробация | 24 | ||
| 5.1. | Анализрезультатов...................... | 24 | |
| 5.2. | Границыприменимости.................... | 25 | |
Заключение | | 26 |
3
Список литературы | 27 |
4
Введение
Скаждым годом сложность разработки программных продуктов неуклонно возрастает, усложняются проекты и задачи. В связи с этим всё более востребованными становятся инструменты, облегчающие раз-работку и повышающие производительность труда программистов. Со-
временныесредыразработки (Integrated Development Environment, IDE)
включают множество различных инструментов: средства автодопол-нения, исправления ошибок, автоматического рефакторинга и многие другие. Они призваны сделать процесс разработки более эффективным путём автоматизации и предоставления различного рода подсказок.
Но часто существующих инструментов оказывается недостаточно. Разработчики, особенно начинающие, зачастую не обладают необходи-
мымизнаниямидляработыс API (Application Programming Interface)