관계 정리
의존 관계와 연관 관계의 차이 : 의존 관계는 한 클래스가 다른 클래스의 객체를 사용할때 관계가 형성되며, 관계의 지속 기간이 매우 짧다.
연관 관계는 한 클래스가 다른 클래스의 기능을 사용할 때 관계가 형성되며, 관계가 오랫동안 유지된다.
일반화 관계 : 자식 객체는 부모 객체의 속성과 오퍼레이션을 상속한다.( = 상속 관계)
실체화 관계 : 인터페이스를 상속 받아 실행을 구체화한다.
클래스 다이어그램을 예제를 통해 설명할 수 있어야함
: 클래스 다이어그램은 동일한 속성, 오퍼레이션, 의미, 관계를 공유하는 객체를 기술하는 다이어그램으로, 시스템을 구성하는 요소들을 문서화한다.
| BankAccount → 클래스 이름 (클래스는 객체를 캡슐화) |
|---|
| - accountNumber → 객체의 속성 부분 |
⇒ 객체의 속성 부분과 오퍼레이션 부분을 하나로 모아 단위화 및 정보 은닉
다이어그램의 3가지 종류
컴포넌트 다이어그램 (C&C view)
: 실행 시점에 컴포넌트간의 상호작용을 표현
패키지 다이어그램 (모듈 view)
: 클래스들을 표현하는 구성요소들을 그룹화하여 패키지를 구성하고, 패키지들간의 관계를 표현
배포 다이어그램 (할당 view)
: 실행 노드와 그 노드에 있는 컴포넌트들의 구성을 표현
스테레오 타입
<<import>> vs <<access>>
→ A <<import>> B <<import>> C의 경우 A 패키지가 C 패키지를 사용할 수 있지만, A <<access>> B <<access>> C의 경우 A 패키지가 C 패키지를 사용할 수 없다. A 패키지는 B패키지만, B패키지는 C 패키지만 사용할 수 있다.
<<use>>
: A의 구현에 B가 사용된다는 사실만 명시하고, 어떻게 사용되는지는 명시하지 않는다.
<<framework>>
: 주로 패턴으로 구성된 재사용이 가능한 요소를 포함한 패키지이다.
<<system>>
: 전체 시스템을 나타내는 패키지이다.
<<sybsystem>>
: 전체 시스템의 독립된 일부분을 나타내는 패키지이다.
컴포넌트와 모듈의 차이
: 컴포넌트는 런타임에 독립적으로 배포되고 실행되는 단위로, 시스템을 구성하는 물리적인 단위를 의미한다. 모듈은 설계 시점에 코드를 구조화하는 방법에 대한 개념으로, 수정을 통해 재사용할 수 있는 프로그램 덩어리를 의미한다.