통합 모델링 언어

Unified Modeling Language
UML 로고

Unified Modeling Language(UML; 통합 모델링 언어)는 소프트웨어 엔지니어링 분야의 범용 개발 모델링 언어이며 [1]시스템 설계를 시각화하는 표준 방법을 제공하기 위한 것입니다.

UML의 창설은 원래 소프트웨어 설계에 대한 서로 다른 표기 시스템과 접근방식을 표준화하려는 욕구에 의해 이루어졌습니다.1994~1995년 Rational Software에서 개발되었으며 1996년까지 [1]Rational Software가 개발을 주도했습니다.

UML은 1997년 OMG(Object Management Group)에 의해 표준으로 채택되어 지금까지 이 조직에서 관리되고 있습니다.2005년에는 국제표준화기구(ISO)에 의해 승인된 ISO [2]표준으로 UML도 발행되었습니다.그 이후로 표준은 UML의 [3]최신 개정판을 다루도록 정기적으로 개정되었다. 소프트웨어 엔지니어링에서는 대부분의 실무자가 UML을 사용하지 않고 비공식적인 손으로 그린 도표를 작성한다. 그러나 이러한 도표는 종종 UML의 [4]: 536 요소를 포함한다.

역사

객체 지향 메서드 및 표기 이력

UML 1.0 이전

UML은 1990년대 후반부터 진화하고 있으며 1980년대 후반과 1990년대 초반에 개발된 객체 지향 프로그래밍 방식에 뿌리를 두고 있습니다.타임라인(이미지 참조)은 객체 지향 모델링 방법 및 표기법의 주요 이력을 보여줍니다.

원래 Boch 메서드, 객체 모델링 기술(OMT) 및 객체 지향 소프트웨어 엔지니어링(OOSE)의 표기를 기반으로 하며, 단일 [5]언어로 통합되었습니다.

Rational Software Corporation은 1994년에 General Electric에서 James Rumbaugh를 고용했으며, 그 후 Rumbaugh의 객체 모델링 기법(OMT)과 Grady Boch의 방법이라는 [6]당대 가장 인기 있는 객체 지향 모델링 접근법의 원천이 되었습니다.그들[1]곧 객체 지향 소프트웨어 엔지니어링(OOSE) 방식의 창안자인 Ivar Jacobson의 도움을 받아 1995년 Rational에서 합류했습니다.

UML 1.x

이들 3사(Rumbaugh, Jacobson 및 Boch)의 기술 주도 하에 1996년 UML 파트너라는 컨소시엄이 조직되어 통합 모델링 언어(UML) 사양을 완성하고 표준화를 위해 객체 관리 그룹(OMG)에 제안했습니다.파트너십에는 HP, DEC, IBMMicrosoft와 같은 추가적인 이해관계자도 포함되었습니다.UML 파트너스의 UML 1.0 초안은 1997년 1월 컨소시엄에 의해 OMG에 제안되었다.같은 달, UML 파트너스는, Cris Kobryn이 의장을 맡아 Ed Eykholt가 관리하는, 언어 구성의 정확한 의미를 정의하기 위한 그룹을 결성해, 사양을 확정해, 다른 표준화 노력과 통합했습니다.이 연구의 결과물인 UML 1.1은 1997년 8월에 OMG에 제출되었고 1997년 [1][7]11월에 OMG에 의해 채택되었다.

첫 번째 발표 이후 언어 개선을 위한 태스크포스가 구성되었고[1], 1.3, 1.4, 1.5의 [8]몇 가지 사소한 수정사항을 발표했다.

(원래 기준뿐만 아니라) 작성한 기준은 모호하고 일관성이 [9][10]없는 것으로 지적되어 왔다.

카디널리티 표기법

데이터베이스 Chen, Bachman 및 ISO ER 다이어그램과 마찬가지로 클래스 모델에서는 여러 저자(Merise,[11] Elmasri 및 Navathe[12][13])가 역할과 최소 및 최대 기준 모두에 대해 같은 측면 또는 "look-here"를 선호하지만 "look-across" 기준을 사용하도록 지정됩니다.최근의 연구자(Feerer,[14] Dullea 등)[15]는 UML과 ER 다이어그램에 사용되는 "look-across" 기법이 2보다 큰 n-ary 관계에 적용되었을 때 덜 효과적이고 일관성이 떨어진다는 것을 보여주었다.

