7급 국가직 소프트웨어공학 2024년 기출문제

시행 2024-10-12 · 책형 나 · 25문항 · 출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

전체 풀기 (시험 모드)원본 PDF 받기2024 7급 국가직 전과목
1.
소프트웨어의 대표적 특징으로 옳지 않은 것은?
소프트웨어공학
  1. ①순응성
  2. ②복잡성
  3. ③마모성
  4. ④비가시성
정답 보기

정답 ③ · 해설 보기

2.
요구 분석에 필요한 작업의 단계를 순서대로 바르게 나열한 것은?
(가) 요구사항 분석
(나) 요구사항 검증
(다) 요구사항 추출
(라) 요구사항 명세
소프트웨어공학
  1. ①(다) → (가) → (라) → (나)
  2. ②(다) → (라) → (나) → (가)
  3. ③(라) → (가) → (다) → (나)
  4. ④(라) → (다) → (가) → (나)
정답 보기

정답 ① · 해설 보기

3.
소프트웨어 설계 시, 소프트웨어를 기능 단위로 분해하여 모듈 간의 결합도(coupling)를 최소화하고, 모듈의 독립성을 높이기 위한 설계 원칙은?
소프트웨어공학
  1. ①다형성
  2. ②모듈화
  3. ③추상화
  4. ④연산자 오버로딩
정답 보기

정답 ② · 해설 보기

4.
요구사항의 특성에 대한 설명으로 옳지 않은 것은?
소프트웨어공학
  1. ①신뢰성, 성능, 안전성은 기능적 요구사항에 해당한다.
  2. ②비기능적 요구사항인 MTBF는 (MTTF + MTTR)로 나타낸다.
  3. ③Windows에서 C++ 언어로 개발하라는 것은 비기능적 요구사항으로 분류된다.
  4. ④비기능적 요구사항인 가용성을 높이기 위해서는, MTTF를 증가시키고 MTTR을 감소시켜야 한다.
정답 보기

정답 ① · 해설 보기

5.
소프트웨어 개발 프로세스 모델에 대한 용어와 설명을 바르게 연결한 것은?
(가) 나선형 모델 (spiral model)
(나) 통합 프로세스 모델 (unified process model)
(다) V 모델 (V model)
A. 테스트 단계가 분석 및 설계와 어떻게 관련되어 있는지 나타내고, 각 개발 단계를 검증하는 데 초점을 둔다.
B. 위험분석 단계가 존재해 처음부터 위험에 대해 고려하면서 개발을 진행한다.
C. 개발과정은 크게 4단계(도입, 정련, 구축, 전이)로 나뉘고 각 단계도 여러 개의 작은 단위로 나뉘며, 한 번 반복이 끝나면 실행 가능한 산출물이 도출된다.
(가) (나) (다)
소프트웨어공학
  1. ①A B C
  2. ②A C B
  3. ③B C A
  4. ④C A B
정답 보기

정답 ③ · 해설 보기

6.
특정 회사에서 공공 소프트웨어 개발 프로젝트를 수행하는 데 다음과 같은 조건이 적용될 때, 계약 기간 내에 프로젝트를 성공적으로 수행하기 위해서 추가로 투입될 최소 개발 인원은?
계약 기간
10개월
추정 소스코드 라인 수
100,000 LOC
개발자 1인당 월평균 생산성
1,000 LOC/MM(Man Month)
현재 개발자 수
7명
소프트웨어공학
  1. ①3명
  2. ②4명
  3. ③5명
  4. ④6명
정답 보기

정답 ① · 해설 보기

7.
다음 설명에 해당하는 용어는?
○ 테스트 실행 결과를 검증하기 위한 메커니즘
○ 테스트 수행 결과가 참인지 거짓인지를 판단하기 위해 미리 정의된 참값과 비교하는 테스트 기법
소프트웨어공학
  1. ①테스트 케이스 (test case)
  2. ②테스트 오라클 (test oracle)
  3. ③테스트 하니스 (test harness)
  4. ④테스트 드라이버 (test driver)
정답 보기

정답 ② · 해설 보기

8.
익스트림 프로그래밍 (XP, eXtreme Programming) 특징에 대한 설명으로 옳지 않은 것은?
소프트웨어공학
  1. ①테스트 우선(test-first) 개발방법이다.
  2. ②개발자는 짝(pair)으로 작업하지 않는다.
  3. ③빈번한 배포(release)를 통해 결과물을 평가받는다.
  4. ④요구사항은 사용자 스토리(user story)로 표현된다.
정답 보기

정답 ② · 해설 보기

9.
다음에서 설명하는 테스트 케이스 도출 기법은?
입력값 조합의 경우의 수를 줄이기 위해 두 입력값의 조합을 통해 테스트 케이스를 도출하는 기법으로, 모든 경우의 수를 테스트하지 않고 2개 요소의 모든 조합을 확인할 수 있도록 테스트 케이스를 생성한다.
소프트웨어공학
  1. ①결정 테이블(decision table)
  2. ②동등분할(equivalence partitioning)
  3. ③경곗값 분석(boundary value analysis)
  4. ④페어와이즈 조합(pairwise combination)
