An Approach to Clone Detec/on in Behavioral Models - - PowerPoint PPT Presentation

an approach to clone detec on in behavioral models
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

An ¡Approach ¡to ¡Clone ¡Detec/on ¡ in ¡Behavioral ¡Models

Elizabeth ¡P. ¡Antony Manar ¡H. ¡Alalfi James ¡R. ¡Cordy

1

slide-2
SLIDE 2

Behavioural ¡Models

  • Behavioural ¡Models

– Used ¡to ¡represent ¡complex ¡dynamic ¡interac/ons ¡ between ¡actors ¡in ¡interac/ve ¡systems

  • Sequence ¡Diagrams

– UML ¡standard ¡for ¡behavioural ¡models

2

slide-3
SLIDE 3

3

slide-4
SLIDE 4

4

Lifelines (represent actors)

slide-5
SLIDE 5

5

Lifelines (represent actors) Messages (communica/on between ¡actors)

slide-6
SLIDE 6

6

Lifelines (represent actors) Messages (communica/on between ¡actors) Behaviour Execu/ons (sequences ¡of ¡ communica/ons by ¡an ¡actor)

slide-7
SLIDE 7

7

Lifelines (represent actors) Messages (communica/on between ¡actors) Behaviour Execu/ons (sequences ¡of ¡ communica/ons by ¡an ¡actor) Conversa/ons (sequences ¡of ¡ communica/ons ¡ between ¡actors)

slide-8
SLIDE 8

Clones ¡in ¡Behavioural ¡Models

  • Similar ¡or ¡iden/cal ¡sequences ¡of ¡behavioural ¡

interac/ons ¡

– Repeated ¡“conversa/ons”

  • Applica/ons

– Process ¡refactoring, ¡interac/on ¡op/miza/on, ¡ test ¡reduc/on, ¡... – Security ¡analysis

8

slide-9
SLIDE 9

9

slide-10
SLIDE 10

10

slide-11
SLIDE 11

State ¡of ¡the ¡Art

  • General ¡UML ¡exact ¡(type ¡1) ¡and ¡renamed ¡

(type ¡2) ¡sequences ¡in ¡XMI ¡[Störrle ¡SoSyM ¡2013]

– Repeated ¡message ¡sequences ¡in ¡a ¡lifeline

  • What ¡we ¡need ¡...

– Complete ¡conversa/ons – Near-­‑miss ¡(type ¡3, ¡similar ¡but ¡not ¡exact) ¡clones

11

slide-12
SLIDE 12

NICAD

  • Success ¡applying ¡NICAD ¡near-­‑miss ¡code ¡clone ¡

detector ¡to ¡Simulink ¡graphical ¡models ¡ [Alalfi ¡et ¡al ¡ICSM ¡2012]

– By ¡transforming ¡textual ¡representa/on – Can ¡we ¡use ¡it ¡for ¡behavioural ¡models? ¡

  • Challenges:

– Non-­‑local ¡representa/on ¡of ¡behaviour ¡and ¡ message ¡execu/ons ¡in ¡XMI ¡textual ¡format – Linear ¡representa/on ¡by ¡parts, ¡not ¡by ¡conversa/on ¡

12

slide-13
SLIDE 13

<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

slide-14
SLIDE 14

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"/>

slide-15
SLIDE 15

Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)

15

Process

Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons

slide-16
SLIDE 16

Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)

16

Iden/fica/on ¡& ¡Consolida/on

Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons

slide-17
SLIDE 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"/> ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡<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

slide-18
SLIDE 18

<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

slide-19
SLIDE 19

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>

slide-20
SLIDE 20

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>

slide-21
SLIDE 21

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>

slide-22
SLIDE 22

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>

slide-23
SLIDE 23

Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)

23

Contextualiza/on

Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons

[Mar/n ¡& ¡Cordy ¡IWSC ¡2011]

slide-24
SLIDE 24

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"/>

slide-25
SLIDE 25

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"/>

slide-26
SLIDE 26

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"/>

slide-27
SLIDE 27

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> ¡ ¡ ¡ ¡• ¡• ¡•

slide-28
SLIDE 28

Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)

28

Normaliza/on ¡& ¡Extrac/on

Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons

slide-29
SLIDE 29

Normaliza/on

  • Remove ¡spurious ¡differences, ¡by

– Anonymizing ¡context-­‑dependent ¡amributes ¡ such ¡as ¡coveredBy

  • Blind ¡renaming ¡all ¡names, ¡except

– type, ¡name, ¡and ¡role

29

slide-30
SLIDE 30

Normalize ¡& ¡Extract

slide-31
SLIDE 31

Sequence ¡Diagram as ¡XMI ¡text Iden/fica/on ¡& Consolida/on (TXL) Normaliza/on ¡& ¡Extrac/on (TXL)

31

Clone ¡Detec/on ¡& ¡Analysis

Contextualiza/on (TXL) Clone ¡Detec/on & ¡Analysis (NiCad) Conversa/on ¡ Clones Consolidated Conversa/ons Contextualized Conversa/ons Extracted ¡ Conversa/ons

slide-32
SLIDE 32

NiCad Code ¡Clone ¡ Detector Extracted ¡Consolidated, ¡Contextualized, ¡ Normalized ¡Conversa/ons Conversa/on Clone ¡Pairs

slide-33
SLIDE 33

Ini/al ¡Results

33

