Creative Commons License

Software Dev

프로그래밍기본
객체지향
프로젝트관리
알고리즘
데이타베이스

소프트웨어 개발에 필수적이고 필요한 주제에 대한 강의 및 공유

.

객체지향

객체재향 프로그래밍 패러다임과 각종 기법 및 방법론에 대해 다룹니다

[UML] Activity Diagram

작성자 : 박종명
최초 작성일 : 2008-05-14 (수요일)
최종 수정일 : 2008-05-14 (수요일)
조회 수 : 4057

Key Word

Activity Diagram

비즈니스 프로세스, 특정 업무(기능)의 처리과정, 특정 오퍼레이션의 수행 과정, 동작 단계, 작업 과정

 

1. Flowchart (플로우 차트)  

특정한 목적을 달성하기 위해 처리과정을 담은 것을 플로우 차트라고 한다.

이 목적을 달성하기 위해서는 여러 단계를 거치게 되고 특정 조건에 의해 분기되기도 하고 특정 위치에서 동시 다발

적으로 뻗아 나가기도 한다. 실제로 플로우 차트는 UML 의 보편화 이전에도 그리고 보편화 이후에도 많은 곳에서 사용되는 아주 표현력 강한 수단이다. 그리고 데이터의 전송정보를 나타내는 DFD(Data Flow Diagram), 퍼트(Pert) 차트도 플로우 차트와 유사하게 어떠한 것에 대한 처리과정,흐름을 도식화 하는 수단으로 많이 사용된다

 

 

2. 활동(Activity) 다이어그램  

플로우 차트에 해당하는 UML 다이어그램이 바로 Activity Diagram 이다.

시스템의 특정 기능 또는 특정 비즈니스 실현을 위해 발생하는 처리과정의 전반을 담을 수 있는 아주아주 유용한 다이어그램이다. 특정한 목적을 달성하기 위한 처리과정 속에는 각각의 단계가 있고 특정 조건에 의해 분기되는 경우도 있으며 동시에 발생하는 이벤트도 포함한다. 이 모든 개념을 도식화 할 수 있는 수단이 바로 활동(Activity) 다이어그램의 역할이다.

 

2.1 시퀀스 다이어그램과는?

시퀀스 다이어그램 역시 특정 비즈니스, 기능 실현을 위해 구체적인 논리 흐름을 나타낸다.

그러나 시퀀스에서는 객체간의 메시지를 이용한 상호연동(교류)을 시간의 흐름에 따라 상세히 기술하는 반면 활동 다이어그램에서는 객체간의 교류는 관심이 없다. 처리과정(활동)이 중요할 뿐이다.

 

2.2 활동(Activity) 다이어그램의 용도

활동(Activity) 다이어그램은 논리적인 처리과정이 있는 모든 대상을 상대로 그려질 수 있다.

특히 비즈니스를 돕는 소프트웨어일 경우 비즈니스 도메인에 대한 이해가 무엇보다도 중요하다. 실제 사용자가 업무를 처리하기 위한 업무처리 과정을 소프트웨어에 정확히 반영할 수 없다면 실패한 소프트웨어임에 틀림없을 것이다.

 

① 비즈니스(업무) 처리과정 기술 (비즈니스 활동)

   : 사람이 하는 모든 일에는 그 처리과정이 있다. 특히 비즈니스를 위한 업무에는 보다 더 복잡다변 한 처리과정이

     있기 마련이다. 이러한 과정을 효과적으로 기술 할 수 있다.

 

② 시스템의 알고리즘, 연산 수행을 위한 Logic 기술 (오퍼레이션 활동)

   : 시스템 내부의 알고리즘 역시 처리과정이 존재한다. 처리과정을 가진 모든 것은 활동 다이어그램으로 표현할 수

     있다.

 

 

3. 활동(Activity) 다이어그램 구성요소

이 다이어그램에서는 처리과정에 포함되어질 소시지 모양의 활동  마름모 모양의 조건둥근모양의 시작점’,’종료점그리고 긴 얇은 직사각형 모양의 동시경로로 구성되다. 아래로 향하 화살표는 진행과정(방향)을 나타낸다.



3.1 시작점, 종료점

