본문 바로가기
정보처리이론

2-6. 클래스(Class)다이어그램과 시퀀스 다이어그램

by 공부합시다홍아 2020. 11. 15.

정적모델링의 개념 

사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 표현하는 것
- 정적 모델링은 시스템에 의해 처리되거나 생성될 객체들 사이에 어떤 관련이 있는지를 구조적인 관점에서 표현
- 정적 모델링은 객체들을 클래스로 추상화하여 표현
- UML을 이용한 정적 모델링의 대표적인 것이 클래스 다이어그램 

클래스 다이어그램
시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오러레이션에 대한 제약조건,
클래스 사이의 관계를 표현한 것

- 클래스 다이어그램은 시스템을 구성하는 요소에 대해 이해할 수 있는 구조적 다이어그램이다.
- 시스템 구성 요소를 문서화하는 데 사용
- 코딩에 필요한 객체의 속성, 함수 등의 정보를 잘 표현하고 있어 시스템을 모델링하는 데 자주 사용
- 클래스, 제약조건, 관계 등으로 구성

⊙ 클래스(Class)
    - 각각의 객체들이 갖는 속성과 오퍼레이션(동작)을 표현
    - 일반적으로 3개의 구획으로 나눠 클래스의 이름, 속성, 오퍼레이션을 표기
    - 속성이나 오퍼레이션은 생략할 수 있지만 반드시 명시해야 한다.
    - 속성이나 오퍼레이션이 생략된 겨웅에는 구획선을 그리지 않아도 된다.

클래스 명 : 야구선수 | 속성 : 선수코드, 이름, 포지션, 경력, 승점, 연봉조정 등 | 오퍼레이션 : 연봉 조정(승점 : int) : int 

Class 야구선수 {
    private String 선수코드;
    private String 이름;
    private String[] 포지션 = new String[2];
    private Int 경기수 = 0;
    private Int 경력;
    protected Int 승점;
    
    public Int 연봉조정(Int 승점);
}

속성(Attribute)
클래스의 상태나 정보를 표현

형식

[ 접근제어자 ] 속성명 : 자료형[다중성][=초기값] 


- 접근제어자 : 속성과 오퍼레이션을 어느정도까지 클래스 외부에 노출시킬지 제어

접근제어자 표현법 내용
public + 어떤 클래스에서라도 접근이 가능
private - 해당 클래스 내부에서만 접근 가능
protected # 동일 패키지 내 클래스 or 해당 클래스를 상송받은 외부 패키지의 클래스에서 접근 가능
package ~ 동일 패키지 내부에 있는 클래스에서만 접근 가능


- 속성명 : 속성의 이름, 사용자가 임의로 작성
- 자료형 : UML에서 기본적으로 제공하는 자료형 또는 사용자의 필요에 따라 새롭게 정의한 자료형

종류 자료형
문자형 String
정수형 integer, int
자연수 UnlimitedNatural
논리형 Boolean
실수형 Real, Float


- 다중성 : 동일한 속송명으로 여러 개의 속성 값을 가질 수 있는 것, 배열과 같은 의미
- 초기값 : 데이터를 입력하지 않았을 때 기본적으로 입력되는 값을 지정 


오퍼레이션(Operation, 연산)
클래스가 수행할 수 있는 동작으로, 함수(메소드, Method)라고도 한다.

일반 형식

[ 접근제어자 ] 오퍼레이션명(매개변수1: 자료형1, 매개변수2 : 자료형2 ...) : 반환자료형 


- 오퍼레이션명 : 오퍼레이션의 이름, 사용자가 임의로 작성
- 매개변수 : 오퍼레이션으로 어떤 작업을 할 때 해당 오퍼레이션 수행에 필요한 값을 전달하기 위해 사용
- 반환자료형 : 오퍼레이션 수행 후 반환되는 값에 대한 자료형, 반환되는 값이 없으면 반환자료형을 void로 지정



제약조건
속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 적는다.
- 주석(Note) 도형 안에 제약조건을 적은 후 제약조건이 적용될 속성이나 오퍼레이션을 점선으로 연결
- 클래스안에 제약조건을 적을 때는 중괄호{ }를 이용


관계(Relationships)
관계는 클래스와 클래스 사이의 연관성을 표현
- 클래스 다이어그램은 클래스가 서로 연결되어 있음을 의미하는 연관 관계를 기본으로 한다.
- 관계에 참여하는 객체의 수(다중도)를 연관 관계 선 위에 표기
- 클래스 다이어그램에 표현하는 관계에는 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계가 있다.

1. 연관 관계(Association)  
   - 두 클래스 간의 관계를 명확하게 표현하기 위해 관계 표현 실선의 중간 지점에 관계의 이름을 표기할 수 있다.
   - 해당 클래스의 관계 표현 실선 바로 옆에 클래스의 역할을 표기 가능
   - 연관 관계에서 추가적으로 표현해야할 속성이나 오퍼레이션이 있는 경우 연관 클래스를 사용
   - 두 클래스가 서로 연관 관계에 있을 때는 클래스 안에 연관된 클래스를 이용하여 객체 변수를 생성 가능

