본문 바로가기

Whatever

UML 작성도 코딩하는 시대

프로그램을 설계할때 흔히 UML(unified modeling language) 다이어그램을 사용해서 클래스관계 등을 정의한다.

클래스 설계에 있어서 UML 다이어그램은 클래스 관계를 간단한 도형 / 관계 화살표를 사용하여 직관적으로 표현하기 때문에 굉장히 효과적이다.

요즘은 UML 다이어그램을 그리는 툴도 있고 MS VisualStudio에서는 IDE 내애서 클래스 다이어그램을 작성하고 바로 코드로 변환해주는 기능도 제공하고 있다.


그런데 간혹 마우스로 드래그/드랍 형태의 툴이 귀찮을때가 있다. 이런 분들을 위해 코딩하는 UML 다이어그램에 대해 소개하려 한다.


처음으로 알게된 곳은 PlantText라는 사이트.

PlantText는 직관적인 스크립트를 사용하고 있어서 따로 배워야한다는 느낌이 거의 안든다.

클래스의 정의는 


class 클래스명 {

[+|-|#] 타입 변수혹은함수명

}


의 형태이고 +는 public, -는 private, #은 protected를 의미한다. 그리고 클래스 사이의 관계는


부모클래스 머리모양-방향- 자식클래스: 관계


으로 표현한다. 예를들어 Base <|-down- Derived: Inheritance 는 상속관계를 의미한다.

자세한 문법은 http://plantuml.sourceforge.net/classes.html를 참고하자.



재밌는거 하나는 결과 이미지를 TXT로 볼 수 있다는점이다. 결과 하단에 저장 형식이 있는데, TXT를 눌러보면 아래처럼 텍스트 형태로 출력된다. 간략화 된 형태이기는 하지만, 분명 필요했던 기능이다.


         ,------.   ,----.      
         |Window|   |Door|      
         |------|   |----|      
         |------|   |----|      
         `------'   `----'      
                                
                                
       ,-------------------.    
       |Dwelling           |    
       |-------------------|    
       |+Int Windows       |    
       |-------------------|    
       |+void LockTheDoor()|    
       `-------------------'    
                  |             
,---------.  ,-------.   ,-----.
|Apartment|  |Commune|   |House|
|---------|  |-------|   |-----|
|---------|  |-------|   |-----|
`---------'  `-------'   `-----'

이런식으로 나온다.


PlantText 외에도 http://www.codeuml.com/ 라는 곳도 있고, 찾아보면 굉장히 많다. 그래도 PlantText가 가장 쓰기 편했다.

'Whatever' 카테고리의 다른 글

초대장 나눠드립니다  (63) 2015.08.02
초대장 나눠드려요  (44) 2015.05.18
Oculus Crescent Bay 체험기  (1) 2015.05.16
초대장 나눠드려요  (13) 2014.12.11
SF 사전  (0) 2014.01.04