1)
UML °³¿ä
ºÐ¼®, ¼³°è,
°³¹ß¿¡ UMLÀ» »ç¿ëÇÏ°Ô µÇ´Âµ¥ UMLÀº Unified Modeling LanguageÀÇ ¾à¾î·Î ¼ÒÇÁÆ®¿þ¾î
½Ã½ºÅÛÀ» ¸ðµç ¼öÁØ(¾ÆÅ°ÅØÃ³ ¼öÁغÎÅÍ ±¸Çö ¼öÁرîÁö)¿¡ °ÅÃÄ ¸í¼¼Çϰí
±¸ÇöÇÏ°í ¹®¼ÈÇϴµ¥ »ç¿ëµÇ´Â ¡°½Éº¼¾ð¾î(Symbolic Language)¡± ¶ó°í
¾ê±âÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸ÕÀú ¸ðµ¨¸µ(Modeling)À̶õ
¸»À» ÀÚÁÖ »ç¿ëÇϴµ¥ ÀÌ¿¡ ´ëÇÑ Á¤ÀǺÎÅÍ ÇϰڽÀ´Ï´Ù. ¸ðµ¨¸µÀ̶õ ´Ù¸¥
¸»·Î Ãß»óÈ(Abstraction)¶ó°í À̾߱â ÇÒ ¼ö
ÀÖ½À´Ï´Ù. ±×·±µ¥ Ãß»óȶõ ´Ü¾îµµ ¿ì¸®¿¡°Ô ±Ý¹æ ÀÌÇØµÇÁö ¾Ê½À´Ï´Ù. ±×·¡¼
Á» ´õ ½¬¿î ¸»·Î ÇÏÀÚ¸é ´Ü¼øÈ(Simplification)¶ó°í
À̾߱â ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áï, ¿ì¸®°¡ ¸¸µé¾î¾ß
ÇÒ ½Ã½ºÅÛÀÌ ³Ê¹« º¹ÀâÇØ º¸À̴ϱî, ´Ü¼øÇÏ°Ô ¸¸µéÀÚ! ±×·¸°Ô Áß¿äÇÑ
ºÎºÐÀÌ ¾Æ´Ï¶ó¸é ¹«½ÃÇϰí Áß¿äÇÑ ºÎºÐ¿¡¸¸ ÁýÁßÇØ¼ ´Ü¼øÇÏ°Ô ¸¸µéÀÚ! ÇÏ´Â °ÍÀÌ
¸ðµ¨¸µ ÀÔ´Ï´Ù. ¡°¸ðµ¨¸µ = ´Ü¼øÈ¡±, ¹ØÁÙ ÂÓ, ¿Ü¿ì¼¼¿ä!
¿äÁò ¿©±âÀú±â¼
¹æ¹ý·Ð(Methodology) À̾߱⸦ ¸¹ÀÌ Çϴµ¥ ÀϹÝÀûÀ¸·Î ¹æ¹ý·ÐÀ̶õ ´ÙÀ½ ¼¼°¡Áö·Î
ÀÌ·ç¾î Áý´Ï´Ù.
¹æ¹ý·Ð
= Ç¥±â¹ý + ÇÁ·Î¼¼½º + Åø
Ç¥±â¹ý(Notation)
¸ðµ¨¸µÀ»
ÇÒ ¶§ ¸ðµ¨À» ¸¸µç »ç¶÷À̳ª ±×°ÍÀ» º¸°í ±¸ÇöÇÒ »ç¶÷, ȤÀº ¹ßÁÖÀÚ°¡
°°Àº ¡°¸»¡±À» ÇÏÀÚ´Â ÃëÁö¿¡¼ ¹Ýµå½Ã Ç¥ÁØÀÌ ÇÊ¿äÇÑ ¿ä¼ÒÀÔ´Ï´Ù. ¸¸µç
»ç¶÷Àº A¸¦ »ý°¢ÇÏ°í ¸¸µé¾ú´Âµ¥ ±×°ÍÀ» Àд »ç¶÷Àº B¸¦ »ý°¢ÇÏ¸é ¾È
µÈ´Ù´Â °ÅÁö¿ä. ´Ù¸¥ ¸»·Î ¡°¼·Î °°Àº ¸»À» ¾²ÀÚ¡±´Â ¾ê±é´Ï´Ù. ±×·¡¼
Language¶ó´Â ¸»ÀÌ ºÙÀº °ÍÀÌÁö¿ä. ÀÌ Ç¥±â¹ý¿¡ ´ëÇØ 90³â´ë ÃÊ¿¡
¸¹Àº ³íÀïÀÌ ÀÖ´Ù°¡ Ç¥ÁØÀ¸·Î ÅëÀÏµÇ¾î »ç¿ëÇÏ°Ô µÈ °ÍÀÌ UML
ÀÔ´Ï´Ù.
ÇÁ·Î¼¼½º(Process)
ÀÏÀ»
ÁøÇàÇØ ³ª°¥ ¶§ ¾î¶² ´Ü°è¸¦ °ÅÃÄ¾ß Çϸç, °¢°¢ÀÇ ´Ü°è´Â ¾î¶² ÇàÀ§·Î
ÀÌ·ç¾î Á®¾ß Çϴ°¡¸¦ Á¤ÀÇÇÏ´Â °ÍÀÔ´Ï´Ù. ´Ù¾çÇÑ ÇÁ·Î¼¼½º°¡
Àִµ¥ ¸¹ÀÌ ¾Ë·ÁÁø °Í ÁßÀÇ Çϳª°¡ RUP (Rational Unified Process)
ÀÔ´Ï´Ù
Åø(Tool)
²À
ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ñµ¥ Rational¿¡¼ UML°ú RUP ½ÃÀåÀ» Àå¾ÇÇÏ°í ³ª¼ ÀÚ½ÅÀÇ
ÅøÀÌ ÀÌ ¸ðµç °ÍÀ» Á¦°øÇØÁشٴ Àǹ̿¡¼ Áý¾î³Ö¾ú½À´Ï´Ù. À¯¸íÇÑ ¿¹·Î´Â
Rational Rose°¡ ÀÖÁö¿ä.
|
60~70³â´ë Æ÷Æ®¶õÀ̳ª
ÄÚº¼·Î ¸¸µé¾îÁø ÇÁ·Î±×·¥Àº ±×¸® º¹ÀâÇÏÁö ¾Ê¾Æ¼ ¼Ò¼ö ¿£Áö´Ï¾î ÆÀÀÌ °ü¸®ÇÒ ¼ö
ÀÖ¾ú½À´Ï´Ù. ±×·±µ¥ C, ÆÄ½ºÄ® °°Àº ¾ð¾î°¡ ³ª¿À¸é¼ ¡°Modular¡± ÇÁ·Î±×·¡¹Ö
±â¹ýÀÌ ¼Ò°³µÇ°í, Á¡Á¡ Å« ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µé°Ô µÇ¾ú´Âµ¥ ÀÌ¿¡ µû¶ó ´õ ¸¹Àº ¿£Áö´Ï¾î°¡
°³¹ß¿¡ Âü¿©ÇÏ°Ô µÇ°í, ±¤¹üÀ§ÇÑ ¹®¼(´ëºÎºÐ Àß ¾È ¸¸µéÁö¿ä!)°¡ ÇÊ¿äÇÏ°Ô µÇ¾ú½À´Ï´Ù.
ÀÌ¿¡ ´ëÇÑ ´ë¾ÈÀ¸·Î ³ª¿Â °ÍÀÌ °´Ã¼ÁöÇâ(OO: Object-Oriented) ÇÁ·Î±×·¡¹ÖÀ̰í,
95³â À¥/ÀÚ¹ÙÀÇ Æø¹ß°ú ÇÔ²² °¢±¤ ¹Þ°Ô µÇ¾ú½À´Ï´Ù. OO ÇÁ·Î±×·¡¹ÖÀÇ
ÁÖ¿ä °³³äÀº µ¥ÀÌÅÍ Ä¸½¶È (Encapsulation), »ó¼Ó (Inheritance),
ÄÚµå Àç»ç¿ë µîÀÌÁö¿ä. OOÀÇ »ç¿ëÀ¸·Î ÀÎÇØ Á¡Á¡ ´õ º¹ÀâÇÑ ¼ÒÇÁÆ®¿þ¾î
½Ã½ºÅÛÀ», ºü¸£°í ÀûÀº ÀοøÀ¸·Î ¸¸µé ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.
¹ßÁÖÀÚ°¡ ¿ä±¸»çÇ×
Á¤ÀǼ¸¦ ÁÖ¸é ±Ã±ØÀûÀ¸·Î ¼Ò½ºÄÚµå·Î µÈ ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀ» ¸¸µéÁö¿ä? ±×·±µ¥
¿ä±¸»çÇ×Á¤ÀǼ¿Í ¼Ò½ºÄÚµå °£ÀÇ ±«¸®°¡ ³Ê¹« Ä¿¼ ÀÌ Áß°£À» ¸Å¿ï ¹«¾ùÀΰ¡°¡ ÇÊ¿äÇϰÔ
µÇ¾ú´Âµ¥ ±×°ÍÀÌ ¹Ù·Î ¼ÒÇÁÆ®¿þ¾î ¸ðµ¨ÀÔ´Ï´Ù. Áï, ¼Ò½ºÄڵ庸´Ù´Â
°í¼öÁØÀÌ¸é¼ ¿ä±¸»çÇ×Á¤ÀǼº¸´Ù´Â Á» ´õ ±¸Á¶ÈµÈ ¹º°¡°¡ ÇÊ¿äÇÏ°Ô µÈ °ÍÀÔ´Ï´Ù.
¸¶Ä¡ ÁýÀ» Áþ±â Àü¿¡ ¼³°è-û»çÁøÀ» ¸¸µå´Â °Í°ú À¯»çÇÏÁö¿ä.
ÀÌ¿¡ 90³â´ë
Ãʹݿ¡ ¸¹Àº ¿¬±¸°¡ ÀÌ·ç¾îÁ³´Âµ¥, ´Ù¾çÇÑ ±â¼ú°ú Á¦¾ðµéÀÌ ½ñ¾ÆÁ® ³ª¿ÔÁö¸¸ ¼·Î
ȣȯ¼ºÀÌ ¾ø¾î¼ È¥¶õÀÌ ½ÉÈµÇ´Ï±î ¾÷°èÇ¥ÁØÀÌ ÇÊ¿äÇÏ´Ù´Â ÀνÄÀÌ ÆÛÁö°Ô µÇ¾ú½À´Ï´Ù.
±× Áß Á¶±Ý À¯¸íÇÑ ±â¼ú Çϳª°¡ Grady BoochÀÇ ¹æ¹ý·ÐÀ̾ú°í, James RumbaughÀÇ
OMT(Object Modeling Technique) ÀÔ´Ï´Ù. ±×·±µ¥ Rational¿¡ ÀÖ´ø Booch°¡
GE¿¡ ÀÖ´ø RumbaughÀ» ºÒ·¯¼ µÎ ¸ðµ¨±â¼úÀÌ ÅëÇյǾú°í, ±× À̵ëÇØ¿¡ Use-Case·Î
À¯¸íÇÑ Ivar Jacobson (´ç½Ã ½º¿þµ§ Ericsson ±Ù¹«)ÀÇ OOSE(Object-Oriented Software
Engineering) ±îÁö Æ÷¼·ÇÏ¸é¼ Rational¿¡ °ÅµÎ 3 ÀιæÀÌ ¸ðÀÌ°Ô µÇ¾ú½À´Ï´Ù. ±×·¡¼
Three-Amigo ¶ó´Â ¾ÖĪÀ¸·Î ºÒ¸®°ï ÇÕ´Ï´Ù. »ç½Ç ÀÌ ¼¼ »ç¶÷ÀÌ
¸ð¿© ÅëÇÕÇÏ´Ï±î ¾÷°è¿¡¼ ¹Ý¹ÚÇÒ »ç¶÷ÀÌ ¾ø¾ú°í ±×¸®ÇÏ¿© OMG¶ó´Â ´Üü¸¦ ³»¼¼¿ö
UMLÀ» ¹ßÇ¥ÇÑ °ÍÀÔ´Ï´Ù.
Âü°í·Î UMLÀº
°ü°è µ¥ÀÌÅͺ£À̽ºÀÇ ¼º°ø¿ä¼Ò Áß ÇϳªÀÎ ER(Entity-Relationship) ¸ðµ¨¿¡¼
¸¹Àº °³³äÀ» ºô·Á¿Ô½À´Ï´Ù.
2)
UML µðÀÚÀÎ ¸ñÇ¥
UMLÀº ´ÙÀ½°ú
°°Àº µðÀÚÀÎ ¸ñÇ¥¸¦ °¡Áö°í ¸¸µé¾îÁ³½À´Ï´Ù.
- Ready
to use ¡°out of the box¡± - Áï½Ã »ç¿ëÇÒ ¼ö ÀÖ´Â ¼öÁØÀÇ ¾ð¾î
- °¡´ÉÇÑ
¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾î Áö¿øÀÌ ¸ñÇ¥ (ÇÏÁö¸¸ ƯÁ¤ ¾ð¾î¿¡ µ¶¸³ÀûÀ¸·Î)
- Ưº°ÇÑ
¿ä±¸»çÇ׿¡ ¸ÂÃç °íÄ¥ ¼ö ÀÖ´Â ¾ð¾î
- ÀÌÇØ¸¦
µ½´Â ¼öÁØ¿¡¼ ¡°formal¡±ÇØ¾ß ÇÏÁö¸¸ ¼öÇÐÀû ÀÌ·ÐÀÌ ³Ê¹« ¸¹ÀÌ Æ÷ÇԵǾÂ
¾ÈµÊ
UMLÀÌ À¯¸íÇØÁø
ÀÌÀ¯´Â ¾Õ¼ ¼³¸íÇÑ ´ë·Î °¡Àå À¯¸íÇÑ ´ë°¡µéÀÇ ¸ðµ¨¸µ ±â¼úÀ» ÅëÇÕÇϱ⵵ ÇßÁö¸¸
¾÷°è À¯¸í ¼ÒÇÁÆ®¿þ¾î º¥´õ (¿¹: IBM, Microsoft, Oracle, Digital, HP, Unisys)
Áö¿øÀ» ¹Þ´Â´Ù´Â °ÍÀÔ´Ï´Ù. UMLÀº ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ »Ó¸¸ÀÌ
¾Æ´Ï¶ó µ¥ÀÌÅͺ£À̽º, ½Ã½ºÅÛ µðÀÚÀÎ µîÀÇ Çй®¿¡¼ °¡Àå ÁÁÀº ¾ÆÀ̵ð¾î¸¦ ¹ßÃéÇß´Ù°í
º¼ ¼ö ÀÖ½À´Ï´Ù. UMLÀÇ ´Ù¸¥ ÀåÁ¡Àº ƯÁ¤ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ Á¾¼ÓµÇÁö ¾ÊÀ¸¸é¼,
´Ù¾çÇÑ ¹®Á¦ µµ¸ÞÀο¡ Àû¿ëµÇ°í, ±Ô¸ð¿¡ »ó°ü¾øÀÌ Àû¿ëÇÒ ¼ö Àִٴµ¥ ÀÖ½À´Ï´Ù.
ÀÌ·¸µí ¸ðµ¨¸µ
¾ð¾î°¡ UML·Î ÅëÇÕµÇ¸é¼ OOP ¾÷°è°¡ ±Þ¼ºÀåÇÒ ¼ö ÀÖ¾ú°í, ´Ù¾çÇÑ ÅøµéÀÌ º¥´õ Á¾¼ÓÀûÀÌÁö
¾Ê°Ô »óÈ£¿î¿ë µÉ ¼ö ÀÖ¾ú½À´Ï´Ù. ÀÌ UMLÀÌ Çа谡 ¾Æ´Ñ ¾÷°è·ÎºÎÅÍ ¼ºÀåÇß´Ù´Â »ç½ÇÀº
ÁÁÀº ¸ðµ¨¸µ ±â¼úÀÌ ½ÇÁ¦ÀûÀ¸·Î ¸¹Àº ºñ¿ëÀ» Àý¾àÇÏ°Ô ÇØÁشٴ »ç½ÇÀ» º¸¿©ÁÝ´Ï´Ù. ¶ÇÇÑ
µ¿ÀÏÇÑ ¸ðµ¨¸µ ¾ð¾î¸¦ »ç¿ëÇÔÀ¸·Î ÇØ¼ °³¹ßÀÚ´Â »õ·Î ±³À°¹ÞÀ» Çʿ䵵 ¾ø°í, ƯÁ¤
ÇÁ·Î¼¼½º³ª µµ¸ÞÀο¡ ±¹ÇѵÇÁö ¾Ê¾Æ¼ Ȱ¿ë¹üÀ§°¡ ³Ð´Ù´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.
3)
UML ´ÙÀ̾î±×·¥
UML ´ÙÀ̾î±×·¥Àº
´ÙÀ½°ú °°ÀÌ 4 °¡Áö ¿ëµµ·Î ³ª´ ¼ö ÀÖ½À´Ï´Ù.
- ½Ã½ºÅÛ
Çൿ, ¿ä±¸»çÇ×À» ÀÌÇØÇϱâ À§ÇØ - Use-case diagram
- Ŭ·¡½º
Á¤Àû ±¸Á¶¸¦ ÀÌÇØÇϱâ À§ÇØ - Class diagram
- Ŭ·¡½º
µ¿Àû ÇൿÀ» ÀÌÇØÇϱâ À§ÇØ - Interaction diagram, Activity diagram, State
diagram
- Àüü ¾ÆÅ°ÅØÃ³¸¦
ÀÌÇØÇϱâ À§ÇØ - Package diagram, Deployment diagram
°¢°¢ÀÇ ´ÙÀ̾î±×·¥
¿ëµµ¸¦ Á¤È®ÇÏ°Ô ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.
- Use-case
diagram - ½Ã½ºÅÛÀÌ ¾î¶»°Ô Çàµ¿ÇØ¾ß ÇÏ´ÂÁö ½º³À¼¦À¸·Î º¸¿©ÁÝ´Ï´Ù.
- Class diagram
- °´Ã¼, Ŭ·¡½º¸¦ ¼¼úÇÏ°í °´Ã¼°£ÀÇ Á¤ÀûÀÎ °ü°è¸¦ º¸¿©ÁÝ´Ï´Ù.
- Interaction
diagram - °´Ã¼°¡ ¾î¶² ÇൿÀ» À§ÇØ ¾î¶»°Ô ¼·Î Çù·ÂÇϴ°¡¸¦ º¸¿©ÁÝ´Ï´Ù.
- Activity
diagram - ÇÁ·Î¼¼½º È帧À» º¸¿©ÁÝ´Ï´Ù.
- State diagram
- ÁÖ¾îÁø ÇÑ Å¬·¡½ºÀÇ ÇൿÀ» ÀÚ¼¼È÷ ±â¼úÇÕ´Ï´Ù.
- Package
diagram - Ŭ·¡½º »çÀÌÀÇ ÀÇÁ¸¼ºÀ» º¸¿©ÁÝ´Ï´Ù.
- Deployment
diagram - ¼ÒÇÁÆ®¿þ¾î ÄÄÆ÷³ÍÆ®¿Í Çϵå¿þ¾î ÄÄÆ÷³ÍÆ® °£ÀÇ ¹°¸®Àû ¿¬°ü¼ºÀ» º¸¿©ÁÝ´Ï´Ù.
4)
Ŭ·¡½º ´ÙÀ̾î±×·¥
Ŭ·¡½º ´ÙÀ̾î±×·¥Àº
½Ã½ºÅÛÀÇ Å¬·¡½º »ý±è»õ¿Í Ŭ·¡½ºµé °£ÀÇ Á¤Àû ±¸Á¶¸¦ ÀÌÇØÇϱâ À§ÇØ ±×¸³´Ï´Ù. Ŭ·¡½º°¡
°¡Áø ¼Ó¼º(attribute)°ú µ¿ÀÛ(operation)ÀÌ ¹«¾ùÀÎÁö ±â¼úÇØ¾ß Çϰí (OO¿¡¼ À̾߱âÇÏ´Â
state + behavior ¶ó°í ÀÌÇØÇÏ½Ã¸é µË´Ï´Ù), Ŭ·¡½º °£ÀÇ °ü°è¸¦ º¸¿©ÁÖ¾î¾ß Çϴµ¥,
°ü°è¿¡´Â Association°ú GeneralizationÀ̶ó´Â µÎ °¡Áö À¯ÇüÀÌ Á¸ÀçÇÕ´Ï´Ù. UMLÀº
½Ã½ºÅÛ ¸ðµ¨¸µÀ» À§ÇØ ±×¸²À» ±×¸³´Ï´Ù. ÀÏ¹Ý ÀÚ¿¬¾î·Î, ÅØ½ºÆ®·Î ±â¼úÇÏ´Â
°æ¿ì ±â¼úÇÑ »ç¶÷ÀÇ Àǵµ¿Í´Â ´Ù¸£°Ô ÀÌÇØÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖÁö¿ä. ±×·¡¼
±×·± ¿ÀÇØ¸¦ ÇÇÇϱâ À§ÇØ ÀÏÁ¤ÇÑ ±¸¹®(syntax)À» Á¤ÀÇÇߴµ¥, ±× ±¸¹®ÀÌ ±×¸²À̶ó´Â
°ÍÀÔ´Ï´Ù. ±×·¡¼ UMLÀ» ¹è¿î´Ù´Â °ÍÀº ¡°±×¸² ±×¸®±â ±¸¹®¡±À» ¹è¿ì°Ô
µÇ´Â °ÍÀÔ´Ï´Ù. ±¸¹®ÀÌ Àֱ⠶§¹®¿¡ Language¶ó´Â ´Ü¾î°¡ µÚ¿¡ ºÙ¾î ÀÖ´Â °ÍÀÌÁö¿ä.
°³·«ÀûÀ¸·Î ±¸¹®À»
»ìÆìº¸°í Çϳª Çϳª ÀÚ¼¼È÷ ¹è¿ìµµ·Ï ÇսôÙ.
- Ŭ·¡½º
´ÙÀ̾î±×·¥Àº ¼·Î ¿¬°áµÈ ³ëµå(node)·Î ÀÌ·ç¾îÁø ±×·¡ÇÁ ÀÔ´Ï´Ù.
- ³ëµå´Â
»ç°¢ÇüÀ¸·Î ±×¸®°í À§Ä¡¿Í Å©±â´Â ±×¸® Áß¿äÇÏÁö ¾Ê½À´Ï´Ù.
- ÇϳªÀÇ
³ëµå´Â ÇϳªÀÇ Å¬·¡½º¸¦ ±â¼úÇÕ´Ï´Ù.
- ¸ðµç
±×¸²Àº 2 Â÷¿øÀ¸·Î ±×¸³´Ï´Ù.
- Ưº°ÇÑ
Àǹ̸¦ °¡Áø icon µéÀÌ ÀÖ½À´Ï´Ù.
- ³ëµå¸¦
¿¬°áÇÏ´Â ¼±ÀÌ ÀÖ½À´Ï´Ù.
- ÇÊ¿äÇÑ
°æ¿ì ÅØ½ºÆ®¸¦ »ðÀÔÇÒ ¼ö Àִµ¥ Ưº°ÇÑ ±¸¹®ÀÌ ÀÖ´Â °ÍÀº ¾Æ´Ï°í { } »çÀÌ¿¡
»ðÀÔÇÕ´Ï´Ù.
¨ç Ŭ·¡½º
Ŭ·¡½º¸¦ º¸¿©ÁÖ´Â UML ¿¹Á¦ ±×¸² µÎ °³ÀÔ´Ï´Ù.
3 °³ÀÇ ¹æÀ¸·Î
ÀÌ·ç¾îÁø »ç°¢ÇüÀ¸·Î ±×¸³´Ï´Ù. ¿Ü°ûÀº ½Ç¼±À¸·Î ±×¸³´Ï´Ù.
- »ó´Ü:
Ŭ·¡½º À̸§À» ±â¼úÇÕ´Ï´Ù.
- Áß´Ü:
Ŭ·¡½ºÀÇ ¼Ó¼ºÀ» ±â¼úÇÕ´Ï´Ù.
- ÇÏ´Ü:
Ŭ·¡½ºÀÇ µ¿ÀÛÀ» ±â¼úÇÕ´Ï´Ù.
- Çʿ信 µû¶ó
Áߴܰú ÇÏ´ÜÀ» »ý·«Çϰí Ŭ·¡½º À̸§¸¸ ±â¼úÇϱ⵵ ÇÕ´Ï´Ù.
- Ŭ·¡½º À̸§Àº
Áß°£¿¡ ±½Àº ±Û¾¾Ã¼·Î ¾¹´Ï´Ù.
- Ŭ·¡½º À̸§Àº
¹Ýµå½Ã ´ë¹®ÀÚ·Î ½ÃÀÛÇÕ´Ï´Ù.
- ¼Ó¼º°ú µ¿ÀÛÀº
¼Ò¹®ÀÚ·Î ½ÃÀÛÇÕ´Ï´Ù.
- Abstract Ŭ·¡½º³ª
ÀÎÅÍÆäÀ̽º´Â ´©¿©¼(italicü) ¾¹´Ï´Ù.
µ¿ÀÛÀº Ŭ·¡½º°¡
Á¦°øÇÏ´Â ¸Þ¼ÒµåÀε¥ ±¸¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù.
visibility
name (parameter-list): return-type-expression {property-string}
- °¡½Ã¼º(visibility)Àº + (public),- (private), # (protected)
±ÛÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù.
- Parameter-list
±¸¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù.
kind
name:type-expression=default-value
- Á¾·ù(kind)´Â
in, out, ȤÀº inout ¼Â Áß ÇϳªÀÔ´Ï´Ù.
- Abstract operation
¿¡´Â {abstract} ¸¦ ±â¼úÇÕ´Ï´Ù.
- Ŭ·¡½º µ¿ÀÛ
(static method), Ŭ·¡½º ¼Ó¼º¿¡´Â ¹ØÁÙÀ» ±ß½À´Ï´Ù.
¨è ÄÚ¸àÆ®(³ëÆ®)