2. 집합 관계 (Aggregation)
   - 두 클래스가 서로 집합 관계에 이씅ㄹ 때는 집합 관계에 있는 클래스의 객체 변수를 매개변수로 사용 가능

3. 포함 관계(Composition)
   - 두 클래스가 서로 포함관계에 있을 때는 포함 관계에 있는 클래스를 이용하여 생성된 객체 변수를 이용하여
     새로운 객체 변수를 생성할 수 있다.

4. 일반화 관계(Generalization)
    - 일반적인 개념을 상위(부모)클래스, 구체적인 개념을 하위(자식)클래스라고 부른다.
    - 두 클래스가 서로 일반화 관계에 있을 때는 하위 클래스가 상위 클래스의 속성이나 메소드를 사용 가능

5. 의존 관계(Dependency)
   - 두 클래스가 의존 관계에 있을 때는 영향을 주는 클래스(이용자)의 특정 오퍼레이션(메소드)이 수행 될 때만
     영향을 받는 클래스(제공자)가 사용된다.


시퀀스(Sequence Diagram) 다이어그램

동적 모델링의 개념

동적모델링은 시스템의 내부 구성 요소들의 상태가 시간의 흐름에 따라 변화하는 과정과
변화하는 과정에서 발생하는 상호 작용을 표현한 것
⊙ 동적모델링은 시스템 내부 구성 요소들 간에 이루어지는 동작이라는 관점(View)에서 표현
⊙ 동적 모델링은 시스템이 실행될 때 구성요소들 간의 메시지 호출, 즉 오퍼레이션을 통한 상호작용에 초점
⊙ UML의 시퀀스 다이어그램, 커뮤니케이션 다이어그램, 상태 다이어그램이 동적 모델링에 해당

시퀀스(Sequence) 다이어그램의 개념
시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호 작용하는 과정을 
액터, 객체, 메시지 등의 요소를 사용하여 그림으로 표현하는 것
⊙ 시퀀스 다이어그램은 시스템이나 객체들의 상호 작용 과정에서 주고받는 메시지 표현
⊙ 시퀀스 다이어그램을 통해 각 동작에 참여하는 시스템이나 객체들의 수행 기간 확인 가능
⊙ 시퀀스 다이어그램은 클래스 내부에 있는 객체들을 기본 단위로 하여 그들의 상호 작용을 표현
⊙ 시퀀스 다이어그램은 주로 기능 모델링에서 작성한 유스케이스 명세서를 하나의 표현 범위로 하지만,
    하나의 클래스에 포함된 오퍼레이션을 하나의 범위로 표현하기도 한다.

시퀀스 다이어그램의 구성 요소
액터, 객체, 라이프라인, 활성 상자, 메시지등으로 구성

구성 요소 내용
액터(Actor) 시스템으로 부터 서비스를 요청하는 외부 요소, 사람이나 외부 시스템
⊙ 객체(Object) 메시지를 주고 받는 주체
콜론( : )을 기준으로 앞쪽에는 객체명을 뒤쪽에는 클래스명을 기술
라이프라인(LifeLine)  객체가 메모리에 존재하는 기간
객체 아래쪽에 점선을 그어 표현
객체 소멸(x)이 표시된 기간까지 존재
활성 상자(Activation Box) 객체가 메시지를 주고받으며 구동되고 있음을 표현
라이프라인 상에 겹쳐 직사각형 형태로 표현
메시지(Message) 객체가 상호 작용을 위해 주고받는 메시지
메시지의 전달 순서는 위치에 따라 묵시적 결정 / 메시지에 번호를 표기하여 전달 순서 표현
화살표의 방향은 메시지를 받는 쪽으로 향하게 표현

메시지의 종류

기호 의미 기능
→ ( ▶ ) 동기 메시지를 보낸 후 결과가 반환될 때 까지 기다림
→ ( ▷ ) 비동기 메시지를 보낸 후 결과가 반환될 때까지 기다리지 않고 다른 작업을 수행
→ ( ... ) 생성 메시지를 받는 새로운 객체를 생성
→ ( ...▶ ) 응답 동기 메시지에 대한 수행 결과 

 

객체 소멸
라이프라인 상에서 객체 소멸 표시를 만나면 해당 객체는 더 이상 메모리에 존재하지 않음을 의미
객체 라이프라인 마지막에 X로 표현
 
표현(Frame)
⊙ 다이어그램의 전체 또는 일부를 묶어 표현
⊙ 전체, 복합적인 부문(Combined Fragment), 반복 구조, 선택 구조 등이 프레임 안에 표현
⊙ 프레임의 왼쪽 위에 다이어그램의 종류와 제목을 표기

728x90