본문 바로가기

정보관리기술사/소프트웨어공학

3R

반응형

I. 소프트웨어 위기극복 방안, 3R의 개요

. 3R(Reverse Engineering, Reengineering, Reuse)의 정의

정보저장소(Repository)를 기반으로 역공학(Reverse Engineering), 재공학(Re-engineering), 재사용(Reuse)를 통해

소프트웨어의 생산성을 극대화하는 기법

. 3R의 등장배경

등장배경

설 명

S/W 위기대응

- 개발 대형화, 복잡화, 생명주기 감소 등 S/W의 위기 극복

S/W 관리효율화

- 개발 생산성 향상, 유지관리 비용절감, 요구사항 신속대응 등 S/W 관리의 효율화

 

II. 3R의 구성도 및 구성요소

. 3R의 구성도

역공학으로 설계복구한 결과를 재구조화 기반의 재공학을 거친 후 다시 제작된 S/W 단위로 재사용 수행

. 3R의 구성요소

구성요소

설 명

역공학

(Reverse Engineering)

- 자동화 도구의 도움으로 물리수준의 정보를 논리수준의 정보로 추출하는 과정

- 순공학(추상개념의 현실화)의 반대 개념

재공학

(Re-engineering)

- 자동화 도구로 현존하는 소프트웨어를 점검 또는 수정하는 프로세스

재사용

(Reuse)

- 기능 / 성능 / 품질을 인정받은 소프트웨어의 전체 또는 일부를 다시 사용

III. 역공학의 개요

. 역공학(Reverse Engineering)의 정의

자동화 도구의 도움으로 물리수준의 소프트웨어 정보를 논리적인 소프트웨어 정보로 추출하는 프로세스

. 역공학의 특징

설 명

상용S/W 분석 용이

- 상용화되거나 기 개발된 S/W의 분석을 도움

유지보수성 향상

- 기존 S/W의 자료와 정보를 설계 수준에서 분석 가능하여 유지보수성 향상

지식의 재획득

- 재문서화를 통해 기존 S/W에 대한 지식습득 가능

자동화 도구

- 기존 S/W의 정보를 정보저장소(Repository)에 보관하여 자동화 도구 사용 용이

. 역공학의 프로세스

. 역공학의 종류

설 명

논리 역공학

- 소스코드로부터 정보를 추출해 물리적 설계 정보저장소에 저장

- 물리적 설계정보를 얻어내는 수단

자료 역공학

- 물리적인 데이터 서술로부터 개념적/논리적 정보 추출

- 기존 DB를 수정하거나 새로운 DB로 전이하는 역할

. 역공학의 입력 및 출력

입출력

설 명

입 력

- 소스코드, 목적코드, 작업제어절차

- 파일자료, DB 구조

- I/O 형태 및 자료, 각종 문서

출 력

- 구조도

- 자료사전, 자료흐름도, 자료흐름 그래프

- 제어흐름 그래프, 개체관계도

 

IV. 재공학의 개요

. 재공학(Re-engineering)의 정의

자동화 도구로 현존하는 소프트웨어를 점검 또는 수정하는 프로세스로, 자동화 도구를 통한 소프트웨어의

재설계 또는 교체를 수행하도록 순공학을 준비하는 과정

. 재공학의 특징

설 명

유지보수성 향상

- 기존 S/W의 이해와 변경을 용이하게 하며, 유지보수 비용 및 시간 절감

자동화 도구

- 표준준수 및 자동화 도구 사용 용이

. 재공학의 프로세스

. 재공학의 구성요소

설 명

소스코드로부터

정보추출

- 소스코드 또는 DB 정보 등에서 필요한 정보들을 정보저장소에 저장

역공학

- 정보저장소의 정보들로부터 새로운 정보를 인식하여 성질과 선택사항 결정

시스템

향상과 검증

- 시스템 분석가가 정보구조, 정보흐룸 등 응용분야에 대한 명세단계의 정의 향상

순공학

(설계와 최적화)

- 파일과 DB설계, S/W명세를 이용하여 최적화 설계로 기능 향상

소스코드

생성

- 정보저장소로부터 구현단계의 설계내역을 바탕으로 소스코드 생성

. 재공학의 적용기법

적용기법

설 명

재구조화