Feerer는 다음과 같이 말합니다.「UML 어소시에이션에 사용되는 룩 어크로스 시멘틱스 하에서 동작하면, 문제가 발생합니다.Hartmann은[16] 이 상황을 조사하고 다른 변환이 어떻게 그리고 왜 실패하는지 보여준다."와 "다음 몇 페이지에서 볼 수 있듯이, Look-Across 해석은 이진수에서 n-ary 연관성으로 단순한 메커니즘을 확장하는 것을 막는 몇 가지 어려움을 야기한다."

UML 2

UML 2.0 메이저리비전은 2005년에 버전 1.5를 대체했습니다.이 버전 1.5는 기능 [17]사용에 대한 새로운 경험을 반영하기 위해 언어를 더욱 개선하기 위해 확장된 컨소시엄과 함께 개발되었습니다.

UML 2.1은 정식 사양으로 출시되지 않았지만 버전 2.1.1과 2.1.2가 2007년에 등장했고 그 후 2009년 2월에 UML 2.2가 출시되었습니다.UML 2.3은 2010년 [18]5월에 정식으로 출시되었습니다.UML 2.4.1은 2011년 [18]8월에 정식으로 출시되었습니다.UML 2.5는 2012년 10월에 "진행 중" 버전으로 출시되었으며 2015년 [18]6월에 공식 출시되었습니다.정식 버전 2.5.1은 2017년 [19]12월에 채택되었습니다.

UML 2.x 사양에는 다음 4가지 부분이 있습니다.

  • 다이어그램과 그 모델 요소의 표기법과 의미를 정의하는 상부 구조
  • Superstructure의 기반이 되는 핵심 메타모델을 정의하는 인프라스트럭처
  • 모델 요소의 규칙을 정의하는 OCL(Object Constraint Language)
  • UML 2 다이어그램 레이아웃 교환 방법을 정의하는 UML 다이어그램 교환

UML 2.4.1까지 이 표준의 최신 버전은 다음과 같습니다.[20]

  • UML 상부 구조 버전 2.4.1
  • UML 인프라스트럭처 버전 2.4.1
  • OCL 버전 2.3.1
  • UML 다이어그램 교환 버전 1.0.

버전 2.5 이후 UML 사양은 (Superstructure 및 Infrastructure를 사용하지 않고) 간소화되었으며,[21] 이러한 표준의 최신 버전은 다음과 같습니다.

  • UML 사양 2.5.1
  • OCL 버전 2.4

개정 태스크포스(TF)에 의해 [22]갱신 및 개선되고 있습니다.이 태스크포스(TF)는 언어 문제를 해결합니다.

설계.

UML은 다음과 [5]같은 요소를 포함한 시스템의 아키텍처 청사진을 다이어그램으로 시각화하는 방법을 제공합니다.

UML은 원래 객체 지향 설계 문서화를 목적으로 하고 있었지만 (위에서 [23]설명한 바와 같이) 더 큰 설계 문서 세트로 확장되어 많은 [24]상황에서 유용하게 사용되고 있습니다.

소프트웨어 개발 방법

UML은 그 [25]자체로는 개발방법이 아닙니다.그러나 OMT, Boch 방식, Objectory, 특히 Rational Software에서 작업을 시작할 때 사용하려고 했던 RUP 등 당대의 선도적인 객체 지향 소프트웨어 개발방법과 호환되도록 설계되었습니다.

모델링.

UML 모델과 시스템 다이어그램 세트를 구별하는 것이 중요합니다.다이어그램은 시스템 모델을 부분적으로 그래픽으로 표현한 것입니다.다이어그램 세트가 모델을 완전히 포함할 필요는 없으며, 다이어그램을 삭제해도 모델이 변경되지 않습니다.모델에는 모델 요소 및 다이어그램(예: 서면 사용 사례)을 추진하는 문서도 포함될 수 있습니다.

UML 다이어그램은 시스템 [26]모델의 두 가지 다른 보기를 나타냅니다.

UML 모델은 XML Metadata Interchange(XMI) 형식을 사용하여 UML 도구 간에 교환할 수 있습니다.

UML에서 동작 모델링의 주요 도구 중 하나는 OOE로 인해 발생하는 사용 사례 모델입니다.사용 사례는 시스템의 필수 사용 방법을 지정하는 방법입니다.일반적으로 시스템의 요건, 즉 시스템이 무엇을 [27]해야 하는지를 파악하기 위해 사용됩니다.

도표

