PromleeBlog
sitemap
aboutMe

posting thumbnail
시스템 큰 그림 그리기 컨텍스트와 활동 다이어그램 활용법
Drawing the Big Picture System Context and Activity Diagrams

📅

🚀

들어가기 전에 🔗

지금까지 우리는 사용자의 요구사항을 파악하고 정리하는 다양한 방법들에 대해 알아보았습니다.
이렇게 정리된 요구사항들을 바탕으로 실제 시스템을 구축하기 전에, 우리는 만들고자 하는 시스템이
어떤 모습
을 하고 있고,
어떻게 작동
할 것인지에 대한 큰 그림, 즉
모델
을 그려보는 과정이 필요합니다.

시스템 모델링은 우리가 개발할 시스템의 전체적인 구조와 동작 방식을 시각적으로 표현하여 이해를 돕고, 잠재적인 문제점을 미리 발견할 수 있게 해줍니다.
오늘은 이러한 시스템 모델링 기법 중에서 시스템의 경계를 명확히 하는
컨텍스트 다이어그램
과 시스템 내부 또는 사용자 작업의 흐름을 보여주는
UML 활동 다이어그램
에 대해 함께 배워보겠습니다.

🚀

시스템 모델링이란 무엇이며 왜 필요할까요? 🔗

시스템 모델링은 개발하려는 시스템의 다양한 측면(예: 구조, 행위, 데이터 흐름 등)을 추상화하여 표현하는 과정입니다.
복잡한 시스템을 단순화하고 시각화함으로써 시스템에 대한 이해를 높이고, 이해관계자 간의 의사소통을 원활하게 하며, 시스템 설계를 위한 기초를 마련하는 데 목적이 있습니다.
시스템 모델링의 필요성
시스템 모델링의 필요성
시스템 모델링의 중요성
오늘은 다양한 시스템 모델링 기법 중에서도 시스템의 범위와 흐름을 이해하는 데 유용한 두 가지 다이어그램, 컨텍스트 다이어그램과 활동 다이어그램을 살펴보겠습니다.

🚀

컨텍스트 다이어그램 (Context Diagram) 🔗

컨텍스트 다이어그램은
데이터 흐름도(Data Flow Diagram, DFD)
의 가장 상위 레벨(Level 0 DFD라고도 함) 다이어그램으로, 개발하려는
시스템 전체를 단일 프로세스
로 간주하고, 이 시스템과 상호작용하는
외부 엔티티(External Entities)
및 그들 사이의
주요 데이터 흐름(Data Flows)
을 보여줍니다.
즉, "우리 시스템이 무엇이고, 누구와 어떤 데이터를 주고받는가?"에 대한 가장 간결하고 명확한 그림입니다.
컨텍스트 다이어그램
컨텍스트 다이어그램
컨텍스트 다이어그램의 구성 요소


컨텍스트 다이어그램 작성 방법 및 예시
  1. 시스템 식별
    개발하려는 시스템의 이름과 주요 목적을 정의합니다. (예: 온라인 도서 주문 시스템)
  2. 외부 엔티티 식별
    시스템과 상호작용하는 모든 외부 요소를 찾아냅니다. (예: 회원, 관리자, 배송 업체, 결제 시스템, 도서 정보 공급처)
  3. 데이터 흐름 정의
    각 외부 엔티티가 시스템과 어떤 데이터를 주고받는지 식별합니다. 입력 데이터와 출력 데이터를 모두 고려합니다.


컨텍스트 다이어그램의 장점
컨텍스트 다이어그램은 프로젝트 초기에 시스템의 범위를 설정하고 모든 이해관계자가 동일한 이해를 갖도록 하는 데 매우 유용합니다.

🚀

활동 다이어그램 (Activity Diagram): 작업 흐름과 조건 흐름 표현하기 🔗

UML 활동 다이어그램은 시스템 내에서 특정 작업이나 프로세스가 수행되는
흐름
을 시각적으로 표현하는 데 사용됩니다.
순서도의 확장된 형태로, 순차적인 활동뿐만 아니라 조건에 따른 분기(Decision), 병렬 처리(Parallel activities), 반복(Loop) 등 복잡한 제어 흐름을 모델링할 수 있습니다.
주로 다음과 같은 목적에 활용됩니다.
활동 다이어그램
활동 다이어그램
활동 다이어그램의 주요 구성 요소


활동 다이어그램 작성 예시: "온라인 강의 수강 신청"
  1. (시작)
  2. 수강생이 강의 목록을 조회한다.
  3. 수강생이 원하는 강의를 선택한다.
  4. (결정)
    이미 수강 중인 강의인가?
    • [예] → "이미 수강 중인 강의입니다" 알림 표시 →
      (종료)
    • [아니요] → 수강 신청 페이지로 이동한다.
  5. 수강생이 수강 신청 정보를 확인하고 '신청하기' 버튼을 클릭한다.
  6. (결정)
    수강 인원이 마감되었는가?
    • [예] → "수강 인원이 마감되었습니다" 알림 표시 →
      (종료)
    • [아니요] → 결제 수단을 선택한다.
  7. (병렬 처리 시작 - 포크)
    • (활동 1) 결제를 진행한다. (결제 시스템 연동)
    • (활동 2) 수강생 정보를 강의 관리 시스템에 등록한다.
  8. (병렬 처리 종료 - 조인)
    (결제 성공 및 수강생 정보 등록 완료 후)
  9. 수강생에게 수강 신청 완료 알림을 표시한다.
  10. 수강 확인 이메일을 발송한다.
  11. (종료)


활동 다이어그램의 장점

🚀

모델링 도구 추천 🔗

이러한 다이어그램들을 손으로 그릴 수도 있지만, 더 효율적이고 전문적으로 작성하기 위해서는 모델링 도구를 사용하는 것이 좋습니다.
자신의 필요와 환경에 맞는 도구를 선택하여 꾸준히 사용하다 보면 모델링 능력을 향상시키는 데 큰 도움이 될 것입니다.

🚀

결론 🔗

오늘은 시스템의 큰 그림을 그리고 내부의 흐름을 파악하는 데 유용한 시스템 모델링 기법 중
컨텍스트 다이어그램
UML 활동 다이어그램
에 대해 알아보았습니
이러한 모델링 도구들을 통해 우리는 복잡한 시스템을 더 잘 이해하고, 효과적으로 설계하며, 다른 사람들과 명확하게 소통할 수 있습니다.
다음 시간에는 프로젝트 초기에 전체 시스템의 기능을 구조화하고, 어떤 기능을 먼저 개발할지 우선순위를 정하는 방법, 즉
설계 전 준비사항: 기능 목록과 우선순위 설정
에 대해 알아보겠습니다.

참고 🔗