본문으로 바로가기

1과목 : 소프트웨어 설계

 

1. 검토회의 전에 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 오류를 조기에 검출하는데 목적을 두는 요구 사항 검토 방법은?

1. 빌드 검증

2. 동료 검토

3. 워크 스루

4. 개발자 검토

1. 빌드 검증
 - 빌드 파일의 기본적인 구동 테스트 단계. 세세한 예외사항보다는 핵심 기능들만 넓게 테스트 하는 방식
2. 동료 검토
 - 2~3명이 진행하는 리뷰형태로 작성자가 설명하고 이해관계자들이 설명을 들으면서 결함을 발견하는 방식
* 인스펙션(Inspection)
 - 작성자를 제외한 다른 전문가들이 확인하며 결함을 발견하는 방식

 

2. 코드 설계에서 일정한 일련번호를 부여하는 방식의 코드는?

1. 연상 코드

2. 블록 코드

3. 순차 코드

4. 표의 숫자 코드

1. 연상 코드
 - 코드화 대상 항목의 명칭이나 약호와 관계있는 숫자나 문자, 기호를 이용하여 코드를 부여하는 방법
2. 블록코드
 - 코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여하는 방법
4. 표의 숫자 코드
 - 코드화 대상 항목의 성질, 물리적 수치를 그대로 코드에 적용시키는 방법
* 그룹 분류 코드
 - 코드화 대상에 대한 분류 기준에 따라 대분류, 중분류, 소분류로 나누고 각 분류 안에서 번호를 순서적으로 부여하는 방법
* 10진 분류 코드
 - 그룹 분류 코드를 응용. 코드화 대상 항목을 분류하고 번호를 부여하는 방식은 동일, 10진수만을 코드 번호로 사용하므로 각 분류마다 오직 한 자리만 허용
* 표의 숫자 코드
 - 코드화 대상 항목의 성질(길이, 넓이, 부피, 지름, 높이 등)의 물리적 수치를 그대로 코드에 적용하는 방법
* 합성 코드
 - 필요한 기능을 하나의 코드로 수행하기 어려운 경우 2개 이상의 코드를 조합하여 만드는 방법

 

3. 객체지향 프로그램에서 데이터를 추상화하는 단위는?

1. 메소드
2. 클래스
3. 상속성
4. 메시지

1. 메소드
 - 객체의 행위
3. 상속성
 - 상위 개념의 특징을 하위 개념이 물려받는 것
4. 메시지
 - 객체 간의 통신

 

4. 데이터 흐름도(DFD)의 구성요소에 포함되지 않는 것은?

1. process

2. data flow

3. data store

4. data dictionary

데이터 흐름도(Data Flow Diagram)의 구성 요소
 - 프로세스(process) : 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정
 - 자료 흐름(data flow) : 데이터 흐름도(DFD)의 구성요소들 간의 데이터 흐름을 나타냄 
 - 자료 저장소(data store) : 데이터가 저장되는 장소
 - 단말(terminator) : 시스템과 통신하는 외부 개체
 
 * 데이터 사전(data dictionary) : 읽기전용으로 제공되는 테이블 및 뷰들의 집합

 

5. 소프트웨어 설계시 구축된 플랫폼의 성능특성 분석에 사용되는 측정 항목이 아닌 것은?

1.응답시간(Response Time)
2.가용성(Availability)
3.사용률(Utilization)
4.서버 튜닝(Server Tuning)

애플리케이션의 성능을 측정하기 위해 사용되는 항목
 - 처리량
 - 응답 시간
 - 자원 사용률(보기에서는 사용률)
 - 가용성
 - 기능성
 - 사용성
 - 성능
 - 보안

 

6. UML 확장 모델에서 스테레오 타입 객체를 표현할 때 사용하는 기호로 맞는 것은?

1. 《 》
2. (( ))
3. {{ }}
4. [[ ]]

 

7. GoF(Gang of Four)의 디자인 패턴에서 행위 패턴에 속하는 것은?

1. Builder
2. Visitor
3. Prototype
4. Bridge

디자인 패턴
 - 소프트웨어 디자인에서 특정 맥락에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책
생성 패턴
 - 추상 팩토리(Abstract Factory)
 - 빌더(Builder)
 - 팩토리 메소드(Factory Method)
 - 프로토타입(Prototype)
 - 싱글톤(Singleton)
구조 패턴
 - 어댑터(Adapter)
 - 브리지(Bridge)
 - 컴포지트(Composite)
 - 데코레이터(Decorator)
 - 퍼싸드(Facade)
 - 플라이웨이트(Flyweight)
 - 프록시(Proxy)
