Japan Advanced Institute of Science and Technology
JAIST Repository
https://dspace.jaist.ac.jp/
Title
協調に基づくオブジェクト指向方法論の形式化と発展Author(s)
Nguyen, Truong ThangCitation
Issue Date
2002‑09Type
Thesis or DissertationText version
authorURL
http://hdl.handle.net/10119/1647Rights
Description
片山卓也, 情報科学研究科, 修士
!
"
! # $
%&&%
'&(&%&)*
!
"
! # $
! # $
! $# +
! $ ,-
%&&% '*
!
""# !
$ %& '& (
) * + ,
,
) ,
$ ) -
%)
. " "
' . /) "
0 ' ." ) 1 1 /) $
$ ) " '" 1
$ '" 1
$ " ) ,
$$ ' & & 2 ,
$ 3)"' % $
$ .4 %)%& )
$ ' 4 %)
$ %)
$$ * . "
$ ) . 5 (
$ 1 ,
' . ).& & $
6 1 " $$
$ 1 " $
$ ) )& 7 ) " $!
" & 2 $8
& & 2 $,
).& * 7 ' ) $
$ ) ' ) .& 5 $
1
! "
" -
* )
1 " /""# .)1
/ " 1 /) $
$ * * 1 " /""
$ 0" /) " !
$ 1/)&& 99 %
& !
$ 1 /) & : ;)<: .
& ,
!
" % & !
""0 =& 1 /) 1 !,
# $ % &"
! ).& * 7 (-
! ) "" /"" (-
!$ * 7 " (
! ) " (
' ( &
" ($
).& " (
) &#
. 99 % (!
. : ;)<: 8(
1 ' "
> & " 4 %&
$
2&
$ ) & ,
$ %& ) ?
)# 1
>
>
$-
$$ %& 1 & % ) $
) . & 1 $
% "# 6 ) @A
1 @"&A $!
$ ) ) + %&
& 1 1 &" + $(
) ) + %&
& 1 1 &" + 2
& )& 7 " ) $,
%& & ) ) !
! %& & 1 ) ) 8
"" )1# )
& )
6 &
1 " 1) !
$ . ? ) 2
" !-
!
") & &"
&" 5 " && 0
" &) &" &
&& & ) " &"
%&"5 +& >& >
&" 0 ) & & Æ) &"" 1
> & &
) " &" 5 >
" + & 0 &
) )
%& ) ) "
+ %& + &
%& & + " 5
" @ A & 5 6 "
%& > & 5 " & > &
&" 5 & ) &" " =
& ) 5 " 0 )> &
) & & ) ) )&
" ) %& 4 & "&
5 & "
& & + " 0
) 5 & 5 ">
" " " )
& & 5 " ) > 5
! Æ "
> " " & 5
& " " & 5 > "
5 " &" " >& &"
" & " & & +
& &" & & " & * )>
& ) &
%& +)) ; >
) " "
"+ 0>)? 5 )"
& & " " %& & ) )
& )
0> + # )
)
) 5 "
%& 1 & & )
"
$ ) " "
" "
&)" &
# "" " %&
5 ) ) )> & & )
)
) " )" & ) "
%&"")& &
& & 0 =
" & " ) ) & &
%& " ) " %&
) 1 )
" #$ %$ # %
& & ) & & 4> & "
4 @A & ") & B)) &
B 0 & ) &
>" & &) &
%& " @A
& & " & %& "
& ") 0 >1 & ")
0 )>& 4 &&&? &)"
@A0 @ A
& 5 & %& &
@A> " & &>+? &
5" " " & > )
0 >& 4 " ""&
4 ) )> " "
> )4 &4)
) 4 ) &
4 > " "
4 " 4> ) & & ) " "
> " ? 4 " & & &
& > 1 & & " & "
%& 4 )
%& 5 ) & & 4
%&& >
& %&
&& 4 %&&& )
> + 7" &&
4 @" A
@" A & )@ &
A> @ A &)
& & &
;)) & & " ) &)
) &)> &) " &
&) % 1>&) 4
) &) &)> "&& &
5 & & "> &) & )&7
" &
%& "& &" & > + &
" 0 > & ) #
%&) + &
& + C 4 0
& > & " 0 @" ;)<:A>
& ;> )
0 > & "" & "
1 D %& +) && "
4 5 4
) ;> > )
& ) & & &
&> ) )
%& ? > ) > & ")
) 5 & &> &)
& )> & ) 4 " & 1
%& >>">5& 0 >&
5 " 1 0 &+>
" >& "
1
& !$ $ ' (
" & ) # )
) >
& " &) & ) & &
" > 0 " &
"& " 0>+>
) > "" "
+ %& ) ) 7 "
%& &
) & ) 5 &> & ) >
& & &" 5 ? %&
& " + %& ) &
& ) & &" 5
@ )A *&> ""& &
) @ )A 0 "> )
" 5 " & $>
7 ) & %&) &
5 . & 5 > )
) 5 & " > " &
)" ""> & 7 ) " > )>
? "" 0 & &> & 7 )
" 0 1
"" "" .) "& 1 ) "
" "" ""> & )
& %& & " + 5
"">) 99: %&
& ) >& "" & %&
& 1 0 99> ) 1 )
""" )
%& 5 > > 5 & &
# ) )
> & & ) 5 & "> )
"> " "
%&+" 1 & & %&"
" & $> *)> +
& & & !
" % #
)
/ & 5 " )&&
& %& 1 &
& " 5 5 )
) )" )
&) )> )> & " &6 & 5 " )
"&
/
=& &"
>
> & & "
%& >
*
#
> & "
& " &
!
% + ? & > &
) 5 " ) &" % & >
& 1 & &
> >
) = & & &"
)
# #
0 & "> > & + )> &
) = & & & " &
3)>
& & & %& "&> & &
+ & > "
= ) & & 1 &
"
)
&)>
= ) %
&
&
#
#
&
& %& ) )"#
E@
A
0& > 6 & & 5
> & @A
5&?
5 @A"& ?
+ "
= & %& > & )
5 #
@A
)" & 0 & ) >
&& 4 & & &> > > 1 &
? 4 &
" !
& 5 " )
)> ) &
E@A
E@A
$ % &
'
"
( "
)
" !
) " & ) > &
6 "@A & 5
#
) & & "
#
'7)# * ) @A
)# @A@
A
0)# @FA E @A@
@FAA #
#
/ )# E @A
E @
A &
) E@
A
%& & ) 1&& "&
) "" & " " & " " &&
5 ? 0&7&
)
# $!
% ) %& 5 &
> & & &
> &
0>
&
5 >
0 & 5 )> & ) 1 &
"#
+ & ?FE
"") FE@
@FAA
$ " F &
#
EF
0 & )> & ) 1 &
"#
1 & 5
%&
& " &# E
" &" 5 >& "E@A
.)& ) > E@A
$
" & 5
& 5
&
5 %& & %&
6 & %& &
& & 5 )
"" % # $
# % $
%& " " + ) ) & " )
4 =& & 1>& 4
" & & & 4C 1
> 6 ) & "
& " 0 & > " ) "
" ;& "> "
&")
%& '!
+) 4 "" & &
" ) & " " &
) & & " &
& & %& ) &
& & %& ) & " +
& " ;> 4 )
&
& & & & 0 & >
" " "
0 4 1
*"> & " ) )
%& ) " ? " & & )
) %& ) & "&
)&7 ) )> ) %& &
& ) & )
4& &" & )
5 &) 0& ")>
> & ) 6
( "
Collaboration Co2 Role Co22
Collaboration Co3 Role Co32 Role Co33
Collaboration Co4 Role Co42 Role Co43
Object Ca1 Object Ca2 Object Ca3
Collaboration Co1 Role Co11
Role Co21
Role Co41
Role Co12 Role Co13
*" # 1 ' "
>& " 4 %&
( %& !) )
'!
%& &6 & &
" & ) & &6 "
1 1 ) " + "
& 4 "" 1 ) ) )"
1 ) ) & 5 &
@ A 1 ) 0 &
)" & ) & & &
) 5 1C 5 %& & & 1 ""
7
0 & > " ")
& & & 4 ) &" %& &" &
) & & &
& %& " 5"
& "" '" *" >
& " ") 1 1 )
1" ) & * 1> &
5)>G& 5" "
&
& "1 &"
) .) 5" 1 && &
&
" G & & 1>
& ) ; && 5 &
& 1
1) && )
& ) 0&*"> &
>
%& ) 1
1 %& 5 4 " &
& 0 & *" > & 1
4
>
0 4
> & 15
& 5 & > &
4
&
0 &
&
&"
)> &
"
>
>
@
& & )A %& &
&)& 0) &&
) & & 4 ) & & &> & 1 )
& & &
>
"& &
& %& > "& &
) 1> & 1)
.)7" & ) 11 > & ) "
)"&
"& (
*$
0">& 5 ) )
" 7 "&) " # %&
" ) & ) )
1 & " & 1 &
& 1 1
5 & % & &
"&&) "&>&") &&
5 " & & & )
" 1 ) 6 &&
) )> 5 &6 )
)> ) " 1 "
& "& ""
& 1" 5 " & & 1
; > & " 1 & 1 )7) )
6 & &) ) 1 &
5 & 1 ) ) ) 6"
)" 1 %& & &6 "
? 1 + 1 &
&6 )1 5 & +) &&)
" &&) 6 )
%& " 1 & &&) " 1
& 1 > &&> 1 &
" 1
" % )
= ""& 5" & ) ""
5 & > & > "" " & "
5 ? & ? * 1>
"" 5 H
H
? = ")&
&&& "" 5> ) & 1
%& " 6 5 " 1
@ 'A
* + + ,
%& & " 1 ) I9B 5
/
"" 5 H
H
%&
9
E
5 H
H
%& " & & & " +
%& "" @ ) IBA 5
"
E
J
%& & 6 ) &
6 %& ! 5
E Ë
&
E
E
%& "& && 6
)
% 5 >) )&"
6 1&& "&
%&&
)5@A
&&
@A
%&&& &) "
=& & > 5 ">
) IB 0" )5 # @ & & HA
H#E E
HJH
#E@A@A
%&> E %& 5 1 "
)>
E
* 1> # E E > &
E
2 & > " E = )
%& & & 1 "& &
& 1 >
E
0"5 & " #
E @ )A
@AE@A @ )A
$ E @0) A
E& & ) @K A
@9AE@A9@A @) 9A
%& > & > & " "
1
'
&& "+ =&&
5 0& 3%5@ !"#A>&&&
& 5 " ) =& &
> 5 " L & " >
$ > #
E Ë
%& M@A & & ) & " > &
3%
#
3% E @A M@A M@ !AM@"#AJ M@AE
M@ !AEM@"#A &@A 51
2 & ? L $ %& "" &
) 5 & %& > & $ 1
) ) "1
0)> & $ " & &
" 0 5 & " #
E
@0 A
@
A
E
@ A
$ @9A
E
% )& 7 )> 5
) N O 0)> & & & "
) * 1> " & P ) &
1 @A
0 3% & &
%&> & & P 3% %& )
) P N O 3%> && 6 & ) & " &
P 3% * )>
E%H
J%H
& % & & " & ) * 1>
% E % E 0 E E > & N O E
& 1 " )"& ) & &
E %& N O E
) N O & & & 0>
& & & &> & NO
N OE @0 A
N O EN O @ )A
$ N O@N OAE@N OAN O @ )A
N O&' E&' & &'E@H
A @K N OA
N O( E &( E@H
H
A@0) N OA
! N O@9AE@N OA9@N OA@) 9A
0) > &) 1
#
"# = ) = )
" & )
# = ) & && )
+ & 0&>) & &
) & &
# ) ) & IB 0 5
" & & )> ) 5 " && &
& 6 ) "
/
"" 5 H
/) H
H
>
) #H
H
%& )@
A ""5 )@H
A #
)@
AE)@A
" ) ) & " ) )@A
. / *-
"1 )1 " ) 5 H
$ > )@A >& 7)& "
5
) & " H " 1 @'A )
" 1 0 '> & @ A>
9 @ A>
@L A
"1 1 0 1 > &
@"A
@5 " A
1 " 1 @ 'A 0
' & > @)& A> )@A @"A
%& & & 5 = & ) &
@ )5A" &" &5
> & > ) " %&" 1 )
@$ A " "@ )5A&&
& & & %& 5 &
&&&1)@A ) )&
@ A
%& "1 & "1 "
) %& & 0
& %& " && + ? %& &
+ & & ? & %& 6 & &
1 & ? %& 5
" 1 #
## @* A
>
## @+ A
>
? ## @ +A
>
) ## *
%& ? & & + ) & 6
& 2 & $ ) & & ?>
& ) "
"" %* * +
! /
. 2 @,-.
A#
$
E$
, #
#
$
-#
# $
.
# %#
# .
# $
.
& E@,-.A
# .@
A M@
,@
AA# M@
,@
AA
,@
A$
. &Æ #/ / & E@,-.A#
E#
$ & ' .
#
# .
@
AE.@
AM@
,@
AA9M@
-@
AA
= 1 & 6 #
Æ@.0AE. & 0 & 6
% 5 & "" > ) & H
& ) " > ) # H 6
5" " "
5" . 5
.@
AE-
%& > + 5 5 5" 0 6
5"+& 5" 5 5" > &"
) & 6 & ) &
%& & " & "" &
. & ""/ & E@,-.A H#
)
E)@1AH
1
.
EÆ@.
1A# .
@AE-
2 && 5 5" ? & 5
"" && )) 5 5" %& 5
5 5" ) 5 &
0 10 2
0 )> "
& && & )& 7 %& )& 7 )
1 & & %& & )7"
&& & & & &
& & " 0)> &
&&& + & )& 7 )& + &
&"7 5& * )>2@'A>
&
5 ) >
' @'
'
' A> & & 5> '
E
@
H
Æ
A> &
3
5
3
&& &
" " ) IQB> >
#
@ A @&
) IQB + && & Q
+ (A
3 H
5 & & H
Producer Buffer Consumer
produce putitem
putitem getitem
getitem
consume
p2 p3 p5
p1 p4 p6
*
*"# 2 &
3 Æ
H
> Æ
@
H
A
@Æ
& A
3
5 >
%& 5" 2 &" & 5 &
'
E@
H
Æ
A& & H
>&
1 @
A &
@
A 0 )>
& & & > & & 7 +
" " " * 1> *" > + )
&
& + ) %& 5"
+"
" > 5 )
@
AE
@
A
@
AE
@
A9
Q & +
1 2 &> & %&
&& + ? %& +&
& ? & %& 6 & &
1 & ? %& 1 + ) & + &
2 & & Q ?
%& 5 & "" 2 & 2
- 45 *-+ +
0 & & & 1 " ' 6
> && 2 %& &
"">) %& & "&
) > ) 2& 1 2&&
&) & & "" %& > & &
%& 1 " & " 1 & &
" ) 2 ;> & 2 3
) "1 %&> 2 3 &
* "> & & '> 2 2 &
"" ) 1 2> 2 '
) & %& ) &&
) )7 &
.) " 2 2> & & & " "
) )& 7 2 %& "2 6 ' )
) 5 )
%& ) ) #
) +
=& & > & ) )& 7 ;> &
1 6)
31 ) )&
& + ( '
0 1 @ A & ) %&
1& ) 1@
A 0 & > 1 ) %&
1 ) > &
& &> ) && & 7 ) "&
&
0 ) & + 1 %& " 45
1 & & & 0 >
7&) %&1&&"
6 %&"& ) & 1
) ;> ) & 1 &
1 * & > ) ) )
1 ) %& ) ) " )
) %& 7" " 6
) "
/ & ) " 1 " %&
) " ) 1 2 &
" > & 1 = )
" & & "
& & & & %& &)
4 %& &
& & & ) + 1
) " & " "
& & 7 "
& 1 1 &
+> 0 & > 1 ;>&
* " "
+ "
1 ")
* & > & ) 1 &1
& & & + 0
) )>
) > & 0 )
& & >& >
& & & )
%& > ) 4 ) %& & )
) 0& )>& ? & )) %&
& & "1 )
/ & & & &> )
& %&> & @A &
@ "A %&
& 1 0 & &
0 >&1 %&
&& & 1 6)
& " %& " 5 # 0 # & #
>
E
#0@
AE0@
A 0& > 0
%& 0 " """ ?
$$ 0 > & & & 1 & &
1 & &
&" '$ '
" % , $!
. & & 1 >
1 6) ) . 1&6
4 & ")>& 4 )
& ) & ") &7 ) & # > &
) & 0 " & ) > ) & 5
%& ) &6 ) 0 &
>& &&) 1
& > ) > && ) &
& / & & )
. * )
# #
#
#
$
& D> #
)> & )
& ) ) > #
%&
" 2 1 & 1
0 4)> 5 "
1" 1 @ 4 )A
" &
%& 5 D %&)
) >
)
&" & 5 & > & 5
& & &
& & &> "
& 4 > &
&
& D
* & > & @ "A " 1
) "& & ") >
& ) %& > & "
" 5 & &
G 1
>&
& 5 " )& ) & 4
. # +
# $$
$ &
,
# #
) -
.$
# #
) -
.$
%& 2 & 1 )
& & 1
&&
%
%& "& 5 ) ) &
) 0 > >&)
/
)) &&
Æ& && ) 5
& & & )> &
& 6 1 %&
) "7 ) 4
* & "> & ) 5 5
& "
-Æ4. ,
$
$
Æ# $
4#
$
%& Æ "1 &
0 > $>& 1 " 0 "1
& 6
"&4 > &
>4@AE &> ) &
1" & ) %& > # 4@A
0 > ) & & ) 1
) & )> &) ) %&
" & && ) )
) )&" )> & )
) ) 1 &
5 %& "/
) > & )
" > & ) ) 6 &
. 6 + E @Æ4A $
E @
Æ
4
A
E @
Æ
4
A /
$
0$ 1
#
E#
E @A@ #Æ@AEA#
Æ
E@A @@A4A@
A#
4
E@A @ A@#@4@AA@#Æ@AEAA$
2$ 1 /
#
E#
E @A@#Æ@AEA#
Æ
E@A @@A4A@
A#
4
E4$
%& " 7" ) 5 ;> & 5
& ) "
/
& & ) 5 0 & )> &
$-
* & 5 > &
5 1 & ) & & 0 & > &
5 && ) & & &
. *
E@
Æ
4
A
E
@
Æ
4
A$ &
,
0$
#
2$
#
3$
#Æ
@A
Æ
@A#
4$
# 4
@A4
@A$
%&& 5& & ) &&
& ) %& & &
& "&& ) )> & &
& ) & )
& ) &
0 & 5 & & @
> A
%& 1
! " & -
# . $
5" 5 >
@
> A> 5 & ) %&)
" & & > 5 & "
" " %& & &
" 0 5 $ ) = " & "
@5 &A 1)& @5 $$A
" & " 5 & > & & "&)
? #
#
#
2 & & 5 " ") 5 5
0 & 5 > & " " 1 6
& 1
5 @"A
# EÆ
@A
Æ
@A"E0@AE4
@A
* & >
> E @Æ4A G 1
" * E @"A
%& *
5 ) ) " & * & 0 & " >
& %& 5 & &
) & )> &
& 6 * )>& "5
& @"A 0> 5 & &
) 0 > ) &
& 5 "
. +
#5-Æ4A$ &
*E@"A *E
E@
Æ
4
A$
0$ @A@A@0@Æ@AAE"A
E#
E#
Æ
@!AEÆ@!A !@@EA!@! EAA#
Æ
@AEÆ@A
#
E#4
@AE4@A#
4
@AE4@A$
2$ @A!@A
E#
E#
@EA!@EA#Æ
@AEÆ@A#
Æ
@AE#
E#4
@AE4@A#
4
@AE4@A# #
4
@AE# $
=&"5 "@"A &)> &"
) 1" %& >
7 &
#
-
# # # .$
Container Node
Alloc collaboration
Bintree collaboration
m11 m12
m21 m22
*"$# ) &
%& )7 &
)&6 %& & "
) 5 " %& " )
5 @ "A & " %& "
%& 15 &
" ; > & " ? " &
"")" ""& %&&
"" & " %&) 99 :
%& ) " & & 5 )
) ) %& ) >
) " # #> & " & " &
5 >)5 >"" "
5 " ">
)
&. *$
%& 1D) &
1) ) %& &
) & " & + ) .)
)> & #
0 > & >& ) # %&
)& *"$ 2 && 6&1
"> " &"
" & 5 (> & ) E@Æ4A 7 #
"
,
!
-
Container Node
Alloc collaboration
Bintree collaboration
m’11 m’12
m21 m22
*" $# %& ) ?
)# 1
>
>
E&*>
E"">
ÆE@&*""
A@""
A@&*
A@
A>
4E@""A
%& & & & *"$ 0
& > 1
>
&
>
) ' & &
%& )
E@
Æ
4
A&#
E&*>
E"">
Æ
E@&*""
A@""
A@&*
A@
A>
4
E@""A
*& > & 1 & & = &#
EF
EF
.) 5 ,>
& 5 ? 1 )
E
@&*""0@F
AF
A@""0@F
AF
A & "F
"" 0 ) )
" + @&*""0@F
AF
A > &"
> 4 0>Æ #
ÆE@&*""
A@""
A@&*
A@
A
Container Node
Alloc collaboration
Bintree collaboration
Timestamp collaboration
m11 m12
m21 m22
m31 m32
*"$$# %& 1 & % )
" " F
"> "
& 1 5 #
%&)
%& 1
0@
AE&* -, 0@
AE -,
0 > ) 6 & 1 &
;> & ) E""
" @&*0@
A
A ) 5 &
0" & 1
&
)
E@
Æ
4
A &#
E&*>
E"">
Æ
E@&*""
A@""
A@&*
A@
A
@&*
A@
A>
4
E@""A@""A
, ( % $
%& & & ) "> ) &
) & )
& ) 0 "> & & & "
& %&
& C & " & 1 %&
& & & & " ) " & &C &
"<" " 0 & ")>&&
) )"%@4 "%&6A ) 3/@3
5 " /""A %& & " & @ &
"A" & &" 4 &
=" 1
@1A + % + & )
> & &> &>
&1 & )11"@A&
) & ) & %&1 1
)" >">< && & %&1
) )"&"" %&"""
? %& 5 6 )
@ 1A> && & &7 1
@ 1A %& 6
*)> & )>
" & ) & & "
%& " & 0 > & &
> & 1 & ) ""
& & & & 5
"" @/A & 6 & ) 5 &
) & &
5 > & & ) &&
& & %& "& &) ) 1 )> &) ) ?
& 0 6 && 6 >
& &C
/+& &+ 7"> 5 +&
) %& ) & 1
@ A * > & ) " &
)5> >&&)&
1 %& 5 "
. 6 & 5HF
2 6# ,
#
H #
F #
#
2 @HA - @HA
H.#
#
$
. ) 5
6
$ 6
5
H
F
2
6$
'
55
!
65
!
66$
&
!
&
&&
1 &> !
&& &
) 0 & &&
& )
. # 1 53
3 6 $ 7 3
# /#
/$ 8 3
#
#
/
$
$
9
$
reentry exit
out in
reentry
(in) (out)
exit
B:
E:
I = <exit, reentry>
*"# ) . & 1
G ) > ,> 1 3>
) ) " & & 3 & & "& & ,
*" * )> & & & @ A &
& 3 % && &>
> & & > & &
" & " +" )
& & & & )
1
. & E5
6
3 E5 3
3
6 , E55
!
65
!
66
5
6 $ 7
E5
H
F
2
6
E5
H
F
2
6
3
E5
H
F
2
6 ,
E
3
E
2
2
!
# / 2
3
$
5 ( " 6 ) ) "
) %& &
& 5 )
= &
& 0
&> &"" ) "&
3
& & %& " &
,
E5
!
6 ) "" & & 1 3
&
5
6 0 "> & + "" "& "& &
)""& "< " "
" < &
2 &&&"" & &
1 & > & & 1
6 ) & & 5& 0 > &
) & & %&
?) & &>&&" ) &
&
&)& )& 7 & "&&))1
%& >6&)>& "&&))
"> 66 6 &&
) 6 " %&
6 6 & 6 & & &
& & & &" & & 6
0 )> & ) * & > )
. "
1 > ) "& 1 6
)> & ) " & 1 %& &
) 6& &1 & 1 &
& & %& " "& &&
6 %& & 1
,& *
#" $
%& & & ) " ) %&
& ) 1 ) & ) 6
& 1 & ) )
& =& " > 5 &
& 1 %&) )
) & ) 1 &
1 & 1 )
%& )& 7 %& &" & &"& )
) & ) & ) &" 0 &
> ""& &
1 & )> & ) 5
) & )& 7 %& ) )
) & & & & )
6
/ +" & *" > ? "
& "& & %&
X X
X X
X X
Sequential composition of layers Parallel composition of actors (base + extensions)
*" # % "# 6 ) @A
1 @"&A
&> " > . &
> & & & >
) & ) "
& 6 & )
%&) &"" )
&" & & )> & )
& ) ) ? " +
)> ) 0>& &) 7
) " = + & &
%& & ) 6 )
%& 1 >6 )&)& 7
0+"& & >&&&
>& " &
& " & & ) 1 &
&" > "> ) & > & "
& &" & IB
#" ! !*- !
5 C > & &
" & & " "
& &&& & ) "1 >& "
) & & 0 & > " & )
& & ""C& 1
3+ & " & & "
> " & +
) %& ) 1 )& 7
" " %& > 6 & &
& & ) )& 7 )> )&
Book state machine Patron state machine
Base system
Extension
Original collaboration
hold
clear
order in
res
b−lost/action: fines := fines + price(book) lost
L ost−book collaboration
out
owes
block
b−order
b−lost
*"$# ) ) + %&&
1 1 &" +
0)> & > $> & "" & )
& " ) "1 '"
1 %& & " " 1 1)
& " 0 > & 6 ""
1 ) +
5 > ) ) )& 7
% & "& &
>&1 & &&&1
) *" $ ) " )
) . + & # # # -.# J
&## %-.@ " & 5 C
A / & &> &
&+" + " + & 1 & )
&" + %& 1 & &
+ & @ " + ) "A &
& & @ + & 5 " +A %& &
1 "&/ . + && "
) & "& & &" ) ) )
> ) +& )5 7"&
C ) & ) & &>
& & )
& > & " "
& ) %& " &) 6 1
) "> & &C
; > " 1 & &
I"B
%& 5 1
? & & 1 ;>
&& ) &1 )" &
& & & "> & )
%& & & )7 &
" " ) 0 > I"B
& 0 & ) 1> "
& + > & " %&)
" " %& > > 6 & &
" @2A @2A 0>&
& " & )& 7 &> &
"2 & & 2 &&&2
& "
%& *" 0 &
5"> & " &) ) & @ 2A %&
& & 2 0 ) & & "&)
) 2 & "& 2 ) 6 '
" ) %& 5 6 & 2
& > $
,, %$! 0
0& >5) &)& &&)
" & >& &&
" & 1 @ ) )& 7A
'" & 5 2 & > $$> & 5
& "" 2 %& & & &
) " & & " &
) & $> ) & &
& > " )>
3+ "> & ) & 7 & &
& =&> & > 1 ) "
%& *& > &) 5
) ) & )
7") & ) &> 7 &
7 & &&"")>)
. /
01 02 !
3 456
" 7
3
6
Book state machine Patron state machine
Base system
Original collaboration
hold
clear
order in
res
out
owes
block
Extension
lost Lost−book collaboration
order out clear owes
action: fines := fines + price(book)
duplicate duplicate duplicate duplicate
b−order b−lost
b−lost
*"# ) ) + %&&
1 1 &" + 2 &)& 7
" )
)& 0&) >&&
) "> & ) " 4
$$ " ; > ) " > & +
) & 5" " &
& *6)> ) &
& &R:; = " I"B
%& " + &
" & ) && & "
" ) @" *" A %& ) & &
5 2 &
## * * +
$ /
0) ">& C)& 5 @'A>
&
5 )
5 )
@
A> & & >
E
@
H
F
A
" > #
2 &
& )#
#
@
A@
AE@
A
= ) " 5"
& & > & )
6 1 & %& 5 & " &&&
) ) & " & & "5
2> & ? *)> & )
&& @ 2A "
& ) 0 " ?
& "&&) & &
)
& ) & 1 )
& 4 & &&> & 5 &&
5 )
%& ) & & #
. 6 7
4 @
H
F
A ,
<
$
5"
:(;# $$
#
-
:(;# # %
/ .
$
H
# H
$
F
H
# $$ F
@
H
A
-F
.$
/$ & 5 5 $ E@ A
@@ AA = & ? & &
) 2 & 6 & 5 5 %& ?
& 5"
&& & & )
% H
F
6 & &
H> &F> 2 )
& 5
& =& > & )& 7 . >
)& 7 1 ) && & & >
$$>& & &
& 7 + 0 > 5 " 5"
&
" 8 9#
9
" &
> & )
G & 5 > & & "& 5
>)@'A> & ' 0 ">
1> ) " & @%A
@ A ) ;> 5 & &
@% A 0 > 5 5 & "
) %& 7" ) ) " &
& > & + ) "
& ") & 5 "5
) " &
) & )> & > & 5
)6 & 7 5 &) ) &
& %& 7 5 & & @% '
A & '
0 6 > ) & > " "
> & @ E% E A> "" )
> & 6 &
C
. " " 5 & ) &
> 5 5 & & &
. ))& 4, -HF.
5-.$ & $ &
$$
. " +
0= # &
# $$
# ,
#
#
@A'
@A# , # 5I
#
H
H
#
F
F
$
/+ & $> & 2 5 &
) &
) 8
0 > 5 "
1" & "
& %& > " " &
)>& 5
% "&& 5 > &) " + 6
)
) >
) %&
) & & & & &>
&" @ > A & 5 &
* & >&))& """
&
G
$> &
& & & & )#
#$ $ $
#$ $
. +
E @
H
F
A
E @
H
F
A # $$
$$ & ,
0$
E
E@
H
F
A
E
#
#
@A E
@A 9
@A# , @
@A E
A!@
@AEA#
@AE#
(
#
@AE
@A#
(
#
@AE
@A#
H
EH
H
#
F
EF
F
$
2$
#
E
E@
H
F
A
E
#
#
@A E
@A
@A# , @
@A E A#
@AE#
(
#
@AE
@A#
H
EH
#
F
EF
$
0 & ? 5 > & + & &
IQB> & 0 & > &
IQB>
5" &
>& 5 ) /+
&> 5 & #
>
>
&"&& &
&> Æ# $>
) " 4 #
* " 5 > ) "
& & ; > & > &
" & " )
. & ) & "
-Æ4. ,
$
$
Æ# $ $
4#
$
%& ) ? ) &
$ 1 0 & )> 5
0 # $ && & & %& 0
& & "
%& ) 5 & )
##" ! % ! &*
/
. & & > &
& ) ) & %&
&
5 #
. +
#
E@
Æ
4
A
E@
Æ
4
A$
#
,
0$
#
3$
#Æ
@A
Æ
@A#
4$
# 4
@A4
@A$
7 >& & 5&
&@A& ) && &
%& & && "&& ) )>&
& & ) &
) & ) &
0 & 5 & & @
> A
%& 1
! & -
# . $
2 " & 5 ? >) >
& %& &
" & " 5 & > & & "&)
? #
#
#
2 & & 5 " ") 5 5
0 & 5 > & " " 1 $ 6
& 1
. +
$ &
# $$
5 @" A
# EÆ
@A
Æ
@A" E0@ AE4
@A$
* & >
> E @Æ4A G
* E @" A $
%& * 5 )
) " & * & * )> & " 5
& @" A 0> 5 &
& ) 0 > ) &
& 5 "
=&"5 " )> ) %&
5 & & )
& )> & &
6
. # +
# 5-Æ4A$ &
*E@" A * E
E@
Æ
4
A$
E#
E#
Æ
@!AEÆ@!A !@@EA!@! EAA#
Æ
@AEÆ@A
#
E#4
@AE4@A#
4
@AE4@A$
2$ @A!@A
E#
E#
@EA!@EA#Æ
@A EÆ@A#
Æ
@AE #
E#4
@AE4@A#
4
@AE4@A# #
4
@AE# $
) 1" ) & ) & @" A
& ) * & > &>
%& &
0 && I B&& &
& " "" %& " 0 # $ )
7 & &
#
-
.$
%& ) ) & &
) " "
,. *$
%& 7 ))&
%& 1 & )) *)> & )
) ) )> ) "<" + <
) 0 & )> ) # + 0)>
&) & " + />& &)
%& & & & *"
%& ) & &> )
E@
H
F
A
E
@
H
F
A + )
) & "
+
Book state machine Patron state machine
Base system
Original collaboration
hold
clear
order in
res
out
owes
block b−arr
b−loan b−ret
b−res b−unres
b−hold
b−rel b−loan
b−lost p−pay
p−unpaid
*"# %& & ) )
E* >
E@*A@-A@ -A@-A>
H
E " >
F
E@* A@ " A@ A@ A@ A
0
> &#
E""7>
E@"A@"7-A@-A>
H
E " ! *>
F
E@" "A@ *"7A@"7 !"A
%& * >& 1# "
@ +A > > >
) & &&> " ! * @ +A > )
& 5
%& ) 5 # EÆ4 &&#
E7>
E>
ÆE@7
A@
A>
4E
0&)& +& " >&& & )
1 # E@HFA &
E"*>
HE "* ">
FE@ "*"*A@"* "A
% "* " & & " " + %& " E
0@ A " & & 7 -, %&
6 &1 ) & >)E "& 5
"@7" A
E@7" AE
@
Æ
4
A&#
EE7>
EE>
Æ
E@7
A@
A>
4
E4 E
;>
E
E@
H
F
A .)5 > & &#
E* "*>
E@*A@-A@ -A@-A@"*-A>
H
E " "* ">
F
E@* A@ " A@ A@ A
@ A@ "*"*A@"* "A
)>
&>
2 > ) 1 &) &"" 5 &<&
+ 0 > & + 5> ) )
& ) & + %& 1 ) & *"!
%& )
E@
Æ
4
A ) "
& 5
" @73"
A@"3"
A
&
>
& 1 & 7 " 3
) = & &#
"
E0@
AE3 7 -,>
"
E0@
AE3 " -,>
E
E
1 &> )1 #
E@
H
F
A
Book state machine Patron state machine
Base system
Original collaboration
hold
clear
order in
res
out
owes
block
Extension
lost Lost−book collaboration
order out clear owes
b−lost
action: fines := fines + price(book)
duplicate duplicate duplicate duplicate
b−arr
b−loan b−ret
b−res b−unres
b−hold
b−rel b−loan
b−lost
b−order
b−lost/
p−pay
p−unpaid
*"!# %& & 1 ) )
E*" >
E@*-A@"-A@ -A>
H
E " *>
F
E@ ""A@" **A
E@
H
F
A
E">
E@"-A@-A>
H
E ">
F
E@" "A
2 & *> 7 & >& >
" % " & 2
* & & + " )" +
" = & & &
@ 1 A & & " " 0
& & & >&) ? &
5 0 & )> & ) & &
) +> & & 1 > &<&5 )
& & + 0 " & "&>
& " &
" 1
E @ Æ 4 A )>
E
@73"
A@"3"
A
> & 5
>
E7>
E3>
Æ
E@7
A@
A@73
A@3
A>
4
E@3A
" #
. ! %$ !
0 & &> & & & 5
)
%& 1 5
") &" " &1) &
"& &&1C %&")
5 %& & 1 5
D & ""& 1 0 1
& & &> & " "
& & &C & ) %&
& +"& 7 ) " "&
) 5 "
& "" " 1 >&"&"
%& " "
*)> "" "" & 1
0 > & ) " ) ) "" "" %&
& " " " %& &
? "" "" 7 & 1
99 "& & &&> D ""
& %& &"&
) "" 2 ""&
& & ;)<: : && )
:
%&5 ) &)&
5 &$>) >& 5 &
&
& & &># & "
) & 5 > )> &
> "" # # & ) > )#
'7)# ) 5 7 ) " 0
& 6 & 5 & ) & )
5
)# %& ) & 1
5 "
0)# %& & " ? "
5 > "@
FA E "@A
"
@FA %& )
& & " 5 $> "@
FA E
"@A
)@"
@FAA %& & ) 5
/ )# & )> & ") 5 %&
? 5 "" )
* & > ) ) & & "
0 > @1 A + & ?
" & &" " & & 1" ) > &
+
." %$ !
. 5 ">&
" 5 " & "
)" ) " "" "">
1 & " "" /> & & ""
5 "& ""
""
5 > &
& 5 0 ) & > &
& ) " & ) &
&
& Æ) " & ) & & + "
&
=& & > & " &
5 ) %& > & " ) +
& ) ) & 5
545 & :; 2
E *
* E
9 E
/ 9
E 99
E 99 ##
"*
*
"* E *
* E *@+
A*!
+ E #
*! E
4
E
# E
E ! " #
E $ %&
* E $
* E
E
*"# "" )1# )
& ) 6
&
0 ) ' & !)
& " > )
" %& & ) )
& )1 1 1: >& ") 6:D
& > & ""&) 1>"
> "" " 1 + : 6 +
& 7 %& 1
$
0 & *" > )1 & "" ) 2 &
& 1 & 1 0
> & )
+ 6 %& 6
) & 1> + 0
&& & & ) )
"" ) & &&>
> +
"&"" 6 )6
& 1> 1> 1
5 > 1> 1
& > ) & 1
1 & 1 =& & 1>&
1 & 1 5 ) " 1 " 5
& %& '' & & & 1 1 &
) 1 "" 1 &
1 1 1
5 & ) )>& "
) > "&) ) %& ) &
0 ' ) '!
" & $> 7
@Æ4A %& +" )
1 "
/ & 4 #
0 5 & " )
%& + ) & ) ) 0
) )> &6> > 7
+ & ) ; > & &6 ) 5
6" 6> & ">
& &6 +
0 & ) "& &&
& > " &
& & ) )"& )
) %& " & ) )
"&
! 6 1 # / $
%& & 5 %& 7 "
) & &&& ) "
! * # %
# $
%& 0 "& ) & "& ))
%& ) 5 # " # # 0 5
5 "#
. " + # E@Æ4A#
, "@A E
@Æ%4%A¡"@%A
/ $
< ( . / ==
" "
"
" ." /