4 분 소요

3. 클래스 다이어그램

클래스 다이어그램

  • 소프트웨어의 기본 구성 단위인 시스템에서 사용하는 클래스를 정의
  • 클래스들이 서로 어떻게 연결되어 있고 어떤 역할을 하는지 다이어그램으로 표현

클래스

  • 데이터(속성)와 메서드를 묶어 놓은 것
  • 세 칸의 직사각형 모양
  • 첫 번째 칸에는 클래스 이름
  • 두 번째 칸에는 클래스의 속성
  • 마지막 칸은 클래스가 제공하는 기능인 메서드를 나타냄

sw_7_1_1

클래스 이름

  • 클래스는 다른 클래스와 구별되는 유일한 이름을 가짐
  • 이름에 명사나 명사구를 사용하며 두 단어를 사용할 때는 붙여쓰되 각 단어의 첫 글자는 대문자로 씀
  • 복수형, 소유격, 형용사는 가급적 쓰지 않음

속성

  • 클래스가 갖는 정적인 특성
  • 속성의 이름은 소문자로 나타내며 두 단어를 사용할 때는 두 번째 단어의 첫 글자는 대문자로 씀

메서드

  • 클래스가 외부의 다른 객체에게 제공할 서비스와 기능
  • 외부 클래스는 메서드를 통해 해당 클래스에 접근할 수 있음
  • 외부에서 이 기능을 요구하는지에 따라 메서드로 도출할지 판단

가시성

  • 속성과 메서드의 접근 권한을 지정하는 방식
