Á¦ 6 Àå. ÇÁ·¹ÀÓ¿öÅ© »ç¿ëÇϱâ

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ±âº» °³³ä

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©(Model Framework)´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©(Application Framework)³ª Ŭ·¡½º ¶óÀ̺귯¸®(Class Library) µîÀ» StarUML¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÑ °ÍÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î JFC(Java Foundation Classes), MFC(Microsoft Foundatation Classes), µ¨ÆÄÀÌ VCL(Visual Component Library) µîÀÌ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ´ë»óÀÌ µÉ ¼ö ÀÖ´Ù. ±×¸®°í ÀÌ Àå¿¡¼­ ¼³¸íÇÏ°ÚÁö¸¸ »ç¿ëÀÚ°¡ ÇÊ¿äÇÑ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ´Â °¡Àå Å« ÀÌÁ¡Àº °øÅëÀûÀÌ°í ±â¹ÝÀÌ µÇ´Â ¸ðµ¨¸µ ¿ä¼Ò ¹× ±¸Á¶ÀÇ °øÀ¯¿Í Àç»ç¿ë¼º ÀÌ´Ù.

StarUML¾ÖÇø®ÄÉÀ̼ÇÀÇ [File]-[Import]-[Framework] ¸Þ´º¸¦ ½ÇÇàÇßÀ» ¶§ º¸¿©Áö´Â "Import Framework ´ÙÀ̾ó·Î±×"(¾Æ·¡ ±×¸²)´Â ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©µéÀÇ ¸ñ·ÏÀ» º¸¿©Áִµ¥, ¸ñ·Ï¿¡¼­ Ç׸ñÀ» ¼±ÅÃÇÏ°í ½ÇÇàÇϸé ÇØ´ç ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ ¹Ì¸® Á¤ÀÇÇÏ°í ÀÖ´Â ¸ðµ¨¸µ ±¸Á¶°¡ ÁöÁ¤ÇÑ °æ·Î¿¡ ÀÚµ¿À¸·Î Æ÷ÇÔµÇ°Ô µÈ´Ù. ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©´Â ¿©·¯ °³ÀÇ À¯´Ö(Unit) ÆÄÀϵé·Î ±¸¼ºµÇ¸ç,  StarUML¿¡ Æ÷ÇÔµÈ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©´Â ½ÇÁ¦·Î À¯´Ö°ú µ¿ÀÏÇÏ°Ô Ãë±ÞµÈ´Ù.

StarUML¿ÜºÎ API¸¦ »ç¿ëÇÏ¿© À§¿Í °°ÀÌ ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©µéÀÇ ¸ñ·ÏÀ» ¾ò°Å³ª ƯÁ¤ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù. ÀÌ¿¡ ´ëÇؼ­´Â µÚ¿¡¼­ ÀÚ¼¼È÷ ¼³¸íÇÒ °ÍÀÌ´Ù.

»õ·Î¿î ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ÀÛ¼ºÇϱâ

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©´Â ¿©·¯ °³ÀÇ À¯´Ö ÆÄÀÏ(.unt)µé°ú ÇϳªÀÇ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© Á¤ÀÇ ¹®¼­ ÆÄÀÏ(.frw)·Î ±¸¼ºµÇ¸ç, ¼±Åà ¿ä¼Ò·Î ¾ÆÀÌÄÜ ÆÄÀÏ(.ico)ÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. »õ·Î¿î ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¤ÀÇÇÏ·Á¸é ´ÙÀ½°ú °°Àº ÀýÂ÷¸¦ µû¸¥´Ù.

  1. ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¸ðµ¨ Á¤º¸¸¦ ´ã°í ÀÖ´Â À¯´Ö ÆÄÀϵéÀ» »ý¼ºÇÑ´Ù. ("Chapter 4. Using Open API"¸¦ Âü°í)
  2. ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¤ÀÇÇÏ´Â ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼­ ÆÄÀÏ(.frw)À» ÀÛ¼ºÇÑ´Ù.
  3. ÀÛ¼ºÇÑ À¯´ÖÆÄÀÏ°ú ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼­ ÆÄÀÏ ±×¸®°í ¾ÆÀÌÄÜ ÆÄÀÏÀ» StarUML™ ¸ðµâ µð·ºÅ丮 ÇϺο¡ º¹»çÇÑ´Ù.

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼­ ÆÄÀÏÀÇ ±âº» ±¸Á¶

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼­ ÆÄÀÏÀº XML Æ÷¸ËÀ¸·Î Á¤ÀǵǾî ÀÖÀ¸¸ç È®ÀåÀÚ´Â .frw(Framework File)ÀÌ´Ù. ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ³»¿ëÀº FRAMEWORK ÅÂ±× ³»¿¡ ±â¼úµÇ¸ç ±¸¹®À̳ª ³»¿ë¿¡ ¿À·ù°¡ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.

