5급 공채 2차

2021년 5급 공채 기술 2차 소프트웨어공학

문제 4개 · 100점. 참고 답안·채점 기준은 앱에서 볼 수 있습니다.

제1문 (30점)

객체지향 패러다임에 대하여 다음 물음에 답하시오. (총 30점)
  1. (1) 캡슐화(encapsulation)의 의미를 정보은닉(information hiding)의 개념을 포함하여 설명하시오. (10점)
  2. (2) 다형성(polymorphism)의 개념에 대해 설명하고, 메소드(method)의 다형성을 실현하는 두 가지 방식에 대해 설명하시오. (15점)
  3. (3) C++ 언어에서 지원하는 다중상속(multiple inheritance)을 이용할 경우 발생할 수 있는 문제점에 대해 설명하시오. (5점)

제2문 (30점)

다음은 Java 프로그램 작성을 위한 요구사항이다. 물음에 답하시오. (총 30점)
○USB 인터페이스는 powerOn()과 powerOff() 메소드를 가진다.
○Hardware 클래스는 추상클래스로 접근지정자가 protected인 name과 weight 속성을 가지고, 접근지정자가 public인 hibernate() 추상메소드를 가지며, USB 인터페이스를 구현한다.
○Laptop 클래스와 SmartPhone 클래스는 Hardware 클래스의 하위클래스이며 추상클래스가 아니다.
○Tablet 클래스는 Laptop 클래스를 상속받으며, 접근지정자가 protected인 price를 속성으로 가진다.
  1. (1) 위 요구사항을 만족하는 클래스 다이어그램을 작성하시오. (10점)
  2. (2) 1)에서 작성된 클래스 다이어그램을 다음 사항에 맞게 Java 코드로 작성하시오. (15점)
    ○클래스, 속성, 메소드는 요구사항의 이름을 사용
    ○모든 속성의 타입은 String으로 작성
    ○모든 메소드의 반환형은 void이며, 추상 메소드가 아닌 메소드는 공란으로 body를 작성
  3. (3) 1)에서 작성된 클래스 다이어그램에서 Laptop 클래스가 다음과 같이 변경된 경우, Tablet 클래스의 객체에서 직접 실행할 수 있는 메소드를 나열하시오. (5점)
    Laptop
    +buyDate
    +draw()
    #clear()
    -reset()

제3문 (20점)

다음은 프로젝트 내 작업과 선행 작업, 작업별 소요기간을 나타내고 있다. 물음에 답하시오. (총 20점)
작업선행 작업소요기간(일)
T1-4
T2-5
T3T18
T4T22
T5T2, T32
T6T42
T7T64
T8T58
T9T6, T72
  1. (1) 임계 경로(critical path)를 구하고 프로젝트의 최단 완료 기간을 구하시오. (10점)
  2. (2) 작업 T8과 작업 T9의 여유 시간(slack time)을 각각 구하시오. (단, 여유 시간은 최단 완료 기간을 어기지 않는 것을 전제로 해당 작업을 가장 빠르게 시작할 수 있는 시간(earliest start time)과 최대한 늦추어 시작할 수 있는 시간(latest start time)의 차이를 의미한다) (10점)

제4문 (20점)

다음은 인터넷 쇼핑몰 시스템 개발에 관한 사용자 요구사항이다. ‘포함’, ‘확장’, ‘일반화’ 관계를 이용하여 유스케이스 다이어그램(use case diagram)을 작성하시오. (20점)
○고객은 회원등록을 해야 하며, 회원등록을 할 때에는 반드시 실명확인을 한다.
○고객은 로그인을 한 후에 아래 기능을 이용할 수 있다.
○고객은 상품을 선택한다.
○고객이 상품을 결제할 때에는 계좌이체 또는 카드결제를 할 수 있다.
○고객은 상품의 배송상황을 조회할 수 있으며, 조회 후 배송상황을 출력할 수 있다.