맨위로가기

활동 다이어그램

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

활동 다이어그램은 UML(Unified Modeling Language)에서 정의된 것으로, 시스템의 동적 측면을 시각적으로 표현하는 데 사용된다. UML 1.0에서 처음 정의되었고, UML 2.0에서 페트리넷과 유사한 의미론을 기반으로 확장되어 다양한 도메인에서 활용된다. 활동 다이어그램은 시작 노드, 액션, 디시전, 포크, 조인 등 제한된 수의 도형과 화살표로 구성되며, 흐름의 제어 및 데이터의 이동을 나타낸다. 소프트웨어 개발, 비즈니스 프로세스 모델링 등 다양한 분야에서 활용될 수 있다.

2. 역사

UML 1.0에서 제정되었고 UML 2.0에서 크게 확장되었다.[4] UML 1.x에서 활동 다이어그램은 상태 다이어그램의 특수한 형태였지만,[6] UML 2.x에서는 페트리넷과 유사한 의미론을 기반으로 재정의되어 활용 범위가 넓어졌다.[7] 이러한 변경으로 인해 UML 1.x 활동 다이어그램은 UML 2.x에서 다르게 해석된다.

3. 작성 방법

활동 다이어그램은 제한된 수의 도형과 화살표를 연결하여 구성된다.[4] 가장 중요한 도형 유형은 다음과 같다.


  • ''타원''은 ''액션''을 나타낸다.
  • ''다이아몬드''는 ''결정''을 나타낸다.
  • ''막대''는 동시 활동의 시작(''분할'') 또는 종료(''결합'')를 나타낸다.
  • ''검은 원''은 워크플로우의 시작(''초기 노드'')을 나타낸다.
  • ''검은 원 안에 원이 있는 도형''은 종료(''최종 노드'')를 나타낸다.


화살표는 시작에서 종료 방향으로 흐르며 활동이 일어나는 순서를 나타낸다.

활동 다이어그램은 구조화된 순서도와 전통적인 데이터 흐름 다이어그램을 결합한 형태로 간주될 수 있다. 일반적인 순서도 기법은 동시성을 표현하는 구성을 갖추고 있지 않다.[5] 활동 다이어그램은 소프트웨어 처리뿐만 아니라 업무의 흐름을 나타내는 데에도 사용된다. 시작 노드 "●"와 종료 노드 "◉"를 기재하고, 그 사이에 처리를 화살표로 연결하여 기재하며, 필요에 따라 분기 등을 기재한다. 상태 머신 다이어그램과 달리, 둥근 모서리 직사각형으로 그리는 것은 (상태가 아니라) 처리나 동작임에 주의한다.

4. 주요 요소 (UML 2.0 기준)

활동 다이어그램은 제한된 수의 도형과 화살표로 연결하여 구성된다.[4] 가장 중요한 도형 유형은 다음과 같다.


  • ''타원''은 ''액션''을 나타낸다.
  • ''다이아몬드''는 ''결정''을 나타낸다.
  • ''막대''는 동시 활동의 시작(''분할'') 또는 종료(''결합'')를 나타낸다.
  • ''검은 원''은 워크플로우의 시작(''초기 노드'')을 나타낸다.
  • ''검은 원 안에 원이 있는 도형''은 종료(''최종 노드'')를 나타낸다.


화살표는 시작에서 종료 방향으로 흐르며 활동이 일어나는 순서를 나타낸다.

UML 2.x에서 활동 다이어그램은 페트리넷과 유사한 의미론을 기반으로 재형식화되어, 활동 다이어그램을 사용하여 모델링할 수 있는 상황의 범위를 넓혔다.[7]

