목차
Ⅰ. 개요
Ⅱ. 객체지향의 기본개념
1. 객체
2. 클래스
3. 상속
Ⅲ. 객체지향의 기원
Ⅳ. 객체지향의 특성
1. 자료 추상화
2. 상속
3. 다형
4. 동적 바인딩
Ⅴ. 객체지향의 설계방법
1. 객체 지향 소프트웨어 개발 모형
2. 문제의 정의
3. 객체 식별
4. 오퍼레이션 파악
5. 클래스 정의 및 오퍼레이션 구현
Ⅵ. 객체지향과 원격객체
1. remote*
2. rclass
3. rnew와 rdelete
Ⅶ. 객체지향과 캡슐화
Ⅷ. 객체지향과 클래스다이어그램
1. 연관(Association)
2. 속성(Attribute)
3. 연산(Operation)
4. 일반화(Generalization)
5. 제약 규칙(Constraint Rule)
참고문헌
Ⅱ. 객체지향의 기본개념
1. 객체
2. 클래스
3. 상속
Ⅲ. 객체지향의 기원
Ⅳ. 객체지향의 특성
1. 자료 추상화
2. 상속
3. 다형
4. 동적 바인딩
Ⅴ. 객체지향의 설계방법
1. 객체 지향 소프트웨어 개발 모형
2. 문제의 정의
3. 객체 식별
4. 오퍼레이션 파악
5. 클래스 정의 및 오퍼레이션 구현
Ⅵ. 객체지향과 원격객체
1. remote*
2. rclass
3. rnew와 rdelete
Ⅶ. 객체지향과 캡슐화
Ⅷ. 객체지향과 클래스다이어그램
1. 연관(Association)
2. 속성(Attribute)
3. 연산(Operation)
4. 일반화(Generalization)
5. 제약 규칙(Constraint Rule)
참고문헌
본문내용
서 1 word의 크기이지만, “remote*”로 선언된 원격 포인터 변수는 노드 식별자와 지역 메모리 주소로 구성되며 2 word의 크기를 가진다.
2. rclass
rclass는 원격 클래스(remote class)를 정의하는 예약어이다. 구문(syntax)은 보통의 지역 클래스를 선언하는 class와 동일하지만 한 가지 제약 조건이 있다. 그 제약 조건은 지역 포인터가 다른 객체에 공적으로 노출될 수가 없다는 점이다. 지역 포인터는 같은 노드에서만 유용한 정보이므로 이 제약은 반드시 있어야 하는 제약이라고 할 수 있다. 따라서 지역 포인터 타입을 가진 변수는, 공적(public) 멤버로 선언될 수 없고 공적 메소드의 인자로 선언될 수도 없다. 만약에 이 규칙대로 선언되지 않는다면 컴파일 시에 오류 메시지를 발생시킨다. 원격 포인터나 그 외의 데이터 타입은 모두 자유롭게 사용될 수 있다.
3. rnew와 rdelete
rnew와 rdelete는 원격 객체 생성, 소거에 관련된 예약어들이다. 이들은 각각 다른 노드에 원격 객체를 동적으로 할당, 해제하는 예약어로서 보통의 지역 객체에 사용되는 예약어인 new나 delete와 같은 방식으로 사용된다. 물론 rnew와 rdelete는 rclass로 정의된 원격 클래스에만 사용될 수 있으며, rnew 반환값은 remote* 타입의 포인터 변수가 된다. 다음은 rnew와 rdelete의 사용에 관한 보기이다.
Matrix (remote*) B = rnew Matrix;
rdelete B;
Ⅶ. 객체지향과 캡슐화
일반적으로 객체 지향에서의 객체는 데이타(어트리뷰트)와 오퍼레이션(행위)으로 구성되고, 객체를 사용하고 처리하는 방법은 메세지를 전달하는 것이다. 그리고 캡슐화는 데이타와 오퍼레이션을 하나로 묶은 것으로, 객체 내부에 내부 정보를 숨기는 것을 정보 은폐를 목적으로 하고 있다. 그러므로 객체를 사용하기 위해서, 개발자는 어떤 서비스와 오퍼레이션이 있는지 알아야 한다. 객체로 구성된 시스템은 모듈화의 개념으로 구성되고, 각 객체는 잘 정의된 인터페이스를 갖는다. 그러나 객체는 내부적으로 상호 독립적인 코드와 구조를 갖지 않는다. 이런 캡슐화의 이익은, 하나의 객체의 구현을 다른 객체의 변화 없이 수정할 수 있다는 것이다. 결과적으로 유지 보수 면에서 상당한 효과를 볼 수 있다. 그리고 캡슐화가 재사용성을 높이므로, 객체 기술이 상당히 성숙되면 어플리케이션은 객체들의 조립(assemble)을 통해 이루어 질 수 있을 것이다.
Ⅷ. 객체지향과 클래스다이어그램
클래스 다이어그램은 시스템을 구성하는 객체들의 타입들과 그들 간에 존재하는 다양한 정적 관계들을 기술한다. 정적인 관계에는 연관(association)과 하위타입(subtype)이 주로 사용된다. 연관이란 두 클래스가 관련이 있다는 것으로서 예를 들어 수강관리시스템에서 학생이 강좌를 신청할 수 있음을 의미한다. 하위타입이란 클래스 간에 상속을 받는다는 것으로서 예를 들어 학생이 등록사용자의 일종임을 의미한다. 또한 클래스 다이어그램은 클래스의 속성과 연산 및 객체들의 연결 방법에 적용되는 제약조건들을 기술한다.
1. 연관(Association)
연관은 클래스 간에 관계가 있음을 나타낸다. 수강관리시스템에서 학생이 강좌를 신청한다거나 강좌에 따른 일정이 존재한다는 등의 예를 들 수 있다.
연관에는 관계에 참여하는 객체의 수를 멀티플리시티로 표시한다.
2. 속성(Attribute)
클래스의 속성은 클래스가 어떤 요소를 가지고 있음을 의미한다.
UML에서는 visibility name: type = defaultValue와 같이 표기한다. 속성은 int나 real 같은 기본자료형일 수도 있고 string, date 등과 같은 작고 단순한 클래스일 수도 있다. 드물게는 크고 복잡한 클래스를 속성으로 가질 수도 있다.
3. 연산(Operation)
연산이란 클래스가 수행하는 처리로서 메소드라고도 한다.
UML에서는 visibility name (parameter-list) : return-type-expression { property-string }과 같이 표기한다. visibility에는+ (public), # (protected), (private)의 세종류가 있다.
4. 일반화(Generalization)
일반화는 공통된 속성 또는 연산을 가진 클래스들에서 공통 요소들을 추출하여 상위 클래스를 만들어내는 것을 의미한다. 학생, 교수 등의 클래스에서 등록사용자라는 클래스를 추출해내는 것과 같다. 이때 등록사용자에 대한 모든 사항은 학생에게도 똑같이 적용된다고 볼 수 있다. 공통 요소를 추출하는 것과 반대 방향으로 새로운 요소를 추가하여 하위클래스를 만들어내는 것은 특수화라고 한다.
명세 관점에서 보면 일반화란 하위타입의 인터페이스가 상위타입의 인터페이스로부터 모든 요소를 포함한다는 것을 의미한다. 구현 관점에서 보면 일반화는 프로그래밍 언어의 상속과 연관되어 있다. 하위클래스는 상위클래스의 모든 메소드와 속성을 상속받고 상속된 메소드를 재정의(override)할 수 있다.
5. 제약 규칙(Constraint Rule)
클래스 다이어그램에는 많은 제약사항을 기록한다. 연관, 속성, 일반화 등을 통해서 위와 같은 중요한 제약조건들을 규정할 수 있다.
그 외의 제약조건들은 중괄호 {} 사이에 기술한다. 특별한 문법은 정해져 있지 않으며 읽기 쉬운 자연어를 쓰든가 좀 더 명확한 논리적 기술 또는 단편적인 프로그램 코드를 사용해도 좋다.
참고문헌
김수동(1993), 객체지향 프로그래밍 1;기본 개념, 행정안전부
김진만 외 2명(2011), 클래스다이어그램의 레이아웃과 복잡도가 모델 이해도에 미치는 영향, 한국인터넷정보학회
김현철(2002), 객체지향 분산 가상 환경 상에서의 원격교육 시스템, 고려대학교
이순미(2004), 객체 지향 특성이 반영된 클래스의 분할 기법, 경인여자대학
이정열 외 2명(1994), 객체지향 설계 방법의 정량적 분석 및 평가, 한국정보처리학회
이상무(1993), 객체지향 프로그래밍에서 캡슐화와 상속성에 관한 연구, 인하대학교
2. rclass
rclass는 원격 클래스(remote class)를 정의하는 예약어이다. 구문(syntax)은 보통의 지역 클래스를 선언하는 class와 동일하지만 한 가지 제약 조건이 있다. 그 제약 조건은 지역 포인터가 다른 객체에 공적으로 노출될 수가 없다는 점이다. 지역 포인터는 같은 노드에서만 유용한 정보이므로 이 제약은 반드시 있어야 하는 제약이라고 할 수 있다. 따라서 지역 포인터 타입을 가진 변수는, 공적(public) 멤버로 선언될 수 없고 공적 메소드의 인자로 선언될 수도 없다. 만약에 이 규칙대로 선언되지 않는다면 컴파일 시에 오류 메시지를 발생시킨다. 원격 포인터나 그 외의 데이터 타입은 모두 자유롭게 사용될 수 있다.
3. rnew와 rdelete
rnew와 rdelete는 원격 객체 생성, 소거에 관련된 예약어들이다. 이들은 각각 다른 노드에 원격 객체를 동적으로 할당, 해제하는 예약어로서 보통의 지역 객체에 사용되는 예약어인 new나 delete와 같은 방식으로 사용된다. 물론 rnew와 rdelete는 rclass로 정의된 원격 클래스에만 사용될 수 있으며, rnew 반환값은 remote* 타입의 포인터 변수가 된다. 다음은 rnew와 rdelete의 사용에 관한 보기이다.
Matrix (remote*) B = rnew Matrix;
rdelete B;
Ⅶ. 객체지향과 캡슐화
일반적으로 객체 지향에서의 객체는 데이타(어트리뷰트)와 오퍼레이션(행위)으로 구성되고, 객체를 사용하고 처리하는 방법은 메세지를 전달하는 것이다. 그리고 캡슐화는 데이타와 오퍼레이션을 하나로 묶은 것으로, 객체 내부에 내부 정보를 숨기는 것을 정보 은폐를 목적으로 하고 있다. 그러므로 객체를 사용하기 위해서, 개발자는 어떤 서비스와 오퍼레이션이 있는지 알아야 한다. 객체로 구성된 시스템은 모듈화의 개념으로 구성되고, 각 객체는 잘 정의된 인터페이스를 갖는다. 그러나 객체는 내부적으로 상호 독립적인 코드와 구조를 갖지 않는다. 이런 캡슐화의 이익은, 하나의 객체의 구현을 다른 객체의 변화 없이 수정할 수 있다는 것이다. 결과적으로 유지 보수 면에서 상당한 효과를 볼 수 있다. 그리고 캡슐화가 재사용성을 높이므로, 객체 기술이 상당히 성숙되면 어플리케이션은 객체들의 조립(assemble)을 통해 이루어 질 수 있을 것이다.
Ⅷ. 객체지향과 클래스다이어그램
클래스 다이어그램은 시스템을 구성하는 객체들의 타입들과 그들 간에 존재하는 다양한 정적 관계들을 기술한다. 정적인 관계에는 연관(association)과 하위타입(subtype)이 주로 사용된다. 연관이란 두 클래스가 관련이 있다는 것으로서 예를 들어 수강관리시스템에서 학생이 강좌를 신청할 수 있음을 의미한다. 하위타입이란 클래스 간에 상속을 받는다는 것으로서 예를 들어 학생이 등록사용자의 일종임을 의미한다. 또한 클래스 다이어그램은 클래스의 속성과 연산 및 객체들의 연결 방법에 적용되는 제약조건들을 기술한다.
1. 연관(Association)
연관은 클래스 간에 관계가 있음을 나타낸다. 수강관리시스템에서 학생이 강좌를 신청한다거나 강좌에 따른 일정이 존재한다는 등의 예를 들 수 있다.
연관에는 관계에 참여하는 객체의 수를 멀티플리시티로 표시한다.
2. 속성(Attribute)
클래스의 속성은 클래스가 어떤 요소를 가지고 있음을 의미한다.
UML에서는 visibility name: type = defaultValue와 같이 표기한다. 속성은 int나 real 같은 기본자료형일 수도 있고 string, date 등과 같은 작고 단순한 클래스일 수도 있다. 드물게는 크고 복잡한 클래스를 속성으로 가질 수도 있다.
3. 연산(Operation)
연산이란 클래스가 수행하는 처리로서 메소드라고도 한다.
UML에서는 visibility name (parameter-list) : return-type-expression { property-string }과 같이 표기한다. visibility에는+ (public), # (protected), (private)의 세종류가 있다.
4. 일반화(Generalization)
일반화는 공통된 속성 또는 연산을 가진 클래스들에서 공통 요소들을 추출하여 상위 클래스를 만들어내는 것을 의미한다. 학생, 교수 등의 클래스에서 등록사용자라는 클래스를 추출해내는 것과 같다. 이때 등록사용자에 대한 모든 사항은 학생에게도 똑같이 적용된다고 볼 수 있다. 공통 요소를 추출하는 것과 반대 방향으로 새로운 요소를 추가하여 하위클래스를 만들어내는 것은 특수화라고 한다.
명세 관점에서 보면 일반화란 하위타입의 인터페이스가 상위타입의 인터페이스로부터 모든 요소를 포함한다는 것을 의미한다. 구현 관점에서 보면 일반화는 프로그래밍 언어의 상속과 연관되어 있다. 하위클래스는 상위클래스의 모든 메소드와 속성을 상속받고 상속된 메소드를 재정의(override)할 수 있다.
5. 제약 규칙(Constraint Rule)
클래스 다이어그램에는 많은 제약사항을 기록한다. 연관, 속성, 일반화 등을 통해서 위와 같은 중요한 제약조건들을 규정할 수 있다.
그 외의 제약조건들은 중괄호 {} 사이에 기술한다. 특별한 문법은 정해져 있지 않으며 읽기 쉬운 자연어를 쓰든가 좀 더 명확한 논리적 기술 또는 단편적인 프로그램 코드를 사용해도 좋다.
참고문헌
김수동(1993), 객체지향 프로그래밍 1;기본 개념, 행정안전부
김진만 외 2명(2011), 클래스다이어그램의 레이아웃과 복잡도가 모델 이해도에 미치는 영향, 한국인터넷정보학회
김현철(2002), 객체지향 분산 가상 환경 상에서의 원격교육 시스템, 고려대학교
이순미(2004), 객체 지향 특성이 반영된 클래스의 분할 기법, 경인여자대학
이정열 외 2명(1994), 객체지향 설계 방법의 정량적 분석 및 평가, 한국정보처리학회
이상무(1993), 객체지향 프로그래밍에서 캡슐화와 상속성에 관한 연구, 인하대학교
추천자료
[MIS]경영정보시스템(MIS)의 발전과정, 경영정보시스템(MIS)의 기능, 경영정보시스템(MIS)의 ...
[정보시스템][농업정보시스템][재정정보시스템][공공정보시스템]정보시스템의 기준, 정보시스...
[지리정보시스템][GIS][지리정보활용]지리정보시스템(GIS)의 정의, 발전과정, 지리정보시스템...
[기업정보화][기업정보시스템][중소기업 정보시스템][기업 인사정보시스템][기업정보시스템 ...
[실시간][시스템][분할][위성항법보정][원격강의]실시간 시스템 설계를 위한 HW/SW 분할시스...
[위치추적][위치추적시스템][위치기반서비스]위치추적(위치추적시스템) 특징과 화물차의 위치...
[설계]평가시스템 설계, DSP응용 ASIP합성시스템 설계, 교량계측 네트워크시스템 설계, 인터...
[약물전달시스템(DDS)][체내흡수][나노전달체]약물전달시스템(DDS)의 개념, 약물전달시스템(D...
[결재시스템][전자결재시스템][쌍방향주문결재시스템][실천과제][전자상거래]결재시스템의 현...
인터넷 정보검색시스템과 검색엔진, 인터넷 정보검색시스템과 정보검색, 인터넷 정보검색시스...
[문서시스템]문서시스템과 전자문서, 문서시스템과 웹문서연계시스템, 문서시스템과 단어검색...
[자동차생산 시스템]자동차생산과 시스템의 전개과정, 자동차생산과 포드시스템, 자동차생산...
[기업 경영시스템][호텔기업 경영시스템][한국기업 경영시스템][미국기업 경영시스템][중국기...
[지식경영시스템][KMS][지식경영시스템 선행연구][지식경영시스템 정의]지식경영시스템(KMS)...
소개글