조컴퓨터

2020년 제4회 정보처리기사 필기 문제 분석(Ⅰ) 본문

정보처리기사 해설/필기 해설

2020년 제4회 정보처리기사 필기 문제 분석(Ⅰ)

챠오위 2020. 9. 30. 19:51

제1과목 : 소프트웨어설계

 

1. 애자일 방법론에 해당하지 않는 것은?

① 기능중심 개발

② 스크럼

③ 익스트림 프로그래밍

④ 모듈중심 개발

 

 

정답)

애자일(Agile) 방법론에는 여러 가지 종류가 있다.

 

  • 익스트림 프로그래밍(Extreme Programming, XP)
  • 스크럼(Scrum)
  • 동적 시스템 개발 방법론(Dynamic Systems Development Method, DSDM)
  • 기능 주도 개발 방법론(Feature Driven Development, FDD)
  • 크리스털 패밀리(Crystal family)
  • 적응형 소프트웨어 개발 방법론(Adaptive software development)
  • 린 소프트웨어 개발 방법론(Lean software development)

이외에도 여러 가지 종류가 있다.

 

 


2. 요구 사항 명세기법에 대한 설명으로 틀린 것은?

① 비정형 명세기법은 사용자의 요구를 표현할 때 자연어를 기반으로 서술한다.

② 비정형 명세기법은 사용자의 요구를 표현할 때 Z비정형 명세기법을 사용한다.

③ 정형 명세기법은 사용자의 요구를 표현할 때 수학적인 원리와 표기법을 이용한다.

④ 정형 명세기법은 비정형 명세기법에 비해 표현이 간결하다.

 

 

정답)

비정형 명세기법은 사용자의 요구를 표현할 때 자연어를 기반으로 서술하는 방법이다. 또는 작업 흐름도와 같은 다이어그램을 사용해 작성한다. 

이 경우의 단점은 자연어를 사용함으로써 표현이 애매모호할 수 있고, 그에 따라 달리 해석할 수도 있다는 것이다. 또한 일관성이 떨어지고 명세가 불충분할 수 있다. 

 

정형 명세기법은 사용자의 요구를 표현할 때 수학적 원리와 표기법을 이용하는 것이다. 대표적으로 사용되는 것이 Z정형 명세언어 등이다. 

이 경우의 장점은 사용자의 요구를 간결하게 표현하며 수학적 원리와 표기법을 이용하여 작성된 사용자의 요구가 일관성이 있는지, 완전한지 등을 검증할 수 있다는 것이다. 

 

 


3. 소프트웨어 개발 단계에서 요구 분석 과정에 대한 설명으로 거리가 먼 것은?

① 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용할 수 있다.

② 개발 비용이 가장 많이 소요되는 단계이다.

③ 자료흐름도, 자료 사전 등이 효과적으로 이용될 수 있다.

④ 보다 구체적인 명세를 위해 소단위 명세서(Mini-spec)가 활용될 수 있다.

 

 

정답)

개발 비용이 가장 많이 소요되는 단계는 소프트웨어 유지보수 단계이다.

 

 


4. CASE(Computer Aided Software Engineering)의 주요 기능으로 옳지 않은 것은?

① S/W 라이프 사이클 전 단계의 연결

② 그래픽 지원

③ 다양한 소프트웨어 개발 모형 지원

④ 언어 번역

 

 

정답)

CASE의 주요 기능은 소프트웨어 생명 주기(Software life cycle)의 전체 단계의 연결, 그래픽 지원, 다양한 소프트웨어 개발 모형 지원 등이 있다.  CASE 시스템 사용의 이점으로는 소프트웨어 개발 기간 단축 및 비용 절감, 프로그램 유지 보수의 용이성, 자동화된 검사를 통한 소프트웨어 품질 향상, 개발 주기의 표준화, 개발 기법의 실용화 등을 들 수 있다. 

 

 


5. 바람직한 소프트웨어 설계 지침이 아닌 것은?

① 적당한 모듈의 크기를 유지한다.

② 모듈 간의 접속 관계를 분석하여 복잡도와 중복을 줄인다.

③ 모듈 간의 결합도는 강할수록 바람직하다.

④ 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.

 

 

정답)

모듈 간의 결합도는 약할수록 모듈의 독립성이 높아지므로 약할수록 바람직하다.

 

 


