Á¦ 10 Àå. ³ëÅ×ÀÌ¼Ç È®ÀåÇϱâ

ÀÌ Àå¿¡¼­´Â Notation ExtensionÀÌ ¹«¾ùÀÌ¸ç »ç¿ëµÇ´Â ±âº» °³³äµéÀº ¾î¶² °ÍÀÌ ÀÖ´ÂÁö ¼³¸íÇϰí, Notation ExtensionÀ» À§Çؼ­ »ç¿ëµÇ´Â ¾ð¾îÀÇ ±âº» ±¸¹®¿¡ ´ëÇÑ ¸í¼¼¸¦ °£·«ÇÏ°Ô ¼Ò°³ÇÑ´Ù. ±×¸®°í ¿¹Á¦¸¦ ÅëÇØ¼­ »õ·Î¿î Á¾·ùÀÇ ´ÙÀ̾î±×·¥À» Notation ExtensionÀ» ÀÌ¿ëÇÏ¿© ¾î¶»°Ô Ãß°¡ÇÒ ¼ö ÀÖ´ÂÁö ¼³¸íÇÑ´Ù.

¿Ö ³ëÅ×ÀÌ¼Ç È®ÀåÀÌ ÇÊ¿äÇѰ¡?

Notation ExtensionÀº UML ¸ðµ¨¿¡ ´ëÇÑ Ç¥±â¹ýÀ» »ç¿ëÀÚ°¡ Á÷Á¢ Á¤ÀÇÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Ç¥±â¹ýÀ» À§ÇÑ È®Àå °³³äÀÌ´Ù. StarUMLÀº ÀÌ·¯ÇÑ Notation ExtensionÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â Ç÷§ÆûÀ» Á¦°øÇÑ´Ù. ±×·¯¸é UMLÀÌ Àִµ¥ ÀÌ·¯ÇÑ Notation Extension °³³äÀÌ ¿Ö ÇÊ¿äÇÒ±î?

µû¶ó¼­ Ç¥±â´Â ±âÁ¸ ¸ðµ¨¸µ ¿µ¿ªÀÇ Ç¥±â´Â ±×´ë·Î »ç¿ëÇϸ鼭µµ, µ¥ÀÌÅͷμ­ÀÇ ¸ðµ¨ Á¤º¸´Â UML ¸ðµ¨·Î Ç¥ÇöÇϵµ·Ï ÇÔÀ¸·Î½á, ´Ù¸¥ ¸ðµ¨¸µ ¿µ¿ª°ú UML ¸ðµ¨¸µ ¿µ¿ª°£ÀÇ »óÈ£ º¸¿Ï, È¿À²¼º ¹× ȣȯ¼ºÀ» »ç¿ëÀÚ¿¡°Ô Á¦°øÇÒ ¼ö ÀÖ´Ù.

³ëÅ×ÀÌ¼Ç È®Àå ¾ð¾î(Notation Extension Language)

±¸¹®ÀÇ ±âº» ÇüÅÂ

Notation Extension LanguageÀÇ ±¸¹®Àº Scheme ¾ð¾î(LISPÀÇ Dialect)¿Í À¯»çÇÑ ÇüÅÂÀÇ ±¸¹®À» °¡Áø´Ù. ±¸¹®ÀÇ ±âº»Àº ½ÄÀ̸ç, Àüü°¡ ÇϳªÀÇ ½ÄÀ¸·Î ±¸¼ºµÈ´Ù. ½ÄÀº °ªÀ̰ųª, ¿¬»ê½ÄÀ¸·Î ±¸¼ºµÈ´Ù. °ªÀº ½Ç¼ö, Á¤¼ö, ½ºÆ®¸µ, ³í¸®°ª, ³Î°ª, ½Äº°ÀÚ¸¦ ¸»ÇÏ¿©, ¿¬»ê½ÄÀº "("·Î ½ÃÀÛÇØ¼­ ")"·Î ³¡³­´Ù. °ýÈ£ »çÀÌ¿¡´Â ¿¬»êÀÚ¿Í ÀÎÀÚ¸¦ Ç¥ÇöÇÏ´Â ¶Ç ´Ù¸¥ ½ÄÀÌ ¼ø¼­´ë·Î ³ªÅ¸³ª´Â ÇüŸ¦ ÃëÇÑ´Ù. ¿¬»êÀÚ³ª ½Äº°ÀÚ´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù. ±×¸®°í C++°ú ÀÚ¹ÙÀÇ Ä¿¸ÇÆ® ¹æ½ÄÀ» µû¸¥´Ù. ÇÑ ¶óÀο¡ ´ëÇÑ Ä¿¸Çµå´Â "//"¸¦ ÀÌ¿ëÇÏ°í ¿©·¯ ¶óÀο¡ °ÉÄ£ Ä¿¸ÇÆ®´Â "/*  */"¸¦ »ç¿ëÇÑ´Ù.

expr ::= flt | int | str | bool | nil | ident | "(" oper (expr)* ")" ;

Notation Extension LanguageÀÇ ½ÃÀÛ ¿¬»ê½ÄÀº notationÀ̶ó´Â ¿¬»êÀÚ·Î ½ÃÀ۵ȴÙ. ±×¸®°í ÀÎÀÚ½ÄÀº onarrange¿Í ondraw¶ó´Â ¿¬»êÀÚ¸¦ °®´Â ½ÄÀ¸·Î ±¸¼ºµÈ´Ù. notationÀº ½ºÅ×·¹¿ÀŸÀÔ Çϳª¿¡ ´ëÀÀÇϴ ǥ±â¹ýÀ» Á¤ÀÇÇÑ´Ù. µû¶ó¼­ ½ºÅ×·¹¿ÀŸÀÔÀÌ Àû¿ëµÈ ¸ðµ¨ ¿ä¼Ò°¡ È­¸é¿¡ º¸¿©Áú ¶§ notation½ÄÀÌ ¼öÇàµÈ´Ù. À̶§ onarrange ½ÄÀÌ ¿ì¼± ½ÇÇàµÇ¾î È­¸é¿¡ Ç¥±â¹ýÀ» ±×¸®±â Àü¿¡ ¹èÄ¡¿¡ °ü·ÃµÈ ½ÄµéÀ» ¼öÇàÇÑ´Ù. ondraw ½ÄµéÀº È­¸é¿¡ Á÷Á¢ ±×¸®´Â ½ÄÀ» ¼öÇàÇÑ´Ù.

(notation
    (onarrange ...)
    (ondraw ...)
) 

onarrange¿Í ondraw ¿¬»ê½ÄÀÌ ÀÎÀÚ ½ÄÀ¸·Î °¡Áú¼ö ÀÖ´Â ½ÄÀº Å©°Ô ´ÙÀ½°ú °°ÀÌ 6°¡Áö Á¾·ùÀÌ´Ù.

sequence expression

