¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©(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)ÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. »õ·Î¿î ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¤ÀÇÇÏ·Á¸é ´ÙÀ½°ú °°Àº ÀýÂ÷¸¦ µû¸¥´Ù.
¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ© ¹®¼ ÆÄÀÏÀº XML Æ÷¸ËÀ¸·Î Á¤ÀǵǾî ÀÖÀ¸¸ç È®ÀåÀÚ´Â .frw(Framework File)ÀÌ´Ù. ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ³»¿ëÀº FRAMEWORK ÅÂ±× ³»¿¡ ±â¼úµÇ¸ç ±¸¹®À̳ª ³»¿ë¿¡ ¿À·ù°¡ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.
<?xml version="1.0" encoding="..." ?> <FRAMEWORK version="..."> <HEADER> ... </HEADER> <BODY> ... </BODY> </FRAMEWORK>
Header ºÎºÐ¿¡´Â ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©ÀÇ À̸§°ú ¼³¸í µî ¸ðµ¨ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ °³°ýÀûÀÎ Á¤º¸¸¦ ±â¼úÇÑ´Ù.
<HEADER> <NAME>...</NAME> <DISPLAYNAME>...</DISPLAYNAME> <DESCRIPTION>...</DESCRIPTION> </HEADER>
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");