I. 개발 단계를 역으로 올라가 문서 도출, 역공학의 개요
가. 역공학(Reverse Engineering)의 정의
- 개발 단계를 역으로 거슬러 올라가 기존의 개발된 시스템의 코드나 데이터로부터 설계명세서나 요구분석서 등을 도출하는 방법
나. 역공학의 필요성
- 기존 시스템에 대한 유지보수성 확보, 변경에 따른 시스템 효율성 제고
- 메인 프레임에 대한 다운사이징 개발 시 필요, 시스템과 일치하는 문서를 생성 정보 획득 가능
다. 역공학의 개념도
개념도 |
입/출력 |
INPUT |
|
원시코드, 목적코드, 작업 제어 절차, 라이브러리, 디스크 디렉토리, 텍스트 자료, 데이터베이스 구조, 입출력 형태와 자료, 각종 문서 |
|
OUTPUT |
|
구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도, 자료 흐름 그래프 |
라. 역공학의 주요기법
구분 |
설명 |
논리 역공학 |
- 원시코드로부터 정보를 추출하여 물리적 설계 정보 저장소에 저장 - 물리적 설계 정보를 얻어내는 역할 수행 |
자료 역공학 |
- 기존 DB를 수정하거나 새로운 DB 관리 시스템으로 이전하는 역할 수행 |
II. 재사용성 확보 기술, 재공학의 개요
가. 재공학(Re-Engineering)의 정의
- 역공학이나 재구조화 등의 기술을 이용하여 소프트웨어를 분석하고 정보를 추출하여, 이를 다시 순공학을 이용하여 새로 구현함으로 재사용성을 확보하는 방법
나. 재공학의 주요기법
기법 |
내용 |
재구조화 |
SW 부품을 라이브러리에 모아놓고 새로운 SW 개발에 필요한 부품 결합 |
재모듈화 |
시스템의 모듈 구조 변경, 클러스터 분석 및 결합도와 관련 |
의미론적 정보 추출 |
코드 수준이 아닌 문서 수준의 복구 방법 |
III. 표준화를 통한 개발 생산성 향상, 재정의의 개요
가. 재정의(Reuse Engineering)의 정의
- 소프트웨어 개발 관련 지식 (기능, 모듈, 구성 등)을 표준화하여 개발 생산성을 높이기 위하여 반복적으로 사용하기 적합하도록 구성하는 방법
나. 재정의의 주요기법
기법 |
내용 |
Copy |
소스코드의 copy, 목적에 맞게 재사용 |
Pre-processing |
Include 함수를 사용하여 compile시에 포함되도록 하는 방법 |
Library |
Sub program 집합인 Library를 활용하여 Link에 포함 |
Package |
전역변수, Package Interface를 통한 정적인 활용방법 |
Object |
전역변수, Object Interface를 통한 동적인 활용방법 |
Generics |
Object의 다형성 이용 |
객체지향 |
상속성, 다형성의 성질 이용 |
Component |
컴포넌트의 독립성, 조립성, 표준성 등을 활용 |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
프로젝트 관리(Project Management) (0) | 2021.02.04 |
---|---|
기능점수(Function Point) (0) | 2021.02.04 |
소프트웨어 비용산정 (0) | 2021.02.04 |
코드 난독화(Code Obfuscation) (0) | 2021.02.04 |
3R(Reverse Eng. Re-Eng. Reuse Eng) (0) | 2021.02.04 |
정형기술검토(FTR, Formal Technical Review) (0) | 2021.02.03 |
소프트웨어 형상관리(Software Configuration Management) (0) | 2021.02.03 |
소프트웨어 유지보수 (0) | 2021.02.03 |
댓글