📄 umlcomoad005.htm
字号:
<head><meta NAME="´°ÍâÈí¼þ¹¤³Ì" Content="Author:Asia Alien"><title>UML元元模型(中文)</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link REL="stylesheet" HREF="../../newcss.css" TYPE="text/css"></head><body><b> <blockquote> <p> <font size="5"><img border="0" src="i/umldilver.gif" WIDTH="606" HEIGHT="15"></font></p> <p><a href="umlcomoad000.htm">返回目录</a></p> <p><font size="5">4.<a name="4"></a> IDL模块</p> <blockquote> </font><font face="Arial" size="5"><p></font><font size="5">4.1<a name="4.1"></a> 接口简介</p> </font> </b><font face="Times New Roman"><p></font>OA&D工具定义了下列接口模块:</p> <blockquote> <p>粗纹(Coarse-Grained)接口:</p> <font face="Times New Roman"><p></font>OAD_Stream<font face="Times New Roman"></p> <p></font>OAD_CoarseGrainFacility<font face="Times New Roman"></p> </font><p>细纹(Fine-Grained)接口:</p> <font face="Times New Roman"><p></font>Behavior_Elements<font face="Times New Roman"></p> <p></font>Core_Concepts<font face="Times New Roman"></p> <p></font>OA&D_Facility<font face="Times New Roman"></p> <p></font>Structural_Elements<font face="Times New Roman"></p> <p></font>View_Elements<font face="Times New Roman"></p> </blockquote> <p></font><br> 这些接口对应于UML元模型中的包。</p> <b><font face="Arial" size="5"><p></font><font size="5">4.2 </font><a name="4.2"></a><font size="5">粗纹接口</p> </font><font face="Arial" size="4"><p></font><font size="4">4.2.1 <a name="4.2.1"></a>OAD_Stream模块</p> </font> </b><font face="Courier New"><p></font>module OAD_Stream {<font face="Courier New"></p> <p></font>interface OAD_Stream : CosExternalization::Stream {}<font face="Courier New"></p> <p></font>interface OAD_StreamFactory : CosExternalization::StreamFactory {}<font face="Courier New"></p> <p></font>interface OAD_StreamFileFactory : CosExternalization::StreamFileFactory {}<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface OAD_Streamable : CosStream::Streamable {}<font face="Courier New"></p> <p></font>interface OAD_StreamableFactory : CosStream::StreamableFactory {}<font face="Courier New"></p> <p></font>interface OAD_StreamIO : CosStream::StreamIO {}<font face="Courier New"></p> <p></font>};<font face="Courier New"></p> </font><b><font face="Arial" size="4"><p></font><font size="4">4.2.2 <a name="4.2.2"></a>OAD_CoarseGrainFacility 模块</p> </font> </b><font face="Courier New"><p></font>module OAD_CoarseGrainFacility {<font face="Courier New"></p> <p></font>typedef string Name; // should this be IString?<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>typedef Collection ModelCollection;<font face="Courier New"></p> <p></font>typedef Collection PackageCollection;<font face="Courier New"></p> <p></font>typedef Collection DiagramCollection;<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface System;<font face="Courier New"></p> <p></font>interface Model;<font face="Courier New"></p> <p></font>interface Package;<font face="Courier New"></p> <p></font>interface Diagram;<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface System : OAD_Streamable<font face="Courier New"></p> <p></font>{<font face="Courier New"></p> <p></font>attribute Name name;<font face="Courier New"></p> <p></font>attribute ModelCollection models;<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>Model add_Model();<font face="Courier New"></p> <p></font>void remove_Model(in Model theObject);<font face="Courier New"></p> <p></font>};<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface SystemFactory {<font face="Courier New"></p> <p></font>System create();<font face="Courier New"></p> <p></font>System create(in Name theName);<font face="Courier New"></p> <p></font>}<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface Model : OAD_Streamable<font face="Courier New"></p> <p></font>{<font face="Courier New"></p> <p></font>attribute Name name;<font face="Courier New"></p> <p></font>attribute PackageCollection packages;<font face="Courier New"></p> <p></font>attribute DiagramCollection diagrams;<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>Package add_Package();<font face="Courier New"></p> <p></font>void remove_Package(in Package theObject);<font face="Courier New"></p> <p></font>Diagram add_Diagram();<font face="Courier New"></p> <p></font>void remove_Diagram(in Diagram theObject);<font face="Courier New"></p> <p></font>};<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface ModelFactory {<font face="Courier New"></p> <p></font>Model create();<font face="Courier New"></p> <p></font>Model create(in Name theName);<font face="Courier New"></p> <p></font>}<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface Package : OAD_Streamable<font face="Courier New"></p> <p></font>{<font face="Courier New"></p> <p></font>attribute Name name;<font face="Courier New"></p> <p></font>attribute Model model;<font face="Courier New"></p> <p></font>attribute DiagramCollection diagrams;<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>Diagram add_Diagram();<font face="Courier New"></p> <p></font>void remove_Diagram(in Diagram theObject);<font face="Courier New"></p> <p></font>};<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface PackageFactory {<font face="Courier New"></p> <p></font>Package create();<font face="Courier New"></p> <p></font>Package create(in Name theName);<font face="Courier New"></p> <p></font>}<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface Diagram : OAD_Streamable<font face="Courier New"></p> <p></font>{<font face="Courier New"></p> <p></font>attribute Name name;<font face="Courier New"></p> <p></font>};<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font>interface DiagramFactory {<font face="Courier New"></p> <p></font>Diagram create();<font face="Courier New"></p> <p></font>Diagram create(in Name theName);<font face="Courier New"></p> <p></font>}<font face="Courier New"></p> <p></font>};<font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p></font> <font face="Courier New"></p> </font><b><font face="Arial" size="5"><p>4.3<a name="4.3"></a> </font><font size="5">细纹接口</p> </font><font face="Arial" size="4"><p>4.3.1 <a name="4.3.1"></a>Behavioral_Elements </font><font size="4">模块</p> </font> </b><font face="Courier New"><p>#include <CosLifeCycle.idl></p> <p>#include <Core_Concepts.idl></p> <p></font> <font face="Courier New"></p> <p></font> <font face="Courier New"></p> <p>// =======================================================</p> <p></font> <font face="Courier New"></p> <p>module Behavioral_Elements {</p> <p></font> <font face="Courier New"></p> <p>interface ActualArgument;</p> <p>interface CompositeState;</p> <p>interface Vertex;</p> <p>interface Connector;</p> <p>interface Interaction;</p> <p>interface Action;</p> <p>interface Transition;</p> <p>interface Event;</p> <p>interface Link;</p> <p>interface LinkRole;</p> <p>interface ActionExpression;</p> <p>interface StateMachine;</p> <p>interface TimeExpression;</p> <p>interface Behavior;</p> <p>interface Message;</p> <p>interface ActionState;</p> <p>interface BooleanExpression;</p> <p>interface State;</p> <p></font> <font face="Courier New"></p> <p>typedef Collection ActualArgumentCollection;</p> <p>typedef Collection CompositeStateCollection;</p> <p>typedef Collection VertexCollection;</p> <p>typedef Collection ConnectorCollection;</p> <p>typedef Collection InteractionCollection;</p> <p>typedef Collection ActionCollection;</p> <p>typedef Collection TransitionCollection;</p> <p>typedef Collection EventCollection;</p> <p>typedef Collection LinkCollection;</p> <p>typedef Collection LinkRoleCollection;</p> <p>typedef Collection ActionExpressionCollection;</p> <p>typedef Collection StateMachineCollection;</p> <p>typedef Collection TimeExpressionCollection;</p> <p>typedef Collection BehaviorCollection;</p> <p>typedef Collection MessageCollection;</p> <p>typedef Collection ActionStateCollection;</p> <p>typedef Collection BooleanExpressionCollection;</p> <p>typedef Collection StateCollection;</p> <p></font> <font face="Courier New"></p> <p>enum ConnectorKind {</p> <p>initial, final, history</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface ActualArgument: CosLifeCycle::LifeCycleObject {</p> <p>attribute {target,_parameter,_participant} value;</p> <p>attribute Action Action_reference;</p> <p>attribute Instance Instance_reference;</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface ActualArgumentFactory {</p> <p>ActualArgument create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface CompositeState: State {</p> <p>attribute Core_Concepts::Boolean isConcurrent;</p> <p>attribute Core_Concepts::Boolean hasHistory;</p> <p>attribute VertexCollection substate;</p> <p></font> <font face="Courier New"></p> <p>Vertex add_Vertex();</p> <p>void remove_Vertex(in Vertex theObject);</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface CompositeStateFactory {</p> <p>CompositeState create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Vertex: Core_Concepts::ModelElement {</p> <p>attribute StateMachine vertices;</p> <p></font> <font face="Courier New"></p> <p>attribute CompositeState substate;</p> <p></font> <font face="Courier New"></p> <p>attribute TransitionCollection source;</p> <p></font> <font face="Courier New"></p> <p>attribute TransitionCollection target;</p> <p></font> <font face="Courier New"></p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface VertexFactory {</p> <p>Vertex create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Connector: Vertex {</p> <p>attribute ConnectorKind kind;</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface ConnectorFactory {</p> <p>Connector create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Interaction: Behavior {</p> <p>attribute LinkCollection links;</p> <p></font> <font face="Courier New"></p> <p>attribute Structural_Elements::InstanceCollection instances;</p> <p></font> <font face="Courier New"></p> <p>Link add_Link();</p> <p>void remove_Link(in Link theObject);</p> <p>Instance add_Instance();</p> <p>void remove_Instance(in Instance theObject);</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface InteractionFactory {</p> <p>Interaction create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Action: Core_Concepts::ModelElement {</p> <p>attribute Message action;</p> <p></font> <font face="Courier New"></p> <p>attribute Structural_Elements::Activity activity;</p> <p></font> <font face="Courier New"></p> <p>Activity add_Activity();</p> <p>void remove_Activity(in Activity theObject);</p> <p>ActualArgumentCollection get_actual_argument();</p> <p>Instance add_Instance();</p> <p>void remove_Instance(in Instance theObject);</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface ActionFactory {</p> <p>Action create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Transition: Core_Concepts::Relationship {</p> <p>attribute BooleanExpression guard;</p> <p>attribute StateMachine transitions;</p> <p></font> <font face="Courier New"></p> <p>attribute Event trigger;</p> <p></font> <font face="Courier New"></p> <p>attribute ActionExpression effect;</p> <p></font> <font face="Courier New"></p> <p>attribute VertexCollection source;</p> <p></font> <font face="Courier New"></p> <p>attribute VertexCollection target;</p> <p></font> <font face="Courier New"></p> <p>attribute State internal_transition;</p> <p></font> <font face="Courier New"></p> <p>Core_Concepts::Name label;</p> <p></font> <font face="Courier New"></p> <p>Event add_Event();</p> <p>void remove_Event(in Event theObject);</p> <p>ActionExpression add_ActionExpression();</p> <p>void remove_ActionExpression(in ActionExpression theObject);</p> <p>Name add_Name();</p> <p>void remove_Name(in Name theObject);</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface TransitionFactory {</p> <p>Transition create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Event: CosLifeCycle::LifeCycleObject {</p> <p>attribute TransitionCollection trigger;</p> <p></font> <font face="Courier New"></p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface EventFactory {</p> <p>Event create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface Link: Core_Concepts::Relationship {</p> <p>attribute Core_Concepts::Boolean isCreated;</p> <p>attribute Core_Concepts::Boolean isDestroyed;</p> <p>attribute Interaction links;</p> <p></font> <font face="Courier New"></p> <p>attribute sequence<LinkRole,2> link_roles;</p> <p></font> <font face="Courier New"></p> <p>attribute Structural_Elements::Association link_instance;</p> <p></font> <font face="Courier New"></p> <p>LinkRole add_LinkRole();</p> <p>void remove_LinkRole(in LinkRole theObject);</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface LinkFactory {</p> <p>Link create();</p> <p>};</p> <p></font> <font face="Courier New"></p> <p>interface LinkRole: Core_Concepts::ModelElement {</p> <p>attribute Link link_roles;</p> <p></font> <font face="Courier New"></p> <p>attribute Structural_Elements::ValueCollection qualification;</p> <p></font> <font face="Courier New"></p> <p>attribute Structural_Elements::AssociationRole role_instance;</p> <p></font> <font face="Courier New"></p> <p>attribute MessageCollection messages;</p> <p></font> <font face="Courier New"></p> <p>attribute Structural_Elements::Instance player;</p> <p></font> <font face="Courier New"></p> <p>Value add_Value();</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -