다양한 기록

클래스 다이어그램 본문

소프트웨어공학

클래스 다이어그램

라구넹 2024. 10. 26. 20:58

연관 관계

두 개 이상의 클래스 간 관련성을 뜻함

메시지 전달의 통로 역할 .. 다른 객체에게 메시지를 전달함으로써 해당 객체의 기능 이용

방향성 지정 가능

 

연관 관계의 다중성


집합/포함 관계

검은색 다이아: 포함

흰색 다이아: 집합

 

- 집합 관계에서는 객체가 포함이 될 수도 있고 아닐 수도 있음

- 포함 관계에서는 객체가 반드시 포함되어야 함

- 집합 관계에서는 부분 객체가 다수의 전체 객체에 의해 공유

- 포함 관계에서는 부분 객체가 오직 하나의 전체 객체에 소속- 반드시 has-a 관계 성립


일반화 관계

- 많은 클래스 간의 일반화 관계를 전체적으로 정의한 것을 일반화 계층 구조라 함

- 하위 클래스가 상위 클래스의 모든 특성을 보유함

- 물려받은 속성과 연산을 특별히 표시하지 않음

- 추상 클래스는 객체를 생성할 수 없는 클래스, 이탤릭으로 표현

- 일반화 관계는 다형성을 가능하게 함

- 상위 클래스의 모둔 맴버는 모든 하위 클래스에게 의미가 있어야 함

- Is-a 관계

 

상위 클래스와 하위 클래스 간 의미적 차이는 적절해야 함

형제 클래스들은 동등한 수준의 개념을 의미해야 함

 

추상 클래스와 인터페이스의 차이

- 인터페이스는 제공될 기능에 대한 명세

- 인터페이스에 기술된 기능은 클래스나 컴포넌트에 의해 구현됨

구분 구체 클래스 추상 클래스 인터페이스
객체의 생성 가능 불가능
용도 기능의 구현 기능의 명세
구분 추상 클래스 인터페이스
구현의 포함 여부 일부 가능 불가능
명세의 영향 대상 자식 클래스
(Is-A 관계 준수)
임의의 구현 클래스

의존 관계

클래스 간의 의존 관계는 두 클래스의 연산 간 호출 관계 표현

- 의존 관계는 제공자의 변경이 이용자에 영향을 미칠 수 있음을 뜻함

- 의존 관계는 제공자의 변경이 이용자의 변경을 유발함을 의미

 

이용자는 의존 관계를 통해 제공자의 연산을 호출 가능

- 연관 관계와 마찬가지로 의존 관계가 있는 클래스 간에 메시지 전달 가능

- 이용자 클래스는 제공자 클래스의 연산을 호출 가능

 

구분 연관 관계 의존 관계
역할 메시지 전달의 통로
관계의 발생 형태 상대 클래스의 속성으로 대응 해당 연산의 인자 클래스
해당 연산 내부 객체의 클래스
해당 연산에서 접근하는 전역 객체의 클래스
관계의 지속 범위 해당 객체의 생명주기 해당 연산 내부
방향성 양방향 가능 단방향

연관: 내부 속성으로 가짐 .. 지속적

의존: 인자로 받거나, 전역 객체에 접근하는 등 .. 일시적

'소프트웨어공학' 카테고리의 다른 글

Process in Software Engineering  (0) 2024.10.26
분석 클래스 모델의 작성  (0) 2024.10.26
분석 단계 개요  (0) 2024.10.26
유스케이스의 조직화  (0) 2024.10.26
유스케이스 모델 구조화  (0) 2024.10.25