정보처리기사

정보처리기사) 소프트웨어(4) - 객체지향

은line 2022. 2. 2. 17:29

 개체란? 

: 하나의 정보단위로 속성attribute가 모여 하나의 정보단위를 이룬 것

: 개체들 사이의 연관성 = 관계

 

 객체란? 

: 실세계에 존재하거나 생각할 수 있는 것, 식별가능한 이름, 상호연관성에 의한 관계가 형성됨

: 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈, 반응가능한 메시지(행위)의 집합

   →속성, 상태(조건), 변수, 상수 자료구조  →객체상태 참조, 수단: 메소드, 서비스, 동작, 연산

: 클래스Class의 인스턴스Instance

 

 인스턴스란? 

: 객체를 실체화 한 것, 클래스에 속한 각 객체

 

 클래스란? 

: 공통된 속성attribute과 변수, 메서드, 연산을 갖는 객체들의 집합, 데이터를 추상화하는 단위

: 객체를 생성하기 위한 설계도/ 틀

 

 객체지향 

: 개체entity를 객체로 조립하여 작성할 수 있는 기법, 비절차적 언어

: 재사용/ 확장/ 유지보수가 용이함, 단계적/계층적표현으로 복잡한구조

> 구성 : 객체, 인스턴스, 클래스

> 설계원칙

> 설계절차 : 문제정의→ 요구 명세화→ 객체 연산자 정의→ 객체 인터페이스 결정→ 객체 구현

 

 객체지향 기법 

: 객체-속성/ 클래스-멤버 / 전체-부분(집단화) 으로 나누어 분석

            집단화  : 부분과 전체, 부분과 부분의 관계로 설명되는 연관성 

> 분석 방법론

Coad-Yourdon : 개체-관계모델 E-R다이어그램을 사용하여 객체의 행위를 데이터 모델링에 초점을 둔 방법
럼바우 : 데이터와 행위를 하나로 묶어 객체를 정의하여 추상화 시키는 방법
: 코드를 재사용하여 생산성 향상과 시스템 변경용이
분석활동
(객 동 기)
정보 - 객체모델링
 : 객체 다이어그램, 시스템에서 요구하는 객체 찾기, 가장중요, 객체 관계를 규정하여 표시함
상태 - 동적모델링
 : 상태다이어그램(상태도), 시간의 흐름에따라 동적인 행위를 표현함
흐름 - 기능모델링
 : 자료흐름도 DFD, 처리과정을 표현, 구조적분석
 > 구성요소 : 프로세스(○), 자료흐름(→), 저장소(-), 단말(□)
 > 기능모형설계 순서 : 입출력결정→ DFD작성→ 기능기술→ 제약사항 결정/최소화
 > 지침사항 : 프로세스 거쳐 변환시 새 이름을 부여함
 **프로세스가 출력자료 산출시 반드시 입력자료를 발생해야 함, 상위단계Process는 하위DFD의 자료흐름
Booch  : 미시적- 거시적 객체지향 방법

 

 정보은닉 

: 다른 모듈 구현에 영향받지 않게 설계, 모듈간 독립성 유지, 객체 속성/ 오퍼레이션의 일부를 감추어 외부접근 방지

: 대상 - 기본정보(IP,주소)같은 물리적 코드와 상세데이터 구조

 

 캡슐화 

: 중요 데이터를 보존/보호, 인터페이스만 밖으로 드러내며 그외 세부내용은 정보은닉 →외부모듈의 변경에 의한 영향 적음

: 외부에서 특정 메소드, 속성에 접근하지 못하도록 함 → 객체손상 방지, 재사용 용이, 오류파급 효과 적음

 

 상속 

: 자식이 부모를 선택, 부모클래스를 재사용하여 개발속도 향상됨 (하위 객체/클래스 기능 = 상위 객체/클래스 기능 + a)

: 코드중복 감소, 유지보수 용이, 객체의 다형성 구현가능

 

 다형성 

: 동일타입, 실행결과가 다양한 객체를 이용할 수 있는 성질, 자식객체들이 다른형태의 특성을 갖는 객체로 이용가능

: 객체/ 클래스는 동일한 메소드명 사용함, 객체 부품화 가능, 자식타입은 부모타입으로 자동 타입변환

 

 추상화 

: 불필요한 부분 생략, 객체 속성 중 가장 중요한것에 중점을 두어 모델화 한 것

: 완전한 시스템 구축 전, 시스템과 유사한 모델을 만들어 여러 요인들을 테스트 가능함 

 > 과정추상화(전반적 흐름파악 설계)

 > 데이터추상화(속성/용도 정의하지 않고 구조를 대표하는 표현으로 대체)

 > 제어 추상화(이벤트 발생 절차와 방법 정의하지 않고 대표하는 표현으로 대체)