며칠 전에 어린 아들에게 처음으로 심부름을 시켰습니다. 아이는 아직 돈에 대한
개념도 없고, 혼자 집 앞의 가게에서 물건을 사 본적도 없어서 설명하는데 애를
먹었습니다. 우선 아이에게 물건을 사서 집에 돌아오기까지 순서를 이야기해
주었습니다.

1. 10,000원을 주머니에 잘 넣어라.
2. "해피데이" 슈퍼에 가라.
3. 주인 아주머니에게 인사를 하고 "XX아이스크림 주세요" 하고 말해라.
4. 아주머니에게 10,000원을 주어라.
5. 아이스크림과 잔돈을 받아라.
6. 잔돈을 호주머니에 잘 넣어라.
7. 집으로 와라.

아이는 이해는 했지만 어렵고 자신없어 했습니다. 그래서 이번에는 물건을 사오는
순서를 그림으로 그리고 번호를 매겨가며 설명했습니다. 아이는 그 그림을 들고
가더니, 아이스크림을 사서 오는데 성공했습니다. 여기서 그린 그림이 액티비티
다이어그램이라고 할 수 있습니다.

이번에 학습하실 내용은 절차와 순서를 표현할 수 있는 액티비티 다이어그램입니다.
자, 이제 시작해 볼까요?


1.개요
 




액티비티 다이어그램은 "업무영역이나 시스템 영역에서
다양하게 존재하는 각종 처리로직이나 조건에 따른
처리흐름을 순서에 입각하여 정의한 모델
"입니다.

액티비티 다이어그램은 하나의 액티비티에서 다음
액티비티로 순서가 바뀌면서 처리되는 과정을 표현하기
때문에 순서와 분기와 처리절차의 표현을 필요로 하는
대상에 대해 제한없이 적용이 가능합니다.
 


액티비티 다이어그램은 다양한 목적과 용도로 사용됩니다. 액티비티 다이어그램이
사용되는 분야도 매우 다양합니다. UML의 9개 다이어그램 중 아마도 가장 범용적인
분야에서 다양하게 사용되는 다이어그램도 없을 것입니다.

액티비티 다이어그램을 작성하는 목적과 용도는 다음과 같습니다.
대상에 상관없이 처리 순서를 표현하기 위해 작성합니다.

액티비티 다이어그램은 액티비티와 액티비티의 순서를 표현할 목적으로 작성됩니다.
그 대상이 비즈니스 영역이든 시스템 영역이든 로직과 처리순서의 표현이 필요할
경우, 액티비티 다이어그램을 사용합니다. 그래서 그 용도는 무척 다양합니다.
시스템 관점에서 프로그램 사양을 작성하는 곳, 비즈니스 관점에서 영업사원의
영업업무 프로세스를 표현하는 곳에도 사용할 수 있습니다.
비즈니스 프로세스를 정의합니다.

액티비티 다이어그램의 적용 영역에서 가장 훌륭하게 사용되는 대상 중의 하나는
비즈니스 프로세스의 분석입니다. 시스템화 대상영역에 속한 현재 업무분야의
비즈니스 처리흐름을 표현(As-Is 프로세스 분석) 하거나 향후 변화된 비즈니스 처리
흐름(To-Be 프로세스 분석)을 작성할 수 있습니다.
프로그램 로직을 정의합니다.

액티비티 다이어그램은 프로그램의 사양을 정의하는데 보조적으로 사용됩니다.
프로그램은 다양한 처리 흐름을 가지고 있습니다. 복잡한 처리 흐름을 자연언어로
기술하는 것은 부적절합니다. 작성하는 과정도 어렵거니와 작성된 사양을 정확히
이해하기도 무척 힘이 듭니다. 액티비티 다이어그램은 처리 흐름을 도식화하여
간단하고 명료하게 처리로직을 표현함으로써 작성과 이해가 용이합니다.
유즈케이스를 실현(Realization)합니다.

프로젝트 초기에 정의된 유즈케이스는 프로그램으로 의해 구현되기 전에 설계되어야
합니다. 유즈케이스를 액티비티 다이어그램을 이용해 실현하는 경우, 객체를
정의하거나 객체간 상호작용을 분석하는 형태가 아니라, 유즈케이스의 처리흐름을
순서도처럼 상세히 기술하는 형태로 작성됩니다. 그러나 이 경우 비슷한 용도로
작성되는 유즈케이스 정의서가 존재하기 때문에 액티비티 다이어그램으로
유즈케이스를 실현하는 것은 흔한 사례는 아닙니다.



액티비티 다이어그램을 작성하는 시기는 그 적용 영역이 다양한 것처럼 한정되어 있지
않고, 다음의 시기에 작성될 수 있습니다.
업무 프로세스 정의 시점