행위 패턴
 - 책임 연쇄(Chain of Responsibility)
 - 커맨드(commnad)
 - 인터프리터(Interpreter)
 - 반복자(lterator)
 - 중재자(Mediator)
 - 메멘토(Memento)
 - 옵서버(Observer)
 - 상태(state)
 - 전략(Strategy)
 - 템플릿 메소드(Template Method)
 - 방문자(Visitor)

 

8. 자료 사전에서 자료의 생략을 의미하는 기호는?

1. { }
2. **
3. =
4. ( )

- 정의 : =
- 구성, 연결 : +
- 반복 : { }
- 주석 : **
- 선택 : [ | ]
- 생략 : ( )

 

9. 트랜잭션이 올바르게 처리되고 있는지 데이터를 감시하고 제어하는 미들웨어는?

1. RPC
2. ORB
3. TP monitor
4. HUB

- RPC : remote procedure call 원격 절차 호출 또는 원격 프로시저 호출
- ORB : object request broker, 객체 간 메시지 전달을 지원하는 미들웨어
- TP monitor : 트랜잭션 처리를 감시/제어하는 미들웨어

 

10. UI 설계 원칙에서 누구나 쉽게 이해하고 사용할 수 있어야 한다는 것은?

1. 유효성
2. 직관성
3. 무결성
4. 유연성

- 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 함.
- 유효성 : 목적이 정확하고 달성될 수 있어야 함.
- 학습성 : 초보자나 숙련자나 모두 쉽게 배우고 이해할 수 있어야 함.
- 유연성 : 사용자의 요구사항을 최대한 수용하고 오류를 최소화 해야 함.

 

11. XP(eXtreme Programming)의 5가지 가치로 거리가 먼 것은?

1. 용기
2. 의사소통
3. 정형분석
4. 피드백

XP(eXtreme Programming)의 5가지 가치
 - 의사소통(Communication)
 - 단순성(Simplicity)
 - 피드백(Feedback)
 - 용기(Courage)
 - 존중(Respect)

 

12. UML 모델에서 사용하는 Structural Diagram에 속하지 않은 것은?

1. Class Diagram
2. Object Diagram
3. Component Diagram
4. Activity Diagram

Structural Diagram
 - 클래스 다이어그램(Class Diagram)
 - 개체 다이어그램(Object Diagram)
 - 컴포넌트 다이어그램(Componert Diagram)
 - 배치 다이어그램(Deployment Diagram)
 - 복합체 구조 다이어그램(Composite Structure Diagram)
 - 패키지 다이어그램(Package Diagram)

Behavioral Diagram
 - 유스케이스 다이어그램(Use Case Diagram)
 - 시퀀스 다이어그램(Sequence Diagram)
 - 커뮤니케이션 다이어그램(Communication Diagram)
 - 상태 다이어그램(State Diagram)
 - 활동 다이어그램(Activity Diagram)
 - 상호작용 개요 다이어그램(Interaction Overview Diagram)
 - 타이밍 다이어그램(Timing Diagram)

 

13. 소프트웨어 개발 방법 중 요구사항 분석(requirements annalysis)과 거리가 먼 것은?

1. 비용과 일정에 대한 제약설정
2. 타당성 조사
3. 요구사항 정의 문서화
4. 설계 명세서 작성

요구사항분석 : 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 걸러내기 위한 과정
 - 사용자 요구사항의 타당성을 조사하고 비용과 일정에 대한 제약을 설정
 - 내용이 중복되거나 하나로 통합되어야 하는 등 서로 상충되는 요구사항이 있으면 이를 해결
 - 도출된 요구사항들을 토대로 소프트웨어의 범위를 파악
 - 도출된 요구사항들을 토대로 소프트웨어와 주변 환경이 상호 작용하는 방법을 이해

 

14. 럼바우(Rumbaugh)의 객체지향 분석 절차를 가장 바르게 나열한 것은?
1. 객체 모형→동적 모형→기능 모형
2. 객체 모형→기능 모형→동적 모형
3. 기능 모형→동적 모형→객체 모형
4. 기능 모형→객체 모형→동적 모형

럼바우의 객체지향 분석 기법
 - 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 객체지향 분석 기법
 - 순서는 객체, 동적, 기능 순으로 이루어짐

 

15. 공통 모듈에 대한 명세 기법 중 해당 기능에 대해 일관되게 이해하고 한 가지로 해석될 수 있도록 작성하는 원칙은?

1. 상호작용성
2. 명확성
3. 독립성
4. 내용성

