Bài viết Xây dựng chương trình chuyển đổi một số đối tượng của biểu đồ trình tự sang mạng Petri hàng đợi trình bày cách xây dựng chương trình chuyển đổi tự động một số đối tượng trong biểu đồ trình tự sang mạng Petri hàng đợi. Cách tiếp cận được trình bày trong bài viết có thể được sử dụng để chuyển đổi tự động một biểu đồ trình tự phức hợp thành mạng Petri hàng đợi.
KHOA HỌC & CƠNG NGHỆ XÂY DỰNG CHƯƠNG TRÌNH CHUYỂN ĐỔI MỘT SỐ ĐỐI TƯỢNG CỦA BIỂU ĐỒ TRÌNH TỰ SANG MẠNG PETRI HÀNG ĐỢI BUILDING A PROGRAM TO CONVERT SOME OBJECTS OF SEQUENCE DIAGRAM INTO QUEUEING PETRI NETS Vũ Văn Đốc Khoa Công nghệ thông tin, Trường Đại học Kinh tế - Kỹ thuật Cơng nghiệp Đến Tịa soạn ngày 02/09/2021, chấp nhận đăng ngày 30/09/2021 Tóm tắt: Biểu đồ trình tự trừu tượng hóa mơ hình giao tiếp thực thể, đối tượng lớp khác Nó sử dụng để mơ tả dấu vết thực thi hệ thống cụ thể, thời điểm cụ thể Mạng Petri hàng đợi (Queueing Petri Nets - QPNs) hình thức đồ họa, mức độ trừu tượng thấp hơn, có sẵn kỹ thuật giải pháp dựa mơ hiệu chuyên nghiệp Bài báo trình bày cách xây dựng chương trình chuyển đổi tự động số đối tượng biểu đồ trình tự sang mạng Petri hàng đợi Cách tiếp cận trình bày báo sử dụng để chuyển đổi tự động biểu đồ trình tự phức hợp thành mạng Petri hàng đợi Từ khóa: biểu đồ trình tự, mạng hàng đợi Petri, mơ hình chuyển đổi Abstract: A sequence diagram is an abstraction of the communication model between different entities, objects, or classes It is used to describe an execution trace of a particular system at a particular time Queueing Petri Nets (QPNs) are graphical forms, at a lower level of abstraction, with efficient and professional simulation-based solution techniques available This paper presents how to build a program to automatically convert some objects in the sequence diagram to QPNs Our approach can be used to automatically convert a complex sequence diagram into a QPNs Keywords: sequence diagrams, queueing Petri Nets, model Transformation GIỚI THIỆU Một mạng hàng đợi Petri Net thông thường ngôn ngữ mô hình tốn học cho mơ tả hệ thống Mỗi Queueing Petri Nets (QPNs) bao gồm tập hợp hàng đợi (queueing), vị trí (place), chuyển tiếp (transition) tập hợp cung kết nối (connection) Mỗi hàng đợi có khả định có chiến lược để điều phối yêu cầu truy cập mạng Một place chứa nhiều Color (màu) - khái niệm mở rộng từ thẻ (token) (token Petri Nets) để phân biệt token với có nhiều loại Có ba loại place OrdinaryPlace (o-place) dạng place bình thường, QueueingPlace (q-place) dạng place tích hợp thêm thành phần Queue, color place điều phối truy cập theo chiến lược Queue; SubnetPlace (s-place) dạng place thay cho Queueing Petri Nets, phần tử cho phép QPN có khả phân cấp Điều cho phép dễ dàng trình bày chiến lược lập lịch mang lại lợi ích Mạng xếp hàng vào giới Petri Nets Một Chuyển tiếp TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 KHOA HỌC & CƠNG NGHỆ có nhiều Mode (chế độ) - khái niệm tương tự color dùng để phân biệt cách mà transition thực Có hai loại chuyển tiếp Timed Transition (t-transition) dạng chuyển tiếp có liên quan đến yếu tố thời gian Immediate Transition (i-transition) dạng chuyển tiếp mà thời gian nhân tố ảnh hưởng đến Có hai loại kết nối là, Place Transition Connnection (pt-connection) dùng để kết nối place với transition ngược lại; Incidence Function Connection (if-connection) dùng để kết nối có trọng số color với mode ngược lại Như nói trên, so với loại mạng khác, QPNs giới thiệu loại vị trí mới: q-place Mỗi q-place bao gồm hai thành phần: thành phần hàng đợi cho phép thẻ đặt hàng đợi để chờ thực dịch vụ thành phần depository lưu giữ thẻ hoàn thành dịch vụ chúng hàng đợi Máy chủ xử lý mã thông báo hàng đợi theo chiến lược lập lịch định Thời gian thẻ token chiếm máy chủ xác định thông qua chiến lược phân phối Khi thời gian token kết thúc, token đưa vào kho lưu trữ, sau hoạt động giống Immediate place cho chuyển đổi kết nối Chỉ thẻ token kho lưu trữ coi có sẵn cho hàm tỷ lệ [7] Biểu đồ trình tự (SDs) loại biểu đồ tương tác UML [1] SDs biểu đồ hai chiều trục tung thể thời gian trục hoành thể tương tác Biểu đồ trình tự thường sử dụng để mơ tả luồng thông tin hệ thống thông qua giao tiếp đối tượng Việc chuyển đổi mơ hình từ SDs thành Queueing Petri Nets giúp cho hai mô hình qn với nhau, từ áp dụng mơ vào mơ hình Hàng đợi Petri Nets để đánh giá hiệu phần mềm cách đơn TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 giản Bài báo đưa đóng góp sau: (i) Xác định mơ hình chuyển đổi từ biểu đồ trình tự sang mạng Petri hàng đợi; (ii) Xây dựng chương trình chuyển đổi từ số đối tượng SDs sang mơ hình QPNs NHỮNG NGHIÊN CỨU LIÊN QUAN Một số nghiên cứu gần thảo luận việc chuyển đổi biểu đồ trình tự SDs (mơ hình dựa kịch bản) sang mơ hình mạng Petri Nets (mơ hình dựa trạng thái) Trong [2] tác giả phân tích ưu điểm nhược điểm UML Petri net việc mơ hình hóa phần mềm phức tạp đề xuất quy tắc chuyển đổi từ UML sang mạng Petri Net Trong [6] tác giả đề xuất chuyển đổi mơ hình từ Biểu đồ trình tự sang Petri Nets cách tiếp cận sử dụng Cấu trúc nhãn kiện (LES), phương pháp để dịch Biểu đồ trình tự Petri Nets sang LES Tác giả đưa ứng dụng chuyển đổi mơ hình từ UML sang Petri Nets, đặt tên SD2PN Trong [1], tác giả đưa phương pháp chuyển SDs thành Petri Nets cách hiệu Mặt khác, [3,4] tác giả giới thiệu giải pháp để chuyển đổi tính có liên quan Biểu đồ trình tự UML để mơ hình hóa hệ thống phân tán thành mạng Petri Nets màu tương đương chấp nhận dấu vết thực thi giống (chuỗi kiện) mô hình ban đầu Biểu đồ trình tự UML xây dựng công cụ Papyrus chuyển đổi thành Petri Nets màu thực thi với Cơng cụ CPN Các tác giả định nghĩa mô tả chuyển đổi từ biểu đồ trình tự UML2 sang Petri Nets màu chứng minh tính đắn cú pháp ngữ nghĩa chuyển đổi [4] Họ trình bày cơng cụ chuyển đổi mơ hình dựa kịch với khả phân tích SD2CPN Cuối [7] đưa ánh KHOA HỌC & CƠNG NGHỆ xạ từ mơ hình PCM sang QPN, thực cách chuyển đổi tự động từ mơ hình PCM sang Queueing Petri Nets Theo cách tiếp cận để chuyển đổi mơ hình từ SDs thành Queueing Petri Nets tơi xây dựng chương trình chuyển đổi SD sang QPN Thơng tin chi tiết trình bày Phần Dựa [5], phát triển chuyển đổi cho đối tượng Message như: Create Message, Delete Message, Lost Message, Found Message, Synchronous Call Asynchronous Call BIỂU ĐỒ TRÌNH TỰ VÀ MẠNG PETRI HÀNG ĐỢI Message thông báo xác định loại giao tiếp cụ thể lifeline biểu đồ trình tự Điểm bắt đầu kết thúc message gọi message end Tùy thuộc vào loại hành động sinh loại tin nhắn khác như: lời gọi đồng (Synchronous Call), lời gọi không đồng (Asynchronous Call), thông báo khởi tạo (Create Message), thông báo hủy (Destroy Message), Found Message Lost message Create Message thông báo gửi tới lifeline tạo lifeline đó: 3.1 Biểu đồ trình tự Biểu đồ trình tự (Sequence Diagram - SD) biểu đồ tương tác UML phổ biến, tập trung vào dãy thông điệp trao đổi số bên tham gia [6] Biểu đồ trình tự dùng để xác định trình tự diễn kiện nhóm đối tượng Nó miêu tả chi tiết thông điệp gửi nhận đối tượng đồng thời trọng đến trình tự mặt thời gian gửi nhận thơng điệp Biểu đồ trình tự thể theo hai trục: Delete Message message gửi để kết thúc lifeline khác: Lost Message message mà biết kiện gửi kiện nhận Trục dọc từ xuống thời gian xảy kiện, hay truyền thông điệp, biểu diễn đường thẳng đứng đứt nét đỉnh đến đáy biểu đồ Trục ngang từ trái qua phải dãy đối tượng tham gia vào việc trao đổi thơng điệp với theo chiều ngang, có tác nhân Found message thông báo mà biết kiện nhận nhng kiện gửi Biểu đồ trình tự gồm số đối tượng là: Interaction (Frame), Lifeline, Message, Interaction Fragment… [6] Các đối tượng thơng báo (messages) biểu đồ trình tự: 10 TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 KHOA HỌC & CÔNG NGHỆ Lời gọi đồng (Synchronous Call) thông báo mà lifeline gửi đợi lifeline nhận trả thông báo thực thông báo [6] Để hiểu rõ Queueing Petri Nets ta tìm hiểu ví dụ QPN với năm place (p0, p1, p2, p3, p4), ba transition (t1, t2, t3) mười pt-connection đó: (p3, p4) o-place, (p0, p1) q-place, p2 s-place, (t1, t3) i-transition, t2 t-transition Lời gọi không đồng (Asynchronous Call) thơng báo mà lifeline gửi thực thông báo mà không cần đợi lifeline nhận trả thơng báo Hình Một ví dụ QPN 3.2 Mạng Petri hàng đợi Mạng Petri hàng đợi mơ hình hiệu với sở tốn học mạnh mẽ, hình thành từ số mở rộng mạng Petri (Petri Net) CPN, SPN, GSPN, CGSPN bổ sung thêm tính chất hàng đợi mạng hàng đợi (Queueing Network) Một phương trình đơn giản để thể điều là: QPN = PN + QN thể hình Hình Queueing Petri Nets = PN + QN TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 t1 input-transition place p1, p1 input-place transition t2, t2 outputtransition place p3, p3 output-place transition t3 Transition t1 có hai input-place (p0, p4) output-place (p1) Transition t3 có input-place (p2) ba output- place (p0, p3, p4) Mỗi place hình vẽ có input-transition outputtransition Ngồi ký pháp thơng thường, hình có xuất ký pháp mở rộng Các color x, c, t đặt nằm bên place p0, p3, p4, thể rằng: thời điểm khởi tạo mạng (initial marking hình trạng khởi tạo), place khởi tạo color tương ứng Các place khơng có ký pháp color đặt bên không khởi tạo color thời điểm ban đầu (trong ví dụ p1, p2) Những connection chứa trọng số if-connection: kết nối color với mode ngược lại nói từ trước Một hàm tỷ lệ liên kết với transition, xác định cách thức transition hoạt động Giả sử transition t1 có ba mode mode 1, 11 KHOA HỌC & CÔNG NGHỆ mode mode Hình minh hoạ ví dụ hàm tỷ lệ liên kết với transition t1: Hình Một ví dụ hàm tỷ lệ transition Các color xuất hình vẽ color chứa input-place output-place transition t1, color x place p0 input-place transition t1, color t place p4 input-place transition t1 color x place p1 output-place transition t1 Các ifconnection nối color mode với chứa trọng số mặc định không biểu diễn trọng số khác Trọng số ifconnection nối color p0.x với mode if-connection nối color p4.t với mode 2, trọng số if-connection lại Một transition trạng thái enabled (sẵn sàng) có mode mà trọng số if-connection nối tới mode từ color input- place transition nhỏ số lượng color tương ứng mà inputplace chứa [3] Giả sử place p0 chứa hai color x, place p4 chứa color t Khi đó, transition trạng thái enabled, mode mode thoả mãn điều kiện Mode khơng thoả mãn place p4 chứa color t if- connection nối p4.t tới mode lại có trọng số > Một transition trạng thái enabled gọi e-transition Một e-transition đốt cháy (fire / kích hoạt) mode thoả mãn ràng 12 buộc để transition trạng thái enabled Khi đốt cháy mode m, transition hủy số lượng color input-place liên quan đến mode m trọng số if-connection nối color place với mode m, đồng thời tạo lượng color cho output-place liên quan đến mode m trọng số if-connection nối mode m với color place [3] Nếu transition t1 đốt cháy mode color x place p0 bị huỷ, color t place p4 bị hủy, đồng thời color x khác thêm vào place p1 Trong trường hợp transition t1 đốt cháy mode 1, hai color x place p0 bị huỷ, khơng có color t place p4 bị hủy có color x khác thêm vào place p1 Tại thời điểm, e-transition không đốt cháy nhiều hai mode khơng có hai e-transition đốt cháy mode Thứ tự đốt cháy transition phụ thuộc vào loại transition Các i-transition ưu tiên đốt cháy trước so với t-transition Trên hình số 2, p0 q-place, chất phần tử hình thành cách đặt queue (trong QN) vào o-place (trong PN) Mỗi q-place gồm hai thành phần: queue depository Thành phần queue cho phép điều phối color chờ thực dịch vụ Thành phần depository lưu giữ color hoàn thành dịch vụ thành phần queue Đồng thời hình số có phần tử p2 S-place có khả chứa QPN có o-place chuyên dụng input, output actual population Trong QPN này, có s-place khác, q trình phân cấp không bị hạn chế CHUYỂN ĐỔI SD2QPN 4.1 Tổng quan Để xây dựng chuyển đổi SD2QPN, thiết kế TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 KHOA HỌC & CÔNG NGHỆ đối tượng vbieeur đồ trình tự cơng cụ Visual Paradigm 15.0, sau sử dụng ngơn ngữ lập trình Java để chuyển đổi file XML Visual paradigm 15.0 thành file qpe chạy công cụ mô QPME 4.2 Chuyển đổi đối tượng a Cấu trúc chương trình chuyển đổi Trong chương trình chuyển đổi, xây dựng gói (package): models chứa gói SD (bao gồm lớp biểu diễn đối tượng biểu đồ trình tự) gói qpn (bao gồm lớp biểu diễn đối tượng QPN) Ultilities bao gồm lớp đọc file đầu vào, chuyển đổi chúng sang Queueing Petri Nets Lớp Project.java để khởi tạo chương trình b Kết chuyển đổi Hình Mơ hình chuyển đổi từ biểu đồ trình tự sang mạng petri hàng đợi Tên đối tượng Biểu đồ trình tự Sau áp dụng chương trình vào việc chuyển đổi số đối tượng biểu đồ trình tự thu số kết sau: Kết chuyển đổi dạng QPN Create Message Destroy Message Lost Message TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 13 KHOA HỌC & CÔNG NGHỆ Tên đối tượng Biểu đồ trình tự Kết chuyển đổi dạng QPN Found message Asynchronous Call Synchronous Call Hình Mơ hình chuyển đổi từ biểu đồ trình tự sang mạng petri hàng đợi KẾT LUẬN Trong báo trình bày đặc tính biểu đồ trình tự mơ hình mạng Petri hàng đợi Đồng thời trình bày cách triển khai phần mềm chuyển đổi SD2QPN cho phép chuyển đổi từ tệp XML biểu thị số đối tượng biểu đồ trình tự sang mơ hình Queueing Petri Nets Kết chuyển đổi trình bày hình Các QPNs thu từ việc sử dụng chương trình SD2QPN chuyển đổi số đối tượng SDs Create Message, Destroy Message, Lost Message, Found message, Asynchronous Call Synchronous Call hoàn toàn phù hợp với lý thuyết nêu [5] Bằng cách sử dụng chương trình chuyển đổi này, QPNs thu được sử dụng để dự đoán hiệu suất phần mềm Trong tương lai, tác giả nghiên cứu thêm biểu đồ trình tự khác, tìm cách tiếp cận để chuyển đổi biểu đồ trình tự phức tạp thành Queueing Petri Nets nhằm hỗ trợ đánh giá hiệu suất phần mềm tốt TÀI LIỆU THAM KHẢO [1] Tony Spiteri Staines: Transforming UML Sequence Diagrams into Petri Nets Journal of Communication and Computer 10, pp 72-81, 2013 [2] Chun Jian Wang, Hong Jun Fan and Shuang Pan: Research on Mapping UML to Petri-Net in System Modeling In MATEC Web of Conferences 44, 02038, 2016 14 TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 KHOA HỌC & CÔNG NGHỆ [3] Joao António Custódio Soares, Bruno Lima and Joao Pascoal Faria: Automatic Model Transformation from UML Sequence Diagrams to Coloured Petri Nets In: 6th International Conference on Model-Driven Engineering and Software Development MODELSWARD, 2018 [4] Dulani A Meedeniya: Correct model-to-model transformation for formal verification A Thesis Submitted for the Degree of PhD at the University of St Andrews, 2013 https://research-repository.st-andrews.ac.uk/handle/10023/3691 [5] Vu Van Doc, Huynh Quyet Thang, Nguyen Trong Bach: Formal Transformation from UML Sequence Diagrams to Queueing Petri Nets Series: Frontiers in Artificial Intelligence and Applications Volume 318: Advancing Technology Industrialization Through Intelligent Software Methodologies, Tools and Techniques Pages: 588 601, 2019 [6] Mohamed Ariff Ameedeen: A model driven approach to analysis and synthesis of sequence diagrams A thesis submitted to The University of Birmingham for the degree of Doctor of Philosophy, 2011 http://etheses.bham.ac.uk/3282/ [7] Philipp Meier, Samuel Kounev, Heiko Koziolek: Automated Transformation of Component-based Software Architecture Models to Queueing Petri Nets In: IEEE 19th Annual Interna-tional Symposium, pp 339-348, 2011 Thông tin liên hệ: Vũ Văn Đốc Điện thoại : 0912648561 - Email: vvdoc@uneti.edu.vn Khoa Công nghệ thông tin, Trường đại học Kinh tế - Kỹ thuật Công nghiệp TẠP CHÍ KHOA HỌC & CƠNG NGHỆ SỐ 33 - 2022 15 ... tạo chương trình b Kết chuyển đổi Hình Mơ hình chuyển đổi từ biểu đồ trình tự sang mạng petri hàng đợi Tên đối tượng Biểu đồ trình tự Sau áp dụng chương trình vào việc chuyển đổi số đối tượng biểu. .. mạng Petri hàng đợi; (ii) Xây dựng chương trình chuyển đổi từ số đối tượng SDs sang mơ hình QPNs NHỮNG NGHIÊN CỨU LIÊN QUAN Một số nghiên cứu gần thảo luận việc chuyển đổi biểu đồ trình tự SDs... tính biểu đồ trình tự mơ hình mạng Petri hàng đợi Đồng thời trình bày cách triển khai phần mềm chuyển đổi SD2QPN cho phép chuyển đổi từ tệp XML biểu thị số đối tượng biểu đồ trình tự sang mơ hình