Как искусственный интеллект помогает в работе с требованиями

22.12.23

Программная инженерия - Работа с требованиями

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

 

 

Я директор по продуктам школы Systems.Education. Мы занимаемся обучением аналитиков и проектировщиков систем.

Обучением системных аналитиков я занимаюсь уже более 10 лет, а в индустрии работаю больше 25 лет.

В декабре 2022 года я написал статью на habr.com про разработку требований на ChatGPT. И сейчас расскажу о том, как можно применить ChatGPT в работе бизнес и системного аналитика.

Единственный момент: я никогда не работал с продуктами 1С и никогда не создавал решения на базе продуктов 1С, поэтому примеры, которые будут в докладе, почти никак не связаны с 1С. Но думаю, вы все равно сможете найти им применение в своей деятельности.

 

 

В своем докладе я расскажу:

  • как выглядит процесс работы системного аналитика – что он делает и какие артефакты он создает;

  • откуда взялась тема искусственного интеллекта;

  • как можно применить ИИ для анализа предметной области, спецификации требований, построения моделей и диаграмм;

  • дам несколько советов и расскажу, что нас ждет дальше.

 

Процесс работы аналитика

 

 

В процессе анализа мы всегда идем:

  • от известного к новому, потому что обычно мы создаем что-то новое или меняем какие-то процессы;

  • от общего к частному – от большой картины к частным решениям и где-то даже доходим до кода;

  • от деятельности людей – мы автоматизируем то, что люди делают в своих бизнес-процессах – идем к средствам автоматизации.

 

 

Если процесс работы аналитика представить в виде диаграммы, мы должны понять:

  • что у нас в принципе происходит – какую предметную область мы изучаем и пытаемся автоматизировать;

  • какие цели стоят – мы должны с бизнесом совместно проработать и выявить, потому что бизнес не всегда может до конца сформулировать, что он хочет;

  • какие воздействия мы можем оказать;

  • дальше мы описываем бизнес-процессы;

  • предлагаем концепцию решения – как мы меняем бизнес-процессы, если требуется, и какие из них автоматизируем;

  • далее бизнес-анализ закончился, начался системный анализ – мы разрабатываем требования к информационной системе;

  • предлагаем модели решения – как мы реализуем эти требования в системе;

  • критерии приемки – как будем проверять, что требования удовлетворены;

  • в итоге все это доходит до кода.

Давайте посмотрим, что может нам предложить искусственный интеллект на каждом из этапов.

 

 

Здесь на слайде показаны типичные задачи аналитика, возникающие в процессе этой работы:

  • разобраться в предметной области

  • предложить цели проекта;

  • предложить воздействия – как мы можем повлиять на деятельность, чтобы достичь цели;

  • построить модель бизнес-процессов;

  • сформулировать требования и т.д.

 

Чем может помочь искусственный интеллект

 

 

В искусственном интеллекте (далее ИИ) есть много разных направлений, и одно из них – это генерация текстов.

Почти все артефакты, которые создает аналитик – это тексты. И ИИ эти тексты может генерировать.

Началось все еще с 1980-х годов, но тогда это выглядело как исследование – никто не предполагал, что это можно будет применять в реальности.

И в 2017 году произошла практически революция в генерации текстов посредством искусственного интеллекта. Началось все с Google.

 

 

