• 検索結果がありません。

(2).OBJ2とOBJ3が 持つデータが類似して

いる

/

%8) 6

6 6 6 66

8

8

%8$

(

&'! !!"

(

( (

( ( (3" (

%8$

(3" (

(3" (

%8* %8@

3 : getInstance()

4 : RoomVacancyData=return(_):roomVacancyData 5 : getInstance()

6 : RoomStatusData=return(_):roomStatusData 7 : searchStatus(firstday, lastday, single, twin, status) 8 : String=message(_):true

9 : reduceRoom(fd, ld, single, twin)

10 : changeStatus(fd, ld, single, twin, status, resvrecordbean)

11 : setInstance(roomVacancyData) 12 : setInstance(roomStatusData) 1 : checkAvailability(resvRecordBean)

2 : consumeRooms(resvRecordBean)

13 : String=message(_):true

CreateRecordServlet RoomControl RoomVacancyData RoomStatusData

1.宿泊の予約を行う (ルール2 ) sd

loop

1, 30, [firstday < lastday]

1 : changeRoomStatus(firstday, lastday, roomNum, status)

2 : getInstance()

3 : RoomStatusData=return(_):roomStatus 4 : getInstance()

5 : RoomVacancyData=return(_):roomVacancy

8 : setStatusOf(d, roomNo, status) 9 : reduce1/pluse1(d, roomNum) 10 : setInstance(roomStatusData)

11 : setInstance(roomVacancyData) 6 : getStatusOf()

7 : String=return(_):status

12 : String=return(_):true

ChangeRoomStatusServlet RoomControl RoomStatusData RoomVacancyData

loop

1, 30, [firstday < lastday]

4.部屋の状態管理を行う(ルール2) sd

1 : releaseRoom(resvRecordBean)

6 : increaseRoom(firstday, lastday, single, twin)

7 : releaseStatus(firstday, lastday, single, twin, resvRecordBean) 2 : getInstance()

3 : RoomStatusData=return(_):roomStatusData 4 : getInstance()

5 : RoomVacancyData=return(_):roomVacancyData

8 : setInstance(roomStatusData) 9 : setInstance(roomVacancyData)

CancelRecordServlet RoomControl RoomVacancyData RoomStatusData

5.予約のキャンセルを行う sd

(89

( (&# ( ( %

!(- 98!8:;

- ! ( !(-( !!A >

6)' !%'.#/#./.0/'%1 %%)

/# !!.,! %# !!.,! 2/# !!.,!!+.!'4

/#7''",! %#7''",! 2/#7''",!!+.!'4

#.. 2%# !!.,!.%' !!.%.!5 .!5 .5!35 .!!.4

888

%#7''",!%'/#%.!5 .!5 .5 !34

%# !!.,!' !!.%.!5.!5 .5!35 .!!.5%%)4

888

/# !!.,!.!+.!'%# !!.,!4

/#7''",!.!+.!'%#7''",!4

%!% -!%-4

?

(89 ( (

!(- 98!8:;

- ! ( !(-( !!A >

6)' !%'/# !!. !%8"5 !% "5

!% %#9#5 !% .!!.

/# !!.,! %# !!. 2 /# !!.,!!+.!'4

/#7''",!%#7''"2 /#7''",!!+.!'4

888

! B !; CB ; DD>

8%# !!.! !!.(85

B ;

';

?

?

! B !; CB ; DD>

%# !!..! !!.(85 %#95 .!!.4

!E84 " 4

%#7''"%' 5 %#94

?

/# !!.,!.!+.!'%# !!.4

/#7''",!.!+.!'%#7''"4

44;

?

(89 &# (

!(- 98!8:;

- ! ( !(-( !!A >

6)'0%./#./.0/'%1 %%)

888

/# !!.,! %# !!. 2 /# !!.,!!+.!'4

/#7''",!%#7''"2 /#7''",!!+.!'4

%#7''"'%./#%.!5.!5 .5 !34

%# !!.%. !!.%.!5 .!5 .5 !35 .!!.5 %%)4

/# !!.,!.!+.!'%# !!.4

/#7''",!.!+.!'%#7''"4

?

(89 (

%8+

(#

6 6 6

6 (#

(#

(#

% (#

(#

%8 %8

6 (#

6 6

(#

%81 (#

(#

(# (#

%8 %8%

5

5

(1: 5

(1: 5

(1: 5

前提条件 (1).messageA に与えられたデータが messageB, C, D で利用されて

いる場合 (2).messageB, C, D で一部のデータだけ利用

)

) 5

) 5

) 5

(1: 5 )

(1: 5 )

(1: 55 )

8

8

%8

%8

*

(

&'! !!" &'! !!"

&'

&',- "

&',- ( (

( (

( (

( (3" (

& (&#2

( &'! !!"

!# $ "F!

!#

( &'

&',- " &',- (

!#

( ( (

( (3"

( ,# %

( (

& ( (

!# )

( (

&# ( (

,# % !#

7 : getInstance()

8 : RoomVacancyData=return(_):roomVacancyData 9 : getInstance()

10 : RoomStatusData=return(_):roomStatusData 11 : searchStatus(firstday, lastday, single, twin, status) 12 : String=message(_):true

13 : reduceRoom(fd, ld, single, twin)

14 : changeStatus(fd, ld, single, twin, status, resvrecordbean)

15 : setInstance(roomVacancyData) 16 : setInstance(roomStatusData) 1 : checkAvailability(resvRecordBean)

2 : checkInputDay(firstday, lastday) 3 : String=message(_):true 4 : checkInputRooms(single, twin) 5 : String=message(_):true

6 : consumeRooms(resvRecordBean)

17 : String=message(_):true

CreateRecordServlet DateCheck RoomControl RoomVacancyData RoomStatusData

1.宿泊の予約を行う (ルール3 ) sd

)

&'! !!" !#$ "F!

&',- " !" " !#

&',- ( !# ! !#

( ( !#$ "F!

( !# ! ,#%

& !" " !# !#)

!

&# !# ! ,#% !#*

"F!

( !# !

&' !" " !# ! !" "

!# !

(3" !# ! !# !

( !# ! !# !

(89

&'!!!" &',- " &',- ( ( (

)

!(- 98!8:;

- ! ( !(-( !!A >

6)' !% '';00!"/.0/'%1 %.0/'%1

&' &' B &';

#.. 2!'';'';+6!,"%. 0/' %1!$%.!"5

%.0/'%1!.!"4

888

#.. 2!'';'';+6!/#.%.0/'%1 ! 5

%.0/'%1!34

888

#.. 2'.#/#.%.0/'%14

888

(#;

?

(89 &'! !!"

!(- 98!8:;

- ! ( !(-( !!A >

6)' !%'.#/#./.0/'%1%.0/'%1

! %.! 2 %.!"<%'!"4

! .! 2 .!"<%'!"4

! %. 2+!%6%.+!%%)! 4

! %!3 2+!%6%.+!%%)!34

!# B 44;

( ( B ( 8#, ;

(3" (3" B (3" 8#, ;

#..2 %# !!.,!.%' !!.%.!5 .!5 %.5 %!35 .!!.4

888

%#7''",!%'/#%.!5.!5 %.5 %!34

%# !!.,!' !!.%.!5 .!5 %.5%!35 .!!.5%.0/'%14

888

( 8, ( ;

(3" 8, (3 " ;

44;

?

(89 ( (

%8 %8

D

D DD

D

D DD

D

D DD

D

D DD

再構成前

機能追加後

+f1, +f2

SB SB+f1+f2

SA1 SA2 SA3 SB+R1

SB+R2

SB+R3

SA1+f1+f2 +f1, +f2

SA2+f1+f2 SA3+f1+f2 +f1, +f2

+f1, +f2 再構成後

機能追加前

%8

8

%8% %8)

1 : request()

2 : getSttribute(resvrecordbean) 3 : return(_)

4 : new CancelQueueBean()

8 : writeRecord(cancelbean) 10 : setAttribute("cancelqueuebean", cancelbean)

11 : forward(_)

6 : getInstance()

7 : CancelDB=return(_):cancelDB

9 : setInstance(cancelDB)

5 : setAllData(firstday, lastday, single, twin, user, recordID) ユーザ

CancelQueueServlet

CancelBean

CancelDB HttpSession

6.キャンセル待ちに登録する sd

D

%8% %8)

/

D %8* DD %8@ %8*

D

loop 0, [frequency < DBSize] loop loop 1, [firstday < lastday]1, [i < singleRoom] loop loop 1, [firstday < lastday]1, [i < twinRoom]

13 : new ResvRecordBean(firstday, lastday, single, twin, user) 16 : getInstance() 17 : RoomVacancyData=return(_):roomVacancyData 18 : getInstance() 19 : RoomStatusData=return(_):roomStatusData 20 : searchStatus(firstday, lastday, single, twin, status) 21 : String=message(_):true 23 : changeStatus(firstday, lastday, single, twin)

22 : reduceRoom(firstday, lastday, single, twin) 27 : setInstance(roomStatus)

26 : setInstance(roomVacancy) 29 : createID(ResvRecordBean) 30 : writeRecord(recordID, resvRecordBean) 31 : setInstance(resvRecordDB)

15 : consumeRooms(ResvRecordBean) 28 : String=return(_):message 33 : message()

32 : setAttribute("resvrecordbean", resvrecordbean)

14 : setAllData(firstday, lastday, single, twin, user) 24 : setSingleStatus(day, index, status) 25 : setTwinStatus(day, index, status)

1 : getInstance() 2 : CancelDB=return(_):cancelDB 3 : getAllSize() 4 : Integer=return(_):size 5 : readRecord() 6 : CancelBean=return(_):cancelBean 7 : getInstance() 8 : RoomStatusData=return(_):roomStatusData 9 : searchStatus() 10 : String=message(_):true 11 : removeDatabase(cancelBean, cancelDB) 12 : setInstance(cancelDB)

CancelRecordServlet RoomControl CancelDB RoomStatusData RoomVacancyData ResvRecordBean

ResvRecordDB ユー ザ HttpSession

loop 0, [frequency < DBSize] loop loop 1, [firstday < lastday]1, [i < singleRoom] loop loop 1, [firstday < lastday]1, [i < twinRoom]

7.キャンセル待ち記録を予約記録へ変更し、データベースに登録する(改訂版)sd DD

G

G

G

%8@ %8)

(

%

%

% (

( &

D

DD

D DD

D %8$ DD %8*

D D D

D

DD

%8$

G

G

G

G

1 : request()

2 : getSttribute(resvrecordbean) 3 : return(_)

4 : new CancelQueueBean()

10 : addDatabase(cancelbean, cancelDB) 11 : setAttribute("cancelqueuebean", cancelbean)

12 : forward(_)

5 : setAllData(firstday, lastday, single, twin, user, recordID)

6 : getCancelDB() 7 : getInstance()

8 : CancelDB=return(_):cancelDB 9 : CancelDB=return(_):cancelDB

ユーザ

CancelQueueServlet

CancelBean

CancelDB

HttpSession CancelQueueControl

6.キャンセル待ちに登録する(ルール1: クラスの役割の委譲) sd

D

%8$

%8+

D

D

)

D

D

%8* DD DD 2

&

break

loop

loop 1, [firstday < lastday]

1, [i < singleRoom]

loop

loop 1, [firstday < lastday]

1, [i < twinRoom]

6 : searchCancelQueue(resvRecordBean, cancleDB)

14 : CancelQueueBean=return(_):cancelQueueBean

16 : new ResvRecordBean(firstday, lastday, single, twin, user) 2 : getInstance()

3 : CancelDB=return(_):cancelDB

5 : getAllSize() 7 : Integer=return(_):size 8 : readRecord(index) 9 : CancelBean=return(_):cancelBean

20 : getInstance() 21 : return(_)

22 : getInstance() 23 : return(_)

24 : searchStatus(firstday, lastday, single, twin, status) 25 : return(_)

27 : changeStatus(firstday, lastday, single, twin) 26 : reduceRoom(firstday, lastday, single, twin)

31 : setInstance(roomStatus) 30 : setInstance(roomVacancy) 10 : getInstance()

11 : RoomStatusData=return(_):roomStatusData 12 : searchStatus(firstday, lastday, single, twin, status) 13 : String=return(_):message

19 : consumeRooms(ResvRecordBean)

32 : String=return(_):message

39 : message()

38 : setAttribute("resvrecordbean", resvrecordbean)

18 : setAllData(firstday, lastday, single, twin, user)

28 : setSingleStatus(day, index, status)

29 : setTwinStatus(day, index, status)

33 : getResvRecordDB()

34 : getInstance() 36 : ResvRecordDB=message(_):resvRecordDB

17 : createID()

35 : ResvRecordDB=return(_):resvRecordDB 37 : addDatabase(resvRecordBean, resvRecordDB)

15 : removeDatabase(cancelBean, cancelDB) 1 : getCancelDB()

4 : CancelDB=return(_):cancelDB

CancelRecordServlet CancelControl CancelDB RoomControl RoomVacancyData RoomStatusData

ResvRecordBean

ResvRecordDB ユーザ

HttpSession ResvRecordControl

break

loop

loop 1, [firstday < lastday]

1, [i < singleRoom]

loop

loop 1, [firstday < lastday]

1, [i < twinRoom]

7.予約記録へ変換したことを通知する(ルール1 : クラスの役割の委譲) sd

DD

%81 DD DD

DD

DD DD

DD DD

D

DD

D

DD %8@ DD DD

DD DD

%8@ DD DD

( (2

(3"

(3" (

( (3"2

(

(

(

(3"

loop

loop 1, [firstday < lastday]

1, [i < singleRoom]

loop

loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size]

13 : new ResvRecordBean(firstday, lastday, single, twin, user)

31 : createID(ResvRecordBean) 32 : writeDatabase(recordID, resvRecordBean) 33 : setInstance(resvRecordDB) 15 : consumeRooms(ResvRecordBean)

30 : String=return(_):message

35 : message()

34 : setAttribute("resvrecordbean", resvrecordbean)

14 : setAllData(firstday, lastday, single, twin, user)

25 : setSingleStatus(day, index, status)

26 : setTwinStatus(day, index, status) 16 : consumeRoomsJob(resvRecordBean)

17 : getInstance()

18 : RoomVacancyData=return(_):roomVacancyData 19 : getInstance() 20 : RoomVacancyData=return(_):roomVacancyData 21 : searchStatus()

22 : String=message(_):true 23 : reduceRoom(fd, ld, single, twin)

24 : changeStatus(fd, ld, single, twin, status, resvRecordBean)

27 : setInstance(roomStatusData) 28 : setInstance(roomVacancyData) 29 : String=message(_):true

1 : getInstance() 2 : CancelDB=return(_):cancelDB 3 : getAllSize() 4 : Integer=return(_):size

5 : getInstance() 6 : RoomStatusData=return(_):roomStatusData 7 : readRecord(index)

8 : CancelBean=return(_):cancelBean

9 : searchStatus(firstday, lastday, single, twin, status) 10 : String=message(_):true 11 : removeDatabase(cancelBean, cancelDB)

12 : setInstance(cancelDB)

CancelRecordServlet CancelDB RoomControl RoomStatusData

ResvRecordBean ResvRecordDB ユーザ

HttpSession RoomVacancyData

loop

loop 1, [firstday < lastday]

1, [i < singleRoom]

loop

loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size]

7.予約記録へ変換したこと通知する( ルール2 : 従属関係) sd

DD

%8 DD

DD

DD

DD DD

DD DD

D D DD

DD

%8+ DD DD

DD

%8+ DD

DD DD

(

( ( DD

DD

,# %

!#

loop

loop 1, [firstday < lastday]

1, [i < singleRoom]

loop

loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size]

13 : new ResvRecordBean(firstday, lastday, single, twin, user)

16 : getInstance()

17 : RoomVacancyData=return(_):roomVacancyData 18 : getInstance()

19 : RoomStatusData=return(_):roomStatusData 20 : searchStatus(dataB) 21 : return(_)

23 : changeStatus(dataC) 22 : reduceRoom(dataA)

27 : setInstance(roomStatus) 26 : setInstance(roomVacancy)

29 : createID(ResvRecordBean) 30 : writeRecord(recordID, resvRecordBean) 31 : setInstance(resvRecordDB) 15 : consumeRooms(dataA, dataB, dataC)

28 : String=return(_):message

33 : message()

32 : setAttribute("resvrecordbean", resvrecordbean)

14 : setAllData(firstday, lastday, single, twin, user)

24 : setSingleStatus(day, index, status)

25 : setTwinStatus(day, index, status) 1 : getInstance()

2 : CancelDB=return(_):cancelDB 3 : getAllSize() 4 : Integer=return(_):size

5 : getInstance()

6 : RoomStatusData=return(_):roomStatusData 7 : readRecord(index)

8 : CancelBean=return(_):cancelBean

9 : searchStatus(firstday, lastday, single, twin, status) 10 : String=message(_):true

11 : removeDatabase(index) 12 : setInstance(CancelDB)

CancelRecordServlet CancelDB RoomControl RoomVacancyData RoomStatusData

ResvRecordBean ResvRecordDB ユーザ

HttpSession

dataA = Integer:4 dataB = dataA + String:1 dataC = dataB + resvrecordbean:1

loop

loop 1, [firstday < lastday]

1, [i < singleRoom]

loop

loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size]

7.予約記録へ変換したことを通知する(ルール3 : データの不整合) sd

DD

%8 %8 DD DD

%8

( ( (

DD

DD DD

DD DD

DD DD

( (

DD DD

B B ,#%

!#$ "F! B D !#

B D

DD

D

DD

D D

DD DD DD

%

DD DD DD

DD DD DD

D D

/

DD DD

/

DD DD

DD DD

5"

"

(

"

8

8 DD

8

8%

8)

8$

8*

8@

8+

81

8

8

8

8%

8)

8$

8*

8@

HttpSession ChangeRoomBean

ChangeRoomStatusServlet

RetrieveRoomStatusServlet

RetrieveRecordServlet RoomStatusData RoomVacancyData

CreateRecordServlet ResvRecordDB DataCheck

ResvRecordBean RoomControl CancelRecordServlet

create create

全体 構成 : キ ャ ン セ ル 機能 追加

CreateRecordServlet CancelRecordServlet

HttpSession

ResvRecordDB

ResvRecordBean ChangeRoomBean

ChangeRoomStatusServlet

RetrieveRoomStatusServlet

RetrieveRecordServlet RoomStatusData

RoomVacancyData DataCheck RoomControl CancelQueueDB

CancelQueueControl CancelQueueBean CancelQueueServlet

create create createcreate

全体構成:キャンセル待ち機能追加 DD

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1 : request() 2 : new ResvRecordBean() 10 : getInstance() 11 : RoomVacancyData=return(_):roomVacancyData 12 : getInstance() 13 : RoomStatusData=return(_):roomStatusData 14 : searchStatus(firstday, lastday, single, twin, status) 15 : String=message(_):true 16 : reduceRoom(fd, ld, single, twin) 17 : changeStatus(fd, ld, single, twin, status, resvrecordbean) 23 : createID() 24 : getInstance() 25 : return(_) 26 : writeDatabase(recordID) 27 : setInstance(resvRecordDB) 28 : setAttribute("resvrecordbean", resvRecordBean) 29 : setAttribute("oldresvrecordbean", resvRecordBean)

3 : setAllData(firstday, lastday, single, twin, user) 20 : setInstance(roomVacancyData) 21 : setInstance(roomStatusData)

18 : setSingleStatus(day, roomNo, status) 19 : setTwinStatus(day, romNo, status) 30 : forward(_)

4 : checkAvailability(resvRecordBean)

5 : checkInputDay() 6 : message(_) 7 : checkInputRooms() 8 : message(_) 9 : consumeRooms(resvRecordBean) 22 : String=message(_):true

ユーザ

CreateRecordServletDateCheckRoomStatusDataRoomVacancyData ResvRecordBean

ResvRecordDBRoomControlHttpSession loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1.宿泊の予行なsd

1 : request() 7 : forward(_) 2 : getinstance() 3 : ResvRecordDB=return(_):resvRecordDB 4 : readRecord(reserveID) 6 : setAttribute("resvrecordbean", resvrecordbean)

5 : ResvRecordBean=return(_):resvRecordBean

ユー ザ

RetrieveRecordServlet ResvRecordDB HttpSession

2.予約 の照 会を 行な う sd

1 : request() 2 : checkInputDay(firstday, lastday) 3 : String=message(_):true 6 : mekeRoomList(firstday, lastday, roomNum) 8 : forward(_) 7 : setStatusResult(lines) 4 : checkInputRoomNum(roomNum) 5 : String=message(_):true

ユー ザ

RetrieveRoomStatusServlet DateCheck RoomControl

3.空室 状況 を見 る sd

loop 1, 30, [firstday < lastday]

1 : request() 4 : changeRoomStatus(firstday, lastday, roomNum, status) 5 : checkInputDay(firstday, lastday) 6 : String=message(_):true 9 : getInstance()

7 : checkInputRoomNum(roomNum) 8 : String=return(_):true 10 : RoomStatusData=return(_):roomStatus 11 : getInstance() 12 : RoomVacancyData=return(_):roomVacancy 15 : setStatusOf(d, roomNo, status) 16 : reduce1/pluse1(d, roomNum) 17 : setInstance(roomStatusData) 18 : setInstance(roomVacancyData)

2 : new ChangeRoomStatusBean() 20 : setAttribute("changeroomstatusbean", changeRoomStatusBean)

3 : setAllData(firstday, lastday, roomNum, status) 13 : getStatusOf() 14 : String=return(_):status 19 : String=return(_):true 21 : forward(_)

ユー ザ

ChangeRoomStatusServlet RoomControl DataCheck RoomStatusData RoomVacancyData ChangeRoomStatusBean

HttpSession loop 1, 30, [firstday < lastday]

4.部屋の状態管理を行なうsd

1 : request() 10 : releaseRoom(resvRecordBean) 11 : increaseRoom(firstday, lastday, single, twin) 12 : releaseStatus(firstday, lastday, single, twin, resvRecordBean) 14 : response(_) 4 : checkInputRecordID(reserveID, user) 5 : return(_)

2 : getInstance() 3 : ResvRecordDB=return(_):resvRecordDB 6 : readRecord(reserveID) 7 : return(_) 8 : removeDatabase(reserveID) 13 : setAttribute("reserverecordbean", resvrecordbean)

9 : setInstance(resvRecordDB)

ユーザ CancelRecordServlet RoomControl ResvRecordDB RoomVacancyData RoomStatusData HttpSession DataCheck

5.予約 のキ ャン セル を行 なう sd

1 : request() 2 : getSttribute(resvrecordbean) 3 : return(_) 4 : new CancelQueueBean() 8 : writeRecord(cancelbean) 10 : setAttribute("cancelqueuebean", cancelbean) 11 : forward(_) 6 : getInstance() 7 : CancelDB=return(_):cancelDB 9 : setInstance(cancelDB)

5 : setAllData(firstday, lastday, single, twin, user, recordID)

ユーザ

CancelQueueServlet CancelBean

CancelDB HttpSession

6.キ ャ ンセ ル 待ちに 登 録 す る sd

loop 0, [frequency < DBSize] break loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1 : searchCancelQueue(ResvRecordBean, roomcontrol) 14 : CancelQueueBean=return(_):cancelQueueBean 15 : new ResvRecordBean(firstday, lastday, single, twin, user) 2 : getInstance() 3 : CancelDB=return(_):cancelDB 4 : getAllSize() 5 : Integer=return(_):size 6 : readRecord(index) 7 : ResvRecordBean=return(_):resvRecordBean

18 : getInstance() 19 : RoomVacancyData=return(_):roomVacancyData 20 : getInstance() 21 : RoomStatusData=return(_):roomStatusData 22 : searchStatus(firstday, lastday, single, twin, status) 23 : String=message(_):true 25 : changeStatus(firstday, lastday, single, twin)

24 : reduceRoom(firstday, lastday, single, twin) 29 : setInstance(roomStatus)

28 : setInstance(roomVacancy) 31 : createID(ResvRecordBean) 32 : writeRecord(recordID, resvRecordBean) 33 : setInstance(resvRecordDB)

8 : getInstance() 9 : RoomStatusData=return(_):roomStatusData 10 : searchStatus(firstday, lastday, single, twin, status) 11 : String=return(_):message 17 : consumeRooms(ResvRecordBean) 30 : String=return(_):message 35 : message()

12 : removeRecord(index) 13 : setInstance(cancelQueueDB) 34 : setAttribute("resvrecordbean", resvrecordbean)

16 : setAllData(firstday, lastday, single, twin, user) 26 : setSingleStatus(day, index, status) 27 : setTwinStatus(day, index, status)

CancelRecordServlet CancelQueueControl RoomControl CancelDB RoomStatusData RoomVacancyData ResvRecordBean

ResvRecordDB ユー ザ

HttpSession

loop 0, [frequency < DBSize] break loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

7.ル待録を予約記録更し登録sd

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1 : request() 2 : new ResvRecordBean() 26 : return(_)

13 : getInstance() 14 : RoomVacancyData=return(_):roomVacancyData 15 : getInstance() 16 : RoomStatusData=return(_):roomStatusData 17 : searchStatus(firstday, lastday, single, twin, status) 18 : String=message(_):true 19 : reduceRoom(fd, ld, single, twin) 20 : changeStatus(fd, ld, single, twin, status, resvrecordbean) 32 : setAttribute("resvrecordbean", resvRecordBean) 33 : setAttribute("oldresvrecordbean", resvRecordBean)

4 : setAllData(firstday, lastday, single, twin, user) 5 : getAttribute(oldresvrecordbean) 6 : ResvRecordBean=return(_):resvRecordBean 23 : setInstance(roomVacancyData) 24 : setInstance(roomStatusData)

21 : setSingleStatus(day, roomNo, status) 22 : setTwinStatus(day, romNo, status) 34 : forward(_)

27 : getResvRecordDB()28 : getInstance() 30 : ResvRecordDB=message(_):resvRecordDB

3 : createID() 29 : ResvRecordDB=return(_):resvRecordDB 31 : addDatabase(resvRecordBean, resvRecordDB)

25 : return(_)

7 : checkAvailability(resvRecordBean) 8 : checkInoutDay(firstday, lastday) 9 : String=message(_):true 10 : checkInputRooms(single, twin) 11 : String=message(_):true 12 : consumeRoms(resvRecordBean)

ユーザ

CreateRecordServletDateCheckRoomStatusDataRoomVacancyData ResvRecordBean

ResvRecordDBRoomControlHttpSessionResvRecordControl loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1.宿泊の予約を行な(ルー)sd

1 : request() 2 : getSttribute(resvrecordbean) 3 : return(_) 4 : new CancelQueueBean() 10 : addDatabase(cancelbean, cancelDB) 11 : setAttribute("cancelqueuebean", cancelbean) 12 : forward(_) 5 : setAllData(firstday, lastday, single, twin, user, recordID) 6 : getCancelDB() 7 : getInstance() 8 : CancelDB=return(_):cancelDB 9 : CancelDB=return(_):cancelDB

ユーザ

CancelQueueServlet CancelBean

CancelDB HttpSession CancelQueueControl

6.キ ャン セル 待ち に登 録す る( ルー ル1 :ク ラス の役割 の委 譲) sd

break loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

6 : searchCancelQueue(resvRecordBean, cancleDB) 14 : CancelQueueBean=return(_):cancelQueueBean 16 : new ResvRecordBean(firstday, lastday, single, twin, user)

2 : getInstance() 3 : CancelDB=return(_):cancelDB 5 : getAllSize() 7 : Integer=return(_):size 8 : readRecord(index) 9 : CancelBean=return(_):cancelBean 20 : getInstance() 21 : return(_) 22 : getInstance() 23 : return(_) 24 : searchStatus(firstday, lastday, single, twin, status) 25 : return(_) 27 : changeStatus(firstday, lastday, single, twin)

26 : reduceRoom(firstday, lastday, single, twin) 31 : setInstance(roomStatus)

30 : setInstance(roomVacancy)

10 : getInstance() 11 : RoomStatusData=return(_):roomStatusData 12 : searchStatus(firstday, lastday, single, twin, status) 13 : String=return(_):message 19 : consumeRooms(ResvRecordBean) 32 : String=return(_):message 39 : message()

38 : setAttribute("resvrecordbean", resvrecordbean)

18 : setAllData(firstday, lastday, single, twin, user) 28 : setSingleStatus(day, index, status) 29 : setTwinStatus(day, index, status) 33 : getResvRecordDB() 34 : getInstance() 36 : ResvRecordDB=message(_):resvRecordDB

17 : createID() 35 : ResvRecordDB=return(_):resvRecordDB 37 : addDatabase(resvRecordBean, resvRecordDB)

15 : removeDatabase(cancelBean, cancelDB)

1 : getCancelDB() 4 : CancelDB=return(_):cancelDB

CancelRecordServletCancelControlRoomControlCancelDBRoomStatusDataRoomVacancyData ResvRecordBean

ResvRecordDB ユーザ

HttpSessionResvRecordControl break loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

7.予約記録へ変換し通知(ル)sd

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1 : request()2 : new ResvRecordBean() 28 : createID() 29 : getInstance() 30 : ResvRecordDB=return(_):resvRecordDB 31 : writeDatabase(recordID) 32 : setInstance(resvRecordDB) 33 : setAttribute() 34 : setAttribute()

3 : setAllData(firstday, lastday, single, twin, user)4 : getAttribute(oldresvrecordbean) 5 : ResvRecordBean=return(_):resvRecordBean 21 : setSingleStatus(day, roomNo, status) 22 : setTwinStatus(day, romNo, status) 35 : forward(_)

25 : String=message(_):true

12 : consumeRoomsJob(resvRecordBean) 13 : getInstance() 14 : RoomStatusData=return(_):roomStatusData 15 : getInstance() 16 : RoomVacancyData=return(_):roomVacancyData 17 : searchStatus() 18 : String=return(_):true 19 : reduceRoom(fd, ld, single, twin) 20 : changeStatus(fd, ld, single, twin, status, resvRecordBean) 24 : setInstance(roomVacancyData)23 : setInstance(roomStatusData)

6 : checkAvailability(resvRecordBean) 7 : checkInputDay(firstday, lastday) 8 : String=message(_):true 9 : checkInputRooms(single, twin) 10 : String=message(_):true 11 : consumeRooms(resvRecordBean) 26 : String=return(_):true27 : String=message(_):true

ユーザ

CreateRecordServletDateCheckRoomStatusDataRoomVacancyData ResvRecordBean

ResvRecordDBRoomControlHttpSession loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1.宿泊の予約を行な(ル2属関係)sd

loop 1, 30, [firstday < lastday]

1 : request() 4 : changeRoomStatus(firstday, lastday, roomNum, status) 5 : checkInputDay(firstday, lastday) 6 : String=message(_):true 7 : checkInputRoomNum(roomNum) 8 : String=return(_):true

2 : new ChangeRoomStatusBean() 22 : setAttribute("changeroomstatusbean", changeRoomStatusBean)

3 : setAllData(firstday, lastday, roomNum, status) 21 : String=return(_):true 23 : forward(_)

9 : changeRoomStatusJob(fd, ld, roomNo, status) 10 : getInstance() 11 : String=message(_):true 12 : getInstance() 13 : String=message(_):true 14 : getStatusOf() 15 : String=return(_):status 16 : setStatusOf(day, romNo, status) 17 : reduce1/plus1(day, roomNo) 18 : setInstance() 19 : setInstance() 20 : String=message(_):true

ユー ザ

ChangeRoomStatusServlet RoomControl DataCheck RoomStatusData RoomVacancyData ChangeRoomStatusBean

HttpSession loop 1, 30, [firstday < lastday]

4.部屋の状態管理を行なう(ルール2:従属関係)sd

1 : request() 10 : releaseRoom(resvRecordBean) 23 : response(_)

4 : checkInputRecordID(reserveID, user) 5 : return(_)

2 : getInstance() 3 : ResvRecordDB=return(_):resvRecordDB 6 : readRecord(reserveID) 7 : return(_) 8 : removeDatabase(reserveID) 22 : setAttribute("reserverecordbean", resvrecordbean)

9 : setInstance(resvRecordDB) 11 : releaseRoomJob() 12 : getInstance() 13 : RoomStatusData=return(_):roomStatusData 14 : getInstance() 15 : RoomVacancyData=return(_):roomVacancyData 16 : releaseStatus(resvRecordBean) 17 : increaseRoom(fd, ld, single, twin, resvRecordBean) 18 : setInstance(roomStatusData) 19 : setInstance(roomVacancyData) 20 : message(_):trueString 21 : String=message(_):true

ユーザ CancelRecordServlet RoomControl ResvRecordDB RoomStatusData HttpSession DataCheck RoomVacancyData

5.予約のキャンセルを行なう(ルール2:従属関係)sd

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size] 13 : new ResvRecordBean(firstday, lastday, single, twin, user) 31 : createID(ResvRecordBean) 32 : writeDatabase(recordID, resvRecordBean) 33 : setInstance(resvRecordDB)

15 : consumeRooms(ResvRecordBean) 30 : String=return(_):message 35 : message()

34 : setAttribute("resvrecordbean", resvrecordbean)

14 : setAllData(firstday, lastday, single, twin, user) 25 : setSingleStatus(day, index, status) 26 : setTwinStatus(day, index, status)

16 : consumeRoomsJob(resvRecordBean) 17 : getInstance() 18 : RoomVacancyData=return(_):roomVacancyData 19 : getInstance() 20 : RoomVacancyData=return(_):roomVacancyData 21 : searchStatus() 22 : String=message(_):true 23 : reduceRoom(fd, ld, single, twin) 24 : changeStatus(fd, ld, single, twin, status, resvRecordBean) 27 : setInstance(roomStatusData) 28 : setInstance(roomVacancyData) 29 : String=message(_):true

1 : getInstance() 2 : CancelDB=return(_):cancelDB 3 : getAllSize() 4 : Integer=return(_):size 5 : getInstance() 6 : RoomStatusData=return(_):roomStatusData 7 : readRecord(index) 8 : CancelBean=return(_):cancelBean 9 : searchStatus(firstday, lastday, single, twin, status) 10 : String=message(_):true 11 : removeDatabase(cancelBean, cancelDB) 12 : setInstance(cancelDB)

CancelRecordServletRoomControlCancelDBRoomStatusData ResvRecordBean

ResvRecordDB ユーザ

HttpSessionRoomVacancyData loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size]

7.(ルール2属関係)sd

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1 : request() 2 : new ResvRecordBean() 12 : getInstance() 13 : RoomVacancyData=return(_):roomVacancyData 14 : getInstance() 15 : RoomStatusData=return(_):roomStatusData 16 : searchStatus(data3) 17 : String=message(_):true 18 : reduceRoom(data4) 19 : changeStatus(data5) 25 : createID() 26 : getInstance() 27 : return(_) 28 : writeDatabase(recordID) 29 : setInstance(resvRecordDB) 30 : setAttribute("resvrecordbean", resvRecordBean) 31 : setAttribute("oldresvrecordbean", resvRecordBean)

3 : setAllData(firstday, lastday, single, twin, user)4 : getAttribute(oldresvrecordbean) 5 : ResvRecordBean=return(_):resvRecordBean 22 : setInstance(roomVacancyData) 23 : setInstance(roomStatusData)

20 : setSingleStatus(day, roomNo, status) 21 : setTwinStatus(day, romNo, status) 32 : forward(_)

6 : checkAvailability(data1, data2, data3, data4, data5)

7 : checkInputDay(data1) 8 : String=message(_):true 9 : checkInputRooms(data2) 10 : String=message(_):true 11 : consumeRooms(data3, data4, data5) 24 : String=message(_):true

ユーザ

CreateRecordServletDateCheckRoomStatusDataRoomVacancyData ResvRecordBean

ResvRecordDBRoomControlHttpSession

data1 has String:2(firstday, lastday) data2 has String:2(single, twin) data3 has Integer:4(fd, ld, single, twin), String:1(status) data4 has Integer:4(fd, ld, single, twin) data5 has Integer:4(fd, ld, single, twin), String:1(status), resvrecordbean:1

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

1.宿泊の予約を行な(ル3)sd

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size] 13 : new ResvRecordBean(firstday, lastday, single, twin, user) 16 : getInstance() 17 : RoomVacancyData=return(_):roomVacancyData 18 : getInstance() 19 : RoomStatusData=return(_):roomStatusData 20 : searchStatus(dataB) 21 : return(_) 23 : changeStatus(dataC)22 : reduceRoom(dataA) 27 : setInstance(roomStatus)

26 : setInstance(roomVacancy) 29 : createID(ResvRecordBean) 30 : writeRecord(recordID, resvRecordBean) 31 : setInstance(resvRecordDB)

15 : consumeRooms(dataA, dataB, dataC) 28 : String=return(_):message 33 : message()

32 : setAttribute("resvrecordbean", resvrecordbean)

14 : setAllData(firstday, lastday, single, twin, user) 24 : setSingleStatus(day, index, status) 25 : setTwinStatus(day, index, status)

1 : getInstance() 2 : CancelDB=return(_):cancelDB 3 : getAllSize() 4 : Integer=return(_):size 5 : getInstance() 6 : RoomStatusData=return(_):roomStatusData 7 : readRecord(index) 8 : CancelBean=return(_):cancelBean 9 : searchStatus(firstday, lastday, single, twin, status) 10 : String=message(_):true 11 : removeDatabase(index) 12 : setInstance(CancelDB)

CancelRecordServletRoomControlCancelDBRoomStatusDataRoomVacancyData ResvRecordBean

ResvRecordDB ユーザ

HttpSession

dataA = Integer:4 dataB = dataA + String:1 dataC = dataB + resvrecordbean:1

loop loop 1, [firstday < lastday]

1, [i < singleRoom] loop loop 1, [firstday < lastday]

1, [i < twinRoom]

loop 0, [index < size]

7.予約記録へ変換し通知(ル)sd

関連したドキュメント