반응형
1. 소프트웨어 유지보수 생산성 향상을 위한 리펙토링의 개요
가. 리펙토링의 정의
- 프로그램 소스의 기능은 유지하고 소스코드의 내부를 수정, 보완하여 유지보수 생산성을 높이는 기법
나. 리펙토링의 적용
- 적용시기 : SW 개발, 유지보수 전공정, 버그 수정, 코드 검토
- 적용대상 : 중복된 코드, 긴 메서드, 거대한 클래스, 긴 파라미터, Switch문, 임시 필드, 주석
2. 리펙토링의 SW 개발 공정에서의 위치와 주요 기법
가. 리펙토링 방법
나. 리펙토링 구현에 활용되는 주요 기법
구분 | 기법 | 내용 |
결합도 측면 | Move Method | 타 클래스와 결합 높은 메소드 이전 |
Move Attribute | 타 클래스와 결합 높은 속성 이전 | |
Extract Class | 여러 클래스 결합 처리 대신 신규 클래스 생성 | |
응집도 측면 | Push Down Method | 서브 클래스만 사용하는 메소드 이전 |
Push Down Attribute | 서브 클래스만 사용하는 속성 이전 | |
Inline Class | 비활성 클래스경우 타 클래스 기능 분배 후 클래스 제거 |
3. 리펙토링 시 주의사항 및 기대효과
- 데이터베이스 스키마와 같은 경우 수시로 변하여 변경이 곤란하고 상호 간에 약속이 필요한 인터페이스 경우 주의가 필요
- 단순, 신속 설계로 개발기간이 단축되는 XP방법론에서 활용과 수정된 코드에 대한 신뢰성을 증명하기 위한 견고한 테스트(회귀 테스트)를 하는 것임
4. 리펙토링의 장점
- 디자인개선 : 복잡한 코드 정돈, 중복 코드 제거
- 이해용이성 : 익숙하지 않은 코드에 대한 가독성 제공
- 버그발견 : 쉬운 코드의 이해로 인한 결함 발견의 신속성
- 개발생산성 : 소프트웨어 디자인 향상에 따른 유지보수 능력 향상
5. 비교
항목 | Restructuring | Refactoring |
특징 | 소프트웨어 전체구조 수정 | 소스코드의 내부구조 수정 |
범위 | SW 재 사용을 위한 전과정 | 소프트웨어 개발 시 적용가능 |
목표 | 재사용 극대화 목표 | 향후 유지보수 재 사용시 용이 |
주의점 | 소프트웨어 전체구조에 대한 수정을 충분히 검토해야 함 | 소스코드 일부 수정으로 시스템 성능 향상 큰 기여는 없음 |
반응형
'TechNote > 소프트웨어 공학(SW)' 카테고리의 다른 글
017. UML (Unified Modeling Language) (0) | 2022.10.02 |
---|---|
015. 디자인 패턴과 아키텍처 스타일 비교 (0) | 2022.10.01 |
014. 디자인 패턴 (0) | 2022.10.01 |
013. 관점 지향 프로그래밍 (Aspect Oriented Programming) (0) | 2022.10.01 |
012. 객체 지향 (0) | 2022.10.01 |
댓글