Я не буду сейчас погружаться в какие-то суровые технические детали – расскажу обзорно: оттуда взялся ChatGPT:

  • В 2017 году Google предложил архитектуру нейросетей «Трансформер», но, как это часто бывает, тот, кто предложил технологию, не смог до конца ею воспользоваться.

  • В 2018-м году эту идею взяла на вооружение компания OpenAI, которая создала на ее основе технологию GPT (Generative Pre-trained Transformer).

  • Сначала у OpenAI была модель просто GPT, потом в 2019 году они выпустили GPT-2. Эта модель просто продолжала текст – вы даете какой-то кусочек текста, и она дописывает вам этот текст так, словно его дописывает человек. Результат работы GPT-2 выглядел довольно тревожно – настолько, что OpenAI побоялись выпускать эту модель публично, они решили, что это убьет журналистику, маркетинг, социальные сети и все на свете. Емкость модели GPT-2 была всего 1,5 миллиарда параметров.

  • В 2020 году вышла GPT-3, у которой было уже 175 миллиардов параметров – это уже больше, чем нейронов в мозгеу человека.

  • На основе GPT-3 натренировали еще несколько моделей. В частности, одна из них не просто продолжала текст, который вы вводите, а выполняла инструкции. Так называемая InstructGPT. Вы говорите InstructGPT: «Придумай стихотворение на тему конференции аналитиков». И она вам пишет стихотворение. «Напиши код на таком-то языке» – она пишет код. Это семейство моделей называется GPT-3.5 – это не следующая версия, а натренированная GPT-3. Натренированы они были в 2021 году.

  • И на основе GPT-3.5 в 2022 году уже появился ChatGPT, который прогремел. Фактически, это просто удобный интерфейс к модели GPT-3.5.

Удивительно, что несмотря на то, что фактически GPT-3,5 был уже почти два года доступен в виде программного интерфейса, в виде API – никто про него в 2021-2022 году не слышал.

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

ChatGPT на данный момент является самым быстрорастущим проектом:

  • 1 млн. пользователей за 5 дней;

  • 100 млн. пользователей за два месяца.

Его популярность выросла быстрее, чем все, что было создано до этого. Быстрее любой соцсети и т.д.

 

Как работает ChatGPT

 

 

ChatGPT – это статистическая модель. Его иногда называют stochastic parrot– «статистический попугай», потому что он не понимает, что говорит.

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

  • Токен – это основная валюта ChatGPT. Если вы покупаете API, вы платите за количество токенов, которые использовали.

  • На английском токены – это практически целые слова, на русском это не так. Дело в том, что обучающая выборка на 92% содержала слова на английском языке, а на русском всего 0,18% – русский язык ChatGPT знает по случайности.

  • Он ничего не знает о событиях после 2021 года, и он не продолжает учиться – его научили один раз, и теперь его знания зафиксированы (прим. ред. доклад от 26 мая 2023 годасейчас уже не так, OpenAI обновила модель новыми фактическими знаниями).

  • До недавнего времени он не умел ходить в интернет за новой информацией, но буквально на днях OpenAI объявил, что в приложении есть плагин, который позволяет ему ходить в интернет и узнавать что-то новое.

 

 

На слайде показано, как текст разбивается на те самые токены.

В примере на английском – здесь почти целые слова.

А в примере на русском он чуть ли не побуквенно генерирует, поэтому на вывод ответов на русском языке тратится существенно больше токенов:

  • 66 токенов на почти 300 символов на английском;

  • и 434 токена на почти 400 символов на русском.

Тем не менее по-русски он говорит хорошо.

 

 

Как же разговаривать с ChatGPT?

  • С ним можно просто разговаривать, как с человеком. Он натренирован на то, чтобы поддерживать диалог. Именно это и производит такое большое впечатление.

  • Можно не просто попросить его с вами разговаривать, а попросить его выступить в какой-то роли – он умеет играть роль.

  • Его, как и человека, можно в разговоре подводить к какому-то результату. Например, вы ему сначала говорите: «Вспомни, что такое “требования”, и в каких видах их можно записывать. Хорошо. А теперь напиши требование» и т.д. Не кидаете ему сразу какой-то запрос, а подводите к идее через цепочку запросов (промптов).

  • Можно попросить его объяснить, почему он использовал именно такую логику.

  • Можно давать ему пример и просить сделать по образцу – это не всегда получается, но иногда получается.

 

 

На слайде – пример, как выглядит диалог в ChatGPT.

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

На самом деле он довольно медленно печатает, поэтому далее я буду показывать только скриншоты с результатом.

 

 

