본문 바로가기
IT★자격증/정보시스템감리사 기출문제 풀이

2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 소프트웨어공학(41-45)

by 꼬모부 2023. 11. 29.
728x90

[이어서 소프트웨어공학 기출문제 41-45를 풀어보겠습니다.]

 

문제 41

41. 각 개발 단계에서 생성된 결함의 수와 발견된 결함의 수는 다음 표와 같다. 단계별 PCE(Phase Containment Effectiveness)가 큰 단계에서 작은 단계의 순서대로 바르게 나열한 것은? 
결함생성 단계 \ 결함발견 단계 분석 설계 구현 테스트
분석 114 27 4 15
설계   93 6 24
구현     213 105

 

① 분석 - 설계 – 구현

② 분석 – 구현 - 설계

③ 설계 – 구현 – 분석

④ 설계 – 분석 – 구현

 

출제의도

위 문제는 다시 공부해서 반영하도록 하겠습니다.

정답은 ④ 설계 – 분석 – 구현 입니다.

 

문제 42

42. Git 명령어에 대한 설명으로 가장 적절한 것은?

① git push – 원격 저장소의 모든 내용을 로컬 저장소로 복사한다.
② git fetch – 로컬 저장소의 변경 사항을 원격 저장소로 보낸다.
③ git pull – git remote 명령을 통해 서로 연결된 원격 저장소의 최신 내용을 로컬 저장소로 가져오면서 병합한다.
④ git clone – 로컬 저장소와 원격 저장소의 변경 사항이 다를 때 이를 비교 대조하고 git merge 명령어와 함께 최신 데이터를 반영하거나 충돌 문제 등을 해결한다. 

 

출제의도

Git의 기본적인 명령어에 대한 이해를 확인하는 것입니다

 

각 항목에 대한 설명은 다음과 같습니다:

① git push

– 이 명령어는 로컬 저장소의 변경 사항을 원격 저장소로 보내는 것입니다. 따라서 설명이 잘못되었습니다.

 

② git fetch

– 이 명령어는 원격 저장소의 최신 변경 사항을 로컬 저장소로 가져오는 것입니다. 그러나 이 변경 사항은 자동으로 병합되지 않습니다. 따라서 설명이 잘못되었습니다.

 

③ git pull

– 이 명령어는 원격 저장소의 최신 변경 사항을 로컬 저장소로 가져오면서 병합하는 것입니다. 따라서 설명이 정확합니다.

 

④ git clone

– 이 명령어는 원격 저장소의 내용을 새로운 로컬 저장소로 복사하는 것입니다. 따라서 설명이 잘못되었습니다.

 

따라서, 가장 적절한 설명은 ③ git pull입니다.

이 명령어는 git remote 명령을 통해 서로 연결된 원격 저장소의 최신 내용을 로컬 저장소로 가져오면서 병합합니다. 이는 Git을 사용하는 개발자가 자신의 작업을 최신 상태로 유지하면서 다른 개발자와 협업할 수 있게 해주는 중요한 기능입니다. 

 

문제 43

43. 다음 그림은 메인라인, 베이스라인, 코드라인의 관계를 나타낸다. A, B, C를 각각의 코드라고 할때, (가)~(다)에 해당하는 것을 바르게 연결한 것은?
          (가)           (나)           (다)
① 코드라인 메인라인 베이스라인
② 베이스라인 코드라인 메인라인
③ 코드라인 베이스라인 메인라인
④ 메인라인 베이스라인 코드라인 

 

출제의도

용어에 대한 이해를 하고 있으면, 좀더 쉽게 접근 가능합니다.

 

위 그림(가)는 코드라인에 대해서 설명하고 있습니다. 즉 모듈(Module) 이라고 바라보면, a -> a1.1 -> a1.2 -> a1.3로 변경되고 있는 것이라 생각해볼 수 있습니다. a,b,c의 모듈을 전체를 컴포넌트(Component)라고 합니다.

 

위 그림(나)는 그림 (가)의 각 모듈을 담고 있습니다. 각 모듈의 단계에서 산출물이나 결과가 나오기 전까지는 다음작업으로 이어질수 없는데, 이를 베이스라인이라고 합니다. 기술적 통제시점을 통해서 다음에 진행될 작업들이 결정되게 됩니다.

 

위 그림(나)의 첫번째 (다)는 버전 1이고, 두번째 (다)는 버전 2라고 보시면 됩니다.

즉 기술적 통제시점을 모아 놓은것이 메인라인 이라고 합니다.

 

