본문으로 건너뛰기

3R, Reuse, Re-engineering, Reverse-engineering

· 약 3분

3R의 개요

3R의 개념

  • Reuse: 기존에 개발된 SW 자산을 새로운 시스템 개발에 재활용하는 것
  • Re-engineering: 기존 시스템을 분석하여 문제점을 파악하고, 개선된 시스템으로 재구축하는 것
  • Reverse-engineering: 소스코드 없이 실행 파일이나 문서 등을 분석하여 시스템의 구조, 동작 방식 등을 파악하는 것

3R의 필요성

  • 유지보수 비용 절감
  • 개발 생산성 향상
  • 시스템 품질 향상
  • 시스템 이해도 향상

3R의 관계도, 상세설명, 핵심기법

3R의 관계도

3R의 상세설명

구분내용비고
역공학소스 코드 없이 시스템 분석 후 설계 정보 추출분석도구 활용(디버거, 디컴파일러), 설계 문서 복구
재공학기존 시스템 분석 결과를 바탕으로 시스템 개선 및 재구축리팩토링, 아키텍처 개선, 성능 최적화
재사용검증된 소프트웨어 자산을 새로운 시스템 개발에 활용컴포넌트, 디자인패턴, 모듈 재사용

3R의 핵심기법

구분내용비고
정적분석코드 실행 없이 바이트코드, 바이너리코드 분석역공학
리팩토링코드 스멜을 제거하여 단순성을 높히는 방법재공학
디자인패턴검증된 설계 패턴을 활용하여 재사용성 향상재사용
MSA모듈화된 서비스를 웹 인터페이스로 호출하여 통합하는 방법재사용

3R의 효과성을 높이기 위한 고려사항

구분내용비고
설계 측면SOLID 원칙 준수로 낮은 결합도, 높은 응집도의 모듈 설계유지보수성, 확장성
도구 측면VCS 를 사용하여 SW 코드 및 자산의 변경 이력 관리유지보수성, 효율성