Что важно учесть:

  • В запросе хорошо бы подсказать ChatGPT, в каком виде мы ожидаем ответ. Если мы не конкретизируем, он придумает формат согласно своей статистике. В этом случае результат может быть неожиданный – совсем не то, что мы ожидаем.

  • Запрос лучше делать на английском.

  • Если что-то не так, можно попросить исправить, сказать: «Ты здесь ошибся», он скажет: «Извините, действительно ошибся, может вот так подойдет?» Вплоть до того, что он может исправлять ошибки в программном коде.

  • Если какая-то сложная задача, то у ChatGPT есть токены и есть окно контекста. На предыдущих слайдах было указано: на запрос и на ответ у ChatGPT дается около 8000 токенов – это то, что он помнит из вашего диалога, плюс его ответ. Это не очень много, примерно две страницы, поэтому очень большие ответы он не может давать и очень большие документы на вход тоже не может получать. Надо нарезать: брать кусочки и из кусочков потом конструировать ответ, разбивать задачу на несколько.

  • Он не умеет рисовать – это текстовая модель. Чтобы сгенерировать какую-то диаграмму, вам нужно задействовать какой-то сервис типа PlantUML, Mermaid.js, GraphViz, который по тексту строит диаграмму.

  • И очень важный момент: результат идентичных запросов не будет одинаковым. Несмотря на то, что это статистическая модель, там есть случайность – он может по-разному отвечать. Даже те промпты, которые я вам дам, могут у вас не сработать по какой-то причине из-за внутренних свойств модели. Можно попробовать несколько раз – он в разное время будет по-разному отвечать на запрос. Поэтому Prompt Engineering (генерация промптов) – это немного искусство.

 

Разбираемся с предметной областью и проблемами бизнеса

 

 

 

Разберемся с предметной областью и проблемами бизнеса.

Я взял абстрактную тему – прошу ChatGPT выступить в качестве бизнес-консультанта. Есть медицинский центр «Клиника здоровья», который в период COVID терпит потери до 30% общего дохода, потому что врачи болеют, и срываются приемы. Нужно предложить варианты решения проблемы.

Во-первых, это реальный кейс, во-вторых, мы это даем нашим студентам, чтобы они с этим разобрались. Посмотрим, как с этим разберется ChatGPT.

ChatGPT говорит, что готов и предлагает варианты решения проблемы: усилить меры безопасности, ввести телемедицину и т.д.

Ок, мы собираемся создавать IT-решение, развивать телемедицину. Давайте его спросим: «Как развить телемедицину?»

 

 

Ответ ChatGPT:

  • определите цели и задачи;

  • разработайте стратегию;

  • создайте инфраструктуру;

  • разработайте программное обеспечение;

  • разработайте интеграцию…

Вполне нормальные ответы, которые мог бы дать и достаточно опытный эксперт.

 

 

Далее выбираем цель: хотим сократить затраты на лечение и снизить риск заболеваний медицинского персонала. Просим составить план.

Ответ ChatGPT:

  • Определить целевую аудиторию;

  • Оценить доступность оборудования;

  • Провести обучение медицинского персонала – об этом, кстати, часто забывают. Обратите внимание, ChatGPT здесь советует учитывать не только технические аспекты, но и вопросы этики и конфиденциальности информации. Это интересно. Он периодически выдает такие вещи, про которые с первого раза и не вспомнишь. Мы все сфокусированы на ИТ-решениях, а ChatGPT в этом смысле мыслит более широко.

  • Предлагает провести пилотный проект – не сразу внедрять, а провести пилот. Умный.

 

 

Спрашиваем его конкретику: Телемедицина же, наверное, регулируется. Какие есть стандарты, связанные с телемедициной?

И здесь начинается такая штука, которая называется галлюцинация.

Когда вы хотите спросить не какой-то общедоступный и общепонятный вопрос из общего представления о деятельности людей, а что-то конкретное: конкретную книгу, конкретный стандарт, какой-то конкретный закон, то ChatGPT вам ответит, но он это придумает.

Сработает статистика, будет очень похоже на название, как на слайде: ГОСТ такой-то, Р ИСО, придумает федеральные законы таким же образом, постановления правительства и т.д.

