본문 바로가기

더 괜찮은 개발자가 되기위한/시스템 설계하기

프로세스 설계

□ 프로세스 설계

○ 프로세스 설계란?


프로세스의 개념


비즈니스 프로세스는 고객에게 가치를 제공하기 위한 활동을 말한다. 비즈니스를 시스템으로 구현하기 위해 정의하는 프로세스는 입력을 자신이 제공하는 기능을 활용해 새로운 출력으로 바꾸는 일련의 과정을 말한다. 프로세스를 설계한다는 것은 데이터의 흐름인 입력과 출력 그리고 프로세스가 제공하는 기능을 시각화 도구를 활용해 업무 흐름에 맞게 배치하는 것이다.


프로세스 설계 도구에는 대표적으로 프로세스 맵(Process Map)DFD(Data Flow Diagram)이 있다. 프로세스 맵은 컨설팅 과정에서 비즈니스 프로세스를 정리하는 도구로 많이 활용되며 DFD는 과거 구조적 프로그램 설계 과정에서 많이 사용되었던 도구로써 데이터의 변화를 도식화할 수 있다.

 

○ 프로세스 맵


프로세스 맵은 업무 흐름을 시각적으로 표현하는 그림으로써 결과를 출력하는 일련의 이벤트로 구성된다. 프로세스 맵을 사용하면 프로세스와 관련된 사람과 데이터를 모두 확인할 수 있어, 비즈니스 컨설팅과 IT 프로젝트에서 프로세스 설계 작업에도 자주 사용되고 있다.


프로세스 맵의 표현법


프로세스 맵은 대표적으로 4가지 도구로 구성된다. 첫 번째 이벤트인데 업무의 시작과 끝을 나타낸다. 두 번째는 활동이다. 프로세스 맵은 활동을 사용해 업무가 구체적으로 어떻게 수행되는지 표현한다. 세 번째는 분기점이다. 의사 결정이나 업무 속성에 의해 업무 내용이 달라지는 경우에 사용된다. 프로그램에서 많이 사용하는 if문 역할을 한다고 생각하면 이해가 쉽다. 마지막으로 업무흐름이 있는데 이벤트, 활동, 분기점을 화살표를 사용해 서로 연결하면서 업무가 어떻게 흘러가는지 표현한다


프로세스 맵 사례

(출처: http://www.wikiwand.com/en/Swim_lane)


인터넷에서 프로세스 맵으로 검색하면 다양한 사례를 살펴볼 수 있다. 위 그림과 같이 프로세스 맵은 상단에는 프로세스의 사용 주체가 표시되고 사용 주체 별로 영역이 구분되어 각각의 프로세스를 표현하고 있다.

 

DFD (Data Flow Diagram)


DFD(Date Flow Diagram)는 데이터가 프로세스 흐름에 따라 변화하는 모습을 그림으로 표현하는 다이어그램이다. DFD는 시스템을 모형화할 때 유용한 도구로써 데이터와 프로세스를 함께 다룰 수 있는 장점이 있다.


DFD 표현법


DFD도 프로세스 맵과 유사한 표현법을 가지고 있다. 먼저 데이터 저장소가 있는데 데이터를 저장하고 조회하는 기능을 담당한다. 나중에 데이터 저장소는 데이터 설계할 때 테이블로 많이 설계 된다. 프로세스는 구체적으로 업무를 수행하는 역할을 담당한다. 외부 엔티티는 데이터와 프로세스를 실행하는 주체가 된다. 프로세스 맵 상담에 표현되는 실행주체와 동일한 역할을 한다. 데이터 흐름은 앞에서 열거한 세가지 요소를 서로 연결하는 역할을 한다


DFD 작성법


DFD를 작성하기 위해서는 먼저 비즈니스를 분석하고 프로세스를 도출해야 한다. 요구사항 명세서에 기술된 내용 중 동사를 유심히 관찰하면 프로세스를 찾아낼 수 있다. 그리고 프로세스 입출력을 찾아내서 프로세스 기능을 정의한다. 다음으로 데이터를 도출하는데 요구사항 명세서에 있는 명사를 활용하면 데이터를 보다 쉽게 도출할 수 있다. 데이터의 흐름을 식별해서 프로세스와 데이터를 매핑하고 업무를 잘 설명할 수 있는 명칭을 부여하면 DFD가 완성된다.


DFD 작성원칙

(출처: https://www.lucidchart.com/pages/data-flow-diagram)


DFD를 작성하기 위해서는 몇 가지 원칙을 지켜야 하는데 첫 번째 프로세스는 반드시 하나 이상의 입력과 출력을 갖도록 설계해야 한다. 입력이 없거나 출력이 없는 독립적인 프로세스가 있다면 프로세스를 좀 더 세분화할 수 있는지 아니면 잘못 설계된 것인지 다시 한번 살펴볼 필요가 있다.


두 번째로 데이터 저장소는 적어도 하나 이상의 입력과 출력을 갖도록 설계해야 한다. 데이터 저장소에 입력이 없다는 것은 데이터를 저장하지 않는다는 의미이고 출력이 없다는 것은 데이터를 사용하지 않는 것이기 때문에 데이터 저장소와 관련된 프로세스가 무엇인지 좀 더 고민해 봐야 한다.


세 번째 데이터 저장소는 프로세스를 통해서만 접근할 수 있도록 설계해야 한다. 데이터 저장소 간에 직접 연결이 되거나 외부 엔티티가 직접 데이터 저장소를 접근 한다면 이와 관련된 프로세스가 누락된 것이기 때문에 다시 한번 어떤 프로세스가 누락된 것인지 살펴봐야 한다.


마지막으로 DFD에 있는 모든 프로세스는 다른 프로세스 또는 데이터 저장소로 향하는 흐름이 존재해야 한다. 만일 특정 프로세스에서 처리 흐름이 끊겨 있다면 프로세스에 대한 분할, 삭제 또는 변경을 고려해 봐야 한다.

앞에서 설명한 4가지 원칙을 잘 생각하면서 DFD를 작성한다면 프로세스가 누락되거나 오류 없는 깔끔한 DFD를 설계할 수 있다. DFD에서 공식적으로 사용하는 표현법 외에 DFD를 좀 더 잘 표현할 수 있는 도형을 추가해도 좋다. DFD는 프로세스의 흐름을 잘 설명하기 위한 도구이지 반드시 지켜야 하는 규칙은 아니기 때문이다.


○ 스마트 영업지원시스템 프로세스 설계 실무 사례


스마트 영업지원시스템 영업일지 작성


스마트 영업지원시스템 영업일지 결재


스마트 영업지원시스템 영업비용 정산


스마트 영업지원시스템 근태 처리


스마트 영업지원시스템 영업 정보 생성


스마트 영업지원시스템 고객사 정보 관리


스마트 영업지원시스템 직원 정보 관리



'더 괜찮은 개발자가 되기위한 > 시스템 설계하기' 카테고리의 다른 글

데이터 설계  (0) 2018.11.19
인터페이스 설계  (0) 2018.11.19
프로세스 설계  (0) 2018.11.19
프로젝트 설계 개념  (0) 2018.11.19