sequence ½ÄÀº javaÀÇ blockó·³ ÀÎÀÚ·Î ¿À´Â ½ÄµéÀ» ¼ø¼­´ë·Î ½ÇÇàÇÑ´Ù. sequence ½ÄÀº ÀÎÀÚ·Î °³¼öÀÇ Á¦ÇѾøÀÌ ¿©·¯°³ÀÇ ¿¬»ê½ÄÀ» °¡Áö´Â ÇüÅ·Π±¸¼ºµÈ´Ù.

(sequence expr1 expr2 ...)

´ÙÀ½ ¿¹Á¦´Â 3°³ÀÇ ¿¬»ê½ÄÀ» ÇϳªÀÇ sequence ½ÄÀ¸·Î ¹­´Â °ÍÀ» º¸¿©ÁØ´Ù.

(sequence
  (+ 10 20)       // 10 + 20
  (- 20 30 40)    // 20 - 30 - 40
  (/ 10 20)       // 10 / 20
)

if expression

if ½ÄÀº Á¶°ÇÀ» ó¸®Çϱâ À§ÇÑ ±¸¹®À» ½ÄÀ¸·Î Ç¥ÇöÇϰí ÀÖ´Ù. ù¹øÂ° ÀÎÀڽĴ Á¶°Ç½ÄÀ̰í, µÎ¹øÂ° ÀÎÀÚ½ÄÀº Á¶°Ç½ÄÀÌ ÂüÀÏ ¶§ ¼öÇàµÇ´Â ½ÄÀ̰í, ¼¼¹øÂ° ÀÎÀÚ½ÄÀº Á¶°Ç½ÄÀÌ °ÅÁþÀÏ ¶§ ¼öÇàµÇ´Â ½ÄÀÌ´Ù.  ¼¼¹øÂ° ÀÎÀÚ½ÄÀº »ý·« °¡´ÉÇÏ´Ù. Á¶°Ç½ÄÀÌ °ÅÁþÀÌ°í ¼¼¹øÂ° ½ÄÀÌ »ý·«µÈ °æ¿ì¿¡ if ½Ä³»¿¡¼­ ¾Æ¹«·± ¼öÇ൵ ÇÏÁö ¾Ê°í ½ÄÀ» ºüÁ® ³ª¿Â´Ù.

(if condition-expr on-true-expr on-false-expr? )

´ÙÀ½ ¿¹Á¦´Â º¯¼ö iÀÇ °ªÀÌ 0¿¡¼­ 30 »çÀÌÀÇ °ªÀ̶ó¸é iÀÇ °ªÀ» Áõ°¡ÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é iÀÇ °ªÀ» °¨¼ÒÇÏ´Â ¿¹Á¦ÀÌ´Ù.

(if (or (<= i 0) (>= i 30))    // if (i <= 0 || i >= 30)
    (set count (+ count 1))    //   count++; 
    (set count (- count 1))    // else
)                              //   count--;

for expression

for ½ÄÀº ƯÁ¤ º¯¼ö°ªÀ» ÃʱⰪ¿¡¼­ Á¾·á°ª±îÁö ¹üÀ§±îÁö Áõ°¡Çϸ鼭 ¹Ýº¹ÀûÀ¸·Î ½ÄÀ» ¼öÇàÇÑ´Ù. ù¹øÂ° ÀÎÀÚ´Â ¹Ýº¹¿¡ »ç¿ëµÉ º¯¼öÀÇ À̸§ÀÌ´Ù. µÎ¹øÂ° ÀÎÀÚ½ÄÀº º¯¼öÀÇ ÃʱⰪÀÌ°í ¼¼¹øÂ° ÀÎÀÚ½ÄÀº º¯¼öÀÇ Á¾·á°ªÀÌ´Ù. ¸¶Áö¸· ÀÎÀÚ½ÄÀº ¹Ýº¹À» Çϸ鼭 ¼öÇàÇÒ ½ÄÀ» ÀǹÌÇÑ´Ù.

(for identifier init-expr end-expr expr)

´ÙÀ½Àº 1¿¡¼­ 10±îÁö°ªÀ» È­¸é¿¡ Ãâ·ÂÇÏ´Â ¿¹Á¦ÀÌ´Ù.

(for i 1 10                           // for (int i = 1; i <= 10; i++)
    (textout 100 (+ 100 (* i 20))     //    textout(100, 100+(i*20), i);
             i
    )
) 

set expression

set expressionÀº º¯¼öÀÇ °ªÀ» ÇÒ´çÇÏ´Â ½ÄÀÌ´Ù. º¯¼öÀÇ ¼±¾ðÀº ÇÊ¿ä ¾øÀ¸¸ç »ç¿ëÇÏ´Â ¼ø°£ ¼±¾ðµÇ¸ç, Çѹø ¼±¾ðµÇ¸é Àü¿ª º¯¼ö·Î »ç¿ëµÈ´Ù.

(set identifier value-expr)

´ÙÀ½Àº cÀ̶ó´Â À̸§ÀÇ º¯¼ö¿¡ a¿Í b ½ºÆ®¸µ º¯¼öÀÇ °ªÀ» concatenateÇÏ´Â ¿¹Á¦ÀÌ´Ù.

(set a 'My name is ')       // a = "My name is ";
(set b 'foo')               // b = "foo";
(set c (concat a b))        // c = a + b;

arthmetic, logical, comparison operator

Á¦°øµÇ´Â ¼öÇÐ ¿¬»êÀÚ´Â +, -, *, / À̸ç, ³í¸® ¿¬»êÀÚ´Â and, or, not  3°¡Áö ¿¬»êÀÚ°¡ Á¦°øµÇ¸ç, ºñ±³¸¦ À§Çؼ­ =, !=, <, <=, >, >= ¿¬»êÀÚ°¡ Á¦°øµÈ´Ù. ´ÙÀ½Àº ÀÌ·¯ÇÑ ¿¬»êÀÚÀÇ ´Ù¾çÇÑ »ç¿ë¿¹Á¦ÀÌ´Ù.

(+ 1 (/ 10 5) (- (* 2 3) 6))     // 1 + (10/5) + (2*3-6)
(and (< i 10) (not (= j 20)))    // (i < 10) && (!(j == 20))

built-in function

Notation Extension Language ³»¿¡¼­ Á¤ÀÇµÈ Built-in ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ºÐ·ù µÈ´Ù.

¼öÇÐ ÇÔ¼ö

¼öÇÐ Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(sin angle) angle¿¡ ´ëÇÑ sin °ªÀ» ¹ÝȯÇÑ´Ù.
(cos angle) angle¿¡ ´ëÇÑ cos °ªÀ» ¹ÝȯÇÑ´Ù.
(tan angle) angle¿¡ ´ëÇÑ tan °ªÀ» ¹ÝȯÇÑ´Ù.
(trunc val) val¿¡ ´ëÇØ¼­ ¼Ò¼öÁ¡ ¹ö¸² °ªÀ» ¹ÝȯÇÑ´Ù.
(round val) val¿¡ ´ëÇØ¼­ ¹Ý¿Ã¸²°ªÀ» ¹ÝȯÇÑ´Ù.

