본문 바로가기

: Architecture

[UML] Class Diagram

반응형

Class Diagram

 

Terminology

  • Object: 시스템 개별 객체들, 구현할 대상을 지칭한다.
  • Class: Obejct를 만들어 내기 위한
    • Attribute(내부 변수)과 Operation(함수)으로 구성되어 있다.

 

Writing Convention

  • Object의 이름은 소문자로 시작하고, camelCase 로 작성한다.
  • Class의 이름은 대문자로 시작하고, CamelCase 로 작성한다.
예시
boyWithLuv: BtsSong
${objectName}: ${ClassName}

anonymous object
: BtsSong

 


UML Class Diagrams

같은 UML Class 다이어그램이어도 다양한 관점에서 사용할 수 있다.

  • Domain model
  • DCD (Desgin Class Diagram)

 

Song Class Name
name: String
artist: String
genre: Genre
Attributes
getName(): String
getArtist(): String
getGenre(): Genre
Operations

 

Attribute Syntax

  • Visibility
    • + : public(operations default)
    • - : private(attributes default)
    • # : protected
    • ~ : package
    • / : derived, 다른 속성값 또는 외부로 부터 정보를 가져오거나 계산되어지는 값
  • Multiplicity 예)  [1..*]
  • Default value 예) = "default password"
  • Properties 예) {readOnly, unique, ordred}

 

Operation Syntax

  • Parameters
    • in : input parameter(default)
    • out: output parameter 잘 안 씀
    • inout: in-out parameter 잘 안 씀

 

Operations and Methods

Operation은 Interface 이고, Method 는 Implement 이다.
Operation은 함수이름과 변수들, 리턴값을 정의한 함수 "형태"이다.
Method는 Operation을 구체적으로 함수 코드로 "구현"한 것이다.

 

Class Variable and Operation

밑줄그은 것, static 을 붙여야 함, 클래스에만 구현되고 모델에는 작성하지 않는다.

 


5 Types of Class Relationship

5 types of class relationship

Dependency

정말 간단하게 다른 클래스에서 작업을 하는 경우.
주로 Component Diagram 을 그릴 때 사용한다. association으로 변경이 가능 함.

 

Association(default)

기본적인 것. 불확실하면 일단 실선으로 그리자.
non-navigability: ( mark: (X)---> ) X는 있을 수도 없을 수도 있다. 이는 역방향으로는 퍼블릭에 대한 정보도 접근할 수 없다는 것

Association Classes(어디에도 속하기 애매할 때 중간에 따로 점선으로 그어서 사용)

 

Aggregation (Shared Aggregation)

약한 포함관계이다. 값을 공유하는 것 (상위가 삭제되어도 같이 삭제되어지지 않음)
화살표 쪽이 반대편을 가진다는 의미

 

Composition

강한 포함관계이다. (상위가 삭제되면, 같이 삭제 됨)

 

Inheritance (Generalization)

하위 오브젝트는 상위의 오브젝트이다로 정의 될 수 있는 것 (ex. 직장인(하위오브젝트)은 사람(상위오브젝트)이다.)
상위 오브젝트의 내용은 하위 오브젝트는 모두 가져야 한다.

 

There is no silver bullet in software development

 

 

 

 

 

 

참고)

5 types of class relationship image: https://flylib.com/books/en/2.926.1.43/1

반응형

': Architecture' 카테고리의 다른 글

[OOAD] SOLID  (0) 2022.06.23
[OOAD] GRASP  (0) 2022.06.22
[UML] Sequence Diagrams  (0) 2022.06.17
[UML] Use Case Diagram  (0) 2022.06.17