dongdorodongdong
소프트웨어 재사용/재공학/역공항 본문
재사용
- 정의
- 이미 개발된 S/W를 다른 S/W 개발이나 유지에 이용 - 특징
- 재사용 부품(모듈)의 크기가 작을수록 재사용률이 높음
- 객체지향적일수록 재사용송을 크게 향상
- 소스 코드가 가장 많이 재사용
- 고급 프로그래머 배출 X - 이점
- 개발 시간 단축
- 비용 단축
- 생산성 향상
- 시스템 구축방법에 대한 지식, 문서 공유
재공학
- 정의
- 기존 시스템을 이용하여 더 나은 시스템을 구축하고 새로운 기능을 추가하여 성능을 향상 - 특징
- 기존의 S/W를 파기하지 않고 사용자의 요구사항, 환경으로 기존 S/W를 수정 보완
- 위기를 해결하기 위해 유지보수의 생산성으로 해결
- 유지보수성 용이성 향상이 주 목적
- CASE의 정보 저장소와는 무관
- 유지보수 측면에서 Preventive(예방)의 문제를 해결하기 위한 방법 - 활동
- 분석 (Analysis)
"기존 S/W 명세서를 확인하고 S/W의 동작을 이해하고 재공학 대상을 선정"
- 이식 (Migration)
"기존 S/W 시스템을 새로운 기술, 환경에서 사용할 수 있도록 변환하는 작업"
- 재구성 (Restructuring)
"기존 S/W 기능을 변경하지 않고 S/W 형태에 맞게 수정하는 활동"
"상대적으로 같은 추상적 수준에서 하나의 표현을 다른 표현 형태로 바꾸는 작업"
- 역공학 (Reverse Engineering)
"원시 코드를 분석하여 S/W 관계를 파악하고 기존 시스템의 설계 정보를 재발견하고 다시 작업" - 대상
- 모든 S/W
역공학
- 정의
- S/W를 분석하여 분석 및 설계 정보를 재발견 하거나 다시 만들어 내는 작업
- 현재 프로그램으로부터 데이터, 구조, 절차에 관한 정보를 추출하는 과정
- 가장 간단하고 오래된 형태는 재문서화
- 기존 코드를 복구하는 방법
* Component
- 소프트웨어 재사용과 관련하여 객체들의 모임, 대규모 재사용 단위로 정의되는 것
- 기반 개발 활동
"후보 컴포넌트가 요구되는 기능을 수행하는지를 조사하기 위해 컴포넌트 검증을 수행"
"컴포넌트 라이브러리가 컴포넌트 확장 언어를 제공하면 그레이-박스 랩핑을 적용"
"APP 구현을 위해 검증, 개작, 개발된 컴포넌트들을 조립하는 컴포넌트 합성을 수행"
'Software Engineering' 카테고리의 다른 글
OMA (Object Management Architecture) 모델 (0) | 2019.06.27 |
---|---|
CASE (Computer Aided Software Engineering) (0) | 2019.04.15 |
프로젝트 관리 (0) | 2019.04.15 |
객체지향 개발 방법론 (0) | 2019.04.15 |
소프트웨어 생명 주기 (0) | 2019.04.13 |