비즈니스 프로세스를 정의하는 용도로 액티비티 다이어그램을 작성할 수 있습니다.
유즈케이스 정의서(Use case Description) 작성 시점

유즈케이스 정의서에서 유즈케이스의 처리절차를 기술하는 부분에 액티비티
다이어그램을 작성할 수 있습니다.
오퍼레이션 사양 정의 시점

클래스 오퍼레이션의 사양을 액티비티 다이어그램을 적용하여 작성할 수 있습니다.
기타

기타 처리흐름이나 처리절차가 필요한 시점이면 언제나 액티비티 다이어그램이
작성될 수 있습니다.
액티비티 다이어그램을 작성하기 위해서 준비물 및 선행과정은 특별히 없습니다.
 
2.구성요소
 


액티비티 다이어그램의 구성요소는 다음과 같습니다.
Things 혹은 심볼 : 액티비티(Activity), 시작점(Initial State), 종료점(Final State),

                             판단(Decision,Branch), Synchronization Bar
Relationships : 전이(Transition)
기타 요소 : Swim Lane
 


 


액터의 표기


액티비티는 모서리가 둥근 사각형으로 표기하며, 액티비티 명은
심볼 내에 표기합니다.
액터의 정의

액티비티는 행위나 작업을 의미합니다.
액티비티의 크기는 작성 대상에 따라 유동적이며, 한 액티비티 다이어그램에서는

액티비티의 크기가 균일한 것이 바람직합니다.
액티비티는 최소 단위가 아니며 내부적으로 구조를 가질 수 있는 단위입니다.
액티비티는 해당 작업의 종료 시점을 명확히 정의하기가 힘듭니다.
액터의 예

결재 시스템 결재내용입력, 결재자 지정, 결재상신, 기안 내용조회, 결재,
반려, 통보 등
전자 상거래 시스템 상품조회, 구매결정, 결재, 배달 등


시작점, 종료점의 표기


시작점과 종료점은 원 모양으로 표기하는데, 시작점은 속이 꽉
채워진 원
으로, 종료점은 속이 채워진 원에 바깥의 또 다른 원
둘러싸고 있는 모양으로 표기합니다.
시작점, 종료점의 정의

시작점
처리 흐름이 시작하는 곳을 의미합니다.
모든 처리 흐름은 시작점으로부터 개시되어 전개됩니다.
종료점
처리 흐름이 종료하는 곳을 의미합니다.
모든 처리 흐름은 종료점에서 처리 흐름을 완료합니다.


판단(Decision)의 표기


판단은 속이 빈 마름모꼴로 표기하며, 명칭이나 기타 장식이 붙지
않습니다.
판단(Decision)의 정의

판단은 분기가 일어나는 곳입니다.
논리식의 결과 값에 따라 두 곳 이상의 흐름으로 분기가 일어납니다.
처리 흐름은 논리식의 결과에 따라 처리 흐름이 나누어져 전개되는 것은 매우

흔하게 일어나는 일입니다.

판단(Decision)에는 행위가 포함되어 있을까요?

판단에는 행위가 포함되지 않습니다. 단순히 분기가 일어나는 곳입니다. 분기에
필요한 행위는 판단 바로 전의 액티비티가 수행합니다. 예를 들어 사과 값이 1000원
이하면 사고, 그렇지 않으면 사지 않는다는 분기를 생각해 볼 때, 사과 값이
얼마인지 확인하는 행위는 판단(Decision)이 수행하지 않습니다. 이를 액티비티
다이어그램으로 표현하면 다음과 같습니다.
 


Synchronization Bar의 표기


두꺼운 실선으로 표기하며, Synchronization Bar는
대부분 수평선으로 표기되나, 수직선으로 표기할 수도
있습니다.
Synchronization Bar의 정의

Synchronization Bar는 병렬 처리절차가 시작되거나 모이는 곳입니다.
종종 둘 이상의 처리 절차가 그 수행순서에 상관없이 병렬로 진행될 경우가

있습니다.
Synchronization Bar로부터 분기해서 다음 Synchronization Bar로 모일

때까지의 처리 절차는 병렬로 수행됩니다.
Synchronization Bar에 이어진 액티비티가 수행되기 위해서는 병렬로 수행되는

Synchronization Bar상의 모든 처리절차가 끝나야 합니다.
Synchronization Bar의 예



전이(Transition)의 표기


화살표가 달린 실선으로 표기하며, 액티비티의 배치에
따라 수평선이나 수직선으로 표기합니다.
전이(Transition)의 정의

전이(Transition)는 하나의 액티비티가 행위를 완료하고 다른 액티비티로