정답 보기

정답 ④ · 해설 보기

10.
소프트웨어 형상 관리에 대한 설명으로 옳지 않은 것은?
소프트웨어공학
  1. ①소프트웨어 제품의 변경된 상태에 대한 정보를 제공해준다.
  2. ②좋은 품질의 소프트웨어를 생산하고 유지보수도 용이하게 해준다.
  3. ③형상 식별은 변경 요청, 변경 심사, 변경 실시, 변경 확인 등으로 세분화된다.
  4. ④개발 중 변해 가는 소프트웨어 형상을 체계적으로 관리하고 유지하기 위한 기법이다.
정답 보기

정답 ③ · 해설 보기

11.
다음 Python 소스코드에 대한 순환 복잡도는?
temp = []
i = 0
d = 2
arr = [1, 2, 3, 4, 5]
while (i < d):
    temp.append(arr[i])
    i = i + 1
i = 0
while (d < len(arr)):
    arr[i] = arr[d]
    i = i + 1
    d = d + 1
arr[:] = arr[: i] + temp
소프트웨어공학
  1. ①2
  2. ②3
  3. ③4
  4. ④5
정답 보기

정답 ② · 해설 보기

12.
소프트웨어 유지보수 시 비용이 가장 많이 드는 것은?
소프트웨어공학
  1. ①적응 유지보수(adaptive maintenance)
  2. ②완전 유지보수(perfective maintenance)
  3. ③수정 유지보수(corrective maintenance)
  4. ④예방 유지보수(preventive maintenance)
정답 보기

정답 ② · 해설 보기

13.
다음 다이어그램에서 표현된 객체지향의 개념으로만 옳게 짝지은 것은?
소프트웨어공학
  1. ①다형성, 상속
  2. ②캡슐화, 다형성
  3. ③정보은닉, 상속
  4. ④캡슐화, 정보은닉
정답 보기

정답 ④ · 해설 보기

14.
다음 제시문을 UML 상태머신(state machine) 다이어그램 표기법으로 바르게 나타낸 것은?
상태 X에서 trigger 이벤트가 발생했을 때, condition 조건이 참이면 effect 효과를 수행하고 상태 Y로 전이한다.
소프트웨어공학
  1. ①
  2. ②
  3. ③
  4. ④
정답 보기

정답 ① · 해설 보기

15.
UML 다이어그램에 대한 용어와 설명을 바르게 연결한 것은?
(가) 커뮤니케이션 다이어그램
(나) 액티비티 다이어그램
(다) 시퀀스 다이어그램
A. 객체와 액터의 관계에 초점을 두고, 사건의 흐름을 네트워크 형태로 압축하여 나타낸다.
B. 사용 사례를 이루는 객체들이 어떻게 메시지를 보내 협력하는지를 시간의 흐름에 따라 표시한다.
C. 복잡한 시스템 작업의 병행 처리를 위해 포크(fork), 조인(join)을 이용한다.
(가) (나) (다)
소프트웨어공학
  1. ①A B C
  2. ②A C B
  3. ③B C A
  4. ④C A B
정답 보기

정답 ② · 해설 보기

16.
객체지향의 SOLID 설계 원리 중 다음 클래스 다이어그램이 위반한 설계 원리는?
소프트웨어공학
  1. ①개방-폐쇄 원리(open-closed principle)
  2. ②단일 책임의 원리(single responsibility principle)
  3. ③리스코프 치환 원리(Liskov substitution principle)
  4. ④의존 관계 역전의 원리(dependency inversion principle)
정답 보기

정답 ③ · 해설 보기

17.
다음 요구사항 추출 방법에 대한 설명으로 (가), (나)에 들어갈 용어를 바르게 연결한 것은?
(가)
은/는 여러 명으로부터 정보를 얻을 수 있는 효과적인 방법이다. 그룹으로 테이블에 앉아 아이디어를 추출할 목적으로 특정 토픽에 관하여 토론을 수행하며, 판단과 비판을 유보함으로써 창의성을 극대화할 수 있는 요구 추출 방법이다.
(나)
은 사용자의 기초적인 요구를 최대한 반영한 소규모 모형을 개발하여 이를 기반으로 더욱 구체적인 요구 분석을 가능하게 하는 방법이다. 주요 목적은 소프트웨어 엔지니어의 아이디어에 대한 피드백을 조기에 받아 요구사항을 취합하는 것이다.
(가) (나)
소프트웨어공학
  1. ①인터뷰 관찰
  2. ②인터뷰 프로토타이핑
  3. ③브레인스토밍 관찰
  4. ④브레인스토밍 프로토타이핑
정답 보기

정답 ④ · 해설 보기

18.
다음과 같은 모듈 계층 구조를 가진 시스템의 테스팅을 수행하는 과정에 대한 설명으로 옳은 것만을 모두 고르면?
(가) 하향식 기법의 통합 테스팅은 모듈 A부터 시작한다.
(나) 빅뱅 테스팅을 수행하기 위해서는 A부터 G까지의 모든 모듈을 한꺼번에 연결하여 테스팅을 수행한다.
(다) 하향식 기법을 수행하기 위해서는 스텁(stub) 모듈이 필요하다.
(라) 상향식 기법을 수행하기 위해서는 드라이버(driver) 모듈이 필요하다.
소프트웨어공학
  1. ①(가), (나)
  2. ②(다), (라)
  3. ③(가), (나), (다)
  4. ④(가), (나), (다), (라)