UML 2에는 여러 종류의 다이어그램이 있으며, 두 가지 [5]범주로 나뉩니다.일부 유형은 구조 정보를 나타내며, 나머지는 상호 작용의 다른 측면을 나타내는 몇 가지 유형을 포함하여 일반적인 행동 유형을 나타냅니다.이러한 다이어그램은 다음 클래스 [5]다이어그램과 같이 계층적으로 분류할 수 있습니다.

Hierarchy of UML 2.2 Diagrams, shown as a class diagram

이러한 다이어그램에는 모두 사용, 제약 또는 의도를 설명하는 주석 또는 참고가 포함될 수 있습니다.

구조도

구조도는 시스템의 정적 측면을 나타냅니다.모델링되는 시스템에 반드시 존재해야 하는 것을 강조합니다.구조도는 구조를 나타내기 때문에 소프트웨어 시스템의 소프트웨어 아키텍처를 문서화하는 데 광범위하게 사용됩니다.를 들어 컴포넌트 다이어그램은 소프트웨어 시스템이 컴포넌트로 분할되는 방법을 설명하고 이들 컴포넌트 간의 의존성을 나타냅니다.

행동도

동작 다이어그램은 시스템의 동적 측면을 나타냅니다.모델링되는 시스템에서 반드시 일어나야 하는 것을 강조합니다.동작 다이어그램은 시스템의 동작을 나타내기 때문에 소프트웨어 시스템의 기능을 설명하는 데 광범위하게 사용됩니다.를 들어, 활동 다이어그램은 시스템 구성 요소의 비즈니스 및 운영 활동을 단계별로 설명합니다.

상호 작용도

행동 다이어그램의 하위 집합인 상호작용 다이어그램은 모델링되는 시스템 내의 사물들 사이의 제어 및 데이터의 흐름을 강조합니다.를 들어 시퀀스 다이어그램은 메시지 시퀀스에 대해 오브젝트가 서로 통신하는 방법을 보여 줍니다.

메타모델링

Meta-Object Facility 그림

Object Management Group(OMG; 객체 관리 그룹)은 Meta-Object [28]Facility라고 불리는 UML을 정의하는 메타모델링 아키텍처를 개발했습니다.MOF는 오른쪽 그림과 같이 4층 아키텍처로 설계되어 있습니다.M3 레이어라고 불리는 메타 메타 모델을 상단에 제공합니다.이 M3 모델은 Meta-Object Facility가 메타모델을 구축하기 위해 사용하는 언어입니다.

레이어 2 Meta-Object Facility 모델의 가장 두드러진 예는 UML 자체를 설명하는 UML 메타모델입니다.이러한 M2 모델은 M1 레이어, 즉 M1 모델의 요소를 나타냅니다.예를 들어 UML로 작성된 모델입니다.마지막 레이어는 M0 레이어 또는 데이터 레이어입니다.시스템의 [29]런타임 인스턴스를 설명하는 데 사용됩니다.

메타 모델은 정형화라고 불리는 메커니즘을 사용하여 확장할 수 있습니다.Brian Henderson-Sellers와 Cesar Gonzalez-Perez는 "UML 1.x 및 2.0에서의 고정관념 메커니즘의 사용과 남용"[30]에서 이 문제를 불충분/방어할 수 없다고 비판해 왔습니다.

도입

UML은 많은 [24][31]맥락에서 판매되어 왔습니다.

때로는 디자인적인 은탄으로 취급되어 문제가 발생하기도 합니다.UML의 오용에는 과잉사용(시스템 전체를 설계하는 것은 불필요하지만)과 초보자도 [32]UML을 사용하여 설계할 수 있다고 가정하는 것이 포함됩니다.