¸ðµ¨ÀÇ ÀϺÎÀ̱â´Â
ÇÏÁö¸¸ »ç¶÷ÀÌ ÀÐ¾î¼ ÀÌÇØÇϴµ¥ µµ¿òÀ» ÁÖµµ·Ï ³ëÆ® ȤÀº ÄÚ¸àÆ®¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù.
±×¸²¿¡¼Ã³·³ ¿ì»ó±Í°¡ Á¢Èù ¸ð¾çÀÇ »ç°¢ÇüÀ» »ç¿ëÇÕ´Ï´Ù. Á¦ÇÑ»çÇ×,
ÄÚ¸àÆ®, ¾Ë°í¸®Áò µîÀ» Àû¾î ³Ö½À´Ï´Ù. °ü·ÃµÈ ºÎºÐ¿¡ ¿¬°áÀ» ½Ãų ¶§´Â ¹Ýµå½Ã
Á¡¼±À» »ç¿ëÇÕ´Ï´Ù.
¨é Association
Ŭ·¡½º °£ÀÇ °ü°è¸¦ ³ªÅ¸³»±â À§ÇØ associationÀ» »ç¿ëÇÕ´Ï´Ù.
ÀÏ¹Ý »ç¾ç¼
¼öÁØ¿¡¼´Â Ŭ·¡½ºÀÇ Ã¥ÀÓ°ú ¿îÇ×¼º(navigability)À» ±â¼úÇØ¾ß Çϰí, ±¸Çö ¼öÁØ¿¡¼´Â ÀڷᱸÁ¶¸¦
±â¼úÇÕ´Ï´Ù.
Association˼
ER ´ÙÀ̾î±×·¥¿¡¼ relationship¿¡ ÇØ´çÇÑ´Ù°í º¸½Ã¸é µÇ°í¿ä, ±×³É µÎ °³ÀÇ Å¬·¡½º¸¦
½Ç¼±À¸·Î ¿¬°áÇÏ´Â °ÍÀÔ´Ï´Ù. ½ä··ÇÏÁö¿ä ^^
±×·³, ER ´ÙÀ̾î±×·¥°ú
UML ´ÙÀ̾î±×·¥ÀÇ Â÷ÀÌÁ¡Àº ¹«¾ùÀÌ³Ä Çϸé, ER¿¡¼´Â ÀڷᱸÁ¶¿¡ ÁßÁ¡À» µÎÁö¸¸,
UML¿¡¼´Â °´Ã¼ÀÇ Ã¥ÀÓ/¿ªÇÒ(role)¿¡ ÁßÁ¡À» µÎ´Â °ÍÀÔ´Ï´Ù.
ÇÑÂÊ ³¡¿¡ ±×
Ŭ·¡½º°¡ association¿¡ Âü¿©ÇÏ¸é¼ ÇÏ´Â ¿ªÇÒÀ» ±â¼úÇÕ´Ï´Ù. ¿ªÇÒÀ» ±â¼úÇÏÁö
¾Ê´Â °æ¿ì ±× Ŭ·¡½º À̸§ÀÌ ¿ªÇÒ À̸§ÀÌ µË´Ï´Ù. µÉ ¼ö ÀÖÀ¸¸é ±â¼úÇØ ÁÖ´Â
°ÍÀÌÁÁ½À´Ï´Ù.
¿ªÇÒÀº ´ÙÁß¼º(multiplicity)À»
°¡Áý´Ï´Ù. ER¿¡¼ ¾ê±âÇÏ´Â mapping cardinality ¶ó°í ÀÌÇØÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù.
ÀϹÝÀûÀ¸·Î min..max ±¸¹®À» »ç¿ëÇϸé min, max°¡ °°À¸¸é ÇϳªÀÇ ¼ýÀÚ¸¸ »ç¿ëÇÕ´Ï´Ù.
* ´Â 0 ȤÀº ±× ÀÌ»ó, + ´Â 1 ȤÀº ±× ÀÌ»óÀ» ÀǹÌÇÕ´Ï´Ù.
±×¸²Àº ÇϳªÀÇ
ÁÖ¹®(Order)ÀÌ 0 ȤÀº ±× ÀÌ»óÀÇ ÁÖ¹®Çà(OrderLine)À¸·Î ÀÌ·ç¾îÁ® ÀÖÀ½À» ³ªÅ¸³»°í
OrderLineÀº Line items ¶ó´Â ¿ªÇÒÀ» ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
¨ê Generalization
Ŭ·¡½º °£¿¡
»óÇÏ ±¸Á¶¸¦ ±×¸± ¶§´Â Generalization ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.
ÀϹÝÀûÀÎ »ó¼Ó(inheritance)
±¸Á¶¸¦ ±×¸± ¶§ »ç¿ëÇÏ¸ç ¼ºê-ŸÀÔ¿¡¼ ¼öÆÛ-ŸÀÔÀ¸·Î ÇâÇÏ´Â È»ìÇ¥(ºñ¾î ÀÖ´Â
¼¼¸ð È»ìÇ¥)¸¦ ±×¸³´Ï´Ù.
°ü°è Ãø¸é¿¡¼´Â
¡°is-a¡± °ü°è°¡ Çü¼ºµË´Ï´Ù.
¿¹Á¦ ±×¸²¿¡¼
¡°Corporate Customer is-a Customer¡± ±×¸®°í ¡°Personal Customer is-a Customer¡±¸¦
ÀÐÀ» ¼ö ÀÖ°í, ¸ðµç Customer´Â name, address ¶ó´Â ¼Ó¼ºÀ» ¹°·Á¹Þ°í, ¸ðµç Customer¿¡
´ëÇØ creditRating( ) ¸Þ¼Òµå¸¦ ºÎ¸¦ ¼ö ÀÖ½À´Ï´Ù.
¨ë Á¦¾à»çÇ×
(Constraint)
Ŭ·¡½º³ª association¿¡
ƯÁ¤ÇÑ Á¦¾àÀ» °¡Çϱâ À§Çؼ´Â ±×¸²°ú °°ÀÌ Á¦¾à»çÇ×À» { } »çÀÌ¿¡ ³Ö¾î¼ ÅØ½ºÆ®
ÇüÅ·Π±â¼úÇÕ´Ï´Ù.
ÀϹÝÀûÀ¸·Î association,
generalizationÀ¸·Î ¸¹Àº Á¦¾à»çÇ×À» Ç¥ÇöÇÒ ¼ö ÀÖÁö¸¸ À̰ÍÀ¸·Î Ç¥Çö ÇÒ ¼ö ¾ø´Â
°æ¿ì, ¿ÀÇØ¸¦ ÇÇÇϱâ À§ÇØ ÄÚ¸àÆ® Çü½ÄÀ¸·Î ´õ ±â¼úÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù.
ÇÑ È¸»ç¿¡¼
ÁÖ¹®À» ó¸®Çϴµ¥ °ü¿©Çϴ Ŭ·¡½º °ü°è¸¦ ±×¸° Ŭ·¡½º ´ÙÀ̾î±×·¥ Àüü ±×¸² ¿¹ÀÔ´Ï´Ù.