정답 보기

정답 ④ · 해설 보기

19.
다음 C 언어로 작성된 소스코드에서 나타나는 결합도로 옳은 것은?
#include <stdio.h>
int sum_array(int *arr, int length) {
    int i, ret;
    ret = 0;
    for (i = 0; i < length; i++)
        ret += arr[i];
    return ret;
}

int main() {
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    printf("%d", sum_array(a, 10));
    return 0;
}
소프트웨어공학
  1. ①제어 결합도
  2. ②외부 결합도
  3. ③스탬프 결합도
  4. ④데이터 결합도
정답 보기

정답 ③ · 해설 보기

20.
응집도를 강한 것부터 순서대로 나열할 때, (가) ∼ (다)에 들어갈 용어로 적절하지 않은 것은?
기능적 응집 - (가) - (나) - (다) - 우연적 응집
(가) (나) (다)
소프트웨어공학
  1. ①절차적 응집 시간적 응집 논리적 응집
  2. ②교환적 응집 절차적 응집 시간적 응집
  3. ③순차적 응집 교환적 응집 논리적 응집
  4. ④절차적 응집 순차적 응집 시간적 응집
정답 보기

정답 ④ · 해설 보기

21.
다음에서 설명하는 디자인 패턴은?
그림에서 ‘클라이언트’는 ‘대상’ 인터페이스를 통해서 ‘request()’를 실행하는데, 어떤 객체를 통해서 ‘request()’가 처리되는지 알지 못하고 ‘X’ 객체가 ‘실제대상’ 객체를 참조하고 있으면서 ‘클라이언트’의 요청에 대응하여 ‘실제대상’ 객체에게 실제 ‘request()’ 실행을 요청하여 필요한 작업이 이루어진다.
소프트웨어공학
  1. ①Proxy 패턴
  2. ②Bridge 패턴
  3. ③Adapter 패턴
  4. ④Chain of responsibility 패턴
정답 보기

정답 ① · 해설 보기

22.
다음 C 언어로 작성된 소스코드에서 두 개의 테스트 케이스, [Test case 1: (x=10, y=10, z=10), Test case 2: (x=8, y=7, z=5)]를 사용하여 테스트를 실행할 때, 이 두 개의 테스트 케이스로 달성되는 분기 커버리지와 조건 커버리지를 바르게 계산한 것은? (단, 단축 연산(short-circuit evaluation)은 수행하지 않고, 분기 및 조건에서 true 및 false 각각을 하나의 경우의 수로 계산한다)
if ((x > 5) || (y > 10) || (z < 8)) {
   z = x + y;
   z = z - 1;
}

if ((x > 8) && (z > 9)) {
   z = z + 1;
}
분기 커버리지(%) 조건 커버리지(%)
소프트웨어공학
  1. ①50 70
  2. ②75 80
  3. ③75 70
  4. ④100 80
정답 보기

정답 ③ · 해설 보기

23.
CMMI(Capability Maturity Model Integration)는 소프트웨어 프로세스 개선 성숙도를 측정하기 위해 개발된 모델이다. 단계별 성숙도 측정 시 최적화(optimizing) 단계에 해당하는 프로세스 영역은?
소프트웨어공학
  1. ①제품 통합(product integration)
  2. ②형상 관리(configuration management)
  3. ③협력 업체 관리(supplier agreement management)
  4. ④근본 원인 분석 및 해결(causal analysis & resolution)
정답 보기

정답 ④ · 해설 보기

24.
기능 점수 방법을 활용한 소프트웨어 개발 비용 산정의 수행 순서를 바르게 나열한 것은?
(가) 기능 점수 계산
(나) 규모 추정
(다) 노력 산정
(라) 기능 점수 보정
(마) 소요 기간 산정
소프트웨어공학
  1. ①(가) → (라) → (나) → (다) → (마)
  2. ②(가) → (라) → (나) → (마) → (다)
  3. ③(나) → (가) → (라) → (다) → (마)
  4. ④(나) → (가) → (라) → (마) → (다)
정답 보기

정답 ① · 해설 보기

25.
다음 소프트웨어 개발 일정에 대한 설명으로 옳지 않은 것은?
작업 이름
A
B
C
D
E
F
G
H
I
J
종료
선행 작업
-
A
A
C, E
B
E
F
D, G
H
I
J
수행 기간
(개월)
2
4
5
2
2
2
1
2
1
2
-
소프트웨어공학
  1. ①D작업은 임계 경로에 포함되지 않는다.
  2. ②개발 종료까지 최소 16개월이 소요된다.
  3. ③일정상 C작업의 여유 기간은 2개월이다.
  4. ④H작업을 완료하기 위해서는 개발 시작 후 최소 11개월이 필요하다.
정답 보기

정답 ④ · 해설 보기