정보시스템감리/소프트웨어 공학

(제 19회) 소프트웨어 공학 / (26)~(50)

아이티신비 2024. 1. 7. 01:10

26. 다음 중 기능 점수를 계산할 때 사용되는 소프트웨어 요소로 가장 적절하지 않은 것은 ?

 

① 입력 ② 출력 ③ 알고리즘 ④ 파일

 

27. 다음의 설명에 가장 적합한 개념은 무엇인가?

- 항상 동일한 방식으로 시스템을 구성하는 대신에 고객별 요구사항을 충족시켜야 한다.
- 재사용 가능한 컴포넌트 포트폴리오를 바탕으로 고객별 소프트웨어를 구축한다.
- 다양한 고객들의 요구사항을 수용하기 위하여 기능, 대상 플랫폼, 비기능적 요구사항 등의 가변성을 고려해야 한다.

① 서비스 지향 아키텍처(service oriented architecture)

② 소프트웨어 자산 관리(software asset management)

③ 소프트웨어 재사용(software reuse)

④ 소프트웨어 프로덕트 라인(software product lines)

 

28. 다음 (가)의 의사코드(psuedo code)와 (나)의 제어 흐름 그래프(control flow graph)에서 McCabe’s 순환복잡도(cyclomatic complexity)를 각각 구한 것은?

① (가) 3, (나) 3 ② (가) 3, (나) 4

③ (가) 4, (나) 4 ④ (가) 4, (나) 5

 

29. 다음 중에서 ISO/IEC 25010의 성능(performance efficiency)과 관련된 지표를 모두 고른 것은?

가. 동시 접속 가능한 사용자 수
나. 네트워크 Bandwidth 사용률
다. 평균 소요시간(turnaround time)
라. 단위 시간당 평균 처리량
마. 지원 가능한 프로토콜 수

① 가, 나 ② 가, 나, 다

③ 가, 나, 다, 라 ④ 가, 나, 다, 라, 마

 

30. 편의점에 근무하는 아르바이트 직원의 일급을 계산하기 위한 프로그램을 작성하려 한다. 이 프로그램에 대한 명세와 제한 조건이 다음과 같을 때, 동등 클래스 분할 기법에서 all combinations기법을 사용하여 테스트 케이스를 도출하려고 할 경우 필요한 동등 클래스 분할의 개수로 가장 적절한 것은?

명세: 아르바이트 직원은 경력자와 초보자로 나뉜다. 경력자는 5시간 이하로 근무할 경우, 8천원/시간, 5시간 초과 10시간 이하의 경우 1만원/시간, 10시간 초과의 경우에는 1.2만원/시간으로 일급을 계산한다. 초보자의 경우에는 경력자의 75%의급여를 지급한다. 하루의 최대 허용 근무시간은 15시간이다.
제한 조건: 이 프로그램은 근무 시간 입력을 위해 GUI를 제공하며, 경력자와 초보자의 선택은 라디오 버튼(radio button)으로 구현되고 (default 값: 초보자), 근무 시간 입력칸은 텍스트 박스(text box)로 구현되어야 한다. 계산의 편의를 위해 근무 시간은 시간 단위로 처리되며 사사오입이 적용된다. 즉 3시간 20분 근무했을 경우 3시간으로,3시간 40분 근무했을 경우 4시간으로 처리한다.

① 6개 ② 9개 ③ 10개 ④ 15개

 

31. 다음은 SOA(Service-Oriented Architecture)의 구성요소와 이들 간의 관계를 그림으로 나타내고 있다. (가) ~ (다)에 가장 적합한 구성요소는?

① (가) service registry, (나) service provider, (다) service requester

② (가) service requester, (나) service provider, (다) service registry

③ (가) service provider, (나) service requester, (다) service registry

④ (가) service registry, (나) service requester, (다) service provider

 

32. 다음 (가)와 같은 모듈 호출 관계도에서 모듈 e를 단위 테스트하기 위해, (나)와 같이 격리된 테스트 환경을 구축하였다. (나)의 구성요소 A, B, C의 역할을 나타낸 것 중 가장 적절한 것은?

① A: 테스트 드라이버, B: 테스트 스터브, C: 테스트 오라클

② A: 테스트 드라이버, B: 테스트 데이터 생성기, C: 테스트 모니터

③ A: 테스트 데이터 생성기, B: 테스트 스터브, C: 테스트 오라클

④ A: 테스트 데이터 생성기, B: 테스트 드라이버, C: 테스트 모니터

 

