7급_소프트웨어공학정답(2021-05-23 / 378.9KB / 493회)
소프트웨어공학(7급) A책형 1/3쪽 1. 폭포수 모델에 대한 설명으로 가장 옳지 않은 것은? ① 각 단계가 순차적으로 진행되며, 병행되거나 거슬러 반복 진행되는 경우가 거의 없다. ② 작업 단계가 단순하고, 다음 단계를 수행하기 위한 중간 산출물이 명확하다. ③ 문서작성에 비교적 시간이 적게 소요되어 코딩과 테스팅을 빠르게 수행할 수 있다. ④ 각 단계와 일정이 엄격하여 요구사항 변경을 수용 하기 어렵다. 2. 응집도(cohesion)는 모듈 내의 구성요소들 간의 연관 정도를 나타낸다. 는 각 구성요소가 응집된 형태에 따라 분류한 것인데, 이 중 응집도가 가장 낮은 것과 가장 높은 것을 순서대로 옳게 짝지은 것은? ᆨ. 우연적(coincidental) 응집도 ᆫ. 절차적(procedural) 응집도 ᆮ. 순차적(sequential) 응집도 ᆯ. 교환적(communicational) 응집도 ᆷ. 기능적(functional) 응집도 ᆸ. 논리적(logical) 응집도 ᄉ. 시간적(temporal) 응집도 ① ᆨ-ᆮ ② ᆨ-ᆷ ③ ᆯ-ᄉ ④ ᆸ-ᆫ 3. 의 프로젝트 산정 기법으로 가장 옳은 것은? 유사한 프로젝트 경험을 가진 전문가 집단을 구성하고, 이 전문가들에게 규모, 공수, 비용의 산정 의견을 구하되, 의견 일치가 이루어지지 않을 경우 의견의 근거를 익명 으로 집단 내에 배포하고 자신들의 산정을 수정할 수 있도록 한다. 이 과정을 필요한 만큼 반복함으로써 의견 일치를 이루어 최종적인 산정값을 구한다. ① COCOMO ② 기능 점수 ③ WBS ④ 델파이 기법 4. UML 다이어그램 중 행위(behavior) 다이어그램에 해당하지 않는 것은? ① 활동(activity) 다이어그램 ② 상태(state) 다이어그램 ③ 유스케이스(use case) 다이어그램 ④ 컴포넌트(component) 다이어그램 5. 의 항목들이 해당되는 소프트웨어 유지보수의 종류로 가장 옳은 것은? ∙ 리눅스(Linux)에서 동작하는 프로그램을 다른 운영 체제에서도 동작하도록 함 ∙ 인터넷 익스플로러(Internet Explorer)에 최적화된 웹 프로그램을 크롬(Chrome)에서도 동작하도록 함 ∙ 특정 버전의 라이브러리(Library)를 사용하여 개발된 프로그램을 좀 더 최신 버전의 라이브러리도 사용이 가능하도록 개선함 ① 수정 유지보수(corrective maintenance) ② 적응 유지보수(adaptive maintenance) ③ 완전 유지보수(perfective maintenance) ④ 예방 유지보수(preventive maintenance) 6. 에서 비기능 요구사항(non-functional requirement) 을 모두 고른 것은? ᆨ. 시스템의 반응시간(response time) ᆫ. 시스템이 제공해야 하는 가용성(availability) ᆮ. 시스템이 동작해야 하는 운영체제 ᆯ. 개발에 사용될 프로그래밍 언어 ① ᆨ, ᆫ ② ᆮ, ᆯ ③ ᆨ, ᆫ, ᆯ ④ ᆨ, ᆫ, ᆮ, ᆯ 7. V 모델은 폭포수 모델에 품질 보증을 위한 테스팅 과정이 보완된 모델이다. 이 모델에서 테스트가 수행되는 순서 대로 바르게 나열한 것은? ① 단위 테스트 - 통합 테스트 - 시스템 테스트 - 인수 테스트 ② 단위 테스트 - 시스템 테스트 - 통합 테스트 - 인수 테스트 ③ 단위 테스트 - 통합 테스트 - 인수 테스트 - 시스템 테스트 ④ 단위 테스트 - 인수 테스트 - 통합 테스트 - 시스템 테스트 8. 는 위험 관리 활동을 구성하는 작업들이다. 이들을 실행 순서대로 바르게 나열한 것은? ᆨ. 위험 식별(risk identification) ᆫ. 위험 관찰(risk monitoring) ᆮ. 위험 분석(risk analysis) ᆯ. 위험 계획(risk planning) ① ᆨ-ᆯ-ᆮ-ᆫ ② ᆨ-ᆮ-ᆯ-ᆫ ③ ᆫ-ᆨ-ᆯ-ᆮ ④ ᆯ-ᆫ-ᆨ-ᆮ 소프트웨어공학(7급) A책형 2/3쪽 9. 는 도서 관리 시스템을 표현한 유스케이스(use case) 다이어그램이다. 이에 대한 설명으로 가장 옳은 것은? ① 모든 액터(actor)는 도서 관리 시스템의 모든 기능을 사용할 수 있다. ② 도서 관리 시스템에는 두 액터(직원, 관리자) 이외에 추가적인 사용자가 있다. ③ ‘도서 대여’, ‘도서 반납’, ‘신간 도서 추가’의 유스 케이스에서 중복된 부분이 ‘도서 번호 검색’ 유스 케이스로 추출되었다. ④ ‘도서 번호 검색’은 액터와 상호작용하지 않는다. 10. 재공학(reengineering)에 대한 설명으로 가장 옳지 않은 것은? ① 소프트웨어의 품질 등을 개선하기 위해 시스템 또는 컴포넌트를 재구조화하는 과정을 의미한다. ② 역공학(reverse engineering)과 새로운 요구에 맞추어 구현하는 정공학(forward engineering)을 포함하는 작업이다. ③ 재공학의 작업과정에서는 개선이 필요한 위치 파악을 가장 먼저 수행한다. ④ 현재 시스템의 아키텍처를 수정하지 않는 선에서 새로운 요구사항을 반영하도록 한다. 11. 의 설명에 해당하는 GoF(Gang of Four) 설계 패턴은? 어떤 객체에 책임(responsibility)을 동적으로 추가 할 수 있도록 한다. 기능 확장이 필요할 때 서브 클래싱 (subclassing) 대신 쓸 수 있는 유연한 대안을 제공한다. ① 장식자(decorator) 패턴 ② 싱글톤(singleton) 패턴 ③ 반복자(iterator) 패턴 ④ 상태(state) 패턴 12. 애자일(Agile) 개발 방법론에 대한 설명으로 가장 옳지 않은 것은? ① 애자일 방법론의 전제는 고객이 계속 새로운 요구 사항을 제시하고 기존 요구사항을 변경한다는 것이다. ② 익스트림 프로그래밍(XP, eXtreme Programming) 에서는 사용자 스토리 카드를 사용하여 요구사항을 수집한다. ③ 익스트림 프로그래밍에서는 초기에 미래에 대해 고려 하여 시스템 설계를 완성하며 리팩토링(refactoring)을 통하여 내부의 구조를 변화시킨다. ④ 스크럼(Scrum) 방법론에서는 백로그(backlog)를 통하여 프로젝트 요구사항 및 이에 대한 변경관리를 수행한다. 13. CMMI 모델 레벨 2(관리 단계)의 주요 프로세스 영역에 해당하지 않는 것은? ① 요구사항 관리(requirement management) ② 제품 품질 보증(product quality assurance) ③ 프로젝트 계획(project planning) ④ 위험 관리(risk management) 14. 소스 코드를 테스트할 때 소스 코드 내의 분기를 결정 하는 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식의 결과에 독립적으로 영향을 주는 테스트 케이스를 선정하는 방법을 MCDC(Modified Condition Decision Coverage)라고 한다. 에 주어진 조건식에서 MCDC를 만족하는 최소의 테스트 케이스 집합을 에서 고른 것은? 조건식: ( A and B ) or C A B C 결과 ᆨ True True True True ᆫ True True False True ᆮ True False True True ᆯ True False False False ᆷ False True True True ᆸ False True False False ᄉ False False True True ᄋ False False False False ① ᆫ, ᆯ, ᆷ, ᆸ ② ᆮ, ᆯ, ᆷ, ᆸ ③ ᆫ, ᆮ, ᆯ, ᆷ, ᆸ ④ ᆫ, ᆯ, ᆷ, ᄉ, ᄋ 소프트웨어공학(7급) A책형 3/3쪽 15. 의 클래스 다이어그램에 대한 자바 코드를 컴파일할 때 오류가 발생하지 않는 것은? ① Int1 a = new C1(); Int2 b = new C1(); ② Int1 c = new C2(); C3 d = new C2(); ③ Int1 e = new C3(); C2 f = new C3(); ④ Int1 g = new C4(); Int2 h = new C4(); 16. 에서 설명하는 소프트웨어 품질 요소를 옳게 짝지은 것은? ㈎ 사용자의 요구사항을 만족시키는 정도 ㈏ 프로그램 수행을 위한 자원의 최적화 정도 ㈐ 다른 시스템에 결합시키는 데 요구되는 노력의 정도 ㈎ ㈏ ㈐ ① 유지보수성 (maintainability) 상호운영성 (interoperability) 정확성 (correctness) ② 정확성 (correctness) 상호운영성 (interoperability) 효율성 (efficiency) ③ 정확성 (correctness) 효율성 (efficiency) 상호운영성 (interoperability) ④ 상호운영성 (interoperability) 효율성 (efficiency) 유지보수성 (maintainability) 17. 로버트 마틴이 주장한 다섯 가지 설계 원칙(SOLID) 중, 기존의 코드를 변경하지 않으면서 새로운 기능을 추가할 수 있도록 설계하는 원칙은? ① 단일 책임 원칙(SRP, Single Responsibility Principle) ② 개방 폐쇄 원칙(OCP, Open Closed Principle) ③ 인터페이스 분리 원칙(ISP, Interface Segregation Principle) ④ 리스코프의 교체 원칙(LSP, Liskov Substitution Principle) 18. 에 제시된 코드에 대한 순환복잡도를 계산하여 기본 경로 테스팅을 수행하고자 한다. 이 코드의 순환 복잡도 수치는? while(True): code= ‘’ for a in range(12): code+=str(chr(random.randint(65,90))) if len(Model.objects.filter(name__contains=code))>0: continue else : break print(code) ①3 ②4 ③5 ④6 19. 올바른 요구사항 명세서를 작성하기 위한 주의 사항 으로 가장 옳지 않은 것은? ① 요구사항 명세서는 소프트웨어 개발의 전 과정을 주도하므로, 사용자가 아니라 개발자 중심으로 이해 하기 쉽게 작성되어야 한다. ② 요구사항 명세서에는 원하는 기능을 정확하고 완벽 하게 기술해야 한다. ③ 요구사항 명세서에는 2가지 이상의 해석이 발생하지 않도록 모호하지 않은 표현을 써야 한다. ④ 요구사항 명세서는 시스템 인수를 위한 테스트 기준을 제시해야 한다. 20. 테스트 오라클(test oracle)에 대한 설명으로 가장 옳은 것은? ① 테스트 케이스(test case)에 대해 프로그램의 실제 실행 결과가 올바른 결과인지를 판단하는 메커니즘 (mechanism)이다. ② 테스트하려는 모듈을 호출하는 시스템을 대신하여 간단히 구동하도록 작성한 것이다. ③ 테스트하려는 모듈에 의해 호출되는 가상 모듈이다. ④ 테스트를 수행한 후 관찰된 결과를 저장한 것이다. 이 면은 여백입니다.