용's
[Chap 6] Object-Oriented Concepts 본문
[Chap 6] Object-Oriented Concepts
TaeYOng's 2014. 12. 5. 17:286.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 |