클래스명

Download Report

Transcript 클래스명

객체와 클래스다이어그램
B조
20101152 권아영
20102846 유윤미
20081627 김은승
20081009 강대현
20073356 승 욱
목
•
•
•
•
•
•
•
차
클래스 다이어그램의 정의
클래스의 구성요소
객체 다이어그램
객체 다이어그램의 표현
객체와 클래스의 관계
클래스 추출
클래스 간의 관계
클래스의 구성요소
속성(Attribute)
클래스의 구성요소
※ 매서드 종류와 기호
객체 다이어그램
• 클래스 다이어그램과 유사한 형태이며 실
행 중 특정 시점에서 객체들 간의 관련성
을 보여준다.
• 객체 다이어그램은 클래스 다이어그램에
비해 단순하고 표현력도 제한적이다.
객체 다이어그램의 표현
인스턴스명 : 클래스명
: 클래스명
인스턴스명
객체 다이어그램에서는 인스턴스명과 클래스명의 양쪽
모두를 기술한 그림(왼쪽)을 생략할 수 있다. 인스턴스명
을 생략하는 경우의 기술(중간),클래스명 을 생략하는 경
우의 기술(오른쪽)
객체와 클래스의 관계
객체와 클래스의 관계
객체와 클래스의 관계
클래스 추출
※명세서에서 클래스 추출하기
•
•
•
•
•
명세서상에서 클래스나 속성 또는 매서드의 추출은
명사:클래스나 속성(Attribute)
동사:메서드
어떤 것이 클래스가 되고 어떤 것이 속성이 되느냐는
설계자가 어떻게 구분해서 사용하는게 더 나은지 판단하
여 ‘클래스’와 ‘속성’으로 추출
클래스 추출
※ 명세서에서 클래스 추출하기
• 명세서를 통한 클래스 추출 : 배구선수, 점수, 세트, 경기
• 명세서를 통한 객체 추출 : 리베로, 센터, 후위, 공격수
• 명세서를 통한 메서드 추출 : 토스, 스파이크,리시브, 이긴
다, 진다, 올라간다
클래스 추출
• 배구에 대한 클래스 다이어그램
Forward
VollyBallProgramming
<<abstract>>
Game
-Name:String
-position_Code:Integer
Revero
+win:void
+lose:void
+tos:void
+spike:void
+receive:void
+serve:void
1
Center
1..*
Set
Point
-set:set
+pointup:void
-set:Integer
0..25
0..3
+win:void
+lose:void
클래스간의 관계
※ 연관관계
• 연관관계는 클래스가 서로 개념적으로 연
결된 선을 의미
클래스간의 관계
※ 연관관계
• ER-다이어그램 데이터모델링의 영역까지
도 충분히 모델링이 가능
• 연관관계에 대한 내용은 DB설계의 ER-D
의 내용과 연관 지어 생각하면 쉽다.
클래스간의 관계
※ 연관관계
팀과 선수의 연관관계
선수와 구단의 연관관계
클래스간의 관계
※ 연관관계
사원과 회사 사이의 연관관계
학생, 교사, 학교 사이의 연간관계
클래스간의 관계
Forward
※ 연관관계
1..3
Team
1
1
Defender
1..5
1
1..1
Keeper
하나의 클래스와 여러 클래스와의 연관관계
클래스간의 관계
※ 연관관계의 다중성
• 다중성
- 두 클래스의 연관관계에서 실제로 연관을
가지는 객체의 수를 나타낸 것
클래스간의 관계
※ 연관관계의 다중성표현
클래스간의 관계
• ※ 연관관계-다중성
10..20
1
클래스간의 관계
※ 연관관계의 다중성
선수와 팀의 다중성
회사와 사원의 다중성 관계
클래스간의 관계
※ 집합과 복합관계
• 집합관계와 복합관계 모두
연관관계에 포함되는 개념
클래스간의 관계
• 집합관계-하나의 객체에 여러 개의 독립적
인 객체들이 구성되는 경우
클래스간의 관계
• 복합관계-더 강한 관계로 구성
클래스간의 관계
※자동차에서 집합관계와 복합관계
•
•
•
•
•
집합관계
차와 엔진 바퀴,차체
복합관계
엔진은 카뷰레터, 피스톤, 플러그로 구성
엔진의 구성요소는 더 강한관계
클래스간의 관계
※ 자동차에서 집합관계와 복합관계
클래스간의 관계
※ 집합과 복합 예제
식사 : 밥, 찌개, 김치, 나물의 집합관계
클래스간의 관계
※ 집합과 복합 예제
컴퓨터와 모니터, 마우스, 키보드, 스피커(집합관계), 본체와 CPU, ROM, RAM(복합관계)
클래스간의 관계
※ 일반화 관계
• 일반화관계는 하나의 종류를 의미
• a_kind_of 의 관계
• 일반화관계는 다른의미로 상속관계라고도
한다.
클래스간의 관계
※ 일반화관계
클래스간의 관계
※ 일반화 관계
차와 버스, 트럭, 택시
클래스간의 관계
※ 일반화 관계
학생과 초등학생, 중학생, 고등학생, 대학생
클래스간의 관계
※ 일반화 관계
사원과 정사원, 계약사원, 아르바이트생
클래스간의 관계
• 사람과 교수, 학생 간의 일반화와 연관관계
클래스 관계
• 자동차와 자동차 제품 간 일반화 및 연관관계
클래스간의 관계
※ 의존관계
B클래스가 변경되었을 때 A클래스가 수정해야 되는 경우
A --------------- B
• 수업 → 교수
• 전화기 → 버튼
• 자동차 → 기어
클래스간의 관계
※ 의존관계
클래스간의 관계
※ 추상클래스
• 이탤릭체로 클래스명을 표시
• 스테레오타입을 이용 <<abstract>>로 표기
※ 인터페이스
• 스테레오타입을 이용<<Interface>>로 표기
• 이텔릭체로 인터페이스명 표시
클래스간의 관계
※ 추상클래스와 인터페이스
클래스간의 관계
※ 실체화 관계
• 추상클래스나 인터페이스를 상속받아
• 자식클래스가 추상메서드를 구현할때 사
용
• 상속[일반화]관계 심볼로 그리면 녹색으로
변하며 코드가 Implement로 된다. 즉 실체
화 관계이다.
클래스간의 관계
※ 실체화 관계
참고문헌
• UML입문
친근한 소재로 배우는 객체지향언어
-한빛미디어
감사합니다.