수정입니다

class diagram 본문

전공/소프트웨어공학

class diagram

nongdamgom 2024. 4. 16. 21:23

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