UML을 이용한 모델링
클래스 다이어그램의 구성요소
클래스
공통의 속성, 메서드(오퍼레이션), 관계, 의미를 공유하는 객체 집합에 대한 기술
클래스의 속성
- 클래스가 가진 데이터
- 클래스의 구조적 특성에 이름을 붙인 것으로, 인스턴스가 보유할 수 있는 값을 범위를 기술
클래스의 메서드
-
클래스가 수행할 수 있는 작업을 정의
-
오퍼레이션
-
이름, 타입, 매개변수들과 연관된 행위를 호출할 때 제약사항이 요구되는데, 이 제약사항을 명세하는 클래스의 행위적 특성
-
public
-- 부호: +
-- 자신의 속성이나 동작을 외부에 공개하는 접근 제어
-
private
-- 부호: -
-- 상속된 파생 클래스만 액세스할 수 있는 접근 제어
-
protected
-- 부호: #
-- 구조체의 멤버 함수만 접근할 수 있으며 외부에서 액세스할 수 없는 접근 제어
클래스는 객체를 생성할 수 있는 구조와 정보를 갖는 틀
객체는 클래스의 인스턴스
객체 생성 다이어그램
클래스 정의 >> 메인 메서드 실행 >> 객체 생성 >> 실행
객체와 클래스 사이의 관계와 표현
연관 관계
멤버 변수로 참조
- 한 클래스가 다른 클래스의 인스턴스를 필드로 가지고 있는 경우
- A는 B를 가진다(has-a)관계
의존 관계
메서드로 참조
- 한 클래스의 메서드가 다른 클래스의 객체를 일시적으로 사용
- A는 B를 사용한다(uses-a)관계
- 짧은 생명주기, 메서드 내에서만 사용하는 것이 일반적
- 메서드 호출이 완료되면 종료
연관 관계와 의존 관계의 차이
연관 관계
의존 관계
연관 관계 모델링
- 단방향 연관 관계 모델링
- 양방향 연관 관계 모델링
집합 관계
- 하나의 객체가 독립적인 객체 여러 개로 구성되는 has a 관계
- 부분이 전체에 속하지만 독립적 존재 가능
- 학생과 학교의 관계
- 차가 없어진다고해서 엔진, 휠, 샤시가 없어지진 않음
복합 관계
- 종속적인 관계
- 전체 객체의 생명주기와 부분 객체의 생명주기가 연결됨
- 사람과 심장의 관계
집합 관계와 복합 관계 모델링
스마트폰 시스템
- 집합 관계 (충전기(스마트폰이 없어도 독립적으로 존재 가능))
- 복합 관계 (메인보드, 스피커, 내부 부품들)
실체화 관계
추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드를 구현할 때 사용하는 관계
- UML에서는 점선 화살표와 빈 삼각형으로 표현
- 화살표는 인터페이스나 추상 클래스를 향함
순차 다이어그램의 구성 요소
순차 다이어그램
객체 간의 동적 상호작용을 시간 개념을 중심으로
모델링하는 UML다이어그램
주요 구성 요소
- 객체
- 생명선 (객체의 존재 기간)
- 활성화 (객체가 작업을 수행중임을 나타내는 사각형)
- 메시지 (객체 간 통신을 나타내는 화살표)
- 반환 메시지 (메서드 호출의 결과 반환)
- 자기 호출 (객체가 자신의 메서드 호출)
- 희귀 메시지 (같은 객체에 대한 함수(메서드)를 호출)
상호작용 다이어그램
순차 다이어그램
객체들 사이의 이동 경로를 시간 흐름으로 표현, 시간 순서가 중요할 때 적합
순자 다이어그램의 표현
수직 방향이 시간의 흐름을 나타내는 특성
순차 다이어그램의 메시지 표현
- 호출 메시지(동기 메시지)
- 답신 메시지
- 비동기 메시지
통신 다이어그램
메시지(데이터)의 흐름과 객체 간 관계를 중점적으로 표현, 메시지 흐름을 보려고 할 때 적합함
의존 관계의 스테레오타입
access
한 패키지의 요소가 다른 패키지의 요소를 비공개적으로 사용할 수 있도록 허용하지만, 그 요소 자체를 가져오진 않는다.
import
한 패키지의 요소가 다른 패키지의 요소에 공개적으로 접근할 수 있도록 허용, export하는 것이 가능