33. 애자일(agile) 프로세스 모델에는 XP, Scrum, Crystal 방법들이 있다. Scrum 방식에서 우선순위가 매겨진, 사용자의 요구사항 목록에 해당하는 것을 (가)라 하고, 계획대비 작업의 진행정도를 날짜별로 남은 작업량으로 나타낸 것을(나)라고 하며, 스프린트에서 수행한 활동을 돌아보고 검토하는 과정을 (다)라고 한다. (가) ~ (다)에 해당하는 용어로 가장 적절한 것은?

 

① (가) sprint backlog, (나) sprint, (다) daily scrum meeting

② (가) release backlog, (나) task board, (다) sprint review

③ (가) product backlog, (나) burndown chart, (다) sprint respective

④ (가) user story, (나) story point, (다) sprint planning meeting

 

34. 소프트웨어 개발 조직의 프로세스를 평가하기 위한 SPICE 모델을 고려하자. SPICE의 성숙도 수준을 낮은 단계에서 높은 단계 순으로 나열한다고 할 때, 다음 보기 중에서 가장 올바른 것은?

 

① established - performed - managed - optimizing - predictable

② performed - managed - established - predictable - optimizing

③ established - managed - performed - predictable - optimizing

④ performed - established - managed - optimizing – predictable

 

35. ISO/IEC 25010:2011의 제품 품질 모델에서는 8가지의 품질 주특성을 정의하고 있다. 다음 중에서 품질 주 특성과 가장 거리가 것은?

 

① 보안성(security)

② 사용성(usability)

③ 신뢰성(reliability)

④ 테스트용이성(testability)

 

36. 소스 코드와 이를 테스트하기 위한 테스트 케이스가 다음과 같이 주어졌다. 이 테스트 케이스는 문장 (statement) 커버리지, 조건(condition) 커버리지, 결정(decision) 커버리지를 100% 만족하지 못한다고 판명되었다. 다음 보기 중 이 세 가지 커버리지를 모두 100% 만족하기 위해 추가되어야 할 테스트 케이스로 가장 적절한 것은? (단, short-circuit evaluation은 수행하지 않음)

① {t3:<x = -5, y = 12>}

② {t3:<x = 10, y = 0>}

③ {t3:<x = 5, y = -5>}

④ {t3:<x = 8, y = -2>}

 

37. ISO/IEC/IEEE 29119-2 표준에서 테스트 설계 및 구현 프로세스는 다음의 6개의 활동(activity)으로 구성된다. 이 프로세스를 구성하는 활동들을 올바른 순서로 나열한 것은?

가. 테스트 커버리지 아이템 유도 (derive test coverage items)
나. 테스트 절차 유도 (derive test procedures)
다. 테스트 집합 조합 (assemble test sets)
라. 테스트 케이스 유도 (derive test cases)
마. 테스트 조건 유도 (derive test conditions)
바. 피처 집합 식별 (identify feature sets)

① 바 - 다 - 라 - 마 - 가 - 나

② 바 - 라 - 나 - 가 - 다 - 마

③ 바 - 가 - 라 - 마 - 나 - 다

④ 바 - 마 - 가 - 라 - 다 - 나

 

38. 다음의 Car 클래스의 speedUp 메소드는 NOT_MOVING, MOVING, FAILED 등에 따라서 상이한 동작을 switch문 으로 구현하고 있다. 이와 같은 상황에서 적용하기에 가장 적합한 리팩토링(refactoring) 기법은?

① replace parameter with method

② replace type code with state/strategy

③ introduce parameter object

④ remove control flag

 

39. 다음의 그림 (가)와 (나)는 동일한 시스템에 대한 구조로서 사각형은 모듈을 의미하며 선은 모듈간의 호출 관계를 의미한다. (가)의 구조는 (나)의 구조와 같은 모습으로 재구성되는 것이 바람직하다. 이 때 (나)와 가장 가까운 디자인 패턴은?

① facade pattern ② proxy pattern

③ composite pattern ④ mediator pattern

 

40. A 회사에서 개발하고자 하는 소프트웨어 제품은 다음과 같은 품질 특성을 만족하여야 한다. 이러한 품질 특성은 국제 표준 ISO 25010의 소프트웨어 제품 품질 평가 기준의 품질 주특성과 관련 지을 수 있다. 관련된 품질 주특성을 가장 적절하게 나열한 것은? (단, ISO/IEC 25010:2011 기준)

