본문 바로가기
IT/CS

[CS] SW 시각화 도구 - UML 다이어그램, 플로우 차트, 마인드 맵

by 신림쥐 2024. 6. 14.
728x90
반응형
 

 

     


    개요

    프로젝트를 관리하면서 코드나 텍스트보다 더 쉽게 이해하기 위해 이미지로 표현해야할 때가 있다.

    혼자 보는 문서라면 원하는 도형과 화살표를 가지고 만들어도 괜찮다. 하지만 다른 사람과 공유하고 싶다면 

    기존에 만들어진 정의와 규칙를 지키는 것이 좋다.

     

    사실 이러한 점을 인지하고 있어도 비슷비슷해보이는 시각화 도구들은 헷갈린다. 그러다 오늘 아무도 이해하지 못하는 문서를 만들었다.

    그리고 훌륭한 공학자들이 과학적으로 만든 규칙들은 다 의미가 있다는 것을 오늘 다시 인지하게 되었다.

     

    이번 기회를 통해 다시한번 시각화 기법들을 정리하게 되었다. 이 포스팅은 시각화 기법과 해당 기법을 사용하는 목적, 상세 종류과 규칙들을 정리하는 포스팅이다.

     

    지금까지 들어 본 기법들
    라이프사이클 다이어그램
    액티비티 유즈 다이어그램
    블록 다이어그램
    컴포넌트 다이어그램
    시퀀스 다이어그램
    유저 플로우차트
    테스크 플로우차트
    시스템 플로우차트
    마인드맵

     

     

    UML (Unified Modeling Language: 통합 모델링 언어)

    • 소프트웨어 공학에서 시스템을 모델로 표현하는데 사용되는 표준화된 범용 모델링 언어
    • 소프트웨어 아키텍처를 간소화하기 위한 업계 표준이다.

     

    UML 특징

    • 통합적: 방법론을 기반으로 한 표준화된 기법 제공
    • 시각적: 풍부한 시각적 표현 모델 제공
    • 독립적: 시스템의 종류나 규모에 관계 없이 적용 가능

     

    UML 구성요소

    • 사물(Things), 관계(Relationships), 다이어그램(Diagrams)

     

    1. 사물(Things)

    • 구조 (Structural) : 모델의 정적인 부분들을 정의. 물리적, 개념적 요소
    • 행동 (Behavioral) : UML모델의 동적인 부분
    • 그룹화 (Grouping) : UML모델의 요소들을 그룹화
    • 주석 (Annotational) : UML모델을 설명

     

    2. 관계(Relationships)

    구분 표현 방식 설명
    연관 관계 ────> 객체간 개념적으로 연관
    의존 관계 - - - - - -> 객체 변경 시 관계된 다른 객체도 변경
    집합 관계 ────◇ 전체와 부분인 연관 관계
    포함 관계 ────◆ 전체 소멸 시 부분도 소멸되는 집합 연관 관계
    일반화 관계 ────▷ 일반화된 개념과 구체화된 객체의 관계
    실체화 관계 - - - - - -▷ 인터페이스와 그것을 실체로 구현한 객체의 관계

     

     

    3. 다이어그램(Diagrams)

    • 구조 다이어그램
    • 행위 다이어그램

     

     

    UML 다이어그램 유형

    구조 다이어그램(Structure  Diagram)

    • 정적 다이어그램, 정적 유형이라고도 한다. 소프트웨어 아키텍처에 대한 다양한 해석을 나타낸다.

    1. 클래스 다이어그램(Class Diagram)

    클래스 다이어그램은 가장 일반적인 UML 다이어그램입니다. 컴포넌트를 다양한 주요 클래스, 메서드 및 속성으로 분류합니다. 이러한 요소 간의 관계가 핵심이며 클래스 다이어그램을 독특하게 만드는 부분이기도 합니다.

    2. 객체 다이어그램(Object  Diagram)

    객체 UML 다이어그램은 함수의 특정 지점에서 정적 소프트웨어 아키텍처의 상태를 표시합니다.

    3. 복합 구조 다이어그램(Complex Structure Diagram)

    복합 구조 다이어그램은 다양한 클래스의 내부 구조를 보여줍니다. 

     

    4. 배포 다이어그램(Deployment Diagram)

     

    5. 컴포넌트 다이어그램(Component Diagram) / 구성 요소 다이어그램

    소프트웨어 시스템의 다양한 구성 요소 간의 구조적 연결을 보여줍니다. 또한 소프트웨어 아키텍처의 인터페이스와 커넥터도 보여줍니다.

    6. 패키지 다이어그램(Package Diagram)

    문서, 클래스 및 기타 패키지가 포함하여 파일 폴더로 표시하여 패키지는 관련 요소의 그룹을 보여준다. 

     

    7. 프로필 다이어그램

    UML 2에 도입된 비교적 새로운 하위 유형이다. 도메인으로 확장하기 위한 일반적인 메커니즘을 나타낸다.

     

     

    728x90

     

     

    행위 다이어그램(Behavior Diagram)

    • 동적 다이어그램이라고 한다. 소프트웨어 아키텍처의 상태를 보여준다.

    8. 활동 다이어그램(Activity Diagram)

    이 UML 모델은 소프트웨어 시스템 내의 워크플로우를 보여줍니다. 

     

    9. 상태 머신 다이어그램(State Machine Diagram)

    이 모드는 주어진 작업 시점의 다양한 상태의 오브젝트를 나타냅니다. 유한 상태 전환을 표시하는 것이 중요합니다.

    10. 유스케이스 다이어그램(Use Case Diagram)

    사용 사례 및 액터(사용자)와 관련된 시스템 활동의 전체 그림을 나타냅니다. 배우의 영향을 받아 달성한 다양한 기능을 보여줍니다.

    11. 상호작용 다이어그램(Interaction Diagram)

    활동 다이어그램과 비슷하지만 더 큰 규모를 나타냅니다. 동적 시스템의 일련의 상호 작용 다이어그램을 나타냅니다.

    12. 커뮤니케이션 다이어그램(Communication Diagram)

    소프트웨어 시스템에서 개체 간에 전달되는 메시지에 중점을 둡니다.

    13. 시퀀스 다이어그램(Sequence Diagram)

    소프트웨어 계층 구조에서 서로 다른 개체 간의 상호 작용을 표시합니다. 화살표는 서로 다른 프로세스 간의 상호 작용을 나타내는 데 사용됩니다.

    14. 타이밍 다이어그램

    특정 시간대에 차트에 표시된 개체 동작을 나타냅니다.

     

     

    반응형

     

    플로우차트 (Flowchart)

      • 순서도, 흐름도 라고도 한다.
      • 프로세스 또는 워크플로를 시각적으로 표현한 것
      • 국제표준화기구(ISO, 1965년 10월 SC7 총회)에서 표준안으로 결의된 기호를 사용한다.

     

    플로우차트 특징

    • 상 -> 하, 좌 -> 우 로 순서가 진행된다.
    • 도식화된 기호를 이용하므로 다른 사람도 이해하기 쉽다.

     

    플로우차트 기호

     

    플로우차트 유형

    1. 사용자 순서도

    사용자의 행동을 흐름대로 도식화하여 표현한 것

     

    2. 시스템 순서도

    어떤 작업을 하는지 알려주는 순서도로 자료가 정보로 변환되는 과정을 컴퓨터가 처리하는 과정, 데이터의 흐름을 중심으로 도식화 한 것

    3. 프로그램 순서도

    프로그램을 작성할 때 일반적으로 쓰는 순서도

    • 개략 순서도
    • 상세 순서도

     

     

     

    UML, 플로우차트 차이

    • 시각적으로 표현하는 도구라는 공통점이 있다.
      다이어그램 (Diagram) 플로우차트 (Flowchart)
    목적 다양한 정보를 시각적으로 표현 프로세스나 절차를 단계별로 시각적으로 표현
    사용 예시 데이터 구조, 조직 구조, 네트워크 구조 등 업무 흐름, 알고리즘, 제조 공정 등
    표현 방식 구조나 관계를 다양한 방식으로 특별한 규칙 없이 표현 표준화된 도형과 규칙 사용하여 절차의 순서와 흐름을 일관되게 표현

     

     

    마인드맵 (Mind Map)

    • 중심 주제에서 시작해 관련 아이디어나 개념을 방사형으로 확장해 나가는 형태의 시각적 도구입니다.
    • 창의적 사고를 촉진하고 아이디어를 조직하는 데 유용합니다.

     

     

    마무리

    • 특정 다이어그램들은 플로우차트와 비슷하게 생겼다. 예를 들면 액티비티 다이어그램
    • UML이 가장 기본적인 SW 모델링 방법이며, 개발 알고리즘이나 프로세스 이해를 위해 플로우차트를 작성하는거 같다.
    • 헷갈리는 경우에는 다이어그램으로 작성해보자!

     


    •  

     

    728x90
    반응형