DevGang

[SE-22] 소프트웨어 재공학&역공학 본문

정보처리/SE

[SE-22] 소프트웨어 재공학&역공학

별천랑 2021. 2. 8. 19:48

1. 소프트웨어 재공학 (Software Reengineering)

  • 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상하는 것
  • 소프트웨어의 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법을 의미
  • 소프트웨어 재공학의 일반적인 개념은 데이터와 기능들의 개조 및 개선을 가해 유지보수 용이성을 향상하자는 것임
  • 재공학은 유지보수에 대한 장기적인 전략적 고려와 많은 비용, 시간, 자원을 요구함
  • 재공학은 유지보수성, 생산성, 품질의 향상을 목적으로 함
  • 재공학은 형식의 변경과 재설계 과정을 포함
  • 소프트웨어 재공학도 자동화된 도구를 사용하여 소프트웨어를 분석하고 수정하는 과정을 포함
  • 소프트웨어 재공학의 활동은 분석, 개조(재구성), 역공학, 이식 등으로 구분할 수 있음
  • 유지보수의 문제로 인해 필요성이 대두됨

2. 소프트웨어 재공학(Reengineering)의 목표

  • 복잡한 시스템을 다루는 방법
  • 다른 뷰의 생성
  • 잃어버린 정보의 복구 및 제거
  • 부작용의 발견
  • 고수준의 추상
  • 재사용 용이

3. 역공학 (Reverse Engineering)

  • 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 작업
  • 현재 프로그램으로부터 데이터, 아키텍처, 그리고 절차에 관한 분석 및 설계 정보를 추출하는 과정

4. 업무 재설계 (BPR, business process re-engineering)

  • 획기적인 결과를 성취하기 위한 비즈니스 프로세스에 대한 연구, 비즈니스 프로세스 구현, 비즈니스 프로세스의 근본적인 변경을 말함

'정보처리 > SE' 카테고리의 다른 글

[SE-23] CASE  (0) 2021.02.08
[SE-21] 소프트웨어 재사용  (0) 2021.02.08
[SE-20] 객체지향 설계, 구현, 테스트  (0) 2021.02.08
[SE-19] 객체지향 개발 단계와 분석  (0) 2021.02.08
[SE-18] 객체지향 소프트웨어 공학  (0) 2021.02.08
Comments