본문 바로가기
CS/SW공학

[SW공학] 작업 네트워크의 임계경로[CPM]: 가장 늦게 시작하는 날, 가장 빨리 시작하는 날, 여유 기간 구하는 방법

by jangThang 2023. 8. 3.
반응형

CPM은 SW공학에서 프로젝트를 효율적으로 관리하는 기법 중 하나입니다. 네트워크 구조로 작업 간 선후체계를 표시하고, 임계경로를 구해서 전체 프로젝트 일정을 조율합니다.

 이 글에서는 CPM에서 작업 네트워크를 그리고, 임계경로와 각 작업별 최소 시작 시간(Earliest Start Time), 최대 종료 시간(Latest Finish Time), 여유 시간(Slack Time)를 구해보는 실습을 해보겠습니다.

 

[ Contents ]

     

     

    1. CPM(Critical Path Method)

    작업별 선후체계를 그래프로 나타낸 작업 네트워크

     

    작업 작업 내용 선행 작업 소요 기간 (일)
    S 시작 - -
    A 인터뷰 S 8
    B 포커스그룹 S 15
    C 설문조사 S 10
    D 리팩토링 및 유지보수 S 25
    E 기획설계 A, B, C 5
    F 리버스 엔지니어링 A, C 20
    Z D, E, F -

     

     위와 같은 일련의 작업이 있다고 합시다. 표로 보기에는 작업 진행 흐름이 한눈에 보이지 않습니다.

     또한 다양한 작업 경로별 소요 기간이나 최단 시간, 여유 시간 등을 계산하기도 어렵습니다.

     

     

    CPM 네트워크

     그래서 위와 같이 그래프로 만들어서 작업 계획을 세웁니다. 이를 CPM(Critical Path Method) 네트워크라고 하며, 임계경로 방식의 작업 네트워크라고도 합니다.

      

     작업 사이에 '마일스톤'이라고 하는 점검 노드를 끼워넣기도 합니다. 여태까지 한 작업을 회고하는 시간으로, 위 그래프에서는 따로 작업 시간을 할당하진 않았습니다.

     

     

     

    2. 임계 경로 (Critical Path)

    프로젝트 내 모든 작업을 끝낼 수 있는 작업 경로 (최장 거리)

     

       임계 경로는 '최단 거리'와는 약간 다릅니다. 프로젝트의 일부 작업이 빨리 끝난다고 하더라도, 다른 작업이 끝나지 않으면 프로젝트는 끝나지 않습니다.

     그래서 모든 작업이 끝나는 최장 작업경로를 '임계 경로'라고 합니다. 어차피 모든 작업이 끝나야 하므로, 시간이 더 걸리는 작업을 기준으로 계산합니다. (최장 거리)

     

     예를 들어 위 CPM 네트워크의 임계 경로는 S -> C -> F -> Z 입니다.

     총 30일이 걸리며, C 또는 F 작업이 늦어지게 되면 프로젝트가 더욱 늦게 끝납니다. 반면 다른 작업들은 30일 이전에 끝나므로 조금의 여유시간이 있는 셈이죠. 예를 들어 D작업은 5일 정도 늦어져도 전체 프로젝트가 지연되진 않습니다.

     

     

    반응형

     

    3. 작업 의존 관계를 이용한 특성 계산

     

     가장 오래 걸리는 작업 경로가 정해져 있으므로, 다른 작업들은 상대적으로 여유롭게 조정해서 진행할 수 있습니다.

     동일한 예시로 아래 특성들을 구해봅시다.

     

    1) 최대한 빠르게 시작할 수 있는 날짜 (Earliest start time)

     작업 E를 최대한 빠르게 시작할 수 있는 날짜를 구해보겠습니다.

     작업 E의 선행 업무는 A, B, C입니다. 이중 가장 빨리 끝나는 A -> E 경로를 선택할 때 E는 8일 만에 시작할 수 있습니다.

     

     최대한 빠르게 시작할 수 있는 날짜는 '앞'에서부터 최단경로를 계산하면 됩니다.

     

     

    2) 최대한 늦추어 끝낼 수 있는 날짜 (Lastest finish time)

     작업 E를 최대한 늦추어 끝낼 수 있는 날짜를 구해보겠습니다.

     위 CPM 네트워크의 임계 경로는 S -> C -> F -> Z 입니다. (총 30일)

     반면 E는 5일이면 작업이 끝나므로, 25일에 시작해도 전체 프로젝트가 지연되지 않습니다.

     

     최대한 늦추어 끝낼 수 있는 날짜는 '뒤'에서부터 거슬러 올라가며 계산하면 됩니다. 임계 경로의 길이는 30일이며, 이전 작업의 소요 기간을 뺍니다. 

     

     

    3) 여유 기간(Slack time)

     여유 기간은 [Lastest finish time - Earliest start time] 으로, 최대한 늦춰서 시작하는 날짜에서 최대한 빨리 시작하는 날짜를 빼면 나옵니다.

     예를 들어 작업 E는 25 - 8 = 17일의 여유 기간이 있습니다. 작업 A가 끝난 8일부터 25일까지, 약 17일 간 아무때나 시작해도 전체 프로젝트 기간에 영향을 미치지 않습니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글