본문 바로가기

Computer Science/소프트웨어 공학2

[소프트웨어공학] 리팩토링 (Refactoring) ※출처 : TOPCIT 에센스 리팩토링 (Refactoring) 외부의 프로그램 동작은 변경하지 않고 프로그램 내부 구조를 개선하는 것을 의미한다. 외부적 기능은 수정하지 않고 내부적 구조 및 관계를 단순화하여 소프트웨어의 유지 보수성을 향상시켜 품질을 높이는 것 코드스멜 (Code Smell) 개발자가 이해하거나 유지보수하기 어려워 리팩토링의 대상이 되는 코드 코드스멜의 종류 종류 설명 중복된 코드 기능, 데이터 코드가 중복되어 작성 너무 긴 메서드 메서드가 너무 길다 방대한 클래스 힌 클래스가 너무 많은 속성과 메서드를 가짐 과다한 매개변수 메서드의 매개변수가 너무 많음 두 가지 이유로 수정되는 클래스 클래스는 한가지 종류의 책임만을 가져야 하기에 2가지 이상의 이유로 수정되면 안된다. 여러 클래스를.. 2020. 11. 4.
[소프트웨어공학] 역공학 (Reverse Engineering) ※출처 : TOPCIT 에센스 역공학 (Reverse Engineering) 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어내는 일 소프트웨어 유지 보수 단계에서 실행 소프트웨어 생명주기 마지막 단계에서 얻어지는 프로그램, 문서 등을 통하여 생명주기 초기 단계의 문서, 정보를 얻어 내는 것을 말한다. 역공학이 필요한 경우 가동중인 시스템의 유지보수가 어려운 경우 변경이 자주 발생해서 시스템 효율이 저하된 경우 파일 시스템 → 관계형 데이터베이스로 재구축 하려는 경우 역공학의 장점 상용화되거나 개발된 소프트웨어의 분석을 도와준다. 기존 시스템의 자료, 정보를 설계 수준에서 분석할 수 있어서 유지 보수성 향상 2020. 11. 4.