CS/소프트웨어개발방법론

역공학(reverse engineering)

씩씩한 IT블로그 2022. 2. 8. 17:31
반응형

역공학의 정의

이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일.

시스템을 이해하여 수정하는 소프트웨어 유지보수 단계에 수행하는 일련의 활동.

소프트웨어 생명주기의 마지막 단계에서 얻어지는 프로그램 또는 문서 등을 이용하여 생명주기 초기 단계의 산출물에 해당하는 정보 또는 문서를 만들어 내는일.

리버스 엔지니어링

input : 원시코드, 목적코드, 라이브러리, 문서

output : 구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도

 

역공학이 필요한 경우

- 기 가동중인 시스템의 유지보수가 어려운 경우

- 변경이 빈번하여 시스템 효율이 저하된 경우

- 파일 시스템으로 개발된 업무를 관계형 데이터베이스로 재구축 하려는 경우

- 기본 메인 프레임을 다운 사이징 하는 경우(서버를 증설할 필요가 없거나 메모리 오버플로우)

 

역공학의 장점

- 사용화되거나 기 개발된 소프트웨어의 분석을 도와줌

- 기존 시스템의 자료와 설계 수준에서 분석할 수 있어 유지 보수성을 향상

- 기존 시스템 정보를 repository에 보관하여 case의 사용을 용이하게 함

 

역공학의 종류

- 논리역공학 : 원시코드로부터 정보를 추출하여 물리적 설계 정보저장소에 저장

- 자료역공학 : 기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리시스템으로 전이

 

반응형