6. UML의 기본 구성요소가 아닌 것은?

① Things

② Terminal

③ Relationship

④ Diagram

 

 

정답)

통합 모델링 언어(Unified Modeling Language, UML)는 객체 지향 분석, 설계용의 모델링 언어이다.

UML은 Things, Relationships, Diagrams의 세 가지의 기본 구성요소를 가진다. 이 구성요소가 UML이 모델링 체계로서 의미를 가지기 위한 최소한의 단위이다. 각 구성요소는 각각 여러 가지의 하위요소로 이루어져 있다.

 

 


7. 다음 내용이 설명하는 객체지향 설계 원칙은?

  • 클라이언트는 자신이 사용하지 않는 매서드와 의존관계를 맺으면 안된다.
  • 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다.

① 인터페이스 분리 원칙

② 단일 책임 원칙

③ 개방 폐쇄의 원칙

④ 리스코프 교체의 원칙

 

 

정답)

  • 인터페이스 분리 원칙은 클라이언트가 자신이 이용하지 않는 매서드에 의존하지 않아야 한다는 원칙이다.
  • 단일 책임 원칙은 모든 클래스는 하나의 책임만을 가지며, 클래스는 그 책임을 완전히 캡슐화해야 한다는 원칙이다.
  • 개방 폐쇄의 원칙(Open-Closed Principle, OCP)은 소프트웨어 개체는 확장에 대해 열려 있어야 하고, 변경에 대해서는 닫혀 있어야 한다는 원칙이다.
  • 리스코프 교체의 원칙(Liskov Substitution Principle, LSP)은 필요한 프로그램의 속성의 변경 없이 자료형의 객체를 그 하위 자료형의 객체로 교체할 수 있어야 한다는 원칙이다.

 


8. 디자인 패턴 사용의 장단점에 대한 설명으로 거리가 먼 것은?

① 소프트웨어 구조 파악이 용이하다.

② 객체지향 설계 및 구현의 생산성을 높이는데 적합하다.

③ 재사용을 위한 개발 시간이 단축된다.

④ 절차형 언어와 함께 이용될 때 효율이 극대화된다.

 

 

정답)

디자인 패턴은 자주 사용하는 설계 형태를 정형화하여 이를 유형별로 설계 템플릿으로 만들어 둔 것을 말한다.

디자인 패턴을 사용하면 효율성과 재사용성을 높일 수 있지만, 절차형 언어의 경우는 너무 복잡해져 큰 도움이 되지 않는다. 

 

 


9. 소프트웨어의 사용자 인터페이스 개발 시스템(User Interface Development System)이 가져야 할 기능이 아닌 것은?

① 사용자 입력의 검증

② 에러 처리와 에러 메시지 처리

③ 도움과 프롬프트(prompt) 제공

④ 소스 코드 분석 및 오류 복구

 

 

정답)

소스 코드 분석 및 오류 복구가 아닌 코드 오류 예방 방지이다.

 

 


10. 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어를 무엇이라고 하는가?

① 웨어러블

② 하이웨어

③ 미들웨어

④ 응용 소프트웨어

 

 

정답)

  • 미들웨어 : 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어

 


11. 객체지향 기법의 캡슐화(Encapsulation)에 대한 설명으로 틀린 것은?

① 인터페이스가 단순화된다.

② 소프트웨어 재사용성이 높아진다.

③ 변경 발생시 오류의 파급효과가 적다.

④ 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것을 의미한다.

 

 

정답)

  • 상속 : 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

 


12. GoF(Gangs of Four) 디자인 패턴 분류에 해당하지 않는 것은?

① 생성 패턴

② 구조 패턴

③ 행위 패턴

④ 추상 패턴

 

 

정답)

GoF(Gangs of Four) 디자인 패턴 분류에 해당하는 것은 생성 패턴, 구조 패턴, 행위 패턴이다.

 

 


13. 다음 중 자료사전(Data Dictionary)에서 선택의 의미를 나타내는 것은?

① [ ]

② { }

③ +

④ =

 

 

정답)

선택 [ ]

반복 { }

구성, 연결 +

정의 =

주석 **

생략 ( )

 

 


14. XP(eXtreme Programming)의 기본원리로 볼 수 없는 것은?

① Linear Sequential Method

② Pair Programming

