[Basic] UML

2022. 12. 1. 13:07Programming/Basic

[Basic] UML 

 

이번에 미니 프로젝트를 진행하면서 UML 다이어그램이라는 항목의 필요성을 느끼게 되어서 학습하게 되었다. 

 

UML - Unified Modeling Language 

 

  • 통합 모델링 언어
  • 시스템적인 측면을 모델로 표현하여 시각적으로 보여주는 대표적인 모델링 언어
  • 시스템 설계자와 개발자가 응용프로그램을 이해, 협업, 개발을 용이하게 해 준다.
  •  

해당 UML을 먼저 설계를 하고 작업을 들어가면 어떤 메서드가 존재하는지 어떤 구조로 설계를 할 건지에 대해 알 수가 있고 팀원들과 머릿속에 구성하려는 프로젝트의 모양을 그려 넣고 시작할 수 있다는 장점이 존재한다.

 

UML 다이어그램 예시

 

 

UML 다이어그램의 종류와 관계 표현

 

 UML 다이어그램이 클래스 다이어그램 하나만 있는 줄 알았는데 보니까 여러 가지의 다양한 다이어그램이 존재하였다.

일단 크게는 구조와 행위로 다이어그램의 형태가 나눠진다. 

 


구조 다이어그램

행위 다이어그램

클래스 다이어그램


유스케이스 다이어그램

객체 다이어그램

액티비티 다이어그램

복합체 구조 다이어그램

스테이트 머신 다이어그램
배치 다이어그램
상호작용 

시퀸스 다이어그램
커뮤니케이션 다이어그램


컴포넌트 다이어그램

 

패키지 다이어그램

 

 


UML 다이어그램에서 관계 표현

 

연관관계 의존관계 (참조) 일반화 관계 실체화관계
연관 직접연관 확장의존 상속 Interface를 통한 구현
집합연관 합성연관 포함의존

 

분류 명칭 표현 설명
연관관계
(Association)
연관관계                              
서로 인지하는 것을 표현

직접연관관계                            
참조하는 측만 인지를 한다

즉 사용을 하는 쪽만 인지를 한다

집합연관                            
전체 부분의 삭제를 하여도 사용이 되는 부분은 사용할 수 있다

Data를 저장하는 리스트를 만들 때
리스트를 삭제해도 Data는 유지가 됨

합성연관                            
전체 부분을 삭제하면 부분도 소멸

Data를 저장하는 리스트를 만들 때
리스트를 삭제하면 사용한 Data도 삭제

의존관계
(Dependency)
확장의존
(Extend)
<<Extend>>
----------------------▷

클래스 변화가 타 클래스의 영향

           <<Extend>>
사진 파일 올리기      --------▷        글 작성

기능의 확장

포함의존
(Include)
<<Include>>
----------------------▷

클래스의 변화가 타 클래스 영향

<<Include>>
글 작성      --------▷       로그인

반드시 포함 


일반화 관계
(Generalization)
일반화 관계                            
상속을 표현하기에 서브 클래스가
부모 클래스의 속성을 물려받음

실체화 관계
(Realization)
실체화 관계 ----------------------▷
인터페이스와 구현 클래스의 관계

슈퍼 클래스가 명세해놓은 메서드들을 서브 클래스에서 구현

 


 

UML 접근 제어자 

  •  + : public
  •  -  : private
  •  # : protected

 

 

 

구조 다이어그램

 

구조 다이어그램

 

  • 시스템의 정적인 구조를 보여줌
  • 시스템의 요소에 집중하여 표현
  • 각자의 인스턴스끼리의 관계를 보여줌

 

클래스 다이어그램

예시

  • 클래스의 속성, 함수, 변수 타입으로 구성이 된 다이어그램
  • 세 부분으로 나눠 작성
    • 1 : 클래스 이름
    • 2 : 클래스가 가지고 있는 속성
    • 3 : 클래스에서 사용할 수 있는 메서드 

 

행위 다이어그램

 

행위 다이어그램

  • 구조 다이어그램이 정적인 모습에서의 관계를 보여준다면 행위 다이어그램은 동적인 모습을 보여준다
  • 프로그램과 사용자가 어떤 방식으로 동작을 하고 상호작용을 하는지 보여준다.

 

유스 케이스 다이어그램

  • 시스템과 사용자의 관계를 다이어그램으로 표현한 것
  • 사용자의 관점에서 시스템의 서비스 or 기능 및 관련 요소를 보여주는 것

위키 백과 - 유즈 케이스 다이어그램

 

'Programming > Basic' 카테고리의 다른 글

[Basic] 얕은 복사와 깊은 복사  (0) 2022.11.16
[Basic] AJAX란?  (0) 2022.10.19
[Basic] 의사코드(pseudo - code)란?  (1) 2022.09.30