반응형
-
객체의 이해
-
객체의 개념
- 실세계에서 어떤 구체적 의미를 구성하는 하나의 실체 단위로 특정 사물 및 개념이며 클래스(범주)의 인스턴스
- 필요로 하는 데이터와 그 위에 수행되는 함수들을 가진 작은 소프트웨어 모듈
- 데이터는 객체의 상태를 저장하는데 사용되고, 함수는 그 객체가 수행할 수 있는 기능을 정의
-
객체의 특성
- 객체는 속성과 행동을 가지고 있으며, 객체의 행동은 자신이 수행하는 연산(Operation)으로 구성됨
- 객체는 상태를 유지할 수 있어야 하며 기능을 가져야 함
-
객체는 다른 객체와 구별할 수 있는 식별자를 가져야 함
-
-
객체 지향의 이해
-
객체 지향의 의미객체(예를 들어 "학생","교수","지도' 등)의 구체적 의미를 구성하는 각각의 실체 단위를 정의하고, 그 관계를 파악하는데 주의를 기울이는 작업 방법을 의미
-
기존의 시각
- 하나의 프로그램은 여러 개의 데이터와 그 위에 수행되는 함수들의 집합
- 상호 연관된 데이터와 함수들이 별도의 독립된 정보인 것처럼 취급
-
객체 지향적 시각
- 하나의 프로그램은 여러 개의 객체들로 구성
- 각 객체들은 소수의 데이터와 함수들로 구성
-
-
객체 지향의 등장 배경
- 전통적 방법론의 실 세계 모델링의 어려움
- 소프트웨어 재사용의 어려움
- 소프트웨어의 대형화, 복잡화로 인한 소프트웨어의 위기
-
객체 지향의 특징
- 업무 영역을 상호작용하는 객체들의 집단으로 이해하고 시스템을 구축
- 데이터와 기능을 캡슐화하고 객체간 상호작용은 메시지를 통해 이루어짐
- 안정된 모델로서 중요한 측면만 모델링 하므로 분석의 초점이 명확함
- 하나의 시스템을 여러 객체를 모아 구성하는 방법으로, 컴포넌트 기반의 기초가 됨
- 객체 지향 기법의 장,단점
-
장점 | 단점 |
|
|
-
객체 지향의 원리
-
객체 지향의 3요소
- 객체(Object) : 현실 세계에서 개념적으로 이해되고 표현될 수 DT는 모든 대상
- 클래스(Class) : 객체를 구체적으로 정의하는 형식으로, 속성과 메소드로 구성
- 메시지(Message) : 객체들간의 상호작용을 위한 것으로, 공개된 메소드
-
객체 지향의 근본 원라
- 객체 지향에서 클래스는 어떤 범주, 즉 특정 사물 및 개념을 나누는 역할을 함
- 클래스는 객체를 생성하는 템플릿으로 다른 인스턴스(객체)를 새로 만드는데 사용
- 객체 지향의 목적이 실세계의 일부 혹은 전체를 본뜬 것이므로 속성과 행동들이 좀더 많이 반영된 클래스일수록 실세계에 가까운 모델이 됨
-
-
객체 지향의 기본 개념
- 추상화(Abstraction)
- 캡슐화(Encapsulation)
- 상속성(Inheritance)
-
다형성(Polymorphism)
- 수평적(Overloading) : 동일한 상위 클래스에서 상속받지 않고 메소드명만 같은 다형성
- 수직적(Override) : 상속관계에서의 다형성으로, 다른 시그니처(서명)를 사용할 경우에는 다른 메소드로 간주
- 메시지 전달
-
관계성(Relationship)객체와 클래스 사이 또는 클래스들 사이의 상호 참조하는 관계를 표현하는 방식
관계성의 종류 | 의미 | 특성 |
is member of | 연관성(Association) | 클래스와 객체의 참조 및 이용관계 "객체 A는 클래스 B에 속한다." |
is part of | 집단화(Aggregation) | 클래스들 간의 구조적인 집약 관계 "클래스 A는 클래스 B와 클래스 c로 구성된다." |
is a | 일반화(Generalization) 특수화(Specialization) |
클래스들 간의 개념적인 포함 관계 "자식 클래스 A는 부모 클래스 B의 일종이다." |
-
객체 지향 기법의 발전 방향
-
객체 지향 기술의 발전
-
객체 지향 기법의 동향
- 인간의 사고 방식과 유사하고 개발 접근이 쉬워 인공 지능, 신경망 같은 차세대 컴퓨터 산업에 응용
- CBD의 한 경로인 컴포넌트 개발에 객체 지향 분석, 설계, 구현 기법이 사용되고 있음
- 소비자들도 개발(Build) 위주의 소프트웨어가 아닌 구매(Buy) 위주의 소프트웨어 이용 패턴을 가질 수 있음
-
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
UML(Unified Modeling Language) (0) | 2011.08.19 |
---|---|
UML Diagram (0) | 2011.08.19 |
소프트웨어 품질의 개요 (0) | 2011.01.03 |
소프트웨어 품질 보증 (0) | 2011.01.03 |
소프트웨어 품질 표준 (0) | 2011.01.03 |