개발/정보처리기사

소프트웨어 공학의 3R

기디개 2023. 10. 28.
반응형

역공학(Reverse Engineering) 

기존 개발된 시스템을 요구사항 분석 CASE(Computer Aided Software Engineering)도구를 이용하여 요구 분석서, 설계서 등의 문서로 추출하는 작업

 

요구사항 분석 CASE(Computer Aided Software Engineering)도구란?

Aided: 도움이 된 (자세히 보기: https://yetis.tistory.com/244) 1. CASE란? CASE는 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하는 도구. 소프트웨어 개발자들이 소프트웨어 설계, 개발, 유

yetis.tistory.com

  • 상용화되거나 기 개발된 소프트웨어 분석을 도와줌
  • 기존 시스템 자료와 정보를 설계 수준으로 분석해 유지보수성 향상

재공학(Re-Engineering)

소프트웨어의 위기를 해결하기 위해 유지보수 생산성으로 해결하려는 방법

기존 소프트웨어를 폐기하지 않고 기능을 개선

 

재공학 과정

  • 분석: 기존 소프트웨어 명세 확인하여 재공학 대상 선정
  • 재구성: 구조 향상 시키기 위해 코드 재구성
  • 역공학: 소스코드를 가지고 설계 수준 분석
  • 이관: 기존 소프트웨어를 다른 운영체제, 프레임워크 등에서 사용할 수 있도록 변환

재사용(Reuse)

이미 개발되어 있는 소프트웨어의 전체 또는 일부분 다시 사용

 

재사용 방법

  • 합성 중심(Composition Based, 블록 구성): 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법.
  • 생성 중심(Generation Based, 패턴 구성): 추상화 형태로 쓰여진 명세를 구체화

정리) 역, 재, 공학, 사용이 의미하는 바는 이러하다.

  • '역(reverse)' : 분석하여 개발완료 상태의 현 상황 문서 추출
  • '재(re)' : 재활용
  • '공학': 방법론
  • '사용': 사용법

역공학: 분석하여 개발완료 상태의 현 상황 문서 추출하는 방법론 → 현 서비스가 어떻게 만들어졌을까?

재공학: 재활용 방법론(유지보수)→ 현 서비스를 어떻게 유지보수하지?

재사용: 재활용 사용법 → 현 서비스 중 일부를 사용하자

반응형

댓글

💲 추천 글