Thiết kế chi tiết

Một phần của tài liệu Nghiên cứu kỹ thuật phân tích khả năng kiểm thử phần mềm và mở rộng tính năng của công cụ SATAN, thử nghiệm ứng dụng trong môi trường Scicos và Simulink (Trang 91)

Để chuyển mô hình SIMULINK/SCICOS sang định dạng MacDot trước hết, chúng ta sẽ xem xét một sốđiểm tương quan giữa chúng.

Mối tương quan giữa môi trường SIMULINK/SCICOS và SATAN

Mô hình SCICOS được xây dựng dưới dạng là một mạng lưới các khối được liên kết với nhau. Một khối (toán tử) SIMULINK/SCICOS tương ứng với một kiểu SATAN. Chúng ta xem các đầu vào và đầu ra của khối SIMULINK/SCICOS như các đầu vào và đầu ra của kiểu SATAN. Lời gọi hàm trong khối SIMULINK/SCICOS tương ứng với việc sử dụng một kiểu con trong kiểu SATAN. Bảng 4.1 mô tả sự tương quan giữa SIMULINK/SCICOS và SATAN.

Bảng 4.1. Sự tương quan giữa SIMULINK/SCICOS và SATAN

SIMULINK/SCICOS SATAN

Khối SIMULINK/SCICOS Kiểu SATAN Tham số đầu vào và đầu ra của

81

Lời gọi hàm trong khối Sử dụng thành phần con trong khối

Tuy nhiên, có một số khác biệt giữa SIMULINK/SCICOS và SATAN: − Trong SIMULINK/SCICOS phân biệt chữ hoa và chữ thường,

trong khi SATAN lại không phân biệt.

− Số lượng tham số đầu vào của một khối SIMULINK/SCICOS có thể tùy biến, tuy nhiên trong công cụ SATAN thì ngược lại, số lượng đầu vào và đầu ra của một khối phải cốđịnh trước.

Tạo đầu vào cho SATAN từ mô hình SIMULINK/SCICOS

Để tạo các đầu vào cho công cụ SATAN, trước hết chúng ta phân tích mô hình SIMULINK/SCICOS để tìm ra các dữ liệu cần thiết như:

− Các khối được sử dụng,

− Kiểu, hằng số và biến toàn cục.

Sau đó, chúng ta xây dựng thành phần mạng và định nghĩa kiểu SATAN cho mỗi mô-đun.

Đổi tên trong công cụ SATAN

Tên của các thành phần SIMULINK/SCICOS phân biệt chữ in hoa và chữ in thường, trong khi tên của các thành phần trong SATAN được đặt hoàn toàn bằng chữ in hoa. Vì vậy, chúng tôi đưa ra một số quy tắc đặt tên như sau: − Tên của các thành phần, chân, kiểu, khối, hằng số được viết bằng

chữ in hoa.

− Tên của hằng số bắt đầu bởi “CST_”.

82

− Tên của tham sốđầu vào và đầu ra bắt đầu bởi “BY”. − Tên của biến cục bộ bắt đầu bởi “LOC_”.

Tuy nhiên, vẫn có thể xuất hiện trường hợp hai đối tượng SIMULINK/SCICOS sẽ có cùng tên khi mô tả trong SATAN. Chẳng hạn, ba biến cục bộ trong SIMULINK/SCICOS có tên lần lượt là NumOcc, NUMOcc và NumOCC sẽ có cùng tên khi mô tả trong SATAN. Để giải quyết vấn đề này, khi tạo ra một tên trong SATAN tương ứng với một tên trong SIMULINK/SCICOS, chúng ta kiểm tra xem tên này đã tồn tại trong mô tả MacDot chưa. Nếu đã tồn tại, chúng ta thêm vào hậu tố_n” (n được tính từ 1).

Khối SIMULINK/SCICOS tương ứng trong SATAN

Một khối trong SIMULINK/SCICOS tương ứng với một khối cùng tên trong SATAN. Thành phần mạng của mô-đun n được mô tả trong tệp tin

n.cssf. Kiểu SATAN của mô đun n được mô tả trong tệp tin n.sat. ITG của mô-đun nđược lưu trữ trong tệp tin n.pro.

Tham số đầu vào, đầu ra của khối SIMULINK/SCICOS tương ứng trong SATAN

Các tham sốđầu vào và đầu ra của khối SIMULINK/SCICOS tương ứng với các tham sốđầu vào và đầu ra của khối SATAN. Chẳng hạn:

Trong SIMULINK:

function [result] = myfun(x, y)