따라서, 정답은 ③ 코드라인 베이스라인 메인라인 입니다.

 

부연설명

베이스라인(base line) : 

기술적 통제시점으로 공식적인 변경 제어 절차를 통해서만 변경될 수 있는 명세나 프로덕트를 말합니다.

 

코드라인(code line) :

소프트웨어 컴포넌트 단위이 버전들의 집합이며 특정 코드의 집합을 말합니다.

 

메인라인(main line) :

기준선들의 변화 및 순서를 나타냅니다.

 

 

문제 44

44. 다음 컴포넌트 Cc의 안정성(stability) 지표로 가장 적절한 것은? 
① Fan-in: 3, Fan-out: 1, I(Instability): 1/4
② Fan-in: 1, Fan-out: 3, I(Instability): 1/4
③ Fan-in: 3, Fan-out: 1, I(Instability): 3/4
④ Fan-in: 1, Fan-out: 3, I(Instability): 3/4 

 

출제의도

Cc의 안정성 지표를 구하는 문제입니다.

 

각 항목에대해서 설명드리겠습니다:

Cc의 컴포넌트 입장에서 보면, Fan-in 3, Fan-out 1

불안전성은 I = Fan-out / (Fan-in + Fan-out) 이런 계산식으로 계산이 됩니다.

Cc는 Cd에게 Fan-out 이 있기 때문에 불안정한 컴포넌트 입니다.

따라서, 정답은 ① Fan-in: 3, Fan-out: 1, I(Instability): 1/4 이 됩니다.

 

참고로, 안정성이 높은것을 고른다면 정답은 ③ Fan-in: 3, Fan-out: 1, I(Instability): 3/4 됩니다.

부연설명

안정성(stablitiy)은 해당 컴포넌트에 의존하게 만드는 것입니다. 위 그림에서 보면, Ca의 q,r과  Cb의 s가 Cc의 t, u에게 의존하고 있다고 보시면 되고, 의존성이 높다는것은 안정성이 높다는 애기입니다.

 

Fan-in: 안으로 들어오는 의존성입니다. 보통 공유도라고 말합니다.

Fan-out : 바깥으로 나가는 의존성 입니다. 보통 제어도라고 말합니다.

I(Instability) 불안정성 : I = Fan-out / (Fan-in + Fan-out) 이 지표는 [0 ~ 1]에 있는 값으로 0에 가까우면 안정한 컴포넌이고, 1에 가까운면 불안정된 컴포넌트 입니다.

 

문제 45

45. 다음 소스 코드 커버리지의 포함 관계에서 (가)~(라)에 해당하는 항목으로 바르게 연결한 것은? 
① (가) 구문커버리지 (나) 조건/결정커버리지 (다) 변경 조건/결정 커버리지 (라) 다중 조건 커버리지
② (가) 다중 조건 커버리지 (나) 조건/결정커버리지 (다) 변경 조건/결정 커버리지 (라) 구문커버리지
③ (가) 구문커버리지 (나) 변경 조건/결정 커버리지 (다) 조건/결정커버리지 (라) 다중 조건 커버리지
④ (가) 다중 조건 커버리지 (나) 변경 조건/결정 커버리지 (다) 조건/결정커버리지 (라) 구문커버리지 

 

출제의도

커버리지의 포함관계에 대해서 이해하고 있는지를 알아보기 위함입니다.

 

결정 커버리지: 전체(All) 조건을 만족한다는 의미입니다.

조건 커버리지: 일부 조건을 만족한다는 의미입니다.

즉, 논리적 OR 조건을 만족하는것을 찾아 내면 됩니다.

 

그림 (다)는 결정과 조건 커버리지를 모두 만족하는 것입니다.

그림 (라)는 조건 커버리지가 가장 약한 것입니다 이것을 구문커버리지(문장)라고 합니다. 

 

따라서, 정답은 ③ (가) 구문커버리지 (나) 변경 조건/결정 커버리지 (다) 조건/결정커버리지 (라) 다중 조건 커버리지 입니다.

 

부연설명

문장검증기준(statement coverage, 구문커버리지):

프로그램에 있는 모든 문장이 적어도 한 번씩 수행하는 검증기준으로 가장 약한 커버리지입니다

 

결정 검증 기준(decision coverage, 결정커버리지):

각 분기의 내부 조건 자체가 아닌 참 혹은 거짓이면 충족 되는 커버리지로 조건/결정 커버리지 보다는 약합니다.

 

[다음 시간에는 소프트웨어공학 기출문제 46-50까지 풀어보도록 하겠습니다.]

 

반응형
LIST