Model XMI Lines Conversations Clone Pairs Clone Classes 1 752 30 18 7 2 5376 223 1260 14 3 9504 142 407 27 4 53861 314 3330 27 5 469356 1232 75947 51

  • Without ¡normaliza/on

– Near-­‑miss ¡threshold ¡35%, ¡no ¡renaming ¡or ¡filtering – Some ¡clones ¡found, ¡but ¡not ¡really ¡meaningful

slide-34
SLIDE 34

Results ¡with ¡Normaliza/on

34

Model XMI Lines Conversations Clone Pairs Clone Classes 1 752 30 27 9 2 5376 223 1561 13 3 9504 142 377 14 4 53861 314 3475 18 5 469356 1232 76146 19

  • With ¡normaliza/on

– Near-­‑miss ¡threshold ¡10%, ¡with ¡renaming ¡and ¡filtering – Meaningful ¡clones ¡found, ¡at ¡high ¡similarity – Clustered ¡into ¡useful ¡classes

slide-35
SLIDE 35

Small ¡Example ¡Recovered ¡Clone

35

slide-36
SLIDE 36

36

slide-37
SLIDE 37

A ¡First ¡Example ¡Applica/on

  • Security ¡analysis ¡of ¡design-­‑recovered ¡

behavioral ¡models ¡of ¡PhpBB ¡2.0

– three ¡roles: ¡anonymous ¡user, ¡registered ¡user, ¡ administrator

  • Three ¡recovered ¡Sequence ¡Diagram ¡models: ¡

– explore ¡site ¡in ¡administrator ¡mode – explore ¡site ¡in ¡anonymous ¡mode – explore ¡site ¡in ¡anonymous ¡mode ¡with ¡forced ¡ administrator ¡links

37

slide-38
SLIDE 38

!"#$%&'()& *+,--,+& '()& '+,./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/& (!?&#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.&

Model ¡Checking ¡Method

38

[Alalfi ¡et ¡al ¡WSE ¡2012]

slide-39
SLIDE 39

39

slide-40
SLIDE 40

!"#$%&'()& *+,--,+& '()& '+,./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/& (!?&#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.&

Model ¡Checking ¡Method

40

slide-41
SLIDE 41

!"#$%&'()& *+,--,+& '()& '+,./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.>&

Model ¡Checking ¡Method

41

slide-42
SLIDE 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#

Model ¡Checking ¡Method

42

slide-43
SLIDE 43

!"!#$%&# '()**)(# $%&# $()+,-.(*/ )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

Clone ¡Detec/on ¡Method

slide-44
SLIDE 44

Experiment

  • Iden/fy ¡access ¡viola/ons ¡using ¡cross ¡cloning

– iden/fy ¡cross-­‑clones ¡between ¡admin ¡role ¡model ¡ and ¡anonymous ¡role ¡model ¡{Admin ¡x ¡Anon} – iden/fy ¡cross-­‑clones ¡between ¡admin ¡model ¡and ¡ anonymous ¡with ¡forced ¡admin ¡links ¡model ¡ {Admin ¡x ¡ForcedAnon} – flag ¡ ¡{Admin ¡x ¡ForcedAnon} ¡– ¡{Admin ¡x ¡Anon} ¡ as ¡poten/al ¡security ¡viola/ons

  • Validate ¡against ¡published ¡model ¡checking ¡results ¡

[Alalfi ¡et ¡al ¡WSE ¡2012] ¡

44

slide-45
SLIDE 45

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

slide-46
SLIDE 46

Cross-­‑Clones ¡with ¡Normaliza/on

46

  • With ¡normaliza/on

– Near-­‑miss ¡threshold ¡10%, ¡with ¡renaming ¡and ¡filtering

Models Clone Pairs Clone Classes Admin x AnonForced 1154 31 Admin x Anon 3030 19 Suspicious Pairs (Ad x AnF - Ad x An) 62

slide-47
SLIDE 47

Comparison ¡with ¡SecureUML ¡ Model ¡Checking ¡Method

  • Of ¡the ¡62 ¡suspicious ¡pairs, ¡

– 58 ¡instances ¡of ¡the ¡12 ¡unauthorized ¡DB ¡accesses ¡ iden/fied ¡in ¡the ¡published ¡security ¡analysis

  • Recall ¡12/12 ¡= ¡100%

– 4 ¡instances ¡of ¡2 ¡different ¡benign ¡DB ¡accesses ¡ (false ¡posi/ves)

  • Precision ¡12/14 ¡= ¡86%

– And, ¡returns ¡all ¡instances, ¡not ¡just ¡one ¡ counter-­‑example

47

slide-48
SLIDE 48
  • Process ¡for ¡clone ¡detec/on ¡in ¡behavioural ¡

models, ¡using ¡consolida/on ¡and ¡ contextualiza/on

  • Demonstrated ¡applica/on ¡in ¡lightweight ¡

web ¡applica/on ¡security ¡analysis ¡using ¡ cross-­‑clones

48

Summary

slide-49
SLIDE 49

Future ¡Work

  • Improve ¡precision
  • Tune ¡and ¡op/mize ¡normaliza/on
  • More ¡applica/ons ¡& ¡experiments

49

slide-50
SLIDE 50

An ¡Approach ¡to ¡Clone ¡Detec/on ¡ in ¡Behavioral ¡Models

Elizabeth ¡P. ¡Antony Manar ¡H. ¡Alalfi James ¡R. ¡Cordy

50