Где-то он попал, а все остальное – фантазии. Поэтому доверять ChatGPT в фактологии не стоит. Он – модель общего назначения. (прим. ред. доклад от 26 мая 2023 года – сейчас с этим тоже стало лучше, но, конечно, галлюцинации тоже встречаются).

 

 

Хорошо. Далее мы просим ChatGPT сформулировать цель проекта.

Он сформулировал нормально, но слишком обще – если вкратце, то: «За все хорошее, против всего плохого».

 

 

Наводим его на мысль. Мы хотим снизить заболеваемость. Он говорит: «Ок, хорошо, я переформулирую».

ChatGPT суперотзывчивый. Он может сказать нет – я чуть позже скажу, когда. Но если вы его просите, он готов все делать, как вы хотите: переформулировать, добавлять и т.д.

 

 

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

 

 

Теперь просим переформулировать цель проекта по критериям SMART. И вот у него появилось «…на 30% в течение первого года» – ограничил по времени и добавил измеримость. Молодец, соображает.

 

 

Что еще можно сделать в плане выявления бизнес-проблемы?

Можно подготовиться к интервью со стейкхолдером. На слайде примеры трех промптов:

  • сначала широкий;

  • потом уточняющий;

  • потом еще более уточняющий – когда мы сужаемся до одного бизнес-процесса. Сначала ChatGPT нам выдаст общую канву, а потом можно идти вглубь, делать drill down: выбираем один бизнес-процесс и спрашиваем уже дальше только по нему.

 

 

Ну и навскидку другой пример – система подготовки учебного контента для какой-то онлайн-школы: «Поговори с человеком, который не знаком с нюансами IT и выясни у него бизнес-процессы».

Он спрашивает про бизнес-процессы,

  • С какими проблемами вы сталкиваетесь;

  • Какие вопросы безопасности и конфиденциальности вы считаете наиболее важными для вашей работы – такое тоже не вдруг вспомнишь;

  • Мне понравился вот этот вопрос: «Как вы представляете себе план внедрения нашей платформы?» А то ж обычно никак не представляют. Мы софт сделали, отдали и все – дальше ничего, с нас взятки гладки. А это может быть самое сложное.

Дальше можно спрашивать про каждый пункт, он будет генерировать дополнительные вопросы, а можно попросить ChatGPT сыграть роль стейкхолдера и попробовать ответить на эти вопросы тоже. Получается система сама в себе.

 

 

Может предложить еще несколько вопросов. Например, поддержка и обслуживание, интеграции.

 

Выявляем бизнес-процессы и формулируем функциональные требования к системе

 

 

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

Бизнес-процессы мы обычно рисуем. ChatGPT рисовать не умеет, но он умеет писать код. Например, он может выдать код BPMN-диаграммы в виде XML.

Мы этот XML сохраняем как файл, загружаем в ту же Comunda и получаем примерно такую штуку:

 

 

Ну немножко разъехалось. Хотя у меня ребята порадовались: «Какой молодец, нарисовал так, как это в жизни будет происходить».

Если вы игрались с Midjourney или с другими нейросетями, генерирующими изображения – они часто по 7-8 пальцев рисуют, по три руки, у ChatGPT примерно такая же проблема – он схемы не умеет рисовать.

 

 

Здесь получилось чуть получше, но все равно не все корректно – процесс «Запись на прием к врачу» отдельный, без стрелок вообще. Сложно.

Почему сложно?

  • Во-первых, сам BPMN так устроен, что даже в виде XML там нужно указать точные координаты – откуда и куда каждая стрелочка приходит. А у ChatGPT с математикой все плохо, он теми же самыми токенами пытается генерировать числа. Он не понимает, что такое число. Для него число – это кусочек строки текста, и он наиболее вероятные туда подставляет числа. Поэтому с ориентацией в пространстве у него не очень хорошо. К сожалению, нет никакого хорошего инструмента, чтобы нарисовать BPMN-диаграмму, не указывая конкретных чисел.

  • Плюс – за счет того, что это XML, он очень избыточный, там много дополнительных элементов, и все токены тратятся на XML-теги. Поэтому редко какой процесс вы сможете описать одним выводом – обычно придется делать все в несколько этапов. Поэтому не будем его BPMN-ом мучить.

 

 