¹®ÀÚ¿­ ó¸® ÇÔ¼ö

¹®ÀÚ¿­ ó¸® Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(concat str1 str2...) ÀÎÀÚ ½ºÆ®¸µµéÀ» ºÙ¿©¼­ ¿¬°áµÈ ÇϳªÀÇ ½ºÆ®¸µÀ» ¹ÝȯÇÑ´Ù.
(trim str) str ÀÎÀÚ ½ºÆ®¸µÀÇ ¾ÕµÚ¿¡ Á¸ÀçÇÏ´Â °ø¹é ¹®ÀÚ°¡ Á¦°ÅµÈ ½ºÆ®¸µÀ» ¹ÝȯÇÑ´Ù.
(length str) str ÀÎÀÚ ½ºÆ®¸µÀÇ ±æÀ̸¦ ¹ÝȯÇÑ´Ù.
(tokenize str deli) str ÀÎÀÚ ½ºÆ®¸µÀ¸·Î, deli ÀÎÀÚ¸¦ ±¸ºÐÀÚ·Î, ³ª´©¾îÁø ½ºÆ®¸µÀÇ ¸®½ºÆ®¸¦ ¹ÝȯÇÑ´Ù.

¸®½ºÆ® ó¸® ÇÔ¼ö

¸®½ºÆ® ó¸® Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(list val1 val2 ...) ÀÎÀÚµé·Î ±¸¼ºµÈ ¸®½ºÆ®¸¦ ¹ÝȯÇÑ´Ù.
(append lst lst) µÎ °³ÀÇ ¸®½ºÆ®¸¦ ÇÕÇÑ ¸®½ºÆ®¸¦ ¹ÝȯÇÑ´Ù.
(append lst item)
(itemat lst index) index À§Ä¡¿¡ Á¸ÀçÇÏ´Â ¸®½ºÆ®¸¦ ¹ÝȯÇÑ´Ù.
(itemcount lst) lst ¸®½ºÆ®¾È¿¡ Á¸ÀçÇÏ´Â ¾ÆÀÌÅÛ °³¼ö¸¦ ¹ÝȯÇÑ´Ù.

¸ðµ¨ Á¢±Ù ÇÔ¼ö

¸ðµ¨ Á¢±Ù Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(mofattr elem attr) elem ÀÎÀÚ(IElement)ÀÇ attr ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â ¼Ó¼ºÀÇ °ªÀ» ¹ÝȯÇÑ´Ù.
(mofsetattr elem attr val) elem ÀÎÀÚ(IElement)ÀÇ attr ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â ¼Ó¼ºÀ» val°ªÀ» ¼³Á¤ÇÑ´Ù.
(mofref elem ref) elem ÀÎÀÚ(IElement)ÀÇ ref ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â reference¸¦ ¹ÝȯÇÑ´Ù.
(mofcolat elem col at) elem ÀÎÀÚÀÇ col À̸§À¸·Î ÇÏ´Â ¸ðµ¨¸µ ¿ä¼Ò ÂüÁ¶ÀÇ collection¿¡¼­ at À§Ä¡¿¡ ÀÖ´Â °´Ã¼ ÂüÁ¶¸¦ ¹ÝȯÇÑ´Ù.
(mofcolcount elem col) elem ÀÎÀÚ(IElement)ÀÇ col ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â collection¿¡ Æ÷ÇÔµÈ ¿ä¼ÒÀÇ °³¼ö¸¦ ¹ÝȯÇÑ´Ù
(constraintval elem name) elem ÀÎÀÚ(IElement)ÀÇ name ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â constraintÀÇ °ªÀ» ¹ÝȯÇÑ´Ù.
(tagval elem tagset name) elem ÀÎÀÚ(IElement)ÀÇ tagset ÀÎÀÚ °ªÀÇ TagDefinitionSetÀÇ name ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â primitive ŸÀÔÀÇ Å±װªÀ» ¹ÝȯÇÑ´Ù.
(tagref elem tagset name) elem ÀÎÀÚ(IElement)ÀÇ tagset ÀÎÀÚ °ªÀÇ TagDefinitionSetÀÇ name ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â reference ŸÀÔÀÇ Å±װªÀ» ¹ÝȯÇÑ´Ù.
(tagcolat elem tagset name at) elem ÀÎÀÚ(IElement)ÀÇ tagset ÀÎÀÚ °ªÀÇ TagDefinitionSetÀÇ name ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â referenceÀÇ collection ŸÀÔÀÏ °æ¿ìÀÇ at À§Ä¡ÀÇ Å±װªÀ» ¹ÝȯÇÑ´Ù.
(tagcolcount elem tagset name) elem ÀÎÀÚ(IElement)ÀÇ tagset ÀÎÀÚ °ªÀÇ TagDefinitionSetÀÇ name ÀÎÀÚ °ªÀ» À̸§À¸·Î ÇÏ´Â referenceÀÇ collection ŸÀÔÀÏ °æ¿ìÀÇ collection¿¡ Æ÷ÇÔµÈ ¿ä¼ÒÀÇ °³¼ö¸¦ ¹ÝȯÇÑ´Ù.

±×·¡ÇÈ °ü·Ã ÇÔ¼ö

½ºÅ¸ÀÏ °ü·Ã Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(setpencolor color)

PenÀÇ »ö±òÀ» ÀÎÀÚ color °ªÀ¸·Î º¯°æÇÑ´Ù. »ö±òÀº ´ÙÀ½ °ª Áß Çϳª¸¦ °¡Áú¼ö ÀÖ´Ù.

Value Meaning
clNone White
clAqua Aqua
clBlack Black
clBlue Blue
clCream Cream
clDkGray Dark Gray
clFuchsia Fuchsia
clGray Gray
clGreen Green
clLime Lime green
clLtGray Light Gray
clMaroon Maroon
clMedGray Medium Gray
clMoneyGreen Mint green
clNavy Navy blue
clOlive Olive green
clPurple Purple
clRed Red clGrayText
clSilver Silver
clSkyBlue Sky blue
clTeal Teal
clWhite White
clYellow Yellow

(setpenstyle style)

PenÀÇ styleÀ» º¯°æÇÑ´Ù. psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrameÁßÀÇ ÇϳªÀÇ °ªÀÌ °¡´ÉÇÏ´Ù.

Value Meaning
psSolid A solid line.
psDash A line made up of a series of dashes.
psDot A line made up of a series of dots.
psDashDot A line made up of alternating dashes and dots.
psDashDotDot A line made up of a series of dash-dot-dot combinations.
psClear No line is drawn (used to omit the line around shapes that draw an outline using the current pen).
psInsideFrame A solid line, but one that may use a dithered color if Width is greater than 1.
(setbrushcolor color) BrushÀÇ »ö±òÀ» ÀÎÀÚ color °ªÀ¸·Î º¯°æÇÑ´Ù.
(setbrushstyle style) BrushÀÇ styleÀ» º¯°æÇÑ´Ù. ´ÙÀ½ Áß ÇϳªÀÇ °ªÀÌ °¡´ÉÇÏ´Ù.

bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross

(setfontface font) ÀÎÀÚÀÇ ÆùÆ® À̸§À¸·Î ÆùÆ®¸¦ º¯°æÇÑ´Ù.
(setfontcolor color) ÆùÆ®ÀÇ »ö±òÀ» ÀÎÀÚ color °ªÀ¸·Î º¯°æÇÑ´Ù.
(setfontsize size) ÆùÆ®ÀÇ Å©±â¸¦ ÀÎÀÚ °ªÀ¸·Î º¯°æÇÑ´Ù.
(setfontstyle style)

ÆùÆ®ÀÇ ½ºÅ¸ÀÏÀ» ÀÎÀÚÀÇ °ªÀ¸·Î º¯°æÇÑ´Ù. fsBold, fsItalic, fsUnderline, fsStrikeOut °ªÀÇ Á¶ÇÕÀ¸·Î ±¸¼ºµÇ¸ç, µÎ°³ ÀÌ»óÀÇ °ªÀ» ÁöÁ¤ÇÒ °æ¿ì¿¡´Â | ¹®ÀÚ¸¦ »ç¿ëÇØ¼­ °ªÀ» Á¶ÇÕÇÑ´Ù.

Value Meaning
fsBold The font is boldfaced.
fsItalic he font is italicized.
fsUnderline The font is underlined.
fsStrikeOut The font is displayed with a horizontal line through it.
(setdefaultstyle) »ç¿ëÀÚÀÇ Á¶ÀÛ¿¡ ÀÇÇØ¼­ º¯°æµÈ Pen, Brush, Font Á¤º¸¸¦ ¿ø·¡ Á¤º¸·Î º¹±¸ÇÑ´Ù.

ÅØ½ºÆ® Ãâ·Â °ü·Ã Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(textheight str) ÀÎÀÚ ½ºÆ®¸µÀÇ height °ªÀ» ¹ÝȯÇÑ´Ù.
(textwidth str) ÀÎÀÚ ½ºÆ®¸µÀÇ width °ªÀ» ¹ÝȯÇÑ´Ù.
(textout x y str) x, y ÁÂÇ¥¿¡ str ½ºÆ®¸µÀ» Ãâ·ÂÇÑ´Ù.
(textbound x1 y1 x2 y2 yspace text clipping) (x1, y1)Á¡°ú (x2, y2)Á¡ÀÇ ¿µ¿ª¿¡ text¸¦ Ãâ·ÂÇÑ´Ù. yspace´Â ¹®ÀÚÀÇ Çà°£ °ø¹éÀÌ´Ù. clipping°ªÀÌ ÂüÀÏ °æ¿ì¿¡´Â ¿µ¿ª¿¡ Æ÷ÇԵǴ ¹®ÀÚ¸¸ Ãâ·ÂÇÑ´Ù.
(textrect x1 y1 x2 y2 x y str) (x1, y1)Á¡°ú (x2, y2)Á¡ÀÇ ¿µ¿ª¿¡¼­ x, y À§Ä¡¿¡ str ½ºÆ®¸µÀ» Ãâ·ÂÇÑ´Ù.

µµÇü °ü·Ã Built-in ÇÔ¼öÀÇ ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö ½Ã±×³ÊÃÄ ¼³¸í
(rect x1 y1 x2 y2) (x1, y1)Á¡°ú (x2, y2)Á¡À» ¿µ¿ªÀÇ ³¡Á¡À¸·Î ÇÏ´Â »ç°¢ÇüÀ» ±×¸°´Ù.
(filerect x1 y1 x2 y2) (x1, y1)Á¡°ú (x2, y2)Á¡À» ¿µ¿ªÀÇ ³¡Á¡À¸·Î Çϴ ä¿ò »ç°¢ÇüÀ» ±×¸°´Ù.
(ellipse x1 y1 x2 y2) (x1, y1)Á¡°ú (x2, y2)Á¡À» ¿µ¿ªÀÇ ³¡Á¡À¸·Î Çϴ Ÿ¿øÀ» ±×¸°´Ù.
(roundrect x1 y1 x2 y2 x3 y3) (x1, y1)Á¡°ú (x2, y2)Á¡À» ¿µ¿ªÀÇ ³¡Á¡À¸·Î ÇÏ´Â ³¡ÀÌ µÕ±Ù »ç°¢ÇüÀ» ±×¸°´Ù. x3, y3 °ªÀº µÕ±Ù ¸ð¼­¸® »ç°¢ÇüÀÇ Æø°ú ³ôÀ̸¦ ÀǹÌÇÑ´Ù.
(arc x1 y1 x2 y2 x3 y3 x4 y4) draws an arc inside an ellipse bounded by the rectangle defined by (X1,Y1) and (X2,Y2). The arc starts at the intersection of the line drawn between the ellipse center ((X1+X2) / 2.0,(Y1+Y2) / 2.0) and the point (X3,Y3) and is drawn counterclockwise until it reaches the intersection of the line drawn between the ellipse center and the point (X4,Y4)
(pie x1 y1 x2 y2 x3 y3 x4 y4) draws a pie-shaped wedge on the image. The wedge is defined by the ellipse bounded by the rectangle determined by the points (X1, Y1) and X2, Y2). The section drawn is determined by two lines radiating from the center of the ellipse through the points (X3, Y3) and (X4, Y4)
(drawbitmap x y img transparent) x, y À§Ä¡¿¡ img ÆÄÀϸíÀÇ À̹ÌÁö¸¦ Ãâ·ÂÇÑ´Ù. transparent ¼Ó¼º°ªÀÌ trueÀÌ¸é ¹è°æ»öÀ» Åõ¸íÇÏ°Ô Ãâ·ÂÇÑ´Ù. transparent ¼Ó¼ºÀº »ý·«µÉ¼ö ÀÖÀ¸¸ç, »ý·«µÉ °æ¿ì¿¡´Â false·Î ¼³Á¤µÈ´Ù.
x1, y1, x2, y2 ¹üÀ§¿¡ img ÆÄÀϸíÀÇ À̹ÌÁö¸¦ ´Ã·Á¼­ Ãâ·ÂÇÑ´Ù.
(drawbitmap x1 y1 x2 y2 img transparent)
(moveto x y) ¼±À» ±×¸®´Â ÆÒÀ» x y À§Ä¡·Î À̵¿ÇÑ´Ù.
(lineto x y) ¸¶Áö¸·À¸·Î ÆÒÀÌ À̵¿µÈ À§Ä¡¿¡¼­ x y À§Ä¡¸¦ ¿¬°áÇÏ´Â ¼±À» ±×¸°´Ù.
(line x1 y1 x2 y2) (x1, y1)Á¡°ú (x2, y2)Á¡À» ¿¬°áÇÏ´Â ¼±À» ±×¸°´Ù.
(pt x y) ÀÎÀÚ¸¦ x, y ÁÂÇ¥·Î ÇÏ´Â Æ÷ÀÎÆ® °´Ã¼¸¦ ¹ÝȯÇÑ´Ù.
(polygon (pt x1 y1) (pt x2 y2) ...) ÀÎÀÚ Æ÷ÀÎÆ® °´Ã¼¸¦ ¿¬°áÇÏ´Â polygonÀ» ±×¸°´Ù.
(polyline (pt x1 y1) (pt x2 y2) ...) ÀÎÀÚ Æ÷ÀÎÆ® °´Ã¼¸¦ ¿¬°áÇÏ´Â polylineÀ» ±×¸°´Ù.
(polybezier (pt x1 y1) (pt x2 y2) ...) ÀÎÀÚ Æ÷ÀÎÆ® °´Ã¼¸¦ ¿¬°áÇÏ´Â bezier °î¼±À» ±×¸°´Ù.
(ptatx index) ´ë»ó ¸ðµ¨ÀÇ ºä°¡ EdgeÀÏ °æ¿ì¿¡ ´ëÇØ¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù. EdgeÀÇ Á¡µéÁß¿¡ index À§Ä¡ÀÇ x ÁÂÇ¥¸¦ ¹ÝȯÇÑ´Ù.
(ptaty index) ´ë»ó ¸ðµ¨ÀÇ ºä°¡ EdgeÀÏ °æ¿ì¿¡ ´ëÇØ¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù. EdgeÀÇ Á¡µéÁß¿¡ index À§Ä¡ÀÇ y ÁÂÇ¥¸¦ ¹ÝȯÇÑ´Ù.
(ptcount) ´ë»ó ¸ðµ¨ÀÇ ºä°¡ EdgeÀÏ °æ¿ì¿¡ ´ëÇØ¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù. EdgeÀÇ Á¡ °³¼ö¸¦ ¹ÝȯÇÑ´Ù.
(drawedge headOrTail endStyle)

