맨키리

목표는 세계정복 목적은 우주대통합

[공부]/[정보처리기사]

[필기] 정보처리기사 23강

우주최강자맨키리 2021. 3. 23. 14:05
SMALL
TOPIC : 객체지향 소프트웨어 공학

1. 객체지향 기법

1-1. Definition

객체지향의 개념 및 원칙?

> '실세계의 모든 개체들은 시스템에서 객체로 모델링하며, 각 개체들은 인스턴스(Instance)로 표현된다.'

> 뭔 개소리야

> 이를 풀어서 설명하면?

: 하나하나 연산하고자 하는 구성을 객체라고 한다. 이 오브젝트들을(Object) 단위로 만드는 것을 모델링(Modeling). 따라서 연산을 목적으로 하는 구성들을 일련의 단위로 묶어 처리할 수 있도록 만드는 것을 의미한다.

 

 

1-2. 객체지향 기법의 구성요소

  • 객체 (Object) : 자료 또는 함수 등이 될 수 있다.
  • 데이터 (Data) : 객체가 가지고 있는 정보를 나타낸 것
  • 함수 (Function) : 데이터를 처리하는 알고리즘을 의미
  • 클래스 (Class) : 공통된 특성을 갖는 객체를 모아둔 것
  • 인스턴스 (Instance) : 클래스에 속하는 각각의 구체적인 객체, (=처리해야 할 요소 의미)
  • 메시지 (Message) : 객체들 간 상호작용하는데 사용되는 수단, (= 객체에게 지시하는 명령)

 

 

1-3. 객체지향 기법의 주요 기본원칙

  • 캡슐화 (Encapsulation) : 데이터를 처리하는 함수를 하나의 묶음 단위로 만들어주는 것. (≒ 모듈)
    > 캡슐처럼 껍질 둘러쌓여있다 생각. 캡슐화된 객체의 세부내용은 외부에 은폐됨.
    > 따라서 변경이 발생해도 오류의 파급효과가 적다. (LH가 언론 안탔으면 파급효과가 이렇진...)
  • 정보 은닉 (Information Hiding) : 다른 객체에게 자신의 정보를 숨기고, 연산만을 통해 접근을 허용하는 것
  • 상속성 (Inheritance) : 상위클래스의 모든속성과 연산을 하위클래스가 물려받는 것
  • 추상 (Abstraction) : 객체의 속성중 가장 중요한 것만 중점을 두어 개략화 하는 것
  • 다형성 (Polymophism) : 하나의 메세지에 대해 각 객체가 가지고 있는 고유방법으로 응답할 수 있는 능력
    > MBTI인가? A라는 상황에 대해 대처하는 방법이 16개 인 것 처럼

 

 

1-4. 객체지향 방법론

객체 지향 분석기법에 대해 학자들이 분석기법을 제시함. 가장 중요한 럼바우부터 시작

  • 럼바우의 객체지향 분석기법
    • 가장 일반적으로 사용하는 방법으로, 선택과 반복구조를 이용한다.
    • 모든 소프트웨어 구성요소를 그래픽 표기법을 통해 모델링하는 기법이다.
      1. 객체 (Object Modeling) : 시스템에서 요구되는 객체를 찾아냄, 속성과 연산 식별 및 객체간 관계를 규정한다.
      2. 동적 (Dynamic Modeling) : 상태도를 이용하여 시간의 흐름에 따른 객체들 사이 제어흐름, 상호작용, 동작순서 등 동적인 행위를 표현한다.
      3. 기능 (Functional Modeling) : 자료흐름도(DFD)를 이용하여 다수의 프로세스 간 자료 흐름을 중심으로 처리과정을 표현한 것.
  • Booch의 기법 : 객체를 분해, 객체들 간의 인터페이스를 찾아 Ada프로그램으로 전환시킨 기법
  • Cord와 Yourdon의 기법 : E-R다이어그램을 이용한 것이 특징
  • Jaconson의 기법 : 사용자와 시스템과의 상호작용을 시나리오로 표현.

 

 

1-5. 객체지향 설계

> POINT : 객체는 순차적으로 또는 동시적으로 구현될 수 있다.

 

 

1-6. 객체지향 프로그래밍

  • Simula
  • Smalltalk
  • C++, Object C
  • Java

상위 4가지 프로그래밍 언어는 이미 개발된 프로그램을 이용해, 빠르게 확장 프로그램을 개발하는 데에 용이하다.

때문에 이해하기 쉽고 조작하기 쉬운 프로그램을 개발할 수 있다.

다만, Simula의 경우 절차중심이며 나머지 세 가지는 비절차식 객체지향 프로그래밍 언어인 것을 알고가자.

LIST

'[공부] > [정보처리기사]' 카테고리의 다른 글

[필기] 정보처리기사 25강  (0) 2021.03.26
[필기] 정보처리기사 24강  (0) 2021.03.24
[필기] 정보처리기사 22강  (0) 2021.03.23
[필기] 정보처리기사 21강  (0) 2021.03.22
[필기] 정보처리기사 20강  (0) 2021.03.18