본문 바로가기

정보처리기사 (필기)/1. 소프트웨어 설계

[정보처리기사] CBT 모의고사 202108~202203 개념 - 1과목

1과목 : 소프트웨어 설계

 

1. User Interface 설계

① 직관성 : 누구나 쉽게 이해,  쉽게 사용해야 함 / 메세지 이해하기 쉬워야함

② 유효성 : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작

③ 학습성 : 초보와 숙련자 모두 쉽게 배우고 사용해야 함

④ 유연성 : 사용자의 인터랙션 최대한 포용, 실수 방지할 수 있도록 제작

2022년 03월 05일 기출

2. UML 모델 관계

① 연관 관계 (Association Relationship) : 한 사물의 객체가 다른 사물에 대한 객체와 연결 (화살표 실선)

② 의존 관계 (Dependency Relationship) : 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현

③ 실체화 관계 (Realizetion Relationship) : 사물이 할 수 있거나, 해야하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현

④ 일반화 관계 (Generalization Relationship) : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현

⑤ 집합관계 (Aggregation Relationship) : 포함되는 쪽에서 포함 하는 쪽으로 연결

⑥ 포함관계 (Composition Relationship) : 집합관계의 특수형태 / 영향까지 고려

2021년 08월 14일 기출

3. 익스트림 프로그래밍 (XP)

  • 요구사항에 유연하기 위해 고객의 참여와 개발 과정의 반복을 극대화 하여 개발 생산성을 향상시키는 방법
  • 사용자 스토리, 릴리즈 계획수립, 스파이크, 주기, 승인검사, 소규모릴리즈의 개발 프로세스를 가지고 있음
  • 빠른 소프트웨어 개발이 목적이지만 테스트를 진행함
  • 프로그래밍에서 테스트가 없다는 것은 말도 안됨

2021년 08월 14일 기출

4. 추상화 기법 (Abstraction)

* 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것

① 제어 추상화 : 제어의 정확한 메커니즘을 정의하지 않고 원하는 효과를 정하는 데 이용

② 기능 추상화 : 입력 자료를 출력 자료로 변환하는 과정을 추상화하는 방법

③ 자료 추상화 : 자료와 자료에 적용할 수 있는 기능을 함께 정의함으로써 자료객체를 구성하는 방법

④ 과정 추상화 : 자세한 수행 과정을 정의하지 않고 전반적인 흐름만 파악할 수 있게 설계

⑤ 테이터 추상화 : 데이터의 세부적인 속성이나 용도 정의하지 않고 데티어 구조를 대표할 수 있는 표현으로 대체

2021년 08월 14일 기출

5. 객체지향 설계에서의 정보 은닉 (Information Hiding)

* 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용

* 클래스 외부에서 특정 정보에 접근을 막는다는 의미 (IP, port 등)

  • 장점
  • 기능의 교체나 변경에 유연 (객체간의 구체적인 결합도 약화) / 요구사항에 따른 변화 가능
  • 동적기능 변경 가능
  • 모듈화하여 코드의 가독성 증가
  • 개발기간 단축

2021년 08월 14일 기출

6. 자료 흐름도(DFD) 

* 시간의 흐름보다 프로세스와 프로세스 간에 존재하는 상호작용을 명확하게 표현 가능

* 구조적 분석기법

① 처리 Process : 원 ○

② 자료 흐름 Data Flow : 화살표 →

③ 자료 저장소 Data Store : 평행선 〓

④ 단말 Terminal : 사각형 □

2022년 03월 05일 기출

8. 클래스 다이어그램의 요소

* 객체지향 모델링 시 구성요소 간 정적인 관계를 표현한 다이어그램

① 클래스 이름 (Class Name)

② 속성 (Attribute)

③ 연산 (Operaton) : 작동!!!!

④ 접근 제어자 : -, +, #, ~

2021년 08월 14일 기출