Вместо этого мы можем его попросить нарисовать не BPMN, а Activity Diagram из UML, используя нотацию PlantUML.

 

 

Это попроще, потому что в PlantUML не XML, и ChatGPT более-менее это рисует.

 

 

С бизнес-процессами не очень задалось, давайте теперь попросим ChatGPT написать, например, пользовательские истории (user story).

Функциональные требования можно оформлять в разных вариантах:

  • пользовательскими историями;

  • через Use Cases;

  • можно классическими требованиями: «Система должна делать то и это».

ChatGPT в принципе все это знает и умеет, ему не надо объяснять, как писать User Story. Он пишет: «Я как пользователь хочу создать то и то».

На слайде показано, как ChatGPT генерирует пользовательские истории к приложению для отслеживания питания, с возможностью проконсультироваться у нутрициолога.

Я специально беру немного разные системы, чтобы показать, что ChatGPT ориентируется в разных областях.

 

 

Мы можем попросить ChatGPT сделать карту пользовательских историй, User Story Map, чтобы создавалось целостное представление о процессе, и пользовательские истории были записаны в отношении каждого отдельного шага этого процесса.

Мы даем ему несколько промптов, говорим это вывести в таблицу.

Он выводит таблицу – мы ее копируем, вставляем, например, в Miro или через API можно загрузить в систему учета задач типа Trello или Jira.

 

 

В Miro вставляем таблицу как стикеры, поворачиваем и у нас получается User Story Map в виде стикеров в Miro с разбивкой по релизам. А дальше начинаем перетаскивать – как мы обычно с User Story Map работаем.

 

 

Use cases – если нам нужно более детально спроектировать взаимодействие пользователя с системой. .

ChatGPT описывает пользовательские сценарии точно так же: сначала список, а потом мы просим описать каждый конкретно – и он пошел по структуре Use Case.

 

 

Здесь Use Case – проконсультироваться с нутрициологом. ChatGPT пишет:

  • Какие здесь есть действующие лица.

  • Предусловия: система должна иметь информацию, пользователь должен иметь доступ.

  • Триггер – процесс начинается с того, что пользователь выбирает функцию.

 

 

Основной сценарий:

  • пользователь запускает приложение;

  • пользователь выбирает день и время консультации;

  • система проверяет доступность и т.д.

Честно говоря, я бы здесь как преподаватель придрался бы к формулировкам этого Use Case, потому что не должно быть «если», должно быть что «система удостоверяется» и т.д. Но в первом приближении нормально, меня устроит.

 

 

Еще у Use Case есть альтернативные сценарии – что может пойти не так. На слайде просто вывод модели – то, что она генерирует.

 

 

ChatGPT может сгенерировать техническое задание сразу в виде документа – насколько ему хватит токенов, он все это сгенерирует.

Правильно или неправильно – про это можно долго спорить, но это хорошее подспорье. Вы уже не пишете все с нуля, а просто проверяете за ним. Где-то что-то убираете, где-то что-то добавляете, и ваша работа за счет этого ускоряется.

 

Модели системы: данные, состояние, последовательность

 

 

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

Что еще может делать ChatGPT: мы можем дать этой машине какой-то текст и дать задание что-то с этим текстом сделать.

Обычно мысль не идет дальше какой-то суммаризации, например: «Вот тебе текст, выдай его содержимое на один абзац».

Можно сделать хитрее: попросить ChatGPT выписать все объекты из текста и построить диаграмму объектов. Именно такой анализ я прошу делать студентов на наших курсах, и ChatGPT с этим справляется

 

 

Даем ChatGPT какой-то текст – главное, что он должен вмещаться в один промпт.

 

 

