상세 컨텐츠

본문 제목

UML (Unified Modeling Language)

프로그래밍

by 라제폰 2008. 12. 13. 20:49

본문

UML은 뭐하는것 ? #


  • 일종의 설계에 필요한 요소를 통합하여 하나의 언어수단으로 다른 사람과 나 자신간의 설계구조를 상호 이해하고 개발에 보다 치밀한 완성도를 이끌어 낼수 있도록 하는 설계언어입니다.
  • UML(Unified Modeling Language)이라는 언어의 목적은 단순한 소프웨어의 개발에 관련된 설계뿐만아니라 비지니스 프로세스, 업무처리, 네트워크 설계등의 다양한 분야를 나타낼수 있도록 만들어졌습니다. 이름에서 알수 있다 싶이 Unified라는 단어가 범용적인 목적을 나타낸다고 할수 있습니다.

Model View Diagram(?) #


: UML과 같은 모델 기반의 구성에 대한 간단한 설명입니다. 프로그래밍 기법으로 본다면 MVC 모델과 비슷하죠.

  • Model Element : 소프트웨어의 정보를 담고 있는 요소를 말합니다.
  • View Element : Model Element를 시각적으로 표현하는 요소입니다. 1개의 요소를 사상하여 여러개의 View 요소가 만들어 질수 있겟죠.
  • Diagram : View Element의 집합으로 사용자의 생각, 설계안을 표현한것을 의미합니다.

http://wiki.kldp.org/pds/UML/modelViewDia.gif


Diagram #

Structural Modeling #


  • 시스템, 소프트웨어의 구조적 측면을 나타내는 다이어그램들입니다.

Class diagram #


  • Package
  • Class
  • Interface
  • Generalization
  • Association
  • Dependency
  • Realization

Component diagram #


  • Component
  • Interface
  • Dependency
  • Realization

Deployment diagram #


  • Node
  • Assocation
  • Dependency

Behavior Modeling #


  • 시스템, 소프트웨어의 행위적 측면을 나타내는 다이어그램들입니다.

Use case diagram #


  • 여러 경우의 예를 가지고 상호 연관을 짓는 것이라 하겠습니다. 어떤것이 필요하고 또한 어떤것이 반드시는 아니지만 경우에 따라서 필요한 행위들을 기술한다고 보시면 될듯 합니다.

  • Actor : 행위자 자체를 나타내는 것으로 수평으로 손을 들고 다리를 벌린 상태의 아이콘(막대인간:졸라맨~)을 사용하여 Use case로의 시작과 그 행동결과를 받는 위치에 그립니다.
http://wiki.kldp.org/pds/UML/uml_actor.png

  • Use case : 쓰임새를 기술한다고 할수 있는데 대상체에 대한 명세화만 하며 행동방법은 규정하지 않는것을 원칙으로 합니다. 동그라미로 표현합니다.
http://wiki.kldp.org/pds/UML/uml_usecase.png

  • System : Use case의 특정한 분석을 통하여 하나의 묶음의 Use case를 System으로 부르며 사각형으로 표기하고 그 안에 보통은 Use case의 동그라미가 있습니다. => Use case diagram에 넣는것 좀 문제가 있을듯합니다. 분석 기법적 요소가 아닐까 생각이 드는데요.. --idlock
  • Generalization : 같은 계통의 일반적 요소와 구체적 요소의 관계를 표시합니다. 주로 일반화라고 하죠.
http://wiki.kldp.org/pds/UML/Use_Generalization.gif

  • Association: 2개 이상의 객체의 관계성을 표시하고, 각 관계는 연관관계(Assocation), 집합관계(Aggregate), 합성관계(Composite)로 나누워질수 있습니다.
http://wiki.kldp.org/pds/UML/Use_Assciation.gif

  • Include : Use case가 다른 Use case를 포함하는 관계이고, 보통 공통 Use Case를 나타낼때 주로 씁니다.
http://wiki.kldp.org/pds/UML/Use_Include.gif

  • Extend : Use case가 다른 Use case를 확장하는 관계이고, 이거이랑 Generalization이랑 헷갈리기가 쉬운데, 일반화와 다르다고 생각될점은 특수한 기능 확장으로 생각하시면 좋을듯합니다.
http://wiki.kldp.org/pds/UML/Use_Extend.gif
Statechart diagram #

  • 특정요소(Class, Subsystem, Component..,System)가 어떤 상태를 갖게되고, 각 요소의 상태전이가 생기는지를 표현하게됩니다. Activity Diagram과 많은 View 요소를 공유하지만 흐름보다 각 객체의 상태에 중심을 둡니다.
Activity diagram #

  • 어떤 사건에 의하여 처리되는 활동을 명시하는 것을 말하며 비교하자면 우리가 일반적으로 말하는 Flow chart에 매우 흡사합니다.
Interaction diagrams (Sequence diagram) #

  • 시간을 중심으로 이루어지는 순차적인 실행 또는 동시적인 실행관계를 시간에 따른 순서로 기술한다고 보시면 됩니다.
Interaction diagrams (Collaboration diagram) #

  • 상호 객체간의 신호전달에 대한 것을 기술한다고 보시면 됩니다.

UML Tool #

오픈소스 #


기타 #


  • 이 페이지가 혹시 UserModeLinux = UML과 추후 헷갈리거나 할수도 있을듯... 관리자님이나 다른분의 명쾌한(?) 조언 부탁드립니다. by idlock
    Wikipedia의 경우에는 WikiPedia:UML페이지가 있고, 거기서 링크된 User-mode Linux와 Unified Modeling Language 페이지들이 따로 있습니다. UML 페이지 하단에는 "이 패이지는 애매한 점을 풀기 위해 만들어진 페이지입니다,"라는 표시가 되어 있습니다. 혹시 국내에 User-mode Linux에 관심 있으신 분들이 계시면 이 페이지도 비슷하게 편집될 수 있겠죠.. --검은해
  • 그냥 몇가지 살붙여봅니다. - minzkn
  • 이 문서가 다루는 내용은 솔직히 굉장히 중요한 분야인것은 사실입니다. 나름대로 정리차원에서 정리좀 해볼려고 합니다.
  • 적다보니 각 Diagram별로 각 요소 별로 상당히 방대한 양이 들어갈듯합니다. 양이 늘어나면 하부 분리해야할듯 idlock

 


관련글 더보기