처리순서가 옮겨지는 제어 흐름을 표현합니다.
하나의 액티비티에서 여러 개의 전이(Transition)가 나가기도 하고, 들어오기도

합니다.



Swim Lane의 표기

Swim Lain은 영역으로 표현을 하며, 액티비티 다이어그램의 제일 위쪽에서
아래쪽까지 수직방향으로 공간을 구분하는 방식으로 표현합니다. 이것은 그 모양이
마치 실내 수영장의 트랙( swim lane ) 같다고 해서 swim lane이라는 이름이
붙여졌습니다.

Swim lane의 정의

Swim lane은 여러 가지 용도로 쓰일 수 있습니다.
업무 조직의 구분일 수 있고, 개인의 역할에 따른 구분이기도 합니다.
Swim lane의 영역 내에 정의된 액티비티는 그 Swim lane이 관장하고

ownership을 가집니다.
Swim lane을 표현함으로써 누가(swim lane) 무엇을 한다(액티비티)라는 식의

표현이 가능해 집니다.
Swim lane의 예




3.사례연구
 

아래에 기술된 문제영역은 모델링의 대상이 되는 주제와 이것과 관련된 주변정보를
제공합니다. 이 문제영역을 분석하여 액티비티 다이어그램을 작성해 보세요.
그런 다음 다이어그램 보기 버튼을 클릭하여 액티비티 다이어그램과 비교해 보시기
바랍니다.

사례 2와 동일한 업무절차에 대해 swim lane을 추가하여 생각해 봅시다. 업무의
역할(조직)은 sales person, consultant , corporate technician의 3자가
존재한다고 가정해 봅시다.

sales person은 고객과 접촉하여 약속을 잡고, 고객과 미팅을 가지고, 후속서한을
발송하는 액티비티를 담당합니다. consultant는 회의실을 준비하고 고객과 미팅을
가지고, 제안서를 만들고, 고객에 발송하는 일을 책임집니다.
corporate technician은 노트북을 준비하는 일을 책임집니다. 이상과 같은 역할이
추가된 액티비티 다이어그램을 작성해 봅시다. 역할은 swim lane으로 표현하도록
합니다.
 
 
사례 2에 swim lain을 추가하여 모델링한 예입니다.


4. 작성단계 및 주의사항
 

먼저, 액티비티 다이어그램의 작성순서를 알아보겠습니다.


작성 대상을 선정합니다.

액티비티 다이어그램의 작성 대상을 선정합니다.
대부분의 경우 액티비티 다이어그램은 업무 프로세스를 모델링하거나, 오퍼레이션
사양을 정의하는 용도로 사용됩니다.
필요할 경우 Swim lane을 정의합니다.

대상영역에 명확한 역할을 정의할 수 있을 경우,역할을 식별하여 swim lane으로
표현합니다. swim lane은 필수적으로 정의해야 하는 것은 아닙니다.
액티비티를 사용하여 처리 절차를 모델링 합니다.

처리 절차를 모델링 할 경우 시작점과 끝점이 표현되어야 하고 처리흐름이 도중에
끊겨 미아상대가 되지 말아야 합니다.
 


다음은 액티비티 다이어그램 작성 시 주의사항입니다.
해당 부분을 이해하는데 필수적인 요소들만 표현합니다.

모델에서 장황한 부가 요소를 포함하는 것은 바람직하지 않습니다.
분석 대상의 본질을 이해하는 데 꼭 필요한 요소들만 모델에 정의하는 것이 좋습니다.
추상화 수준에 맞는 상세성을 일관되게 제공합니다.

모든 모델이 마찬가지 입니다만, 한 장의 모델에는 동일한 상세화 레벨이 유지되어야
합니다. 서로 다른 추상화 레벨의 액티비티들이 섞여 있으면 의미를 파악하기 힘들게
됩니다.
중요한 의미를 이해하기 적절한 단위로 표현한다.

액티비티의 크기는 일정해야 합니다. 서로 완전히 다른 단위의 액티비티가 섞여 있을
경우 모델의 완전성을 도모할 수 없습니다.
목적을 전달할 수 있는 명칭의 부여한다.

액티비티 명칭을 비롯해 쓰이는 모든 명칭들은 명확한 표현을 사용해야 합니다.
모호한 명칭으로 정의되면 혼란만 야기 시키는 결과가 됩니다.
주 흐름으로부터 시작하여 전이, 분기, 동시성을 표현합니다.
교차선이 최소화 하도록 요소를 배치해야 합니다.
중요한 부분은 Note, Color 등을 이용하여 시각적 효과를 사용하면 좋습니다.
 

[출처] Status Diagram|작성자 자스

+ Recent posts