C ông cụ sinh mã kiểm chứng PVG
4.3 Giao thức song song được biểu diễn bằng UML
Trong mô hình Event-B các sự kiện sẽ được thực hiện song song nếu điều kiện của nó đồng thời được thỏa mãn. Do đó, một hệ thống đa thành phần sẽ đồng thuận khi mỗi sự kiện trong giao thức hội tụ (dừng)1. Tương tự như giao thức tuần tự, chúng tôi cũng bổ sung vào máy kết hợp một sự kiện để nhận kết quả trả về của giao thức khi nó. Quá trình xây dựng máy kết hợp M trong trường hợp này là sự
1. một sự kiện là hội tụ nếu nó trả về kết quả sau một số hữu hạn lần thực hiện các hành động
kết hợp giữa giao thức tuần tự và song song. Phần tuần tự được thực hiện tương tự như đã trình bày ở trên, phần song song được xây dựng theo nguyên lý sau.
1. Từ sự kiện tuần tự được thực hiện trước đó, kích hoạt điều kiện của tất cả các sự kiện song song để cho các sự kiện này được thực hiện tại cùng một thời điểm,
2. Với mỗi sự kiện eei được thực hiện song song. Do các sự kiện này là hội tụ nên chúng tôi bổ sung một sự kiện eeis để lấy kết quả trả về,
3. Bổ sung một sự kiệneeP để nhận kết quả cuối cùng của tiến trình song song, sự kiện này sẽ được kích hoạt bởi sự kiện eeis,
4. Sự kiện nhận kết quả eeP có nhiệm vụ kích hoạt sự kiện tuần tự tiếp theo trong giao thức.
Sự hội tụ của mỗi sự kiện và sự tương tác giữa các sự kiện sẽ được chứng minh tự động bởi công cụ hỗ trợ của Event-B.
4.3.4 Hệ thống đa thành phần thực hiện các phép toántrên tập số nhị phân trên tập số nhị phân
4.3.4.1 Mô tả hệ thống
Gỉa sử một hệ thống đa thành phần với các thành phần thực hiện các phép toán dịch bit BitShift, cộng và nhân hai số nhị phân Sum,MultiDigit. Trong đó phép nhân hai số nhị phân được thực hiện tương tự như phép nhân ở hệ đếm 10. Giả thiết hệ thống đa thành phần được xây dựng với ba phép toán multiplyWithOneDigit
thuộc thành phầnMultiDigit,shiftLeft thuộc thành phầnBitShiftvàaddition
thuộc thành phần Sum. Với phép toán dịch bit BitShiftthì các bit được dịch sang trái hoặc phải. Phép toán dịch tráishiftLeftthì một số bit sẽ được dịch sang trái và tương ứng là các bit 0 được chèn vào bên phải của số nhị phân bị dịch. Ví dụ nếu ta áp dụng phép dịch trái một bit với số 00011011 thì nhận được kết quả là 00110110. Toán tử BitShiftđược đặc tả bằng biểu đồ UML như trong Hình 4.4
This capability makes the shift right a Organisation
<<agent>> BitShift
Calculator Protocol enter−society, exit−society, compute shiftLeft, shiftRight Role <<capability>> shiftLeft Input Output Description binaryNumber, numShift binaryNumber Input Output binaryNumber, numShift binaryNumber Description <<capability>> shiftRight
This capability makes the shift left a
binary number with numShift bits binary number with numShift bits