{| class="wikitable"

|-

! 그림 !! 명칭 !! 설명

|-

| style="text-align:center;" | -- || 시작 노드 || 검은 원으로 흐름의 시작점을 나타낸다.

|-

| style="text-align:center;" | -- || 활동 종료 노드 || 눈알 기호(◉일본어)로 액티비티 전체의 종료를 나타낸다.

|-

| style="text-align:center;" | -- || 흐름 종료 노드 || 안에 ×(⊗일본어)로 흐름의 종료점을 나타낸다. 병렬 동작이 있는 경우, 액티비티 전체의 종료가 아닐 수도 있다.

|-

| style="text-align:center;" | ↓ || 액티비티 엣지 (흐름) || 화살표로 제어 또는 데이터의 흐름 경로를 나타낸다. 제어 흐름과 객체 흐름이 있다.

|-

|
50px
|| 액션 || 모서리가 둥근 사각형으로 둘러싸인 문장으로 액션(처리)을 나타낸다. 액션 노드라고도 한다.

|-

| style="text-align:center;" |

객체



| 객체 노드 || 사각형으로 객체 또는 데이터를 나타낸다. 액션에서 객체로 화살표가 그려지고, 객체에서 액션으로 화살표가 그려진 그림에서, 액션에서 (하나의) 액션으로 객체가 전달(이동)되는 것을 나타낼 수 있다.

|-

| style="text-align:center;" | ╭━━━━╮
┃처리  ┃
┃ ○→○┃
╰━━━━╯ || 서브 액티비티 || 모서리가 둥근 사각형 안에 「○→○」를 표시하여, 다른 액티비티 다이어그램에서 상세 내용이 작성된 동작을 나타낸다.

|-

| style="text-align:center;" | ↓ [조건 A]
◇───→

│[조건 B]
↓ || 디시전 (Decision)

| 흐름의 분기점을 마름모로 나타낸다. 분기 조건은 각 화살표 옆에 괄호로 기재한다 (순서도와 달리 마름모 안에 문자는 쓰지 않는다).

|-

| style="text-align:center;" | ↓
◇←──

↓ || 머지 (Merge)

| 분기된 흐름이 합류하는 점도 마름모로 나타낸다. 조인과는 달리 제어 (토큰)가 어느 유입 엣지에 도달하면 제어가 유출 엣지로 흘러간다 (토큰의 증감은 없다). 순서도와 달리 분기에 대한 합류에서는 액션에 여러 엣지가 가도록 작성해서는 안 된다.

|-

| style="text-align:center;" | ↓
━━━━━
↓ ↓ || 포크 (Fork) || 굵은 선으로 여러 처리가 병렬로 수행되는 부분의 시작을 나타낸다.

|-

| style="text-align:center;" | ↓ ↓
━━━━━
↓ || 조인 (Join) || 굵은 선으로 여러 처리가 병렬로 수행되는 부분의 종료를 나타낸다. 이 위의 처리가 모두 종료된 후에 다음 처리로 전환이 가능하다.

|-

| style="text-align:center;" | □ || 핀 (Pin) || 액션 노드에 부착된 작은 정사각형으로, 액션에 입력되는 객체 또는 출력되는 객체를 나타낸다.

|-

| style="text-align:center;" | ╭┅┅┅┅╮
┇    ┇
┇    ┇
╰┅┅┅┅╯ || 확장 영역 || 모서리가 둥근 파선으로 반복하는 처리 등을 둘러싼다. 왼쪽 상단에 처리 종류를 이중 산형 괄호로 기재하며 《iterative》가 순차 처리, 《parallel》이 병렬 처리, 《stream》이 일괄 처리를 나타낸다.

|-

| style="text-align:center;" |

     



|| 확장 노드 || 확장 영역의 사이드 점선 위에 겹쳐 기재하고 화살표로 흐름의 출입을 표현한다.

|-

| style="text-align:center;" | || 타이머 이벤트 || 「▽」와 「△」를 상하로 연결한 그림으로 타이머에 의한 처리로 인한 이벤트를 나타낸다.

|-

| style="text-align:center;" | ──
 /
 ──→ || 예외 처리 || Z자형 화살표로 예외가 발생했을 때 화살표의 처리를 수행한다.

|}

4. 1. 시작 노드

검은 원으로 표시하며, 활동의 시작점을 나타낸다.[4]

4. 2. 활동 종료 노드

눈알(◉일본어) 모양으로 표시하며, 활동 다이어그램 전체의 종료를 나타낸다.[4]

4. 3. 흐름 종료 노드

흐름 종료 노드는 원 안에 ×(⊗일본어)로 표시되며, 흐름의 종료 지점을 나타낸다.[4] 병렬 동작이 있는 경우, 활동 전체가 종료되지 않을 수도 있다.[4]

4. 4. 액티비티 엣지 (흐름)

화살표로 표시하며, 제어 또는 데이터의 흐름 경로를 나타낸다. 제어 흐름과 객체 흐름이 있다.[4]

4. 5. 액션



모서리가 둥근 사각형으로 표시하며, 액션(처리)을 나타낸다. 액션 노드라고도 한다.[4]

4. 6. 객체 노드

