[완료]UML 에서 association과 dependency에 대해서
글쓴이: thslrtoo / 작성시간: 목, 2012/07/12 - 11:55오전
최근 UML을 공부하고 있습니다.
그런게 객체간의 관계에 대해서 궁금한게 생겼는요.
연관(association)과 의존(dependency) 관계에 대해서 이해는 했습니다.
참조하는 클래스의 레퍼런스를 계속 유지하고 있을 경우에는 연관 관계이고, 아니면 의존 관계라고 알고있습니다.
예를 들어 A, B 라는 클래스가 있고 A가 B에 대해 관계를 맺고 있을때 (A -> B)
--- 연관 ---
class A { private B b; public A() { this.b = new B(); b.print(); } }
--- 의존 ---
class A { public void func(B b) { b.print(); } }
소스로 나타내면 이렇게 됩니다.
그런데 제가 궁금한것은 의존 관계일때 B 클래스가 변경되면 A 클래스도 영향을 받는다고 하는데요.
그러면 연관 관계일때도 그렇지 않나요??
예를들어 위 소스와 같이 B 클래스에는 print() 라는 함수가 있는데
이 함수가 리턴하는 타입이 변경된다던지 이름이 변경될 경우에는 의존 관계나 연관 관계 모두 영향을 받을 수 있지 않나요??
Forums:
잘은 모르겠지만..
말씀하신것에서 .. Interface 형태에 대한 고민도 좀 포함이 되어야 설명이 될 것 같습니다..
연관관계와 의존관계를 구분짓는 손쉬운 방법을 잘
연관관계와 의존관계를 구분짓는 손쉬운 방법을 잘 설명하신 것 같습니다.
제가 찾아본 자료에도 같은 설명이 있네요.
>>그런데 제가 궁금한것은 의존 관계일때 B 클래스가 변경되면 A 클래스도 영향을 받는다고 하는데요.
>>그러면 연관 관계일때도 그렇지 않나요??
>>예를들어 위 소스와 같이 B 클래스에는 print() 라는 함수가 있는데
>>이 함수가 리턴하는 타입이 변경된다던지 이름이 변경될 경우에는 의존 관계나 연관 관계 모두 영향을 받을 수 있지 않나요??
제 주관적인 의견은 아래와 같습니다.
연관관계 --> 의존관계 (Y)
의존관계 --> 연관관계 (N)
연관관계는 의존관계라고 볼 수 있고 그 역은 성립한다고 할 수 없다는 것입니다. 왜냐하면 연관관계는 지속적이고 강한 관계임에 비해 의존관계는 일시적이고 약한 관계라고 하기 때문입니다.
즉 이 둘은 전체와 부분의 관계라고 생각합니다. 의존하지 않으면서 연관을 맺을 수는 없기 때문이기도 하구요..
즉 모든 연관 관계는 의존 관계가 되는 것입니다.
---> 어디까지나 제 개인적인 의견입니다. 틀리다면 누가 반박해주세요.. 저도 배우고 싶습니다.
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
의존관계 > 연관관계 로 생각하시면 됩니다.
의존관계 > 연관관계 로 생각하시면 됩니다.
OMG UML 스펙상 dependency 는 class 다이어그램에서 일반화, 구현, 연관, 등의 선으로 보이는 거의 모든것의 의미상 상위 셋입니다.
예를 들자면 Class 다이어그램에서 모든 연관성(일반적 단어의미)을 dependency 로 표시하고 스테레오타입으로 각 연관성을 표시하셔도
독자(개발자?)가 스테레오타입의 의미만 이해한다면 문제가 없는것 처럼요. 물로 UML 구조 및 정의 상도 그렇습니다.
답변 감사합니다
답변 감사합니다
결론적으로 연관 이라는 관계는 의존 관계도 포함된 의미였네요.
댓글 달기