본문 바로가기
IT기술노트/소프트웨어공학

역공학, 재공학, 재사용

by 비트코기 2021. 2. 4.

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

컴포넌트의 독립성, 조립성, 표준성 등을 활용

 

반응형

댓글