[오늘부터는 소프트웨어공학 기출문제 26-30를 풀어보겠습니다.]
문제 26
26. 다음 Sequence diagram의 동작에서 적용된 디자인 패턴으로 가장 적절한 것은?
① Iterator
② Strategy
③ State
④ Chain of Responsibility
출제의도
사용자입장에서는 뭔가를 처리 요청을 하는데, 그림은 어떤 패턴을 통해 처리하는지 이해
각 항목에 대해서 설명하면:
① Iterator 패턴 :
이 패턴은 객체의 집합 내의 개별 요소를 순회하는 방법을 제공합니다.
이 패턴을 사용하면, 클라이언트는 집합의 내부 표현에 대해 알 필요 없이 요소를 순회할 수 있습니다.
② Strategy(정책) 패턴 :
이 패턴은 알고리즘을 정의하고, 각각을 별도의 클래스로 캡슐화하여, 그들을 상호 교환 가능하게 만듭니다. 이 패턴을 사용하면 알고리즘을 독립적으로 변경하여 클라이언트에게 영향을 주지 않습니다.
여러 알고리즘 중(정렬)에서 하나를 선택하는데 동일한 목적, 동일목적을 이루지만 성격이 다른 알고리즘을 사용해서 결과를 도출할 수 있다.
③ State 패턴 :
이 패턴은 객체의 내부 상태가 변경될 때마다 객체의 행동을 변경합니다.
이 패턴을 사용하면, 객체는 내부 상태를 변경함으로써 클래스를 변경하는 것처럼 보입니다.
④ Chain of Responsibility 패턴 :
이 패턴은 요청을 처리할 수 있는 객체의 체인을 정의하고, 요청을 체인을 따라 전달하여 요청을 처리합니다.
이 패턴을 사용하면, 요청을 보내는 객체와 받는 객체를 분리할 수 있습니다.
사용자 요청이 여러개인데(다양한 기능을 모아놓고), 요청을 해결할 때까지 처리(다중 IF문)
따라서, 요구사항을 모아놓고, 처리 할 때까지 반복 ④번이 정답니다.
문제 27
27. 다음은 3개의 Condition과 2개의 Action으로 구성된 Decision Table이다. 다음과 같이 TC1, TC 2, TC3, TC4 4개의 테스트케이스를 사용하는 경우 커버리지는? |
TC1: X = -200, Y = 0
TC2: X = 0, Y = 200
TC3: X = -100, Y = 150
TC4: X = -100, Y = 250
① 1 / 8
② 2 / 8
③ 3 / 8
④ 4 / 8
출제의도
문제를 잘 이해하고, 값에 맞게 있는것을 고르는 문제입니다.
부연설명
c는 컨디션, a는 액션
Rule에 의해 8가지 결정을 내림
TC: Test Case(4가지)
c1: -100 < = x
c2: 150 < y
c3: x+y >= 150
a1
a2
따라서, 컨디션 값에 룰을 대입해서 풀면 됩니다.
c1: -100 <= -200 f, c2: 150 < 0 f, c3: -200+0 >= 150 f ---> f, f, f
c1: -100 <= 0 t, c2: 150 < 200 t, c3: 0+200 >= 150 t ---> t,t,t
c1: -100 <= -100 t, c2: 150 < 150 f, c3: -100 + 150 >= 150 f --> t,f,f
c1: -100 <= -100 t, c2: 150 < 250 t, c3: -100 + 250 >- 150 t --> t,t,t
따라서, f, f, f; / t, t, t / t, f, t 가 룰 1, 6, 8번에 있으므로 3/8 정답은 ③입니다.
문제 28
28. Robert C. Martin은 clean architecture를 설명하 면서 컴포넌트 결합도에 대한 3가지 원칙을 제시 하였다. 이에 대한 설명 중 가장 적절하지 않은 것은? ① 자신보다 재사용성이 높은 컴포넌트에 의존해야 한다. ② 컴포넌트간의 의존성에 사이클이 존재하지 않아야 한다. ③ 자신보다 안정적(stable)인 컴포넌트에 의존해야 한다. ④ 자신보다 추상화된 컴포넌트에 의존해야 한다. |
출제의도
Robert C. Martin이 제시한 컴포넌트 결합도에 대한 3가지 원칙은 다음과 같습니다:
Acyclic Dependencies Principle (ADP): 컴포넌트 간의 의존성에 사이클이 존재하지 않아야 합니다.
Stable Dependencies Principle (SDP): 컴포넌트는 자신보다 안정적인 컴포넌트에 의존해야 합니다.
Stable Abstractions Principle (SAP): 컴포넌트는 자신보다 추상화된 컴포넌트에 의존해야 합니다.
따라서, 이 원칙들을 고려하면, 각 선택지를 분석해 볼 수 있습니다:
① 자신보다 재사용성이 높은 컴포넌트에 의존해야 한다:
이 원칙은 Robert C. Martin의 원칙에 포함되지 않습니다. 재사용성은 중요한 요소이지만, 이것이 컴포넌트가 다른 컴포넌트에 의존해야 하는 주된 이유는 아닙니다.
② 컴포넌트 간의 의존성에 사이클이 존재하지 않아야 한다:
이 원칙은 ADP에 해당하며, 이는 컴포넌트 간의 의존성이 복잡해지는 것을 방지합니다.
③ 자신보다 안정적인 컴포넌트에 의존해야 한다:
이 원칙은 SDP에 해당하며, 이는 컴포넌트가 안정적인 동작을 유지할 수 있도록 합니다.
④ 자신보다 추상화된 컴포넌트에 의존해야 한다:
이 원칙은 SAP에 해당하며, 이는 컴포넌트가 변경에 대해 유연하게 대응할 수 있도록 합니다.
따라서, 가장 적절하지 않은 설명은 ① 자신보다 재사용성이 높은 컴포넌트에 의존해야 한다입니다.
문제 29
29. 다음 중 인공신경망을 테스팅 할 때 사용할 수 있는 커버리지로 가장 적절하지 않은 것은? ① Neuron coverage ② Layer coverage ③ Component coverage ④ Sign-sign coverage |
출제의도
인공신경망을 테스팅할 때 사용할 수 있는 커버리지에 대해 설명드리겠습니다:
① Neuron coverage(뉴런 커버리지): 이는 신경망의 각 뉴런이 활성화되는지 여부를 측정하는 방법입니다.
이 커버리지는 신경망의 각 뉴런이 최소한 한 번은 활성화되도록 하는 것을 목표로 합니다.
② Layer coverage (레이어 커버리지): 이는 신경망의 각 레이어가 활성화되는지 여부를 측정하는 방법입니다.
이 커버리지는 신경망의 각 레이어가 최소한 한 번은 활성화되도록 하는 것을 목표로 합니다.
③ Component coverage(컴포넌트 커버리지): 일반적인 소프트웨어 테스팅에서 사용되는 커버리지 측정 방법으로, 특정 컴포넌트(함수, 클래스 등)가 테스트 중에 실행되는지를 측정합니다.
이는 인공신경망의 테스팅에 직접적으로 적용되는 커버리지 측정 방법이 아닙니다.
④ Sign-sign coverage(사인-사인 커버리지): 이는 두 연속적인 레이어 사이의 뉴런 쌍에 대해 출력 값의 부호 변화를 측정하는 방법입니다. 이 커버리지는 신경망의 각 뉴런 쌍이 모든 가능한 부호 변화 조합을 경험하도록 하는 것을 목표로 합니다.
따라서, 인공신경망을 테스팅할 때 사용할 수 있는 커버리지로 가장 적절하지 않은 것은 ③ 컴포넌트 커버리지입니다.
문제 30
30. 다음 설명으로 가장 적절한 용어는? 악의적인 행위자가 시스템에 무단으로 진입하거나 악의적인 행동을 유발하는 데 사용될 수 있는 소프트웨어 아키텍처 및 소스 코드의 문제점을 말하 며, 최근 소프트웨어 시스템에 영향을 미치는 다른 심각한 약점을 수용하기 위해 보안을 넘어 그범위가 확장되고 있다. ① Common Weakness Enumeration ② Technical Debt ③ Bad Smells ④ Anti-patterns |
출제의도
각 용어의 정의와 그들이 어떻게 소프트웨어 개발과 관련이 있는지를 이해하는 능력을 검증하는 것으로 보입니다.
각 선택지에 대한 설명은 다음과 같습니다:
① Common Weakness Enumeration (CWE): 소프트웨어의 보안 약점을 분류하고 설명하는 체계적인 방법입니다.
이는 악의적인 행위자가 시스템에 무단으로 진입하거나 악의적인 행동을 유발하는 데 사용될 수 있는 소프트웨어 아키텍처 및 소스 코드의 문제점을 포함합니다. 최근에는 소프트웨어 시스템에 영향을 미치는 다른 심각한 약점을 수용하기 위해 그 범위가 확장되고 있습니다.
② Technical Debt: 이는 소프트웨어 개발에서 발생하는 '빚’을 의미하며, 단기적인 해결책을 선택함으로써 장기적인 비용이 증가하는 상황을 가리킵니다.
③ Bad Smells: 이는 소프트웨어 코드에서 발견되는 특정 패턴을 의미하며, 이러한 패턴은 코드의 잠재적인 문제를 나타낼 수 있습니다.
④ Anti-patterns: 이는 소프트웨어 개발에서 피해야 하는 설계 패턴을 의미합니다. 이러한 패턴은 종종 문제를 해결하기보다는 더 큰 문제를 초래할 수 있습니다.
따라서, 가장 적절한 용어는 ① Common Weakness Enumeration (CWE)입니다.
[다음 시간에는 소프트웨어공학 기출문제 (31-35까지 풀어보도록 하겠습니다.]
'IT★자격증 > 정보시스템감리사 기출문제 풀이' 카테고리의 다른 글
2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 소프트웨어공학(36-40) (3) | 2023.11.28 |
---|---|
2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 소프트웨어공학(31-35) (1) | 2023.11.27 |
2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 보안(116-120) (1) | 2023.11.25 |
2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 보안(111-115) (1) | 2023.11.24 |
2023년 제 24회 정보시스템 감리사 기출문제 풀이 - 보안(106-110) (1) | 2023.11.23 |