221015 국가 7급 2차 소프트웨어공학-나정답(2022-10-15 / 513.6KB / 752회)
221015 국가 7급 2차 소프트웨어공학-나정답(2022-10-15 / 1.22MB / 127회)
2022년도 국가공무원 7급 공채 제2차 필기시험 소프트웨어공학 나 책형 1 쪽 소프트웨어공학 문 1. 소프트웨어 프로젝트에서 수행 작업에 대한 설명으로 옳지 않은 것은? ① 프로그래밍은 소프트웨어 공학의 모든 작업을 통합하는 작업이다. ② 설계 작업은 요구사항을 어떻게 구현할지 결정하는 과정으로 서브 시스템 분할, 상세 설계, 인터페이스 설계 및 자료 저장 방식 등의 작업으로 구성된다. ③ 모델링 작업은 시스템의 기능, 동작 및 구성을 추상화 형태로 표현해 가는 과정으로 사용 사례 모델링, 정․동적 모델링이 있다. ④ 테스트 작업은 개별 코드를 테스트하기 위한 단위 테스트, 이를 연결하여 제대로 작동하는지 확인하는 통합 테스트 및 빌드(build)한 시스템의 기능이 원하는 대로 작동하는지 확인하는 시스템 테스트 작업 등이 있다. 문 2. 다음 설명에 해당하는 프로젝트 범위 관리 프로세스는? ○ 주요 프로젝트 인도물을 더 작고 관리 가능한 구성 요소로 나누는 작업이다. ○ WBS(Work Breakdown Structure)를 도구로 사용하고, WBS 체계에 따른 계층 구조와 최하위 항목인 작업 패키지가 결과로 산출된다. ① 범위 기획 ② 범위 정의 ③ 범위 검증 ④ 범위 변경 통제 문 3. 다음 설명에 해당하는 것으로 옳은 것은? ○ 프로젝트 진행의 중요한 상태를 정의한다. ○ 프로젝트나 프로덕트가 특정 상태에 이르렀는지 나타낸다. ○ 계속되는 개발 또는 유지보수 작업의 기준이 된다. ○ 형상 항목에 대한 변경을 제어하는 메커니즘이다. ① VCS(Version Control System) ② Baseline ③ CMMI(Capability Maturity Model Integration) ④ CI(Continuous Integration) 문 4. 소프트웨어의 품질 속성에 대한 설명으로 옳지 않은 것은? ① 신뢰성 - 요구된 기능을 실행하여 정확하고 일관성 있는 결과를 생성하는 속성 ② 효율성 - 요구된 기능을 최소의 시간과 자원을 사용하여 결과를 생성하는 속성 ③ 모듈성 - 컴포넌트의 통합이나 조정을 쉽게 만드는 속성 ④ 상호운용성 - 소프트웨어가 여러 운영 환경 및 플랫폼에서 실행될 수 있도록 변형이 가능한 속성 문 5. 유스케이스 명세서를 구성하는 항목에 대한 설명으로 옳지 않은 것은? ① 개요는 유스케이스가 제공하는 기능을 나타낸 것으로, 그 기능을 사용하는 사용자 액터까지 표현해야 한다. ② 이벤트 흐름(시나리오)은 유스케이스 기능에 대한 액터와 시스템 간의 대화로, 문자나 순차 다이어그램을 사용해 표현한다. ③ 기능 요구사항은 성능, 신뢰성, 보안성, 가용성 등 여러 요구 품질 요소를 나타낸다. ④ 후행 조건은 유스케이스의 수행 완료 후에 만족되어야 하는 조건으로 상태나 수치의 바뀐 모습을 명확하고 구체적으로 기술해야 한다. 문 6. ISO/IEC 9126 모델에 대한 품질 특성 요소로 잘못 짝 지은 것은? ① 신뢰성 요소 - 성숙성, 결함허용성, 회복성 ② 유지보수성 요소 - 분석성, 변경성, 안정성 ③ 기능성 요소 - 적용성, 설치용이성, 부합성 ④ 사용성 요소 - 이해성, 학습용이성, 운영성 문 7. 유스케이스 다이어그램에 대한 설명으로 옳지 않은 것은? ① 시스템 외부의 액터들은 서로 관계를 형성하지 않는다. ② 시스템과 상호작용하는 외부 시스템은 액터로 표현한다. ③ 유스케이스들의 공통 호출 서비스는 > 관계로 유스케이스를 구성한다. ④ 유스케이스들의 선택적 서비스는 > 관계로 유스케이스를 구성한다. 2022년도 국가공무원 7급 공채 제2차 필기시험 소프트웨어공학 나 책형 2 쪽 문 8. MVC(Model-View-Controller) 패턴에 대한 설명으로 옳지 않은 것은? ① 뷰는 사용자에게 처리 로직의 결과를 보여준다. ② 컨트롤러는 사용자의 요청을 받아 모델에 보낸다. ③ 모델은 데이터를 관리하며 변경이 일어나면 뷰에게 통지한다. ④ 사용자 인터페이스가 변경되면 모델에 영향을 준다. 문 9. 다음 클래스 다이어그램을 파이썬 코드로 표현한 것이다. (가) ~ (라)에 들어갈 내용으로 옳은 것은? class (가) : def __init__(self, name, price): self.name = name self.price = price def (나) (self): print("{}'s price = {}".format(self.name, self.price)) class (다) ( (가) ): def __init__(self, name, price): Food.__init__(self, name, price) def (라) (self): print("{}".format(self.name)) (가) (나) (다) (라) ① Food show Korean showname ② Korean showname Food show ③ Food showname Korean show ④ Korean show Food showname 문 10. 다음 클래스 다이어그램과 관련이 있는 디자인 패턴은? ① 데코레이터(Decorator) 패턴 ② 메멘토(Memento) 패턴 ③ 어댑터(Adapter) 패턴 ④ 빌더(Builder) 패턴 문 11. 화이트박스 테스트만을 모두 고르면? ㄱ. 제어 흐름 테스팅 ㄴ. 경로 테스팅 ㄷ. 상태기반 테스팅 ㄹ. 원인 결과 그래프 ① ㄱ, ㄴ ② ㄱ, ㄷ ③ ㄴ, ㄷ ④ ㄴ, ㄹ 2022년도 국가공무원 7급 공채 제2차 필기시험 소프트웨어공학 나 책형 3 쪽 문 12. 다음 Yourdon/DeMarco 표기법에 따라서 자료 흐름도로 표현 하였을 때 옳은 것은? 판매자가 음식을 등록하여 등록음식 데이터베이스에 저장한 후에, 고객이 음식을 주문하면, 고객에게 영수증이 발급되고, 판매자에게 판매정보가 전달된다. ① ② ③ ④ 문 13. 객체지향 프로그램의 품질 측정 방법으로 옳지 않은 것은? ① 클래스 당 가중치를 갖는 메소드 ② 사이클로매틱 복잡성 ③ 상속 트리의 깊이 ④ 메소드의 응집 결핍 문 14. 소프트웨어의 요구 사항 수집 및 기술에 대한 설명으로 옳지 않은 것은? ① 사용자의 요구 사항을 구체적으로 파악하기 위해 소프트웨어의 일부 기능을 빠르게 구현한 프로토타입을 이용한다. ② 소프트웨어 사용 관련자들이 브레인스토밍을 통해 다양한 요구 사항을 도출한다. ③ 현재 시스템의 문제를 파악하기 위해 관련 직원으로부터 시스템의 문제점을 파악하고 자료를 수집한다. ④ 수집한 요구 사항은 프로그래밍 언어를 이용해서 구체적으로 기술한다. 문 15. 소프트웨어 생명주기에 대한 설명으로 옳지 않은 것은? ① 소프트웨어 개발방법론의 바탕이 된다. ② 일반적으로 정의단계, 개발단계, 유지보수 단계로 구분된다. ③ 프로젝트 비용 산정과 개발 계획을 수립할 수 있는 기본 골격이 된다. ④ 개발단계에서 시간과 비용이 가장 많이 든다. 2022년도 국가공무원 7급 공채 제2차 필기시험 소프트웨어공학 나 책형 4 쪽 문 16. 평가 점수에 따른 성적을 아래 표와 같이 부여하는 소프트웨어를 제작하여 경곗값 분석 기법으로 테스트할 때, 테스트 케이스는 몇 개인가? (단, 평가 점수는 정수이다) 평가 점수 등급 90점 이상부터 100점 이하 A 80점 이상부터 90점 미만 B 70점 이상부터 80점 미만 C 60점 이상부터 70점 미만 D 0점 이상부터 60점 미만 F ① 10 ② 15 ③ 18 ④ 20 문 17. 다음 디자인 패턴들을 GoF(Gang of Fours) 패턴 분류에 따라 구분하였을 때, 생성 패턴, 구조 패턴, 행위 패턴의 개수를 순서대로 바르게 나열한 것은? ○ Abstract Factory ○ Adapter ○ Bridge ○ Builder ○ Composite ○ Decorator ○ Iterator ○ Mediator ○ Observer ○ Prototype ○ Proxy ○ Singleton ○ Strategy ○ Visitor 생성 패턴 구조 패턴 행위 패턴 ① 3 5 6 ② 4 5 5 ③ 5 3 6 ④ 6 4 4 문 18. SPICE(Software Process Improvement and Capability dEtermination) 모델은 소프트웨어 개발 프로세스를 구성하는 각 프로세스 영역의 달성 수준(또는 능력)을 측정하는 레벨을 제시한다. 레벨과 그 레벨의 측정 관점을 짝 지은 것으로 옳지 않은 것은? ① 수행단계 - 해당 프로세스의 목적은 달성하지만 계획되거나 추적되지 않는다. ② 관리단계 - 표준으로 정의된 프로세스를 사용하여 계획되고 관리한다. ③ 예측단계 - 표준 프로세스 능력을 정량적으로 측정, 이해, 관리할 수 있어 품질의 정량적 관리가 가능하다. ④ 최적화 단계 - 프로세스가 지속적으로 개선되고 최적화된다. 문 19. 다음 클래스 다이어그램은 객체지향 설계에서 클래스를 설계할 때의 원칙 가운데 하나를 적용한 사례이다. 설계 원칙으로 옳은 것은? ‘학과평균점수’ 클래스의 역할은 한 대학의 학과별 기말 고사 평균 점수를 계산하기 위한 것이다. 은 클래스 설계의 해당 원칙을 적용하기 전의 다이어그램이고, 는 해당 원칙을 적용한 이후의 다이어그램이다. ① 개방 폐쇄의 원칙 ② 의존 관계 역전의 원칙 ③ 인터페이스 분리의 원칙 ④ 단일 책임 원칙 문 20. 다음 Java 코드에서 생략된 부분을 고려하지 않고 명시된 부분만으로 UML 클래스 다이어그램을 작성하였을 때, 다이어그램에 나타나지 않는 관계는? class Person { ... } class Work { ... } interface PublicService { public void doWork(Work work); } class Official extends Person implements Publ icService { public void sayHello() { ... } public void doWork(Work work) { ... } ... } ① ② ③ ④ 2022년도 국가공무원 7급 공채 제2차 필기시험 소프트웨어공학 나 책형 5 쪽 문 21. 화이트박스 테스트 커버리지에 대한 설명으로 옳은 것은? ① 문장 커버리지는 입력 데이터가 미리 정의한 유형에 적합한지를 검증하는 방법이다. ② 동일한 프로그램에 대해 분기 커버리지를 달성하면 조건 커버리지를 달성한다. ③ 동일한 프로그램에 대해 조건 커버리지를 달성하면 분기 커버리지를 달성한다. ④ 동일한 프로그램에 대해 수정조건분기 커버리지(Modified Condition Decision Coverage, MCDC)를 달성하면 조건 커버리지를 달성한다. 문 22. 소프트웨어 개발 프로젝트 수행을 위한 설명으로 옳은 것은? ① 소프트웨어 기능의 정확성을 검증하기 위해 기능 점수 방법을 적용한다. ② 소프트웨어 개발 요구 사항의 변경에 효과적으로 대응하기 위해 폭포수 모형을 적용한다. ③ 소프트웨어 개발 프로젝트의 비용을 예측하기 위해 COCOMO 방법을 적용한다. ④ 소프트웨어 개발 프로젝트 일정을 계획하기 위해 CMMI 방법을 적용한다. 문 23. 다음 입력 인자가 가질 수 있는 값들이 과 같이 주어져 있을 때, 페어와이즈(pairwise) 테스트를 수행하고자 한다. 페어와이즈 테스트를 위한 인자 조합이 와 같다고 할 때, (가) ~ (라)에 들어갈 내용으로 옳은 것은? 인자 A B C 값 A1 B1 C1 A2 B2 C2 A3 A B C A1 B1 C1 A1 B2 C2 A2 (가) C1 A2 (나) C2 A3 (다) C1 A3 (라) C2 (가) (나) (다) (라) ① B1 B2 B1 B2 ② B1 B1 B2 B2 ③ B1 B2 B2 B1 ④ B2 B2 B1 B1 문 24. 소프트웨어의 총 개발 기간은 16개월이며, 처음 6명의 개발 인력이 100 % 투입되었다. 개발지연으로 11개월 시작 시점에 3명 중 2명은 100 %, 1명은 50 %를 추가 투입하여 개발이 완료되었다. 이 소프트웨어 개발에 투입된 총 MM(Man-Month)은? ① 111 MM ② 112 MM ③ 113 MM ④ 114 MM 문 25. 다음은 모듈을 구성하는 코드의 일부이다. 두 함수 A( )와 B( ) 사이에 형성되는 결합으로 옳은 것은? (단, ...은 생략된 코드이며, 해당 코드는 고려하지 않는다) int A(){ int a; ... B(a); ... } int B(int x){ ... if(x > 0) /* send data */ else /* receive data */ } ① 내용 결합 ② 자료 결합 ③ 스탬프 결합 ④ 제어 결합