2.1 객체지향 개념 메시지

Download Report

Transcript 2.1 객체지향 개념 메시지

Company
LOGO
UML과 객체지향 모델링
컴퓨터 멀티미디어 공학
200511677 손정일
Contents
1
UML의 개요
01_UML의 개념
02_UML의 특징
03_UML의 역사
04_UML의 용도
2
객체지향 모델링
01_객체지향 개념
02_모델링의 개념
03_모델링 방법
1.1 UML의 개념
UML의 개념
 통합 모델링 언어
 1994년 소프트웨어 방법론의 선구자인 그래디 부치,
제임스 럼바, 이바 야콥슨에 의해 연구
 1997년 객체관리그룹에서 여러 표기법을 통합하여
UML을 발표
 현재 UML은 객체지향 시스템 개발 분야에서 가장 우
수한 모델링 언어로 인식
1.2 UML의 특징
UML은 가시화 언어이다.
UML은 명세화 언어이다.
UML은 구축 언어이다.
UML은 문서화 언어이다.
1.3 UML의 역사
시기
내용
1980년대 말
~ 1990년대 초
50여 가지의 다양한 표현 기법과 방법론 존재
1995년
부치 방법론과 럼바의 OMT 방법론 통합
(OOPSLA’95에 발표)
1996년
야콥슨의 OOSE 방법론 추가
UML 0.9 정의
1997년
1월 : UML 1.0 발표(Microsoft, Oracle, IBM, HP 참여)
9월 : UML 1.1 발표(OMG에 표준화안 상장)
11월 : OMG 표준 인증
1999년
UML 1.3 발표
2001년
UML 1.4 발표
2003년
UML 2.0 승인
[표 1-1] UML의 역사
1.4 UML의 용도
 성공적으로 시스템을 만들기 위해서 객체지향적인 분석
과 설계를 위한 표준으로 인정받는 모델링 언어인 UML
이 필요
시스템
설명 시스템의 유형에 관계없이 시스템
 종류
UML은 구축할
적용 예
정보 시스템
사용자로부터 정보를 입수, 가공,
저장하고
적절한관계없이
양식으로 적용
사용자
 UML은 개발
방법론에
에게 출력하는 작업을 한다.
기술적 시스템
기계 등을 제어하는 시스템이다.
각종 공공기관, 금융기관,
회사에서 해당 기관 고유
의 업무 지원
통신 장비, 군 장비, 공장
 UML은 프로그래밍 언어와 관계없이 적용 의 기계
내장 시스템
하드웨어에 내장되어 수행되는 시
 UML은 CASE
도구에 관계없이 적용
스템이다.
[표 1-2] 시스템 유형
휴대전화기, 세탁기, TV,
전기밥솥
02. 객체지향 모델링
객체지향 방법론에 의한 소프트웨어 개발이 대세
 모든 문제점과 다양한 규모 및 복잡도를 갖는 대규모