③ Collective Ownership

④ Continuous Integration

 

 

정답)

XP(eXtreme Programming)의 기본원리는 다음과 같다.

 

Fine-scale feedback

  • Pair programming
  • Planning game
  • Test-driven development
  • Whole team

Continuous process

  • Continuous integration
  • Refactoring or design improvement
  • Small releases

Shared understanding

  • Coding standards
  • Collective code ownership
  • Simple design
  • System metaphor

Programmer welfare

  • Sustainable pace

 

 


15. DFD(data flow diagram)에 대한 설명으로 틀린 것은?

① 자료 흐름 그래프 또는 버블(bubble) 차트라고도 한다.

② 구조적 분석 기법에 이용된다.

③ 시간 흐름을 명확하게 표현할 수 있다.

④ DFD의 요소는 화살표, 원, 사각형, 직선(단선/이중선)으로 표시한다.

 

 

정답)

DFD(data flow diagram)는 시스템 구성 요소인 프로세스와 프로세스 간의 데이터 흐름을 도형 중심으로 표현하는 방법이다. 이는 자료 흐름 그래프 또는 버블(bubble) 차트라고도 한다.

 

자료 흐름도 구성 요소

  • 자료 흐름(Data flow) - 화살표 - 자료의 흐름
  • 프로세스(Process) - 원 - 시스템의 처리 과정
  • 단말(Terminator) - 직사각형 - 종착지
  • 자료 저장소(Data store) - 직선(단선/이중선) - 자료 저장소

 

 


16. 코드화 대상 항목의 중량, 면적, 용량 등의 물리적 수치를 이용하여 만든 코드는?

① 순차 코드

② 10진 코드

③ 표의 숫자 코드

④ 블록 코드

 

 

정답)

  • 순차 코드(Sequence Code) : 각각 정의된 순서에 따라 열거된 항목에 대하여, 각각의 순서에 따라 부여된 고유의 식별 코드
  • 10진 코드(Decimal Code) : 코드화 대상 항목을 0 ~ 9까지 10진 분할하고, 다시 그 각각에 대하여 10진 분할하는 방법을 필요한 만큼 반복하는 방법
  • 표의 숫자 코드(Significant Digit Code) : 코드화 대상 항목의 성질(길이, 넓이, 부피, 지름, 높이)의 물리적 수치를 그대로 코드에 적용시키는 방법
  • 블록 코드(Block Code) : 코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련 번호를 부여하는 방법

 


17. 럼바우(Rumbaugh) 객체지향 분석 기법에서 동적 모델링에 활용되는 다이어그램은?

① 객체 다이어그램(Object Diagram)

② 패키지 다이어그램(Package Diagram)

③ 상태 다이어그램(State Diagram)

④ 자료 흐름도(Data Flow Diagram)

 

 

정답)

동적 모델링은 상태 다이어그램(State Diagram)을 이용해 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현한다.

 

 


18. 소프트웨어의 상위설계에 속하지 않는 것은?

① 아키텍처 설계

② 모듈 설계

③ 인터페이스 정의

④ 사용자 인터페이스 설계

 

 

정답)

  • 상위설계 : 소프트웨어 시스템의 구조와 데이터를 규명하여 사용자 인터페이스를 정의. 이는 기본설계라고도 한다.
  • 하위설계 : 각 모듈(컴포넌트, 자료구조, 알고리즘)의 세부 내용을 설계

 


19. 파이프 필터 형태의 소프트웨어 아키텍처에 대한 설명으로 옳은 것은?

① 노드와 간선으로 구성된다.

② 서브시스템이 입력 데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.

③ 계층 모델이라고도 한다.

④ 3개의 서브시스템(모델, 뷰, 제어)으로 구성되어 있다.

 

 

정답)

서브시스템(필터)이 입력 데이터를 받아 처리하고 결과를 다른 시스템으로 넘겨주는 과정을 반복한다.

 

 


20. 그래픽 표기법을 이용하여 소프트웨어 구성 요소를 모델링하는 럼바우 분석 기법에 포함되지 않는 것은?

① 객체 모델링

② 기능 모델링

③ 동적 모델링

④ 블랙박스 분석 모델링

 

 

정답)

럼바우 분석 활동은 객체 모델링, 동적 모델링, 기능 모델링을 통해 이루어짐