📌class Diagram
- 실행하면서 변하지않는 정적인 기능을 서술시 사용하는 다이어그램
📖relationships among classes
- association : X 클래스의 멤버 변수로 Y 클래스 타입이 존재 => X has a Y
- inheritance : X 클래스는 Y 클래스의 자식이다 => X is a Y
- dependecy : X 클래스가 Y 클래스를 사용한다 => X uses a Y
📖표현 방식
- attribute와 operations을 서술
-
는 private, +
는 public을 나타냄
📖클래스 관계
✏️assocation
- Student 클래스의 멤버 변수로 Course 클래스의 인스턴스가 존재(학생이 듣는 수업 목록)
- Course 클래스의 멤버 변수로 Student 클래스의 인스턴스가 존재(해당 수업의 학생 목록)
- Course 클래스의 멤버 변수로 Course 클래스의 인스턴스가 존재(해당 수업을 듣기위한 선수강 수업이 존재)
- Customer 클래스의 Video Tape의 ID가 존재, 해당 ID와 맵핑되는 Video Tape 인스턴스가 Rental Info에 존재
- Video Tape 클래스의 Customer의 ID가 존재, 해당 ID와 맵핑되는 Customer 인스턴스가 Rental Info에 존재
- Customer, Video Tape 클래스에는 직접적인 인스턴스가 없고 Rental Info에서 구체적인 인스턴스 정보를 확인, Rental Info는 중개 테이블 느낌
✏️Inheritance
✏️Aggregation/Composition
- 컴퓨터의 일부분(part of)으로 메모리가 존재
- 사람의 일부분(part of)으로 머리가 존재
- aggregation : 컴퓨터에 메모리 하나 없어도 돌아감(여러개 있으면), part가 필수가아님
- composition : 사람에 머리가 없으면 안됨, part가 필수임
📖실제 예시
- 비디오 렌트 시스템
- 냉난방 제어 시스템
- 왼쪽 : 개별 제어 / 오른쪽 : 중앙 제어
- 운동 선수 팀 시스템
📌class Diagram 작성
📖Identifying Classes
- 문장으로 서술된 요구사항이 있을때, 클래스 작성 가이드 라인
- 주요 명사 = class name
- 주요 명사를 꾸며주는 형용사 = attributes
- 주요 명사 연관되는 능동태 동사 = operations
📖실제 작성해보기
📌클래스의 타입
- Entity class : persistent things, 데이터 저장소로 사용되는 타입의 클래스
- Boundary class : 사용자의 인터페이스를 위한 타입의 클래스
- Control class : Entity class를 만들고 수정하는 타입, Boundary class를 제어하는 타입