객체지향의 개요
- 객체(object) 개념을 사용하여 실세계를 표현 및 모델링하며
- 객체와 객체들이 모여 프로그램을 구성
1. 객체란?
1) 객체
2) 속성(attribute)
3)메소드(method, 함수, 서비스, 동작)
4) 클래스(class)
5) 인스턴스(instance)
|
2. 객체 지향의 특징
주체성 |
- 다른 객체들과 식별할 수 있는 속성
다형성 |
- 하나의 메시지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 의미
- 하나의 메시지를 가지고, 클래스가 어떻게 처리하느냐에 따라서 기능을 여러가지를 가질 수 있음
분류성 |
- 동일 속성과 행위를 갖는 객체들을 하나의 클래스로 분류하는 속성
상속성(Inheritance) |
- 이미 정의된 상위 클래스의 메소드를 비롯한 모든 속성을 하위 클래스가 물려받을 수 있는 것
- 상속받은 속성을 재사용할 수 있음
추상화(abstraction) |
- 불필요한 부분을 생략하고
- 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화시키는 것으로
- 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
캡슐화(Encapsulation) |
- 데이터와 데이터를 조작하는 연산들을 함께 묶어 하나의 모듈내에서 결합되도록 하는 것으로
- 객체의 자료가 변조되는 것을 막으며
- 그 객체의 사용자들에게 내부적인 구현의 세부적인 내용들을 은폐시키는 것
- 객체를 사용하고 싶다면, 객체를 생성한 인스턴스화가 필요
- 인터페이스가 단순화
- 소프트웨어의 재사용성이 높아짐
- 변경 발생 시, 오류의 파급 효과가 적음
정보은폐(information hiding=정보은닉) |
- 캡슐화된 정보를 외부에 감추는 것
- 외부에서는 해당 정보를 확인 할 수 없음
- 허가된 사용자만 정보를 볼 수 있음
객체지향 방법론의 종류
객체지향 분석 기법(3가지)
① 럼바우(Rumbaugh)객체 지향 분석기법
- 객체 모델링 - 동적 모델링 - 기능 모델링
② 코드(Coad)와 요오돈(yourdon)기법
④ Booch 기법
1. 럼바우(Rumbaugh)객체 지향 분석기법 ★ ★ ★ ★ ★
[ 개요 ] 객체모델링 기법(OMT)이라고 하며 그래픽 표기법을 이용하여 모든 소프트웨어 구성 요소들의 객체를 모델링 [ 분석절차 ] 객체모델링 - 동적 모델링 - 기능 모델링 ( ★ ★ ★ ★ ★ ) |
1) 객체모델링(Object Modeling) = 정보 모델링
[ 의미 ]
- 현실세계 영역으로부터 시스템에서 요구되는 객체와 클래스를 찾아, 그들간의 연관성, 집단화, 일반화 중심으로 규명하여
- 사용되는 도식화 그림은 ‘E-R 다이어그램’을 나타냄
[ 모델링 순서 ]
- ① 객체와 클래스를 식별
- ② 클래스에 대한 자료사전을 작성
- ③ 클래스간의 관계를 정의한다.
- ④ 객체 속성 및 연결관계를 정의한다.
- ⑤ 클래스를 계층화하고 모듈로 정의한다
- ⑥ 생성된 모형을 반복 검증
2) 동적모델링(Dynamic Modeling)
[ 의미 ]
- 시간의 흐름에 따라 변하는 객체들 사이의 제어 흐름, 상호 작용, 연산 순서 등의 동적인 행위를
- ‘상태 다이어그램(상태도)’으로 나타냄
[ 모델링 순서 ]
- ① 사건의 상호작용 순서에 대한 시나리오 작성
- ② 사건 시나리오 역할과 시간에 따라 표기한 후 사건 추적도를 작성
- ③ 사건 추적도를 사건 발생자의 관계로 설명하는 사건 흐름도를 작성
- ④ 사건과 상태를 연결시킨 상태도 작성
3) 기능 모델링(Function Modeling)
[ 의미 ]
- 다수 프로세스 간의 데이터 흐름을 중심으로 처리 과정을
- ‘데이터 흐름도(DFD, 자료 흐름도)’로 나타냄
[ 모델링 순서 ]
- ① 외부와 시스템간의 입출력 자료를 정의
- ② 자료흐름도를 상세화한다.
- ③ 프로세스 기능에 대한 정의를 기능 명세서로 작성
- ④ 제약조건을 파악
- ⑤ 최적화 기준을 명세화
<참고>
데이터 흐름도
[ 의미 ]
- 시간이 경과함에 따라 자료가 흐르는 관점에 맞게 처리되는 작업 절차를 그린 자료의 흐름도
- 분석 단계에서 사용
[ 특징 ]
- 시스템에 대한 정보 흐름이 표현됨
- 세분화가 필요함
- 제어의 흐름보다 데이터의 흐름을 중요시함
[ 데이터 흐름도의 기호 ]
- 데이터 입,출력에 대한 흐름
2. 코드(Coad)와 요오돈(yourdon)기법
- 분석 기법
- E-R다이어그램을 사용하여 개체(ENTITY)의 활동들을 데이터 모델링하는데 초점을 둠
- 설계 기법
- 분석 사항을 하향식 방법으로 설계에 접근하여 프로토타입으로 개발하는 객체지향 설계기법으로
- 문제영역요소, 사람과 상호작용요소, 작업관리 요소, 데이터 관리 요소로 구성
3. Booch 기법
- 1991년 Booch에 의해 발표된 객체지향 설계 기법
- 설계단계에 중점을 두어 클래스 및 객체의 식별과 관계를 강조
[ 설계 단계에 중점 ] 정적 모델링
|
- 데이터흐름도를 사용해서 객체를 분해하고 객체들 간의 인터페이스를 찾아 ADA 프로그램으로 변환시키는 기법
- 설계를 위한 문서화 기법을 강조한 기법으로, 분석단계와 구현의 세부 사항에 취약 Booch 기법
'소프트웨어' 카테고리의 다른 글
[소프트웨어] 디자인 패턴 개요 및 종류 (0) | 2024.01.15 |
---|---|
[소프트웨어] 모듈의 독립성 평가, 코드 종류 (1) | 2024.01.15 |
[소프트웨어] 소프트웨어 아키텍처, 아키텍처 패턴 (0) | 2024.01.15 |
[소프트웨어] 요구사항 분석, UI 프로토타입 (0) | 2024.01.15 |
[소프트웨어] UI의 특징, UI 설계 도구, UI 요구사항 확인 (0) | 2024.01.15 |