ChatGPT его читает и делает из него:

  • во-первых, список функций;

  • во-вторых, PlantUML делает из него уже диаграмму классов – то есть связи из текста он тоже может вытащить.

 

 

Если вторым запросом его попросить: «Добавь дополнительные атрибуты для этих объектов, как ты считаешь нужным.» – ChatGPT добавляет.

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

 

 

Если текст не вмещается в один промпт, есть хитрый прием. Можем задать два промпта подряд. Говорим ChatGPT: «Сначала я дам тебе начало текста. Ты скажи, когда ты его загрузишь в себя, я дам тебе вторую часть. И когда будешь выдавать мне результат, ты их склей». Эта схема работает.

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

Точно так же работает и с выдачей. Если он не справляется выдать за один ответ BPMN, диаграмму или другой текст, можно ему сказать: «Дай мне первую часть этого текста в одном ответе. Потом я тебе напишу слово “Продолжай” и дай мне продолжение этого текста».

За три раза так сделать получается не всегда, ChatGPT иногда теряет контекст: окно уходит, и он забывает, о чем мы его просили. Но иногда получается.

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

 

 

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

  • Через бизнес-процессы описали – что у нас происходит, и что люди делают;

  • Через объекты описали – в случае с 1С наиболее часто это те самые учетные регистры, где вы учитываете какую-то информацию.

  • Еще можно попросить ChatGPT написать диаграмму состояний. Если какой-то объект имеет различные состояния – такое очень часто бывает в системах: как правило, есть одна заявка или документ, и можно представить почти всю работу системы через переход состояний этого центрального объекта. Их тоже можно здесь рисовать и делать их достаточно сложными, в том числе вложенными.

 

 

По запросу ChatGPT выдает текст на PlantUML – в случае на слайде это как раз будет модель состояний.

Мы копируем полученный текст, вставляем его в PlantUML (или в аналогичный сервис mermaid.js) и получаем на выходе изображение.

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

Поэтому я делаю на него скидку – просто вставляю результат его генерации в PlantUML и оцениваю результат. Если где-то есть ошибка, я сам исправляю. Когда проблема в одной-двух строчках, мне проще самому исправить, чем заставлять искусственный интеллект искать ошибку. Так бывает, и к этому нужно быть готовым.

Когда ChatGPT сгенерирует вам кусок текста, достаточно что-то в нем поправить, где-то что-то скопировать и перенести. Все равно это происходит быстрее, чем писать вручную.

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

 

 

Продолжаем все дальше спускаться по этим ступенькам к уровню кода. Диаграмма последовательности и программные интерфейсы.

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

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

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

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

 

 

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

ChatGPT понимает, как конструируется endpoint в REST API. Как вы видите, здесь в названиях endpoint-ов нет глаголов, только различные ресурсы.

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

 

 

Когда у нас речь заходит о взаимодействии систем, это взаимодействие хорошо показывать в виде sequence-диаграммы – диаграммы последовательности из UML.

Если делать анализ статистики запросов, на текущий момент sequence-диаграммы из UML самые популярные, потому что тема интеграций в принципе востребована и популярна. Вы можете никакие другие диаграммы не использовать, но sequence вы обязаны уметь рисовать.

У CHatGPT получилась достаточно высокоуровневая диаграмма последовательности – описан весь процесс приема у врача, причем довольно странновато.

Можем попросить ее детализировать.

 

 

Например, мы можем просто описать ему на естественном языке, как устроен прием у врача. Неважно откуда мы этот текст взяли – может из интервью, может из какого-то документа.

Даем текст и говорим: «А теперь эту последовательность изобрази, пожалуйста, в виде sequence-диаграммы на языке UML».

 

 

Здесь диаграмма последовательности получилась даже сложнее. Здесь проявляется эффект неожиданности: мы не говорили, что какие-то действия нужно объединять. А ChatGPT сам решил их объединить в пакеты:

  • инициализация консультации,

  • проведение консультации,

  • завершение консультации.