시스템을 구축하는데 가치가 있다고 검증되었기 때문
객체지향 시스템을 가시화하고, 명세화하고, 문서
화 하는 것이 UML의 목적이다.
2.1 객체지향 개념
메시지
수강신청
도서출납
도서출납
메시지
메시지
학생데이터
성적조회
(a) 구조적 방법
수강신청
출석조회
학생데이터
출석조회
성적조회
메시지
(b) 객체지향 방법
[그림1-1] 구조적 방법과 객체지향 방법
2.1 객체지향 개념
객체지향 기본 개념
객체
클래스
메시지
2.1 객체지향 개념
객체
객체 이름
Student
자료
자료
(속성+값)
Name: Lee
Sex: Man
Subject : Computer
Class : 1
오퍼레이션
오퍼레이션
[그림1-2] 객체의 구조
Course_application();
Exam_example()
Results_inquiry();
[그림1-3] 학생에 대한 객체의 예
2.1 객체지향 개념
클래스
Person
Lee
Park
Sex : boolean
Age : int
Address : string
Tel : string
Sex : 1
Age : 20
Address : Seoul
Tel : 234-1236
Sex : 2
Age : 21
Address : Busan
Tel : 567-1234
eat();
play();
study();
eat();
play();
study();
eat();
play();
study();
[그림1-5] 클래스와 객체
2.1 객체지향 개념
메시지
송신 객체
오퍼레이션(매개변수..)
[그림1-6] 메시지 전달
수신 객체
2.1 객체지향 개념
객체지향 특성
• 추상화(Abstraction)
• 캡슐화(Encapsulation)
• 상속(Inheritance)
• 다형성(Polymorphism)
2.1 객체지향 개념
추상화
사람
추상화
자동차
실체화
컴퓨터
[그림1-7] 추상화와 실체화
Class Person{
string name;
bool sex;
public play(){
}
}
Class car{
string speed;
}
Class computer{
string cpu;
}
2.1 객체지향 개념
캡슐화
자료
오퍼레이션
오퍼레이션
자료
공개오퍼레이션
오퍼레이션
자료
오퍼레이션
[그림1-8] 캡슐화
2.1 객체지향 개념
상속
일반화
자동차
트럭
승용차
소형승용차
스포츠카
대형승용차
특수화
[그림1-9] 상속
2.1 객체지향 개념
다형성
다각형
면수
도형
그리기()
삭제하기()
좌표
원
그리기()
삭제하기()
반지름
그리기()
삭제하기()
[그림1-11] 다형성
2.2 모델링의 개념
모델링
프로그래밍
목적
구축할 시스템의 모습 정의
시스템의 실제 구현
세부 수행 활동
요구사항 정의, 분석, 설계
소스 코드 편집, 컴파일, 시험,
디버깅
결과물
모델
소스 코드를 포함한
구현 시스템
표기법
모델링 언어
(UML, ERD, DFD)
프로그래밍 언어
(Java, C++)
지원도구
CASE 도구
(Rose, Together)
개발 도구
(Jbuilder, Visual Studio, .Net)
[표 1-3] 모델링과 프로그래밍
2.3 모델링 방법
부치 방법론
 설계 중심의 방법론으로서 시스템을 몇 개의 뷰(View)
로 분석할 수 있다고 봄.
뷰를 모델 다이어그램으로 나타냄.
 거시적 개발 프로세스와 미시적 개발 프로세스를 모두
포함하고 단계적 접근과 자동화 도구를 지원.
 객체지향 방법론에 대한 광범위한 이론적 배경을 제시
[그림1-12] 부치 방법론
2.3 모델링 방법
야콥슨의 OOSE
 OOSE는 유스케이스를 강조한 방법론
 유스케이스
• 외부 행위자와 상호작용하는 시스템의 요구사항을 정의
• 개발, 테스트, 검증 단계에서 사용 됨
 OOSE는 방법론이 복잡하여 초보자에게는 어려움이
있지만, 큰 규모의 시스템 개발에 효율적이다.
[그림1-13] OOSE 심볼
[그림1-14] 야콥슨의 OOSE
2.3 모델링 방법
럼바의 OMT
 OMT 방법론에서는 하나의 시스템을 기술하기 위해 객체
모델(Object Model), 동적 모델(Dynamic Model), 기능 모
델(Functional Model) 3가지를 사용한다.
 OMT는 시스템 분석에서 3가지 모델을 이용하여 시스템이
요구하는 객체를 완벽하게 기술한다.
• 객체 모델 : 시스템에서 필요한 모델을 찾아내고 객체의
속성과 객체들 사이의 관계를 규명
• 동적 모델 : 객체 모델에서 나타난 객체들의 행위와 상
태를 포함하는 생명주기를 나타낸다.
• 기능 모델 : 각 객체의 변화로 인해 다른 상태로 전이가
되었을 때 수행되는 동작들을 기술
2.3 모델링 방법
UML
PLUS
부치 방법론
야콥슨의
OOSE
럼바의
OMT
Company
LOGO