2008. 7. 25. 16:12

[UML.5] 체계적으로 UML 공부하기

지난 번에 올린 UML의 개요를 통해서 UML이란 것이 대략 어떤 형태를 가지고 있는지 "눈팅"정도만 해 보았다.


내가 작성을 하면서도, 각 다이어그램들이 명확히 구분되거나 용도가 정확하게 파악되지는 않았다.

그리고 다이어그램이 UML에서 갖는 중요도가 어느 정도인지도 모르는 것은 당연하고...

이제부터는 UML의 공식 문서를 가지고 공부를 시작하겠다.


앞서 관련 링크 부분에서 언급했듯이 OMG에서 공식 문서를 받을 수 있다.

OMG UML 사이트


그런데 들어가 보니 문서가 하나가 아니다.

UML에도 Infrastructure/Superstructure 두가지가 있고,

Metamodel이니 XMI, Diagram Interchange 등등 관련된 것들도 많다.


일단은 Infrastructure/Superstructure 두가지 문서만 받아보자.

"두가지만"이라고 했지만 각각이 1.6MB, 6MB에 달하는 방대한 양이다.

머 200 페이지, 700 페이지 짜리이니 웬만한 소설책보다 두껍다.

그리고 소설책보다 재미 없다.

게다가 대충 대충 읽어서는 않되는 것 아니냐...


엥기니어들 책 안 읽는다고, 무식하다고 깔보지 말자.

맨날 보는게 저런 스펙들이다.


책이란거에 이가 갈리는 사람이다...


각설하고,

일단 이런 방대한 문서를 볼 때 한숨부터 나오지만, 안 볼 수는 없다.

그러면...

1. 좀 더 안락한 생활(?)을 위해 필요한 최소한의 투자라고 생각하자.

2. 천재가 아닌 이상, 그냥 읽어댄다고 다 이해가 가능하지도 않고 외우는 것은 더더욱 불가능하다.

   좀 더 효율적으로 공부를 하자.


- 일단은 문서가 두개인데, 왜 두개일까? 무엇부터 봐야 할까?

   스펙을 다운받은 곳에 친절하게도 이런 안내가 있다.

Beginning with UML 2.0, the UML Specification was split into two complimentary specifications: Infrastructure and Superstructure. The UML infrastructure specification defines the foundational language constructs required for UML 2.1.2. It is complemented by UML Superstructure, which defines the user level constructs required for UML 2.1.2. The two complementary specifications constitute a complete specification for the UML 2 modeling language.

   User Level Construct라는게 뭔지는 아직 잘 모르겠지만, Infrastructure를 먼저 읽어야한다는 소리인지는 알겠다. (다행히 200 페이지짜리 ㅎㅎ)



- 우선 Infrastructure의 목차를 보면서 상상의 나래를 펼쳐보자~~

1. Scope

2. Conformance

3. Normative References

4. Terms and Definitions

5. Symbols

6. Additional Information

7. Language Architecture

8. Language Formalism

9. Core::Abstractions

10. Core::Basic

11. Core::Constructs

12. Core::PrimitiveTypes

13. Core::Profiles


1~6까지는 대부분의 문서 서두에 나오는 부분이다. 문서를 이해하는데 도움이 될 수 있도록 설명하거나 약속해 두는 것들이니 한번 읽어보면 된다. 아는 부분은 가볍게 넘어가 주고 모르는 부분은 한번 자세히 읽어봐주면 되는...

이름으로는 7~8에 기본적인 사항이 들어가 있겠다.

9~13까지는 Core::으로 공통된 부분이 있는 것으로 보아 개별적으로 자세한 설명이 되어 있을 듯하다. 그런데 왜 Core일까? 그리고 거기에 Abstractions/Basic/Constructs/PrimitiveTypes/Profiles의 5가지가 있군....흠흠...이런 의문을 가지고 읽어 나가면 될 듯.


참고로 내가 보고 있는 문서의 버전은 v2.1.2임.