소프트웨어공학_7급(최종)정답(2023-07-16 / 258.5KB / 381회)
소프트웨어공학(7급) 4 - 1 소 프 트 웨 어 공 학 ( 7급 ) (과목코드 : 143) 2023년 군무원 채용시험 응시번호 : 성명 : 1. 다음 지문에서 설명하는 소프트웨어 개발 프로세스 모델로 가장 적절한 것은? - 시스템 개발 시, 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 방법 - 대규모 시스템 및 위험 부담이 높은 시스템의 - 구축에 적합 - 복잡성으로 프로젝트 관리가 어렵고 개발이 - 장기화될 가능성 존재 ① 폭포수 모델(Waterfall Model) ② 프로토타이핑 모델(Prototyping Model) ③ 나선형 모델(Spiral Model) ④ 애자일 모델(Agile Model) 2. 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우와 관계되는 응집도로 가장 적절한 것은? ① 논리적 응집도(Logical Cohesion) ② 절차적 응집도(Procedural Cohesion) ③ 통신적 응집도(Communication Cohesion) ④ 기능적 응집도(Functional Cohesion) 3. 다음 지문에서 설명하는 소프트웨어 아키텍처로 가장 적절한 것은? - 데이터 스트림을 생성하고 처리하는 시스템에 - 적합하다. - 데이터 변환, 버퍼링, 동기화 등에 주로 사용된다. - 대표적인 구현 예로 UNIX 쉘이 있다. ① 파이프 필터 아키텍처 (Pipes and Filters Architecture) ② 저장소 아키텍처 (Repository Architecture) ③ Peer to Peer 아키텍처 (Peer to Peer Architecture) ④ MVC 아키텍처 (Model-View-Controller Architecture) 4. 소프트웨어 테스팅 원칙과 가장 거리가 먼 것은? ① 테스팅은 결함이 있다는 것을 증명하는 것이다. ② 테스팅은 독립적인 조직에 의해 수행되어야 한다. ③ 테스팅은 가능한 개발 초기에 시작해야 한다. ④ 테스팅은 정황에 독립적으로 진행되어야 한다. 5. 소프트웨어 유지보수 활동 중 가장 자원의 소모가 큰 업무이며, 현재 수행 중인 기능의 개선이나 성능 향상을 위한 수정 활동으로 가장 적절한 것은? ① 완전 유지보수(perfective maintenance) ② 예방 유지보수(preventive maintenance) ③ 수정 유지보수(corrective maintenance) ④ 적응 유지보수(adaptive maintenance) 6. 다음 지문에서 설명하는 SPICE의 성숙도 단계로 가장 적절한 것은? - 소프트웨어 엔지니어링 원리에 근거하여 - 프로세스를 정의하고 이를 이용하여 프로세스를 수행하고 관리한다. - 정의된 프로세스가 표준화되어 있고 문서화 되어 있다. - 프로세스를 수행할 때는 표준 프로세스를 - 알맞게 조정하여 승인받은 후 사용한다. ① 레벨 2 - Managed ② 레벨 3 - Established ③ 레벨 4 - Predictable ④ 레벨 5 - Optimizing 소프트웨어공학(7급) 4 - 2 7. 다음의 소프트웨어 비용 산정 기법 중에서 하향식 (top-down) 비용 산정 기법을 모두 고르면? ㄱ. 전문가 감정 기법 ㄴ. 델파이 기법 ㄷ. LOC 기법 ㄹ. 개발 단계별 인월수 기법 ㅁ. 수학적 산정 기법 ① ㄱ, ㄴ ② ㄱ, ㄴ, ㅁ ③ ㄴ, ㅁ ④ ㄷ, ㄹ, ㅁ 8. 다음의 원시 코드의 변경이 나타내는 리팩토링 기법으로 가장 적절한 것은? class Employee { get quota {...} } class Engineer extends Employee {...} class Salesman extends Employee {...} class Employee {...} class Engineer extends Employee {...} class Salesman extends Employee { get quota {...} } ① 메서드 추출(Extract Method) ② 메서드 이동(Move Method) ③ 메서드 상향(Pull Up Method) ④ 메서드 하향(Push Down Method) 9. 다음 설명에 해당하는 소프트웨어 디자인 패턴으로 가장 적합한 것은? 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식이다. ① 복합체 패턴(composite pattern) ② 팩토리 메서드 패턴(factory method pattern) ③ 적응자 패턴(adaptor pattern) ④ 데코레이터 패턴(decorator pattern) 10. 다음 지문에 나타난 코드의 순환 복잡도 (Mccabe Cyclomatic Complexity)로 가장 적절한 것은? if (condition 1) statement 1 else statement 2 if (condition 2) statement 3 else statement 4 ① 2 ② 3 ③ 4 ④ 5 11. 소프트웨어의 단위 테스트(unit test) 기법으로 가장 거리가 먼 것은? ① 인터페이스 테스트 ② 스트레스 테스트 ③ 자료구조 테스트 ④ 수행경로 테스트 12. 다음 설명에 해당하는 사용자 요구사항 추출 방법으로 가장 적절한 것은? 이 방법의 목적은 소프트웨어 엔지니어의 아이디어에 대한 피드백을 조기에 받아서 요구사항을 취합하는 것이다. 이 방법의 가장 단순한 형태는 시스템이 수행될 때 무엇이 일어날지를 설명하기 위하여 종이에 화면의 순서를 기술하여 고객과 사용자에게 보여주는 것이다. ① 설문 ② 인터뷰 ③ 브레인스토밍 ④ 프로토타이핑 소프트웨어공학(7급) 4 - 3 13. 소프트웨어 개발 과정에 대한 설명으로 가장 거리가 먼 것은? ① 요구사항 분석 단계는 사용자가 원하는 기능들을 어떻게 제공할 것인지를 규명하는 과정이다. ② 설계란 요구사항 분석단계에서 규명된 필수 기능을 어떻게 구현할 수 있는가에 대한 방법을 명시하는 것이다. ③ 소프트웨어 시스템은 기능관점, 동적 관점 및 정보관점의 세가지 측면에서 표현할 수 있으므로 이 세가지 관점에 대한 요구분석 및 설계과정이 필요하다. ④ 테스트 과정을 통해서 모든 오류가 발견, 수정될 수는 없지만 비용 대비 효율이 최대가 될 수 있도록 시험 계획을 수립해야 한다. 14. 다음 중 소프트웨어의 기능 중심 척도에서 기능 점수를 계산하는데 사용되지 않는 것은? ① 사용자 입력 수 ② 사용자 출력 수 ③ 사용자 질의 수 ④ 사용자 데이터 수 15. 다음 중 객체지향 설계를 위한 UML의 다이어그램 중 객체들 간의 상호작용을 표현하는 다이어그램에 해당하는 것은? ① 클래스 다이어그램(Class Diagram) ② 시퀀스 다이어그램(Sequence Diagram) ③ 상태 다이어그램(State Diagram) ④ 컴포넌트 다이어그램(Component Diagram) 16. UML로 객체지향 요구분석을 할 때 가장 적절한 다이어그램은? ① 클래스 다이어그램(Class Diagram) ② 유스케이스 다이어그램(Use Case Diagram) ③ 시퀀스 다이어그램(Sequence Diagram) ④ 개체-관계 다이어그램(Entity Relation Diagram) 17. 응집력은 모듈의 상대적인 함수적 강도를 말하게 되는데 다음 중 가장 강한 응집력으로 적합한 것은? ① 기능적 응집력 ② 논리적 응집력 ③ 시간적 응집력 ④ 교환적 응집력 18. MVC(Model-View-Controller) 아키텍처에서 Model의 역할로 가장 적합한 것은? ① 이벤트 형태로 사용자 입력을 처리한다. ② 처리 결과 및 콘텐츠를 사용자에게 보여주는 기능을 수행한다. ③ 애플리케이션과 관련된 데이터 및 데이터 처리에 대한 로직을 가지고 있다. ④ 최신 데이터를 가져와 표시된 정보를 갱신한다. 19. 아래의 UML 모델에서 ‘차’ 클래스와 각 클래스의 관계로 가장 적합한 것은? ① 일반화(Generalization) 관계 ② 연관(Association) 관계 ③ 포함(Aggregation) 관계 ④ 의존(Dependency) 관계 소프트웨어공학(7급) 4 - 4 20. GoF(Gang of Four) 디자인 패턴 분류와 가장 거리가 먼 것은? ① 생성 패턴 ② 구조 패턴 ③ 추상 패턴 ④ 행위 패턴 21. 다음 중 화이트 박스 검사 기법에 대한 설명 으로 가장 거리가 먼 것은? ① 소스 코드의 모든 문장을 한 번 이상 수행 함으로써 진행된다. ② 모듈 안의 작동을 직접 관찰할 수 있다. ③ 프로그램 내부에 사용되는 변수나 서브루틴 등의 오류를 찾는다. ④ 입력 값에 대한 예상 출력 값을 정해놓고 그대로 결과가 나오는지를 확인함으로써 오류를 찾는다. 22. 다음 중 소프트웨어 기능 뿐만 아니라 비기능적인 속성도 만족되는지를 검사하는 시험으로 가장 적합한 것은? ① 단위 테스트 ② 통합 테스트 ③ 시스템 테스트 ④ 인수 테스트 23. 다음 중 UML의 4+1 뷰(View) 중에서 개발자와 시스템 통합자를 위한 것으로, 실제 구동환경을 살펴봄으로써 시스템의 동시성과 동기화에 관심이 있는 것과 가장 적합한 것은? ① 논리 뷰(Logical View) ② 배치 뷰(Deployment View) ③ 구현 뷰(Implementation View) ④ 프로세스 뷰(Process View) 24. 다음 중 소프트웨어 개발 생명주기 프로세스인 소프트웨어 생성부터 폐기까지의 프로세스를 평가하는 모델로 가장 적합한 것은? ① ISO/IEC 2196 ② ISO/IEC 9000 ③ ISO/IEC 12207 ④ ISO/IEC 12119 25. 다음 중 간트 챠트(Gannt Chart)에 포함되지 않는 것은? ① 이정표 ② 주요 작업 경로 ③ 작업 일정 ④ 작업 기간