정의
|
- 레포지토리(Repository)를 기반으로 역공학(Reverse Engineering), 재공학(Reengineering), 재사용(Reuse)을 통해 소프트웨어 생산성을 극대화하는 기법
- 정보저장소(repository)는 3R을 구현하는 수단으로 사용됨
|
추진배경
|
- 소프트웨어 위기 극복
- 소프트웨어 개발 생산성 향상
- 유지보수 비용의 절감
- 소프트웨어 변경 요구사항의 신속한 대처
|
구성요소
|
- 역공학(Reverse Engineering) : 자동화된 도구의 도움으로 물리적 수준의 소프트웨어 정보를 논리적인 소프트웨어 정보의 서술로 추출하는 프로세스
- 재공학(Re-engineering) : 자동화된 도구를 현존하는 시스템을 점검 또는 수정하는 프로세스
- 재사용(Reuse) : 이미 개발되어 그 기능, 성능 및 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용
|
3 R 관련개념
|
- 순공학 : 추상개념의 현실화, 요구분석 -> 설계 -> 구현
- 재구조화 : 기능 변경 없이 소스코드의 재편성(표현의 변형)
- 순환공학 : 순공학 후에 다시 역공학을 하는 과정
- 동기 순환공학 : 순환공학 시에 설계와 코딩을 동시에 변환하는 과정
- 비동기 순환공학 : 순환공학 시에 설계와 코딩을 따로 변환하는 과정
|
역공학 개요
|
- 자동화된 도구(CASE)의 도움으로 물리적 수순의 소프트웨어 정보를 논리적인 소프트웨어 정보의 서술로 추출하는 프로세스
|
역공학 장점
|
- 재문서화를 통하여 현존하는 시스템의 지식을 재 회득함.
- 현존 시스템의 데이터와 논리에 효율적인 분석을 통하여 유지보수를 신속히 수행
- 현존하는 시스템의 정보를 Repository에 펼칠 수 있음
- 시스템 개발과 유지보수를 자동화
- 현존 시스템 설계를 재 사용함
- 구현 독립적인 논리적인 레벨에서 작업함
|
역공학 종류
|
- 논리 역공학 : 원시코드로부터 정보를 뽑아내 물리적이고 논리적인 설계정보를 획득하는 Repository를 정의함, (원시코드 à 정보추출 à 물리적 설계정보)
- 자료 역공학 : 물리적인 데이터 서술로부터 개념적, 논리적인 정보를 추출, 기존 파일시스템에서 데이터베이스의 전이 또는 기존 데이터 베이스에서 신규 데이터베이스로 전이 수행
|
재공학 개요
|
- 자동화된 도구로 현전하는 시스템을 점검 또는 수정하는 프로세스
- 시스템의 재설계, 교체를 CASE 도구가 사용하도록 순공학을 준비하는 과정
|
재공학의 목적
|
- 현재 시스템의 유지보수 향상
- 시스템의 이해와 변형을 용이하게 하며, 유지보수비용 및 시간 절감
- 표준 준수
- CASE의 사용 용이
|
재공학 종류 및 특징
|
- 재구조화 : 소프트웨어 부품을 라이브러리에 모아놓고 새로운 소프트웨어 개발에 필요한 부품을 찾아내어 결합하는 방법
- 재모듈화 : 시스템의 모듈 구조를 변화시키는 것으로 시스템 구성요소의 클러스터 분석 및 결합도와 관련(결합도, 응집도)
- 의미론적 정보추출 : 코드수준이 아닌 문서 수준이 설계 재공학 기법
|
재사용 개요
|
- 이미 개발되어 그 기능, 성능 및 품질을 인정 받았던 소프트웨어의 전체 또는 일부분을 다시 사용
- 새롭게 개발되는 소프트웨어의 품질과 생산성 및 신뢰성을 높이고 개발기간과 비용을 감소시켜 소프트웨어 위기 극복
|
재사용 필요성
|
- 소프트웨어 생산의 TCO (Total Cost Overhead) 절감
- 높은 품질의 소프트웨어 생산을 위한 공유 및 활용 효과
|
재사용 기본원칙
|
- 범용성
- 모듈성
- 하드웨어 독립성
- 소프트웨어 독립성
- 자기 문서화
|
재사용의 목표
|
- Reliability : 신뢰성 향상 (기능, 안정, 속도 등의 사전 성능 검증됨)
- Extensibility : 확장성 향상 (검증된 기능 기반으로 Upgrade 용이함)
- Productivity : 생산성 향상 (비용,시간,위험 등 전체적 개발 프로세스 향상됨)
- Usability : 사용성 향상 (독립된 컴포넌트로써의 조립성 제공됨)
- Maintainability : 유지보수성 (품질개선,오류수정,운영,Upgrade이 용이함)
- Adaptability : 적응성 향상 (독립된 컴포넌트로써의 새로운 Process 적용에 용이함)
|