It is available when current view element is edge element. it draws end of edge in argument style. Style is composed of the followings and seperator is "|" character.

´ë»ó ¸ðµ¨ÀÇ ºä°¡ EdgeÀÏ °æ¿ì¿¡ ´ëÇØ¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù. EdgeÀÇ ³¡ ¸ð¾çÀ» endStyle ÇüÅ·Π±×¸°´Ù. endStyleÀÇ °ªÀº ´ÙÀ½ÀÇ Á¶ÇÕÀ¸·Î ±¸¼ºµÇ¸ç, µÎ°³ ÀÌ»óÀÇ °ªÀ» ÁöÁ¤ÇÒ °æ¿ì¿¡´Â | ¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù.

Value Shape
esStickArrow
esSolidArrow
esTriangle
esDiamond
esMiniDiamond
esArrowDiamond
esCrowFoot
esHalfStickArrow
esBar
esDoubleBar
esBelowCircle
esCircle
esRect
esFilledTriangle
esFilledDiamond
esMiniFilledDiamond
esArrowFilledDiamond
esFilledHalfStickArrow
esFilledCircle
esFilledRect
esMiniHalfDiamond
(drawobject elem) ÀÎÀÚ elem(IView)¸¦ StarUML¿¡¼­ Á¤ÀÇµÈ ¹æ½ÄÀ¸·Î È­¸é¿¡ Ãâ·ÂÇÑ´Ù.
(arrangeobject elem) ÀÎÀÚ elem(IView)¸¦ StarUML¿¡¼­ Á¤ÀÇµÈ ¹æ½ÄÀ¸·Î Àç¹è¿­ÇÑ´Ù.

»õ·Î¿î ´ÙÀ̾î±×·¥ ŸÀÔÀ» ¸¸µé±â

Notation ExtensionÀ» »ç¿ëÇϱâ À§Çؼ­ ÁغñÇØ¾ßÇÒ »çÇ×ÀÌ ¸î°¡Áö ÀÖ´Ù. ³ëÅ×À̼ÇÀÌ Àû¿ëµÉ ¿ä¼Ò¸¦ ±â¼úÇÏ´Â ÇÁ·ÎÆÄÀÏÀÌ ÁغñµÇ¾î¾ß ÇÑ´Ù. ±×¸®°í ¾î¶»°Ô Ç¥±â¹ýÀÌ ±×·ÁÁúÁö Á¤ÀÇÇÏ´Â Notation Extension ÆÄÀÏ(.NXT È®ÀåÀÚ)ÀÌ ÇÊ¿äÇÏ´Ù. ÇÁ·ÎÆÄÀÏ¿¡¼­ ¾î¶² ½ºÅ×·¹¿À ŸÀÔ°ú ¾î¶² Notation Extension ÆÄÀÏÀÌ ¿¬°áµÇ¾îÁúÁö Á¤º¸¸¦ ±â¼úÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ Notation Extension¿¡¼­ »ç¿ëÇÒ ¼Ó¼ºÀ» ÇØ´ç ½ºÅ×·¹¿À ŸÀÔÀÇ Å±װª¿¡ Ãß°¡ÇÑ´Ù. ±×·¯¸é ÀÌ·¯ÇÑ °úÁ¤À» ER-Diagram¿¡ ´ëÇÑ Ç¥±â¹ý È®ÀåÀ» ÅëÇØ¼­ °£´ÜÇÏ°Ô ¾Ë¾Æº¸ÀÚ.

ÇÁ·ÎÆÄÀÏÀÇ Á¤ÀÇ

¸ÕÀú ER-Diagram¿¡¼­ »ç¿ëµÇ´Â ¿ä¼Ò¸¦ »ìÆìº¸¸é Table, Column, RelationshipµîÀÌ ÀÖ´Ù.

ÀÌµé ¿ä¼Ò¿¡ ´ëÇØ¼­ °¢°¢ ½ºÅ×·¹¿ÀŸÀÔÀ» ¸¸µé°í UML ¸ðµ¨ÀÇ Class, Attribute, AssociationÀ¸·Î °¢°¢ ¸ÅÇÎÇÏ¿© ½ºÅ×·¹¿ÀŸÀÔ Àû¿ë½Ã µ¿ÀÏÇÑ Àǹ̸¦ Áö´Ò¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ·¯ÇÑ °ü°è¸¦ ÇÁ·ÎÆÄÀÏ·Î ¿Å±â¸é ´ÙÀ½°ú °°´Ù. ÇÁ·ÎÆÄÀÏÀÇ <STEREOTYPELIST>¿¡  tableÀ̶ó´Â ½ºÅ×·¹¿ÀŸÀÔÀ» »õ·Î Ãß°¡Çϰí, ½ºÅ×·¹¿ÀŸÀÔÀÌ Àû¿ëµÉ ¸ðµ¨ÀÌ UMLClass ŸÀÔÀ̶ó´Â °ÍÀ» <BASECLASS>¿¡ ±â¼úÇÑ´Ù. ±×¸®°í tableÀÌ ER Çü½ÄÀÇ Ç¥±â¹ýÀ¸·Î º¸¿©Áöµµ·Ï Notation Extension ÆÄÀϸíÀ» <NOTATION>¿¡ ±â¼úÇÑ´Ù.

