From Requirements to Architecture: An AI-Based Journey to Semi-Automatically Generate Software Architectures (Рубрика Architecture)
Это очередной академический whitepaper про использование AI в разработке софта. Здесь исследователи за 4 странички успевают
- Изложить свой план исследований, все значимое обещают в следующих сериях
- Сделать обзор предыдущих статей на тему генерации архитектуры из документации и автоматической оценки ее качества.
Концептуально процесс генерации от ребят выглядит так
- Взять качественные требования и сгенерировать LLMs доменную модель и набор use cases
- Взять напильник и немного ручками доработать получившуюся доменную модель и сценарии
- Взять доработанные модель и сценарии и сгенерировать LLMs несколько архитектур-кандидатов + вытащить как-то ключевые ADR, которые были приняты при их проектировании. Тут предполагается использовать старый добрый "4+1 Model" от P. Kruchten (из 1995 года) + диаграммы в PlantUML и Mermaid
- Взять кандидатов и прогнать через автоматизированную оценку (стандартный ATAM или другие подходы). Если с автоматизацией не сложится, то авторы готовы к запасному варианту в виде ручной оценки
- Дальше если нужно эти архитектуры-кандидаты доработать через промпты к LLMs с просьбами о доработках
- Финальным шагом является ручной выбор лучшего кандидата Процесс до боли напоминает 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? Ответы на вопросы в этой статье не даны, но есть план на дальнейшие исследования, который включает
- Ручной разбор нескольких референсных архитектур для восстановления списка требований к ним
- Дальше скармливание этих требований обратно LLMs и получение архитектур-кандидатов
- Сравнение этих кандидатов с референсными архитектурами глазами
- Попытка сделать автоматическую оценку архитектур-кандидатов
Отдельно авторы отмечают, что на следующих этапах на вход они хотят подавать не только требования, но и текущую архитектуру системы, а также архитектурные решения, что к ней привели. Это позволит прийти к итеративно-эволюционной модели развития архитектуры системы по мере ее создания из начального набора требований, а потом ее изменений по мере изменения внешнего контекста и требований к системе.
Из референсов к статье мне показались интересными
- "Software Architecture Metrics: a literature review" с обзором архитектурных метрик
- "Experiences applying automated architecture analysis tool suites" с опытом автоматического примения инструментов для анализа
Также я вспомнил
- "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