UML 다이어그램은 코드보다 더 높은 추상화 수준으로 무언가를 표현하는 경우에만 유용 할 수 있다고 생각 합니다 .
UML을 작성하기위한 목적으로 UML을 작성하면 관료주의가 불필요 해져 프로젝트와 코드가 변경 사항에 덜 적응하지 않아도됩니다.
예를 들어, 패키지의 모든 클래스와 모든 속성 및 메소드 (쉽게 자동 생성 할 수있는 것)를 표시하는 UML 클래스 다이어그램은 전혀 가치를 제공하지 않습니다. 코드와 동일한 추상화 레벨에 있습니다. . 또한 코드는 항상 최신 정보이므로 해당 정보에 대한 더 나은 소스가 될 것이며, 어떤 방법 / 속성 / 사물이 더 중요한지 더 쉽게 알 수있는 방식으로 문서화되고 구성 될 것입니다.
반면에 코드에 표현할 수있는 것보다 더 높은 추상화 수준의 개념이 있다면 다이어그램에 개념을 문서화하는 것이 좋습니다.
예를 들어, 복잡한 시스템에서 상위 레벨 추상 모듈을 보여주는 다이어그램 (종속성 및 책임에 대한 약간의 설명 및 소스 코드에서 매핑 된 패키지 / 네임 스페이스)은 새로운 팀 구성원에게 실제로 유용 할 수 있습니다. 프로젝트에 도입해야하거나 새로운 클래스 / 기능을 어디에 던져야하는지 파악하는 데 사용될 수도 있습니다.
유용한 다이어그램의 다른 예는 통신 프로토콜에서 취해지는 상위 단계를 보여주는 시퀀스 다이어그램 일 수 있습니다. 어쩌면 그것들의 각 단계에는 약간의 단점과 복잡성이 있지만 아마도 코드 자체로 설명하기에 충분할 것입니다. 높은 수준의 다이어그램은 프로그래머가 각 상호 작용의 복잡성에 대해 걱정할 필요없이 사물의 "큰 그림"을 쉽게 이해하도록 도와줍니다.
어쨌든, 그것들은 몇 가지 예일뿐입니다. 간단한 다이어그램이 많은 도움을 줄 수있는 경우가 많이 있습니다. 코드 자체에서 무언가를 표현할 수없는 경우에만 수행해야한다는 것을 기억하십시오. 소스 코드 자체를 설명하기 위해 UML 다이어그램을 사용하는 경우 소스 코드를보다 자체 문서화하십시오.
마지막으로, 코드에 적용되는 일반적인 규칙 중 일부는 다이어그램에도 적용될 수 있습니다. 반복하지 말고, 단순하게 유지하고, 변경 사항을 두려워하지 마십시오 (UML 다이어그램에 문서화되어 있다고해서 이것이 불가능하다는 의미는 아닙니다 변경 될 때) 항상 다이어그램을 작성할 때 누가 미래의 다이어그램을 읽거나 유지할 것인지 생각하십시오.