2020. 9. 22. 13:32ㆍ컴퓨터언어
연관관계
public class Player {
private Uniform theUniform;
}
public class Uniform {
}
/*
Player는 Uniform 클래스를 이용하여 객체변수 theUniform을 생성하였지만,
Uniform 클래스는 Player 클래스를 이용하지 않는다.
즉 Player 클래스는 Uniform 클래스를 알고 있지만 Uniform 클래스는 Player 클래스를 알지 못하므로
한쪽 방향으로만 관계가 있다.
*/
public class Player {
private Game theGame;
}
public class Game {
private Player thePlayer;
}
/*
Player 클래스는 Game 클래스를 이용하여 객체변수 theGame을 생성하고,
Game 클래스도 Player 클래스를 이용하여 객체변수 thePlayer를 생성한다.
즉 두 클래스는 서로를 알고 있으므로 서로 관계가 있으며 서로 사용할 수 있다.
*/
집합관계
public class Player {
private Fan theFan;
public Player(Fan theFan) {
this.theFan = theFan;
}
}
public class Fan {
}
/*
Player 클래스의 Player() 메소드는 Fan 클래스의 객체변수 theFan을 매개변수로 사용한다.
이와 같이 외부 클래스의 객체 변수에 대한 주소만 받아 사용하는 관계가 집합관계다.
*/
포함관계
public class Team {
private Player thePlayer;
public Team() {
thePlayer Player2 = new thePlayer(); // 객체변수로 또다른 객체변수 생성
}
}
public class Player {
}
/*
Team 클래스의 Team() 메소드는 Player 클래스를 이용하여 생성한 객체변수 thePlayer를 이용하여
새로운 객체 변수 Player2를 생성한다.
이와 같이 외부 클래스를 이용해 객체 변수를 생성하는 관계를 포함관계라고 한다.
*/
일반화관계
public class Player {
}
public class M_Player extends Player {
}
public class C_Player extends Player {
}
/*
M_Player와 C_Player는 Player 클래스를 상속받는다.
*/
의존관계
public class Player {
private Int Playpoint;
public void FindSalary(SalaryCount p) {
p.GetSalary(PlayerPoint);
}
}
public class SalaryCount {
}
/*
SalaryCount 클래스는 Player 클래스의 FindSalary() 메소드가 수행되는 경우에만 사용된다.
이와 같이 필요에 의해 짧은 시간 동안만 연관을 유지하는 관계를 의존 관계라고 한다.
*/
액티비티 다이어그램 = 액션 + 액티비티 + 노드 + 스윔레인
각각의 유스케이스에 대해 그 기능이 처리되는 흐름을 순서에 맞게 사용자의 관점에서 자세한 그림으로 표현한 것
액션(둥근 사각형)
더 이상 분해될 수 없는 단일 작업
액티비티(둥근 사각형)
몇 개의 액션으로 분리될 수 있는 작업
스윔레인
액티비티 수행을 담당하는 주체를 가로/세로 실선으로 구분
정적 모델링
사용자가 요구한 기능을 구현하는 데 필요한 자료들의 논리적인 구조를 개발자의 관점에서 표현한 것
UML을 이용한 정적 모델링의 대표적인 것이 클래스 다이어그램
클래스 다이어그램
시스템을 구성하는 클래스
클래스의 특성인 속성과 오퍼레이션
속성과 오퍼레이션에 대한 제약조건
클래스 사이의 관계
연관 클래스
두 클래스가 연관 관계에 있을 때 추가적으로 표현해야 할 속성이나 오퍼레이션이 있는 경우 사용되는 클래스
두 클래스를 잇는 선의 가운데로부터 점선을 이어 표시
이름은 연관 관계의 이름을 이용해 지정
집합관계 : 다른 클래스의 객체 변수를 매개변수로 받아옴
포함관계 : 다른 클래스의 객체 변수를 현재 클래스 내에서 new 키워드로 생성
동적 모델링
시스템 설계자가 시간의 흐름에 따라 변하는 시스템 내부 구성요소의 상태 변화를 파악하기 위해 그림으로 표현하는 것
시퀀스 다이어그램, 커뮤니케이션 다이어그램, 상태 다이어그램
시퀀스 다이어그램
시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 액터, 객체, 라이프라인, 활성상자, 메시지 등 요소를 사용하여 그림으로 표현한 것
액터
시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미
객체
메시지를 주고받는 주체
: 앞이 객체명, 뒤쪽이 클래스명
라이프라인
객체가 메모리에 존재하는 기간으로, 객체 아래쪽에 점선을 그어 표현
활성상자
객체가 메시지를 주고받으며 구동되고 있음을 표현
라이프라인 상에 겹쳐 직사각형 형태로 표현
메시지
객체가 상호작용을 위해 주고받는 것
메시지를 받는 쪽으로 화살표를 그린다.
---
커뮤니케이션 다이어그램
시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 액터, 객체, 링크, 메시지 등 그림으로 표현한 것.
시퀀스 다이어그램의 라이프라인과 활성상자 대신 “링크"가 객체 간 관계를 표현
상태 다이어그램
객체들 사이에 발생하는 이벤트에 의한 객체들의 상태 변화를 상태, 이벤트, 상태전환 등 그림으로 표현한 것
+ (Public) : 어떤 클래스에서라도 접근이 가능
- (Private) : 해당 클래스 내부에서만 접근이 가능
# (Protected) : 동일 패키지 내의 클래스 또는 해당 클래스를 상속 받은 외부 패키지의 클래스에서 접근이 가능
~ (Package) : 동일 패키지 내부에 있는 클래스에서만 접근이 가능
데이터 모델
현실세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
데이터 모델의 구성요소
개체 : 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
속성 : 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드
관계 : 개체 간의 관계 또는 속성 간의 논리적 연결
데이터 모델의 종류 = 개념적 데이터 모델 + 논리적 데이터 모델 + 물리적 데이터 모델
데이터 모델에 표시할 요소 = 구조 + 연산 + 제약조건
'컴퓨터언어' 카테고리의 다른 글
정보처리기사 실기 공부log - 20200924 (0) | 2020.09.25 |
---|---|
정보처리기사 실기 공부log - 20200923 (0) | 2020.09.23 |
정보처리기사 실기 공부log - 20200920 (0) | 2020.09.20 |
정보처리기사 실기 공부log - 20200915 (0) | 2020.09.15 |
정보처리기사 실기 공부log - 20200913, 5과목 완료 (0) | 2020.09.13 |