- 3R의 개요
- 역공학(Reverse Engineering)
- 재공학(Reengineering)
- 재사용(Reuse)
- 역공학(Reverse Engineering)
- 역공학(Reverse Engineering)
- 역공학의 정의
- 기존에 개발된 시스템에 대해 도구를 이용하여 사양서/설계서 등의 문서로 자동 추출하는 작업
- 개발 단계를 역으로 거슬러 올라가 기존에 개발된 시스템의 코드나 데이터로 부터 설계 명세서나 요구 분석서 등을 도출해 내는 작업
- 기존에 개발된 시스템에 대해 도구를 이용하여 사양서/설계서 등의 문서로 자동 추출하는 작업
- 역공학이 필요한 경우
- 기존에 가동중인 시스템의 유지보수가 어려운 경우
- 변경이 빈번하여 시스템 효율이 저하된 경우
- 파일 시스템으로 개발된 업무를 데이터베이스 관리 시스템 형태로 재구축하려는 경우
- 기존 메인 프레임 시스템을 다운사이징 하는 경우
- 기존에 가동중인 시스템의 유지보수가 어려운 경우
- 역공학 사용의 이점
- 상용화된 소프트웨어의 분석을 도와줌
- 기존 시스템의 자료를 분석하여 유지보수를 빠르게 함
- 시스템과 일치하는 문서를 생성하여 시스템의 정보를 얻을 수 있음
- 상용화된 소프트웨어의 분석을 도와줌
- 역공학에 사용되는 입력 유형과 출력 유형
- 입력 : 원시코드, 목적코드, 작업 제어 절차, 라이브러리, 디스크 디렉토리, 텍스트 자료, 데이터 베이스 구조, 입출력 형태와 자료, 각종 문서
- 출력 : 구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도, 자료 흐름 그래프
- 입력 : 원시코드, 목적코드, 작업 제어 절차, 라이브러리, 디스크 디렉토리, 텍스트 자료, 데이터 베이스 구조, 입출력 형태와 자료, 각종 문서
- 역공학의 종류
- 논리 역공학 : 원시 코드로부터 정보를 뽑아내어 물리적 설계 정보 저장소에 저장하고, 물리적 설계 정보를 얻어내는 역할을 수행
- 자료 역공학 :기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리 시스템으로 전이하는 역할을 수행
- 논리 역공학 : 원시 코드로부터 정보를 뽑아내어 물리적 설계 정보 저장소에 저장하고, 물리적 설계 정보를 얻어내는 역할을 수행
- 재공학(Reengineering)
- 재공학의 정의
기존 시스템을 널리 사용하고 있는 프로그래밍 표준에 맞추거나 고수준 언어로 재구성하거나 타 하드웨어 등에서 사용할 수 있도록 변환하는 작업
- 재공학의 사용 목적
- 현재 시스템의 유지보수 향상
- 시스템의 이해와 변형이 용이
- 유지 보수 비용 및 시간이 절감
- 표준의 준수 및 CASE의 사용이 용이
- 현재 시스템의 유지보수 향상
- 재공학의 적용 방법론
- 재구조화 방법
시스템의 외부 행위(기능적이나 의미론적)는 유지하며, 동일한 추상화 표현 상태를 다른 표현 형태로 변환하는 과정
- 재모듈화 방법
시스템의 모듈 구조를 변화시키는 것으로, 시스템 구성 요소의 클러스터 분석 및 결합도와 관련됨
- 의미론적 정보 추출 방법
코드 수준이 아닌 문서 수준의 설계 복구 방법
- 재사용(Reuse)
- 재사용의 정의
다른 시스템에서 이용하고 있는 재사용 소프트웨어를 파악하고, 이를 재구성하여 새로운 시스템에 응용하기 위해 적합 시키는 작업
- 재사용의 이점
- 개발 기간과 비용의 감소
- 소프트웨어 품질의 향상 및 생산성 향상
- 시스템 개발에 대한 정보 공유 및 타 프로젝트의 산출물 공유
- 기타 교육적 효과
- 개발 기간과 비용의 감소
- 재사용 부품이 가져야 할 특성
- 부품의 중요 특성 파악을 위해 부품 합성과 정정 조건이 기술되어 있어야 함
- 각각의 부품들은 최소한 하나의 사용 목적을 가져야 함
- 최소한의 매개변수만을 사용해야 함
- 이해와 시험이 용이해야 함
- 특정 언어로부터 독립적이어야 함
- 부품 간의 합성이나 부품의 변경 시 부작용이 최소화 되어야 함
- 재사용 가능성이 높아야 함
- 부품의 중요 특성 파악을 위해 부품 합성과 정정 조건이 기술되어 있어야 함
2010년 8월 10일 화요일
소프트웨어 재사용
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기