소프트웨어 재공학: Difference between revisions
From CS Wiki
(새 문서: 분류:소프트웨어 공학분류:정보처리기사 * 기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활...) |
No edit summary |
||
Line 1: | Line 1: | ||
[[분류:소프트웨어 공학]][[분류:정보처리기사]] | [[분류:소프트웨어 공학]][[분류:정보처리기사]] | ||
; 기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 등 소프트웨어 재사용 공법 | |||
* 소프트웨어의 유지보수성과 품질을 향상시킬 수 있음 | |||
* 부작용을 미연에 발견하여 위험부담 제거 및 복구비용 절감 | |||
* 예방 유지보수 측면에서 소프트웨어 위기 해결 | |||
== 종류 == | == 종류 == |
Revision as of 07:37, 7 May 2019
- 기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 등 소프트웨어 재사용 공법
- 소프트웨어의 유지보수성과 품질을 향상시킬 수 있음
- 부작용을 미연에 발견하여 위험부담 제거 및 복구비용 절감
- 예방 유지보수 측면에서 소프트웨어 위기 해결
종류
- 분석(Analysis)
- 기존 소프트웨어 명세를 확인하여 동작을 이해하고 재공학 대상을 선정
- 재공학 가치판단 및 재공학 여부 판단
- 재구성(Restructuring)
- 소프트웨어 구조를 향상시키기 위해 코드를 재구성
- 소프트웨어의 기능과 외적인 동작은 변경되지 않음
- 역공학(Reverse Engineering)
- 소프트웨어 동작 과정 및 설계 정보를 재발견 혹은 재생성
- 소프트웨어를 구성하는 코드를 복구하는 작업
- 소프트웨어 구조 파악 및 재구성을 위함
- 역공학의 가장 오래된 형태는 재문서화
- 이관(Migration)
- 기존 소프트웨어를 다른 운영체제, 하드웨어, 프레임워크 등에서 사용할 수 있도록 변환
- 재구성 또는 재개발을 통한 새로운 소프트웨어에 기존 데이터를 옮겨 담는 작업