///
Search
🛷

6주차 클레스 간 관계와 그리고 UML 다이어그램

클래스 다이어그램으로 관계를 나타낼 때 7가지의 관계가 있습니다.

일반화 관계(Generalization)
집합 관계(Aggregation)
구성 관계(Composition)
직접 연관 관계(Direct Associtaion)
연관 관계 (Association)
의존 관계 (Dependency)
실현 관계 (Realization)
일반화 관계(Generalization)는 기반 형식과 파생 형식 사이의 관계입니다.
“피아니스트는 음악가이다.” 처럼 “이다.”로 표현할 수 있는 형식 사이의 관계입니다.
음악가 종류에는 피아니스트, 드러머, 기타리스트 등이 있죠.
이 때 음악가를 기반 형식이라고 말하고 피아니스트를 파생 형식이라고 말합니다. UML에서는 삼각형과 실선으로 표현합니다.
피아니스트는 음악가이다.
집합관계(Aggregation)은 컬렉션과 원소 사이의 관계입니다. “필통은 연필과 지우개 등을 가지고 있다.” 처럼 “가지고 있다.” 혹은 “가질 수 있다.”로 표현할 수 있는 형식 사이의 관계입니다.
필통은 연필과 지우개 등을 가지고 있다.
구성 관계(Composition)은 포함 형식과 내부 형식 사이의 관계입니다. “사람은 눈과 귀 등을 가지고 있다.” 처럼 “가지고 있다.” 혹은 “가질 수 있다.”로 표현할 수 있는 형식 사이의 관계입니다.
사람은 눈과 귀 등을 가지고 있다.
이처럼 집합 관계와 구성 관계는 “가지고 있다.”로 표현할 수 있는 형식 사이의 관계입니다. 차이점은 집합 관계에서는 소유 개체와 피소유 개체가 만들어지는 과정이 별도로 진행합니다. 하지만 구성 관계에서는 동시에 진행합니다. 필통과 연필은 별도로 만들어지겠죠. 하지만 눈과 귀는 사람이 태어날 때 가지고 태어납니다.
집합 관계는 대부분 컬렉션과 원소 사이의 관계라고 생각할 수 있어요.
집합 관계는 컬렉션과 원소 사이의 관계
직접 연관 관계(Direct Association)는 가장 흔한 관계입니다. 명령을 내리는 형식과 이를 수행하는 형식 사이의 관계입니다.
고용주는 노동자에게 일을 시킨다.
연관 관계(Association)는 서로 상대를 알고 명령할 수 있는 관계입니다. 프로그램에서 위험한 관계이며 다른 안전한 관계로 바꿀 것은 권합니다.
의존 관계(Dependency)는 원본 개체의 변화에 따라 의존 개체도 변화하는 형식 사이의 관계입니다.
회원 정보가 바뀌면 회원 컨트롤에 표시한 정보를 변경한다.
그리고 어떠한 형식 개체를 생성하는 책임을 갖고 있을 때도 의존 관계로 표시합니다.
실현관계(Realization)는 약속한 기능을 구현하는 관계입니다.

의존관계를 표현 할 때는 UML 클래스 다이어그램과 UML 시퀀스 다이어그램을 사용한다.

UML 시퀀스 다이어 그램
다음 사례는 클래스 A가 클래스B에 의존하는 경우로 표현하는 작업이다.
UML 클래스 다이어 그램
product 클래스와 price 클래스가 있다고 가정하면 Product 클래스에는 getPrice함수가 있는데 보안적인 이유로 main 함수에서 직접 호출 할 수 없고 price 클래스의 맴버함수인 add 함수를 사용해서야만 getPrice 함수를 호출 할수 있게 만들었다고 가정한다. add 함수는 product 객체를 매개변수로 받아서 getprice를 호출하는 방식이다. 이걸 그림으로 표현하면 아래와 같다.
네모 : 객체 점선 : 생명선 이름없는 네모 : 함수 이름있는 네모 : 객체 → : 인스턴스화 이름있는 → : 함수 호출 점선 > : 리턴값
Arduino
복사

과제 : 요구사항 분석서를 제출하셔야 합니다.

21일 낮 13시까지 과제를 제출하셔야 합니다.
과제 늦게 주신 분들을 조교 메일로 주세요!
앞으로 소스코드를 기반으로 UML 그리는 법을 안내해드리겠습니다.
지능형ICT 종합설계지원 사업비로 재료 구매하신 분들을 연구실로 오셔서 챙겨가 주시길 바랍니다.