정보시스템감리 기출문제/소프트웨어 공학

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

아이티신비 2024. 12. 28. 09:00

26. 다음 중 애자일 소프트웨어 개발 방법론에 대한 설명으로 가장 적절하지 않은 것은?

 

 

① Extreme programming에서 시스템 고객은 개발팀의 일부이고 다른 팀원들과 시나리오에 대해 토론한다.

② 사용사례 또는 사용자 스토리 단위로 조금씩 반복적으로 release를 한다.

③ Scrum approach에서는 제품 백로그 작성, 스프린트 계획 회의, 스프린트 수행, 스프린트 검토 및 회고 등의 프로세스를 가진다.

④ Sprint cycle은 inception, elaboration, construct-ion, transition이 반복적으로 수행되어 진다.

 

27. 다음 중 소프트웨어 비용산정 모델인 COCOMO II 에 대한 설명으로 가장 적절하지 않은 것은?

 

① COCOMO II 2000 계수조정모델에서 소프트웨어개발에 소요되는 노력의 양은 소프트웨어 규모에 대해 규모의 경제(Scale of Economy) 효과를 가지지 못한다.

② 외부입력(EI)의 복잡도 가중치와 외부질의(EQ)의 복잡도 가중치는 같다.

③ 재사용 모델에서 변경률(AAF)의 산정시 코드 변경률(CM)에 대한 가중치가 설계 변경률(DM)에 대한 가중치와 재사용 소프트웨어에 대한 통합 노력률(IM)에 대한 가중치 보다 높다.

④ 재사용 모델에서 설계 변경률(DM) 또는 코드 변경률(CM)이 0이면, 소프트웨어에 대한 이해도 (SU)는 0이 된다.

 

28. 다음 상황에서 사용할 수 있는 UML 다이어그램 으로 가장 적절한 것은?

 
가. 전체 시스템 수준에서 시스템과 상호작용하는 각 액터의 관점에서 모델링하고자 함
나. 시스템 객체사이의 어떤 제어흐름 및 알고리즘 설계, 동기화의 필요성 또는 병렬수행 가능성을 파악하고자 함

 

① Activity Diagram ② State Diagram

③ Class Diagram ④ Use Case Diagram

 

29. 마스터 브랜치에서 bugFix01의 새로운 브랜치를 생성한 다음, HEAD 포인터가 이 새로운 브랜치를 가리키게 하기 위한 Git 명령어로 가장 적절한 것은?

 

 

① git add bugFix01

② git branch bugFix01

③ git checkout bugFix01

④ git merge bugFix01

 

30. 다음 코드의 (가)와 (나)에 나타난 객체지향 개념으로 가장 적절한 것은?

ClosedFigure closedFigure;
Rectangle r = new Rectangle();
Circle c = new circle();
closedFigure = r;
closedFigure.getArea(); ………… (가)
closedFigure = c;
closedFigure.getArea(); ………… (나)

 

① 상속(inheritance)

② 정보은닉(information hiding)

③ 다형성(polymorphism)

④ 의존성(dependency)

 

31. 다음에서 설명하는 특징을 제공하는 SysML 다이어그램으로 가장 적절한 것은?

 
가. 운영 시스템에 유효한 시스템 변수 값을 표현 할 수 있어 예외 상황의 발생을 탐지할 수 있도록 한다.
나. 제약 조건 변수와 값 속성 간의 바인딩을 통해 값 속성 집합에 수학적 관계를 지정한다.

① Parametric diagram

② Package diagram

③ State machine diagram

④ Block definition diagram

 