column ½ºÅ×·¹¿ÀŸÀÔÀÇ °æ¿ì´Â PK, FK, AK, IKµîÀÎÁö ±¸ºÐµÇ¾îÁ®¾ß ÇϹǷΠÀ̵é Á¤º¸¸¦ ÀúÀåÇϱâ À§Çؼ­ º°µµÀÇ Å±װªÀÌ ÇÊ¿äÇÏ´Ù. µû¶ó¼­ ÀÌ·¯ÇÑ Å±װªÀ» Á¤ÀÇÇϰí Àִ ű׼ ÂüÁ¶¸íÀ» <RELATEDTAGDEFINITIONSET>¿¡ ±â¼úÇÑ´Ù.

<PROFILE version="1.0">
    <HEADER>
        ...
    </HEADER>
    <BODY>
        <STEREOTYPELIST>
            <STEREOTYPE>
                <NAME>table</NAME>
                <BASECLASSES>
                    <BASECLASS>UMLClass</BASECLASS>
                </BASECLASSES>
                <NOTATION>table.nxt</NOTATION>
            </STEREOTYPE>

            <STEREOTYPE>
                <NAME>column</NAME>
                <BASECLASSES>
                    <BASECLASS>UMLAttribute</BASECLASS>
                    <RELATEDTAGDEFINITIONSET>table</RELATEDTAGDEFINITIONSET>
                </BASECLASSES>
            </STEREOTYPE>
            ...

        </STEREOTYPELIST>

ű׼ÂÀº <TAGDEFINITIONSETLIST>ÀÇ <TAGDEFINITIONSET>¿¡ ±â¼úµÇ¸ç, <TAGDEFINITION>¿¡¼­ Ãß°¡µÈ űװªÀÇ À̸§, ŸÀÔ, µðÆúÆ®°ªÀ» ±â¼úÇÑ´Ù. ÇöÀç´Â PK¿Í FKÀÎÁö¸¦ ÆÇº°Çϱâ À§ÇÑ Å±װªÀÌ Ãß°¡µÇ¾î ÀÖ°í, űװªÀÇ Å¸ÀÔÀº BooleanÀÌ´Ù. ±×¸®°í ±âº»°ªÀº false¸¦ °¡Áö¹Ç·Î½á, ¸ðµç columnÀº ±âº»ÀûÀ¸·Î ¾î¶°ÇÑ Å°µµ ºÎ¿©µÇÁö ¾Ê°í »ý¼ºµÈ´Ù.

        ...
        </STEREOTYPELIST>

        <TAGDEFINITIONSETLIST>
            <TAGDEFINITIONSET>
                <NAME>column</NAME>
                <BASECLASSES>
                    <BASECLASS>UMLAttribute</BASECLASS>
                </BASECLASSES>

                <TAGDEFINITIONLIST>
                    ...
                    <TAGDEFINITION lock="False">
                        <NAME>PK</NAME>
                        <TAGTYPE>Boolean</TAGTYPE>
                        <DEFAULTDATAVALUE>false</DEFAULTDATAVALUE>
                    </TAGDEFINITION>

                    <TAGDEFINITION lock="False">
                        <NAME>FK</NAME>
                        <TAGTYPE>Boolean</TAGTYPE>
                        <DEFAULTDATAVALUE>false</DEFAULTDATAVALUE>
                    </TAGDEFINITION>
                    ...
                </TAGDEFINITIONLIST>
            </TAGDEFINITIONSET>
        </TAGDEFINITIONSETLIST>

ÀÌ·¸°Ô Á¤ÀÇµÈ ½ºÅ×·¹¿ÀŸÀÔÀ» º¸¿©Áú ´ÙÀ̾î±×·¥À» ÇüŸ¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. <DIAGRAMTYPELIST>¿¡¼­ »õ·Î¿î ´ÙÀ̾î±×·¥ ER DiagramÀ̶ó´Â ŸÀÔÀ» Á¤ÀÇÇϰí ClassDiagramÀ» ±â¹ÝÀ¸·Î ÇÑ´Ù°í ¸í½ÃÇÑ´Ù. ±×¸®°í ER DiagramÀ» ÀÛ¼ºÇÒ ¶§ º¸¿©Áö´Â ÆÈ·¹Æ®ÀÇ ÂüÁ¶¸íÀ» <AVAILABLEPALLETTE>¿¡ ±â¼úÇÑ´Ù.

        <DIAGRAMTYPELIST>
            <DIAGRAMTYPE>
                <NAME>ER(IE) Diagram</NAME>
                <DISPLAYNAME>ER(IE) Diagram</DISPLAYNAME>
                <BASEDIAGRAM>ClassDiagram</BASEDIAGRAM>
                <ICON>DataModelDiagram.bmp</ICON>
                <AVAILABLEPALETTELIST>
                    <AVAILABLEPALETTE>ERD(IE)</AVAILABLEPALETTE>
                </AVAILABLEPALETTELIST>
            </DIAGRAMTYPE>
        </DIAGRAMTYPELIST>

À§¿¡¼­ ÂüÁ¶µÈ ÆÈ·¹Æ® ¸ñ·ÏÀÇ Á¤ÀÇ´Â <PALLETTE>ÀÇ <PALLETTEITEMLIST>¿¡ ±â¼úµÈ´Ù. ±×¸®°í ÆÈ·¹Æ®ÀÇ °¢ ¹öư¿¡ ´ëÇÑ ¼¼ºÎ Á¤º¸¸¦ ±â¼úÇÏ´Â ºÎºÐ¿¡ ´ëÇÑ ÂüÁ¶¸íÀ» <PALLETTEITEM>¿¡ ±â¼úÇϰí, <ELEMENTPROTOTYPE>¿¡¼­ ÂüÁ¶µÈ PALLETTEITEM¿¡ ´ëÇÑ Á¤º¸¸¦ ÀÚ¼¼È÷ ±â¼úÇÑ´Ù. <ELEMENTPROTOTYPE>Àº ÆÈ·¹Æ® ¹öưÀÇ ¸íΰú ¹öưÀÇ ¾ÆÀÌÄÜ, »ý¼ºµÉ ¿ä¼ÒÀÇ Å¸ÀÔ µî¿¡ ´ëÇÑ Á¤º¸°¡ ±â¼úµÈ´Ù. ÀÌÁß¿¡¼­ »ý¼º½Ã¿¡ ¿ä¼Ò°¡ NOTATION EXTENSIONÀÇ Àû¿ëÀ» ¹Þµµ·Ï Çϱâ À§Çؼ­ <SHOWEXTENSION>ÀÇ °ªÀ» true·Î ¼³Á¤ÇØ¾ß ÇÑ´Ù.

        <PALETTELIST>
            <PALETTE>
                <NAME>ERD(IE)</NAME>
                <DISPLAYNAME>ERD(IE) Diagram</DISPLAYNAME>
                <PALETTEITEMLIST>
                    <PALETTEITEM>Table</PALETTEITEM>
                    <PALETTEITEM>identifying</PALETTEITEM>
                    <PALETTEITEM>non-identifying</PALETTEITEM>
                </PALETTEITEMLIST>
            </PALETTE>
        </PALETTELIST>

        <ELEMENTPROTOTYPELIST>
            <ELEMENTPROTOTYPE>
                <NAME>Table</NAME>
                <DISPLAYNAME>Table</DISPLAYNAME>
                <ICON>Table.bmp</ICON>
                <DRAGTYPE>Rect</DRAGTYPE>
                <BASEELEMENT>Class</BASEELEMENT>
                <STEREOTYPENAME>table</STEREOTYPENAME>
                <SHOWEXTENDEDNOTATION>True</SHOWEXTENDEDNOTATION>
            </ELEMENTPROTOTYPE>
            ...
        <ELEMENTPROTOTYPELIST>
    ...

