Авторы:
(1) Гаурав Колхаткар, Пунский институт компьютерных технологий SCTR, Пуна, Индия ([email protected]);
(2) Акшит Мадан, Пунский институт компьютерных технологий SCTR, Пуна, Индия ([email protected]);
(3) Нидхи Ковтал, Пунский институт компьютерных технологий SCTR, Пуна, Индия ([email protected]);
(4) Сатьяджит Рой, Пунский институт компьютерных технологий SCTR, Пуна, Индия ([email protected]).
Аннотация — Преобразование пользовательских эпиков или историй в их соответствующее представление в псевдокоде или коде — трудоемкая задача, которая может занимать большую часть времени в промышленном проекте. В этой исследовательской работе мы стремимся представить методологию генерации псевдокода на основе заданной гибкой пользовательской истории с небольшими функциями, чтобы сократить общее время, затрачиваемое на промышленный проект. Псевдокод — это независимое от языка программирования представление шагов компьютерной программы, которое можно легко преобразовать в любой язык программирования. Используя потенциал обработки естественного языка, мы хотим упростить процесс разработки в организациях, использующих гибкую модель разработки программного обеспечения. Мы представляем методологию преобразования проблемы, описанной на английском языке, в псевдокод. Эта методология делит задачу преобразования текста в псевдокод на два этапа или подзадачи, каждый из которых рассматривается как отдельная задача машинного перевода. Этап 1 — преобразование текста в код, а этап 2 — преобразование кода в псевдокод. Мы обнаружили, что модель CodeT5 дает наилучшие результаты с точки зрения оценки BLEU при раздельном обучении двум упомянутым выше подзадачам. Оценка BLEU — это показатель, который используется для измерения сходства между текстом, переведенным машинным способом, и набором эталонных переводов.
Индексные термины — генерация текста в код, генерация кода в псевдокод, преобразователи.
Эффективность работы имеет первостепенное значение в современных организациях и предприятиях. Сегодня большинство рабочих мест используют Agile-модель для разработки программного обеспечения. Agile — это подход к разработке программного обеспечения, основанный на итеративной разработке, при котором задачи делятся на более мелкие итерации или спринты. В Agile инструменты управления проектами, такие как Jira, используются для документирования требований пользователей в форме эпиков или пользовательских историй. Разработчики должны понимать эти требования и писать код для них. Однако значительное количество времени и усилий на разработку можно сэкономить за счет автоматизации процесса генерации кода/псевдокода, особенно для простых или повторяющихся задач, которые были решены ранее. Целью нашей исследовательской работы является упрощение работы разработчиков, чтобы они могли сосредоточиться на более сложных задачах и в процессе оптимизации жизненного цикла разработки программного обеспечения.
Jira — это программное приложение, используемое для отслеживания проблем и управления проектами. Он широко используется командами гибких разработчиков для отслеживания ошибок, историй, эпиков и других задач. Эпики — это большие объемы работ, которые можно разбить на ряд более мелких задач (называемых историями). Истории, также называемые «пользовательскими историями», представляют собой короткие требования или запросы, написанные с точки зрения конечного пользователя. Наша цель — преобразовать эпики/истории в псевдокод.
Несмотря на преимущества гибкой модели, разработка программного обеспечения по-прежнему может оставаться сложным и затяжным процессом, особенно когда речь идет о переводе требований пользователя в функциональный код. В рамках этого процесса разработчики часто вручную переводят пользовательские эпики или истории в код, что может занять много времени и труда.
Наше исследование направлено на изучение потенциала использования методов машинного обучения и обработки естественного языка для автоматизации процесса генерации кода и псевдокода на основе пользовательских историй, чтобы решить эту проблему. Сделав это, мы надеемся упростить задачи разработчиков, улучшить жизненный цикл разработки программного обеспечения и повысить эффективность всего промышленного проекта.
Последние достижения в области обработки естественного языка позволили автоматизировать множество операций, которые раньше выполнялись вручную. В частности, недавние разработки в области глубокого обучения позволили создать сложные модели естественного языка, которые могут извлекать контекст и значение из ввода текста. Используя эти модели, мы можем быстро и эффективно создавать код или псевдокод на основе пользовательских историй, снимая нагрузку с разработчиков.
В нашем исследовании будут рассмотрены различные используемые в настоящее время методологии, в том числе системы, основанные на правилах, статистические модели и методы глубокого обучения, для создания кода или псевдокода на основе пользовательских историй. Мы оценим преимущества и недостатки каждой методологии и предложим новую стратегию, которая максимально использует их преимущества.
В целом, наша исследовательская работа направлена на то, чтобы сделать разработку программного обеспечения более эффективной и результативной за счет автоматизации процесса генерации кода/псевдокода на основе пользовательских историй. Поступая таким образом, мы надеемся дать разработчикам возможность сосредоточиться на более сложных задачах, снизить риск ошибок и в конечном итоге предоставить пользователям более качественные программные продукты.
Этот документ доступен на arxiv под лицензией CC 4.0.