[2023 정보처리기사] 1과목 – 8. 객체지향(Object-Oriented)

1. 객체지향이란?

현실 세계의 개체(Entity)를 기계 부품처럼 하나의 객체(Object)로 만들어 소프트웨어를 개발.

– 소프트웨어의 재사용 및 확장이 용이, 유지보수가 쉬움.

– 구성요소: 객체, 클래스, 캡슐화, 상속, 다형성 등. ★★

  1. 1. 객체(Object)

: 데이터와 데이터를 처리하는 함수를 묶어 놓은 하나의 소프트웨어 모듈.

  • 데이터: 속성, 상태, 변수, 상수, 자료구조
  • 함수: 메소드, 서비스, 동작, 행위

  1. 2. 클래스(Class) ★

: 공통된 속성과 연산을 갖는 객체들의 집합.

– 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀.

– 클래스에 속한 각각의 개체 => 인스턴스(Instance)

  1. 3. 캡슐화(Encapsulation) ★

: 데이터데이터를 처리하는 함수를 하나로 묶는 것.

– 불필요 기능 최소화, 소프트웨어 개발비용 감소.

– 개발 속도, 재사용성 증가.

– 정보은닉.

결합도 감소, 응집도 증가.

  1. 4. 상속(inheritance)

: 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것.

  1. 5. 다형성(Polymorphism)

: 하나의 메세지에 대해 여러 형태의 응답이 존재하는 것.

 

2. 객체지향의 5가지 특징 ★

  • 캡슐화(Encapsulation)
  • 추상화(Abstraction)
  • 상속성(Inheritance)
  • 다형성(Polymorphism)
  • 정보은닉(Information Hiding)

 

3. 객체지향 기법에서의 관계성

  • is member of: 연관성, 참조 및 이용관계.
  • is part of: 집단화, 객체간 구조적인 집약 관계.
  • is a: 일반화, 클래스간 개념적인 포함관계.

 

4. 객체지향 설계 원칙(SOLID) ★★

  • 단일 책임 원칙(SRP; Single Responsibility Principle)

: 클래스⋅함수 등은 단 하나의 책임만을 가져야 한다.

  • 개방-폐쇄 원칙(OCP; Open-Close Principle)

: 기존의 코드를 변경하지 않고(Close), 기능을 확장(Open)할 수 있도록 설계해야 한다.

  • 리스코프 치환 원칙(LSP; Liskov Substitution Principle)

: 자식 클래스는 어디에서나 부모클래스로 교체(치환)할 수 있어야 한다.

  • 인터페이스 분리 원칙(ISP; Interface Segregation Principle)

: 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.

 (= 자신이 사용하지 않는 인터페이스에 영향받지 않아야 한다.)

  • 의존 역전 원칙(DIP; Dependency Inversion Principle)

: 의존 관계를 맺을 때, 변화하기 쉬운 것보다 변화하기 어려운 것에 의존해야 한다.

 

5. 객체지향 분석

  5. 1. 객체지향 분석 방법론 ★

  • 럼바우(Rumbaugh)방법

– 분석 활동을 객체모델, 동적모델, 기능모델로 나누어 수행. 가장 일반적으로 사용.

  • 부치(Booch)방법

미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용.

  • Jacobson방법

Use case를 강조하여 사용.

  • Coad와 Yourcon방법

E-R다이어그램을 사용

  • Wirf – Brock방법

분석과 설계간 구분이 없음.

  5. 2. Rumbaugh의 객체 지향 분석 / 객체 모델링 기법 ★★

객체 모델링: 객체를 찾아내어 관계를 규정. => 객체 다이어그램 (정적)

동적 모델링: 상태를 시간의 흐름에 따라 표시. => 상태 다이어그램 (동적)

기능 모델링: 자료의 흐름을 표시 => 자료흐름도(DFD) (구조적)

Leave a Comment