6. UML(2) - 클래스, 순차, 통신, 활동, 상태, 컴포넌트 다이어그램

2025. 4. 1. 19:02
반응형

소프트웨어 개발을 시작할 때, 가장 먼저 시스템 도메인을 정의하고 시나리오를 작성해야 한다. 이후 요구사항을 분석한 뒤, 본격적인 개발에 앞서 설계를 진행하는데, 이를 UML(Unified Modeling Language)을 활용하여 시각화한다.

 

UML 작성 과정에서 가장 먼저 수행해야 할 작업은 유스케이스 다이어그램을 작성하는 것이다. 이를 통해 시스템의 주요 기능과 사용자 간의 상호작용을 정의한 후, 클래스 다이어그램을 설계한다. 이후, 객체 간의 동적인 상호작용을 모델링하기

위해 인터랙션 다이어그램을 작성하는데, 여기에는 순차 다이어그램과 통신 다이어그램이 포함된다.

 

실제 소프트웨어 개발 과정에서는 모든 UML 다이어그램을 작성할 필요는 없으며, 프로젝트의 특성과 필요에 따라 핵심적인 부분만 선택하여 활용하는 것이 중요하다.

 

유스케이스 다이어그램은 이전 포스터에서 적었기에 이번에는 이외 나머지 다이어그램을 포스팅해보도록 하겠다.

 

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

 

일단은 클래스 다이어그램은 이런 방식으로 쓰여진다. 만들 기능들에 대해서 이렇게 적는다. 그리고 앞에 표시되어 있는 것은 위의 표의 내용과 동일하다. 이외에도 클래스 다이어그램은 여러 방식으로도 쓰여질 수 있다.

 

 

클래스는 특정한 방식으로 구성된다. UML 다이어그램에서 마름모(◇)는 포함 관계를 나타내며, 색상에 따라 결합 강도가 다르다. 하얀 마름모(⚪)는 약한 결합(aggregation)을 의미하고, 검은 마름모(⚫)는 강한 결합(composition)을 의미한다. 또한, '' 기호는 다수의 객체(여러 개의 인스턴스)를 나타내며, '1..' 표기법은 최소 1개 이상의 인스턴스가 존재함을 의미한다. '1' 표기법은 해당 객체가 정확히 1개의 인스턴스와 연결됨을 의미한다.

 

2. 순차 다이어그램

 

순차 다이어그램의 경우에는 상호작용 다이어그램에 한 부류로 통신 다이어그램의 형제격이다. 이 다이어그램은 위와 같은 방법으로 객체명을 쓰는데 특히 "시간의 흐름"을 표현하는 다이어그램이라고 생각하면된다. 이는 다음과 같은 다이어그램을 통해 표현한다.

 

* 객체 생명선

 

객체의 생명을 표현한 다이어그램이다. 여기서 X는 객체가 소명하는 시점이다.

 

* 메시지

 

이는 순차 다이어그램에서 동기 메시지의 의미를 담고 있으며 요청의 내용을 포함하고 있다. 네트워크에서 TCP의 방법과 관련이 있다.

 

이건 비동기 메시지의 의미를 담고 있으며 요청이 아닌 일반적인 전달을 의미한다.

 

 

이건 재귀 메시지의 의미를 가지고 있다. 재귀 호출 시 많이 사용하는 그림이다.

 

 

이건 답신 메시지의 의미를 가지고 있다.

 

* 전체적인 구상도

 

위의 내용을 토대로 만들면 예로 들어 이렇게 표현할 수 있다. 여기서 :시스템 이 표시에서 ":"앞에 부분이 빠진 건데 이 부분을 생략한 것이다.

 

3. 통신 다이어그램

 

아까전과 비슷하지만 이것은 시간을 표현한 것이 아니라 상호작용 흐름을 표현한다. 

 

 

다 만들면 이와 같이 표현된다.

 

4. 활동 다이어그램

 

이와 같은 다이어그램이다. 마치 이것은 flow chart로 생각하면 좋다. 이외에도 이렇게 그리기도 한다.

 

 

 

신호를 적는 방법은 위와 같다. 

 

자 이렇게 그리면 된다. 즉, flow chart와 다른점이 거의 없다.

 

5. 상태 다이어그램

 

이정도 한다고만 생각하면 된다. 

 

6. 컴포넌트 다이어그램

컴포넌트 다이어그램은 시스템의 구현 관점에서 정적 모델링을 수행할 때 사용된다. 이 다이어그램은 시스템을 구성하는 실행 모듈들 간의 관계와 종속성을 시각적으로 나타내어, 각 모듈들이 어떻게 상호작용하는지 명확히 보여준다.

 

컴포넌트 다이어그램은 사용자가 시스템의 논리적 및 물리적 구조를 이해할 수 있도록 돕는다. 이 다이어그램을 통해 시스템의 다양한 구성 요소들 간의 연결 및 상호작용을 직관적으로 파악할 수 있다.

 

* 컴포넌트

 

컴포넌트는 시스템의 구성 요소로, 실행 가능한 모듈이나 서비스 등을 나타낸다. 이러한 컴포넌트들은 각각 독립적인 기능을 수행하며, 다른 컴포넌트와의 관계를 통해 시스템을 형성한다.

 

* 인터페이스

 

인터페이스는 컴포넌트 간의 상호작용을 정의하는 규약이다. 각 컴포넌트는 외부와의 통신을 위해 인터페이스를 통해 필요한 기능이나 서비스를 제공하거나 요청한다. 인터페이스를 통해 시스템 내의 컴포넌트들이 서로 원활하게 협력할 수 있다.

 

* 의존 관계

 

의존관계인 경우에는 이렇게 표현한다. 점선은 참조와 비슷한 의미인데 의존 관계를 이야기한다.

 

 

결론적으로 전체적으로 컴포넌트 다이어그램은 이렇게 표현할 수 있다. 

 

7. 배치 다이어그램

 

배치 다이어그램은 시스템의 하드웨어 구성과 그 구성 요소들이 어떻게 배치되어 있는지를 시각적으로 나타내는 다이어그램이다.

 

이 다이어그램은 하드웨어 자원 간의 관계를 명확하게 보여주며, 시스템의 물리적 구조와 각 하드웨어 요소들 간의 상호작용을 이해하는 데 도움을 준다. 배치 다이어그램은 주로 시스템의 물리적인 배치나 인프라를 설계할 때 유용하게 사용된다.

 

그러나 이러한 다이어그램은 필수적으로 사용하는 것이 아닌 필수적인 것만 사용하여 하는 것이 좋다. 


출처: 쉽게 배우는 소프트웨어 공학

 

쉽게 배우는 소프트웨어 공학 - 예스24

소설처럼 술술 익히는 소프트웨어 공학중요하지만 다소 뜬구름 잡는 얘기 같았던 소프트웨어 공학 이론을 핵심만 추려 명쾌하게 정리해준다. 일상에서 흔히 접할 수 있는 예시를 통해 소프트웨

www.yes24.com

 

반응형

BELATED ARTICLES

more