2009-03-18 3 views
3

핫 폴더에 저장된 파일을 지속적으로 처리하는 프로그램을 작성 중입니다.업무상 중요한 프로세스를 교정하는 과정에서 오류가있는 단계

이 프로그램의 관리자 개입없이 가동 시간이 100 %이어야합니다. 즉, "어리석은"오류가 발생해서는 안됩니다. 즉, 누군가가 출력 디렉토리를 삭제하고 단순히 다시 만들고 이동해야합니다.

내가하고 싶은 일은 전체 프로그램을 코딩 한 다음 "오류 지점"을 찾아 오류를 처리하는 코드를 추가하는 것입니다.

내가 피하려고하는 것은 잘못되었거나 불필요한 오류 처리를 추가하거나 오류 처리를 프로그램의 제어 흐름에 추가하는 것입니다. 즉, 오류 처리가 프로그램의 흐름을 제어합니다. 아마도 일 수 있습니다. 흐름을 어느 정도 제어하지만 잘못된 디자인 (주관적)을 구성합니다.

"중요한 프로세스"를 "오류 교정"하기위한 방법은 무엇입니까?

답변

3

프로세스가 오류 방지를 할 수없고 관리자의 개입이 없어야합니다 경우 가능한 모든 오류를 처리해야합니다. 프로그램을 중단 할 기회가 있다면 (Murphy 's Law)이 발생하며 알 수 없습니다.

가능한 모든 오류를 처리하더라도 일부 로깅이 필요하고 프로세스가 항상 정상적으로 실행되고 있는지 (메일?) 경고가있는 모니터가 필요하다고 생각합니다.

+1

동의하지 않으면 실패 할 것이고 그 경우 올바른 일이 일어나게 될 것이라고 확신하십시오. – Michael

2

가장 중요한 것은 단위 테스트의 형태로 가정을 문서화하는 것입니다. 각 가정에 위배되는 테스트를 작성한 다음 프로그램이 성공적으로 복구되거나이 상태가 다시 참이되도록 조치를 취해야한다는 것을 증명해야합니다.

예제를 사용하려면 누군가 중요한 폴더를 삭제할 수 있으면이를 시뮬레이트하는 테스트를 수행 한 다음 프로그램이 충돌하지 않고이 사례를 처리하는 것을 보여줍니다.

0

철저한 분석을위한 기술은 HAZOP study입니다. 여기에서 프로세스의 각 부분에 대해 해당 프로세스의 키워드를 고려합니다. 공정 공장의 화학 물질의 경우, '더', '누락', '뜨겁다', '차가운'누출 '압력'등이있을 수 있습니다.

applying HAZOP to software의 경우 소프트웨어의 개체에 적합한 키워드를 고려하십시오.

예를 들어, 파일을 읽으려면 버퍼 오버런, 누락 된 데이터 누락, 존재하지 않는 누락, 파일 핸들 부족 등등을 고려하여 'more'로 간주 할 수 있습니다.

관련 문제