그것은 많은 구문들을 가진 큰 언어로 여겨진다.Jacobson을 포함한 일부 사람들은 UML의 크기가 UML의 [33]학습(따라서 사용)을 방해한다고 느낀다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c d e Unified Modeling Language User Guide, The (2 ed.). Addison-Wesley. 2005. p. 496. ISBN 0321267974. 샘플 내용을 참조하고 이력을 찾습니다.
  2. ^ "ISO/IEC 19501:2005 - Information technology - Open Distributed Processing - Unified Modeling Language (UML) Version 1.4.3". Iso.org. 1 April 2005. Retrieved 7 May 2015.
  3. ^ "ISO/IEC 19505-1:2012 - Information technology - Object Management Group Unified Modeling Language (OMG UML) - Part 1: Infrastructure". Iso.org. 20 April 2012. Retrieved 10 April 2014.
  4. ^ Baltes, Sebastian; Diehl, Stephan (11 November 2014). "Sketches and diagrams in practice". Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. FSE 2014. Hong Kong, China: Association for Computing Machinery: 530–541. arXiv:1706.09172. doi:10.1145/2635868.2635891. ISBN 978-1-4503-3056-5. S2CID 2436333.
  5. ^ a b c d "OMG Unified Modeling Language (OMG UML), Superstructure. Version 2.4.1". Object Management Group. Retrieved 9 April 2014.
  6. ^ Andreas Zendler(1997) Objeckt 지향 소프트웨어 개발을 위한 고급 개념, 라이프 사이클 모델도구. 페이지 122
  7. ^ "UML Specification version 1.1 (OMG document ad/97-08-11)". Omg.org. Retrieved 22 September 2011.
  8. ^ "UML". Omg.org. Retrieved 10 April 2014.
  9. ^ Génova et alia 2004 "산업용 사례 모델링의 미해결 문제"
  10. ^ "Will UML 2.0 Be Agile or Awkward?" (PDF). Retrieved 22 September 2011.
  11. ^ 휴버트 타디외, 아놀드 로흐펠트, 르네 콜레티 라 메토드 MERISE: 프린키페스와 아웃필스 (Paperback - 1983년)
  12. ^ 엘마스리, 라메즈, BShamkant, Navathe, Fundamentals of Database Systems, 제3판, Addison-Wesley, Menlo Park, CA, USA, 2000.
  13. ^ ER 2004: 제23회 개념 모델링 국제회의, 2004년 11월 8-12일 웨이백 머신에서 2013년 5월 27일 아카이브
  14. ^ "A Formal Treatment of UML Class Diagrams as an Efficient Method for Configuration Management 2007" (PDF). Retrieved 22 September 2011.
  15. ^ "James Dullea, Il-Yeol Song, Ioanna Lamprou - An analysis of structural validity in entity-relationship modeling 2002" (PDF). Retrieved 22 September 2011.
  16. ^ ""Reasoning about participation constraints and Chen's constraints" S Hartmann - 2003" (PDF). Retrieved 17 August 2013.
  17. ^ "UML 2.0". Omg.org. Retrieved 22 September 2011.
  18. ^ a b c "UML". Omg.org. Retrieved 22 September 2011.
  19. ^ "UML 2.5.1 specification". Omg.org. Retrieved 24 October 2018.
  20. ^ OMG. "OMG Formal Specifications (Modeling and Metadata paragraph)". Retrieved 12 February 2016.
  21. ^ OMG. "about the unified modeling language specification". Retrieved 22 February 2020.
  22. ^ "Issues for UML 2.6 Revision task Force mailing list". Omg.org. Retrieved 10 April 2014.
  23. ^ Satish Mishra(1997).시각 모델링 및 통합 모델링 언어(UML): UML의 개요」.Rational Software Corporation.2008년 11월 9일에 액세스.
  24. ^ a b "UML, Success Stories". Retrieved 9 April 2014.
  25. ^ John Hunt(2000).실무자를 위한 통합 프로세스: 객체 지향 설계, UMLJava.스프링거, 2000년ISBN 1-85233-275-1. 페이지 5.도어
  26. ^ Jon Holt Institute of Electric Engineeres (2004).시스템 엔지니어링용 UML: Wheels IET, 2004, ISBN 0-86341-354-4. 페이지 58을 보면서
  27. ^ 마누엘 알멘드로스 지메네즈, 헤수스 & 이리바르네, 루이스(2007).시퀀스 다이어그램을 사용한 사용 사례 관계 설명컴퓨터J. 50. 116-128. 10.1093/comjnl/bxl053.
  28. ^ Iman Poernomo (2006)의 "메타 오브젝트 퍼실리티 타이핑 완료" : 응용 컴퓨팅에 관한 2006 ACM 심포지엄 SAC '06 Proceedings' 진행. 페이지 1845~1849
  29. ^ "UML 2.4.1 Infrastructure". Omg.org. 5 August 2011. Retrieved 10 April 2014.
  30. ^ B. 헨더슨셀러스; C.Gonzalez-Perez (2006)"UML 1.x 및 2.0에서의 고정관념 메커니즘의 사용 및 남용" (모델 주도 엔지니어링 언어 및 시스템)스프링거 베를린 / 하이델베르크
  31. ^ "UML 2.5: Do you even care?". "UML은 어디에나 있습니다."
  32. ^ "Death by UML Fever".
  33. ^ "Ivar Jacobson on UML, MDA, and the future of methodologies".

추가 정보

외부 링크