UML이란? 클래스다이어그램
UML이란? 클래스다이어그램 — #정보처리기사 #개발자의도구들 #UML이란 #클래스다이어그램 #class다이어그램 24년도 1회차 정보처리기...
#정보처리기사 #개발자의도구들 #UML이란 #클래스다이어그램 #class다이어그램
24년도 1회차 정보처리기사 필기 시험대비 공부를 진행하였습니다.
\* 본글은 PC버전에 최적화 되어있습니다.
**\\ **공부방법론은 가장 첫글에 있습니다. 참고하실 분들은 참고하세요! \\ - 개발자의도구들
\\ 정보처리기사 전체 총 정리는 여기 있습니다!! \\
1과목, 소프트웨어 설계
view
UML이란?
Unified Modeling Language의 약자로 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이뤄지도록 하는 객체지향 모델링 언어입니다.
-> 개인적으로 UML과 아키텍쳐 패턴, 디자인 패턴 등이 너무 헷갈리는데 개념을 잘 잡고 가는것이 중요합니다!
앞에서 언급하였듯이 "언어" 이기 때문에 다양한 형식(다이어그램)으로 고객과 소통할 수 있습니다. 소통하는 방식이 바로 우리가 공부할 다이어그램들입니다.
다이어그램을 표현하는 방식에따라 정적 모델링, 동적 모델링으로 분류됩니다. 정적 모델링은 구조적 다이어그램이라고 하고, 동적 모델링은 행위 다이어그램이라고 표현합니다.
관계의 종류
UML의 다이어그램에 사용되는 것은 기본적으로 사물(객체)와 관계들입니다.
객체는 관계에 따라 여러종류로 나물 수 있습니다.
연관(Association)관계: 연관 관계는 2개 이상의 사물이 서로 관련되어 있음을 표현한다.
집합(Aggregation)관계: 집합 관계는 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현한다.
포함(Composition)관계: 포함 관계는 집합 관계의 특수한 형태로, 부모 요소가 자식 요소에게 영향을 미치는 관계를 표현한다.
일반화(Generalization)관계: 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현한다.
의존(Dependency)관계: 의존 관계는 연관 관계와 같이 서로의 연관은 있지만, 필요에 의해 서로에게 영향을 주는 짧은 시간동안에만 연관을 유지한다.
- 일반적으로 한 클래스가 다른 클래스의 오퍼레이션 매개변수로 사용된다.
실체화(Realization)관계: 실체화 관계는 사물이 할 수 있거나 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현한다.
다이어그램 - 구조적 다이어그램
관계까지 알아봤으니 사물들간의 관계를 도형으로 표현할 차례입니다. 객체들을 도형이나 기호로 표현한 것을 다이어그램이라고 부릅니다.
정적 모델링에서는 주로 구조적 다이어그램을, 동적 모델링에서는 다음글에 다룰 행위 다이어 그램을 사용하게 됩니다.
클래스 다이어그램
클래스와 클래스가 가지는 속성, 클래스의 속성과 오퍼레이션, 제약조건, 클래스 사이의 관계를 표현합니다.
구성요소
클래스: 클래스는 각 객체가 갖는 속성과 오퍼레이션을 표현, 일반적으로 3개의 구획으로 나눠서 이름, 속성, 오퍼레이션을 표기합니다.
속성은 클래스의 상태나 정보를 표현하며 오퍼레이션은 동작, 함수라고 보시면됩니다.
제약조건: 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야할 조건이 있다면 이를 적습니다.
관계: 관계는 클래스와 클래스 사이의 연관성을 표현합니다. 관계는 위에서 다룬 관계들을 참고하시면 되겠습니다.
객체 다이어그램
클래스에 속한사물들을 객체라고 부릅니다. 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현합니다. 럼바우 객체지향 분석 기법에서 객체 모델링에 사용됩니다.
컴포넌트 다이어그램
실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현합니다.
구현단계에서 사용되는 다이어그램입니다.
배치 다이어그램
결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현합니다.
노드와 의사소통(통신) 결로로 표현합니다.
구현 단계에서 사용됩니다.
복합체 구조 다이어그램
클래스나 컴포넌트가 복합구조를 갖는 경우 그 내부 구조를 표현합니다.
패키지 다이어그램
유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현합니다.
