이야기박스

정보처리기사 - 1과목 객체지향, 설계 정리 본문

Other Fields/정보처리기사

정보처리기사 - 1과목 객체지향, 설계 정리

박스님 2017. 10. 13. 13:08
반응형

§ 객체지향 기법

: 현실 세계의 개체를 하나의 객체로 만들어 조립해서 작성할 수 있도록 하는 기법


- 구조적 기법의 문제점 해결책

- 재사용 및 확장성

- 복잡한 구조를 단계적이고 계층적으로

- 사용자와 개발자의 이해가 쉬움

- 객체, 클래스, 메시지


- 객체 (Object)

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

--> 상태와 행위를 가짐

--> 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 수행


a. 데이터 

: 객체가 가지고 있는 정보

--> 속성, 상태, 분류 등

--> 속성, 상태, 변수, 상수, 자료 구조 라고도 불림


b. 함수

: 객체가 수행하는 기능

--> 데이터를 처리하는 알고리즘

--> 메소드, 서비스, 동작, 연산 이라고도 불림

--> 구조적 기법의 함수, 프로시저에 해당하는 기능



- 클래스 (Class)

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

--> 객체의 일반적인 타입

--> 객체의 속성와 연산을 정의하는 틀

--> 클래스에 속한 각각의 객체 = 인스턴스

--> 클래스로부터 새로운 객체 생성 = 인스턴스화

--> 동일 클래스에 속한 각각의 객체들은 공통된 속성과 행위를 가짐

--> 최상위 클래스 = 상위 클래스를 갖지 않는 유일한 클래스

--> 슈퍼 클래스 = 특정 클래스의 상위 클래스

--> 서브 클래스 = 특정 클래스의 자식 클래스


- 메시지 (Message)

: 객체들 간에 상호작용을 하는 데 사용되는 수단

--> 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항

--> 구성 요소 = 객체의 이름, 메소드 이름, 메소드 인자

--> 메시지를 받은 수신 객체는 요구된 메소드를 수행 후 결과를 반환




§ 객체지향 기법의 기본 원칙

- 캡슐화

: 데이터와 함수를 하나로 묶는 것

--> 객체의 세부 내용이 외부에 은폐, 변경이 발생할 때 오류의 파급 효과가 적다.

--> 재사용이 용이

--> 인터페이스가 단순해지고 객체간 결합도가 낮아짐


- 정보 은닉

: 다른 객체에게 자신의 정보를 숨기고 자신만의 연산만을 통하여 접근

--> 각 객체의 수정이 다른 객체에게 주는 영향을 최소화

--> 유지보수와 소프트웨어 확장 시 오류 최소화


- 추상화

: 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점두어 개략하는 것

--> 모델화

--> 최소의 비용으로 실제 상황에 대처 가능

--> 시스템의 구조 및 구성을 가시적으로 볼 수 있음


- 상속성

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

--> 새로운 속성과 연산 첨가 가능

--> 재사용을 증대

--> 다중 상속성 = 두 개 이상의 상위 클래스로부터 상속 받는 것


- 다형성

: 메시지에 의해 객체가 연산을 수행할 때, 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답하는 것

--> 동일한 메소드명으로 같은 의미의 응답

--> 정수 + , 문자열 + 생각



§ 생명 주기

: 계획 및 분석

--> 설계

--> 구현

--> 테스트 및 검증


- 분석 ( OOA ; Object Oriented Analysis )

: 모든 클래스간의 관계 등을 정의하여 모델링하는 것


-  설계 ( OOD ; Object Oriented Design )

: OOA를 사용해 설계로 변환

--> 시스템 설계, 객체 설계

--> 과정 = 문제 정의 -> 요구 명세화 -> 객체 연산자 정의 -> 객체 인터페이스 결정 -> 객체 구현


- 구현 ( OOP ; Object Oriented Programing )

: 새로운 개념의 모듈 단위, 즉 객체라는 단위를 중심으로 하여 프로그램 개발

--> 언어 구분

a. 객체 기반 언어 = Ada, Actor ~ 객체의 개념만 지원

b. 클래스 기반 언어 = Clu ~ 클래스 개념만 지원

c. 객체 지향성 언어 = c++, java, object c ~ 객체, 클래스, 상속의 개념을 모두 지원


- 테스트

a. 클래스 테스트 : 캡슐화된 클래스나 객체 검사

b. 통합 테스트 : 스레드 기반 테스트, 사용 기반 테스트

c. 확인 테스트 : 만족 여부

d. 시스템 테스트 : 올바른 기능 수행하는지



§ 아키텍처 스타일

- IEEE 1471

: 아키텍처가 표현해야 하는 요소와 내용, 관계를 규정하는 국제 표준


- 저장소 구조

: 중앙자료구조와 독립된 컴포넌트로 구성

--> 큰 데이터의 이동 및 공유에 적합

--> 컴포넌트간의 통신은 이뤄지지 않음


- MVC 구조

: Model, View, Controller

--> 유저 인터페이스와 비지니스 로직들을 서로 분리하여 개발하는 방법


- Client / Server 구조

: 클라이언트와 서버로 나눈 아키텍처

--> 일대다 관계

--> 서버는 분산 또는 하나의 서버


- 계층 구조

: 계층적으로 조직화 가능

--> 각 계층이 특정 측면을 전문적으로 다룸

--> 응집력 있는 설계 가능

--> OSI 7계층이 대표적


- 파이프 필터 구조

: 데이터의 흐름을 점진적으로 처리하는 시스템

--> 데이터는 인접 필터 사이의 파이프를 통해 전달되는 형태

--> 각 필터는 상호 독립적

--> 독립적이기 때문에 재사용성 가짐

--> 응답성이나 데드락과 같은 특수한 분석 지원

반응형