<?xml version="1.0" encoding="..." ?>
<FRAMEWORK version="...">
    <HEADER>
        ...
    </HEADER>
    <BODY>
        ...
    </BODY>
</FRAMEWORK>

Header Contents

Header ºÎºÐ¿¡´Â ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ À̸§°ú ¼³¸í µî ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ °³°ýÀûÀÎ Á¤º¸¸¦ ±â¼úÇÑ´Ù.

<HEADER>
    <NAME>...</NAME>
    <DISPLAYNAME>...</DISPLAYNAME>
    <DESCRIPTION>...</DESCRIPTION>
</HEADER>

Body Contents

Body ºÎºÐ¿¡¼­´Â ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ½ÇÁ¦ Á¤º¸°¡ ±â¼úµÇ´Âµ¥, Body ºÎºÐÀº Å©°Ô IMPORTPROFILES, FRAMEWORKMODELS µÎ ºÎºÐÀ¸·Î ±¸¼ºµÈ´Ù.

<BODY>
    <IMPORTPROFILES>
        <PROFILE>...</PROFILE>
        ...
    </IMPORTPROFILES>
    <FRAMEWORKMODELS>
        <UNIT>...</UNIT>
        ...
    </FRAMEWORKMODELS>
</BODY>

³ëÆ®: "UNIT ¿ä¼Ò"¿¡´Â ÃÖ»óÀ§ À¯´Ö¿¡ ÇØ´çÇÏ´Â À¯´Ö ÆÄÀϵ鸸 ÁöÁ¤ÇÑ´Ù. "Chapter 4. ÇÁ·ÎÁ§Æ® ´Ù·ç±â"¿¡¼­ º¸¾ÒµíÀÌ ¾î¶² À¯´ÖÀÌ ÇÏÀ§ À¯´ÖµéÀ» °¡Áö´Â °æ¿ì, ÇØ´ç »óÀ§ À¯´ÖÀÌ ·Îµå µÉ ¶§ ÇÏÀ§ À¯´ÖµéÀº ÀÚµ¿À¸·Î °°ÀÌ ·Îµå µÈ´Ù.

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼­ ¿¹Á¦

´ÙÀ½Àº Java 2 Standard Edition (J2SE) 1.3 ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¤ÀÇÇÏ°í ÀÖ´Â ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼­¸¦ ¿¹·Î º¸ÀÎ °ÍÀÌ´Ù.

<?xml version="1.0" encoding="UTF-8" ?>
<FRAMEWORK version="1.0">
    <HEADER>
        <NAME>J2SE1.3</NAME>
        <DISPLAYNAME>Java 2 Standard 1.3</DISPLAYNAME>
        <DESCRIPTION>Java 2 Standard Edition (J2SE) 1.3 Framework.</DESCRIPTION>
    </HEADER>
    <BODY>
        <FRAMEWORKMODELS>
            <UNIT>J2SE13 (java).pux</UNIT>
            <UNIT>J2SE13 (javax).pux</UNIT>
            <UNIT>J2SE13 (org).pux</UNIT> 
        </FRAMEWORKMODELS>
    </BODY>
</FRAMEWORK>

»õ·Î¿î ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© µî·ÏÇϱâ

ÀÛ¼ºµÈ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÇÁ·Î±×·¥¿¡¼­ ÀνÄÇÏ·Á¸é ÇÁ·¹ÀÓ¿öÅ©¿Í °ü·Ã ÆÄÀϵéÀ» StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules) ÇϺΠµð·ºÅ丮·Î ¿Å°Ü¾ß ÇÑ´Ù. StarUML™Àº ÇÁ·Î±×·¥ ÃʱâÈ­ ½Ã¿¡ ¸ðµâ µð·ºÅ丮 ÇϺθ¦ °Ë»öÇÏ¿© ¸ðµç ÇÁ·¹ÀÓ¿öÅ© ÆÄÀϵéÀ» ÀоîµéÀÎ ÈÄ ÇÁ·Î±×·¥¿¡ ÀÚµ¿ µî·ÏÇÑ´Ù. ¸¸¾à ÇÁ·¹ÀÓ¿öÅ© ÆÄÀÏÀÌ ¹®¹ý¿¡ ¸ÂÁö ¾Ê°Ô Àß ¸ø ÀÛ¼ºµÇ¾î Àְųª, È®ÀåÀÚ°¡ .frw°¡ ¾Æ´Ñ °æ¿ì¿¡´Â ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¤»óÀûÀ¸·Î ÀÐ¾î µéÀÌÁö ¾Ê°í ¹«½ÃÇÏ°Ô µÉ °ÍÀÌ´Ù.
ÇÁ·¹ÀÓ¿öÅ©°¡ ¸ðµâ µð·ºÅ丮 ÇϺο¡ Á¸ÀçÇϸé ÇÁ·Î±×·¥¿¡ µî·ÏµÇ´Â µ¥¿¡´Â ¹®Á¦°¡ ¾ø´Ù. ±×·¯³ª, °¡±ÞÀûÀÌ¸é ´Ù¸¥ ¸ðµâµé°úÀÇ È¥µ¿À» ÇÇÇϱâ À§ÇÏ¿© º°µµÀÇ ¼­ºêµð·ºÅ丮¸¦ ¸¸µé¾î »ç¿ëÇÏ´Â °ÍÀ» ±Ç°íÇÑ´Ù.

