본문 바로가기

SoftwareEngineering

UML 표기법

https://blog.naver.com/1ilsang/221104669002

 

Java 객체지향 디자인 패턴] 1. 객체지향 모델링 / UML, 클래스 다이어그램, 연관 관계, 일반화 관계, 집합 관계, 의존 관계, 실체화 관계

Java 객체지향 디자인 패턴] 1. 객체지향 모델링 / UML, 클래스 다이어그램, 연관 관계, 일반화 관계, ...

blog.naver.com

관계 A -> B

1. Dependency(의존 관계, 점선 화살표, caller -> callee): B클래스 변수가 A의 메소드의 지역변수로 A의 메소드 scop에서만 B의 객체가 유지됨
a. (가장 일반적) 한 클래스의 메소드가 다른 클래스의 객체를 인자로 받아 그 메소드를 사용한다
b. 한 클래스의 메소드가 또 다른 클래스의 객체를 반환한다.
c. 다른 클래스의 메소드가 또 다른 클래스의 객체를 반환한다. 이때 메소드를 호출하여 반환되는 객체의 메소드를 사용

2. Association(연관 관계 has-a, 실선 화살표, 알고있는 -> 알려진): B클래스의 객체가 A클래스의 클래스 변수로 A클래스 scop에서 B의 객체가 유지됨 (연관 관계의 방향 및 multiplicity)중요
a. Aggregation (집합 whole, 비어있는 마름모, 사람 ◊-> 안경 등): 관계에 있는 두 클래스의 라이프사이클이 다르다 (사람 and 안경, 모자, 신발)
    * 참조 클래스의 객체가 외부에서 생성되어 주입된다. DI
ㅠ. Composition (구성 part, 꽉찬 마름모, 사람 ♦-> 눈 등) : 관계에 있는 두 클래스의 라이프사이클이 같다 (사람 and 눈, 코, 입 , 팔, 다리)
    * 참조 클래스의 객체가 내부에서 생성되어 할당된다.

3. Extends(상속, 실선 비어있는 삼각형, 부모클래스 ◁ㅡ 자식클래스)

4. Implements(구현, 점선 비어있는 삼각형, 인터페이스 ◁---- 구현클래스)