5)
½ÃÄö½º ´ÙÀ̾î±×·¥
Ŭ·¡½º ´ÙÀ̾î±×·¥ÀÌ Á¤Àû Ãø¸é¿¡¼ ½Ã½ºÅÛÀ» ¹Ù¶óº» °ÍÀ̶ó¸é
µ¿Àû Ãø¸é¿¡¼ ¹Ù¶óº» °ÍÀÌ ±³·ùµµ(Interaction Diagram)
ÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÇϳªÀÇ ¾²ÀÓ»õ (use-case)¸¦ ´õ Àß ÀÌÇØÇϱâ À§ÇØ, ±× ¾²ÀÓ»õ
³»¿¡ ÀÖ´Â ¿©·¯ °´Ã¼°¡ ¾î¶»°Ô ¿òÁ÷ÀÌ´ÂÁö µé¿©´Ùº¸°í ½ÍÀ» ¶§ ±×¸³´Ï´Ù.
±³·ùµµ¿¡´Â ½ÃÄö½º(Sequence)
´ÙÀ̾î±×·¥°ú Çù·Â(Collaboration) ´ÙÀ̾î±×·¥ µÎ °¡Áö°¡ Àִµ¥ ¾à°£ ´Ù¸£Áö¸¸ À¯»çÇÕ´Ï´Ù.
±×·¡¼ µÑ ´Ù
±×¸®´Â °æ¿ì´Â °ÅÀÇ ¾ø°í ÃëÇâ¿¡ µû¶ó ÇÑ °¡Áö¸¦ ±×¸³´Ï´Ù.
ÀϹÝÀûÀ¸·Î ½ÃÄö½º
´ÙÀ̾î±×·¥À» ±×¸³´Ï´Ù.
±×·±µ¥ ´ëºÎºÐÀÇ
UML ÅøÀÌ ÀÌ µÑ »çÀÌÀÇ ÀÚµ¿À¸·Î º¯È¯ ÇØÁֱ⠶§¹®¿¡ ÇϳªÀÇ ´ÙÀ̾î±×·¥¸¸À» ±×¸®°í ÅøÀ»
»ç¿ëÇØ¼ ´Ù¸¥ ´ÙÀ̾î±×·¥À» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
¿©±â¼´Â ¸¹ÀÌ
±×¸®´Â ½ÃÄö½º ´ÙÀ̾î±×·¥¿¡ ´ëÇØ ¹è¿ó´Ï´Ù.
±³·ùµµ¸¦ ±×¸®´Â
ù¹øÂ°´Â ¼ø¼´Â Âü¿©ÇÏ°Ô µÉ °´Ã¼¸¦ ±¸ºÐÇÏ°í ±×¸®´Â °ÍÀÔ´Ï´Ù. °´Ã¼´Â »ç°¢ÇüÀ¸·Î
±×¸®°í °¡¿îµ¥¿¡ °´Ã¼ ID À̸§À» ±½Àº ±Û¾¾Ã¼·Î ¾¹´Ï´Ù.
±×¸®°í °´Ã¼
¾Æ·¡·Î
Á¡¼±À» ±×¾î¼ »ý¸í¼±(lifeline)À»Ç¥½ÃÇÕ´Ï´Ù.
°´Ã¼°£ Åë½ÅÀº
¸Þ½ÃÁö¸¦ ÅëÇØ¼ Çϴµ¥ º¸Åë ¸Þ½ÃÁö´Â È»ìÇ¥ À§¿¡ ¸Þ¼Òµå À̸§À» ±â¼úÇϰí, °´Ã¼
ÀÚ½ÅÀÇ ¸Þ¼Òµå¸¦ ºÎ¸¦ ¶§´Â self-delegation ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.
±×¸®°í ¸®ÅÏÀ» ¸í½ÃÇÒ Çʿ䰡 ÀÖÀ» ¶§´Â Á¡¼±À¸·Î È»ìÇ¥¸¦ ±×¸³´Ï´Ù. (¾Æ·¡ ù¹øÂ°
±×¸²)
ÇÏÁö¸¸ ¸®ÅÏÀ»
¹Ýµå½Ã ¸í½ÃÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌÇØÇϴµ¥ µµ¿òÀÌ µÇ¸é ¸í½ÃÇϼ¼¿ä.
ÇÁ·Î±×·¥ Á¦¾î¿¡
ÇÊ¿äÇÑ ±¸¹®ÀÌ Àִµ¥ Çϳª´Â Á¶°ÇÀ» ¸í½ÃÇÏ´Â °ÍÀ̰í (Áï, ¾î¶² Á¶°ÇÀÌ ÂüÀ̳ª °ÅÁþÀÌ
µÉ ¶§¸¸ ¸Þ½ÃÁö¸¦ º¸³»µµ·Ï), ´Ù¼öÀÇ °´Ã¼¿¡°Ô ¸Þ½ÃÁö¸¦ µ¿½Ã¿¡ º¸³½´Ù´Â °ÍÀ» ³ªÅ¸³»´Â
iteration marker * ¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
ÁÖ¹®À» ó¸®Çϴµ¥
°ü¿©Çϴ Ŭ·¡½º¿Í ±× µé°£ÀÇ ¸Þ½ÃÁö Àü´Þ °ü°è¸¦ ±×¸° ½ÃÄö½º ´ÙÀ̾î±×·¥ Àüü ±×¸²
¿¹ ÀÔ´Ï´Ù