Trong SCICOS: (adsbygoogle = window.adsbygoogle || []).push({});

function result = myfun(x, y)

endfunction

Trong SATAN:

83

INPUTS: PAR_X, PAR_Y;

OUTPUTS: PAR_RESULT;

Đặt tên cho khối trong SATAN

Để đặt tên một khối trong SATAN, chúng ta lấy tên của khối tương ứng trong SIMULINK/SCICOS, sau đó viết dưới dạng in hoa và thêm vào hậu tố “_n”. Chẳng hạn:

Trong SIMULINK:

function result[out] = Max(x , y)

if x > y then out = x; else out = y; end end Trong SCICOS:

function result[out] = Max(x , y)

if x > y then out = x; else out = y; end endfunction Trong SATAN:

Khối trên sử dụng ba phép toán “=”, “>”, “if then else”. Các kiểu SATAN tương ứng là COMP_EGAL, COMP_SUP, SWITCH. Định nghĩa kiểu:

TYPES: COMP_EGAL, COMP_SUP, SWITCH;

Khai báo sử dụng:

COMP_EGAL: COMP_EGAL _1; COMP_GREAT: COMP_SUP_1; SWITCH _I: SWITCH_1;

Chúng tôi trình bày chi tiết một số mô-đun con trong thuật toán tổng thể trong Hình 4.2, như khởi động và xác định các thành phần của mô hình,

84

chuyển mô hình sang định dạng MacDot, chuyển các khối/liên kết sang định dạng MacDot.

Khởi động và xác định các thành phần của mô hình (cos_mdl_2_dot)

Hình 4.3. Thuật toán cos_mdl_2_dot

Chuyển mô hình sang định dạng MacDot (system2dot)

Hình 4.4. Thuật toán system2dot

Algorithm system2dot

Input: Các thành phần của mô hình Simulink/Scicos

Ouput: ðịnh dạng MacDot

Begin

Gọi hàm blocks_to_dot_nodes ñể chuyển các khối

sang ñịnh dạng MACDOT. (adsbygoogle = window.adsbygoogle || []).push({});

Gọi hàm lines_to_dot_edges ñể chuyển các liên kết sang ñịnh dạng MACDOT.

Duyệt qua các hệ thống con và gọi system2dot ñối với mỗi hệ thống con ñể chuyển chúng sang ñịnh dang MACDOT.

End

Algorithm cos_mdl_2_dot

Input: Mô hình Simulink/Scicos

Ouput: ðịnh dạng MacDot

Begin

Tạo thư mục lưu trữ các tệp tin .dot. Các tệp tin

này ñược tạo ra từ các mô hình SIMULINK/SCICOS.

Tạo tệp tin toplevel lưu trữ tên của mô hình gốc. Gọi hàm system2dot ñể chuyển ñổi các khối, liên kết và hệ thống con của mô hình sang ñịnh dạng MACDOT.

85

Chuyển các khối sang định dạng MacDot (blocks_to_dot_nodes)

Hình 4.5. Thuật toán blocks_to_dot_nodes

Chuyển các liên kết sang định dạng MacDot

(lines_to_dot_egdes)

Hình 4.6. Thuật toán lines_to_dot_egdes

Algorithm blocks_to_dot_nodes

Input: Các khối của mô hình Simulink/Scicos

Ouput: Các ñỉnh trong ñịnh dạng MacDot

Begin

Duyệt các khối có kiểu là Inport, EnablePort,

OutPort lấy các tham số và chuyển vào danh sách

blocks_list.

Duyệt các khối trong blocks_list, ñối với mỗi khối thực hiện:

- Dùng hàm get_param ñể lấy tên của khối, tên của hệ thống cha chứa khối, các cổng vào và cổng ra, các khối tham chiếu, các kiểu của khối.

- Ghi các thông tin trên vào tệp tin .dot.

End

Algorithm lines_to_dot_egdes

Input: Các liên kết của mô hình Simulink/Scicos

Ouput: Các cung trong ñịnh dạng MacDot (adsbygoogle = window.adsbygoogle || []).push({});

Begin

Duyệt mỗi liên kết và lấy các tham số

SrcPortHandle, SrcBlockHandle, DstPortHandle, DstBlockHandle.

Chuyển liên kết sang ñịnh dạng MacDot.

86

Một phần của tài liệu Nghiên cứu kỹ thuật phân tích khả năng kiểm thử phần mềm và mở rộng tính năng của công cụ SATAN, thử nghiệm ứng dụng trong môi trường Scicos và Simulink (Trang 91)