"이와 같은 레거시 플랫폼에 중점을 둔 IT 지원 회사의 비즈니스 모델이 있어야 할 것 같습니다." 떨어졌다.
오래된 환경에 갇혀있는 것은 앞으로 나아가는 길이 아닙니다. 그리고 나는 지금까지는 당신이 분명히 할 수없는 일을 기꺼이 할 회사를 찾는 것에 갇히지 않으려는 회사의 삶에 베팅하지 않을 것입니다.
따라서 실제로 요청한 질문에 대한 답은 아니지만 마이그레이션의 위험을 최소화하면서 앞으로 나아갈 수있는 방법에 대한 진지한 조언이 있습니다.
"신성함을 잃지 않은 채 재 작성하는 방법"
오랫동안 실제 결과가없는 긴 마이그레이션 프로젝트의 오류를 만들지 마십시오. 읽기 "어떻게 정신을 잃고 wihtout 지상 최대 재 작성을 살아 남기 위해"
나는 그 기사의 조언이 그런 종류의 프로젝트를 "오래된"방식으로 수행 한 후에 비슷한 문제를 해결 / 접근하는 데 어떻게 도움이되었는지 충분히 강조 할 수 없다.
자동 테스트 설정
아직 설치하지 않은 경우 (그렇지 않은 이유는 무엇입니까?) 현재 프로그래머에게 응용 프로그램에 대한 자동화 된 테스트 장치를 만들도록하십시오.
자동화 된 테스트 스위트는 애플리케이션의 모든 기능 영역을 포함해야합니다. 개별 테스트 사례의 "when_X_then_Y"규칙에 현재 작업 사양을 문서화해야합니다. 이를 통해 현재 코드의 변경 사항이 기존 기능을 중단하지 못하게하고 새로운 환경으로의 마이그레이션을 지원할 수 있습니다.
COBOL 및 BASIC을 처리 할 때 테스트 스위트는 통합 테스트 레벨에 있어야합니다. "고정 된"입력 파일 / 데이터베이스 세트를 작업하고 출력 파일 / 특정 프로그램 (COBOL)의 변경된 데이터베이스 내용을 확인하고 응용 프로그램. 소프트웨어의 기본 부분의 경우 이는 명령 줄 매개 변수를 추가하여 (G) UI 개입없이 특정 기능을 수행하거나 (G) UI 기반 자동 테스트 도구를 얻는 것을 의미 할 수 있습니다.
계산 및 기타 알고리즘 분리
Cobol조차도 메인 프로그램에서 호출 할 수있는 서브 프로그램의 개념을 지원합니다. 모든 가져 오기 계산 및 기타 알고리즘을 별도의 프로그램 또는 모듈로 분리하십시오. 목표는 입력을 수집하고 출력을 생성하는 모든 것으로부터 분리 된 거친 작업을 수행하는 프로그램 / 모듈 라이브러리를 만드는 것입니다.
테스트 하네스를 조정하여 이전 응용 프로그램과 격리 된 응용 프로그램을 통해 테스트 할 수 있습니다. 이렇게하면 새로운 환경으로 쉽게 마이그레이션 할 수 있도록 "이전"코드에서 수행하는 작업에 최대한 적은 오류가 발생합니다.
"현재"환경에서 새로운 애플리케이션 세트를 시작하십시오.
현재 코드를 변환하지 마십시오. 한 언어를 다른 언어로 변환한다는 것은 이전 환경의 제약 조건을 새로운 언어에 적용하는 것을 의미합니다. 종종 바람직하지 않은 경우 결과 (읽기 : 결과는 끔찍하고 유지하기가 어려울 것입니다). 이주하십시오. 새로운 환경에서 해당 환경에 가장 적합한 방법으로 응용 프로그램을 설정하십시오.
선택한 환경에 정통한 새로운 프로그래머를 확보하십시오. 모든 중요한 계산 및 알고리즘을 별도의 클래스 및 / 또는 패키지로 분리하여 인터페이스 뒤에 숨기려면 하루를 최우선으로해야합니다. 의존성 주입 (가장 저렴한 DIY 의존성 주입 방식)을 사용하여 계산을 수행하기 위해 인스턴스화 / 사용할 클래스를 새 응용 프로그램에 알리십시오.
이것은 어쨌든 작업을 수행하는 좋은 방법이며 귀하의 경우 중요한 부분을 사례별로 마이그레이션 할 수 있습니다. 또한 새로운 환경에서 호출 기능에서 기본 및 / 또는 코볼 프로그램 호출의 복잡성을 숨길 수 있습니다.
응용 프로그램을 설정하고 COBOL / BASIC "라이브러리"의 계산을 사용하는 가장 중요한 입력 / 출력 기능을 설정하는 것은 더 이상 진행하지 마십시오.
COBOL / BASIC "라이브러리"통합
새로운 환경에서 COBOL / BASIC "라이브러리"를 호출하는 방법을 알아보십시오. 여기에는 매개 변수 파일 또는 데이터베이스 테이블 설정, 이전에 설정 한 COBOL / BASIC 라이브러리를 랩핑하는 COBOL / BASIC 프로그램 실행이 포함될 수 있습니다. 운이 좋으면 BASIC 버전에서 직접 호출 할 수있는 DLL을 만들 수 있습니다.
COBOL / BASIC "라이브러리"라고하는 새 환경에서 클래스를 구현하고 이전 환경의 테스트 하니스와 동일한 테스트를 사용하여 새로운 환경에서 단위 테스트 형식으로 테스트합니다. .
그렇습니다. 이것은 테스트를 "복제"한다는 의미입니다. 그러나 이것이 없이는 원하지 않는 안전망입니다. 이러한 단위 테스트가 나중에 새 환경으로 마이그레이션 될 때 계산 및 알고리즘의 구현을 확인하는 테스트 역할을하기 때문입니다.
그러나 다시 : 이전 단계에서 가장 중요한 단일 단위에 사용 된 계산에 대한 단위 테스트를 추가하는 것 이상으로 진행하지 마십시오.
반복적으로 새로운 애플리케이션을 구현
이전 응용 프로그램의 모든 기능에 대해 이전 두 단계를 반복하여 새 응용 프로그램을 정리하십시오. 계산을 확인하는 단위 테스트를 새 애플리케이션의 테스트 하니스에 계속 추가하십시오. 통합 테스트 스위트를 사용하여 마이그레이션 된 기능이 이전 애플리케이션과 동일한 기능을 수행하는지 확인하십시오.
핵심 라이브러리를 반복적으로 마이그레이션
마지막으로 COBOL / BASIC "라이브러리"에서 계산 및 알고리즘을 마이그레이션하여 새 환경에서 다시 구현하십시오. 다시 말하지만, 정신 건강을 유지하기 위해 (단위) 테스트를 반복적으로 사용하십시오.