12.1 UML

ÀÛ¼ºÀÚ : ÁøÀº¿µ ( 2004-08-18 )

[¸ÞÀÎ] [¸ñ·Ï]

¸ñÂ÷

ÀÌ °­Á¿¡¼­ Ç¥ÇöÇÏ´Â UMLÀÇ ±íÀÌ´Â ÀÚ¹Ù ±âº»À» Ç¥ÇöÇϱâ À§ÇÑ ¹æÆíÀ¸·Î °£´ÜÇÏ°Ô ¼³¸íÇÏ·Á ÇÑ´Ù.

12.1.1 UML À̶õ

ÇÁ·Î±×·¥À» ¸¸µå´Â »ç¶÷Àº ÇÁ·Î±×·¥ÀÇ ³»ºÎ ±¸Á¶¸¦ ´Ü¼øÇÑ ±Û·Î ÀÌÇØÇÏ´Â °Íº¸´Ù ºñÁÖ¾óÇÏ°Ô ÀÌÇØÇÏ´Â °ÍÀÌ ´õ ½±´Ù.
¿¹¸¦ µé¾î ±×¸²À» ±×¸®´Â »ç¶÷¿¡°Ô "´«½çÀº £°í, ÄÚ´Â ³ô°í, ¼ºÁúÀÌ ´õ·¯¿î »ç¶÷À» ±×·ÁÁÖ¼¼¿ä" ¶ó°í ¸»·Î¸¸ ºÎŹÇϱ⠺¸´Ù´Â »çÁøÀ» º¸¿©ÁÖ¸ç, "ÀÌ·¸°Ô ±×·ÁÁÖ¼¼¿ä" ¶ó°í ¸»ÇÏ´Â °ÍÀÌ ±×¸®´Â »ç¶÷ÀÌ ÈξÀ Àß ±×¸± ¼ö ÀÖ´Ù. ¿©±â¿¡¼­ ±×¸²À» ±×¸®´Ù¿Í ´ë»óÀÌ µÇ´Â »ç¶÷ÀÇ ¿ë¾î¸¦ ¾Æ·¡¿Í °°ÀÌ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

±×¸²À» ±×¸®´Ù. : ±¸Çö(implement)
±×¸²ÀÇ ´ë»óÀÌ µÇ´Â »ç¶÷ : ¸ðµ¨(Model)

¸¶Âù°¡Áö·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§, Áï ±¸ÇöÇÒ ¶§ ÇÁ·Î±×·¥ÀÇ ¸ñÀûÀÌ µÇ´Â ÀÛ¾÷ »êÃâÀ» Model À̶ó ÇÑ´Ù.
UML : ÇÁ·Î±×·¥ÀÇ "¸ðµ¨"À» ¸¸µé ¶§ »ç¿ëÇÏ´Â ºñÁÖ¾óÇÑ ¾ð¾î

ÄÚµùÇϱâ Àü¿¡ ±¸ÇöÇÒ ÇÁ·Î±×·¥ÀÇ ¸ðµ¨ÀÌ ½ÅÁßÇÏ°í dzºÎÇÏ°Ô ¸¸µé¾îÁ® ÀÖÀ¸¸é ÇÁ·Î±×·¡¸Ó´Â ±×°ÍÀ» ±×´ë·Î µû¶ó¼­ ÄÚµùÇÏ¸é µÇ±â ¶§¹®¿¡, ÇÁ·Î±×·¥À» ´õ ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù.


12.1.2 Ŭ·¡½º Çü½Ä

°´Ã¼¸¦ »ý¼ºÇØÁִ Ŭ·¡½º³ª ¹®Á¦ ¿µ¿ªÀÇ °³³äÀûÀÎ ´ÜÀ§¸¦ Ç¥ÇöÇÏ´Â UML Ç¥±â´Â »ç°¢Çü µµÇüÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. Ŭ·¡½ºÀÇ ¼Ó¼º°ú ¸Þ¼Òµå´Â ºÙÀÌÁö ¾Ê¾Æµµ »ó°ü ¾øÁö¸¸ Ŭ·¡½ºÀÇ À̸§Àº ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù.