Можно написать ему конкретно: «Пакеты не используй!» или наоборот: «Используй пакеты, разбей этот процесс, сгруппируй взаимодействие на какие-то части».

Здесь есть небольшая хитрость – когда ChatGPT выдает результат, с ним потом можно работать, как с заготовкой. В исходном UML на месте «Хранилища видео» был прямоугольник – я посмотрел, как в PlantUML прямоугольник заменить на бочонок (чтобы это было хранилище), и поменял в тексте.

Получается, что работа с диаграммами после ChatGPT сводится к добавлениям отдельных штрихов.

 

 

У вас в экосистеме 1С есть очень классная штука – Vanessa Automation. В ней можно написать BDD-сценарии проверки и запустить их. А она автоматически будет проверять функциональность и даже генерировать видеоинструкции.

Штука отличная. Я всем рассказываю: «Вы думаете, что в 1С все плохо? А там есть ТАКОЕ!» И люди, которые никогда с этим не сталкивались, у них глаза становятся круглые, и они спрашивают: «И видеоинструкции еще?! Ничего себе!»

И если вы видели BDD-сценарий, он представляет собой текстовый файл в определенном формате (given, when, then и т.п.). ChatGPT его отлично генерирует.

Вы даете описание какого-то процесса, какой-то функции, фичи, требования. Если вам нужно это сделать конкретно под 1С, можете написать: «Используй при этом такие-то существительные», которые Vanessa Automation потом автоматически распознает, и он сгенерирует вам этот BDD-сценарий.

 

Реверс инжиниринг

 

 

Использование ChatGPT – это тоже очень хорошее подспорье для реверс инжиниринга.

Ему на вход можно подать функцию/процедуру и попросить объяснить, что она делает. В том числе (я пробовал специально) на языке, который используется в 1С.

 

 

По виду функции он может объяснить, что здесь происходит человеческим языком.

Это касается и запросов и непосредственно кода.

 

 

Подаем запрос – он расшифровывает запрос.

 

 

В обратную сторону он тоже может. Вы человеческим языком ему пишете: «Сделай мне запрос остатков со склада, отбери товары таких-то поставщиков» – он напишет.

Языков программирования он знает много. Если у вас стоит задача взять какую-то существующую систему не на 1С, и сделать постановку требований для реализации ее на 1С, он может вам помочь.

Если вы доберетесь до скриптов, которые есть в исходной системе, он объяснит вам, например, что делает этот SQL-запрос или что делает эта функция.

Вы можете описать ему экранную форму: «На этой экранной форме находятся такие-то поля» или дать html-код экранной формы. Он создаст вам текстовое описание экранной формы и попытается предположить – что эта экранная форма делает, какой процесс она автоматизирует.

 

Заключение

 

 

Как можно применять ChatGPT:

  • Можно прорабатывать требования и использовать результат как некий шаблон, чек-лист или подсказку.

  • Можно переводить текст в диаграммы. Как вы видели он берет кусок текста на естественном языке, рисует диаграмму, а можно попробовать наоборот;

  • Можно раскрывать объем – по короткому описанию генерировать набор функций, набор пользовательских историй или набор Use Cases.

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

  • Можно использовать для написания заготовок кода, требований.

  • Можно использовать для реверс инжиниринга – чтобы он описал какую-то существующую функцию на человеческом языке.

 

 

Часто возникает вопрос: что с безопасностью?

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

  • Если вы получаете доступ через API – не через ChatGPT, а GPT-3.5, ваши данные никому не доступны. Уровень их сохранения такой же, как если бы вы использовали какой-то облачный сервис.

  • Сейчас другие компании тоже начали эту технологию догонять – Google уже выпустил свою модель.

  • Также очень активно развивается Open source-движение, которое позволяет эту модель, может быть не такую крутую, как ChatGPT, поставить себе и натренировать ее самостоятельно. Если вас очень сильно волнует безопасность, вы можете поставить ее непосредственно на ваших серверах – никто к ней доступа не получит.

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

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции "Анализ & Управление в ИТ-проектах".

