[25년 03차 / 문제풀이] 소프트웨어 재공학(Software Reengineering)

2025. 6. 1. 16:35
개념

 

☐ 소프트웨어 재공학의 특징

 

●  소프트웨어 재공학의 개념 : 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것

●  소프트웨어 재공학의 목적

- 유지보수 비용이 소프트웨어 개발 비용의 대부분을 차지하는 문제를 염두에 두어 기존 소프트웨어의 데이터와 기능들의 개조 및 개선을 통해 유지보수성과 품질을 향상시키려는 기술

- 유지보수 생산성 향상을 통해 소프트웨어 위기를 해결하는 방법

●  소프트웨어 재공학의 특징 

- 기존 소프트웨어의 기능을 개조하거나 개선하므로, 예방(Preventive) 유지보수 측면에서 소프트웨어 위기를 해결하는 방법

- 소프트웨어 재공학도 자동화된 도구를 사용하여 소프트웨어를 분석하고 수정하는 과정을 포함함

●  소프트웨어 재공학의 장점 

- 소프트웨어의 수명이 연장되고, 소프트웨어 기술이 향상될 뿐만 아니라 소프트웨어 개발기간도 단축됨

- 소프트웨어에서 발생할 수 있는 오류가 줄어들고, 비용이 절감됨

 


 

☐ 소프트웨어 재공학의 주요 활동

 

●  분석(Analysis) 

- 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고 재공학할 대상을 선정하는 호라동

●  재구성(Restructuring)

- 기존 소프트웨어의 구조를 향상시키기 위하여 코드를 재구성하는 활동

- 소프트웨어의 기능과 외적인 동작은 바뀌지 않음

●  역공학(Reverse Engineering)

- 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 활동

- 일반적 개발 단계와는 반대 방향으로 기존 코드를 복구하거나 기존 소프트웨어의 구성 요소와 그 관계를 파악하여 설계도를 추출함

●  이식(Migration)

- 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 활동

 


 

소프트웨어 재사용(Software Reuse)

 

●  재사용의 개념 : 비용과 개발 시간을 절약하기 위해 이미 개발된 기능들을 파악하고 재구성하여 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작업

●  재사용의 특징

- 재사용을 위해서는 누구나 이해할 수 있고 사용이 가능하도록 사용법을 공개해야 함

- 재사용되는 대상은 외부 모듈과의 결합도는 낮고, 응집도는 높아야 함

●  재사용 규모에 따른 분류

- 함수와 객체 : 클래스나 메소드 단위의 소스 코드 재사용

- 컴포넌트(Component) : 독립적인 업무 또는 기능을 수행하는 실행 코드 기반으로 작성된 모듈, 컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용, 명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서는 재사용되는 모든 단위라고 볼 수 있으며, 인터페이스를 통해서만 접근 가능한 것

- 애플리케이션 : 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용 

●  소프트웨어 재사용 방법

- 합성 중심(Composition-Based) : 전자칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 오나성시키는 방법, 블록 구성 방법이라고도 함

- 생성 중심(Generation-Based) : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법, 패턴 구성 방법이라고도 함 

 


 

문제

 

☐ 소프트웨어 재공학의 특징

 

2024년-2차 96번. 소프트웨어 재공학(Reengineering)에 대한 설명으로 틀린 것은?

 

① 기존 시스템을 이용하여 보다 나은 시스템을 구축하는 것이다.
② 유지보수 비용의 초소화를 위해 유지보수성과 품질을 향상시키는 것을 목적으로 한다.
③ 소프트웨어 위기를 해결하는 방법 중 하나로 꼽힌다.
④ 소프트웨어의 수명이 연장되지만, 개발 비용이 증가한다.



정답 : 4
입력 답 : 2

 


 

☐ 소프트웨어 재공학의 주요 활동

 

2022년-1차 27번. 소프트웨어 재공학의 주요 활동 중 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경에서 사용할 수 있도록 변환하는 작업을 의미하는 것은?

 

① Analysis
② Migration
③ Restructuring
④ Reverse Enginnering



정답 : 2
입력 답 : 4

 

2022년-3차 95번. 소프트웨어 재공학의 주요 활동 중 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 것은?

 

① 역공학
② 분석
③ 재구성
④ 이식



정답 : 4
입력 답 : 3

 


 

소프트웨어 재사용(Software Reuse)

 

2022년-2차 14번. 명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서는 재사용되는 모든 단위라고 볼 수 있으며, 인터페이스를 통해서만 접근할 수 있는 것은?

 

① Model
② Sheet
③ Component
④ Cell



정답 : 3
입력 답 : 1

 

2023년-1차 96번. 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어 끼워맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법은?

 

① 합성 중심
② 생성 중심
③ 분리 중심
④ 구조 중심



정답 : 1
입력 답 : 4

 

2024년-1차 16번. 명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서는 재사용되는 모든 단위라고 볼 수 있으며, 인터페이스를 통해서만 접근할 수 있는 것은?

 

① Model
② Sheet
③ Component
④ Cell



정답 : 3
입력 답 : 1

 

2024년-1차 96번. 전차 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법은?

 

① 합성 중심
② 생성 중심
③ 분리 중심
④ 구조 중심



정답 : 1
입력 답 : 4

 


 

BELATED ARTICLES

more