수정입니다
class diagram 본문
Structrue diagram
- class diagram
- object diagram
Class diagram
- class name, attribute, operation
- + public, - private, # protected
- static level => 밑줄로 표시
- 세가지 notation : << >> , {}, 이탤릭체
- abstract operation이 포함된 class 는 반드시 abstract class
- abstract operation을 포함하지 않아도 abstract class가 될 수 있다.
Interface
- provided interface
- => 이 interface의 구현을 다른 class에서 제공
- required interface
- => 어떤 class에서 필요로 하는 interface
- realization connector ( provided interface의 implement를 제공하는 class랑 연결할 때)
- class diagram specification의 3가지 notation
- Dependency : client class의 parameter 혹은 return type으로서 짧게 사용할 때 (보통 생략)
- Association
- professor는 student의 attribute에 접근 불가 ( association이긴 함)
- student는 professor의 visible한 attribute에 접근 가능
- navigability 표시가 없으면 보통 양쪽으로 접근 가능하다고 해석( logically하게는 다른 의미다)
- association을 attribute로서 나타낼 수 있다.
- class 간에 instance를 몇개씩 가질 수 있는지.
- 다 : 다 관계일 때, 두 association에 추가적인 attribute 정보가 필요할 때 사용함
- 1:1 이나 1:다 일 때도 사용할 수 있지만, 이때는, 다 쪽의 attribute로 두는 것이 일반적
- default가 duplicate를 허용하지 않음 => 주어진 run time에 한번만 만들 수 있음
- duplicate를 허용하고 싶을 땐, {non - unique} 표시를 붙여준다.
- directory는 file을 여러개 가질 수 있는데, file에는 file name 이라는 attribute가 있음
- => 한 file이 file name을 여러개 가질 수 있는건가...? 한 directory에 file name 여러개여도 되는건가?
- 이 모호성을 해소하기 위해 "다" 쪽의 attribute를 target object에 갖다 붙이고, 다 => 1로 바꿈
- Aggregation => 연결 연결 가능, 두 class가 동시에 서로를 aggregation 하는거 불가능
- 전체 쪽에 다이아몬드 갖다 붙이기
- 한 클래스가 여러개의 aggregation 가질 수 있음
- whole이 사라진다고 해서 part 쪽도 사라지는거 x 집합이긴하지만, part쪽도 독립적으로 존재 함
- Composition
- 특정 순간에 part는 오직 하나의 composit object에만 속할 수 있음 (동시에 여러군데 속하는거 x)
- whole 쪽이 터지면 part도 같이 사라짐
- => 다만 whole의 범위를 0에서부터 시작하면, whole에 속하지 않은 part도 세상에 존재할 수 있음
- Inheritance
- == Generalization
- 모든 subclass의 instance는 super class의 indirect한 instance임
- 상속 받을 때 association이나 aggregation 같은 relationship도 다 물려받음
- 상속상속 연결 가능
- abstract class도 상속 받기 가능( 하지만 그 sub class는 non-abstract 여야 한다)
- =>
- multiple 상속 가능 (자바 문법 상으로는 불가)
- class diagram 작성할 때는, 상속받아서 동일한 attribute면 굳이 작성 안해도 됨
** 클래스 다이어그램 예시
- 이런식으로 클래스 간의 여러 association 가능
- employee 중 1명의 dean은 1개의 faculty에서 일 할수도/ 안할수도 있다
- 하지만 모든 employee가 dean은 아니므로, 1명 이상의 employee들이 하나의 faculty에서 일한다는 것도 나타내야함
- 이게 살짝 헷갈리는데, 그냥 이런식으로 instance가 association을 취사 선택 할 수 있다는 식으로 생각하면 될 듯
- => dean도 상속 받아서 따로 클래스 빼면 안됨? => 그러면 dean을 변경하지 못함(employee 한명이 계속 고정 dean이 됨)
Object diagram
- 특정 순간의 snapshot
- diagram시, 밑줄로 표시
'전공 > 소프트웨어공학' 카테고리의 다른 글
Software Development Process (1) | 2024.04.20 |
---|---|
sequence diagram (0) | 2024.04.17 |
책 (0) | 2024.04.02 |
Sequence Diagram (2) | 2024.04.02 |
UML Class Diagram (0) | 2024.04.02 |