Professional Documents
Culture Documents
Integrating Top-Down and Scenario-Based Methods For Constructing Software Specifications
Integrating Top-Down and Scenario-Based Methods For Constructing Software Specifications
! !
? @ (
!
% ( " (
!
! "
!
"
! (
#%
! !
-A)5 "
!
" "
#
"
!
( "
-
5
#
% ! %
'
<3= *#
! ;;) A)
%#
"
$
%
"#! "
;;)
"
B%#! !
-BB)5 (
! " ! !
"
#$%& '
" !$ ! !
" ! -%
5
<9= A BB) !
( "
%
! !$
!
#
(
"
"
"(
% !! !
!
%
%
<8=
) !
( "#! !
%
! ! C( !
#
% " '
!
$ (
%#! !
% " !
!
!
"
# <1 7=
#
$
% %
" ( !
"
!
! " ! ! " "
!! %
!$ "
$
" %
!
% ! %
! ( !
!#
&
!
$ !
"
!
'
( !
"
! @ ! ! ' "
(
! % )
" !
"(
"
%
*
! " ! +#
! " ! %#! !
# ! " $ ,
-. /01222345 ! .6* "
" #
+ -. 728992/25
"
! !
%
! )
106
! % %
*;6;I (
%
"
!!
! ! (
%#
"
! %
!
% ! !# !
" !
*
!
$ !
%#
(
C( !
</= % !&
!$
!
"
" D # !! "
"
!
! C(
!
"
( #
!$! (
!
!
!! % ! " %!
!$! # !
!
"
B
!
"
@
( % "
! %
!
#
*;6;
(
! !
(
%#
% %
!
% " ! %
! %# !
( B6
#
!
"
$! (
"
! !
! "
#
! "
!
"
% ! %
!#
%#!
*;6;
( ! ! (
! !
!
%
!
" ! (
! D "
$! @* !
" " " "
"
(
#
;
" *;6; %
! (
! %
! '
"
" >! %? - % ! ,( -,5
%
'! %
5 ! >$ ? # "
#
! - ! " D
5
"
(
B6
$
# (
@* ! H $
%
-%
!5
-
</9=5 " !#
#
( 6 #
!
/ # %! 2 (
- ! 5 !
- # ! >6
?
!
!
(
5 </8= #
%#
%! / 3 ! 9 #
! ! C(
!
!
-
# /
!!
%# (
(
5
%
*;6;
3 ! 9 !
!
#
!
%
%#
6 D 3
!
!
! % !
-!
#
3/ 33 ! 39 J (
5 </1= % %#!
! % " "
*;6;
!
%
%(
!
(
#
%(
%
! ! C(
" '
'
!
(
" ! C(
@ !!
"
(
*;6;
(
) !
! ! ! !
"
)
! C( !
%
(
%
#
>(? %
! !
! ! 6 D !
(#
%
! %
( ! C(
! >;
? "
>(? %
% #
$ 6 /
!
! ! "
%
#
*
!
+ ! #
! C(
% "
! #
!
(
!
(
( !
( ! >*
? !#
C(
% "
!
%
!
( !
" B6
% !I
!#
! ! !! <0=
! " " !
" '
"
6 D
%! /
D " %& " @*
A #!( ! ( $
%
! % /22222
-
# ! # %
" ( !
5
!
%
! ( !
! ! *
!
(
! % !!
# 33 ! 398
107
Functions
fail_mesg4
0. An IC card system for buying tickets or charging the card.
ticket_price
1. Select services provided by a customer.
2. Charge card. Check_Buffer
2.1 Select the type of charging the card.
2.2 Charge card with cash.
3 tickets_available
2.3 Charge from the bank account. ticket_price
2.3.1 Authentication.
2.3.2 Check amount.
Update_Buffer
2.3.3 Charge with the amount, which is similar to Charge issue_com
with cash. Issue_Ticket
2.3.4 Update account after the charge.
3. Buy tickets. ticket
3.1 Check the buffer of the card.
3.2 Update the buffer of the card. 1 buffer
3.3 Issue a ticket.
Data resources
6 3
" A
1. buffer (used by operations 2.2, 2.3, 2.3.2, 2.3.3,
2.3.4, 3.1, 3.2)
2. current_accounts (used by operations 2.3.1, 2.3.2,
2.3.3, 2.3.4)
3. tickets_available (used by operations 3.3)
%
! ! C(
Constraints
! % *;6; 6 3
1. The amount of the card buffer cannot be greater than
!$
9 6 #
/ !
"(
' D#
100,000 yen (related to data item buffer and operations 2.2,
2.3.4).
2. The requested amount for charging the card must not be
greater than the account balance if the card is charged
H ! C( !
+
%
directly from the bank account (related to data item %
'
!+,*
D
! #
current_accounts and operation 2.3.3).
!
+
/ -" %&
!
+
5
!
+
6 /
" " ! %
#
-
+,*
!
!(
! C(
+ -
! "
!5
+
!
.
+ !
!
! " !$
"
#
!
*
!
%#
-
(
! ! C(
5
"#
!
B6
%
!! (
!$
!! "
,+ !
+#
0
!
' "
( !# !
( !
1 "I
%
! ! C( @ ! # "
!
"
( ! *
2 3
"
"
!
45 *
"
H
$ "
54
!
!
! # !
+
2
!
0
!
%! "
$
45 !
+
' "
%
! ( ! (
"
KL
B6
$ " '
!+,*
!
+
2 3
$
+
/2 !
+
2 3
! @* !
"
# *
2 3
(
D H $
!$ !
+
1 *
%#
B6
(
!
+
1 6 !
+
108
w_mesg
amount
fail_mesg0 Check_
cash_amount Amount
fail_mesg1
amount
Charge_with_ account_inf Charge_with_
Cash Cash
card_id
succ_mesg1
Authentication
1 buffer
succ_mesg0
pass
fail_mesg0 Update_
account_inf Account
1 buffer succ_mesg2
2 current_accounts
*
1 6*
!
+
.
+ !
+2 3 !
2
!
w_mesg
amount
fail_mesg1
# !
+
2
!
card_id Charge_from
fail_mesg2
Bank_Account
!
1
!
+
+ pass
succ_mesg2
LK "
KL acc_charge
$
!
M "
succ_mesg3
!
(
% !
!
% $! 6 1 !
!
!
"
$!
# !
!
6 D !#
"
'
!+,*
-!
(
%!
6 9
5 !
$
" 33 6 / ! #
! C( !
+
!
*
#
(
'! %"
D !
! !# 6 8
" 39 6 /
%
" !
+
'
(
! (
%& ! C( !
+
!!
#
+'
+
#
(
! C( !
+
D
6 1
" /
-!! % !! % 6 !
+
5I # 6 / H
6 3 !
(
+
/
! 6 1 (
"
H
$ "
! % *;6;
( !
! C( ! 6 7 6
%
!
-(%5 " D % " *;6; 6 4 6
"
(
!$!
%
H
! !
$
"
!
(
$
!
$
! %
"
% ! D
" #
(
D#
"
$
$
D
@ #
"
% & " -!
" " D
%
!
! C(
! D %
5
"
!
#
!
D
-!#
" %
!
" ! C(
! D *;6; !$ D
%
5
$
!
" D
!
109
2 current_accounts 3 tickets_available 1 buffer
w_mesg
w_mesg
fail_mesg1
fail_mesg2 fail_mesg1
Charge_
Card succ_mesg2 fail_mesg2
charge_com fail_mesg3 service_sel
succ_mesg3
service_sel Charge_Or_Buy_Ticket succ_mesg2
Select_
Service 1 buffer fail_mesg3
succ_mesg3
buy_com fail_mesg4
fail_mesg4
ticket
Buy_Ticket
2 current_accounts
ticket_price
ticket
3 tickets_available 6 4 @* !
"#
6 7 ! * NBNAN
!
(
% ! !$
"
" D
#
"
%!
"
#
% (
!
( ! !
! !
% $ ! %
%
!
"
% <0= " !
!
! " '! " " #
! 6 %
D "
6 1 ( $
%
6 8 B
% #!( ! !
! '
++,!+9 6 %#
#%
! ! "
1 ( ! C(
"
# "
$
B6
$
! +
! !
#
B6
( D
! C(
"
! ! " "
6 / H
#
C(
"
! +
3 +
%
" (
#
+
: ! +
; !
# !
$
C
! C(
"
! "
% !#
C(
!! D
%
! !
"
"
%
! ! C(
" >? "
"
!&
-
! %
! "
#
(
! " $ "
"
5
!
" !
% " "
" " ! C(
" ! C(
!
!(
! C(
" !&
! !
"
%
$
! " % # #
!
!
*;6;
! !
% ! " (
" (
! % ! C(
!
@" "
* -" %!!!
" D5 %# !
% !
! "
!
!
! -" "#
" (
!
" D5 +
!
% !#
% !
" * ! *;6;
!
(
! !
% # B %
" "
%#
!
" ( "
#%
! !
! !$
! H
" B6
$ %#
%#!
% -
! % *;6;
5 ! %
D
#
B "
"(!
!
!
!
! D
!
H
! C( #
$
!
110
%
! !
"
! "
!
! %
!
! #
%
!
</4=
#
" J B !
( !"
! ( ! (
#
$! !
%
'
!!
</0=
!#
$ " %
!
!
E % '
!
!
" ! " !O %
#
! %
"(
! #
!
#%
!
! !
( '
!
!
$
% "
#
"
<3=
!! )
D "
#%
! #
6 0
" B6
</G= %
!" %
" %
!
"
! #
B
#%
! #
D %#
! ! <32 3/= !!
#
&
!! ! !
"#
O ! ' "
$# (
"
#%
! '
#
(
" $ ! !
(
# %#! ! <33=
!
$
%
!
"
% %
! !
!
! % '#
!
!
% '
!
*;6; ( !
$ ! %
# ! "
!
6 0
(
( % " %
!
!"#
" +@ " B6
"
H !
" %
6 3 #!
!
6
"
#! #
( !
"
'
!
% "
! D D ! " (
!
%
<39=
( !
" !
( ! "
%
'
"
& ' () ( !
#
$! #! (
%
A #!( !
#%
!
!
!
%! (
I !
#
$ '
% D
#
"
!
! !
! % ( % "
! ;
! % " #
(
% !
%
! !
#%
! !
!
6
"
(
%
" !
<38= (
" ! (
!
!
C!
" "
%
%(
J B
#!! '
'
(
'
! % ;! !
(!
" !!
#
</7=
" '
%! !
(
#
( !
" # !# %
(
D
% % ! !#
%#
;$ *! % ( ! !
!
!
"
#
( H ! :
( #!(
111
!
!
!
#%
! !
!
! " & #
% !&
" ( ( ! "
#
( !
! !
"
" !
! "
%!
! ("! B
(
H
!
#!( !
! " !
( '
!
"
!
!
!
! !
%
(
$ " " !
#
, )
"
"
! !
!
H (!
!
!
%#
# J ) P P ! A +
%
! ! ! "
" %
"
% !
!$
"
"(
" B6
H
!
%( D
#
!
" !#
!
" ( ! ! %!
!
!
" *;6; @* !
B6
$ (
D
" D
$
# '
*;6;
% !
! * %# </= Q! <
#
9 R
! /G0G
" ! (
!# % .??? .
'
?
! %
A ! ! '
" '
#
/74S
% & ! /40 6
!! 6! .% 7#/2
" ! @* !
-! /GG1 @ * R
%#
)
(
!
5 ! ( "
<4= @
-
>
%
D
( ! ! -<& A =
>
#F
(
3229
% "
! ( ( ( & <0=
% ?
112
<G= ;(
B=<#& C
@
R <32= R + 6 6!
!
/GG/ ,
# @!
*
!
! !
@ > #
</2= F;)#
+ -
<
.??? #
C
?
.%9= B=<#& @
" !
/2S/4 @ * R
/GG1
* 6% /GG8
<3/= ,
#A
! ;
,#
<//=
B& * # Q ! (
@" *
!
) B% B6
6 )!# @ > =.#DK2 =
.
#
" @!
.???
394S387 /GG1
#
?
38-/5994S988
/GG0 @
6 )!
<33= + & . ) )! )
! ; ) #A
! ,#
</3= * A
#
#
=
- '
.???
B=< 3! ! R /GG2 #
?
38-/35/243S/200 ;#
% /GG0
</9= ; *
F
6
"
*D
#
'
> <39= J H ! ) *% +#
0-95394S348 /G04 B!
!
*
.?.'?
. #
04#
</8=
)
J J ! Q . ;-85033S092 3228
B6
" ,( *
* " @!
@ >
6! B% 32#39 /GG0 @ *# 93-7598GS978 3227
R
</1= +
! ) @ "
; )! )! " 6
"
( B6
6 $
@
>
'
" '
#
F.'?''#;333G //#/8
3222 @ * R
9
*@* -A5
;% 3#8 3229
F .'C? JDHG
/97S/88 *!
/GG7
-
<
&
C
<
!!
#H
/GGG
113