• No results found

Using formal methods to teach software engineering: a tool-based approach

N/A
N/A
Protected

Academic year: 2020

Share "Using formal methods to teach software engineering: a tool-based approach"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

!

"

#

$

%!&'&

()

" *+,

*

&#

-! ,

. ,

# ,

''/ 0 1

&" +

.

& ,

2

3 ,

"% *4

# 5

&'&6

$ 7"

8 *,

& 9 +:

& ;<0

=> ?@ A;5

&'&6 <0*

'B

)C

& ,D

E FG H

@ F H

> H

?I <

1

J D

E FG H

@ F H

> H

@?

,

= +

' D KL M

NO L

NP M

O M<Q

NR L

STS U VL

RWXO MY

SW M

(2)

! "

! #

$

%

&

%

! "

' (

&

%

! "

)

&

%

*

%

(3)

*

(

#

(

!

#

(

# #

!

#

'

( !

&

(

#

#

#

#

%

#

(

(

!

#

#

(

(

!

#

(

&

#

(

#

$ #

'

#

!

#

!

(

!"

#

#

(

!

"

# $%

&'(

)%

& $*

'('(+,

+,+,

( .

$

',/' )

' 0%

+1 %

+

.

'+,

'2 %

+1

, % %3

(

,'/ )

*

.

4 (, *%

+1+,

52

' %

%

+1' .

2

, %

1 .

+,''

'/ 2

& %

& %

'+

+,,

%

1+ %

+6 $

6

1

# $

.

2 $

%

%

'+/' .

.

',

+,+' %

'+' )%

+,

'+ )%

$

'/ )

2

& %

& %

'+ +,

& $%

&(

42

+ %

+1

*

.

(

/(

',

%

1+ + )

*

.

!

&

"

!

&

#

7

(

#

$ 8

!

%

! #

&

#

! #

%

#

(4)

8

#

"

!

8

! "

8

8

!

8

8

!

'

%

8

8

!

%

"

(

8

!

%

8

! ")

*"

#

#)") #) #)*#)

8 8

( 8

8

8

!

!

)

8

(

8

!

8

8

! $

8

! * #*

8

*

!

"

#

(

! "

# $

%& '

# (&

)*

!

"

*

& $'$

$

+, *

& $'$

$

+#

!

"

! "

!

"

! "

8

!

%

8

! -

(5)

" %

!

&

#

$

! "

$ &

(

"

&

7

$ ! "

%

%

!

"

$

7

%

#

"

#

!

! "

#

7

"

#

# &

%

#

)8

$ #

*

#

* !

#

!

!

#

) *

!

7

&

7

% %

&

!

&

!

#

%

&

8 #

&

!

)

&

%

!

#* &

#

!

"

&

)!

%

%

'

!

# ) %

#

& $.

!

%

1+(

#

#

#

#

#

!

"

(

"

(6)

#

%

+ %

%

%

%

'+

! "

#

'

'

'

!

' !

$

)

& $.

&

&(

(

#

!

7

%

!

)

!

"

%

* #

%

8

!

* %

'

# #

7

"

* *

* * #

%

8

* *

* * #

#

!

* *

#* *

!

%

&

!

#* *

!

* *

'

'

% * *

#

'

%

!

#

"

!

#

! !

#

) * *

"

'

! !

"

( #

%

8

(7)

"

#

%

8

!

#

%

!

%

'

!

!

%

#

%

'

!

"

#

%

#

!

#

&

!

!

"

$

#

#

!

%

! " #

#

!

(

#

&

! "

# %

&

! "

&

%

)#

!

"

(

)

!

( '

!,,

!

#

%

!

$ ! "

#

7

(

!

!

!

! "

%

! "

!

%

! "

* #

*

* !

* *

!

# &

%

%

*

!

(8)

)

!

&

#

%

!

$

!

"

&

- ! "

(

#

!

&

#

!

#

%

&

!

!

#

&

#

"

-

!

"

"

8

!

8

8

(

8

'

8

#

'

8

8

'

*

"

&

7 "

!

(9)

" %

&

"

%

)

!"

%

)

*"

(

*

!

)"

!

)

%

!

%

8

%

!

!"

%

%

!

!

"

#

$

%&

' (

)

(* +*((+

+*((+ *( %,

(* - && (

) *%&

'.

/

0 ( (

)

/

1

#

# 1

2+, $

3

.

#

4

3

#

#

5

/ 4

/ (

0 *

)

"

/

/

# 1 6

7

3

1

6/ 7

8,&&(

)

89:;;< =><

?

1

1/

1

/

8,((&

3

#

/

@

# /

/

$8,((&

AAB

.

? < C=:2< D

E F

? < C=:2< D

G H

!

? < C=:2< D

G !

0 ( (

) ?

0 0 &

' D

E 2+,

(

0 *

)

?F2:89 D

G

2+,(

0 *

)

8,&&(

)

?I 8,&&(

)

8,((&

?8,((&

G

I < C=:2<

A

J

A !

KL ?

0 0 &

'

M

L N

0 ( (

)O L A

0 ( (

) $L

.P0 &

'

K

(Q!

?F2:89

M ( R

A

!

JS (Q!TU

(

0 *

)

O

(

0 *

)

$(

.P0 &

'

V (

0 *

)

$!

.P0 &

' AW

J

(

0 *

)

$(

.P0 &

'

U

KLQ

'

?8,&&(

)

MS LQ

'

TU8,&&(

)

J

L

P 8,&&(

) AR

'P 8,&&(

)

JS L

P 8,&&(

) QL

P 8,&&(

)

TU

K+?8,((&

O

8,((&

$ +

.

U

3 1

4

1

1

1

/

1

?/

/

3

X

/ ,*H $/

1 /

Y1

1

1

,*H

.

/

1

Z

C+

[

/

/

8*((

[

X

(10)

,*HC

)

8*!!(

? 8*((

(

? F

?

< C=:2<

C+

[ ?IF

8*((

[

?8*((

( N

A

$(

.

8*((+ *(

%,

RN

$

.

$

8*!!(Q

,*H

.

AC<

C

)

N

$

.

+,(

?I8,((&

?IF

O

$K+?8,((&

M

+N+,(

J

N8,((&

$ +

..J

A

S

+?8,((&

M

+N+,(

O

$

M

8,((&

$ +

.M. T

O

C+

[ A$

AW $

.

.S

( T

8*((

[ AC

H &,*H$

Q<L+L

$8*!!(

..

&&*!*

'

4 1 1

1

$4

.

/

?

3

1/

3

# 1

67 1

/

&&*!*

'

4

3

/

# 1

&&*!*

'

8*!!(

? 8*((

(

? F

?

< C=:2<

C+

[ ?F

8*((

[

?8*((

( N

A

$(

.

8*((+ *(

%,

RN

$

.

$

8*!!(Q

&&

.

AC<

C

)

N

$

.

K%

?

2+,(

0 *

)

M % N

(

0 *

)

O

RN%

P0 &

'

<L +

(!$8*!!(

.

N

C+

[ A

$<L +

(!$8*!!(

..

8*((

[ AC

H &&&$

Q<L +L$8*!!(

..

#

4

3

1 ? *2*

X

8,

*

*2*

?8*&*

2+, ?*

< *

#

? /

41/

"

(11)

/

41/

/

41/

$

/

8,+2*

Y1 1

.

< *

0

(

0 *

?8,

*

2

'

8*&* ?8*&*

2+,

?F2:89 D

G

8,

*

*L 2

)

? C=>

*? F<

?2*

O

8,+2*

$

0 *

( &Q

.

AC<

J

0

(

0 *

A (

0 *

$

0 *

( &Q

.

*A

H&$

0

(

0 *

Q2

'

8*&* Q*L 2

).

3

1 4 ? 4

#

$< *

.

"

3

8& (

?F

< *

3 1

4

1

?

#

#

2

' 2*

8& (

2*

?2 <

C+

[ ?F

8*((

[

?8*((

2

' 8*&* A

0

(

0 *

P *2*

8,+2*

$

0

(

0 *

Q2*

.

AC<

0

(

0 *

A %

0 *

$

0

(

0 *

Q2*

.

C+

[ A

8*((

[ A2*

(2

) $2*

.

"

" *

0

!

(

%

!

%

(

% %

#

!

#

#

#

!

# "

5 *" $

+1

5

* $

+1

5 $

+1

*

$

+1

5 $

+1

5 $

+1

,

,

"

5 *" $

+1

5

*

5

* $

+1

5 $

+1

*

$

+1

(12)

5 $

+1

5 $

+1

,

,

!

'

%

'

)

7 !

' (

%

!

(

#

%

!

# #

#

!

#

!

"

$ "

(

!

$

"

% #

!"

#

&

"

&

%

%

%

! !

!

"

8

(

!

>>

>>

>>

>>

>>

>>

Broadcast

SERVER

\/

\/

\/

\/

\/

\/

ShoutRegistered

ShoutNotRegistered

Send

CommandShout

CommandTell

TellSomebody

TellOpponent

CommandInChannel

CommandInChannelOk

Send

m

CommandOutChannelOk

ChannelUnknown

InChannelNotValid

OutChannelNotValid

Send

CommandOutChannel

CommandChannels

ComandoChannelsOk

Send

Ξ

TellUnknownId

Send

ShoutNotAllowed

"

(13)

# #

%

7

#

(

+,

! "

!

!

)

(

(

! "

!#

& %

#

' .3

',

*

!!

& %

+,

! "

+,

! !"

(

(

!

%

(

!

(

! "

!

#7

7

)

#

!

&

! #

!" &

* !

"

'/ )

& $%

&(

( %

+1

! "

&

*

!

) %

! !

"

"

! " &

!

!

! "

!

!

%

7

!

* *

%

%

*

!

$

++

)

%

! "

$

+

# )

!& *

"

%

#

#

#

! "

$

$

& *

*

! "

+ %&# *

%

(14)

OneToOneMap

Set

BiSet

Convert

FiniteMap

Pair

ComUsers

MATCH

InfoState

Connection

DbRegistered

SERVER

HandleChallenge

COMMUNICATIONI

is assumed

is included

Library Trait

HistoryDB

"

* *"

$

!

"# "#

$

%

&

&

"#'

()*

&

"#' "#

(!

+ ,

' "#

-.

,

"#

,

"#.

%

&

& ./0

1 /0 2

%

&

& ..

!3

,

, .

11

4.5.

.

6

/.0

7 %

&

& .

,

%

&

& .

, 2

()*

& ./0

1 /0 2

()*

& ..

!3

,

, .

11

.

!3

()*

& .

,

, .

6/.02

!!+

(!

+ ,

, 1

/0 2

89

-.

,

"#

%

&

& .

()*

& .

, 1

/0 2

$: %

&

&

()*

&

(!

(15)

!

*

* !"

*

&

'

! "

!!

#

#

#

!

"

"

(

(

!

(

$

"# "#

*

& .

,

,

"#

,

,

"#.

$ 9 $

)(

!

' "#

.

!3

"# "#

' "#

!!+

"# "#'

3

3

"# "#'

))

%

&

&

"#'

()*

&

"#' "#

"#

)(

! .

!3

"#

9 $

!!+

3

3

!!+ .

!3

,

, .

, 11

4

, 1

, .

!!+

,

,

)

3

3

)(

!

,

3

3 .

!3

,

, .

, 11

, 1

,3

3

,

,

%

&

& .

)(

! 1

(!

+

%

&

& ..

!3

,

, .

11

4.5.

.

) .

7 %

&

& .

,

%

&

& .

,

()*

& .

)(

! 1

)(

!

()*

& ..

!3

,

, .

11

.

!3

()*

& .

,

, .

) .

9 $: %

&

& .

()*

& .

, 1

(!

+

$$,

.

)

4

)&!&)) 4

$$,

.

)

3 .

,

) .

)

,)

, .

(16)

3

!

(

"

! "

#

!

"

#

!

%

* *

"

),

)

),

)9 $

&*&

,

),

)

),

)

) ),

) 4

)& /0

$

),

3

),

) '

))

! ),

)

),

) '

),

)

) ),

)

),

) '

),

)

-..

) ),

)

),

3 ..

) 11

..

5

) ..

5

) 2

! ),

) ..

) 11

4

),

3 ..

)

)

&

..

)

2

) ),

) ..

) ),

) 11

) ),

) 2

) ),

) ..

&

) 11

4.1.1

.1.1

)

&

) ),

) ..

)

2

89

-..

) ),

)

),

3 ..

! ),

) ..

)

2

),

3 ..

)

) ),

) ..

! ),

) ..

) 1

(17)

"

9 $:

),

3 ..

)

) ),

) ..

! ),

) ..

) 1

) +

.

)

.

)

,)

, .

&

"

9 $:

),

3 ..

)

) ),

) ..

! ),

) ..

) 1

)

$$ )

.

)

.

)

.

)

8 +,

..

1

, .

.

1

,

,

.

,

.

,

1

, , .

,

.

,

1

, ,

,

.

,

.

,

1

,, .

,

.

,

1

, ,

,

.

, .

,

1

, , .

, .

,

1

, ,

,

.

, .

,

1

,, .

, .

,

1

, ,

.

)

3 .

,

) .

)

8 +,

..

5

),

..

5

), .

.5

),

.

.5

),

,

,

,

,

3 .

,

) .

)

,)

, .

&

*

* *

#

%

! "

* #

# *#

* !

* *

%

(18)

"

%

* *!

!

*

"

89 $

&*& 2

89 $ 2

&*&

9

&*&

9 : /

&*&

2

:

-,

"#

!!+

4

,

,

3)(

4

.

&

2

9

&*&

/

,)

& .

,

)&

8$

42

4

1

&*&

2

0

&*&

/

3

& .

,

)&

8$

42

&

3

4

2

0

) .

$(

$ /

(

) .

3&

(

5

3

&

&

4

.

&

5

!!+

4

.

&

&

(

4

.

&

3&

(

2

.

.1

&

(

4

.

&

3&

(

4%

&

&

4

,

. 1 /0

& .

1

&,

*&

(

%

&

&

4

,

.

&

,

(

4

5

!!+

4

.

& .

& .

1

&,

*&

(

3

3&

(

3

&

&

4

.

&

&

,

(

& .

1

&,

*&

(

3&

(

&

)

)((

3

)

)3

2

0

$(

$ /

(

3&

(

5

3

&

&

4

.

&

5

!!+

4

.

&

&

(

4

.

&

3&

(

2

.

.1

&

(

4

.

&

3&

(

4%#5

!!+

4

.

&

.

& .

1

&,

*&

(19)

!!)

3&

(

&

,

(

4

&

,

&

(

(

5

3)(

4

.

&

& .

1

&,

*&

(

!!+

4

.

&

&

,

&

(

(

3

&

,

(

& .

1

&,

*&

(

3&

(

&

)

&

)

),

3

2

0

0 2

* *

! *

&

*! "

# * *

!

"

$

'(

#

%

&

! "

!

* *

! "

!

)

! "

'

!")

) * *

!

%

'

!

#

!

#

#

7

7

(

&

!

7

!

! #) *

%

!

$

!

#

!

'

! "

&

(

( *"

#

! %#

)"

(

) %

#

* *

(

(

* # *

(

(

*

#

*

(

!

(20)

' *

& #&# $

& *

# # '

& * $

+

# $

&

! #& &!

$

#&&+ * &%

$

&& )

$ $)

$

+ $

+

#

& * $

+ &%

$

&

!&+

# &! $

#&&+ *

& * $

+

#

&! $

#&&+ *

+ '

#

" "

!

#

!

#

! "

!!

!

8

!

!

"

&

#

#

!

!

% #

!

$ "

! !

7

$

"

('

!

!

$

!

#

%

&

!

#

#

'

&

#

&

# %

#

(21)

7

&

%

#

#*

!

&

7

7

!

%

)"

'

#%

# # %

! &

%

%

)

8

(

#

!

(

!

(

!

!

%

8 %! !

#

'

! "

8

!

"

!

"*

'

!

# *

&

*

*

! "

#

%

'

* *

%

#

(

! "

'

)

'6 %

,

%

#

%

! "

* *

&

! "

%

!

#

'

!

#

! #

* *

!

*

#

'

#

#

#

% )!

#

*

'

(

#

!

*

(

%

!

"

&

#

% !

' (,

+

+ 3

,

%

1+2

& %

&

%

/

$*

/

' .

/' .

( %.

+

$

$

+ %

+/' .

'+

%

&

%

'

!!#

(22)

)

'

&

'

!

)!

# %

!

&

7

!

$

%

$

%

'+ $%

2 3

)

+ .

',

6 3

, %

4

+,+

1 3

%

& %

4

& $

*

'/ 2

& %

&6

%

'+

"

! "

#

#

* .

#

!

(

%

" #

)#

!

* %

*

!

#

!

* *#

!

$

%

#

%

#

'

% %

!

(

(

! !

!

(

#

$

!

!

(

!

"

%

"

" !

@

X

$

.

6

/ 41/

1

7<<*-<(

) ( (

)

*H (&

# $

. 6

@ 1

#

3

1

1

7

"

Z

" "

!

3

1

1

Z /

1

$""

. 6

@

3

7<<< 8*!%H

#$%

&

' $"

.

6()

" (

7<<< (

+ *(

*(

*-

<(

) (

(

) $#

3

* $

.

*!&%+ ++ *((F*+H!( *(H

(

) ,-: 8

H

'

:%% *+,

Z

/

3

*

'

$!

.

6. /(

7

Z

0 *+ 0 1,

,

2 *

,*% 3

, 24

*

3

* /

5

Y/1

1

"

1

1

6

!

(23)

3 * ' $ %. 6 @ 3 1 . /( 7( * ! *((*

- +,(*&*

)' % " & ' $! . 6 @ /Y( 3 7

*H (&* + (

0 * ) !! ( ) ! 5 $ & . 6 /

14 ?

# 1 # 7(0

*H (&*(*- <(

) ( (

)

( (*-&

) <( ) ( ( ) ! 5 / 3 * Y $" . , %+ + + *(* 8*!% &L ' ! @ " 5 # / 6 * ( $ . 6 1

7 8*!!H( + *(

* ,:82 & % *' /1 * / 1 $! . 6 ?

14 Y

7 Z 0 *+ 0 # (:82 > ' !%0 *( *H( *( * *- <( ) ( ( ) 5 / ? % :82

> *-<(

) ( ( ) =* 3 ( @ " & ' $ . 6 3 1 ? / // 1 7 Z

*- <(

) ( (

)

<H+ *(

0

*+ 0 < 8*((+

1 / !

;+H =*

(

8*!%H + (+

1 " 1 1 @ ! ' 3 (Y Y 3 1 $ . 6 X 3 / @ / 3 # 7 Z 0

*+ 0 8*(0 *(*-<(

) ( ( ) <H+ *( /

!;+H=*

( 8*!%H + (+ 1 " 1 ! ' *' /1 $" . 6 @ 3 7 Z 0

*+ 0 (0 8*(0

*(

C- (

)

+,( H

(:%%& + *(

/

%%

;+H =*

( 8*!%H + (+

1 " 1 & % ' * # $ . H(!(& *

*-<(

) ( ( ) " / ' /1 * * / 1 $" . 6 @

1/ 1 / Y

7 + (+ * 8*!%H

0 * ) !! ( ) % % ' /1 * * / 1$ . ;+, -;( ) H )

( **&

*

* !&%+ ++ *(

1 " 1 ' /1 ** / 1 *

5 1 $"

%. 6 # 4 1/ 1

7 <<< *-

#% ! / 3 (5/ $ & . 6 X 3 . @ @ . 7 Z 0 *+ 0 $ ,(0

8*(0 *(,

,

* !&2,* 3

, 24 * 3 / #

/ ;+H =*

(

8*!%H + (+

1 " 1 1 6 & % / # ' * 3 $ %.

:%%& + *(

* *!&2,*

" / * Y #* $ & . , 2 ' * ,-0 + +& 0 * ) !! ( )

- ,*!&2,*

1 # 6 * $! . , 8 -: ' % 8,+ * , >H Z / 3 1 1 / Z # / # 1 Z ! @ 6 $" %.

6 1

4 1

7 <<< (

+ *( *( *- <( ) ( ( ) $$ ! # ' 6 $ . 6 3

7<<< (

+ *(

(24)

) ) $

%

# @

5 $

. 6

/

/

#

3

@ /

7 :82 > *-

<(

) ( (

) =*

$ !

!

%

@

(5

# $

.

64

"

(

#

7

Z

0 *+ 0

$

,<<<(0 8*(0

*(

*-<(

) (

(

) /

@ /

%

"

Y

$

& .

6 .

#

7

Z

0 *+ 0

$

, (0 8*(0 *(,

,

*!&2,* 3

, 24

*

3

/

#

/

;+H =*

(

8*!%H

+ (+

1

"

1

1

6

&

""

3

'

$

.

*-:+, +H0

0 %+

*((<!

) (

) F

+ %& (

" /

Z $

.

*-

<(

) (

(

) /

@

" 5

#

#* $""

.

,2(H&

#* $

. ,

,

=* *(0 :C(+2(H&

" /

1

/

1$

.

6(

@

X

/4

#

1

7

(0

*H (&*(*-<(

) ( (

)

( (*-&

) <(

) ( (

)

""

5 1

* $"

& .

6

5

1

Z

1/ 14

7:82 (

+ *(

*(

0 *

) !! (

) ;(

) H

)

(

' !

!

5 1

* $""

. 6

@ /

#

4

#

7<<<*-

!

&

5 1

* $

. 6

@ 4

5

Z

/

7<<< 8*!%H

#

"

!

References

Related documents

Pemain musik berjumlah 7 (tujuh) orang dan 1(satu) orang vokal dengan instrumen masing-masing yang dimainkan. Tata rias dan busana adalah salah satu sarana penunjang dalam

“A fundamental principle in engineering, including software engineering, is to minimize the amount of. accidental complexity which is introduced into engineering solutions due

We predicted that, over the 4 vowel conditions, models of articulator position derived from vocal tract images would cor- relate with condition-wise searchlight fMRI data

[r]

This study examined the firms’ share price and operating performance surrounding actual share repurchases in the Hong Kong stock market. In addition, this study also examined the

introduce secular essay writing from PHD of what programs established our new Paper Crafts online nursing degree writers learn of completing already makes Territory from of.

To answer that question, we must consider the themes of fear and discord within the larger Megarian tradition, and indeed two later stories about Megara’s role in the Persian

IUSA utilizes ratings in its transmission planning studies to ensure safe operation without excessive loss of equipment life. Ratings to be used are consistent with those developed