2021.11.08 TIL

pbg0205·2021년 11월 8일
0

TIL

목록 보기
7/13

1. UML

  • UML : 시스템 개발 과정에서 개발자 사이의 이ㅡ사 소통이 원활하게 이루어지도록 표준화한 통합 모델링
    • UML 종류

      • 구조 다이어그램 : 클래스, 객체, 복합체, 배치, 컴포넌트, 패키지
      • 행위 다이어그램 : 활동, 상태 머신, 유즈 케이스, 상호작용

  • 클래스 다이어그램 : 시스템을 구성하는 클래스들 사이의 관계를 표현
  • 접근 제어자
접근 제어자표시
public+
private-
protected#
package~

  • 속성과 연산 표기
표시표기 방법
속성[+, -, #, ~] 이름:타입
연산[+, -, #, ~] 이름 (인자1:타입1,... 인자n:타입n): 반환 타입

2. 관계

1. 연관 관계

class Person {

	private Phone homePhone;
    
	...
}
  • 단방향 연관 관계 : 한쪽으로만 방향성이 있는 연관 관계

  • 양방향 연관 관계 : 방향이 양쪽에 있는 연관 관계 (실제로는 두 단뱡향 관계를 합친 형태)

    • 실제 구현할 때도 단방향 관계 두개로 구현해야 한다!!!

    • 다대다 연관 관계일 경우, 연관 클래스(associattion class)를 생성하는 방법을 선택한다.

  1. 클래스들이 서로 연결되었다는 것을 나타낸다.
  2. 주로 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황일 때 표시한다.
  3. 다중성 표시
다중성 표기의미
1딱 1
*0 또는 그 이상
0..*0 또는 그 이상
1..*1 이상
0..10 또는 1
2..52 또는 3 또는 4 또는 5
1,2,61 또는 2 또는 6
1, 3..51 또는 3 또는 4 또는 5

연관 클래스 예시

class Student {
	private List<Transcript> transcripts;
}

class Transcript {

	private Student student;
	private Course course;
    
}

class Course {
	private List<Transcript> transcripts;
	...
}

2. 일반화 관계

  1. 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 사용
  2. 상속 관계를 사용 : 부모 클래스의 속성과 연산을 물려받는다.

합성 관계 : 부분 객체가 전체 객체에 속하는 관계 (전체객체가 사라지면 부분 객체도 사라진다. -> 라이프 사이클이 같다.)
집약 관계 : 한 객체가 다른 객체를 포함하는 것 (전체 객체가 사라져도 부분 객체는 살아있다.)

(합성 관계 : 왼쪽 / 집약 관계 : 오른쪽)

합성 관계 코드

class Computer {
	
    private Memory memory;
    private CPU cpu;
    private Power power;
    
    public Computer () {
    	this.memory = new Memory();
        this.cpu = new CPU();
        this.power = new Power();
    }
}

집약 관계 코드

class Computer {
	
    private Memory memory;
    private CPU cpu;
    private Power power;
    
    public Computer (Memory memory, CPU cpu, Power power) {
    	this.memory = memory;
        this.cpu = cpu;
        this.power = power;
    }
}

3. 의존 관계

의존관계 3가지

  1. 클래스의 속성에 참조
  2. 연산의 인자로 사용
  3. 메서드 내부의 지역 객체로 참조

예시

public class Car {

	...	
    public void fillGas(GasPump p) {
    	p.getGas(amount);
    }
}
profile
🧑‍💻 steady developer

0개의 댓글