CS

클래스 다이어그램

개발기록 2024. 6. 28. 18:43

오늘은 객체지향 프로그래밍 코딩전에 반드시 거쳐야하는 클래스 다이어그램에 대해서 알아보려고한다.

 

통상적으로 개발자들이 무언가 목표로 하는것을 개발하자고 한다면, 하기전에 항상 해당 프로그램에 대해 어떻게 만들고 어떤식으로 개발을 해야할지에 대한 방향성과 그것에 맞는 설계도를 작성하게 되는데 그중 한가지가 클래스 다이어그램이다. 그럼 이 클래스 다이어그램은 어떻게 작성하고 어떻게 읽으며, 클래스 다이어그램이란 정확히 무엇인가? 지금부터 낱낱이 파헤쳐 보자.

 

1. 클래스 다이어그램?


 

소프트웨어에서 사용되는 표준화된 범용 모델링 언어인 UML중 구조다이어그램에 해당하며, UML은 소프트웨어 집약 시스템의 시각적 모델을 만들기 위한 도안 표기법을 포함한다. 또한 객체지향 프로그래밍 소프트웨어 집약 시스템을 개발할 때 명세화, 시각화, 문서화할 때 사용한다. 간단하게 말해서 소프트웨어 시스템을 시각적으로 표현했다고 할 수 있다. 언어이지만 기본적으로 생각하는 문자형 언어가 아닌 기호와 도식을 이용하여 표현한다.

 

위 정의와 같이 객체지향 프로그래밍 소프트웨어 시스템을 개발할때 필요한 정보(클래스)를 명세화, 시각화, 문서화 할때 사용한다라고 생각하면 될것같다.

 

위 정의와 같이 클래스 다이어그램이 무엇인지에 대해 이해를 했다면, 이제 어떻게 사용할까?

 

2. 클래스 다이어그램 사용법


-. 클래스 다이어그램의 표현

클래스 다이어그램中 클래스를 표현

 

위 그림은 아래 코드를 UML의 클래스 다이어그램으로 표현한 것이다.

public class 클래스 {
	private int 필드1;
	private String 필드2;
	private double 필드3;
	
	public boolean 메소드(int a) {
		System.out.println(a);
		return false;
	}
}

 

코드와 클래스를 표현한 클래스 다이어그램 도식화 그림을 비교해보면 필드와 메소드는 물론 필드의 자료형 및 메소드의 반환값, 파라미터 또한 그림에 표현이 되어있다.  그렇다면 필드,메소드에 대한 접근제한자의 대한 정보는 무엇일까?

 

※ 필드표현부에 {readonly}가 붙으면 final을 밑줄은 static이다.

 

접근제한자의 정보는 아래와 같다.

이미지 참조 : https://gmlwjd9405.github.io/2018/07/04/class-diagram.html

 

또한 클래스만의 표현 뿐만 아니라 클래스들 끼리의 관계도 표현이 가능하다. 해당 표기는 아래 그림과 같다.

이미지 출처 : https://gmlwjd9405.github.io/2018/07/04/class-diagram.html

 

그리고 추가적으로 해당 클래스가 상속을 받고 있는지 혹은 인터페이스와 추상클래스에 대한 표현법은 아래 그림과 같다.

 

인터페이스와 추상클래스의 표현법

 

이렇게 클래스 다이어그램으로 만들고자 하는 프로그램의 설계도(클래스 다이어그램)을 개발자들이 쉽게 파악할수 있게 도식화로 표현이 가능하며, 대부분의 개발자들이 프로그램을 만들기전에 해당 표현으로 문서화하여 프로그램 개발시 서로 공유하여 참조하니 해당 표현법에 대해서는 개발자라면 클래스 다이어그램을 읽을수 있고, 작성할줄 알아야 된다고 생각한다.

'CS' 카테고리의 다른 글

Git Hub Organization 계정 만들기  (0) 2024.08.30
형상 관리란?  (0) 2024.08.29
다형성  (0) 2024.06.28
객체 vs 클래스  (0) 2024.06.21
참조변수 vs 일반변수  (0) 2024.06.21