About

SNUGANTT

Edited by Dong-Soo Park

SNUGANTT란 서울대학교 산업공학과 공장자동화 실험실에서 개발한 전자 간트차트입니다. 현재 프로그램심의조정위원회에 등록되어 있습니다.(등록번호 : 99-01-26-2225)

SNUGANTT의 목적

일정계획을 수립하는 방법에는 여러가지가 있겠으나, 그 중 하나가 사용자가 제약조건과 현재의 일정상황을 보면서 수립하는 방법이 있을 수 있습니다. 우선순위규칙이나 다른 방법들은 주어진 알고리즘에 따라 빠르게 일정계획을 수립하는 반면에 사용자가 가지고 있는 경험이나 경향을 반영할 수 없는 단점이 있습니다. SNUGANTT의 개발목적은 사용자가 일정계획을 수립할 때 간트차트를 이용하여 일정계획의 입력 및 수정, 그리고 출력의 기능을 제공하여 보다 쉽게 사용자가 원하는 일정계획을 수립하도록 하는 데 있습니다.

SNUGANTT의 설계

기본적으로 SNUGANTT는 주어진 제약조건을 만족하는 일정계획을 사용자가 직접 수립하거나 또는 이미 수립되어 있는 일정계획을 변경하는데 필요한 정보를 제공하는 툴입니다. 아래의 그림은 SNUGANTT와 제약조건, 사용자, 일정정보데이터베이스와의 관계를 나타냅니다.

시스템설계.jpg

SNUGANTT의 구현

  • SNUGANTT의 운영 및 구현환경은 다음과 같습니다.
  • Window 95/98, NT
  • DAO(Data Access Object) -> ODBC(Open DataBase Connectivity)
  • MS Visual C++ 5.0

SNUGANTT의 역사

  • SNUGANTT는 여러해동안 버전업된 프로그램으로 실험실 멤버의 아이디어가 담겨 있는 프로그램입니다.
  • 1997, 김상균 DAO와 MS Access를 이용하여 간트차트의 뷰 기능 개발, CIS(Chart-based Interactive Scheduler) 명명
  • 1998, 박동수 DAO->ODBC, Oracle 지원. 실험실 G7-Project에 통합
  • 1999, 박동수 Text 파일 지원, 일정계획 평가 지원, CIS를 SNUGANTT로 개명
  • 1999. 6. 4, 프로그램심의조정위원에 SNUGANTT로 등록

SNUGANTT의 기능

SNUGANTT의 기능은 많지만 여기서는 간략히 소개하겠습니다. 먼저 SNUGANTT의 전체적인 화면구성을 설명하겠습니다. 화면은 크게 시간축 영역, 주문/자원 보기 영역, 차트 영역, 일정정보 영역의 네부분으로 구성되어 있습니다. 아래 그림을 참조하세요.

Screen.jpg

- 다양한 뷰 기능(주문별/자원별/4중/임계경로 보기)

SNUGANTT는 여러 관점에서의 뷰 기능을 제공합니다. 주문별 보기는 주문 중심으로 일정을 보여주며, 자원별 보기는 같은 기계에서 가공되는 작업들의 일정을 보여 줍니다. 4중보기는 뷰를 네 개의 뷰로 분할해서 보여주며, 각 뷰마다 주문별/자원별/임계경로 보기를 선택하여 볼 수 있습니다. 임계경로 보기는 사용자가 특정 공정을 선택했을 때, 이 공정이 앞당겨지지 못하도록 하는 공정들의 경로를 보여줍니다.

MachineView.jpg OrderView.jpg

                         자원별 보기                                                                               주문별 보기

FourView.jpg CriticalView.jpg

                         4중 보기                                                                                임계경로 보기

이 외에 근무력 보기, 시간눈금별(초/분/시/일/주/월/연) 보기 및 시간단위조정기능, 확대 및 축소보기 기능이 뷰 기능에 포함되어 있습니다.

- 다양한 일정계획 변경기능

SNUGANTT는 사용자가 현재 화면상에 보여지는 일정을 변경할 수 있도록 드래그  앤 드롭, 일정시간변경, 대체기계 이동, 공정상태변경등을 제공합니다. 다음은 드래그 앤 드롭과 다이얼로그를 통한 일정정보 변경을 보여주는 그림입니다. 각 그림을 클릭하시면 큰 그림으로 보실 수 있습니다.

DragDrop.jpg Dialog.jpg

                         드래그 앤 드롭                                                                   다이얼로그를 통한 변경

이 외에 로트분할, 로트통합, 되돌리기, 재실행하기, Left Shift, Left Slide 등의 일정계획을 변경할 수 있는 기능을 제공합니다.   참고로 Left Shift와 Left Slide는 공정을 앞당기기 위한 기능으로 Left Shift는 선행관계 제약을 만족시키면서 공정을 최대한 앞당기는 것을 말하고, Left Slide는 선행관계 제약과 기계에서의 작업순서를 변동하지 않고 공정을 최대한 앞당기는 것을 말합니다. 즉 Left Shift는 기계에서의 작업순서의 변동을 주지만, Left Slide는 그렇지 않게 하면서 공정을 가급적 앞당기는 기능입니다.

- 일정계획 검증기능

SNUGANTT는 사용자가 변경시킨 일정이 선행관계 제약과 기계능력 제약의 위반여부를 검증할 수 있는 기능을 제공합니다. 선행관계 제약이란 라우팅 상에 존재하는 선행공정이 완료되기 전에 후행공정이 시작할 수 없다라는 제약입니다. 기계능력 제약이란 기계가 한 시점에 두 개이상의 공정을 가공할 수 없다는 것을 의미합니다. 다음 다이얼로그는 사용자가 드래그 앤 드롭을 통해 일정을 변경할 때, 검증할 제약조건을 조정하는 다이얼로그입니다.

VerifyOption.jpg

아래의 그림은 제약조건을 위반한 공정리스트를 보여줍니다. 주문번호 400번의 10번 공정과 20번 공정이 선행관계 제약을 위반했고, 주문번호 400번의 10번 공정과 주문번호 300번의 30번 공정이 기계능력 제약을 위반했음을 보여줘서 사용자가 일정을 수정하는데 도움을 주고 있습니다.

Verify.jpg

- 버전관리 및 일정계획 성능 분석 기능

SNUGANTT는 사용자가 여러가지 대안을 평가하고 보존할 수 있도록 하기 위해 버전관리와 일정계획 성능을 분석해 주는 기능을 제공하고 있습니다. SNUGANTT에서의 버전이란 사용자가 저장한 일정계획을 말합니다. 또한 버전간의 비교를 위해 현 버전의 일정계획 성능을 여러가지 기준(최종작업완료시간, 체류시간, 지연된 작업수, 지연시간 등)에서 분석할 수 있도록 했습니다. 다음은 사용자가 만든 두 버전(100, DR100)간의 성능비교를 보여주는 그림입니다. 각 그림을 클릭하시면 큰 그림으로 보실 수 있습니다.

GraphComp.jpg TableComp.jpg

                           차트비교                                                                                 도표비교

- 제약정보 관리 기능

SNUGANTT는 일정계획을 수립할 때 고려해야 할 제약들을 관리하는 기능을 제공합니다. 일정계획을 수립할 때 고려해야 할 제약들에는 주문, 라우팅, 기계, 월력 등이 있을 수 있습니다. 맨 위의 그림에서 보았듯이 주문관리, 라우팅관리, 자원관리, 월력관리가 이에 해당됩니다.