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입문 친근한 소재로 배우는 객체지향언어 -한빛미디어 감사합니다.