[소프트웨어 공학] 14.OOP(Object Oriented Prgramming)

이번에는 정보처리기사 필기 과목인 소프트웨어 공학의 OOP를 살펴보아요.

OOP
Object Oriented Programming의 약어로 객체(혹은 개체) 지향 프로그래밍이라 부릅니다.
현실 세계를 모델로 개체 사이에 메시지를 주고 받게 프로그래밍하는 기법입니다.
재사용성이 높아지고 유지보수가 쉬워집니다.

Object
자료와 기능을 캡슐화한 소프트웨어 모듈
자료를 상태, 변수,속성이라고 부릅니다.
기능을 함수, 프로시저, 메서드, 서비스, 동작이라고 부릅니다.

클래스
캡슐화하여 Obejct를 정의한 형식

인스턴스
클래스에 속한 개체를 인스턴스라 부릅니다.

메시지
Object 사이에 상호작용하는 수단
메시지를 수신한 Object는 메서드를 수행합니다.

캡슐화(Encapsulation)
여러 데이터와 기능을 하나의 형식으로 묶는 과정
캡슐화에서 정보 은닉을 통해 내부 정보를 숨겨 보호할 수 있습니다.

상속(Inheritance)
이미 정의한 상위 클래스의 속성과 기능을 하위 클래스가 물려받는 것을 말합니다.

다형성(Polymorphism)
같은 메서드를 사용하였을 때 실제 인스턴스에 따라 수행하는 모습이 다를 수 있는 특징을 말합니다.

OOP 개발 과정
계획 → 분석 → 설계 → 구현 → 테스트

OOP 설계 순서
문제 정의 → 요구 명세화 → Object 연산자 정의 → Object 인터페이스 결정 → Object 구현

럼바우(Rumbaugh) 분석 기법
소프트웨어 구성 요소를 그래픽 표기로 모델링하는 기법으로 OMT(Object Modeling Technique)이라고 부릅니다.
Object 모델링 → Dynamic 모델링 → Functioanl 모델링 순서로 진행합니다.
Object 모델링: 정보 모델링으로 필요한 Object를 찾고 Object 사이의 관계를 정하는 모델링
Dynamic 모델링:  상태도를 이용하여 제어 흐름을 모델링
Functional 모델링: 자료 흐름도를 이용하여 다수의 프로세스 사이의 자료 흐름을 중심으로 처리 과정을 표현한 모델링