³ëÆ®: ÇÁ·¹ÀÓ¿öÅ©ÀÇ ¾ÆÀÌÄÜÀ» µî·ÏÇÏ·Á¸é, ÇÁ·¹ÀÓ¿öÅ©°ú µ¿ÀÏÇÑ À̸§ÀÇ ¾ÆÀÌÄÜ ÆÄÀÏ(.ico)À» ¸¸µé¾î ÇÁ·¹ÀÓ¿öÅ©°¡ ÀÖ´Â µð·ºÅ丮¿¡ µÎ¸é µÈ´Ù. ÇÁ·¹ÀÓ¿öÅ© ¾ÆÀÌÄÜÀº [Import Framework] ´ëÈ­»óÀÚ¿¡¼­ ÇÁ·¹ÀÓ¿öÅ©ÀÇ À̸§°ú ÇÔ²² ÇÁ·¹ÀÓ¿öÅ© ¸ñ·Ï ¸®½ºÆ®¿¡ Ç¥½ÃµÈ´Ù. ¸¸¾à ÇÁ·¹ÀÓ¿öÅ©ÀÇ À̸§°ú µ¿ÀÏÇÑ À̸§ÀÇ ¾ÆÀÌÄÜ ÆÄÀÏÀÌ ¾øÀ¸¸é ±âº» ¾ÆÀÌÄÜÀ¸·Î ÇÁ·¹ÀÓ¿öÅ©¸¦ µî·ÏÇÒ °ÍÀÌ´Ù.

³ëÆ®: ÇÁ·¹ÀÓ¿öÅ©¸¦ ´õ ÀÌ»ó »ç¿ëÇÏÁö ¾ÊÀ¸·Á¸é StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules) ÇϺο¡¼­ »èÁ¦ÇÏ¸é µÈ´Ù.

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© °ü·Ã ¸Þ¼Òµå »ç¿ëÇϱâ

½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© Á¤º¸ Àбâ

¿ÜºÎ API¸¦ ÅëÇØ ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©µéÀÇ ¸ñ·ÏÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ¿Í °ü·ÃµÈ ¿ÜºÎ API´Â  IProjectManager ÀÎÅÍÆäÀ̽ºÀÇ GetAvailableFrameworkCount ¸Þ¼Òµå¿Í GetAvailableFrameworkAt ¸Þ¼ÒµåÀÌ´Ù. ¾Æ·¡ÀÇ ÄÚµå´Â ÀÌ µÎ ¸Þ¼ÒµåÀÇ Çü½ÄÀ» º¸¿©ÁØ´Ù.

IProjectManager.GetAvailableFrameworkAt(Index: Integer): String
IProjectManager.GetAvailableFrameworkCount(): Integer

¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ºÒ·¯¿À±â

IProjectManager.ImportFramework ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ½Ã½ºÅÛ¿¡ µî·ÏµÇ¾îÀִ ƯÁ¤ ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ ÇöÀç ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù. ÀÌ ¸Þ¼ÒµåÀÇ Çü½ÄÀº ¾Æ·¡¿Í °°Àºµ¥, OwnerPackage ÀÎÀÚ´Â ÇØ´ç ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©°¡ Æ÷Ç﵃ »óÀ§ ¸ðµ¨ ¿ä¼Ò¸¦ ÁöÁ¤Çϸç IUMLPackage ŸÀÔ ¸ðµ¨ ¿ä¼Ò¿©¾ß ÇÑ´Ù. ±×¸®°í FrameworkName ÀÎÀÚ´Â ºÒ·¯¿Ã ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ À̸§À¸·Î, ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ Á¤È®ÇÑ À̸§(ID)À» ¹®ÀÚ¿­ °ªÀ¸·Î ÁöÁ¤ÇÏ¸é µÈ´Ù.

IProjectManager.ImportFramework(OwnerPackage: IUMLPackage; FrameworkName: String)

´ÙÀ½ ¿¹Á¦´Â IProjectManager.ImportFramework ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© "J2SE1.3" ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ ºÒ·¯¿À´Â °ÍÀ» º¸¿©ÁÖ°í ÀÖ´Ù.

var app = new ActiveXObject("StarUML.StarUMLApplication");
var prjMgr = app.ProjectManager;

var owner = ... // Get reference to IUMLPackage type element.
prjMgr.ImportFramework(owner, "J2SE1.3");