Notation Extension ÀÛ¼º

ÇÁ·ÎÆÄÀÏ Á¤ÀǸ¸À¸·Îµµ Data ModelingÀº °¡´ÉÇÏÁö¸¸ ER ¸ðµ¨¸µ Ç¥±â¹ýÀ¸·Î º¸¿©Áö±â À§Çؼ­´Â ½ºÅ×·¹¿ÀŸÀÔ Á¤ÀÇ ºÎºÐÀÇ <NOTATION>¿¡¼­ ±â¼úµÈ Notation Extension ÆÄÀÏ(.nxt)À» ÀÛ¼ºÇØ¾ß µÈ´Ù.

´ÙÀ½Àº table ½ºÅ×·¹¿ÀŸÀÔ¿¡ ´ëÇÑ Ç¥±â¹ý Ãâ·ÂÇÏ´Â table.nxt ÆÄÀÏÀÌ´Ù. notation½ÄÀº onarrange¿¡¼­ drawingÇϱâ Àü¿¡ ÇÊ¿äÇÑ »óÅÂÀÇ ¼³Á¤µéÀ» ¼öÇàÇÑ´Ù.  ondraw¿¡¼­´Â Å×À̺íÀÇ À̸§ ºÎºÐ, PK Ä÷³ ºÎºÐ, ±×¿ÜÀÇ Ä÷³ ºÎºÐÀ» º¸¿©Áö´Â ºÎºÐÀ¸·Î ±¸¼ºµÈ´Ù.

(notation
    (onarrange ...)

    (ondraw
        // draw name part ...

        // draw PK column part ...

        // draw other column part ...
    )
)

Å×À̺í À̸§À» º¸¿©ÁÖ´Â ºÎºÐ¿¡¼­´Â Å×À̺íÀ» ±×¸®´Âµ¥ ÇÊ¿äÇÑ º¯¼ö°ªÀ» ¼³Á¤ÇÏ°í ¸ðµ¨·ÎºÎÅÍ Name ¼Ó¼º°ªÀ» °¡Á®¿Í¼­ x, y À§Ä¡¿¡ Ãâ·ÂÇÑ´Ù.

(set x left)
(set y top)
...
(set name (mofattr model 'Name'))
(textout x y name)
...

¿©±â¼­ left, top º¯¼ö´Â Notation ExtensionÀÌ ¼öÇàµÉ ¶§¸¶´Ù ¸Å¹ø StarUML Ç÷§ÆûÀ¸·ÎºÎÅÍ ³Ñ°Ü¹Þ°í, Notation Extension Á¾·áÈÄ¿¡ ´Ù½Ã °ªÀ» StarUML Ç÷§Æû¿¡ ¼³Á¤ÇÑ´Ù. ÀÌ·¯ÇÑ º¯¼ö¿¡´Â ´ÙÀ½°ú °°´Ù. ³Ñ°ÜView ¿ä¼Ò·ÎºÎÅÍ ¹Þ¾Æ¿À´Â º¯¼öÀÌ´Ù. ÀÌ¿Í °°ÀÌ À̰ÍÀ̿ܿ¡µµ view¿Í model º¯¼ö´Â ÇöÀç ¼±ÅÃµÈ View¿ä¼Ò¿Í Model¿ä¼Ò¿¡ ´ëÇÑ °´Ã¼ÀÌ´Ù.

º¯¼ö¸í Àû¿ë ºä ¿ä¼Ò Ç÷§ÆûÀ¸·Î ¹Ýȯ ¿©ºÎ ¼³¸í
view Node,Edge not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â View ¿ä¼Ò
model Node,Edge not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Model ¿ä¼Ò
left Node return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ Left °ª
top Node return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ Top °ª
right Node return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ Right °ª
bottom Node return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ Bottom °ª
width Node return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ Width °ª
height Node return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ Height °ª
minwidth Node not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ MinWidth °ª
minheight Node not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Node View ¿ä¼ÒÀÇ MinHeight °ª
points Edge not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Edge View ¿ä¼ÒÀÇ point ÁýÇÕ °´Ã¼
head Edge not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Edge View ¿ä¼ÒÀÇ Head·Î ÂüÁ¶ÇÏ´Â View ¿ä¼Ò
tail Edge not return ÇöÀç Ç¥±â ´ë»óÀÌ µÇ´Â Edge View ¿ä¼ÒÀÇ Tail·Î ÂüÁ¶ÇÏ´Â View ¿ä¼Ò

´ÙÀ½Àº ÇöÀç Å×À̺íÀÌ ´Ù¸¥ Å×ÀÌºí¿¡ ´ëÇØ¼­ Á¾¼ÓÀûÀÎ °ü°è¸¦ °¡Áö°í ÀÖ´ÂÁö °Ë»çÇÑ´Ù. À̸¦ À§Çؼ­ ÇöÀç Å×À̺í(Ŭ·¡½º)ÀÇ ¿¬°üÀ» ¹Ýº¹Çϸ鼭 ¿¬°üÀÇ ¸Ó¸®ÂÊ¿¡ Å×À̺íÀÌ ¿¬°áµÇ¾î ÀÖ´Ù¸é Å×À̺íÀÌ Á¾¼ÓÀûÀ̶ó°í ÆÇ´ÜÇÑ´Ù. ÀÌ·¯ÇÑ ÆÇ´ÜÁ¤º¸¸¦ ÀÌ¿ëÇÏ¿© Á¾¼ÓÀûÀÎ Å×À̺íÀº µÕ±Ù ¸ð¼­¸®ÀÇ »ç°¢ÇüÀ¸·Î Å׵θ® »ç°¢ÇüÀ» ±×¸®°í, Á¾¼ÓÀûÀÌÁö ¾ÊÀº Å×À̺íÀÏ °æ¿ì¿¡´Â ÀÏ¹Ý »ç°¢ÇüÀ¸·Î Å׵θ®¸¦ ±×¸°´Ù.

