[오답정리] 3R(Reverse Engineering, Re-engineering, Reuse)
2025. 5. 13. 17:01
2과목. 소프트웨어 개발 > 4장. 애플리케이션 테스트 관리 > 3R(Reverse Engineering, Re-engineering, Reuse) : 공통 모듈의 재사용, 소프트웨어의 역공학(재공학), 소프트웨어의 재사용
- 소프트웨어공학의 3R
- 역공학 Reverse-Engineering
- 역공학 (Reverse Enginnering)의 개념
- 기존에 개발된 시스템을 CASE(자동화 도구)를 이용하여, 사양서, 설계서 등의 문서로 추출하는 작업
- 개발단계를 역으로 올라가 기존 개발된 시스템의 코드, 데이터로부터 설계명세서나 요구분석서를 도출하는 작업
- 물리적 수준의 소프트웨어 정보를 논리적인 소프트웨어 정보로 추출하는 프로세스
- 역공학을 통해서 얻을 수 있는 정보 : 분석 정보, 설계 정보, 아키텍처, 프로그램과 데이터의 구조 정보
- 역공학의 종류
- 논리 역공학
- 원시코드로부터 정보를 뽑아내 물리적이고 논리적인 설계 정보를 획득하는 Repository를 정의
- 자료 역공학
- 물리적인 데이터 서술로부터 개념적, 논리적인 정보 추출, 기존 파일 시스템에서 데이터베이스의 전이 또는 기존 데이터베이스에서 신규 데이터베이스로 전이 수행
- 논리 역공학
- 역공학의 장점
- 재문서화를 통해 현존하는 시스템의 지식 재획득
- 현존 시스템의 데이터와 논리에 효율적인 분석을 통하여 유지보수를 신속히 수행
- 현존하는 시스템의 정보를 Repository에 펼칠 수 있음
- 시스템 개발과 유지보수 자동화
- 현존 시스템 설계 재사용
- 구현 독립적인 논리적 레벨에서 작업
- 역공학 (Reverse Enginnering)의 개념
- 재공학 Re-Engineering
- 기존 시스템을 널리 사용되는 프로그램 표준에 맞추거나 고수준의 언어로 재구성하여 타 하드웨어에서 사용할 수 있도록 변환하는 작업
- 재사용 Re-Use
- 이미 개발되어 기능, 성능, 품질을 인정받았던 소프트웨어 전체 또는 일부분을 다시 사용하는 기법
- 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것을 의미
- 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법
- 기존에 개발된 소프트웨어와 경험, 지식등을 새로운 소프트웨어에 적용
- 재사용이 가능한 요소 : 전체 프로그램, 부분 코드, 응용 분야에 관한 지식, 논리적인 데이터 모형, 프로세스 구조, 시험 계획, 설계에 관한 결정, 시스템 구조에 관한 지식, 요구 분석, 문서화, 전문적인 기술과 개발 경험, 품질 보증, 응용 분야 지식 등
- 소프트웨어 재사용 방법의 유형
- 합성 중심 : 전자칩과 같은 소프트웨어 부품, 블록을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법, 블록 구성 방법
- 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법, 패턴 구성 방법
- 공통모듈의 재사용
- 설계 측면
- 모듈 : 설계 시 관련이 있는 기능을 한 부분에 모아 공통 라이브러리 형태로 사용
- 컴포넌트 : 바이너리 형태의 재사용 가능한 실행 프로그램으로 인터페이스에 의해 호출하여 로직을 수행할 수 있는 모듈
- 서비스 : Loosely-coupled 형태의 서비스를 제공하는 모듈 단위
- 구현 측면
- 매크로 : 프로그램 구현 시 반복되는 부분을 특정 이름으로 부여하고 이름을 호출하여 실행할 수 있도록 하는 프로그래밍 기법, 전처리기가 매크로가 사용된 모든 곳에 코드를 대체
- 함수 : 프로그램 구현 시 커다란 프로그램의 일부 코드로 특정한 작업을 함수로 구현하고 상대적으로 다른 코드에 비해 독립적인 모듈임
- 인라인 : 프로그램 구현 시 반복되는 부분을 특정 이름을 부여해 놓고 이름을 호출하여 실행할 수 있도록 하는 프로그램 기법, 컴파일러는 인라인이 사용된 모든 곳에 코드를 복사
- 설계 측면
- 역공학 Reverse-Engineering
800제-196번. 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법은?
① 합성 중심
② 생성 중심
③ 분리 중심
④ 구조 중심
정답 : 1
800제-266번. 공통 모듈의 재사용 범위에 따른 분류가 아닌 것은?
① 컴포넌트 재사용
② 더미코드 재사용
③ 함수와 객체 재사용
④ 애플리페이션 재사용
정답 : 2
1000제-312번. 완성된 소프트웨어 프로그램을 기반으로 3R 기법을 통해 소프트웨어의 생산성을 극대화할 수 있다. 다음 중 3R에 해당하지 않는 것은?
① 역공학(Reverse-Engineering)
② 재개발(Re-Development)
③ 재사용(Re-Use)
④ 재공학(Re-Engineering)
정답 : 2
1000제-666번. 소프트웨어 재공학 활동 중 역공학에 해당하는 것이 아닌 것은 무엇인가?
① 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어내는 작업이다.
② 현재 프로그램으로부터 데이터, 아키텍처 그리고 절차에 관한 분석 및 설계 정보를 추출하는 과정이다.
③ 원시 코드로부터 설계 정보 추출 및 절차 설계 표현, 프로그램과 데이터 구조 정보를 추출한다.
④ 노후된 시스템에 대한 재분석, 문서화 작업을 통해 공학적으로 우수한 시스템을 만드는 것을 의미한다.
정답 : 4
1000제-885번. 소프트웨어 재공학의 주요활동 중 다음 설명에 해당하는 것은 무엇인가?
<설명>
기존 소프트웨어를 분석하여 설계를 추정하는 것으로서, 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어내는 작업
① Analysis
② Restructuring
③ Reverse Engineering
④ Migration
정답 : 3
'자격증_보관 > 정보처리기사_25년 02차' 카테고리의 다른 글
[오답정리] 알고리즘 설계 기법 (0) | 2025.05.14 |
---|---|
[오답정리] 소스 코드 인스펙션(Inspection) (0) | 2025.05.13 |
[오답정리] 제품 품질 국제 표준(ISO/IEC) (0) | 2025.05.13 |
[오답정리] 제품 소프트웨어 매뉴얼 (0) | 2025.05.13 |
[오답정리] 애플리케이션 배포(Application Release) (0) | 2025.05.13 |