¨ç ¼Ó¼º
[+/-/#] ¼Ó¼ºÀ̸§ [:ŸÀÔ] [=ÃʱⰪ]

¨è ¸Þ¼Òµå
[+/-/#] ¸Þ¼Òµå À̸§ ([ÆĶó¸ÞÅÍÀ̸§ : ŸÀÔ]) : ¹Ýȯ°ª ŸÀÔ



À§¿Í °°ÀÌ ÀÛ¼ºÇÑ ´ÙÀ̾î±×·¥Àº ¾Æ·¡¿Í °°ÀÌ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
class Order{
    private Date data;
    private boolean flag;
	
    public Order(){}
    public void cancel(){}
    public void getDate(Date d){}
}

±×¸²¸¸ Àß ±¸ÇöÇÑ´Ù¸é ÇÁ·Î±×·¥À¸·Î ÄÚµùÇÏ´Â °ÍÀº ¾ÆÁÖ ½¬¿ï °ÍÀÌ´Ù.


12.1.3 °ü°è Ç¥Çö

¼­·Î ÀÇ¹Ì Àִ Ŭ·¡½ºµéÀÇ °ü°è(relationship)´Â Å©°Ô 4°¡Áö Á¾·ù°¡ ÀÖ´Ù.
  • ¿¬°ü(association) : ÀϹÝÀûÀÎ ÀǹÌÀÇ °ü°è
  • ÀÇÁ¸(dependency) : ÇÑ Å¬·¡½º°¡ ´Ù¸¥ Ŭ·¡½º¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù.
  • ÀϹÝÈ­(Generalization)
  • ½Çüȭ(Realization)
¨ç ¿¬°ü(association) °ü°è
¿ä±¸ »çÇ×À̳ª Çö½Ç¿¡¼­ ´ë»óµéÀÇ ³í¸®ÀûÀÎ ¿¬°áÀ» Æ÷ÂøÇϱâ À§ÇÑ °³³äÀÌ´Ù.
¿¬°üÀº µÎ °³(ÀÌ»ó)ÀÇ Å¬·¡½º »çÀÌ¿¡ Á¸ÀçÇÏ´Â ÀǹÌÀûÀÎ °ü°è¸¦ ÀǹÌÇÑ´Ù. °ü°èµÇ´Â ¼ö°¡ ¾î¶»µç ´ëºÎºÐÀÇ °ü°èµéÀÌ ¿¬°üÀ¸·Î ÆÄ¾ÇµÉ ¼ö ÀÖ´Ù´Â Á¡À» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÑ´Ù.

±×¸²¿¡¼­ Á¦½ÃµÈ ¿¬°üÀÇ Àǹ̴ ¾î·ÆÁö ¾Ê´Ù.
ÇлýÀÌ ¼ö¾÷°ú¸ñ¿¡ Ãâ¼®ÇÑ´Ù. ÀÌ ¶§ ÇлýÀº ÇØ´ç °ú¸ñ¿¡ ´ëÇØ ¼ö°­»ýÀ̶ó°í ÇÒ ¼ö ÀÖ°í, ¼ö¾÷ °ú¸ñÀº Çлý¿¡ ´ëÇØ ¼ö°­°ú¸ñÀÇ ¿ªÇÒÀ» ÇÑ´Ù.

class ¼ö¾÷°ú¸ñ {}

class Çлý{
    private ¼ö¾÷°ú¸ñ s ;
}

¨è Æ÷ÇÔ(aggregation) °ü°è
¿¬°üÀº Ŭ·¡½ºµéÀÇ °ü°è¸¦ Ç¥ÇöÇϱâ À§ÇÑ °¡Àå Æ÷°ýÀûÀÎ °³³äÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·± Æ÷°ýÀûÀÎ ¼³Á¤Àº Á¾Á¾ Àǹ̸¦ Èñ¼®½ÃÄÑ ¹ö¸®±â ¶§¹®¿¡, º¸´Ù ¸íÈ®ÇÏ°Ô °ü°è¸¦ ÁöÁ¤ÇØ µÎ°í ½ÍÀ» ¶§°¡ »ý±ä´Ù. ÀÌ·± °üÁ¡¿¡¼­ Æ÷ÇÔ°ü°è´Â ¸Å¿ì À¯¿ëÇÑ Ç¥ÇöÀÌ´Ù.


±×¸²¿¡¼­ (a)ºÎºÐÀº ¾Æ¹«·± Àå½Ä ¾ø´Â ¿¬°üÀ¸·Î °ü°è¸¦ Ç¥ÇöÇß´Ù. ÄÄÇ»ÅÍ¿Í Àü¿øÀåÄ¡ »çÀÌÀÇ °ü°è°¡ ¾î¶°ÇÑ °ÍÀÏÁö´Â ½±°Ô ÁüÀÛÇÒ ¼ö ÀÖÁö¸¸, ÀÌ·± ÁüÀÛÀ» Çϱâ À§Çؼ­´Â µÎ Ŭ·¡½º¿¡ ´ëÇØ Àá½Ã »ý°¢Çغ¸¾Æ¾ß ÇÑ´Ù.

ÀÌ¿¡ ¹ÝÇØ (b)´Â Á÷°üÀûÀ¸·Î ±× ³»¿ëÀ» ¾Ë·ÁÁØ´Ù. ´ÙÀ̾Ƹóµå°¡ ´Þ¸° ¿¬°üÀÌ Æ÷ÇÔ °ü°è¸¦ ³ªÅ³»°í ÀÖ´Ù´Â »ç½ÇÀ» ¾È´Ù¸é, µÎ Ŭ·¡½ºÀÇ À̸§À» Àбâ Àü¿¡ ÀÌ¹Ì ¾î´À Á¤µµ ÁüÀÛÀ» ÇÒ ¼ö ÀÖ´Ù.

¨é ÀϹÝÈ­(Generalization) °ü°è
ÀϹÝÈ­ °ü°è´Â Ãß»óÈ­¶ó°í ºÒ¸®±âµµ Çϴµ¥, °´Ã¼ÁöÇâÀû ¹æ¹ý·ÐÀÇ ÇÙ½ÉÀûÀÎ °³³ä ÁßÀÇ ÇϳªÀ̱⵵ ÇÏ´Ù. ´Ù¼öÀÇ Æ¯¼öÇÑ Å¬·¡½ºµé°ú À̵éÀ» ÃÑ°ýÇÏ´Â º¸ÆíÀûÀΠŬ·¡½º »çÀÌÀÇ °ü°è°¡ ÀÌ¿¡ ÇØ´çÇÑ´Ù.


¹ö½º , ½Â¿ëÂ÷ , Æ®·° µîÀ» ¸ðµÎ ÇѲ¨¹ø¿¡ ÀÚµ¿Â÷¶ó°í ÁöĪÇÏ´Â °æ¿ì°¡ ÀϹÝÈ­¸¦ »ç¿ëÇÑ ÀüÇüÀûÀÎ »ç·ÊÀÌ´Ù.

¨ê ½Çüȭ(realization) °ü°è
½Çüȭ °ü°è´Â ÀÎÅÍÆäÀ̽º¿Í ±×°ÍÀ» ±¸ÇöÇϴ Ŭ·¡½º »çÀÌ¿¡ ³ªÅ¸³ª´Â °ü°è°¡ ÀüÇüÀûÀÎ »ç·ÊÀÌ´Ù. º¸´Ù ¾ö¹ÐÈ÷ Á¤ÀÇÇÑ´Ù¸é, ½Çüȭ´Â °è¾àÀ» ¸í¼¼Çϴ Ŭ·¡½º¿Í ±× °è¾àÀ» ½ÇÇöÇϴ Ŭ·¡½º »çÀÌÀÇ °ü°è¶ó°í ¸»ÇÒ ¼ö ÀÖ´Ù.
UML¿¡¼­ ÀÚ¹ÙÀÇ ÀÎÅÍÆäÀ̽º¸¦ Ç¥ÇöÇÒ ¶§ Ŭ·¡½ºÀÇ À̸§À» Àû´Â »ç°¢Çü ¾È¿¡ <<interface>>¶ó´Â ½ºÅ×·¹¾î ŸÀÔÀ» ºÙÀÌ´Ù.
½ºÅ×·¹¿À ŸÀÔ : ÀÌ¹Ì Á¤ÀÇ µÇ¾î ÀÖ´Â ¸ðµ¨¸µ ¿ä¼ÒÀÇ Àǹ̸¦ »õ·Ó°Ô ÀçÁ¤ÀÇÇÑ´Ù.



Âü°í¹®Çå
  • Ŭ¸¯Çϼ¼¿ä UML°ú ÀÚ¹Ù [´ë¸²]