728x90
1. 객체 지향 개념 : 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법이다.
2. 객체 지향 구성요소
클래스 (Class) | - 객체 지향 프로그램에서 데이터를 추상화 하는 단위 - 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현 - 속성은 변수의 형태로 행위는 메서드 형태로 선언 |
객체 (Object) | - 객체의 행위는 클래스에 정의된 행위에 대한 정의를 공유함으로써 메모리를 경제적으로 사용 - 객체마다 각각의 상태와 식별성을 가짐 |
메서드 (Method) | - 클래스로부터 생성된 객체를 사용하는 방법 - 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산 - 전통적 시스템의 함수 또는 프로시저에 해당하는 연산 기능 |
인스턴스 (Instance) | - 객체지향 기법에서 클래스에 속한 각각의 객체 - 실제로 메모리상에 할당 |
속성 (Property) | - 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의 - 성질, 분류, 식별, 수량, 현재 상태에 대한 표현 값 |
메세지 (Message) | - 객체 간 상호작용을 하기 위한 수단 - 메세지는 객체에서 객체로 전달됨 |
3. 객체 지향 기법
캡슐화 (Encapsulation) | - 서로 관련성이 많은 데이터와 이와 관련된 함수들을 한 묶음으로 처리하는 기법 - 결합도가 낮아지고, 재사용이 용이 - 인터페이스가 단순화 됨 - 정보은닉과 관계가 깊음 - 변경 발생 시 오류의 파급 효과가 적음 |
상속성 (Inheritance) | - 상위 클래스의 속성과 메소드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법 |
다형성 (Polymorphism) | - 하나의 메세지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력 - 오버로딩, 오버라이딩 오버로딩 : 매개 변수의 유형과 개수가 다르게 하여 같은 이름의 메소드를 여러개 가지는 기법 오버라이딩 : 상위클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 기법 |
추상화 (Abstraction) | - 공통 성질을 추출하여 추상 클래스를 설정하는 기법 - 기능 추상화, 자료 추상화, 제어 추상화 |
정보 은닉 (Information Hiding) |
- 코드 내부 데이터와 메소드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술 - 고려되지 않은 영향들을 최소화하기 위하여 사용 |
관계성 (Relationship) |
- 두 개 이상의 엔티티 형에서 데이터를 참조하는 관계를 나타내는 기법 - 연관화, 분류화, 집단화, 일반화, 특수화 |
4. 객체지향 설계 원칙 (SOLID)
단일 책임의 원칙 (Single Responsible Principle) |
하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중되어야 한다. |
개방 폐쇄 원칙 (Open Close Principle) |
소프트웨어 구성요소( 컴포넌트, 클래스, 모듈, 함수 )는 확장에는 열려있고 변경에는 닫혀있어야 한다는 원칙 |
리스코프 지환의 원칙 (Liskov Substitution Principle) |
서브타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙 |
인터페이스 분리의 원칙 (Interface Segregation Principle) |
한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다. 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다. |
의존성 역전의 원칙 (Dependency Inversion Principle) |
실제 사용관계는 바뀌지 않으므로, 추상을 매개로 메세지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙 |
5. 객체 지향 방법론
종류 | 설명 | 특징 |
OOSE (Object Oriented Software Engineering) |
- Usecase에 의한 접근 방법으로, Usecase를 만든 모든 모델의 근간으로 활용 | - 분석, 설계, 구현 단계로 구성 - 기능적 요구사항 중심의 시스템 |
OMT(Object Modeling Technology) | - 객체지향 분석, 시스템 설계, 오브젝트 설계 및 구현의 4단계 - 객체모델링 -> 동적 모델링 -> 기능 모델링 * 객체 모델링 : 시스템의 정적 구조 표현 * 동적 모델링 : 객체의 제어 흐름/상호 반응 표현 * 기능 모델링 : 데이터 값의 변화 과정 표현 |
- 복잡한 대형 프로젝트에 유용 - 기업 업무의 모델링 편리 및 사용자와 의사소통 편리 |
OOD(Object Oriented Design) | 설계 부분만 존재 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 분헉 방법 |
- 분석과 설계 분리 불가능 - 분석하는데 이용된 객체 모델의 설계 시 적용 |
728x90
'Computer Science > 정보처리기사' 카테고리의 다른 글
비용산정 모델 (0) | 2022.01.29 |
---|---|
2 (5) 인터페이스 구현 검증 도구의 종류 (0) | 2022.01.28 |
2.(4) 어플리케이션 테스트 관리 (0) | 2022.01.27 |
[정보처리기사] 디자인 패턴의 의미와 종류 (0) | 2022.01.20 |
[정보처리기사] 3. 데이터베이스 구축(2)- 데이터모델 절차란 (0) | 2022.01.17 |