An ¡Approach ¡to ¡Clone ¡Detec/on ¡ in ¡Behavioral ¡Models
Elizabeth ¡P. ¡Antony Manar ¡H. ¡Alalfi James ¡R. ¡Cordy
1
An Approach to Clone Detec/on in Behavioral Models - - PowerPoint PPT Presentation
An Approach to Clone Detec/on in Behavioral Models Elizabeth P. Antony Manar H. Alalfi James R. Cordy 1 Behavioural Models Behavioural Models Used to represent
1
2
3
4
5
6
7
8
9
10
11
12
<packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BES2Id ¡EOS1Id ¡MOS5Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡connector="OC1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡connector="OC2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡connector="OC3Id"/> ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL2Id" ¡name="L2"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO1Id" ¡name="Msg1"/> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO2Id" ¡name="Msg2"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL3Id" ¡name="L3"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> </packagedElement> ¡ <packagedElement ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> <packagedElement ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/>
13
14
<packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BES2Id ¡EOS1Id ¡MOS5Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡connector="OC1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡connector="OC2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡connector="OC3Id"/> ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL2Id" ¡name="L2"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO1Id" ¡name="Msg1"/> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO2Id" ¡name="Msg2"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL3Id" ¡name="L3"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> </packagedElement> ¡ <packagedElement ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> <packagedElement ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/>
Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)
15
Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons
Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)
16
Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons
<packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL2Id" ¡name="L2"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO1Id" ¡name="Msg1"/> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO2Id" ¡name="Msg2"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL3Id" ¡name="L3"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> </packagedElement> ¡ <packagedElement ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> <packagedElement ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> 17
<packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> 18
19 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement>
20 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement>
21 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement>
22 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES1Id" ¡covered="LFLNl2Id" ¡start="MOS2Id" ¡finish="EOS3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS1Id" ¡covered="LFLNl1Id" ¡event="SOE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS2Id" ¡covered="LFLNl2Id" ¡event="ROE1Id" ¡message="MSG1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES2Id" ¡covered="LFLNl2Id" ¡start="MOS4Id" ¡finish="EOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS3Id" ¡covered="LFLNl2Id" ¡event="SOE2Id" ¡message="MSG2Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS4Id" ¡covered="LFLNl2Id" ¡event="ROE2Id" ¡message="MSG2Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS1Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES2Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS3Id" ¡covered="LFLNl2Id" ¡event="EE1Id" ¡execu/on="BES1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement>
Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)
23
Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons
24 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL2Id" ¡name="L2"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO1Id" ¡name="Msg1"/> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO2Id" ¡name="Msg2"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL3Id" ¡name="L3"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> </packagedElement> ¡ <packagedElement ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> <packagedElement ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/>
25 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL2Id" ¡name="L2"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO1Id" ¡name="Msg1"/> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO2Id" ¡name="Msg2"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL3Id" ¡name="L3"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> </packagedElement> ¡ <packagedElement ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> <packagedElement ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/>
26 <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL1Id" ¡name="L1"> ¡ ¡ ¡ ¡<ownedBehavior ¡xmi:type="uml:Interac/on" ¡xmi:id="INT1Id" ¡name="Interac/on1"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedConnector ¡xmi:type="uml:Connector" ¡xmi:id="OC3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End1Id" ¡role="PROPl2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<end ¡xmi:type="uml:ConnectorEnd" ¡xmi:id="OC3End2Id" ¡role="PROPl3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</ownedConnector> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl1Id" ¡name="l1" ¡represents="PROPl1Id" ¡coveredBy="MOS1Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy="MOS2Id ¡BES1Id ¡EOS3Id ¡MOS3Id ¡MOS4Id ¡BE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy="MOS6Id ¡BES3Id ¡EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡xmi:type="uml:Execu/onOccurrenceSpecifica/on" ¡xmi:id="EOS2Id" ¡covered="LFLNl3Id" ¡event="EE1Id" ¡execu/on="BES3Id ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG1Id" ¡name="Msg1" ¡messageSort="asynchCall" ¡receiveEvent="MOS2Id" ¡sendEvent="MOS1Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG2Id" ¡name="Msg2" ¡messageSort="asynchCall" ¡receiveEvent="MOS4Id" ¡sendEvent="MOS3Id" ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5Id" ¡ ¡ ¡ ¡</ownedBehavior> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl1Id" ¡name="l1" ¡type="CLSSL1Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡<ownedAmribute ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL2Id" ¡name="L2"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO1Id" ¡name="Msg1"/> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL2OO2Id" ¡name="Msg2"/> </packagedElement> <packagedElement ¡xmi:type="uml:Class" ¡xmi:id="CLSSL3Id" ¡name="L3"> ¡ ¡ ¡ ¡<ownedOpera/on ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> </packagedElement> ¡ <packagedElement ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/> <packagedElement ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"/>
27 ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡<BES> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:BehaviorExecu/onSpecifica/on" ¡xmi:id="BES3Id" ¡covered="LFLNl3Id" ¡start="MOS6Id" ¡finish="EOS2Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡ ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy=""> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedAmribute ¡ ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</lifeline> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<packagedElement ¡ ¡xmi:type="uml:SendOpera/onEvent" ¡xmi:id="SOE3Id" ¡name="SendOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedOpera/on ¡ ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</packagedElement> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡ ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡ ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy=""> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedAmribute ¡ ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</lifeline> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<packagedElement ¡ ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</message> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</fragment> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡ ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl3Id" ¡name="l3" ¡represents="PROPl3Id" ¡coveredBy=""> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedAmribute ¡ ¡xmi:type="uml:Property" ¡xmi:id="PROPl3Id" ¡name="l3" ¡type="CLSSL3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</lifeline> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<packagedElement ¡ ¡xmi:type="uml:ReceiveOpera/onEvent" ¡xmi:id="ROE3Id" ¡name="ReceiveOpera/onEvent3" ¡opera/on="CLSSL3OO1Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedOpera/on ¡ ¡xmi:type="uml:Opera/on" ¡xmi:id="CLSSL3OO1Id" ¡name="Msg3"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</packagedElement> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<message ¡ ¡xmi:type="uml:Message" ¡xmi:id="MSG3Id" ¡name="Msg3" ¡messageSort="asynchCall" ¡receiveEvent="MOS6Id" ¡sendEvent="MOS5 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS6Id" ¡covered="LFLNl3Id" ¡event="ROE3Id" ¡message="MSG3Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<fragment ¡ ¡xmi:type="uml:MessageOccurrenceSpecifica/on" ¡xmi:id="MOS5Id" ¡covered="LFLNl2Id" ¡event="SOE3Id" ¡message="MSG3Id"> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<lifeline ¡ ¡xmi:type="uml:Lifeline" ¡xmi:id="LFLNl2Id" ¡name="l2" ¡represents="PROPl2Id" ¡coveredBy=""> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<ownedAmribute ¡ ¡xmi:type="uml:Property" ¡xmi:id="PROPl2Id" ¡name="l2" ¡type="CLSSL2Id"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</lifeline> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡</message> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡• ¡• ¡• ¡ ¡ ¡ ¡</BES> ¡ ¡ ¡ ¡• ¡• ¡•
Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)
28
Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons
29
Normalize ¡& ¡Extract
Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)
31
Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons
NiCad Code ¡Clone ¡ Detector Extracted ¡Consolidated, ¡Contextualized, ¡ Normalized ¡Conversa/ons Conversa/on Clone ¡Pairs
33
34
35
36
37
!"#$%&'()& *+,--,+& '()& '+,./01+-2& ,31.&45%6/& 7,8,9,/6& /:;6-,& #15+:6& '+,./01+-,<1.& =%,//&73,>+,-& ?@6.<A:,<1.&10&& B/6+/C&41%6/C& 46/15+:6/& (!?:5+6B!)& !1@6%& (!?&81&D1+-,%&& !1@6%&8+,./01+-,<1.& !1@6%& =;6:E6+& =1++6:8& =15.86+&& FG,-H%6& I::6//&:1.8+1%& H+1H6+<6/& JKJ&'()& *+,--,+& '()& '+,./01+-2 ,31.&45%6/& & JKJ& 71:5-6.8/& & #8,<:&I.,%"/3/& ?./8+5-6.8,<1.& & ?./8+5-6.86@& JKJ&@1:5-6.8/& & FG6:5<1.&& '+,:6/& !58,.8& LH6+,81+/& & #8,<:& ?.01+-,<1.& & & 7".,-3:& ?.01+-,<1.& & #6$56.:6& 73,>+,-& 4,.@1-& B/6+&?.H58& & !58,.8& ?./8+5-6.86@& JKJ&@1:5-6.8/& &
M6;,N31+,%&!1@6%&46N6+/62& F.>3.66+3.>& #8+5:85+,%&!1@6%& 46N6+/62&F.>3.66+3.>& #6:5+38"&!1@6%&& =1./8+5:<1.& !1@6%&'+,./01+-,<1.&& ,.@&D1+-,%&O6+3A:,<1.&
38
39
!"#$%&'()& *+,--,+& '()& '+,./01+-2& ,31.&45%6/& 7,8,9,/6& /:;6-,& #15+:6& '+,./01+-,<1.& =%,//&73,>+,-& ?@6.<A:,<1.&10&& B/6+/C&41%6/C& 46/15+:6/& (!?:5+6B!)& !1@6%& (!?&81&D1+-,%&& !1@6%&8+,./01+-,<1.& !1@6%& =;6:E6+& =1++6:8& =15.86+&& FG,-H%6& I::6//&:1.8+1%& H+1H6+<6/& JKJ&'()& *+,--,+& '()& '+,./01+-2 ,31.&45%6/& & JKJ& 71:5-6.8/& & #8,<:&I.,%"/3/& ?./8+5-6.8,<1.& & ?./8+5-6.86@& JKJ&@1:5-6.8/& & FG6:5<1.&& '+,:6/& !58,.8& LH6+,81+/& & #8,<:& ?.01+-,<1.& & & 7".,-3:& ?.01+-,<1.& & #6$56.:6& 73,>+,-& 4,.@1-& B/6+&?.H58& & !58,.8& ?./8+5-6.86@& JKJ&@1:5-6.8/& &
M6;,N31+,%&!1@6%&46N6+/62& F.>3.66+3.>& #8+5:85+,%&!1@6%& 46N6+/62&F.>3.66+3.>& #6:5+38"&!1@6%&& =1./8+5:<1.& !1@6%&'+,./01+-,<1.&& ,.@&D1+-,%&O6+3A:,<1.&
40
!"#$%&'()& *+,--,+& '()& '+,./01+-2& ,31.&45%6/& 7,8,9,/6& /:;6-,& #15+:6& '+,./01+-,<1.& =%,//&73,>+,-& ?@?&'()& *+,--,+& '()& '+,./01+-2 ,31.&45%6/& & ?@?& 71:5-6.8/& & #8,<:&A.,%"/3/& B./8+5-6.8,<1.& & B./8+5-6.86C& ?@?&C1:5-6.8/& & DE6:5<1.&& '+,:6/& !58,.8& FG6+,81+/& & #8,<:& B.01+-,<1.& & & 7".,-3:& B.01+-,<1.& & #6$56.:6& 73,>+,-& 4,.C1-& H/6+&B.G58& & !58,.8& B./8+5-6.86C& ?@?&C1:5-6.8/& &
I6;,J31+,%&!1C6%&46J6+/62& D.>3.66+3.>& #8+5:85+,%&!1C6%& 46J6+/62&D.>3.66+3.>&
41
!"!#$%&# '()**)(# $%&# $()+,-.(*/ )0.+#1234,# # !"!# 5.62*4+7,# # 87)96#:+)3;,0,# <+,7(2*4+7)9.+# # <+,7(2*4+74=# !"!#=.62*4+7,# # >?4629.+## $()64,# @27)+7# AB4()7.(,# # 5;+)*06# <+-.(*)9.+# # 84C24+64# 50)D()*# 1)+=.*# E,4(#<+B27# # @27)+7# <+,7(2*4+74=# !"!#=.62*4+7,# #
F4G)H0.()3#@.=43#14H4(,4/# >+D0+44(0+D#
42
!"!#$%&# '()**)(# $%&# $()+,-.(*/ )0.+#1234,# # !"!# 5.62*4+7,# # 87)96#:+)3;,0,# <+,7(2*4+7)9.+# # <+,7(2*4+74=# !"!#=.62*4+7,# # >?4629.+## $()64,# @27)+7# AB4()7.(,# # 5;+)*06# <+-.(*)9.+# # 84C24+64# 50)D()*# 1)+=.*# E,4(#<+B27# # @27)+7# <+,7(2*4+74=# !"!#=.62*4+7,# #
F4G)H0.()3#@.=43#14H4(,4/# >+D0+44(0+D# I3.+4## 547469.+#
84C24+64# 50)D()*# 84C24+64# 50)D()*#
43
44
45
Admin ¡Role SD ¡Model Anonymous ¡Role SD ¡Model Anon ¡with ¡Forced ¡Admin ¡ Links ¡SD ¡Model Cross-‑Clone Detec/on Cross-‑Clone Detec/on Conversa/ons ¡in ¡Common Admin ¡/ ¡Anon ¡Forced ¡Admin Conversa/ons ¡in ¡Common ¡ Admin ¡/ ¡Anon Suspicious Conversa/ons ¡in Anon ¡Forced ¡Admin
46
47
48
49
50