(set isSuperType true)

(set c (mofcolcount model 'Associations'))
(for i 0 (- c 1)
    (sequence
        (set assocEnd (mofcolat model 'Associations' i))
        (if (= assocEnd (mofcolat (mofref assocEnd 'Association') 'Connections' 1))
            (set isSuperType false)
            nil)))
...
// outline
(setdefaultstyle)
(if isSuperType
    (rect x y right bottom)
    (roundrect x y right bottom 10 10))

Ä÷³ÀÇ ³»¿ëÀ» Ãâ·ÂÇÒ ¶§´Â Å×ÀÌºí¿¡ Æ÷ÇÔµÈ ¸ðµç Ä÷³(attribute)À» ¹Ýº¹Çϸ鼭 PK űװªÀÌ trueÀÎ ¿ä¼Òµé¿¡ ´ëÇØ¼­ ´Ù¸¥ Ä÷³º¸´Ù »óÀ§¿¡ ±×·ÁÁö°í, PK Ä÷³ Ç¥½ÃÀÇ À̹ÌÁö¸¦ ÁÂÃø¿¡ Ç¥½ÃÇϰí Ä÷³ À̸§À» È­¸é¿¡ Ãâ·ÂÇÑ´Ù.

...
(for i 0 (- (mofColCount model 'Attributes') 1)
    (sequence
        // select i-th column
        (set attr (mofColAt model 'Attributes' i))
        ...
        // column is PK?
        (if (tagVal attr 'ERD' 'column' 'PK')
            (sequence
                ...
                (set attrName (mofAttr attr 'Name'))
                ...
                (drawbitmap x y 'primarykey.bmp' true)
                (textout (+ x 16) y attrName)
                (setdefaultstyle)
                ... ))))
...
(line left y right y)

´Ù½Ã Çѹø Ä÷³À» ¹Ýº¹Çϸ鼭 PK űװªÀÌ falseÀÎ ¿ä¼Òµé¸¸À» ã¾Æ¼­ Ä÷³ À̹ÌÁö¿Í Ä÷³ÀÇ À̸§À» È­¸é¿¡ Ãâ·ÂÇÑ´Ù.

...
(for i 0 (- (mofColCount model 'Attributes') 1)
    (sequence
        // select i-th column
        (set attr (mofColAt model 'Attributes' i))
        (set keys '')
        ...
        // column is not PK?
        (if (= (tagVal attr 'ERD' 'column' 'PK') false)
        (sequence
            ...
            (set attrName (mofAttr attr 'Name'))
            ...
            // draw column
            (drawbitmap x y 'column.bmp' true))
            (textout (+ x 16) y attrName)
            (setdefaultstyle)
                ... ))))

Notation ExtensionÀÇ ¼³Ä¡¿Í »ç¿ë

ÀÛ¼ºµÈ Notation Extension ÆÄÀÏÀ» ÇÁ·ÎÆÄÀÏ¿¡¼­ ±â¼úµÈ °æ·Î¿¡ Á¸ÀçÇØ¾ß ÇÑ´Ù. table ½ºÅ×·¹¿ÀŸÀÔÀÇ ¿¹¿¡¼­´Â º°µµÀÇ °æ·Î°¡ ¸í½ÃµÇÁö ¾Ê°í ÆÄÀÏ¸í¸¸ ¸í½ÃµÇ¾úÀ¸¹Ç·Î, ÇÁ·ÎÆÄÀϰú Noation Extension ÆÄÀÏÀº µ¿ÀÏÇÑ Æú´õ¿¡ À§Ä¡½Ã۵µ·Ï ÇÑ´Ù.

¸ðµç ÀÛ¼ºÀÌ ¿Ï·áµÇ¾úÀ¸¸é ¼³Ä¡¸¦ À§Çؼ­´Â ´ÙÀ½ÀÇ °úÁ¤À» ¼öÇàÇÑ´Ù.

  1. ÇÁ·ÎÆÄÀϰú Notation Extension ÆÄÀÏ, °ü·Ã À̹ÌÁö ÆÄÀϵéÀ» ƯÁ¤À̸§ÀÇ ¸ðµâ Æú´õ¿¡ ³Ö´Â´Ù.
  2. ÇØ´ç ¸ðµâ Æú´õ¸¦ staruml/modules Æú´õ ¾Æ·¡¿¡ º¹»çÇÑ´Ù.
  3. StarUMLÀ» Àç½ÃÀÛÇÏ¸é ¼³Ä¡°¡ ¿Ï·áµÈ´Ù.


¡¡

Âü°í

¼³Ä¡µÈ ÇÁ·ÎÆÄÀϰú Notation Extension ±â´ÉÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

  1. StarUMLÀ» ½ÃÀÛÇÑ´Ù.
    ¡¡
  2. [Model] -> [Profiles...] ¸Þ´º¿¡¼­ Ŭ¸¯ÇÑ´Ù.


    ¡¡
  3. [Profile Manager] ´ÙÀ̾ó·Î±×°¡ ³ªÅ¸³ª¸é [Available profiles] ¸®½ºÆ®Ã¢¿¡¼­ Data Modeling ÇÁ·ÎÆÄÀÏÀ» ¼±ÅÃÇϰí [Include] ¹öưÀ» Ŭ¸¯ÇÑ´Ù.


    ¡¡
  4. [Model Explorer]¿¡¼­  ER-DiagramÀ» Æ÷ÇÔÇÒ ÆÐŰÁö¸¦ ¼±ÅÃÇϰí, ÆË¾÷ ¸Þ´º [Add Diagram] -> [ER(IE) Diagram] ¸Þ´º¸¦ Ŭ¸¯ÇÑ´Ù.


    ¡¡
  5. ER-DiagramÀÌ [Main] È­¸é¿¡ ³ªÅ¸³ª°í ER ¸ðµ¨¸µ¿ë ÆÈ·¹Æ®°¡ È­¸é¿¡ ³ªÅ¸³­´Ù.

  6. ÆÈ·¹Æ®¿¡¼­ ³ëÅ×À̼ÇÀ» ÀÌ¿ëÇÏ¿© ¸ðµ¨¸µÀ» Çϰí, ¼Ó¼º Á¤º¸´Â ¹öưÀ» Ŭ¸¯ÇÏ¿© [Tagged Value Editor]ÀÇ [ERD]  ÅÇÀÇ Å±װªµéÀ» ÀÌ¿ëÇÏ¿© ¼³Á¤ÇÑ´Ù.

  7. ¿øÇÏ´Â ÇüÅÂÀÇ ER DiagramÀ» ÀÛ¼ºÇÑ´Ù.