by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

4장. 프로세스 모델링




4장. 프로세스 모델링

첫 번째, 업무가 하고 있는 또는 해야하는 것을 기록하는 업무 기능에 대한 프로세스 관점의 모델
두 번째, 업무가 필요로 하는 것을 기술하거나 필요로 하는 것 간의 관계를 기술하는 데이터 관점의 모델
세 번째, 프로세스 관점으로 업무가 하는 방법과 데이터관점으로 업무가 필요로 하는 것이 어떻게 영향을 주는가에 대한 영향 분석 관점의 상관 모델

4.1 업무 기능 분해

* 업무 기능 분해

  1) 업무기능 분해의 목적
      - 정보화 시스템을 구축하는 가장 최저 단위의 단위 프로세스를 도출하기 위함
      - 전체 업무의 체계를 프로세스를 중심으로 도식화하여 업무에 대한 기능을 파악하는 것
      - 즉, 단위 프로세스 도출과 업무 기능을 명확하게 하는 것임

  2) 업무기능 분해의 개념
      - 업무기능 분해를 정의하려면 업무기능과 업무 프로세스에 대한 명확한 구분이 필요
      - 업무 기능이란 기업의 임무를 한층 더 멀리 조명하여 하나로 표현하는 완벽한 단위 업무기능의 그룹. 일반적으로 서브젝트 에어리어가 최상위 업무 기준의 기능 분해의 예가 됨(영업, 회계, 제조등)
                       업무 기능이 무엇인지 또 왜 하는지에 대한 설명이 필요(누가 언제 어디서와 같은 다른 부분에 대해서는 서술해서는 안됨. 이것은 업무를 추진하면서 나오는 파생적인 특징이기 때문)  

  3) 업무 프로세스의 개념
      - 프로세스: 입력과 출력이 존재하는 업무기능으로 프로세스를 실행함으로써 데이터의 입력과 출력이 수행됨
      - 프로세스 임을 판단하는 근거. 아래를 만족하면 프로세스에 해당
        ① 해당 업무 기능이 실행 단위인지 관리 단위인지 판단
        ② 업무기능에 입력과 출력의 행위가 이루어지는지를 확인

  4) 업무기능 분해도에서 프로세스의 적용
      - 프로세스에 대한 기술: 항상 엔티티타입의 이름이나 속성의 명사형 이름에 동사를 더하여 구성. 엔티티타입과 속성을 생성하는 근거가 될수 있음
        (EX. "주문한다" "송장을 만든다." "계약을 종료한다." "계약일자를 공고한다.")
      - 프로세스 정의 시 확인할 사항으로 그 프로세스가 단위 프로세스 인지 확인하는 것이다. 단위 프로세스는 더 이상 자식을 가질 수 없음

      - "직원을 채용한다." 라는 프로세스의 계층도
   5) 업무 기능 분해 방법
       - 업무 기능 분해 순서
         ① 해당 업무에서 단일 업무기능으로 정의하고자 하는 큰 구분, 즉 뿌리 기능을 지정(ex. 기본 인사 관리, 근태 관리, 급여 관리)
         ② 단일 기능으로 정의해 놓은 업무기능을 더 세부적으로 쪼개어 나감(ex. 인사 기본 관리 -> 기본 사항 접수, 자격증, 해외 여행, 상벌 사항등)
         ③ 기능들을 업무 발생 순서대로 업무기능 분해도에 배치
         ④ 단위 프로세스가 도출될 때까지 모든 업무기능에 대해 위 작업들을 반복적으로 수행. 업무 기능을 분해하는 궁극적인 목표는 단위업무 프로세스를 도출하는데 있기 때문임

       - 업무 기능 분해 자료
         ① 해당 업무를 구체화하여 업무기능을 분해하는 방법은 보통 분해(DECOMPOSITION) 작업의 첫 번째 단계에서 이용된다. 

           ② 업무기능의 생명 주기(LIKE CYCLE)를 분석하여 업무기능을 분해한다.

          ③ 엔티티의 상태를 이용하여 업무기능을 분해한다.

         ⑤ 업무이벤트에 따라 기능을 분리한다.
              * 고객이 보험금을 신청한다.
                    --> 보험근 신청을 접수한다.
                    --> 자격여부를 판단한다.
                    --> 보험금을 지급한다. 
         ⑥ 데이터의 구조에 따라 기능을 분리한다.
 

4.2 단위 프로세스의 도출

* 단위 프로세스 검증 방법
  (1) 단위 프로세스가 실행될 때는 완전하고 의미 있는 결과를 가져와야 한다.
       각각의 실행은 업무데이터를 변형하는 데 모두 필요하고 모든 데이터의 무결성 규칙을 보장하는 변함없는 상태를 유지하는 역할을 함
       만약 무결성 규칙을 어긴 프로세스는 지나치게 많이 분해 된 것임.
  (2) 프로세스는 서로 밀접하게 관련이 있는 형제 프로세스와 동시에 데이터 집합에 작용한다.
       업무무결성을 보장하면서 비슷한 프로세스 여러 개가 동시에 동일한 데이터 영역에 대해 작용할 수 있음
  (3) 각각의 프로세스는 적어도 하나의 이벤트에 대해 응답이 존재해야 한다.
  (4) 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서서는 안된다.
        예를 들면, 화면 컨트롤에 관련된 로직이 단위 프로세스에 도출되어서는 안된다.
* 예제
   - 고객 주문 프로세스에 대한 업무기능 분해도 초기 모습

      - 평가
        1) "주문을 접수한다." 프로세스의 하위인 "주문의 기본 내용을 기록한다."  , "주문 목록을 기록한다." 의 두 프로세스는 단독으로 수행되어서는 안되므로 잘못된 프로세스 도출임
            주문을 접수한다는 말의 의미는 두 프로세스가 동시에 발생할 시에만 의미가 있음
        2) "주문을 수정한다" 프로세스의 하위인 "주문의 기본 내용을 수정한다", "주문 목록을 수정한다"의 두 프로세스의 경우 단독으로 수행될 수 있으므로 잘못된 설계가 아님
     - 수정된 업무기능 분해도

 

4.3 단위 프로세스와 데이터

* 업무 프로세스와 데이터 모델에 대해 상호 검증하는 단계가 필요. 이로인해 새로운 프로세스가 도출될 수도 있으며, 새로운 엔티티타입이 존재할 수도 있음

* 상관관계표로써 기대효과를 정의하여 프로세스가 실행할 때 데이터에 영향을 주는 효과를 도식화 할 수 있음 
  

문서에 대하여

  • 이 문서는 오라클클럽 [대용량 데이터베이스 스터디] 모임에서 작성하였습니다.
  • 이 문서의 내용은 데이터베이스 설계와 구축(개정판) 이춘식 저 서적을 스터디 하면서 정리한 내용 입니다.
  • 이 문서를 다른 블로그나 홈페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.