당연한 말이지만 모든 과정에는 시작과 끝이 존재한다. 
Activity Diagram 에서의 시작과 종료는 아래와 같은 모양으로 표시한다

: 시작점

: 종료점

 

3.2 활동(동작)


처리과정 중 각 단계별로 행해지는 동작(활동)을 나타낸다. 왼쪽 그림처럼 소시지 모양으로 표시한다

3.3 조건

처리과정에는 특정 조건에 의한 분기를 포함할 수 있다. 조건에 의해 분기되는 지점을 결정위치라고 하는데 아래처럼 마름모꼴로 표시한다. 이 마름모꼴의 결정위치에서 조건에 의해 처리경로가 분기되는데 이때 조건은 분기된 화살표에 대괄호로 감싸서 표시한다


3.4 동시경로

처리과정 중에는 특정 활동(동작)이 동시에 같이 실행되다가 하나로 모이는 경우가 발생할 수 있다. 이 경우 두 개의 처리경로를 동시에 실행되는 부분을 속이 찬 긴 직사각형으로 표시한다. 또한 두 경로가 다시 하나로 합쳐질 경우에도 이 표식이 사용된다.



3.5 구획면


누가 그 활동(동작)을 하는가를 명확히 구분할 수 있는 방법을 제공해 준다.

Swim Lane 이라고 하는 구획면을 이용하면 된다. , 처리과정 중에 발생하는 각 동작(활동)의 책임이 누구에게 있는지를 나타낸다. 구획면은 사람이 될 수도 있고 시스템이 될 수도 있다. 각 동작을 수행하는 주체이기만 하면 된다.  

 

참고>>

구획면을 표시해도 되고 하지 않아도 된다.

처리과정 자체가 궁금한 것이라면 구획면 없이 처리과정만 있어도 될 것이다.

그러나 각 단계에서 발생하는 동작들에 대한 실제 수행역할을 책임지는 개체를 알고 싶다면 구획면을 나눠주는게 좋을 것이다.

 


4. ‘신호라는 것도 있다.

 

이것 역시 Activity Diagram 의 구성요소이다.

(개인적으로 시그널 정보를 포함한 Activity Diagram 을 쉽게 볼 수는 없었다)

각 동작(활동)이 처리되는 과정중에 신호를 보낼 수 있다. 신호가 보내어지면 그 신호를 받은 쪽은 활동을 개시해야 한다.

 

시그널은 다음과 같은 경우에 사용하면 다이어그램이 보다 상세해 질 수 있다.

① 비동기적인 흐름을 나타내고 싶을 경우

② 각 활동(단계) 간의 이동 중 발생하는 상황을 보다 명확히 하고 싶을 경우

③ 기타 개인적인 목적에 의해 ^^;

 

Activity Diagram 에서 신호는 다음 그림처럼 오각형 모양으로 표시한다



신호발신 : 출력 사건(output event)

신호수신 : 입력 사건(input event)

 

5. 결론

 

Work Flow 는 아주 보편적이고 중요한 문서이다.

많은 사람들이 UML 에서 정의한 Activity Diagram 의 형태가 아니라도 플로우차트와 기타 개인만의 표식으로 그려진 작업 처리과정에 대한 많은 문서들을 그려왔을 것이다. 작업 처리과정은 실제 시스템의 내부 처리과정일 수도 있지만 특정 업무의 처리과정일 수도 있다.

이중에서 비즈니스를 이해하기 위한 Activity Diagram 의 경우 소프트웨어 분석 단계에 반드시 행해져야 할 것이다.

특정 비즈니스의 문제해결을 위한 소프트웨어를 개발할 생각이라면 해당 비즈니스에서 어떤 일을 어떻게 처리해야 하는지 아는 것이 바로 비즈니스 도메인을 이해하는 것이다.

 

Activity Diagram 은 개인적으로도 상당히 유용하게 사용하는 다이어그램이며 이것은 개발자 뿐만 아니라 분석가, 사용자, 기타 프로젝트 이해관계자 모두에게 쉽게 해석되고 유용하게 사용되는 다이어그램임에 틀림없을 것이다.


이름
비밀번호
홈페이지
VJ <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요