# 4. 자격증/정보처리기사

정보처리기사 # 2020.09_1과목 소프트웨어 설계

둥굴둥굴둥굴레차 2021. 8. 8. 22:00

 

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

 - 클라이언트는 자신이 사용하지 않는 메서드와 의존관계를 맺으면 안된다.

 - 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다.

  1. 인터페이스 분리 원칙
  2. 단일 책임 원칙
  3. 개방 폐쇄의 원칙
  4. 리스코프 교체의 원칙
[객체지향 설계 원칙(SOLID)]

 - 단일 책임 원칙(SRP, Single Responsibility Principle)
   모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함

 - 개방 폐쇄의 원칙(OCP, Open-Closed Principle)
   소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.
   기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계

 - 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
   일반화 관계. 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.

 - 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
   클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙

 - 의존성 역전 원칙(DIP, Dependency Inversion Principle)
   의존 관계를 맺을 때 변화하기 쉬운 것 보다 변화하기 어려운 것에 의존하라는 원칙을 의미한다.

 

 

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

  1. 순차 코드
  2. 10진 코드
  3. 표의 숫자 코드
  4. 블록 코드
[코드 종류]
1. 순차 코드(Sequence Code)
  일정한 일련번호를 부여하는 방식
  자료의 발생순, 크기순, 가나다순 등 일정 순서대로 코드
2. 블록 코드(Block Code : 구분 코드)
   코드화 대상을 미리 파악하여 블록으로 구분한 후 그 안에서 순서대로 코드를 부여
3. 그룹 분류 코드(Group Classification Code)
   구분 코드를 세분화한 형태로 대분류, 중분류, 소분류 등 각 분류별로 자릿수를 구성
4. 표의 숫자 코드(Significant Digit Code)
   표현하려는 대상의 의미는 제외하고 수치만을 모아 만든 것으로 대상이 되는 물체의 중량, 면적, 크기 등을 직접 코드에 적용
5. 십진 분류 코드(Decimal Classification Code)
   코드화 대상물을 일정한 소속으로 구분하여 십진수 한 자리씩 구분하여 대분류하고, 같은 방법으로 중 분류, 소분류한 코드
6. 연상 코드(Mnemonic Code)
   숫자나 문자를 조합해서 나타내는 것으로 어떤 내용을 기억할 수 있도록 표시한 기호 코드
7. 약자 코드(Letter Code)
   일반적으로 사용해온 단위의 약자를 코드로 사용
8. 끝자리 분류 코드(Final Digit Code)
   다른 종류의 코드와 조합해서 사용하며, 코드의 끝에 붙여서 그 의미를 표현

 

 

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

  1. 자료 흐름 그래프 또는 버블(bubble) 차트라고도 한다.
  2. 구조적 분석 기법에 이용된다.
  3. 시간 흐름을 명확하게 표현할 수 있다.
  4. DFD의 요소는 화살표, 원, 사각형, 직선(단선/이중선)으로 표시한다.
DFD는 시간 흐름을 명확하게 표현할 수 없다.
자료에 대한 흐름을 표현하며 구조적 분석기법에 이용된다.
요소는 화살표, 원 , 직선으로 표시한다.
[DFD 구성 요소]
- 프로세스(Process)
- 자료 흐름(Data Flow)
- 자료 저장소(Data Store)
- 단말(Terminator)

 

 

 

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

  1. [ ]
  2. { }
= : 자료의 정의(~로 구성되어 있다)
+ : 자료의 연결(그리고)
() : 자료의 생략(생략 가능한 자료)
[] : 자료의 선택(또는) ex) [ A | B | C ]
{} : 자료의 반복
* * : 자료의 설명(주석)

 

 

 

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

  1. 비정형 명세기법은 사용자의 요구를 표현할 때 자연어를 기반으로 서술한다.
  2. 비정형 명세기법은 사용자의 요구를 표현할 때 Z 비정형 명세기법을 사용한다.
  3. 정형 명세기법은 사용자의 요구를 표현할 때 수학적인 원리와 표기법을 이용한다.
  4. 정형 명세기법은 비정형 명세기법에 비해 표현이 간결하다.
정형 명세법
- 수학적 기반/모델링 기반
- Z, VDM, Petri-Net(모형기반)
- CSP, CCS, LOTOS(대수적방법)
- 시스템 요구특성이 정확하고 명세가 간결하다. 명세와 구현이 일치.
- 그러나 이해도가 낮으며 이해관계자의 작성 부담 가중.

비정형명세
- 자연어를 기반으로 서술
- 상태, 기능, 객체 중심 명세법
- FSM(Finite state machine)
- Decision Table, ER모델링
- State chart(SADT)
- UseCase : 사용자기반모델링
- 명세 작성이 간편하고 의사전달 방법이 다양하다.
- 불충분한 명세가능성, 모호성.

 

 

소프트웨어 개발 단계에서 요구 분석 과정에 대한 설명으로 거리가 먼 것은?
     
     1. 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용 활 수 있다.
     2. 개발 비용이 가장 많이 소요되는 단계이다.
     3. 자료흐름도, 자료 사전 등이 효과적으로 이용될 수 있다.
     4. 보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 활용될 수 있다.

개발비용이 가장 많이 소요되는 단계는 유지보수 단계

 

 

애자일 방법론에 해당하지 않는 것은?
     
     1. 기능중심 개발
     2. 스크럼
     3. 익스트림 프로그래밍
     4. 모듈중심 개발

[애자일 방법론]
익스트림 프로그래밍(Extreme Programing, XP)
스크럼(Scrum)
기능 중심 개발(FDD Feature-Driven Development)