정확하고 포괄적인 소프트웨어 명세는 소프트웨어 시스템의 정확성, 신뢰성, 품질을 보장하는 데 필수적이다. 일반적인 소프트웨어 명세는 대상 함수의 입력 파라미터 제약 조건과 예상 동작 또는 출력 값을 설명하는 사전 조건 (pre-condition) 및 사후 조건 (post- condition)을 포함한다. 이러한 명세는 효과적인 테스트 케이스와 테스트 오라클 (oracle) 을 생성하고, 비정상 동작 식별을 위해 자주 요구된다 [1-4]. 이러한 방법론은 소프트웨어 개발 과정에서 발생할 수 있는 오류를 사전에 방지하고, 소프트웨어의 전체적인 품질을 향상시키는 데 기여한다.소프트웨어 공학 학계에서는 소프트웨어 텍스트(예: 문서나 주석)에서 명세를 자동으로 추출하는 많은 접근 방식을 제안해왔다. 이러한 접근 방식에는 규칙 기반 방법[1, 5-6], 기계 학습(ML) 기반 방법[7-8], 검색 기반 방법[9] 등이 포함된다. 예를 들어, Jdoctor [5]는 패턴, 어휘, 의미 매칭을 활용하여 코드 주석을 기계가 읽을 수 있는 사전/사후 조건 명세로 변환하여 테스트 생성을 자동화한다. 이를 통해 잘못된 경고를 줄이고 더 많은 결함을 발견할 수 있었다. 그러나 대부분의 기존 작업은 특정 도메인에 특화되어 있으며, 휴리스틱(heuristics) [5,6]이나 대량의 수작업으로 주석화된 데이터(annotated data) [1,9] 에 의존한다. 이러한 의존성은 명세 자동 추출의 접근 방식을 다른 도메인에 일반화하는 데 어려움을 초래한다.대규모 언어 모델(Large Language Model, LLM)이 등장하면서, 방대한 양의 문서와 소스 코드를 사전 학습하여 코드 생성, 프로그램 수리, 추론 등 다양한 소프트웨어 공학 작업에 적용되고 있다. 이러한 모델들은 전통적인 접근 방식과 비교할 때 꽤 경쟁력 있는 성능을 보여주고 있다. 소프트웨어 명세 추출이 주로 소프트웨어 텍스트(예: 주석이나 문서)를 분석하고 추출하며, 자연어를 명세로 변환하는 과정을 포함하기 때문에, 다음 질문이 자연스럽게 제기된다: LLM이 문서로부터 소프트웨어 명세를 생성하는 데 효과적인가?위 두 가지 질문에 답하기 위해 본 원고에서는 LLM의 소프트웨어 명세 제작 능력을 규칙 기반 방법등의 기존 접근 방식과 비교하여 평가하는 연구를 소개한다. 즉, 소프트웨어 명세 추출에서 레이블이 지정된 데이터의 부족으로 인해, 퓨샷학습 (Few Shot Learning) 기법 [10] 을 사용하여 제한된 라벨링 데이터 수로 효과를 극대화한다.