용's

[Chap 6] Object-Oriented Concepts 본문

Computer Science/Software Engineering

[Chap 6] Object-Oriented Concepts

TaeYOng's 2014. 12. 5. 17:28

6.1 Object-Oriented Concepts

- 이 세상의 모든 것이 객체(object)라는 사고방식

- 객체지향의 개념을 이해하기 위해서는 분석 모델의 Class 기반의 요소들을 잘 이해해야 한다.

- 객체지향의 핵심개념은 다음과 같다

.Classes & Objects

.Attributes & Operations

.Encapsulation(캡슐화) & instantiation

.Inheritance




6.1.1 Classes

- 객체 지향적인 사고는 Class의 정의와 함께 시작되었다.

- 한 객체의 정의에 대하여 속성들(attributes)과 동작들(operations)을 정의함.

- 어느 한 객체의 클래스가 한번 정의되면 그 클래스의 특정 인스턴스가 정의될 수 있다.

- Class는 Attribute들을 Operation들이 감싸고 있는 형태로 묘사되기도 한다.


- Encapsulation/Hiding

.객체는 데이터와 데이터를 다루기 위한 논리적인 프로시저(operation)들을 캡슐화(하나의 집약체로 요약?)한다.


- Class Hierarchy

.Class들 끼리는 A is B 와 같은 관계가 있을 때 계층적인 구조로 설계될 수 있다.


- Methods

.클래스 안에 캡슐화된 실행가능한 프로시저로, 클래스 내에 정의된 하나 이상의 데이터 속성들을 동작시키기 위해 설계되어진다

.Method는 메세지 패싱(message passing)를 통해 호출될 수 있다.



6.2 Object-Oriented Paradigm

- 데이터 구조와 행동들을 포함하는 여러 오브젝트들의 모음(collection)으로서 소프트웨어를 조직화하는 수단으로 O-O가 사용됨.


- 객체 지향을 패러다임으로서 다음과 같은 특징이 있음

.Identity

.Classification

.Abstractions

.Inheritance

.Polymorphism

.Persistence


- Identity

.모든 객체는 각각의 상태(state)와 행동(behavior)을 가지게 됨으로, 수많은 객체들 중에서도 서로 구별이 가능하다(identity)


- Classification

.똑같은 객체(object)라도 추상화 단계나 개발자의 관점에 따라 사람사람 마다 다르게 구별할 수 있다

.비슷한 state와 behaviro를 갖는 것들을 그룹화 해놓을 것이 Class이다

.각 객체는 Class의 인스턴트(instance)이고, 각 인스턴스는 각각의 자기 속성값을 가지고 있다 

.Class는 데이터와 행동(behavior)을 캡슐화하며, 객체의 자세한 구현사항을 숨긴다(Hiding)


- Abstraction

.Attribute와 Operation들을 추출하여 Class를만들고, 이 Class가그 해당되는 object를 추상화한다.

.각 객체의 추상화로 각기 다른 추상화 레벨을 가진다.


- Inheritance

.기존의 오브젝트의 성격(속성, 특징)들을 물려 받는 것.

.Single Inheritance   

자신의 super-class는 하나 (단순하지만 표현력이 떨어짐)

.Multiple Inheritance

자신의 super-class가 하나 이상(표현력은많이 좋아지나 단순하지않아 Management가 힘듦)


- Polymorphism

.같은 Object이지만 시간과 장소가 달라지면 다른 역할을 한다는 뜻


- Persistence

.Object가 Instanciation되어 한번 만들어 지면 더이상 필요로 하지 않을 떄 까지 계속 존재한다는 뜻

 



'Computer Science > Software Engineering' 카테고리의 다른 글

[Chap 8] Architecture Design  (0) 2014.12.13
[Chap 7] Design  (0) 2014.12.11
[Chap 5] Behavioral Modeling  (0) 2014.12.04
[Chap 4] Requirements Engineering  (0) 2014.10.22
[Chap 3] Software Process  (0) 2014.10.21
Comments