소프트웨어 개발과 시스템 설계에서 Use Case Diagram은 요구 사항을 명확히
정의하고 사용자와 시스템간의 상호 작용을 이해하는 데 중요한 역할을 한다.
이 글에서 Use Case Diagram이 무엇인지, 왜 중요한지 파헤쳐보자.

사용자와 시스템의 기능간 관계를 시각적으로 표현한 다이어그램
시스템이 제공하는 주요 기능을 직관적으로 보여주는 역할을 하며 시스템의 요구 사항을 정의하거나 이해 관계자와의 의사소통에 유용하게 사용된다.
복잡한 시스템을 시각적으로 간단히 표현할 수 있어 개발 초기 단계에서
요구사항 분석에 매우 유용하다.
이 다이어그램의 핵심은 사용자 관점에서 시스템이 어떻게 작동하는지 이해해야 한다. 즉, 시스템 내부의 복잡한 구현 세부 사항보단 시스템이 제공하는 서비스와 이를 이용하는 사용자의 상호작용에 초점을 맞춘다. 따라서 개발자뿐만 아니라 비기술적 이해 관계자에게도 이해하기 쉬운 도구가 되었다.
또한, 이 다이어그램은 팀 내 협업과 커뮤니케이션을 향상시키는 데 큰 도움을 준다. 개발자, 디자이너, 기획자, QA 등 다양한 역할을 가진 사람들이 같은 그림을 보며 시스템의 전반적인 구조와 기능에 대해 논의할 수 있다.
따라서 프로젝트의 모든 이해 관계자와 같은 목표를 향해갈 수 있다.
시스템과 상호 작용하는 외부 주체. 이들은 사람, 외부 시스템, 또는 장치일 수 있으며 시스템의 기능을 사용하거나 영향을 받는다.
다이어그램에서는 사람 모양의 아이콘으로 표현되며 시스템 외부에 위치하고 시스템 내부와의 관계를 통해 역할이 드러난다.
시스템이 사용자에게 제공하는 특정 기능이나 작업.
타원형으로 표현되며 명확하고 간단한 이름으로 기능을 설명한다.
이는 시스템의 주요 작업을 시각적으로 구조화하여 이해를 돕는다.
Actor와 Use Case간 상호작용을 나타내는 실선.
이 선은 Actor와 어떤 Use Case를 수행하거나 시스템의 어떤 기능을 사용하는지 명확히 보여준다.
특정 Use Case간의 의존성이나 확장성을 표현하는 요소로 include와 extend를 주로 사용한다. include는 특정 Use Case가 항상 다른 Use Case를 포함할 때 사용된다. extend는 선택적으로 확장 가능한 기능을 나타낸다.
System Boundary는 시스템이 제공하는 기능의 범위를 나타낸다. 직사각형 상자로 표현되며 내부에 Use Case를 배치하고 외부에 Actor를 위치시켜 시스템과 환경 간의 경계를 명확히 구분한다.