문제2) 리팩토링(Refactoring)에 대한 아래의 사항을 설명하시오.
가. 정의, 목적, 리팩토링 순서, 리팩토링 주요기법
나. 코드스멜(Code Smell) 의 정의와 특징
다. 코드스멜의 종류를 3개이상 기술하고 각각의 리팩토링 방법
답)
1. SW 내부로직의 재구조화 작업, 리팩토링의 정의 및 목적
가. 리팩토링의 정의
- 소프트웨어 모듈의 외부적 기능은 수정하지 않고 내부적인 구조, 관계등을 단순화하여 소프트웨어의 유지보수성을 향상시키는 기법
나. 리팩토링의 목적
소프트웨어 디자인 개선
|
|
|
소프트웨어 이해도 향상
|
|
|
오류발견 용이성 확보
|
|
|
전체 개발 생산성 유지
|
|
2. 리팩토링 순서, 리팩토링 주요기법
가. 리팩토링의 순서
|
나. 리팩토링 주요기법
구분
|
설명
|
|
Extract Method
|
|
|
Replace Temp With Query
|
|
|
Move Method
|
|
|
Extract Class
|
|
|
Rename Method
|
|
|
Pull Up Field
|
|
|
Pull Up Method
|
|
|
Encapsulation Field
|
|
|
Inline Temp
|
|
|
Introduce Explaning Variable
|
|
|
Split Temporary Variable
|
|
|
Remove Assignments to Parameters
|
|
|
Substitute Alogrithm
|
|
|
Replace Magic Number with Symbolic Constant
|
|
|
Decompose Conditional
|
|
|
Consolidate Duplicate Conditional Fragments
|
|
|
Remove Control Flag
|
|
|
Replace Nested Conditional with Guard Clauses
|
|
|
Add Parameter
|
|
|
Remove Parameter
|
|
|
Parameterize Method
|
|
|
Replace Parameter with Explicit Methods
|
|
|
Replace Parameter with Methods
|
|
|
|
3. 코드스멜(Code Smell)의 정의와 특징, 코드스멜의 종류별 리팩토링 방법
가. 코드스멜(Code Smell)의 정의와 특징
구분
|
설명
|
|
정의
|
|
|
특징
|
|
나. 코드스멜의 종류별 리팩토링 방법(3개 이상)
코드스멜
|
설명
|
리팩토링 방법
|
중복된 코드
|
|
|
긴 메소드
|
|
|
큰 클래스
|
|
|
긴 파라이터 리스트
|
|
|
두 가지 이유로 수정되는 클래스
|
|
|
여러 클래스 동시수정(Shothun Surgery)
|
|
|
다른 클래스를 지나치게 이용(Feature Envy)
|
|
|
유사 데이터들의 그룹 중복(Data Clumps)
|
|
|
기본 데이터 타입 선호(Prime Obsession)
|
|
|
주석(Comments)
|
|
|
공감과 댓글은 아이티신비에게 큰 힘이 됩니다.
블로그 글이 유용하다면 블로그를 구독해주세요.♥
'정보관리기술 > 소프트웨어공학' 카테고리의 다른 글
순차 다이어그램 (2) | 2024.01.23 |
---|---|
정보시스템 운영환경 장애 예방 및 대응 (56) | 2024.01.22 |
중단/무중단 배포 (2) | 2024.01.22 |
소프트웨어 비용 산정 (54) | 2024.01.22 |
소프트웨어 규모산정 (3) | 2024.01.22 |