2013-08-15 3 views
1

사용자 정의 클래스가있는 응용 프로그램이 있으며 기본 제공되는 다른 클래스의 객체를 초기화하는 데 Qt 프레임 워크 라이브러리도 사용합니다. 그래서 내 수업에서 'myclass'라고 부르 자. Qt 내장 클래스의 인스턴스를 만들고 그것에 대한 작업을한다. 이제 끝났습니다 ... 이제 클래스 다이어그램을 만들어야합니다. 협회, 집계, 작문 또는 일반화 중 어느 부분으로 분류 할 수 있는지 궁금합니다.클래스 다이어그램의 클래스 B에있는 클래스 A의 객체

감사

답변

0

UML에 대해 명심해야 할 점은 무엇을 사용할지 결정할 때 종종 실제 옳고 그른 대답은 없지만 일부 도구는 다른 것보다 낫다는 것입니다. UML은 단순히 의사 소통을위한 도구 일뿐 아니라 모든 사람이 의사 소통되는 내용을 이해하는 방식으로 도구가 사용되는 한 그 목적을 수행합니다.

클래스 다이어그램의 경우 가장 기본적인 수준에서 실제로는 연관 및 일반화로 모든 것을 모델링 할 수 있지만 다른 사람이보고 싶어하는 세부 사항은 부족합니다.

일반화에는 상속 관계가 일대일 관계이므로이를 언제 사용해야하는지 명확하게 알 수 있습니다.

연관성은 다른 클래스와의 관계 또는 의존성이있는 클래스를 설명합니다. 꽤 일반적인 일반화 (!) 때문에 집합과 구성의 대체에 사용될 수 있습니다.

개체 (B)가 다른 개체 (A)를 구성하고 다른 개체간에 B를 공유 할 수있는 경우 집계가 사용됩니다. 예를 들어, 도서관은 책으로 구성되어 있기 때문에 책을 빌려 본 사람과 같이 책을 집계 할 수 있기 때문에 책을 도서관의 집합체로 모델링 할 수 있습니다.

오브젝트 (B)를 직접 사용하여 오브젝트 (A)를 구성하는 경우 컴포지션을 사용하십시오. 이 경우 인체를 모델링하고 장기의 클래스가 있다면 바디 클래스의 컴포지션 객체로 하트 클래스를 모델링합니다.

Qt 프레임 워크를 사용한다는 사실은 클래스 모델링에 사용하는 것과는 관련이 없으므로 다이어그램에 모든 것을 모델링 할 필요는 없으며 개념을 다른 사람들에게 전달하는 데 필요한 것만 있습니다.

예를 들어 QList 및 QMap과 같은 컨테이너 클래스를 사용하는 경우 다이어그램에 컨테이너 클래스가 필요하지 않을 수도 있지만 QTcpSocket을 사용하고 그 클래스에서 상속하는 경우 더 좋을 수 있습니다. 그걸 보여줘.

당신이 의사 소통하려고하는 모든 것을 기억하십시오.

2

여기에 상속되지 않는 한 그것은 일반화되지 않으므로 그것이 "입니다-A"로 관계받을 수 없습니다.

협회, 구성 또는 집합에 관해서는 ... 여기에서는 꽤 좋은 설명을 찾을 수 있습니다. 유스 케이스를 잘 모른 채 올바른 것을 말할 수는 없습니다. 그러나 다른 링크를 읽으면 차이점을 이해하고 시나리오에 따라 판단하는 데 도움이됩니다. 도움이

Difference between association, aggregation and composition

희망.

관련 문제