[자격증] 정보처리기사 필기 : 제1과목 소프트웨어 설계 (애플리케이션 설계)

 정보

  • 업무명     : 정보처리기사 필기 : 제1과목 소프트웨어 설계 (애플리케이션 설계)

  • 작성자     : 이상호

  • 작성일     : 2021-03-01

  • 설   명      :

  • 수정이력 :

 

 

 내용

[소프트웨어 아키텍처]

  • 소프트웨어 아키텍처의 설계

  • 모듈화

  • 추상화

    • 과정추상화

    • 데이터 추상화

    • 제어 추상화

 

  • 단계적 분해

  • 정보 은닉

  • 소프트웨어 아키텍처의 품질 속성

    • 시스템 측면

    • 비즈니스 측면

    • 아키텍처 측면

 

  • 소프트웨어 아키텍처의 설계과정

    • 설계 목표 설정

    • 시스템 타입결정

    • 아키텍처 패턴 적용

    • 서브시스템 구체화

    • 검토

 

[아키텍처 패턴]

  • 아키텍처 패턴

    • 아키텍처 패턴의 장점

    • 종류 : 레이어 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 모델-뷰-컨트롤러 패턴

  • 레이어 패턴

  • 클라이언트-서버 패턴

  • 파이프-필터 패턴

  • 모델-뷰-컨트롤러 패턴

  • 기타

    • 마스터-슬레이브 패턴, 브로커 패턴, 피어-투-피어 패턴

    • 이벤트-버스 패턴, 블랙보드 패턴, 인터프리터 패턴

 

[객체지향]

  • 객체 : 데이터와 그 데이터에 관련되는 동작을 모두 포함한 개념이다.

  • 객체 지향 : 실 세계의 개체(Entity)를 속성(Attribute)과 메소드(Method)  가 결합된 형태의 객체(Object)로 표현하는 개념이다.

  • 객체 지향의 구성요소

    • 객체 : 데이터+ 연산. 메소드 : 객체의 구체적인 연산을 정의한 것이다.

    • 클래스(Class) : 유사한 객체들을 모아 공통된 특성을 표현한 것. 클래스로부터 생성된 새로운 객체를 인스턴스(Instance)라고 한다.

    • 메시지(Message) : 객체들 간의 상호작용이 일어나기 위해서 메시지가 필요하며 메시  지를 통하여 객체의 동작이 수행된다.

 

  • 객체 지향기법

    • 캡슐화(Encapsulation)

    • 상속(Inheritance)

    • 추상화(Abstraction)

    • 다형성(Polymorphism)

 

[모듈]

  • 모듈화

    • 모듈이란 소프트웨어를 각 기능별로 분할하는 것으로, 소프트웨어 구조를 이루는 기본  단위이다.

    • 모듈화는 독립성이 높아야 하며, 모듈의 독립성은 결합도와 응집도에 의해 측정된다.

 

  • 결합도

    • 한 모듈과 다른 모듈간의 상호의존도를 측정하는 것으로 독립적인 모듈이 되기 위해서는  결합도가 약해야 한다.

 

  • 응집도(cohesion)

    • 한 모듈 내에 있는 구성 요소들이 서로 관련되어 있는 정도를 의미하며, 관련성을 측정  하는 것으로 응집도가 높도록 설계되도록 해야 한다.

 

[공통 모듈]

  • 공통 모듈의 개념

    • 전체 프로그램의 기능 중 공통적으로 사용할 수 있는 모듈

    • 공통 모듈 명세 작성 원칙

      • 정확성

      • 명확성

      • 완전성

      • 일관성

      • 추적성

 

[코드]

  • 주요 기능

    • 식별 기능, 분류 기능 , 배열 기능

       

  • 코드의 종류

    • 순차코드

    • 블록코드

    • 10진코드

    • 그룹 분류 코드

    • 연상코드

    • 표의 숫자 코드

    • 합성 코드

 

[디자인 패턴]

  • 생성패턴 5개

    • 추상팩토리

    • 빌더

    • 팩토리 메소드

    • 프로토타입 싱글톤

 

  • 구조패턴 7개

    • 어댑터

    • 브리지

    • 컴포지트

    • 데코레이터

    • 퍼씨드

    • 플라이웨이트

    • 프록시

 

  • 행위패턴 11개

    • 책임 연쇄

    • 커맨드

    • 인터프리터

    • 반복자

    • 중재자

    • 메멘토

    • 옵서버

    • 상태

    • 전략

    • 템플릿 메소드

    • 방문자

 

[연습문제]

  • 공통모듈의 작성원칙 중 해당 기능에 대한 요구사항의 출처와 관련 시스템 등  유기적 관계에 대한 식별이 가능하도록 작성해야 하는것은?

    • ① 정확성(Correctness)

    • ② 추적성(Tranceability)

    • ③ 명확성(Clarity)

    • ④ 일관성(Consistency)

 

  • 다음 중 객체지향(Object Orient)의 기법에 대한 설명으로 옳지 않은 것은?

    • ① 캡슐화(Encapsulation)는 동일한 이름의 여러 오퍼레이션(메소드)을 다른 사양으로 정의 가능하다.

    • ② 추상화(Abstraction)는 공통의 성질을 추출하여 슈퍼클래스를 구성한다.

    • ③ 정보은닉(Information Hiding)은 캡슐화된 항목을 다른 객체(Object)로부터 숨긴  다.

    • ④ 상속(Inheritance)은 부모 클래스의 속성과 메소드를 상속받아 사용한다.

 

  • 다음에서 설명하는 디자인 패턴에 해당하는 것은?

  • 기존에 만들어진 클래스를 사용하려고 하는데 인터페이스가 일치하지 않거나, 관련이 없어  사용하지 못했던 클래스 들을 다시 사용할 수 있게 만들고자 한다.

    • ① 브리지

    • ② 컴포지트

    • ③ 데코레이터

    • ④ 어댑터

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com