9. 분산 시스템을 위한 마스터-슬레이브 (Master-Slave) 아키텍쳐

  • Master-Slave 패턴
  • Master : 작업을 분리, 배포
  • Slave : 요청 작업 처리
  • 슬레이브는 마스터의 작업 요청을 처리하고, 처리된 결과를 되돌려준다
  • 마스터는 슬레이브가 반환한 결과값으로부터 최종 결과값을 계산한다

2021년 08월 14일 기출

10. 요구 사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)

  • Data Flow Diagram
  • UML Diagram
  • E -R Diagram
  • AVL Diagram은 이진트리의 높낮이가 불규칙해지는 것을 보완하기 위한 이진트리 모형임

2021년 08월 14일 기출

11. UML 다이어그램 

  • 구조적, 정적 다이어그램
  • #클객컴배복패
  • 행위, 동적 다이어그램
  • #유시커상활상타 

2022년 03월 05일 기출

13. 클래스 설계원칙

  • 단일 책임원칙 : 하나의 객체는 하나의 동작만의 책임을 가짐
  • 개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.
  • 리스코프 교체의 원칙 : 특정 메소드가 상위 타입을 인자로 사용할 때, 그 타입의 하위 타입도 문제 없이 작동해야 함
  • 의존관계 역전의 원칙 : 상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있음

2022년 03월 05일 기출

14. GoF(Gangs of Four) 디자인 패턴에서 생성(Creational) 패턴

생성패턴

  • 추상팩토리(Abstract Factory)
  • 빌더(Builder)
  • 팩토리메서드(FactoryMethod)
  • 프로토타입(Prototype)
  • 싱글톤(Sington)

구조패턴

  • 어댑터(Adapter)
  • 브리지(Bridge)
  • 컴포지트(Composite)
  • 데코레이터(Decorator)
  • 파사드(Facade)
  • 플라이웨이트(Flyweight)
  • 프록시(Proxy)

행위패턴

  • 책임 연쇄(Chain of Responsibility)
  • 커맨드(Command)
  • 인터프리터(InterPreter)
  • 이터레이터(Iterator)
  • 중재자(Mediator)
  • 메멘토(Memento)
  • 옵서버(Observer)
  • 상태(State)
  • 전략(Strategy)
  • 템플릿메서드(Template Method)
  • 방문자(Visitor)

2022년 03월 05일 기출

15. 아키텍처 설계과정

  • 설계목표설정 -시스템 타입 결정 - 아키텍처 패턴 적용 - 서브시스템 구체화 - 검토

2022년 03월 05일 기출

17. 디자인 패턴

  • 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴
  • 각 모듈의 세분화된 역할 or 모듈들 간 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
  • GoF의 디자인 패턴은 가장 일반적 사례에 적용될 수 있는 패턴들을 분류하여 정리함. 가장 많이 사용되는 디자인 패턴 (1995)
  • 재사용 가능한 기본형 코드
  • 한 패턴에 변형을 가하거나 특정 요구사항을 반영하면 유사한 형태의 다른 패턴으로 변화

2022년 03월 05일 기출

19. 분산 시스템에서의 미들웨어 (Middleware)

  • 위치 투명성 제공
  • 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는소프트웨어로 볼 수 있다.
  • 분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다.
  • 복잡한 이기종 환경에서 응용 프로그램과 운영환경 간에 원만한 통신을 이룰 수 있게 해주는 소프트웨어
  • 애플리케이션 - 사용자 사이 외에도 프로그램과 환경간에서 서비스를 제공

2021년 08월 14일 기출

20. 객체지향

  • Method(메서드) : 클래스로부터 생성된 객체를 사용하는 방법, 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산
  • Message(메시지) : 객체 간 상호 작용을 하기 위한 수단, 객체에게 어떤 행위를 하도록 지시하는 방법
  • Class(클래스) : 특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀, 객체 지향 프로그래밍에서 데이터를 추상화하는 단위
  • Field(필드) : SQL에서 열 또는 속성이라고 불리는 것

2022년 03월 05일 기출