Benchmarking Requirement-to-Architecture Generation with Hybrid Evaluation
이 논문은 요구사항에서 소프트웨어 아키텍처를 생성하는 작업을 평가하기 위해 실세계 프로젝트 기반의 R2ABench 벤치마크와 구조적·다차원·안티패턴 감지를 포함한 하이브리드 평가 프레임워크를 제안하고, 이를 통해 LLM 이 구문적 유효성은 확보하나 관계 추론과 구조적 통합성 측면에서 여전히 한계가 있음을 실증했습니다.
원저자:Minxiao Li, Shuying Yan, Li Zhang, Yang Liu, Fang Liu
과거에는 건축가 (소프트웨어 아키텍트) 가 고객 (요구사항 문서) 의 말만 듣고 직접 설계도를 그렸습니다. 하지만 요즘은 AI 가 글을 잘 쓰니까, "이걸로 건물을 지어줘"라고 하면 AI 가 설계도를 그려주길 기대합니다.
하지만 문제는 데이터가 없어서 검증할 수 없었다는 점입니다. 마치 "AI 가 그림을 잘 그리는지 확인하려면, 정답이 있는 그림이 있어야 하는데 그런 그림이 없으니 검증할 수 없다"는 상황이었죠.
2. 해결책: 'R2ABench'라는 새로운 시험지 만들기
저자들은 이 문제를 해결하기 위해 R2ABench라는 새로운 시험지를 만들었습니다.
시험 내용: 실제 존재하는 17 개의 소프트웨어 프로젝트 (학교 프로젝트 등) 의 '요구사항 문서 (PRD)'를 AI 에게 주고, 그걸 바탕으로 '설계도 (PlantUML)'를 그리게 했습니다.
정답지: 전문가들이 직접 그렸던 완벽한 설계도를 정답으로 준비해 두었습니다.
3. 채점 방식: 단순히 "글자"만 세지 않음
AI 가 그린 설계도를 채점할 때, 기존의 방식 (단순히 글자 일치율) 은 쓸모가 없었습니다. 그래서 3 단계 하이브리드 채점법을 개발했습니다.
구조적 정확도 (그림이 망가졌나?):
AI 가 그린 그림이 실제로 그려질 수 있는 형식인지, 그리고 정답과 비교했을 때 '벽' (컴포넌트) 이 몇 개 빠졌거나 '문' (연결선) 이 잘못 연결되었는지 수학적으로 계산합니다.
비유: "집을 지으라고 했는데 기둥이 3 개나 빠졌거나, 문이 창문 위치에 붙어있으면 감점!"
의미 채점 (LLM 이 채점함):
또 다른 AI 가 "이 설계도가 요구사항을 잘 반영했는지, 논리적인지"를 점수로 매깁니다.
비유: "고객이 원한 건 '화장실'인데 AI 가 '주방'을 그렸다면 점수 깎기."
디자인 결함 탐지 (비정상 패턴 찾기):
한 방에 모든 일을 처리하는 '신 (God Component)' 같은 거대한 벽이 생겼거나, 아무런 연결선도 없는 '고립된 방'이 있는지 확인합니다.
비유: "한 사람이 모든 일을 다 하는 건 비효율적이고, 문이 없는 방은 쓸모가 없으니 감점!"
🔍 연구 결과: AI 의 실력은 어떨까?
이 시험지를 통해 최신 AI 모델들과 '에이전트 (AI 가 여러 단계를 거치는 자동화 시스템)'들을 테스트한 결과는 다음과 같습니다.
1. "단어는 잘 찾지만, 연결은 못 함" (가장 큰 문제)
성공: AI 는 "이건 데이터베이스야, 이건 로그인 기능이야"라고 개별 부품 (벽돌) 을 찾는 능력은 매우 뛰어났습니다.
실패: 하지만 **"이 부품이 저 부품과 어떻게 연결되는지"**를 그리는 능력은 형편없었습니다.
비유: AI 는 "벽돌, 시멘트, 창문"을 다 알아서 가져오는데, **"벽돌을 시멘트로 붙여 벽을 만들고, 창문을 그 벽에 끼워야 한다"**는 연결 관계를 잊어버려, 부품들이 바닥에 널브러져 있는 상태 (단절된 설계) 를 만들어냈습니다.
2. "코드 전문 AI"가 조금 더 잘함
일반 대화형 AI 보다 코딩에 특화된 AI가 부품 간의 연결을 조금 더 잘 그렸습니다.
이유: 코딩을 많이 해봤기 때문에 "A 가 B 를 부른다"는 연결 구조를 더 잘 이해하기 때문입니다.
3. "에이전트 (자동화 팀)"는 오히려 방해가 됨
AI 하나에게 시키기보다, 여러 AI 가 팀을 이뤄 작업을 하도록 한 '에이전트' 방식은 오히려 성능을 떨어뜨리고 불안정하게 만들었습니다.
비유: "혼자서 그리는 것보다 3 명이서 그렸는데, 서로 의견 충돌이 나서 더 엉망이 된 경우"가 많았습니다.
4. 정보가 부족하면 더 엉망이 됨
요구사항 문서에서 '설계 관련 설명'을 뺀 채로 AI 에게 시키니, AI 는 **상상 (할루시네이션)**을 해서 엉뚱한 부품들을 추가하거나 연결선을 임의로 그렸습니다.
비유: "집을 지으라고 했을 때, '화장실'이 필요하다는 말만 듣고 AI 가 '수영장'까지 지어버린 것"입니다.
💡 결론 및 시사점
이 논문은 **"AI 가 소프트웨어 설계도를 그리는 것은 아직 초기 단계"**라고 말합니다.
좋아진 점: AI 는 요구사항에서 필요한 부품들을 잘 찾아냅니다.
아직 해결해야 할 점: 부품들을 어떻게 연결해서 하나의 완성된 시스템으로 만드는지 (관계 추론) 를 배우지 못했습니다.
미래: 앞으로는 AI 가 단순히 그림을 그리는 것을 넘어, **"왜 이렇게 연결해야 하는지"**를 이해하고 논리적으로 설계할 수 있도록 훈련시켜야 합니다.
한 줄 요약:
"AI 는 건축 자재 (부품) 를 잘 찾아내지만, 그 자재들을 어떻게 이어붙여 튼튼한 집을 지을지 (연결 관계) 에 대해서는 아직 초보 건축가 수준입니다."
1. 연구 배경 및 문제 제기 (Problem)
배경: 대규모 언어 모델 (LLM) 의 발전으로 소프트웨어 공학 작업 자동화 가능성이 높아졌으나, 요구사항 문서 (PRD) 를 바탕으로 소프트웨어 아키텍처 설계 (시스템 다이어그램 등) 를 생성하는 작업은 여전히 주요 병목 현상입니다.
문제점:
데이터셋 부재: 실제 PRD 와 전문가가 작성한 아키텍처 다이어그램 (PlantUML 등) 을 매칭한 전용 벤치마크가 부족합니다. 기존 벤치마크는 인공적으로 정리된 간단한 자연어 설명에 의존하거나, 코드 생성 수준에 머무르고 있습니다.
평가의 한계: 생성된 아키텍처의 정확성을 평가하는 데 기존 텍스트 기반 지표 (BLEU, ROUGE) 는 구조적 유효성을 포착하지 못하며, 'LLM-as-a-Judge' 방식은 편향과 환각 (Hallucination) 문제로 인해 복잡한 토폴로지를 평가하기에 부적합합니다.
현실적 요구사항의 복잡성: 실제 요구사항은 불완전하고 모호하며, 비기능적 요구사항과 기술적 제약이 혼재되어 있어 LLM 이 이를 구조화하기 어렵습니다.
2. 방법론 (Methodology)
저자들은 **R2ABench (Requirement-To-Architecture Benchmark)**를 제안하고, 이를 평가하기 위한 하이브리드 평가 프레임워크를 구축했습니다.
가. R2ABench 데이터셋 구성
구성: 17 개의 실제 소프트웨어 프로젝트 (9 개 Python, 8 개 Java) 를 기반으로 구성되었습니다.
데이터: 각 프로젝트는 **Product Requirements Document (PRD)**와 **전문가 검증 PlantUML 참조 코드 (Ground Truth)**로 이루어져 있습니다.
PRD 구조: 시스템 소개, 핵심 목표, 기능적 특징, 기술적 제약, 비기능적 요구사항, 아키텍처 설명 등 6 가지 섹션으로 표준화되었습니다.
실험 설계:
Full: 전체 PRD 입력.
-Arch: 아키텍처 설명 섹션 제거 (추론 능력 평가).
Min: 핵심 목표와 기능적 특징만 남김 (극단적 정보 부족 상황 평가).
나. 하이브리드 평가 프레임워크 (3 단계)
생성된 PlantUML 코드를 참조 그래프와 비교하여 다음 3 가지 층위에서 평가합니다.
구조적 그래프 지표 (Structural Graph Metrics):
구문 유효성 (SV): PlantUML 엔진이 렌더링 가능한지 확인.
의미적 유효성: 노드 F1 점수 (구성 요소 식별), 엣지 F1 점수 (관계성 정확도), 레이어 정확도.
GED-Accuracy: 그래프 편집 거리 (Graph Edit Distance) 를 정규화하여 전체 토폴로지 유사도 측정.
다차원 점수화 (Multi-dimensional Scoring):
LLM 을 심사관 (Judge) 으로 활용하여 완전성, 정확도, 합리성, 구조적 가독성을 1~5 점으로 평가.