객체 노드는 사각형으로 표시하며, 객체 또는 데이터를 나타낸다.[8] 액션과 액션 사이에서 객체가 전달(이동)되는 것을 나타낼 수 있다.[8]

4. 7. 서브 액티비티

둥근 모서리의 사각형 안에 '○→○'를 표시하여, 다른 활동 다이어그램에서 상세 내용이 작성된 동작을 나타낸다.[4]

4. 8. 디시전 (Decision)

마름모(◇)로 표시하며, 흐름의 분기점을 나타낸다.[4] 분기 조건은 각 화살표 옆에 괄호 안에 기재한다. (순서도와 달리 마름모 안에 문자는 쓰지 않는다).[4]

그림설명
↓ [조건 A]
◇───→

│[조건 B]
흐름의 분기점을 나타낸다.
분기 조건은 각 화살표 옆에 괄호로 기재한다.


4. 9. 머지 (Merge)

분기된 흐름이 합류하는 지점을 마름모(◇)로 나타낸다. 조인과는 달리, 제어(토큰)가 어느 한 유입 엣지에 도달하면 제어가 유출 엣지로 흘러가며, 토큰의 증감은 없다.[8] 순서도와는 다르게, 분기에 대한 합류에서는 액션에 여러 엣지가 연결되도록 작성해서는 안 된다.[8]

그림설명

◇←──

분기된 흐름이 합류하는 지점을 나타낸다. 제어(토큰)가 어느 유입 엣지에 도달하면 제어가 유출 엣지로 흘러간다(토큰의 증감은 없다).
참고: 순서도와 달리 분기에 대한 합류에서는 액션에 여러 엣지가 가도록 작성해서는 안 된다.


4. 10. 포크 (Fork)

굵은 선으로 표시하며, 여러 처리가 병렬로 수행되는 부분의 시작을 나타낸다.[8]

그림설명

━━━━━
↓ ↓
굵은 선으로 여러 처리가 병렬로 수행되는 부분의 시작을 나타낸다.


4. 11. 조인 (Join)

굵은 선으로 표시하며, 여러 처리가 병렬로 수행되는 부분의 종료를 나타낸다.[8] 이 위에 있는 모든 처리가 종료된 후에 다음 처리로 전환이 가능하다.

4. 12. 핀 (Pin)

액션 노드에 부착된 작은 정사각형으로, 액션에 입력되는 객체 또는 출력되는 객체를 나타낸다.

4. 13. 확장 영역

모서리가 둥근 파선으로 반복하는 처리 등을 둘러싼다. 왼쪽 상단에 처리 종류를 이중 산형 괄호로 기재하며, 《iterative》는 순차 처리, 《parallel》은 병렬 처리, 《stream》은 일괄 처리를 나타낸다.

4. 14. 확장 노드

{| class="wikitable"

|-

! 그림 !! 명칭 !! 설명

|-

| style="font-size:200%;text-align:center;"|

style="border:1px black solid;"|style="border:1px black solid;"|style="border:1px black solid;"|style="border:1px black solid;"|style="border:1px black solid;"|



|| 확장 노드 || 확장 영역의 사이드 점선 위에 겹쳐 기재하고 화살표로 흐름의 출입을 표현한다.

|}

4. 15. 타이머 이벤트

기호로 표현되며, '▽'와 '△'를 상하로 연결한 그림으로 타이머에 의한 처리로 인한 이벤트를 나타낸다.

4. 16. 예외 처리

Z자형 화살표로 예외가 발생했을 때 화살표의 처리를 나타낸다.

참조

[1] 서적 Unified Modeling Language 2.5.1 https://www.omg.org/[...] "[[Object Management Group]] Standards Development Organization (OMG SDO)" 2017-12
[2] 웹사이트 Glossary of Key Terms http://highered.mcgr[...] 2008-07-20
[3] 서적 The Unified Modeling Language Reference Manual Addison-Wesley 1999
[4] 간행물 OMG Unified Modeling Language Superstructure Specification, version 2.1.1 http://www.omg.org/c[...] Object Management Group 2007-02
[5] 서적 Software Engineering Pearson Education 2011
[6] 논문 "UML activity diagrams as a workflow specification language." Springer Berlin Heidelberg 2001
[7] 논문 semantics of uml 2.0 activities 2004
[8] 논문 "Model Checking of UML Activity Diagrams in Logic Controllers Design" Springer International Publishing Switzerland 2014



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com