본문 바로가기
DB/UML

UML 3-1/3-2/3-3/3-4

by 자바꿈나무00 2023. 1. 19.

클래스 다이어그램

  • UML모델링에서 가장 일반적으로 사용한다.
  • 시스템의 구조와 구조 간 상호 관계를 나타내며 시스템의 논리 / 물리적 구성요소 설계 시 주로 활용한다.                                             (= 클래스 간의 관계, 정보 설정)
  • 분석, 설계 단계에서 모두 사용이 되는 다이어그램
  • 블랙박스 기법(사용자의 입장)에 해당하는 정적 모델링
  • 구현 단계를 단축 시키는 다이어그램
  • 분석 단계에서 클래스 다이어그램: 논리적 구성요소
  • 설계 단계에서 클래스 다이어그램: 물리적 구성요소

 

 

클래스의 표현

출처:kh정보교육원

  • 속성에서 필드명 : 자료형
  • 연산에서 메소드명()반환하는 자료형

출처:kh정보교육원

  • 필드와 메소드 왼쪽접근 제한자 표시
  • SCHOOL_NAME : 필드명의 밑줄은 static , 대문자는 final (상수형 필드: 생성과 동시에 초기화)
  • 클래스명 Student, goToSchool() : 기울어진 메소드는 추상 클래스 / 추상메소드
  •  

 

 

 

클래스 다이어그램 만들기

출처:kh정보교육원

  • 모델 생성 -> Class 생성 -> Student 명명

출처:kh정보교육원

  • 왼쪽 탭을 클릭해 속성 추가
    • 왼쪽에 있는 하늘색 버튼은 Add Attribute 탭으로 필드 추가
    • 오른쪽에 있는 빨간색 버튼은 Add Operation 탭으로 메소드 추가

SCHOOL_NAME 필드 static필드로 변경하는 방법 /출처:kh정보교육원
SCHOOL_NAME 필드 final필드로 변경하는 방법 / 출처:kh정보교육원
goToSchool 메소드 추상메소드로 변경하는 방법 /출처:kh정보교육원

 

만들어진 클래스 다이어그램 자바 코드로 변경하는 방법

tools에서 Java-Generate Code / 출처:kh정보교육원
바탕화면에 저장 후 메모장으로 열어보면 이렇게 소스 코드가 생성된 것을 볼 수 있다. / 출처:kh정보교육원

 

 

클래스 다이어그램의 관계

출처:kh정보교육원

연관 관계

: 한 클래스가 필드로 다른 클래스를 참조할 때를 의미한다. 클래스 간의 관련성을 뜻하는 것으로 메세지 전달의 통로 역할을 한다.

-클래스 간의 관련성을 뜻하는 것으로 메시지 전달의 통로 역할을 한다.

출처:kh정보교육원

방향성이 있는 연관 관계

: 방향성은 메시지 전달의 방향을 의미하며 반대 방향은 불가능하다.

출처:kh정보교육원

연관 관계의 다중성

: 관계를 맺을 수 있는 실제 상대 객체의 수를 다중성으로 지정가능하다. 동일한 의미/ 역할의 복수 개의 객체와의 관계를 말한다.

여러 개의 값을 가질 때 객체 배열 또는 컬렉션으로 다룬 것과 같이 다룬다.

출처:kh정보교육원

다중 연관

: 동일한 클래스 간의 존재하는 복수 개의 연관 간계를 뜻한다. 다른 의미/ 역할의 복수 개의 객체와의 관계를 말한다.

출처:kh정보교육원

 

 

 

집합 관계와 합성관계

: 두 대상 간의 포함(소속) 표현으로 항상 has- a의미가 성립 되어야한다. 연관 관계랑 같고 거의 사용하지 않는다.

집합 관계

: 부분 객체가 다수의 전체 객체에 의해 공유 될 수 있다. 전체 객체가 사라져도 부분 객체는 존재한다.

출처:kh정보교육원

합성 관계

: 부분 객체가 오직 하나의 전체 객체에 포함 될 수 있다. 전체 객체가 사라지면 부분 객체도 사라진다. 자바에서는 불편하지만 C++에서 유용하게 쓴다.

출처:kh정보교육원

일반화 관계

: 일반적이고 구체적인 클래스 간의 관계를 의미하는 관계이다. 한 클래스(상위 클래스)가 다른 클래스(하위 클래스)보다 일반적인 대상/ 개념 임을 의미하는 관계이다.

 

 

 

실체화(인터페이스 실현)관계

: 인터페이스에 자세히 표기된 기능을 클래스를 통해 구현한 관계를 의미한다.

인터페이스인 부모, implements 키워드 사용한 것 유의 / 출처:kh정보교육원

 

 

 

일반화 관계 실습

  1. shape class생성
  2. 연산 추가, 반환형 지정 안 하고 void로 클래스 소스가 생성된다. 괄호는 자동으로 작성된다.
  3. getArea()메소드 생성
  4. 화면 우측 메뉴에서 getArea() -> IsAbstract메소드 체크, 기울임표시로 추상메소드를 나타낸다.
  5. 추상 메소드들을 가지고 있다고 해서 자동으로 Shape가 추상 클래스로 표현이 되지 않는다. Shape도  동일하게 체크해준다.추상 클래스에 추상 메소드가 있다는건 Shape라는 클래스는 미완성 클래스라는 것이다. 미완성 클래스를 상속 받아서 getArea()라는 메소드를 실질적으로 정의 할 후손 클래스를 만들어야 한다.
  6. 일반화 관계로 표현된 자식 클래스 - triangle, rectangle클래스 
  7. isEquilateral()연산 메소드 생성
  8. Rectangle 클래스 생성
  9. isSquare()생성
  10. 일반화 관계를 표현,항상 자식 클래스가 부모 클래스를 향해서 화살표 표현을 해야한다. 

triangle 클래스와 Rectangle 클래스가 Shape 클래스를 상속 받았다고 해서 getArea() 메소드가 표현되지는 않지만, 소스 코드를 뽑아냈을 때 어떻게 표현이 되는지 볼 예정

1
2,3
4
5
6

 

7
8,9
10

'DB > UML' 카테고리의 다른 글

UML 3-7/3-8/4-1 시나리오, 시퀀스다이어그램  (0) 2023.01.19
UML 3-5,3-6  (0) 2023.01.19
UML (Chapter1-1. ~ 2-1)요약  (0) 2023.01.11
UML Chap02-3. ~02-4.  (0) 2023.01.09
UML (Chap02-2. 중고나라 요구사항 기술서 실습)  (0) 2023.01.08