2024.07.11 객체지향

객체 지향
개념
- 객체 지향은 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법이다.
객체 지향 구성요소
클래스
특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀
객체 지향 프로그래밍에서 데이터를 추상화하는 단위
하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현
속성은 변수의 형태로, 행위는 메서드 형태로 선언
객체
물리적,추상적으로 자신과 다른 것을 식별 가능한 대상
클래스에서 정의한 것을 토대로 메모리에 할당됨
객체마다 각각의 상태와 식별성을 가짐
메서드
클래스로부터 생성된 객체를 사용하는 방법
객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산
전통적 시스템의 함수 또는 프로시저에 해당하는 연산 기능
메시지
객체들 사이에서 정보를 교환하기 위한 수단
객체에게 어떤 행위를 하도록 지시하는 방법
객체 간의 상호 작용은 메시지를 통해 이루어짐
메시지는 객체에서 객체로 전달됨
인스턴스
객체 지향 기법에서 클래스를 통해 만든 실제의 실형 객체
실제로 메모리상에 할당
속성
한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의
성질, 분류, 식별, 수량, 현재 상태 등에 대한 표현 값
객체 지향 기법
캡슐화
상속성
다형성
추상화
정보 은닉
관계성
객체 지향 설계 원칙 (SOLID)
단일 책임 원칙: 하나의 클래스는 하나의 목적을 위해서 생성됨/ 객체 지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초 원칙
개방 폐쇄 원칙: 확장에는 열려있고, 변경에는 닫혀있어야함
리스코프 치환의 원칙: 서브 타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙
한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다는 원칙/ 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 된다는 원칙
객체 지향 구현 절차
절차: 업무 요건 정의
객체지향 분석: 객체 모델링, 동적 모델링, 기능 모델링 수행
객체 지향 설계 및 구현: 시스템 설계 및 객체 설계, 객체지향 구현
테스트 및 배포: 테스트,패키지, 프로젝트 평가
객체 지향 분석(OOA: Object Oriented Analysis)의 개념
객체 지향 분석은 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스(객체), 속성과 연산, 관계등으로 나누어서 분석하는 기법이다.
데이터와 행위를 하나로 묶어 객체를 정의하고 추상화 한다.
코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
객체 지향 벙법론 종류
OOSE(Object Oriented Software Engineering) / 야콥슨: 유스케이프에 의한 접근 방법, 분석 설계 구현 단계로 구성, 기능적 요구사항 중심의 시스템
OMT(Object Modeling Technology) / 럼바우: 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론, 분석 절차는 객체 모델링 - 동적 모델링 - 기능 모델링 순서로 진행
OOD(Object Oriented Design) / 부치: 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론/ 분석과 설계의 분리가 불가능 / 분석하는데 이용된 객체 모델의 설계 시 적용
추가적으로 Coad와 Yourdon 방법론은 E-R 다이어그램을 사용할 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 객체 지향 분석 방법이다.
Wirfs-Brock 방법론은 분석과 설계간의 구분이 없음, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 분석 방법
야콥슨/럼바우/부치 OOSE/OMT/OOD
E-R 다이어그램은 Coad와 Yourdon



