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 코드 및 자산의 변경 이력 관리 | 유지보수성, 효율성 |