- http://agora.plasticsoftware.com/UMLKorea/
Çѱ۷ΠµÈ UML
»çÀÌÆ® Áß¿¡¼´Â °¡Àå ¿µ¾ç°¡ ÀÖ´Â °÷ÀÌ ¾Æ´Ñ°¡ ½Í½À´Ï´Ù. ¡°UML¿¡ °ü·ÃµÈ
°¢Á¾ Áö½Ä°ú Á¤º¸¸¦ °øÀ¯ÇÏ¿© ¸¹Àº »ç¶÷µéÀÌ UMLÀ» »ç¿ëÇϰí Á» ´õ ½±°Ô Á¢±ÙÇÏ¿©
½ÇÁ¦ Çʿ信 µû¶ó ÀÀ¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ ¸ñÀûÀÔ´Ï´Ù¡±¶ó°í Ȩ ÆäÀÌÁö¿¡ ³ª¿Í
Àֳ׿ä. ¿µ¹® »çÀÌÆ®·Î´Â http://www.uml-forum.com ÀÌ Àִµ¥ ¿©±âµµ ÁÁÀº Á¤º¸°¡
¸¹ÀÌ ÀÖ½À´Ï´Ù. ƯÈ÷ UML 2.0 ¿¡ ´ëÇÑ Á¤º¸´Â °¡Àå ºü¸¥ °Í °°½À´Ï´Ù.
- http://dognet.chonbuk.ac.kr
ÀüºÏ´ëÀÇ ¡°»ý°¢ÇÏ´Â
»ç¶÷µé¡±À̶ó´Â ±×·ì¿¡¼ ¸¸µç »çÀÌÆ® ÀÔ´Ï´Ù. State diagram, Activity diagram,
Use-case diagram µî¿¡ ´ëÇØ °£·«ÇÑ Æ©Å丮¾óÀ» ¿øÇϽøé ÀÌ »çÀÌÆ®¸¦ ¹æ¹®ÇØ º¸¼¼¿ä.
- http://mindview.net/Weblog/log-0041
Bruce Eckel
Ȩ ÆäÀÌÁö (http://www.bruceeckel.com/)¿¡ ÀÖ´Â WebLog¿¡ °¡½Ã¸é À¯¿ëÇÑ Q&A°¡
Àִµ¥, ¡°¾î¶² UML ÅøÀÌ ÁÁÀº°¡¿ä?¡±¿¡ ´ëÇÑ ´ë´äÀÌ ÀÖ´Â ¸µÅ©ÀÔ´Ï´Ù. ´Ù¾çÇÑ
Åø°ú ´Ù¾çÇÑ »ç¿ëÀÚ Çǵå¹éÀÌ ÀÖÀ¸´Ï±î Àо½Ã°í ÀûÀýÇÑ °ÍÀ» °ñ¶ó¼ »ç¿ëÇϽøé
µÇ°Ú½À´Ï´Ù.
|