TY blog

소프트웨어 재공학 본문

소프트웨어 공학

소프트웨어 재공학

주짓수하는 개발자 2023. 11. 7. 23:20
1. 소프트웨어 재공학 (software reengineering)

 

  • 시스템의 전체 또는 일부를 재구조화하거나 다시 작성하는 것 (시스템 재문서화)
  • 기존 시스템의 기능을 변경하지 않고 시스템을 유지보수하기 쉽고 이해하기 쉽게 하는 작업 

   ex ) 문서화, 아키텍처 개선, 프로그래밍 언어 변환, 데이터의 구조와 값 수정 등

 

2. 재공학 프로세스 활동 

 

  • 소스코드 변환 : 최신 버전이나 다른 언어로 변환 
  • 역공학 (reverse engineering) : 프로그램을 분석하고 정보를 추출(구현한 코드 분석 -> 소프트웨어 설계를 추출)
  • 프로그램 구조 개선 : 프로그램 제어 구조의 개선
  • 데이터 재공학 : 데이터베이스 스키마 재정의, 데이터 정리 

 

3. 리팩토링 

 

  • 변경에 따른 품질 저하를 늦추기 위하여 프로그램을 개선하는 것 
  • 구조를 개선하고 복잡도를 줄이고 이해하기 쉽도록 프로그램을 수정
  • 리팩토링에서는 프로그램의 기능을 추가하지 않으며 코드 개선에 집중한다. 

* 재공학과 리팩토링의 차이 

재공학은 주로 전체 소프트웨어 시스템을 대상으로 하며, 큰 범위의 구조적 변경이 필요한 경우에 사용되고, 리팩토링은 주로 작은 범위의 개선을 목표로 한다. 

 

 

* 참고문헌 : (주)한티에듀 소프트웨어공학 제10판 

Comments