- S/W 모듈을 라이브러리에 모아놓고 새로운 S/W 개발에 필요한 모듈을 찾아 결합

재모듈화

- S/W 구성요소의 분석 및 결합정보(결합도, 응집도)를 기반으로 모듈구조 변화

의미론적 정보추출

- 소스코드 수준이 아닌 문서 수준의 설계 재공학 기법

 

 

V. 재사용의 개요

. 재사용(Reuse)의 정의

기 개발되어 기능, 성능, 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용

. 재사용의 특징

설 명

비용절감

- S/W 생산의 TCO(Total Cost Overhead) 절감

S/W 공유 및 활용

- 높은 품질의 S/W 생산을 위한 공유 및 활용 효과

. 재사용의 목표

설 명

신뢰성 (Reliability)

- 기능, 안정, 속도 등 성능의 사전 검증

확장성 (Extensibility)

- 검증된 기능을 기반으로 업그레이드 용이

생산성 (Productivity)

- 비용, 시간, 위험 등 전체적인 개발 프로세스 향상

사용성 (Usability)

- 독립된 컴포넌트로 조립 가능

유지보수성 (Maintainability)

- 품질개선, 오류수정, 운영, 업그레이드 용이

적응성 (Adaptability)

- 독립된 컴포넌트로 새로운 프로세스 적용이 용이

. 재사용의 적용기법

적용기법

설 명

Copy

- 소스코드를 복제하여 목적에 맞게 수정 후 사용

Pre-processing

- 컴파일 시 포함되도록 설정

Library

- 서브 프로그램의 집합인 라이브러리를 활용해 링크 시 포함

Package

- Package Interface를 통한 정적인 활용

Object

- Object Interface를 통한 동적인 활용

Generics

- 객체(Object)의 다형성을 활용

객체지향

- 객체지향 방법론의 상속성, 다형성 등 활용

Component

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

. 재사용의 구현기법

구현기법

설 명

Classification

- 코드, 객체, 변수 등 속성에 대한 표준 풀(Pool) 활용

- Code Generation, Variable Standardization

- S/W 생산의 TCO 절감

Design Pattern

- 특정 도메인에 대한 개발 경험자의 설계 및 구현결과 재활용

- Business Process, 공통함수 등

Modulation

- 분해, 추상화 등으로 디버깅, 테스트 통합, 변경 수행

- Loosely Coupled, Tightly Cohesion 추구

Object Oriented Method

- 상속성, 추상성, 다형성, 동적바인딩 등 활용

- 클래스, 4GL 컴포넌트 등

Component Based Development

- ITA, EAP 기반의 컴포넌트 활용

- ActiveX, EJB, CORBA

VI. 3R의 비교

역공학

재공학

재사용

개 념

구현을 분석해

설계로 복구

역공학으로 재구조화한

S/W 정보추출

순공학으로 다시 구현

재공학을 통해

현실화된 S/W의 사용

목 적

S/W 분석작업으로

유지보수 향상

재사용 가능한 S/W 개발

비용절감 및 시간단축

신뢰성, 확장성, 생산성,

사용성, 유지보수성, 적응성

특 징

완성된 S/W 분석 시 사용

설계수준 분석으로 유지보수

자동화 도구 사용 용이

표준준수

개발기간 및 비용 감소

S/W품질 및 생산성 향상

S/W 개발정보 공유

적 용

시 점

운영 S/W의 분석이 어려운 경우

잦은 변경으로 시스템 성능이 저하된 경우

잃어버린 정보 복구 시

복잡한 시스템 취급 시

부작용 발견 시

다른 뷰 생성 시

분산배치 및 통합구축 시

CBD방법론 적용 시

적 용

기 법

데이터 역공학

논리 역공학

역공학, 순공학

설계최적화

모형화

기존S/W 수정

한 계

순동학 자동화 기술 발달

역공학 필요성 감소

자동화도구에 대한 이해부족

전문인력 부족

재사용의 인식전환 필요

재사용 기반기술 부족

재사용 기반환경 미흡

 

반응형

'정보관리기술사 > 소프트웨어공학' 카테고리의 다른 글

증분형모델  (0) 2020.07.20
Spiral  (0) 2020.07.19
시스템공학  (0) 2020.07.16
TMMi/CMMi  (0) 2014.06.23
국내소프트웨어육성방안  (0) 2014.06.23