예 - 체스 말(ChessPiece)의 클래스 다이어그램

Download Report

Transcript 예 - 체스 말(ChessPiece)의 클래스 다이어그램

제 4 장 관계
2010-2학기
소프트웨어설계
1
차례
4.1 연관
4.2 다중성
4.3 수식 연관
4.4 반사 연관
4.5 상속과 일반화
4.6 의존 관계
4.7 클래스 다이어그램과 객체 다이어그램
4.8 요약
2010-2학기
소프트웨어설계
2
4.1 연관
• 연관 (association)
– 클래스들이 개념적으로 서로
연결된 관계
– 역할(role)
• 연관에서 갖는 클래스의 역
할
• 예 : 선수(Player)와 농구팀(Team)
– Player와 Team 의 연관 관계
– 역할(Employee, Employer) 존
재
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
3
4.1 연관
• 예 : 선수(Player)와 농구팀
(Team)
– 클래스 사이에 두 개의
연관(Plays on, Employs)
이 존재
– 하나의 클래스(Team)가
여러 개의 클래스(Guard,
Forward, Center)와 연관
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
4
4.1 연관
• 연관에 대한 제약(constraints)
– 연관 관계가 반드시 따라야 할
규칙
– 예 : 은행직원(BankTeller)과 고
객(Customer)
• 연관 관계 Serves 의 제약
• BankTeller의 서비스 는
Customer의 주문순서
(order)에 따라서 제공되어
야 함
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
5
4.1 연관
• 예: 고등학생의 진로 결정
– 고등학생(HighSchoolStudent)이 진로를 결정
(choose) 할 때 진학(Academic) 또는 취업
(Commercial) 을 선택할 수 있다
• 제약: 두 개의 연관이 가지는 or 관계
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
6
4.1 연관
• 연관 클래스(association classes)
– 속성과 오퍼레이션을 갖는 연관
– 연관 클래스는 연관선과 점선으로 연결
– 다른 클래스와 연관될 수 있다.
– 예: Player와 Team 사이의 Contract 연관 클래스
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
7
7
4.1 연관
• 링크 (links)
– 연관의 인스턴스
– 객체 사이를 연결 (클래스가 아닌)
– 객체 이름 처럼 링크 이름에도 밑줄
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
8
4.2 다중성
• 다중성 (Multiplicity)
– 연관 관계에 있는 두 클래스 사이
– 하나의 객체에 관련될 수 있는 다른 클래스의 객체 개수
– 예: 농구팀(Team)은 5 명의 선발선수(StartingPlayer)로 구성
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
9
4.2 다중성
• 다중성 (Multiplicity)
– UML 표기법
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
10
4.3 수식 연관
• 일 대 다(one-to-many)의 다중성
– 한 객체가 특정한 객체를 선택해야 하는 상황(lookup)
발생
– 예 - 호텔의 예약 리스트(ReservationList) 와 예약
(Reservation)
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
11
4.3 수식 연관
• 수식연관 (qualified association)
– 수식자(식별정보)를 포함
– UML 표기법 - 작은 사각형이 첨부된 수식 연관
– 예 - 호텔 예약(Resevation)과 예약확인 번호
(Confirmation number)
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
12
4.4 반사 연관
• 반사 연관(reflexive association)
– 클래스가 자기 자신과 갖는 연관 관계
– UML 표기법
• 연관선 - 같은 클래스를 향해서 그린다.
• 역할, 연관 이름, 연관의 방향, 다중성을 표시
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
13
4.5 상속과 일반화

일반화(generalization)


객체지향 상속(inheritance) 개념에
대한 UML표기법
예 – 동물(Animal)의 분류계통도를
나타낸 클래스 다이어그램
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
14
4.5 상속과 일반화
• 상속 (inheritance) 관계의 결정
– 슈퍼클래스와 서브클래스를 동시에 가지는 클래스가 존재
– 시스템 분석가
• 고객과 상담에서 여러 가지의 상속 관계를 발견
• 하나의 클래스에 속한 속성과 오퍼레이션의 일반성 이해
• 다른 클래스에 적용할 수 있는지 검토
2010-2학기
소프트웨어설계
15
15
4.6 의존 관계

추상 클래스(abstract class)


자신의 객체를 제공하지 않는 클래스
예 - 추상 클래스를 갖는 상속 계층도

Player와 Clock
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
16
4.6 의존 관계
• 의존관계 (dependencies)
– “한 클래스가 다른 클래스를 사용”하는 관계
– 의존 관계는 점선 화살표 로 표현
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
17
4.7 클래스 다이어그램과 객체 다이어그램
• 클래스 (Class)다이어그램
– 클래스의 특성, 속성, 연관
– 클래스의 일반적인 정보
• 객체(Object) 다이어그램
– 클래스의 특정 인스턴스 정보
– 객체의 구체적 상황
(출처: http://www.wikipedia.org, “chess”)
• 예 - 체스 게임
– rook,knight, bishop, queen,
king, bishop, knight, rook
– pawn, pawn, …, pawn
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
18
4.7 클래스 다이어그램과 객체 다이어그램
• Moves of Chess Pieces
* pawns can
only move to
the white
circles to
capture, and
cannot capture
with their
normal move
(출처: http://ko.wikipedia.org, “chess”) 소프트웨어설계
2010-2학기
19
4.7 클래스 다이어그램과 객체 다이어그램

예 - 체스 말(ChessPiece)의 클래스 다이어그램
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
20
4.7 클래스 다이어그램과 객체 다이어그램
• 예: 객체 다이어그램
– 체스 상황의 모델링
(출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004)
2010-2학기
소프트웨어설계
21
4.8 요약
• 관계
– 클래스 사이의 의미가 어떻게 연결되는 지 나타냄으로써 모델링
하려는 세계를 시각적으로 구체화
– 연관, 역할, 다중성, 연관 클래스
• 클래스의 상속
– 속성과 오퍼레이션을 물려받음
– 부모(슈퍼) 클래스, 자식(서브) 클래스
– 추상클래스는 상속 전용으로서, 자신의 객체를 생성할 수 없다
• 의존관계
– 한 클래스가 다른 클래스를 사용
• 클래스는 일반적인 정의를, 객체는 특정상황을 모델링한다.
2010-2학기
소프트웨어설계
22