5급 공채 2차

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

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

제1문 (25점)

다음은 클래스 다이어그램(Class Diagram)과 클래스에서 생성된 인스턴스 간에 전달되는 메시지를 순서대로 나타낸 것이다. 다음 물음에 답하시오. (총 25점)
클래스 다이어그램
[그림]

클래스에서 생성된 인스턴스 간에 전달되는 메시지
순번메시지설명
송신자수신자호출메서드
1user:Userauth:AuthServicesubmitCredentials
(id,password)
User가 인증요청을 보냄
2auth:AuthServicerepo:UserRepositorygetUserById(id)AuthService가 사용자 정보 조회
3auth:AuthServiceauth:AuthServicecheckPassword
(password)
AuthService가 비밀번호 확인
4auth:AuthServiceuser:UsernotifyLoginStatus()로그인 결과를 User에게 전달
5user:Userauth:AuthServiceloadUserInfo()로그인 성공이면 사용자 정보 요청
6user:Useruser:UserdisplayErrorMsg()로그인 실패이면 에러메시지 출력
  1. (1) 소프트웨어 시스템의 분석 및 설계 단계에서 사용되는 시각화 언어인 Unified Modeling Language(UML)는 개발 시스템의 동적 행위를 모델링하기 위해 순차 다이어그램(Sequence Diagram)을 사용한다. 순차 다이어그램에 포함될 수 있는 결합 프레그먼트(Combined Fragment)가 무엇인지를 설명하고 par, loop, alt, opt 결합 프레그먼트 각각의 의미를 설명하시오. (10점)
  2. (2) 주어진 클래스 다이어그램과 메시지들을 기반으로 순차 다이어그램을 작성하시오. (단, 순차 다이어그램 작성 시 다음 제약사항을 반드시 준수해야 한다) (15점)
    <순차 다이어그램 작성 시 제약사항>
    ○클래스에서 생성된 인스턴스 간에 전달되는 메시지 테이블에 표현된 6개의 메시지를 순차 다이어그램에 순번대로 표현한다.
    ○6개의 메시지에 대한 리턴 메시지(return message)는 순차 다이어그램에 표현하지 않는다.
    ○송신자와 수신자의 클래스 명칭은 클래스 다이어그램에 표현된 클래스 명칭과 일치한다.
    ○수신자의 메서드 명칭은 클래스 다이어그램에 표현된 메서드 명칭과 일치한다.
    ○로그인 결과는 “성공”과 “실패”로 나뉘며, 적절한 결합 프레그먼트를 사용하여 이를 표현한다. (단, 테이블의 5번, 6번 메시지가 이에 해당한다)

제2문 (20점)

최근 기관에서는 소프트웨어 개발 전에 기능 점수(Function Point, FP)를 기준으로 소프트웨어 적정 규모 심의를 강화하는 추세이다. 기능 점수 1포인트당 언어별 LOC(Line Of Code)가 C++(128), JAVA(53), SQL(13), HTML 3.0(15)와 같이 제시되어 있다고 전제하고, 기능 점수를 이용해 기능 점수당 개발 시간과 결함 밀도를 계산할 때, 다음 물음에 답하시오. (총 20점)
  1. (1) 기능 점수의 개념을 설명하고, LOC 기반 규모 측정 방식과 비교했을 때 기능 점수 방식이 가지는 장점을 3가지 이상 서술하시오. (8점)
  2. (2) 어떤 시스템의 기능 규모가 180FP라고 가정하고, 이 시스템을 각각 C++와 JAVA로 구현할 경우 예상 LOC를 계산하시오. 또한 계산 결과를 바탕으로, LOC가 차이 나는 이유와 이것이 생산성 비교에 주는 시사점을 설명하시오. (6점)
  3. (3) 동일한 기능 규모(180FP)의 두 프로젝트 A와 B의 자료가 다음과 같을 때, 각 프로젝트의 ①기능 점수당 개발 시간, ②결함 밀도를 계산하고, 어느 프로젝트가 더 우수한지 종합적으로 판단하시오. (6점)
    ○프로젝트 A:총 개발 시간 2,160시간, 발견된 결함 수 27개
    ○프로젝트 B:총 개발 시간 1,800시간, 발견된 결함 수 18개

제3문 (25점)

소프트웨어 제품 품질 평가를 위한 ISO/IEC 25010 모델의 품질 요소에 관한 다음 물음에 답하시오. (총 25점)
  1. (1) 다음 소프트웨어 품질 요소를 설명하시오. (6점)
    ①결함 허용성(Fault Tolerance)
    ②시험성(Testability)
  2. (2) 유지보수성(Maintainability)이 낮을 때, 가용성(Availability)과 성능 효율성(Performance Efficiency)에 미치는 영향을 구체적인 사례와 함께 설명하시오. (7점)
  3. (3) 다음 각 품질 요소를 향상시키기 위한 구체적인 방안을 하나씩 제시하시오. (12점)
    ①무결성(Integrity)
    ②재사용성(Reusability)
    ③상호 운용성(Interoperability)

제4문 (30점)

아래는 은행ATM 시스템의 ‘계좌이체’ 기능에 대한 요구사항이다. ‘계좌이체’ 요구사항에 대하여 유스케이스(use case) 명세서를 작성하고자 할 때, 다음 물음에 답하시오. (총 30점)
○고객은 카드를 삽입한 후 ‘계좌이체’를 선택하여 이 유스케이스를 수행한다.
○이체할 정보(계좌번호, 금액)를 입력한다.
○비밀번호 오류, 1일 이체한도 초과, 잔액부족, 이체 계좌번호 오류 등을 처리한다.
○동일 은행 내 계좌로 이체한다고 가정한다.(타행시스템, 이체 수수료 등은 없음)
○시스템의 모든 응답은 2초 이내 반응해야 함을 가정한다.
  1. (1) 유스케이스 명세서에 포함되어야 하는 주요 항목을 나열하고, 각각의 내용을 설명하시오. (10점)
  2. (2) 위 요구사항을 바탕으로 ‘계좌이체’ 유스케이스에 대한 명세서를 작성하시오. (20점)
    끝