UML을 사용하는 방법에는 여러 가지가 있습니다. Martin Fowler는 이러한 UML 모드를 호출 하고 UML을 Notes로 , UML을 스케치로 , UML을 블루 프린트로 , UML을 프로그래밍 언어로 식별 합니다.
프로그래밍 언어로서의 UML은 실제로 이륙하지 못했습니다. 이 영역에서 Model Driven Architecture 또는 Model Based Software Engineering 과 같은 다른 이름으로 일부 작업이 수행되었습니다 . 이 방법에서는 소프트웨어 시스템의 매우 상세한 모델을 작성하고 해당 모델에서 코드를 생성합니다. 이 방법이 유용한 경우가 있지만 일반적인 소프트웨어에는 적합하지 않으며 특히이 방법을 지원하는 도구를 제공 할 수있는 대기업 외부에서는 그렇지 않을 수도 있습니다. 또한 시간이 많이 걸리는 프로세스입니다. 클래스를 구현하는 데 필요한 모든 그래픽 모델을 만드는 것보다 클래스의 코드를 더 빠르게 입력 할 수 있습니다.
블루 프린트로서의 UML은 종종 "큰 디자인 초기" 프로젝트를 나타냅니다. 물론 그럴 필요는 없습니다. 특정 증분에 대해서도 모델을 완벽하게 설명 할 수 있습니다. 그러나 아이디어는 UML 모델 형식으로 디자인을 작성하고 코드로 변환하기 위해 누군가에게 전달하는 데 시간이 걸린다는 것입니다. 모든 세부 사항을 설명하고 코드로 변환하는 것이 더 기계적인 경향이 있습니다.
스케치로서의 UML과 노트로서의 UML은 본질적으로 유사하지만 언제 사용되는지에 따라 다릅니다. 스케치로 UML을 사용한다는 것은 UML 표기법을 사용하여 디자인을 스케치한다는 것을 의미하지만 다이어그램은 완전하지는 않지만 다른 디자인과 통신해야하는 디자인의 특정 측면에 초점을 맞출 것입니다. Notes와 같은 UML은 비슷하지만 모델은 코드 기반을 이해하는 데 도움이되도록 코드 다음에 작성됩니다.
이것을 고려할 때 위의 모든 것이 모든 종류의 모델링 표기법에 해당한다고 생각합니다. 엔티티 관계 다이어그램, IDEF 다이어그램, 비즈니스 프로세스 모델링 표기법 등에 적용 할 수 있습니다 . 모델링 표기법에 관계없이 적용 시점 (사양 이전, 대체 표현 후) 및 세부 사항 (핵심 측면에 대한 전체 세부 사항)을 선택할 수 있습니다.
이것의 다른 측면은 오픈 소스 문화입니다.
종종 오픈 소스 프로젝트는 개인 (또는 오늘날 회사)이 겪고있는 문제를 해결하기 위해 시작됩니다. 개인이 시작한 경우 개발자 수는 1 명입니다.이 경우 통신 오버 헤드가 매우 적으며 요구 사항과 디자인에 대해 통신 할 필요가 없습니다. 회사에서는 소규모 팀이있을 수 있습니다. 이 경우 설계 가능성을 알리고 절충에 대해 논의해야 할 것입니다. 그러나 설계 결정을 한 후에는 시간이 지남에 따라 코드 기반이 변경 될 때 모델을 유지 관리하거나 버려야합니다. 에서 애자일 모델링 용어, "문서는 계속해서" 와 유지 "단일 정보 소스를" .
간단히 말해서, 코드는 디자인이고 모델은 디자인의 대체보기라는 아이디어가 있습니다. Jack Reeves는 코드 디자인에 대한 세 가지 에세이를 작성했으며 C2 위키에도 소스 코드가 디자인 , 디자인이 소스 코드 , 소스 코드 및 모델링 이라는 아이디어에 대한 토론이 있습니다. 이 신념에 동의하면 (내가하는) 소스 코드는 현실이며 코드를 이해하기 위해 다이어그램이 존재해야하며, 더 중요한 것은 코드가 왜인지에 대한 이론적 근거입니다.
언급 한 것과 같이 성공적인 오픈 소스 프로젝트에는 전 세계에 기여자가 있습니다. 이 기고자들은 기술적으로 소프트웨어를 구동하는 기술에 능숙하며 소프트웨어 사용자이기도합니다. 기고자는 모델처럼 쉽게 소스 코드를 읽을 수 있고 도구 (IDE 및 리버스 엔지니어링 도구)를 사용하여 코드를 이해 (필요한 경우 모델 생성 포함) 할 수 있습니다. 또한 흐름을 직접 스케치 할 수도 있습니다.
Fowler가 설명하는 네 가지 모드 중에서, 모델링 언어를 프로그래밍 언어 또는 청사진으로 사용하는 오픈 소스 프로젝트 나 어디에서나 많은 프로젝트를 찾을 수 없다고 생각합니다. UML에 대한 가능한 용도로 메모와 스케치를 남깁니다. 기고자에 의해 기고자에 의해 메모가 작성되므로, 어느 곳에도 업로드 된 메모를 찾지 못할 것입니다. 코드의 완성도가 높아지면서 스케치의 가치가 떨어지고 기고자들의 노력만으로도 유지 관리되지 않을 수 있습니다.
많은 오픈 소스 프로젝트에는 가치를 추가하지 않기 때문에 사용 가능한 모델이 없습니다. 그러나 이것이 프로젝트 초기에 누군가가 모델을 만들지 않았거나 개인이 자신의 시스템 모델을 만들지 않았다는 의미는 아닙니다. 한 가지 디자인 정보 소스 인 소스 코드를 유지 관리하는 것이 훨씬 더 효과적입니다.
디자인 정보를 교환하는 사람들을 찾으려면 기고자가 사용하는 모든 종류의 포럼 또는 메일 목록을 보는 것이 좋습니다. 이러한 포럼 및 메일 링리스트는 종종 프로젝트의 디자인 문서 역할을합니다. 공식적인 UML을 찾을 수는 없지만 디자인 정보와 모델을 그래픽으로 표현할 수 있습니다. 프로젝트를위한 대화방이나 다른 커뮤니케이션 채널을 볼 수도 있습니다. 사람들이 디자인 결정에 대해 이야기하는 것을 보게되면 그래픽 모델과 통신 할 수 있습니다. 그러나 그들은 커뮤니케이션의 목적을 달성 한 후에는 가치가 없기 때문에 저장소의 일부가되지 않을 것입니다.