가시성 설명
공개(public, +) 같은 시스템에 있는 모든 클래스에 접근할 수 있다.
은닉(private, -) 같은 시스템 내의 다른 클래스는 직접 접근할 수 없고 해당 클래스의 메서드를 통해서만 접근할 수 있다. 클래스에서 대부분의 속성은 private으로 설정한다.
부분 공개(protected, #) 다른 클래스가 접근할 수 없고 해당 클래스의 메서드와 클래스를 상속받은 하위 클래스만 접근할 수 있다.

클래스 다이어그램의 예

sw_7_1_2

  • 학생은 여러 과목을 수강할 수 있음
  • 학생은 하나의 학교에 소속되어 있음
  • 교수는 하나의 학교에 소속되어 있음
  • 교수 한 명은 여러 과목을 강의
  • 교수 한 명은 여러 명의 학생을 상담

4. 순차 다이어그램

순차 다이어그램

순차 다이어그램

  • 실행 시점에 객체들이 어떻게 상호 동작하는지를 메시지 순서에 초점을 맞춰 나타낸 것
  • 어떠한 작업이 객체 간에 발생하는지를 시간 순서에 따라 쉽게 파악할 수 있음

순차 다이어그램의 구성요소

객체

  • 순차 다이어그램에서 객체는 메시지를 보내고 받는 것
  • 객체명: 클래스명 으로 나타내며 한쪽은 생략할 수 있음

객체 생명선

  • 객체의 생존 기간을 나타내며 X 표시는 객체가 소멸하는 시점
  • 위에서 아래로 내려가는 점선으로 나타냄
  • 생명선을 따라 나타나는 직사각형은 활성 구간으로 객체의 메서드가 실행되고 있음을 나타냄
  • 구간의 길이는 메서드 의 실행 시간을 나타냄
  • 활성 구간은 반드시 존재하는 것은 아니며 생략 가능

순차 다이어그램의 구성요소

메시지

  • 객체와 객체의 상호작용을 표현하는 것으로 화살표를 이용
  • 화살표 위에는 수신 객체의 함수명을 명기

동기 메시지

  • 송신 객체가 수신 객체에 서비스를 요청(메서드 호출)하면 메서드 실행이 완료될 때까지 기다림
  • 실선과 속이 채워진 삼각형으로 나타냄 ----‣

비동기 메시지

  • 송신 객체가 수신 객체에 서비스를 요청(메서드 호출)할 때 메서드의 실행과 상관없이 다음 작업을 수행
  • 수신 객체로부터의 반환도 기다리지 않는다.
  • 일반 화살표 모양으로 나타냄 ---->

재귀 메시지

  • 수신 객체가 자신의 메서드를 호출할 때 사용

답신 메시지

  • 호출 메서드의 결과를 반환할 때 사용한다. 점선과 속이 채워진 삼각형으로 나타냄

순차 다이어그램의 작성 과정

시나리오 정의

  • 수정사항이 많이 발생할 우려가 있으므로 시나리오를 명확히 정의한 후에 그것을 토대로 순차 다이어그램을 작성

다이어그램과 시나리오의 1 : 1 대응

  • 하나의 이벤트에 여러 개의 시나리오가 나올 경우 시나리오마다 각각의 다이어그램으로 표현

시나리오 분할

  • 하나의 이벤트가 너무 길면 시나리오를 여러 개로 나누어 작성하는 것이 좋음

순차 다이어그램

순차 다이어그램의 작성 과정

sw_7_1_3

5. 통신 다이어그램

통신 다이어그램

통신 다이어그램

  • 객체 간 상호작용 관계에 주목
  • 화살표 위에 적힌 번호로 순서를 알 수 있음

    링크

  • 객체 간에 메시지를 주고받는 관계
  • 통신 다이어그램에서는 링크를 사용해 객체 간의 관계를 표현

sw_7_1_4

6. 활동 다이어그램

활동 다이어그램

활동 다이어그램

  • 흐름도와 비슷하나 객체의 행위를 나타낸다는 점에서 다름
  • 상위 수준에서는 업무의 흐름을 표현하고 분석 단계에서는 유스케이스의 구체적인 흐름(이벤트 흐름)을 나타냄
  • 설계 단계에서는 클래스 내부 동작에 대한 알고리즘이나 구체적인 로직을 표현

활동 다이어그램의 구성요소

시작/종료 상태, 활동

  • 시작/종료 상태, 활동
  • 시작점: 활동의 시작을 나타내며 속이 채워진 원으로 표기
  • 종료점: 활동의 종료를 나타내며 이중 원으로 표기
  • 활동: 일의 처리와 실행을 나타내며 모서리가 둥근 사각형으로 표기
  • 전이: 활동 간의 이동을 나타내며 화살표로 표기

sw_7_1_5

분기와 병합

  • 분기 : 조건에 의해 두 가지 경로로 나뉘는 위치이며 마름모를 사용 / 조건문은 마름모 옆에 « » 기호로 작성
  • 병합 : 분기되어 각 활동을 수행하다가 합쳐지는 위치를 나타내며 분기와 같이 마름모를 사용 / 생략이 가능

sw_7_1_6

활동 다이어그램

활동 다이어그램의 구성요소

  • 동기화 막대
    • 여러 활동을 병행할 때 사용하는 것으로 동시 처리의 시작과 끝을 나타냄

sw_7_1_7

신호

  • 활동 사이의 거래는 제어 신호를 보내는 방식으로 이루어짐

sw_7_1_8

구획면

  • 수영장의 레인을 의미하는데 수영 선수가 자신의 레인을 넘어가면 안 되는 것처럼 해당 레인을 책임지는 객체가 있음

7. 상태 다이어그램

상태 다이어그램

상태 다이어그램

  • 이벤트 발생이나 시간의 흐름에 따라 바뀌는 객체의 상태를 나타냄

상태 다이어그램의 구성요소

상태

  • 객체가 존재할 수 있는 조건
  • 객체의 존재 가능한 모든 상태가 파악되어야 함
  • 상태는 모서리가 둥근 사각형으로 표현

전이

  • 객체의 상태가 바뀌는 것을 나타내며 화살표를 사용해 표현

이벤트

  • 객체의 상태를 바뀌게 하는 자극
  • 화살표로 나타낸 전이 위에 « » 기호를 사용해 작성

sw_7_1_9

8. 컴포넌트 다이어그램

컴포넌트 다이어그램

컴포넌트 다이어그램

  • 구현 관점에서 정적 모델링을 할 때 사용하는 것
  • 어떤 실행 모듈이 존재하고 이들이 서로 어떤 연관성이 있는지의 종속 관계를 나타냄
  • 사용자에게 논리적 또는 물리적 시스템의 구조를 볼 수 있게 해줌

컴포넌트 다이어그램의 구성요소

컴포넌트

  • 컴포넌트는 시스템을 구성하는 물리적인 요소로 프로그램 코드를 포함
    • <<executable>> : 실행 파일(.exe)
    • <<library>> : DLL 같은 정적 또는 동적 객체 라이브러리
    • <<table>> : 데이터베이스 테이블
    • <<file>> : 원시 코드를 포함하는 파일

인터페이스

  • 클래스 모양으로 나타내거나 아이콘을 사용해 간략하게 표현할 수 있음

sw_7_1_10

의존 관계

  • 서로 영향을 주고받는 관계를 말함
  • 컴포넌트 간 연결은 점선 화살표로 나타내며 의존하는 쪽으로 화살표가 연결

sw_7_1_11

컴포넌트 다이어그램의 작성 과정

컴포넌트 대상 정의

  • 무엇을 컴포넌트로 할지 정함

컴포넌트 찾기

  • 컴포넌트 다이어그램에 포함할 컴포넌트를 식별

컴포넌트 배치

  • 컴포넌트 다이어그램에 컴포넌트를 배치하고 이름을 붙여줌
  • 필요하다면 인터페이스를 정의하고 컴포넌트와 실현 관계로 연결

의존 관계 정의

  • 컴포넌트 간 의존 관계를 정의

  • 각 컴포넌트의 인터페이스를 원으로 표시하고 인터페이스에 대한 실현은 컴포넌트와 연결

sw_7_1_12

9. 배치 다이어그램

배치 다이어그램

배치 다이어그램

  • 하드웨어 자원을 명시적으로 정의해 시스템의 물리적인 요소를 모델링하고 노드 간의 관계를 나타냄
  • 노드: 시스템을 구성하는 처리 장치로 실행 파일 수준의 컴포넌트가 탑재된 하드웨어를 말함
  • 노드를 연결하는 관계는 다양한 통신 방식을 의미

sw_7_1_13

  • 학사관리 서버는 교내 정보전산원에 설치
  • 인사관리 서버는 교내 정보전산원에 설치
  • 회계관리 컴포넌트는 국립대학교 전체가 동일한 것을 사용하고 서버는 국가 데이터센터에 배 치하는 것으로 간주
  • 메일 서버는 교외의 데이터센터에 설치

댓글남기기