반응형
1. 소프트웨어 3R의 개요
가. 소프트웨어 3R의 정의
- 레포지토리를 기반으로 역공학, 재공학, 재사용을 통해 소프트웨어 생산성을 극대화하는 기법
나. 소프트웨어 3R의 등장 배경
- 소프트웨어 위기 극복
- 소프트웨어 개발 생산성 향상
- 유지보수 비용의 절감
- 소프트웨어 변경 요구사항의 신속한 대처
다. 소프트웨어 3R의 목표
- 소프트웨어 유지보수 오류 및 비용을 축소함
- 시스템의 이해, 변경, 테스트 용이
- 현 사용 시스템을 CASE 도구를 사용하여 유지보수 및 수정이 가능하도록 지원
- 현재 시스템의 컴포넌트를 재사용 소프트웨어 위기 극복
2. 소프트웨어 3R의 구성
가. 소프트웨어 3R의 관련 개념
- 순공학 : 주상개념의 현실화, 요구분석-> 설계-> 구현
- 재구조화 : 기능 변경 없이 소스코드의 재편성(표현의 변형)
나. 소프트웨어 3R의 관련 개념
- 역공학 : 구현된 것을 분석하여 설계단계로 요구사항 분석
- 재공학 : 역공학으로 재구조화된 S/W를 기반으로 다시 추상 개념을 현실화하는 것
- 재사용 : 재공학을 통해 현실화된 S/W를 실제 사용
3. 역공학의 개요
가. 역공학의 정의
- 기존 개발된 시스템을 CASE 이용하여 설명서, 설계서 등의 문서로 자동 추출하는 직업
- 개발 단계를 역으로 거슬러 올라가 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출해 내는 직업
나. 역공학의 장점
- 상용화되거나 기 개발된 소프트웨어의 분석을 도와줌
- 기존 시스템의 자료와 정보를 설계 수준에서 분석할 수 있어 유지보수성을 향상함
- 기존 시스템 정보를 Repository에 보관하여 CASE의 사용을 용이하게 함
- 역공학에 사용되는 입력 유형과 그에 따른 출력 유형
INPUT | OUTPUT |
|
|
다. 역공학의 종류
- 논리 역공학 : 원시 코드로부터 분석
- 자료 역공학 : 기존 DB로부터 분석
4. 재공학의 개요
가. 소프트웨어 재 공학의 정의
- 소프트웨어 역공학 및 재구조화 등의 기술을 이용하여 소프트웨어를 분석하여 정보를 추출하고, 이를 다시 순공학을 사용하여 새로 구현함으로써 재사용성을 확보하는 소프트웨어 부품으로 만들어 내는 기술 작업
나. 소프트웨어 재 공학의 장점
- CASE 사용이 용이하여 현재 시스템의 유지 보수 향상
- 표준을 준수하여 시스템 이해와 변형을 용이하게 하며, 유지 보수비용 절감
다. 소프트웨어 재 공학의 단계
- 원시 코드로부터의 정보 추출 단계
- 역공학 단계 및 시스템의 향상과 검증 단계
- 순공학 단계 미치 설계와 최적화 단계
- 원시 코드의 생성 단계
5. 소프트웨어 재 사용의 개요
가. 소프트웨어 재 사용의 정의
- 소프트웨어 개발 관련 지식(기능, 모듈, 구성 등)을 표준화하여 개발 생산성을 높이기 위하여 반복적으로 사용하기에 적합하도록 구성하는 방법
나. 필요성
- 소프트웨어 생산의 TCO(Total Cost Overhead) 절감
- 높은 품질의 소프트웨어 생산을 위한 공유 및 활용 효과
다. 목표
- Reliability : 신뢰성 향상( 기능, 안정, 속도 등의 사전 성능 검증됨)
- Extensibility : 확정성 향상(검증된 기능 기반으로 Upgrade 용이함)
- Productivity : 생산성 향상(비용, 시간, 위험 등 전체적 개발 프로세스 향상됨)
- Usability : 사용성 향상(독립된 컴포넌트로써의 조립성 제공됨)
- Maintainability : 유지보수성 (품질개선, 오류 수정, 운영, Upgrade이 용이함)
- Adaptability : 적응성 향상(독립된 컴포넌트로써의 새로운 Process 적용에 용이함)
6. 소프트웨어 재사용 활용 및 구현 기법
가. 활용 기법 종류
기법 종류 | 내용 |
Copy | 소프트웨어 코드를 Copy하여 목적에 맞게 수정하여 사용하는 방법 |
Pre-Processing | Include 함수를 사용하여 Compile시에 포함되도록 하는 방법 |
Library | Sub Program집합인 Library를 활용해 Link시에 포함되도록 하는 방법 |
Package | Global Variable, Package Interface를 통한 정적인 활용 방법 |
Object | Global Variable, Object Interface를 통한 실행 중의 동적인 활용 방법 |
Generics | Object의 다형성을 이용하는 방법 |
객체 지향 | 객체 지향 방법의 상속성, 다형성 등의 성질을 활용하는 방법 |
Component | 컴포넌트의 독립성, 조립성, 표준성 등을 활용하는 방법 |
반응형
'TechNote > 소프트웨어 공학(SW)' 카테고리의 다른 글
012. 객체 지향 (0) | 2022.10.01 |
---|---|
011. 소프트웨어 역공학 (0) | 2022.10.01 |
009. 모듈화 (0) | 2022.10.01 |
008. 소프트웨어 유지보수 (0) | 2022.09.30 |
007 아키텍처 평가방법 ATAM (0) | 2022.09.30 |
댓글