AVC System Case Study Berikut ini adalah gambar konfigurasi sistem AVC. Segmen gambar A1, A2, dan A3 akan digunakan sebagai rujukan untuk masing-masing translasi BTN.
A3
A2
A1
Translasi yang akan dilakukan mencakup kendaraan masuk GTO, hingga dihasilkan pesan yang menyatakan golongan kendaraan tersebut. Translasi belum termasuk kejadian saat kendaraan mendapatkan kartu dan meninggalkan GTO.
1. Translasi untuk gambar konfigurasi A1. (Requirement Behavior Tree A1) A1
A1
A1
A1
A1
A1
A1
A1
A1
A1
^ Treadle Axle Counting ??pressed??
Node B Requirement yang belum diekspresikan dalam A1:
A1
OBS NOT: detected]
USS [NOT: scan]
Treadle Axle Counting [NOT: pressed]
VEHICLE [approaching]
LOOP COIL ??detected??
A1 OBS ??detected??
A1
AVC [vhc := 1]
A1
A1
A1
USS [scan]
AVC [vhc_axle += 1]
=
Treadle Axle Counting ??pressed??
Apakah perlu ditampilkan node yang mengeset sebuah variable (misalnya vhc_bus), yang menyimpan informasi apakah kendaraan merupakan bus atau bukan?
AVC [vhc_axle += 1]
Node A
A1
Node untuk mereset vhc_axle menjadi nol. Node untuk men-set variable vhc_bus. Node yang mendeskripsikan state Treadle Axle Counting [not pressed] di antara Node A dan Node B.
LOOP COIL [NOT: detected]
LOOP COIL [NOT: detected]
^
OBS [NOT: detected]
Variable vhc_bus ini nantinya diakses di A3 (algoritma penentuan golongan kendaraan) di halaman 4.
USS [NOT: scan]
Treadle Axle Counting [NOT: pressed]
Keterangan: a. OBS [straight] menyatakan sinyal OBS tidak menabrak kendaraan. b. OBS [clashed] menyatakan sinyal OBS menabrak kendaraan.
2. Translasi untuk gambar konfigurasi A2. (Requirement Behavior Tree A2)
A2
Treadle Double Wheel ?NOT: pressed?
A2
A2
A2
Treadle Double Wheel ?both-pressed?
AVC [vhc_dbl := 1]
AVC ?vhc_axle > 1?
A2
A2
Treadle Double Wheel ?single-pressed?
AVC [vhc_dbl := 0]
Di sini tidak dibuat reversion. Node untuk reversion baru akan dibuat pada saat integration defect Keterangan: detection a. Treadle Double Wheel ?both-pressed? menyatakan kedua treadle ditekan secara bersamaan. b. Treadle Double Wheel ?single-pressed? menyatakan pada saat yang sama, hanya satu treadle yang ditekan.
3. Translasi untuk gambar konfigurasi A3. (Requirement Behavior Tree A3)
A1
A3
A3
A3
AVC ?vhc_dbl = 0?
A3
A3
AVC
A3
AVC ?vhc_axle = 2?
A3 AVC ?vhc_dbl = 1?
A3 AVC ?vhc_bus = 1?
AVC
A3
=
A3
AVC ?vhc_bus = 0?
AVC
AVC ?vhc_axle = 3?
AVC
OBS ??detected??
A3
A3
AVC ?vhc_axle = 4?
AVC
A3
A3
AVC ?vhc_axle >= 5?
AVC
4. Integrasi BT A1, A2, dan A3, menghasilkan DBT (Design Behavior Tree) AVC. A1
A1
A1
A1
A1
A1
A1
A1
A1
USS [detected]
AVC [vhc_axle += 1]
=
A1
A1
A1
^ Treadle Axle Counting ??pressed??
A1
LOOP COIL [NOT: detected]
OBS NOT: detected]
USS [NOT: scan]
Treadle Axle Counting [NOT: pressed]
VEHICLE [approaching]
LOOP COIL ??detected??
OBS ??detected??
A3
AVC [vhc := 1]
Treadle Axle Counting ??pressed??
A3
A3
AVC ?vhc_dbl = 0?
A2
Treadle Double Wheel ?NOT: pressed? A1
A2
A2
A2
Treadle Double Wheel ?both-pressed?
AVC [vhc_dbl := 1]
A2
A2
Treadle Double Wheel ?single-pressed?
AVC [vhc_dbl := 0]
A1
A3
LOOP COIL [NOT: detected]
A3 AVC ?vhc_bus = 1?
AVC ?vhc_bus = 0?
^
OBS [NOT: detected]
AVC ?vhc_axle > 1? A1
AVC ?vhc_dbl = 1?
A3
AVC [vhc_axle += 1] A3
A1
AVC ?vhc_axle = 2?
USS [NOT: scan]
Treadle Axle Counting [NOT: pressed]
A3
AVC
A3
AVC
=
A3
AVC
AVC ?vhc_axle = 3?
AVC
A3
A3
AVC ?vhc_axle = 4?
AVC
A3
A3
AVC ?vhc_axle >= 5?
AVC
//Section 5 & 6 (halaman 6-9) belum di-update. 5. Component Interaction Network (CIN) DBT merupakan problem domain view yang menampilkan semua state dan flow-nya. Dalam DBT, sebuah komponen mungkin muncul beberapa kali dengan state yang berbeda. DBT (Design Behavior Tree) lalu diubah menjadi CIN (Component Interaction Network). CIN (Component Interaction Network): sebuah component-based design, yang merupakan bagian dari solution domain. Dalam CIN, satu buah komponen hanya muncul satu kali. Berikut ini adalah CIN yang dihasilkan dari DBT AVC system di atas.
LOOP COIL
OBS
USS
TREADLE AXLE COUNTING
VEHICLE
TREADLE DOUBLE WHEEL
AVC
6. Component Behavior Tree (CBT) CBT merupakan hasil dari proses component behavior projection. Tiap CBT akan fokus pada sebuah komponen. CBT didapatkan dari DBT dengan menelusuri flow dari komponen tertentu saja. a. CBT OBS
A1
A1
A1
OBS [not detected]
OBS ??detected??
OBS [not detected]
^
b. CBT Loop Coil A1
A1
A1
LOOP COIL [not detected]
LOOP COIL ??detected??
LOOP COIL [not detected]
c. CBT Treadle Axle Counting
^
A1
A1
Treadle Axle Counting [not pressed]
Treadle Axle Counting ??pressed??
A1
^ Treadle Axle Counting ??pressed??
A1
^ Treadle Axle Counting [not pressed]
d. CBT USS A1
A1
A1
USS [not scan]
USS [scan]
USS [not scan]
^
e. CBT Treadle Double Wheel A2
A2
f.
Treadle Double Wheel ?not-pressed?
Treadle Double Wheel ?both-pressed?
CBT AVC Controller
A2
Treadle Double Wheel ?single-pressed?
A1
A1
A2 AVC [vhc := 1; vhc_bus]
A2
AVC [vhc_axle += 1]
A3
A3
AVC ?vhc_dbl = 0?
A3
A3
AVC
A3
AVC ?vhc_bus = 1?
AVC ?vhc_axle = 2?
AVC [vhc_dbl := 1]
A3
A3 AVC ?vhc_dbl = 1?
A3
A3
AVC ?vhc_bus = 0?
AVC
AVC ?vhc_axle > 1?
A2
AVC ?vhc_axle = 3?
AVC
AVC [vhc_dbl := 0]
A3
A3
AVC ?vhc_axle = 4?
AVC
A3
A3
AVC ?vhc_axle >= 5?
AVC