2021/09/24 14:28:14

Как ИИ помогает писать софт. Обзор одной из самых перспективных технологий будущего

Искусственный интеллект (ИИ) помогает оптимизировать и ускорить процесс проектирования, разработки и внедрения программного обеспечения (ПО). Суть заключается не в том, чтобы инженеров-разработчиков заменили роботы. Скорее, инструменты на базе ИИ работают в роли ассистентов руководителей проектов, бизнес-аналитиков, программистов и инженеров по тестированию. За счет этого специалисты по разработке могут создавать и тестировать части кода быстрее и с меньшими затратами. Таким образом, ИИ может стать важным фактором, который приведет к увеличению производительности программистов и повышению качества продуктов. По просьбе TAdviser ведущая Telegram-канала Analytics Now Светлана Вронская подготовила обзор ключевых возможностей ИИ для разработчиков ПО.

Содержание

Терминология

AI-augmented Software Engineering - в списке самых перспективных технологий будущего

Разработка программного обеспечения с помощью ИИ, AI-augmented Software Engineering – термин, который ввели в Gartner в 2020 году для описания процесса использования технологий искусственного интеллекта (например, машинного обучения, обработки естественного языка и др.) для ускорения циклов разработки приложений и DevOps. Ряд вендоров уже выпустил продукты для такого типа работ. Среди них Codota, Deep Code, Google, Kite, Mendix, Microsoft, OutSystems, Parasoft.

Марк Драйвер (Mark Driver), вице-президент Gartner Research, прогнозирует

«
к 2022 году, минимум 40% новых проектов по разработке ПО будут использовать ресурс виртуальных ИИ-разработчиков.
»

Однако технологии искусственного интеллекта и машинного обучения уже около пяти лет применяются компаниями и отделами по разработке ПО по всему миру. В 2020 году Gartner впервые включил это понятие в список самых перспективных технологий будущего – Hype Cycle for Emerging Technologies (цикл зрелости технологий).

Области применения искусственного интеллекта при разработке ПО

ИИ используется в разработке программных решений на следующих этапах:

Сбор технических требований

Цифровые ассистенты анализируют документы с собранными требованиями, указывают на разногласия в тексте, нестыковки в цифрах, единицах измерений, суммах и предлагают возможные решения.Рынок ИТ-услуг в России: оценки, тренды, крупнейшие участники. Обзор и рейтинг TAdviser 298.7 т

Быстрое прототипирование

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

Кодирование

В процессе написания кода, работающая на базе ИИ система автозаполнения предлагает рекомендации для завершения строчек кода. Интеллектуальные помощники сокращают время на создание кода на 50%. Дополнительно они могут рекомендовать обратиться к связанным документам, лучшим практикам и дать примеры кода.

Анализ и обработка ошибок

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

Автоматический рефакторинг кода

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

Тестирование

Автоматизированные системы тестирования используют ИИ не только для того, чтобы запускать процесс тестирования, но и для создания test кейсов.

Ввод в эксплуатацию

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

Управление проектами

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

Развитие инструментов на базе ИИ для разработки ПО

Согласно исследованию Deloitte 2020 года, на рынке отмечается большой интерес к решениям, которые используют инструменты искусственного интеллекта в области разработки ПО:

  • За последние годы на рынке появились десятки продуктов, которые используют ИИ для повышения эффективности разработки программных решений.
  • Объем годовых инвестиций, привлеченных стартапами, которые предлагают ИИ-продукты для разработки ПО, составил 704 млн долларов США к сентябрю 2019 года.
  • Прогнозируется, что объем мирового рынка заказной разработки ПО вырастет до 61 млрд долларов США к 2023 году.
  • Благодаря растущему спросу на программное обеспечение, количество инженеров-разработчиков вырастет на 21% в 2028 году.

Мнение экспертов рынка

Андрей Карпати (Andrej Karpathy), директор направления «Искусственный интеллект» в Tesla, в статье 2017 года указал на то, что приходит время нового программного обеспеченияSoftware 2.0. Оно будет на порядок сложнее существующих разработок и его будут помогать разрабатывать машинное обучение и нейронные сети.

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

Недавний анализ Forrester Research указывает что рынок заказной разработки ПО вырос до 1,25 трлн долларов США, а Кэмбриджский университет добавляет, что 50% работ тратится на компиляцию кода и исправление ошибок. С помощью искусственного интеллекта можно значительно сократить эту часть работ.

Искусственный интеллект в разработке мобильных приложений

В области мобильной разработки ИИ предоставляет разработчикам новые возможности. Прежде всего, это связано с тем, что использование ИИ помогает привлечь к использованию приложения большее количество пользователей.

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

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

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

Инструменты ИИ для разработки программного обеспечения

Растущее количество инструментов на базе ИИ поддерживает процессы разработки программного обеспечения. Часть из этих решений доступна бесплатно. Ведущие технологические вендоры используют подобные инструменты и предлагают их своим клиентам в виде дополнительных продуктов (plug-in).

Facebook использует рекомендательный сервис для исправления ошибок и улучшения кода. Последние проекты IBM Mono2Micro и Application Modernization Accelerator (AMA) предоставляют архитекторам приложений инструменты для обновления устаревших приложений и повторного их применения. А Microsoft в 2021 году объявила, что интегрирует технологии искусственного интеллекта со своим языком программирования Power Fx, который применяется в разработке приложений на платформе Power Platform. Это позволит клиентам компании создавать программы практически без необходимости написания кода.

В России активно использует ИИ для создания программных продуктов Сбер. В июле 2021 года Sber AI зарегистрировала в Роспатенте программу, позволяющую искусственному интеллекту распознавать и анализировать объекты в виртуальной реальности, следует из материалов ведомства.

Согласно опросу Forrester, 37% респондентов признали, что они используют ИИ для более эффективного процесса тестирования и разработки.

Image:Ии_для_по.png
Средства для разработки и тестирования ПО, работающие на базе искусственного интеллекта. Источник: Forrester Research, 2021

Однако есть и другая сторона у ИИ-продуктов для разработки ПО. Команды, которые используют инструменты для улучшения кода, могут сначала испытывать падение продуктивности, так как ИИ-продукты требуют навыков и умения с ними обращаться. Лишь после глубокого погружения, они способны выдавать точные рекомендации для оптимизации разработки ПО.

2024

Google запустила бесплатный ИИ-инструмент для написания кода

9 апреля 2024 года компания Google представила бесплатный инструмент Gemini Code Assist на основе искусственного интеллекта, предназначенный для оказания помощи в написании программного кода. Эта система получила функцию автоматического завершения строк. Подробнее здесь.

Запущена открытая нейросеть, которая пишет программный код по голосовым командам

12 марта 2024 года стартап Cognition Labs анонсировал систему Devin — специализированную нейросеть, способную самостоятельно выполнять комплексные задачи по разработке программного обеспечения. Утверждается, что это первый в отрасли инженер-программист со средствами искусственного интеллекта. Подробнее здесь.

2023: 10% разработчиков ПО в мире пользуются ИИ-помощниками по программированию

По состоянию на 2023 год различными помощниками по программированию на базе искусственного интеллекта пользуются приблизительно 10% разработчиков программного обеспечения в глобальном масштабе. А примерно 63% организаций в мире тестируют или внедряют ИИ-инструменты по созданию кода. Об этом говорится в исследовании Gartner, результаты которого опубликованы 11 апреля 2024 года. Подробнее здесь.