К основному содержимому
#Architecture

From Requirements to Architecture: An AI-Based Journey to Semi-Automatically Generate Software Architectures (Рубрика Architecture)

#Architecture #LLM #AI #Software #Engineering #Management #Processes

Это очередной академический whitepaper про использование AI в разработке софта. Здесь исследователи за 4 странички успевают

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

Концептуально процесс генерации от ребят выглядит так

  1. Взять качественные требования и сгенерировать LLMs доменную модель и набор use cases
  2. Взять напильник и немного ручками доработать получившуюся доменную модель и сценарии
  3. Взять доработанные модель и сценарии и сгенерировать LLMs несколько архитектур-кандидатов + вытащить как-то ключевые ADR, которые были приняты при их проектировании. Тут предполагается использовать старый добрый "4+1 Model" от P. Kruchten (из 1995 года) + диаграммы в PlantUML и Mermaid
  4. Взять кандидатов и прогнать через автоматизированную оценку (стандартный ATAM или другие подходы). Если с автоматизацией не сложится, то авторы готовы к запасному варианту в виде ручной оценки
  5. Дальше если нужно эти архитектуры-кандидаты доработать через промпты к LLMs с просьбами о доработках
  6. Финальным шагом является ручной выбор лучшего кандидата Процесс до боли напоминает ICONIX в части генерации архитектуры из требований, но автоматизированный. Кстати, про ICONIX я сегодня уже вспоминал.

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

RQ1: Can state-of-the-art NLP technology generate reproducible, correct, and elaborate domain models and use case scenarios based on requirements in natural language? RQ2: Can state-of-the-art AI technology generate software architectures based on a domain model, use case scenarios, and requirements that can appropriately fulfill these requirements? RQ3: Can quantitative and qualitative software architecture evaluations and trade-off analyses be automated through the use of AI? RQ4: Does a method for semi-automatic architecture generation improve the architecture’s quality while reducing the time required? Ответы на вопросы в этой статье не даны, но есть план на дальнейшие исследования, который включает

  1. Ручной разбор нескольких референсных архитектур для восстановления списка требований к ним
  2. Дальше скармливание этих требований обратно LLMs и получение архитектур-кандидатов
  3. Сравнение этих кандидатов с референсными архитектурами глазами
  4. Попытка сделать автоматическую оценку архитектур-кандидатов

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

Из референсов к статье мне показались интересными

Также я вспомнил

  • "Architecture Anti-patterns: Automatically Detectable Violations of Design Principles" - хороший paper, мой разбор здесь
  • "Enhancing Software Design and Developer Experience Via LLMs" - поверхностый paper, мой разбор здесь

Собственно, этот paper по уровню практической проработанности слаб, но теоретически план исследований выглядит интересно.

#LLM #AI #Architecture #Software #Engineering #Management #Processes