객체지향 모델링

jijang·2021년 4월 1일
1
post-thumbnail

객체지향 모델링

모델링

  • 서로의 해석을 공유해 합의를 이루거나 타당성을 검토한다.
  • 현재 시스템 또는 앞으로 개발할 시스템의 원하는 모습을 가시화 한다.
  • 시스템의 구조와 행위를 명세할 수 있으며 시스템을 구축하는 툴을 제공 한다.
  • 객체의 모든 정보들을 다 담기보다는 객체의 필요 정보들만 추상화하여 모델링한다.

UML

구조다이어그램

  • 클래스 다이어그램 : 시스템을 구성하는 클래스들 사이의 관계를 표현
  • 객체 다이어그램 : 객체 정보를 표현
  • 복합체 구조 다이어그램 : 복합구조의 클래스와 컴포넌트 내부 구조를 표현
  • 배치 다이어그램 : 소프트웨어, 하드웨어, 네트워크를 포함. 실행 시스템의 물리구조를 표현
  • 컴포넌트 다이어그램 : 컴포넌트 구조 사이의 관계를 표현
  • 패키지 다이어그램 : 클래스나 유즈케이스등을 포함한 여러 모델요소들을 그룹화해 패키지를 구성하고 패키지들 사이의 관계를 표현

행위다이어그램

  • 활동 다이어그램 : 업무처리과정이나 연산이 수행되는 과정을 표현
  • 상태머신 다이어그램 : 객체의 생명주기를 표현
  • 유즈케이스 다이어그램 : 사용자관점에서 시스템 행위를 표현

UML표현의 예

클래스 표현

학생
(-)이름
(-)전공   
(-)학번
(-)과목
(+)수강하다()

접근제어자 표현

public +
private -
protected #
package ~

UML 관계

  • 연관관계
    클래스들이 개념상 서로 연결되어있음을 나타낸다. 실선이나 화살표로 표시하며 보통 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황일 때 표시한다.

  • 일반화관계
    객체지향 개념에서는 상속관계라고 한다. 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 이를 IS-A 라고 한다. 속이 빈 화살표를 사용해 표시한다.

  • 집합관계
    클래스들 사이의 전체 또는 부분 같은 관계를 나타낸다. 집약관계와 합성관계가 존재한다.

  • 의존관계
    연관관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용한다. 차이점은 두 클래스의 관계가 한 메소드를 실행하는 동안과 같은 매우 짧은 시간만 유지된다는 점이다. 점선화살표를 사용해 표시한다.

  • 실체화관계
    책임들의 집합인 인터페이스와 이 책임들을 실제로 실현한 클래스들 사이의 관계를 나타낸다. 상속과 유사하게 머리에 있는 실선대신 점선을 사용해 표시한다.

다중성

1 : 엄밀하게 1
* : 0 또는 그 이상
0..* : 0 또는 그 이상
1..* : 1 이상
0..1 : 0 또는 1
2..5 : 2 또는 3 또는 4 또는 5
1,2,6 : 1 또는 2 또는 6
1,3..5 : 1 또는 3 또는 3 또는 5

(출처 : 자바 객체지향 디자인패턴, 지은이 정인상, 채흥석, 펴낸곳 한빛미디어)

0개의 댓글