공통 모듈이란
 - 전체 프로그램의 기능 중 특정기능을 처리할 수 있는 실행코드
 - 자체적으로 컴파일 가능, 다른 프로그램에서 재사용 가능
 - 여러 기능 및 프로그램에서 공통으로 사용할 수 있는 모듈(예-날짜 처리를 위한 유틸리티 모듈 등)

공통모듈 원칙
 - 정확성 : 해당 기능이 실제 시스템 구현시 필요한지 아닌지를 알 수 있도록 정확하게 작성
 - 명확성 : 해당 기능에 대해 일관되게 이해하고 한가지로 해석될 수 있도록 작성
 - 완전성 : 시스템이 구현될 때 필요하고 요구되는 모든 것을 기술
 - 일관성 : 공통 기능 간에 상호 충돌이 없도록 작성
 - 추적성 : 공통 기능에 대한 요구사항 출처와 관련 시스템 등의 유기적 관계에 대한 식별이 가능하도록 작성

 

16. 객체지향 기법에서 클래스들 사이의 ‘부분-전체(part-whole)' 관계 또는 ’부분(is-a-part-of)'의 관계로 설명되는 연관성을 나타내는 용어는?

1. 일반화
2. 추상화
3. 캡슐화
4. 집단화

객체와 클래스 사이 또는 클래스들 사이의 상호 참조하는 관계를 표현하는 방식
 - 관계성의 종류
  - is member of(연관성(Association))
    - 특성 : 클래스와 객체의 참조 및 이용관계("객체 A는 클래스 B에 속한다")
  - is part of(집단화(Aggregation))
    - 특성 : 클래스들 간의 구조적인 집약 관계("클래스 A는 클래스 B와 클래스 C로 구성된다")
  - is a(일반화(Generalization),특수화(Specialization))
    - 특성 : 클래스들 간의 개념적인 포함 관계("자식 클래스 A는 부모 클래스 B의 일종이다")

 

17. CASE가 갖고 있는 주요 기능이 아닌 것은?

1. 그래픽 지원

2. 소프트웨어 생명주기 전 단계의 연결

3. 언어번역

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

CASE(Computer Aided Software Engineering) : 소프트웨어 공학의 여러 작업들을 자동화하는 도구
 - 소프트웨어 부품의 재사용성을 향상
 - 소프트웨어 품질과 일관성을 효율적으로 관리
 - 소프트웨어 생명 주기의 모든 단계를 연결시켜 주고 자동화
 - 소프트웨어의 유지보수를 용이하게 수행 
 - 소프트웨어 공학의 여러 작업들을 자동화하는 도구
 - 소프트웨어 시스템의 문서화 및 명세화를 위한 그래픽 기능을 제공
 - 자료흐름, 비즈니스 프로세스 등의 다이어그램을 쉽게 작성하게 해주는 소프트웨어도 CASE 도구

 

18. DBMS 분석시 고려사항으로 거리가 먼 것은?

1. 가용성
2. 성능
3. 네트워크 구성도
4. 상호 호환성

 

19. HIPO(Hierarchy Input Process Output)에 대한 설명으로 거리가 먼 것은?

1. 상향식 소프트웨어 개발을 위한 문서화 도구이다.
2. HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.
3. 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
4. 보기 쉽고 이해하기 쉽다.

HIPO(Hierarchy Input Process Output) : 시스템의 분석 및 설계나 문서화할 때 사용되는 기법
 - 기본 시스템 모델은 입력, 처리, 출력으로 구성되며, 하향식 소프트웨어 개발을 위한 문서화 도구
 - 체계적인 문서 관리가 가능
 - 기능과 자료의 의존 관계를 동시에 표현
 - 변경, 유지보수가 용이
 - HIPO의 차트 종류 3가지(가시적 도표, 총체적 도표, 세부적 도표)

 

20. 객체지향 분석 방법론 중 E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 것은?

1. Coad와 Yourdon 방법
2. Booch 방법
3. Jacobson 방법
4. Wirfs-Brocks 방법

Coad와 Yourdon
 - E-R 다이어그램을 사용하여 객체의 행위를 모델링
 - 객체 식별, 구조 식별, 주제 정의, 속성 및 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 주로 관계를 분석
Booch
 - 미시적, 거시적 개발 프로세스를 모두 사용하는 분석 방법
 - 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산 정의
Jacobson
 - USE CASE를 사용하여 분석
 * Use CASE : 사용자, 외부 시스템, 다른 요소들이 시스템과 상호 작용하는 방법을 기술
Wirfs-Brock
 - 분석과 설계간 구분이 없으며, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법