정보 처리/데이터 모델링

업무 분석하기 (프로세스 모델링)

본클라쓰 2012. 6. 12. 13:54

 

업무 분석은 데이터 모델링의 시작

 

데이터 모델링를 할 때 업무에 사용되는 데이터만 분석하는 것은 올바른 데이터 모델링이 아닙니다. 올바른 데이터 모델링을 수행하기 위해서는 업무 분석인 프로세스 모델링과 함께 병행되어야 합니다. 객체지향 방법으로 모델링을 진행하는 오브젝트 모델링에서는 데이터 모델과 프로세스 모델을 함께 표현하는 클래스 다이어그램으로 업무의 모습을 표현합니다.

 

대부분의 프로젝트에서는 데이터 모델링과 프로세스 모델링을 병행하여 항상 유기적으로 상호 모델을 체크하고 검증합니다.

 

프로세스 모델링은 가장 작은 단위의 프로세스인 단위 프로세스(elementary process)가 되는 단계까지 업무 프로세스를 계층 구조로 나누어 분해하는 것입니다. 이러한 프로세스 분해 과정은 개발 범위를 규정하는 분석 단계 이전부터 수행하여 시작하고, 단위 프로세스가 도출될 때까지 점진적으로 그리고 계속적으로 진행합니다. 단위 프로세스는 실제 어플리케이션에서 로직이 구현된 단위이며, 데이터베이스에도 영향을 미치는 가장 작은 단위의 업무 프로세스입니다.

 

 

 

업무 기능 분해(process hierarchical)

 

프로세스 모델링에서 업무 기능 분해의 궁극적인 목적 중 첫 번째는 가장 최저 단위의 단위 프로세스를 도출하기 위함입니다. 두 번째는 전체 업무 체계를 프로세스 중심으로 도식화하여 업무에 대한 기능을 파악하는 것입니다.

 

업무 기능 분해를 정의하려면 업무 기능과 업무 프로세스에 대한 명확한 구분이 필요합니다.

 

 

 

1) 업무 기능

 

업무 기능은 업무가 하는 일을 기술합니다. 대부분의 기업의 주요 업무 기능은 영업, 회계, 제조 등 5개 ~10개로 구분됩니다. 업무 기능을 설명할 때는 업무 기능이 무엇인지 또 왜 하는지를 반드시 설명해야 합니다.

 

업무 기능을 분해할 때 다음과 같은 순서를 따르면 효과적입니다.

 

  ㄱ) 해당 업무에서 단일 업무 기능으로 정의하고자 하는 큰 구분, 즉 뿌리 기능을 지정한다.

  ㄴ) 단일 기능으로 정의해 놓은 업무 기능을 더 세부적으로 쪼개 나간다. (이때, 진행 순, 상태를 이용해 업무 기능 정의)

  ㄷ) 기능들을 업무 발생 순서대로 업무 기능 분해도에 배치한다.

  ㄹ) 단위 프로세스가 도출될 때까지 위 작업들을 반복적으로 수행한다.

 

 

ex) 업무 기능 분해

 

제품 관리 

    ― 제품 기획

    ― 제품 연구 개발

    ― 제품 생산

    ― 제품 분배

    ― 제품 판매

 

업무 기능을 분해하는 궁극적인 목표는 단위 업무 프로세스를 도출하는데 있습니다.

 

 

 

2) 업무 프로세스

 

업무 프로세스는 업무의 실행 단위가 되면서 정보의 입출력이 되는 단위를 말합니다. 프로세스는 무엇을 하는지 왜 하는지에 대해서 정의할 필요가 있습니다. 누가 프로세스를 기동하는지 언제 수행하는지를 기술할 필요가 있습니다. 프로세스를 정의한다는 것은 곧 프로세스가 한 번 실행될 때 나타나는 현상에 대해 구체적으로 기술한다는 것입니다.

 

프로세스를 정의할 때 반드시 확인할 사항으로, 그 프로세스가 단위 프로세스인지 확인하는 것입니다. 만약 단위 프로세스라고 하면 더 이상 자식 기능을 가지면 안됩니다.

 

ex) 프로세스 계층도

 

고객이 주문을 한다.

    ― 주문을 접수한다.

        ― 주문의 기본 내용을 기록한다.

        ― 주문 목록을 기록한다.

    ― 주문을 취소한다.

    ― 주문을 수정한다.

         ― 주문 기본 내용을 수정한다.

 

 

처음 업무를 시작하는 사람이거나 아직 프로젝트에 익숙하지 않은 사람은 구체적이지 않은 업무의 표현, 개략적인 자료를 가지고 최하위 수준인 단위 프로세스를 도출하는 것은 결코 쉬운 일이 아닙니다. 결론적으로 업무 분석하기는 단위 프로세스를 도출하는 과정입니다.

 

 

 

단위 프로세스

 

단위 프로세스 도출의 최저 단위는 트랜잭션을 보장하기 위한 단위입니다. (논리적인 작업 단위, logical unit of work)

 

이 단위 프로세스를 통해 프로그램을 작성합니다. 단위 프로세스는 무결성을 고려해야 합니다. 다음과 같은 인사 급여 시스템에서 급여를 계산하는 프로세스는 다음과 같습니다.

 

ex) 급여 계산 프로세스

 

급여를 계산한다.

    ― 세율을 계산한다.

    ― 공제금액을 계산한다.

    ― 최종급여를 계산한다.

 

 

이 예는 업무 기능을 지나치게 많이 분해한 것으로 세율계산, 공제금액 계산, 최종 급여 계산을 각각 수행해서는 트랜잭션 무결성을 보장할 수 없습니다. 이것은 항상 같이 수행되어야 하므로 "급여를 계산한다"가 단위 프로세스가 될 수 있습니다.

 

 

 

단위 프로세스와 데이터 

 

프로세스 모델링을 진행할 때 단지 업무 프로세스를 분석하는 작업만 진행하지 않고, 데이터 모델을 상호 검증하는 형태로 작업이 진행됩니다. 만약 프로세스 모델링 도중 새로운 프로세스가 발견되면 바로 새로운 엔티티타입이 존재할 수 있음을 암시하는 것입니다. 반대로 새로운 엔티티타입이 도출되었다면 새로운 업무 기능이 도출되어야 함을 의미합니다.

 

이처럼 데이터와 업무 기능 모델은 상호보완 관계입니다.

 

업무 프로세스는 자신들이 실행되기 위한 데이터가 필요하고, 엔티티타입은 업무 프로세스에 의해 데이터들이 관리되어야 하므로 서로 밀접한 연관 관계가 있을 수밖에 없습니다.

 

 

 

'정보 처리 > 데이터 모델링' 카테고리의 다른 글

관계의 개념과 관계 정의하기  (0) 2012.06.12
속성 정의 하기  (0) 2012.06.12
엔티티타입의 개념과 설계 방법  (0) 2012.06.12
데이터 모델링 개요  (0) 2012.06.12
데이터베이스의 설계  (0) 2012.06.11