본문 바로가기
UML

[펌] [안영회의 UML 강좌16] - Behavior and Structure (4)-2

by 사우람 2010. 7. 12.

##########0*
##########1*0 속성 설명하기
2 .0 클래스 다이어그램에서 속성과 오퍼레이션
##########2*
##########3*
지난 강좌까지 학습을 하셨다면 클래스에 Operation과 Attribute를 추가하실 수 있으시겠죠? Behavior and Structure라는 제목으로 오랜 시간을 할애했습니다. 그만큼 중요한 내용이라 여겨집니다. 이번 강좌에서는 마무리를 해보죠.


속성 설명하기

남의 나라 기술을 차용해서 쓰는 입장에 대해 딱히 생각해 본 적이 없었습니다. 그런데 글을 쓰게 되면서 종종 답답한 마음이 들더군요. 바로 위의 글만 해도 Attribute라고 했다가 속성이라고 썼다가.

속성이란 말로 Attribute란 단어를 어느 정도 대체할 수 있어서 번역한 말을 썼지만 이번 강좌의 첫번째 문장을 보세요. 오퍼레이션(Operation)을 우리말로 번역할 적당한 단어가 없습니다. ‘운영’은 얼토당토않고, ‘연산’도 어색하기 짝이 없죠? 독자님들의 이해를 바랍니다.

속성(Attribute) 역시 다른 모델링 요소처럼 설명을 기술할 수 있습니다. Documentation을 한다고 하죠.

##########4*
그림 16-1. 속성에 설명을 기술하기



브라우저나 클래스의 Specification Window에서 설명을 기술하고자 하는 속성을 찾아 더블 클릭을 하면 Attribute Specification Window가 나타납니다. 여기에 설명을 기록합니다. 물론, 속성을 선택한 후 브라우저 하단의 Documentation Window에 직접 설명을 기술하는 것도 가능하죠.

기본적으로 Rose에서 Documentation 절차는 모든 모델링 요소에 동일합니다. 사용자 편의를 위해 어찌 보면 아주 기본적인 사항을 잘 지켜준 프로그램이죠. 속성이든 클래스이든 동일한 방법으로 설명을 넣을 수 있습니다.

속성의 설명 시 중요한 사항은 해당 속성이 무엇(What)을 하기 위한 것인지 명확히 기록하는 것입니다. 해당 속성의 데이터 타입이나 제약 사항들은 그림 15-1에서 보이는 바와 같이 정형화된 틀에 맞게 표기하는 것이 좋습니다. Documentation에는 해당 속성이 무언지를 쉽게 알 수 있는 내용을 적어두는 것이 좋겠죠?

##########5*
그림 16-2. OMG의 MDA


1 .0 속성 설명하기
##########6*0 클래스 다이어그램에서 속성과 오퍼레이션
##########7*
##########8*
클래스 다이어그램에서 속성과 오퍼레이션

처음 모델링을 할 때 자주 오해하는 것이 다이어그램을 작성하기 위해 모델링을 하는 주객이 전도된 경우입니다. 다이어그램은 하나의 뷰(View)에 지나지 않습니다. 시스템을 나타내는 모델의 일면 만을 보여주는 것이죠.

다이어그램이 오히려 복잡한 시스템을 더 잘 모델링 하기 위해 사용되는 것입니다. 아리송하신가요? 여기서 다시 Iterative Development라는 성격이 여실히 보여지네요. 모델을 찾아내기 위해 지금까지 찾아낸 모델을 이용해서 다이어그램을 찾아내고, 다이어그램에 새로운 모델을 추가하면서 전체적이 모델이 갱신되는 것이죠.

모델링을 하면서 ‘어떤 다이어그램을 작성할 필요가 있을까?’하는 정형적인 질문을 누구나 떠올리기 마련입니다. 다이어그램은 필요에 따라 맘껏 그리시면 됩니다. 보지도 않는 다이어그램을 구색을 맞추려고 그릴 필요는 없겠죠.

중요한 것은 시스템을 만들기 전에 시스템에 관한 어느 정도는 구체화 된 실체를 찾아내는 것입니다. 그렇다고 해도 구현을 하기 전까지는 추상적인 것이니까 모델이라고 부르는 것이겠죠.

클래스 다이어그램 역시 여러 가지 용도로 쓰일 수 있습니다. 10강에서인가요? 클래스간의 관계를 표현하려고 사용했었습니다. 그림 16-3과 같은 다이어그램이죠.


##########9*
그림 16-3. 클래스 다이어그램


그림 16-3의 다이어그램에서는 클래스의 속성이나 오퍼레이션을 보이지 않습니다. 클래스 간의 관계를 보는 것이 목적인 다이어그램에서 모든 클래스의 속성과 오퍼레이션이 나타내어지면 너무 복잡해질 수 있습니다. 용도에 맞는 것이 가장 적합한 다이어그램이 되겠죠.

따라서, 클래스의 속성과 오퍼레이션을 보기 위한 다이어그램을 작성할 수도 있는 일이겠죠. 그림 15-3의 다이어그램에서 관계를 보이지 않게 하고, 속성과 오퍼레이션을 보이게 하는 연습을 해볼까요? 기억하실 것은 다이어그램은 뷰일 뿐이라는 점입니다.

뷰(View)라는 단어에 익숙하지 않은 분들 계신가요? 뷰라는 것은 복사본이라고 생각하시면 수월합니다. 데이터베이스에 익숙하신 분들은 잘 아시겠죠? 다이어그램에서 관계를 없애도 해당 다이어그램에서만 보이지 않을 뿐이라는 것입니다.

메뉴에서 [Query]-[Filter Relationships] 순으로 선택하십시오. 그러면 그림 16-4와 같은 다이얼로그가 나타납니다.

##########10*
그림 16-4. Relations 다이얼로그


Type 항목에서 None을 선택하시고 OK를 클릭합니다. 관계를 나타내던 선들이 모두 사라졌죠. 이제 클래스들을 선택하시고, 오른쪽 마우스 클릭을 한 후 [Options]-[Show …] 순으로 선택을 하시면 됩니다. 보고 싶지 않으신 경우에는 해당 [Show …] 항목에 체크가 사라지게 하면 되겠죠. 관계를 사라지게 하고, 속성과 오퍼레이션을 나타나게 한 다이어그램이 그림 15-6의 클래스 다이어그램입니다.

##########11*
그림 16-5. 속성과 오퍼레이션 나타내게 하기


##########12*
그림 16-6. 속성과 오퍼레이션을 나타낸 클래스 다이어그램