32. 다음의 코드에 적용된 코드 리팩토링 기법으로 가장 적절한 것은?

 
<적용 전>
int increment(int inValue, int Qty, int amount) {
if (inValue > 50) inValues++;
....
<적용 후>
int increment(int inValue, int Qty, int amount) {
int grade = inValue;
if (inValue > 50) grade++;
....

 

① 임시변수 분리 기법(Split temporary variable)

② 매개변수 할당 제거 기법(Remove assignments to parameters)

③ 중간자 제거 기법(Remove middle man)

④ 조건 다형성 대체 기법(Replace conditional with polymorphism)

 

 

33. 다음 C 프로그램의 출력 결과로 가장 적절한 것은?

 
#include <stdio.h>
int main() {
int a, b, c, ary[][4] = {{10, 20, 30, 40}, {50, 60,
70, 80}};
int (*ptr)[4] = ary;
a = *(*(ptr + 1) + 3);
b = **ptr++;
c = **ptr;
printf("%d\n", a+b+c);
return 0;

 

① 80 ② 100

③ 120 ④ 140

 

34. ISO/IEC/IEEE 29119 Part 4에서는 Cause-effect graphing 방법을 설명하고 있다. Cause-effect graphing에서는 여러 개의 Cause들간의 제약 사항을 표현할 수 있다. 다음 중 Cause간의 제약사항으로서 가장 적절하지 않은 것은?

 

① Mask ② Requires

③ Exclusive ④ One and only one

 

35. 다음의 Video 클래스는 2개의 type code를 가지고 있다. kindCode는 VHS, CD를 의미하며, priceCode는 Normal, Discount를 의미한다. 이에 대한 Refactoring 후의 클래스 다이어그램으로서 가장 적절한 것은?

 

36. IEEE 29119에서는 combinatorial test design 방법으로서 base choice 방법을 제시하고 있다. 다음과 같이 4개의 글꼴 이름, 5개의 글꼴 크기, 3개의 스타일에 대한 테스트를 base choice 방법을 사용할 때 테스트케이스 수로서 가장 적절한 것은?

 
  • 글꼴 이름: 궁서, 굴림, 바탕, 고딕
  • 글꼴 크기: 10, 12, 14, 16, 18
  • 스타일: 밑줄, 기울임, 보통

① 5개 ② 10개

③ 20개 ④ 60개

 

37. 다음은 테스트케이스 설계 기법을 적용한 예이다.이 설명에서 적용된 테스트케이스 설계 기법으로서 가장 적절한 것은?

 
함수 getDistance()는 양방향 그래프의 시작위치와 목적지위치를 인자로 한다. 시작위치를 A로 하고 목적지위치를 B로 하였을 때의 거리 D를 첫 번째 테스트케이스로 결정하였다. 그리고 이를 바탕으로 시작위치를 B로 하고 목적지위치를 A로 하였을 때 동일한 거리 D를 두 번째 테스트케이스로 결정하였다.

① Equivalence partitioning

② Decision table testing

③ Metamorphic testing

④ Requirement-based testing

 

38. 다음 중 소프트웨어 유지관리 용이성을 향상시키는 개발 활동으로 가장 적절하지 않은 것은?

 

① 표준과 지침을 개발하여 실시하는 분석 활동

② 복수 엔트리, 복수 엑시트 구조를 사용한 구현 활동

③ 정보은닉, 자료 추상화, 하향식 계층 분배 원리를 관할한 기본 설계 활동

④ 각 루틴에 대한 부작용과 예외조치 방안을 정립한 상세 설계 활동

 

39. ISO/IEC 5055에서는 품질 특성을 평가하기 위한 소스코드의 weakness를 제시하고 있다. 다음 중 에서 ISO/IEC 5055에서 제시하고 있는 품질 특성으로 가장 적절하지 않은 것은?

 

① Maintainability ② Security

③ Reliability ④ Usability

 

40. 다음 중 코드 스멜과 이를 해결하기 위한 리팩토링 방법을 가장 적절하게 연결한 것만으로 짝지은 것은?

코드 스멜
리팩토링
(가) 다른 클래스를 지나치게 애용 (Feature Envey)
(a) 여러 클래스에 흩어진 유사한 기능을 한 곳으로 모은다.
(나) 여러 클래스를 동시에 수정 (Shotgun Surgery)
(b) 메소드를 그들이 애용하는 데이터가 있는 클래스로 옮긴다.
(다) 유사 데이터의 중복 (Data Clumps)
(c) 다형성으로 바꾼다. (같은 메소드를 가진 여러 개의 클래스를 구현한다.)
(라) 너무 많은 Switch, if 문장
(d) 해당 데이터들을 독립된 클래스로 정의 한다.

 

① (가) - (a), (다) - (c)

② (가) - (b), (다) - (d)

③ (나) - (a), (라) - (d)

④ (나) - (b), (라) - (c)

 

41. 다음 Python 프로그램의 출력 결과로 가장 적절한 것은?

 
language = ['python', 'java', 'go', 'ruby', 'c']
pop = language.pop()
pop2 = language.pop(1)
language.insert(1, pop)
language.insert(2, pop2)
print(language.index('go'))

 

① 3   ② 2

③ 1   ④ 0

 

42. 다음은 특정 함수의 논리 흐름 그래프이다. 이 함수의 사이클로매틱 복잡도로 가장 적절한 것은?

 

 

① 3   ② 4

③ 5   ④ 6

 

43. TMMi(Test Maturity Model Integration)는 소프트웨어 테스트 프로세스 등급 척도 모델로 소프트웨어 테스트 조직이 갖추고 있는 성숙도를 평가하고 프로세스를 개선하기 위한 모델이다. 다음 중 TMMi 레벨 2에서 테스트 계획(test planning)프로세스 영역의 세부 목표로 가장 적절하지 않은 것은?

 

① 제품 위험 평가 수행(perform a product risk assessment)

② 테스트 접근 방식 설정 (establish a test approach)

③ 테스트 추정치 설정(establish test estimates)

④ 테스트 성능 지표 설정(establish test performance indicators)

 

44. 다음의 상황에서 사용할 수 있는 요구사항 추출 방법으로 가장 적절한 것은?

 
가. 고객이 자신의 요구사항에 대하여 구체적으로 파악하고 있지 못한 상태임
나. 최종 시스템의 예상 기능 중 일부를 빠르게 구현하여 고객의 피드백을 조기에 받고자함
다. 발굴된 아이디어를 시험하고 검증하여 새로운 아이디어를 얻고자함

 

① 관찰(Observation)

② 인터뷰(Interview)

③ 브레인스토밍(Brainstorming)

④ 프로토타이핑(Prototyping)

 

45. 다음은 스프링 MVC의 구조를 나타낸다. (가)~(라) 에 해당하는 가장 적절한 것은?

① (가) DispatcherServlet (나) HandlerMapping

      (다) ModelAndView (라) ViewResolver

② (가) DispatcherServlet (나) ModelAndView

      (다) HandlerMapping (라) ViewResolver

③ (가) ViewResolver (나) HandlerMapping

      (다) ModelAndView (라) DispatcherServlet

④ (가) ViewResolver (나) ModelAndView

      (다) HandlerMapping (라) DispatcherServlet

 

46. 다음 설명에 해당하는 객체지향 설계 원칙으로 가장 적절한 것은?

 
추상 클래스와 인터페이스는 구체적인 클래스보다 덜 변하기 때문에 외부에서 해당 클래스를 참조하기 위해서는 가능한 추상 클래스에 의존한다.

 

① ISP(Interface Segration Principle)

② DIP(Dependency Inversion Principle)

③ OCP(Open/Close Principle)

④ LSP(Liskov Substitution Principle)

 

47. 다음 중 SP(SW 프로세스 품질) 인증에 관한 설명으로 가장 적절한 것은?

① 프로세스 평가는 프로세스와 수행 능력 수준 단계를 기준으로 하여 2차원으로 이루어진다.

② 한국지능정보사회진흥원(NIA)이 인증을 담당하는기관이다.

③ 3등급을 신청하였으나, 2등급 영역만을 인정받은 경우에는 2등급을 부여한다.

④ 총 5개 영역, 14개 영역별 평가항목, 60개 세부 평가항목으로 품질인증 기준을 구성한다.

 

48. IFPUG의 기능점수는 개발 기능점수(DFP), 개선 기능점수(EFP), 어플리케이션 기능점수(AFP)로 구분된다. 다음과 같은 조건이 주어졌을 때, 개선기능점수(EFP)를 구하는 식으로 가장 적절한 것은?

 
  • ADD = 개선 프로젝트에 의해 추가된 기능의 미조정 기능점수값
  • CHGA = 개선 프로젝트에 의해 수정된 기능의 미조정 기능점수값
  • CFP = 데이터 변환에 의해 포함된 기능점수값
  • VAFA = 개선 프로젝트 종료 후의 어플리케이션 값 조정인자
  • DEL = 개선 프로젝트에 의해 삭제된 기능의 미조정 기능점수값
  • VAFB = 개선 프로젝트 이전의 어플리케이션 값 조정인자.

① EFP = [(ADD+CHGA+CFP+DEL)×VAFA]

② EFP = [(ADD+CHGA+CFP-DEL)×VAFA]

③ EFP = [(ADD+CHGA+CFP)×VAFA]-(DEL×VAFB)

④ EFP = [(ADD+CHGA+CFP)×VAFA]+(DEL×VAFB)

 

49. 다음 Java 프로그램의 출력 결과로 가장 적절한 것은?

 
public class Test
{
public final int a = 10;
public void runIt()
{
int a = 20;
Runnable b = new Runnable(){
public final int a = 30;
public void run(){
int a = 40;
System.out.println(this.a);
}
};
b.run();
}
public static void main(String...args)
{
Test c = new Test();
c.runIt();
}
}

 

① 10 ② 20

③ 30 ④ 40

 

50. 다음은 애자일 성과지표와 해당 지표의 정의를 나타낸다. (가)~(라)에 해당하는 가장 적절한 것은?

지표
정의
(가)
전체 제품 백로그 대비 현재까지 완료한 제품 백로그 개수
(나)
시간 경과에 따른 남은 작업량을 그래프로 표시한 도표
(다)
시간 경과에 따른 완료된 작업량을 그래프로 표시한 도표
(라)
스프린트 기간에 수행된 제품 백로그들의 스토리 포인트 합

 

① (가) 백로그 진척률 (나) 번업 차트

     (다) 번다운 차트 (라) 속도

② (가) 백로그 진척률 (나) 번다운 차트

     (다) 번업 차트 (라) 속도

③ (가) 속도 (나) 번다운 차트

     (다) 번업 차트 (라) 백로그 진척률

④ (가) 속도 (나) 번업 차트

     (다) 번다운 차트 (라) 백로그 진척률

 

 

 

정답)

 
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

 

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