См. также

Работа с требованиями Бесплатно (free)

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

29.07.2024    4117    0    user1145928    2    

6

Работа с требованиями Проектирование Удобство использования (UX) Программист Бесплатно (free)

Расскажем о том, как снизить риски при разработке мобильных приложений, новых конфигураций или целых подсистем «с нуля». Материал будет актуальным и для компаний-интеграторов, и для сотрудников внутренних ИТ-отделов в производственных или торговых компаниях.

17.04.2024    1927    17    Vladimir_Konyrev    1    

6

Компетенции и навыки РП Работа с требованиями Бесплатно (free)

Аналитики 1С не всегда хорошо представляют себе, в каких таблицах системы хранятся данные, и из каких объектов состоит конфигурация. Как следствие – технические задания часто получаются непонятными для разработчиков. Расскажем о том, зачем аналитику разбираться в таких темах, как конфигуратор и структура метаданных, регистры, запросы, СКД, интеграция и обмен данными.

02.02.2024    2874    0    otkalo    1    

13

Работа с требованиями Бесплатно (free)

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

21.12.2023    3599    0    user1909204    0    

5

Работа с требованиями Бизнес-аналитик Руководитель проекта Бесплатно (free)

На комплексных проектах внедрения часто приходится уточнять, что входит в контур автоматизации, и гармонизировать встречные требования заинтересованных сторон. Особенно это актуально для таких процессов, как Планирование (продаж, производства, закупок и т.д.). Расскажем об инструментах, которые позволят состыковать требования к системе так, чтобы они были полными, не противоречили друг другу, и обеспечивали качественную автоматизацию процессов.

08.12.2023    1207    0    e_ivanova    1    

7

Кейсы автоматизации Работа с требованиями Анализ бизнес-процессов Бесплатно (free)

Автоматизировать производственные процессы в 1С:ERP без доработки типовых механизмов очень сложно. А дорабатывать типовые механизмы 1С:ERP не всегда оправданно. Решением может стать технология разработки Рабочих мест, которая позволяет автоматизировать самые сложные участки последовательно – шаг за шагом, процесс за процессом. Расскажем о том, как помочь пользователям вводить большое количество данных, не нарушая порядок ввода и полноту заполнения всех необходимых реквизитов, и как вовлечь сотрудников Заказчика в разработку и тестирование функционала Рабочих мест.

26.10.2023    2939    0    user1754524    15    

17

Работа с требованиями Программист Бизнес-аналитик Руководитель проекта Бесплатно (free)

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

22.09.2023    2383    0    user1615644    0    

3

Работа с требованиями Бесплатно (free)

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

16.08.2023    3967    0    Libelle    0    

20
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. serg33rus 32 22.12.23 18:32 Сейчас в теме
Сейчас есть чисто модели для которых русский родной - GigaChat от сбера и YaChat от яндекса. С русским они работаю даже лучше, а вот насколько они знают 1С - это интересный вопрос.
ChatGPT на 1С пишет ... ну так себе. А вот на питоне очень даже неплохо.
Интересно будет погонять наши модели.
2. Ykkks 18 26.12.23 18:53 Сейчас в теме
Я пробовал GigaChat, он совсем не в курсе ИТ-шной специфики. Юскейсы, юзер-стори -- этого он всё у него получается не очень хорошо. А уж схемы рисовать на формальном языке -- вообще никак.
3. serg33rus 32 26.12.23 20:39 Сейчас в теме
(2) Печально. Хотелось бы уровень chatGPT, но на русском и с 1С. И тогда оно будет работать, а я зп получать :-)
4. Vladimir_Konyrev 263 16.06.24 20:06 Сейчас в теме
Спасибо за статью, очень полезная.
Не смог воспроизвести Ваш тезис "Мы этот XML сохраняем как файл, загружаем в ту же Comunda и получаем примерно такую штуку:" Можете подсказать инструмент, в котором на основании XML генерировали диаграмму BPMN?
Оставьте свое сообщение