- 공통 환경 및 자원을 다른 제품과 공유하면서 다른 제품에 악영향을 미치지 않고 필요한 기능을 효율적으로 수행 할 수 있어야 한다.
- 동일한 환경에서 같은 목적의 다른 소프트웨어 제품을 이 제품이 대체 할 수 있어야 한다.
- 제품은 새로운 결함을 도입하거나 제품의 품질을 저하시키지 않고 효과적으로 수정될 수 있어야 한다.

① {functional suitability, compatibility, maintainability}

② {functional suitability, compatibility, portability}

③ {functional suitability, portability, maintainability}

④ {compatibility, portability, maintainability}

 

41. 다음은 엘리베이터 관리자 기능과 스케쥴러 기능에 대한 클래스 다이어그램을 보여 준다. 이 설계에

적용된 가장 적절한 2개의 디자인 패턴을 고른 것은?

① strategy pattern, template method pattern

② strategy pattern, observer pattern

③ command pattern, observer pattern

④ template method pattern, state pattern

 

 

42. 다음 중에서 소프트웨어 프로세스(SP) 품질 인증의 2등급에 해당되는 평가 항목을 모두 고른 것은?

가. 프로젝트 계획
나. 설계
다. 측정 및 분석
라. 고객 요구사항 관리
마. 문제 해결

① 가, 나 ② 가, 나, 라

③ 가, 나, 라, 마 ④ 가, 나, 다, 라

 

43. 다음 형상관리(configuration management) 설명에 가장 부합하는 용어는?

이는 시스템을 구성하는 컴포넌트 버전의 집합이다. 여기에 사용된 컴포넌트 버전은 변경되지 않도록 통제되어야 한다. 만약 이를 새롭게 재생성 하고자 하면 구성된 컴포넌트 버전을 변경할 수 있다.

① mainline ② baseline

③ branching ④ merging

 

44. 다음 코드를 수행할 때, 수행결과로 가장 적절한 것은 ?

#include <stdio.h>
void main()
{
int a = 20, b = 30;
if ( a++ <= 20 || ++b > 30 )
b++;
printf(“%d %d\n”, a++, b );
}

① 21 31 ② 21 32 ③ 22 31 ④ 22 32

 

45. 아래 상태 다이어그램에서는 이벤트 발생에 따라 상태 전이가 일어난다. 다음 중 이벤트에 따른 상태 전이로 가장 적절하지 않은 것은 ?

46. 모듈 내부의 응집도는 가장 약한 정도(가장 바람직 하지 못한 경우)에서 가장 강한 정도(가장 바람직한 경우)에 이르기까지 나열할 수 있다. 다음 중 모듈 내부의 응집도가 약한 정도에서 강한 정도 순으로 가장 적절하게 나열한 것은?

 

① coincidental cohesion – logical cohesion – temporal cohesion – communicational cohesion – procedural cohesion – sequential cohesion – functional cohesion

② coincidental cohesion – logical cohesion – temporal cohesion – procedural cohesion – communicational cohesion – sequential cohesion – functional cohesion

③ coincidental cohesion – logical cohesion – sequential cohesion – communicational cohesion – procedural cohesion – temporal cohesion – functional cohesion

④ coincidental cohesion – logical cohesion – temporal cohesion – sequential cohesion – communicational cohesion – procedural cohesion – functional cohesion

 

47. 다음 그림은 V 모델을 나타낸 것이다. 다음 보기 중에서 그림의 (가) 단계에서 적용할 수 있는 테스트 기법으로 가장 거리가 것은?

 

① 복구 테스트 ② 빅뱅 테스트

③ 볼륨 테스트 ④ 스트레스 테스트

 

48. 다음은 위임을 이용하여 adapter pattern을 구현한 클래스 다이어그램을 나타내고 있다. (가) ~ (다) 에 가장 적합한 클래스명은?

① (가)-adaptee, (나)-adapter, (다)-target

② (가)-adapter, (나)-adaptee, (다)-target

③ (가)-target, (나)-adapter, (다)-adaptee

④ (가)-target, (나)-adaptee, (다)-adapter

 

49. 다음 코드를 수행할 때, 수행결과로 가장 적절한 것은?

int func(int& res, int val) {
res = res + val;
return res;
}
void main() {
int sum = 0;
for(int a = 1; a < 4; a++)
sum += func(sum, a);
cout << sum << endl;
}

① 50 6 ② 12 ③ 22 ④ 24

 

50. 다음은 UML 2.0에 기반하여 UML class, package, component와 interface간의 관계를 보여 준다. 다음 중 가장 적절하지 않은 것은?

① (가) ② (나) ③ (다) ④ (라)

 


 

정답)

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50