Nghiên cứu kỹ thuật chuyển đổi biểu đồ hoạt động thành queueing petri nets ứng dụng trong đánh giá hiệu năng phần mềm Nghiên cứu kỹ thuật chuyển đổi biểu đồ hoạt động thành queueing petri nets ứng dụng trong đánh giá hiệu năng phần mềm luận văn tốt nghiệp thạc sĩ
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN THANH LOAN NGHIÊN CỨU KỸ THUẬT CHUYỂN ĐỔI BIỂU ĐỒ HOẠT ĐỘNG THÀNH QUEUEING PETRI NETS ỨNG DỤNG TRONG ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN THANH LOAN NGHIÊN CỨU KỸ THUẬT CHUYỂN ĐỔI BIỂU ĐỒ HOẠT ĐỘNG THÀNH QUEUEING PETRI NETS ỨNG DỤNG TRONG ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM Chuyên ngành Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS HUỲNH QUYẾT THẮNG HÀ NỘI - 2019 LỜI CAM ĐOAN Tôi tên là: Nguyễn Thanh Loan Sinh ngày: 04 tháng 12 năm 1986 – Tại Hà Nội Quê quán: Hà Nội Hiện công tác tại: Công ty cổ phần công nghệ Teko Việt Nam Là học viên cao học ngành Công nghệ thơng tin khóa 2016B Trường Đại học Bách Khoa Hà Nội Cam đoan đề tài: “Nghiên cứu kỹ thuật chuyển đổi biểu đồ hoạt động thành Queueing Petri Nets ứng dụng đánh giá hiệu phần” công trình nghiên cứu thân tơi hướng dẫn PGS.TS Huỳnh Quyết Thắng Các số liệu, kết nghiên cứu luận văn trung thực, rõ ràng Hà Nội, ngày 21 tháng 10 năm 2019 Học viên thực nghiên cứu Nguyễn Thanh Loan i LỜI CẢM ƠN Để hoàn thành luận văn này, trước hết xin chân thành cảm ơn PGS TS Huỳnh Quyết Thắng - người trực tiếp hướng dẫn, cung cấp tài liệu có nhiều ý kiến đóng góp cho luận văn Tôi xin chân thành cảm ơn thầy cô giáo, cán bộ… Đại học Bách khoa Hà Nội tận tình giảng dạy, giúp đỡ tơi q trình thực luận văn suốt khóa học Sinh viên thực Ký ghi rõ họ tên ii MỤC LỤC MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ KỸ THUẬT MƠ HÌNH HÓA ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM 1.1 Định nghĩa Hiệu phần mềm 1.2 Đánh giá hiệu phần mềm 1.3 Một số kỹ thuật mơ hình hóa đánh giá hiệu phần mềm Kỹ thuật mơ hình hóa QN Khái quát QN Ưu điểm nhược điểm QN Một số nghiên cứu liên quan QN Kỹ thuật mơ hình hóa PN Khái quát PN Ưu điểm nhược điểm PN Một số nghiên cứu liên quan PN 10 1.4 Kết luận chương 11 CHƯƠNG MƠ HÌNH HIỆU NĂNG QUEUEING PETRI NETS 12 2.1 Giới thiệu 12 2.2 Mô hình QPN 13 Metamodel 14 Định nghĩa hình thức 14 2.3 QPN phân cấp 16 2.4 Các nguyên tắc khởi hành 17 2.5 Ví dụ mơ hình QPN 18 2.6 Môi trường mô hình QPN 20 Bộ chỉnh sửa QPN (QPE) 20 Bộ mô QPN (SimQPN) 23 Hỗ trợ mô hình 24 Dữ liệu đầu 24 Phân tích trạng thái ổn định 25 Xử lý trực quan hóa kết 26 2.7 Kết luận chương 26 CHƯƠNG XÂY DỰNG BIẾN ĐỔI BIỂU ĐỒ HOẠT ĐỘNG THÀNH QUEUEING PETRI NETS VÀ THỬ NGHIỆM 28 3.1 Biểu đồ hoạt động (Activity Diagram) 28 Biểu đồ hoạt động 28 Khái niệm Biểu đồ hoạt động 28 iii Metamodel 28 Ký pháp ngữ nghĩa 29 Định nghĩa hình thức 32 3.2 Xây dựng mơ hình biến đổi biểu đồ hoạt động thành QPN 33 Sơ đồ khối mô hình biến đổi 33 Các ràng buộc Bộ chuyển đổi AD2QPN 34 Tập luật Bộ chuyển đổi AD2QPN 35 Kết thực nghiệm tập luật 39 Định nghĩa hình thức cho biến đổi AD2QPN 44 Cơ sở lý thuyết tập luật 46 3.3 Thử nghiệm mơ hình biến đổi biểu đồ hoạt động thành QPN 46 Giải pháp công cụ xây dựng chuyển đổi 46 Một số thông số đo hiệu hệ thống 47 Kịch thiết kế phần mềm 48 Kịch thử nghiệm 49 3.4 Kết luận chương 52 KẾT LUẬN VÀ KHUYẾN NGHỊ 53 TÀI LIỆU THAM KHẢO 55 iv DANH MỤC HÌNH VẼ Hình 1.1 Các giai đoạn mơ hình hóa theo hướng hiệu quy trình đánh giá hiệu bước kiến trúc phần mềm Hình 1.2 Mơ hình QN XMLTranslator Hình 1.3 Mơ hình PN XMLTranslator Hình 2.1 Một place hàng đợi ký hiệu 13 Hình 2.2 Metamodel QPN 14 Hình 2.3 Một place mạng ký hiệu 17 Hình 2.4 Mơ hình QPN hệ thống Java EE [9] 18 Hình 2.5 Cửa sổ QPE 23 Hình 2.6 Bộ chỉnh sửa hàm tỷ lệ QPE 23 Hình 3.1 Metamodel biểu đồ hoạt động 29 Hình 3.2 Một số ký pháp biểu đồ hoạt động 29 Hình 3.3 Một ví dụ biểu đồ hoạt động 31 Hình 3.4 Một ví dụ AD gọi từ CallBehaviorAction AD khác 32 Hình 3.5 Sơ đồ khối mơ hình biến đổi 33 Hình 3.6 Biến đổi ActivityNode AD thành cấu trúc PCT 35 Hình 3.7 Cấu trúc SPCT cho s-place sinh từ CallBehaviorAction 36 Hình 3.8 Biến đổi ControlFlow AD thành pt-connection QPN 37 Hình 3.9 Xử lý Action theo sau Fork Node 39 Hình 3.10: Biến đổi Action CallBehaviorAction 40 Hình 3.11: Biến đổi FJNode 40 Hình 3.12: Biến đổi DMNode 41 Hình 3.13: Biến đổi InitialNode FinalNode (AD chính) 42 Hình 3.14: Biến đổi InitialNode FinalNode (AD chính) 43 Hình 3.15: Biến đổi InitialNode FinalNode 44 Hình 3.16 Giải pháp xây dựng Bộ chuyển đổi AD2QPN 47 Hình 3.17 AD liên kết với hồ sơ hiệu thử nghiệm 48 Hình 3.18 AD gọi từ CallBehaviorAction AD khác thử nghiệm 49 Hình 3.19 QPN tương ứng với AD 49 Hình 3.20 Subnet QPN tương ứng với AD gọi từ CallBehaviorAction 49 Hình 3.21 Cấu hình chạy thử nghiệm phân tích QPN 50 v DANH MỤC BẢNG Bảng 3.1 Công cụ để thực giải pháp xây dựng Bộ chuyển đổi AD2QPN 47 Bảng 3.2 : Kết phân tích hiệu cho số place QPN 50 Bảng 3.3 Kết phân tích hiệu cho Queue QPN 51 Bảng 3.4: Kết phân tích hiệu cho Queue QPN 52 vi DANH MỤC CÁC KÍ HIỆU VIẾT TẮT TT Viết tắt AD SPE UML PN Petri Net Mạng Petri QN Queueing Network Mạng hàng đợi FCFS GSPN LQN UML SPT Đầy đủ Diễn giải Activity Diagram Biểu đồ hoạt động Software Performance Kỹ nghệ hiệu phần Engineering mềm Unified Modeling Language Ngơn ngữ mơ hình hóa thống First Come First Served Generalized Stochastic Petri Net Layered Queueing Network UML Profile for Schedulability, Profile Performance & Time 10 XML eXtensible Markup Language 11 CPN Colored Petri Net 12 LGSPN 13 EQN Extended Queueing Network 14 SPN Stochastic Petri Net 15 CGSPN Labeled Generalized Stochastic PN Colored Generalized Stochastic Petri Net vii Mạng Petri ngẫu nhiên TT Viết tắt 16 QPN 17 Đầy đủ Diễn giải Queueing Petri Net Mạng Petri hàng đợi HQPN Hierarchically-Combined QPN QPN phân cấp 18 LLQPN Low-Level QPN QPN mức thấp 19 HLQPN High-Level QPN QPN mức cao 20 OMG Object Management Group Nhóm quản lý đối tượng 21 PP Performance Profile Hồ sơ hiệu 22 XSLT eXtensible Stylesheet Language Transformation viii số lượng color f khởi tạo cho q-place pInit giá trị (𝑃𝐴population) Theo luật 10, có pt-connection từ transition Final place pInit Trong hàm tỷ lệ transition Init khơng có if-connection nối mode m color f place pInit trường hợp trước Còn với hàm tỷ lệ transition Final, có connection trọng số từ mode m tới color f place pInit theo luật 10 Hình 3.14: Biến đổi InitialNode FinalNode (AD chính) theo ClosedWorkload Đối với InitialNode FinalNode AD gọi từ CBAction Hình 3.15, cấu trúc SPCT tạo theo luật Thực luật để có pt-connection lại Transition Init transition Final có mode trọng số 1.0, giả sử m, theo luật Xét hàm tỷ lệ hai transition Theo luật 6, có if-connection trọng số từ color f place input-place17 tới mode m transition Init, if-connection trọng số khác từ color f place actual-population tới mode m transition Final if-connection trọng số từ color f place pFinal tới mode m transition Final Theo luật 7, có if-connection trọng số từ mode m transition Init tới color f place actual-population, ifconnection trọng số khác từ mode m transition Init tới color f place pY (place pY có mặt cấu trúc PCT sinh từ ActivityNode Y ) if-connection từ mode m transition Final tới color f place output-place Nếu có kết nối place p đến transition t p gọi input-place transition t t gọi output-transition place p 17 43 Hình 3.15: Biến đổi InitialNode FinalNode (AD gọi từ CallBehaviorAction) Định nghĩa hình thức cho biến đổi AD2QPN Định nghĩa hình thức cho biến đổi AD2QPN xây dựng sau [5][6][8] Định nghĩa: Cho Ad = (Na, Ea) ∈ SAD Phân hoạch Na thành tập hợp IN, FN, FJ, DM, AN, CB không giao mà: IN ∪ FN ∪ FJ ∪ DM ∪ AN ∪ CB = Na β phép biến đổi Ad tạo ảnh QPn ∈ SQPN Khi đó: QPn = (P, T, C, I-, I+, M0, W, S) Trong đó: i P = {px|nx ∈ Na} ii T = {tx|nx ∈ Na} iii ∀ px ∈ P: C(px) = {fx} = {f} ∀ tx ∈ T|nx ∈ Na\ DM: C(tx) = {mx} ∀ tx ∈ T|nx ∈ Na\ DM: C(tx) = {mx} iv ∀ (px, tx) ∈ P × T|nx ∈ Na \ (FJ ∪ DM): I-(px, tx)(mx)(fx) = ∀ (px, tx) ∈ P × T|nx ∈ DM, ∀ mxi ∈ C(tx): I-(px, tx)(mx)(fx) = ∀ (px, tx) ∈ P × T|nx ∈ FJ: \ (FJ ∪ DM): 𝐼− (px, tx)(mx)(fx) = ∑𝑛𝑦 ∈𝑁𝑎[𝐸𝑎 (𝑛𝑥 , 𝑛𝑦 )] v ∀ (px, tx) ∈ P × T|ny ∈ Na , nx ∈ Na \ DM, Ea (nx, ny) ≠ 0, 𝐼 + (px, tx)(mxi)(fy) = ∀ (py, tx) ∈ P × T|ny ∈ Na , nx ∈ DM, Ea (nx, ny) ≠ 0: ∃! Mxi∈ C(tx), 44 𝐼 + (px, tx)(mxi)(fy) = If ∃(nx, nz) ∈ IN × FN, ∃!nty ∈ Np| Ep (nx, nty) = 1, stereotype(nty) = ≪ P AclosedLoad ≫, 𝐼+ (px, tz)(mz)(fx) = vi ∀px ∈ P| nx ∈ Na | IN: Mo (px)(fx) = 0, ∀px ∈ P| nx ∈ IN, ∃!nty ∈ Np| Ep (nx, nty) = 1, stereotype(nty) = ≪ P AopenLoad ≫: Mo(px)(fx) = 1, ∀px ∈ P| nx ∈ IN, ∃!nty ∈ Np| Ep (nx, nty) = 1, stereotype(nty) = ≪ P AcloesdLoad ≫: Mo(px)(fx) = taggedvalue(nty,1) vii Q = (𝑄̃1, 𝑄̃2, (q1, …, q|P|)): 𝑄̃1 = {px|nx ∈ 𝐴𝑁 ∪ IN}, 𝑄̃2 = ∅, ∀px ∉ 𝑄̃ 1: qx = ‘null’, ∀px ∈ 𝑄̃ 1|nx ∈ IN: qx = ‘M|M|1|IS’, ∃!nty ∈ Np| Ep (nx, nty) = 1, ∃nz ∈ Nd| nz = taggedvalue (nty, 1), ∃!ntb ∈ Np| Ep (nz, ntb) = 1: qx =‘M|M|1|D’, D = taggedvalue(ntb, 1) ∀px ∈ 𝑄̃ 1|nx ∈ AN, viii ̃ 1, 𝑊 ̃ 2, (w1, …, w|T|)): 𝑊 ̃ = ∅, 𝑊 ̃ = {tx|nx ∈ Na}, W = (𝑊 ̃ 2|nx ∈ Na | DM: wx(mx) = 1.0, ∀tx ∈ 𝑊 ̃ 2|nx ∈ DM, ∀mxi ∈ C(tx), ∃!ny ∈ Na|𝐼+ (py, tx)(mxi)(fy) = ∀tx ∈ 𝑊 Wx(mxi) = Ea(nx,ny) ix S = (s1, …., s|P|): ∀pi ∈ P|ni ∈ Na \ CB: si = ‘null’, ∀pi ∈ P|ni ∈ CB, ni = (𝑁𝑎𝑖 , 𝐸𝑎𝑖 ), 𝐼𝑁 𝑖 ∪ 𝐹𝑁 𝑖 ∪ 𝐹𝐽𝑖 ∪ 𝐷𝑀𝑖 ∪ 𝐴𝑁 𝑖 ∪ 𝐶𝐵𝑖 = 𝑁𝑎𝑖 : si = (𝑃𝑖 , 𝑇 𝑖 , 𝐶 𝑖 , 𝐼 −𝑖 , 𝐼+𝑖 , 𝑀0𝑖 , 𝑄𝑖 , 𝑊 𝑖 , 𝑆 𝑖 ) với lưu ý: 𝑖 𝑖 𝑖 𝑖 𝑖 𝑖 𝑃 𝑖 = {𝑝𝑖𝑛𝑝𝑢𝑡 , 𝑝𝑜𝑢𝑡𝑝𝑢𝑡, 𝑝𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑝1𝑖 , , 𝑝𝑘1 }: 𝑝𝑖𝑛𝑝𝑢𝑡 , 𝑝𝑜𝑢𝑡𝑝𝑢𝑡 𝑖 𝑝𝑎𝑐𝑡𝑢𝑎𝑙 o-place 𝑖 𝑖 𝑖 𝑖 𝑖 𝑇 𝑖 = {𝑡𝑖𝑛𝑝𝑢𝑡 , 𝑡𝑜𝑢𝑡𝑝𝑢𝑡 , 𝑡1𝑖 , , 𝑡𝑘2 }: 𝑡𝑖𝑛𝑝𝑢𝑡 𝑣à 𝑡𝑜𝑢𝑡𝑝𝑢𝑡 i- transition 𝑖 𝑖 𝑖 𝐶 𝑖 (𝑝𝑖𝑛𝑝𝑢𝑡 ) 𝑀𝑆 = 𝐶 𝑖 (𝑝𝑜𝑢𝑡𝑝𝑢𝑡 ) 𝑀𝑆 = 𝐶 𝑖 (𝑝𝑎𝑐𝑡𝑢𝑎𝑙 ) 𝑀𝑆 𝐶(𝑝𝑖 ) 𝑀𝑆 , 𝑖 𝑖 𝐶 𝑖 (𝑡𝑖𝑛𝑝𝑢𝑡 ) ≠ ∅, 𝐶 𝑖 (𝑡𝑜𝑢𝑡𝑝𝑢𝑡 )≠∅ 𝑖 𝑖 ∃m1 ∈ 𝐶 𝑖 (𝑡𝑖𝑛𝑝𝑢𝑡 ),m2 ∈ 𝐶 𝑖 (𝑡𝑜𝑢𝑡𝑝𝑢𝑡 ): ∀c ∈ C(pi): 𝑖 𝑖 𝑖 𝑖 𝐼 −𝑖 (𝑝𝑖𝑛𝑝𝑢𝑡 , 𝑡𝑖𝑛𝑝𝑢𝑡 )(m1)(c) = 𝐼 +𝑖 (𝑝𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑡𝑖𝑛𝑝𝑢𝑡 )(m1)(c) = 𝑖 𝑖 𝑖 𝑖 𝐼 −𝑖 (𝑝𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑡𝑜𝑢𝑡𝑝𝑢𝑡 )(m2)(c)=𝐼+𝑖 (𝑝𝑜𝑢𝑡𝑝𝑢𝑡 , 𝑡𝑜𝑢𝑡𝑝𝑢𝑡 )(m2)(c) ≠0 45 𝑖 𝑖 𝑖 𝑀0𝑖 (𝑝𝑖𝑛𝑝𝑢𝑡 ) (c) = 𝑀0𝑖 (𝑝𝑜𝑢𝑡𝑝𝑢𝑡 ) (c) = 𝑀0𝑖 (𝑝𝑎𝑐𝑡𝑢𝑎𝑙 ) (c) = 0, ∀c∈C(pi) 𝑖 𝑖 𝑖 𝑖 𝑄 𝑖 = (𝑄̃1, 𝑄̃2, (𝑞1𝑖 , …, 𝑞|𝑃 𝑖 | )): 𝑞𝑖𝑛𝑝𝑢𝑡 = 𝑞𝑜𝑢𝑡𝑝𝑢𝑡 = 𝑞𝑎𝑐𝑡𝑢𝑎𝑙 = ‘null’ 𝑖 𝑖 ̃ 1, 𝑊 ̃ 2, (𝑤1𝑖 , …, 𝑤 𝑖 𝑖 )): 𝑡𝑖𝑛𝑝𝑢𝑡 ̃ 𝑊 𝑖 = (𝑊 , 𝑡𝑜𝑢𝑡𝑝𝑢𝑡 ∈𝑊 |𝑇 | 𝑖 𝑖 𝑖 𝑖 𝑆 𝑖 = (𝑠1𝑖 , …, 𝑠|𝑃 𝑖 | ): 𝑠𝑖𝑛𝑝𝑢𝑡 = 𝑠𝑜𝑢𝑡𝑝𝑢𝑡 = 𝑠𝑎𝑐𝑡𝑢𝑎𝑙 = ‘null’ Cơ sở lý thuyết tập luật Nội dung lý thuyết biểu đồ hoạt động AD mơ hình QPN trình bày tương đối cẩn thận chi tiết mơ hình nguồn, đích biến đổi AD2QPN, khai triển ý phương diện ‘metamodel’ để xem xét tổng quan mơ hình, ‘ký pháp ngữ nghĩa’ cho phép hiểu mơ thành tố sở metamodel, ‘định nghĩa hình thức’ cung cấp góc nhìn khoa học cho mơ hình Bổ sung thêm số ràng buộc cho mơ hình này, luật biến đổi đề xuất kèm với định nghĩa hình thức số phân tích trực quan cho chúng Vì vậy, QPN sinh sau biến đổi AD2QPN xem biểu diễn ngữ nghĩa AD, tương tự việc dùng PN biểu diễn ngữ nghĩa cho AD [23] 3.3 Thử nghiệm mơ hình biến đổi biểu đồ hoạt động thành QPN Phần 3.2.1 trình bày sơ đồ khối mơ hình biến đổi biểu đồ hoạt động thành QPN việc tiến hành thử nghiệm mơ hình biến đổi biểu đồ hoạt động thành QPN thực chất thử nghiệm Bộ biến đổi AD2QPN mơ hình này, phần luận văn tập trung xây dựng, thử nghiệm Bộ biến đổi AD2QPN dựa ràng buộc 13 luật trình bày Giải pháp công cụ xây dựng chuyển đổi Giải pháp xây dựng Bộ chuyển đổi AD2QPN minh hoạ Hình 3.12 Quá trình biến đổi từ thiết kế AD thành vẽ QPN trải qua bước: i Thiết kế AD phần mềm UML lưu trữ dạng file XML; ii Biến đổi file XML thành file XML khác mà phần mềm QPN hiểu được; 46 iii Sử dụng phần mềm QPN để xem (và chỉnh sửa) file XML nhận sau biến đổi Hình 3.16 Giải pháp xây dựng Bộ chuyển đổi AD2QPN Bảng dây mô tả công cụ (phần mềm) mà luận văn sử dụng để thực giải pháp xây dựng Bộ chuyển đổi AD2QPN Bảng 3.1 Công cụ để thực giải pháp xây dựng Bộ chuyển đổi AD2QPN Chức UML Tool Tên công cụ đường dẫn Visual Paradigm Enterprise 15.0 (https://www.visual-paradigm.com) QPME 2.1.0, open source, (https://se.informatik.uniQPN Tool wuerzburg.de/software-engineeringgroup/tools/qpme/) Transformation XSLT 2.0, Saxon-HE 9.8, open source, (http://saxon.sourceforge.net/) Một số thông số đo hiệu hệ thống Như trình bày Chương I, mục tiêu hệ thống gồm số yếu tố đánh giá việc sử dụng tốt tài nguyên, thường thời gian xử lý, thông lượng sử dụng tài nguyên Với mục tiêu tiêu chí hiệu sử dụng CPU ngưỡng KPI cho phép (giá trị KPI quy định cụ thể hạng mục) Vấn đề cần quan tâm hệ thống việc sử dụng tài nguyên Cụ thể toán việc sử dụng CPU Các tài nguyên hệ thống tốt nên có hiệu sử dụng không cao ( không vượt ngưỡng 75%) không nên thấp (dưới 40%) Tài nguyên sử dụng hết đồng nghĩa với việc số token place CPUs 0, từ ta có biểu thức đo hiệu năng: utilization_CPUs := P{#CPUs=0} 47 Thông lượng yêu cầu số yêu cầu xác thực gửi đến hệ thống đơn vị thời gian Để gửi u cầu trước tiên cần có token place SendingRequest Vậy thơng lượng tính khả place có token chia cho thời gian cần để chuyển token tới place tiếp theo: throughput_Request := P{#SendingRequest>0}/sendRQ_time Tương tự với thông lượng yêu cầu, thông lượng số phản hồi tính khả place AppRequest có token chia cho thời gian cần để gửi phản hồi throughput_Response:= P{#AppRequest>0}/sendRS_time Kịch thiết kế phần mềm Kịch thiết kế phần mềm (case study) lựa chọn để thử nghiệm phải thoả mãn điều kiện ràng buộc đề cập 3.2.2 giả thiết QPN có Queue: DatabaseServer, ApplicationServer, WebServer, Request; cụ thể sau: Hình 3.17 AD liên kết với hồ sơ hiệu thử nghiệm 48 Hình 3.18 AD gọi từ CallBehaviorAction AD khác thử nghiệm Hình 3.19 minh hoạ kết hiển thị QPME QPN tương ứng với AD chính, có s-place D chứa QPN khác tương ứng với AD gọi từ CBAction D Hình 3.13 Hình 3.19 QPN tương ứng với AD Hình 3.20 Subnet QPN tương ứng với AD gọi từ CallBehaviorAction Kịch thử nghiệm Với thiết lập cấu hình mơ mặc định theo phần mềm (Hình 2.23) 49 Hình 3.21 Cấu hình chạy thử nghiệm phân tích QPN Node server = 1; chiến lược điều phối cho ApplicationServer FCFS Sau chạy, ta thu kết sau: - Phần mềm cảnh báo hàng đợi "ApplicationServer" tăng nhanh chóng, dẫn đến overflow; - Mơ bị dừng lại đạt totalRunLen tối đa; - Độ xác khơng đạt mong muốn; - Kết phân tích hiệu cho số place QPN Bảng 3.2; - Kết phân tích hiệu cho Queue QPN Bảng 3.3 Bảng 3.2 : Kết phân tích hiệu cho số place QPN Token Places Utilization Throughput Redident Time (U)19 (X)20 R21 (95% CI) 1.0 1.0 0.999 1.001 +/- 0.002 1.999 0.864 0.999 2.000 +/- 0.004 Population (N) pInit [qplace:queue] pA [qplace:queue] 18 N lượng color (yêu cầu) trung bình o-place q-place: queue (thành phần queue q-place) Queue 19 U khả trung bình o-place q-place:queue Queue xác suất có yêu cầu phải đợi 20 X thơng lượng trung bình place q-place:queue Queue, xác định lượng yêu cầu khỏi tunit 21 R thời gian yêu cầu có mặt o-place q-place:queue 18 50 pB [qplace:queue] 527346.432 1.0 0.999 0.0 +/- 0.0 20665.285 1.0 0.039 NA pC [qplace:queue] Bảng 3.3 Kết phân tích hiệu cho Queue QPN Report for Queue Token Utilization Arrival Departure Population (U) Throughput Throughput (X1) (X2) (N) Request 1.0 1.0 0.9989 0.9989 Webserver 2.003 0.865 1.0005 1.0005 ApplicationServer 548011.72 1.0 1.0381 0.0407 DatabaseServer 0.0099 0.0068 8.9333312038 8.93333120386 64843E-4 4843E-4 Nhìn vào Bảng 3.2 3.3, nhận thấy số lượng color place pB, pC lớn đột biến so với place khác, tương tự queue ApplicationServer - queue mà place pB, pC sử dụng để điều phối color Đối với queue ApplicationServer, thơng lượng đến X1 khác nhiều so với thông lượng X2, queue chưa đạt trạng thái ổn định Các giá trị NA Bảng 3.2 cho biết place hay q-place:queue tương ứng chưa tới trạng thái ổn định Nếu thực kịch thiết kế phần mềm case study trên, liên tục có yêu cầu gửi đến ApplicationServer đòi thực Action B C Thời gian hai yêu cầu liên tiếp cỡ 1.0 tunit thời gian trung bình thực Action A cỡ 2.0 tunit thời gian trung bình thực Action B, C không thực Action B C Tuy nhiên, ApplicationServer lại có chiến lược lập lịch xử lý yêu cầu FCFS lượng color place pB, pC hay queue ApplicationServer lớn bất thường điều có lý Để giải vấn đề ta thay đổi thuộc tính ApplicationServer thay đổi chiến lược điều phối, tăng số lượng node server 51 Node server = chiến lược điều phối cho ApplicationServer IS Sau chạy, ta thu kết sau: - Phần mềm cảnh báo hàng đợi "DatabaseServer" tăng nhanh chóng, dẫn đến overflow; - Mơ bị dừng lại đạt totalRunLen tối đa; - Độ xác không đạt mong muốn; - Kết phân tích hiệu cho Queue QPN Bảng 3.4 Bảng 3.4: Kết phân tích hiệu cho Queue QPN Report for Queue Token Utilization Arrival Departure Population (U) Throughput Throughput (X1) (X2) (N) Request 1.0 1.0 0.9989 0.9989 Webserver 2.003 0.865 1.0005 1.0005 ApplicationServer 3.001 0.988 1.008 1.008 DatabaseServer 9899.23 1.0 1.0998 0.0317 Như vậy, thay đổi chiến lược điều phối cho ApplicationServer IS, lượng yêu cầu đến ApplicationServer khơng cịn bất thường trước nữa, nhiên bất thường lại đến từ DatabaseServer với lý tương tự Như vậy, với kịch nhỏ case study này, nhìn vào giải hiệu AD, nhiều người thấy bất hợp lý hệ thống Tuy nhiên, với mơ hình lớn kịch phức tạp ta khơng thể nhận biết bất hợp lý Vì vậy, việc biến đổi thành mơ hình hiệu năng, phân tích thay đổi lại thiết kế lựa chọn hợp lý 3.4 Kết luận chương Trong chương này, luận văn trình bày vấn đề biểu đồ hoạt động mơ hình biến đổi biểu đồ hoạt động thành QPN Mơ hình biến đổi xây dựng dựa ràng buộc (giới hạn toán giải luận văn) tập luật biến đổi Sau đó, tiến hành thử nghiệm biến đổi AD2QPN dựa case study; phân tích hiệu mơ hình QPN thu 52 KẾT LUẬN VÀ KHUYẾN NGHỊ Như vậy, chương luận văn nghiên cứu trình bày khái niệm liên quan đến hiệu phần mềm, đánh giá hiệu phần mềm số kỹ thuật mô hình hóa đánh giá hiệu phần mềm (PN QN) Sau đó, Chương 2, tập trung nghiên cứu mơ hình hiệu Queueing Petri Nets Cuối cùng, Chương nghiên cứu trình bày khái quát biểu đồ hoạt động, xây dựng mơ hình biến đổi biểu đồ hoạt động thành QPN tiến hành thử nghiệm Bộ chuyển đổi AD2QPN Đóng góp luận văn: - Trình bày sở lý thuyết phương pháp biến đổi mơ hình AD2QPN từ biểu đồ hoạt động UML với hỗ trợ giải định lượng thuộc tính hiệu (PP) thành QPN, đặc biệt hồn thiện 13 luật (bổ sung thêm luật so với [36]) phạm vi mơ hình AD phức tạp so với tài liệu [36]; Như vậy, mơ hình phát triển thêm Object Node, cho phép hai InitNode, cho phép hai Control Flow vào ActionNode (thay tài liệu [36]) - Xây dựng Bộ chuyển đổi AD2QPN cách biến đổi từ file XML biểu diễn AD thiết kế Visual Paradigm sinh file XML biểu diễn QPN QPME; - Đã tiến hành thử nghiệm Bộ chuyển đổi AD2QPN với liệu phân tích Khó khăn: - Luận văn có sở lý thuyết biến đổi phức tạp, tỉ mỉ nên người làm luận văn nhiều thời gian để nghiên cứu, biến đổi sau xây dựng chương trình đáp ứng đánh giá hiệu Hướng phát triển Trên sở kết đạt luận văn này, thời gian tới, có điều kiện, tập trung nghiên cứu hai hướng để phát triển, mở rộng phương pháp biến đổi mơ hình trọng tâm luận văn Thứ mở rộng ràng buộc luật biến đổi mơ hình Với AD xử lý tình nhiều nhiều FinalNode bao gồm đối tượng khác… 53 Thứ hai tìm cách mở rộng biểu đồ UML cho mơ hình nguồn Thay có biểu đồ hoạt động, thêm vào vài biểu đồ use case đặc tả nhiều workload khác nhau… Trong trình làm luận văn, em cố gắng nhiều, nhiên khơng tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp Thầy giáo, Cô giáo, bạn bè, đồng nghiệp để luận văn ngày hoàn thiện 54 TÀI LIỆU THAM KHẢO [1] JanWaller, “Performance Benchmarking of Application Monitoring Frameworks”, Department of Computer Science, Kiel University, 2014 [2] W Reisig, “Petri Nets: an introduction” EATCS Monographs on Theoretical Computer Science, vol 4, 1985 [3] L Kleinrock, “Queueing Systems Vol 1: Theory”, Wiley, 1975 [4] K Kant, “Introduction to Computer System Performance Evaluation”, McGraw-Hill, 1992 [5] Simona Bernardi, Susanna Donatelli, José Merseguer, From UML sequence diagrams and statecharts to analysable petri net models, Proceedings of the 3rd international workshop on Software and performance (WOSP '02), pp 3545, Rome, Italy, 2002 [6] Juan Pablo López-Grao, José Merseguer, Javier Campos, From UML activity diagrams to Stochastic Petri nets: application to software performance engineering, Proceedings of the 4th international workshop on Software and performance (WOSP’04), pp 25-36, California, 2004 [7] Dulani A Meedeniya, Correct Mode-to-Model Transformation for Formal Verification, Ph.D Thesis, School of Computer Science, University of St Andrews, 2013 [8] Harald Storrle, Semantic of Control-Flow in UML 2.0 Activities, Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing, pp 235-242, Rome, Italy, 2004 [9] S Balsamo, A D Marco, P Inverardi, and M Simeoni Software performance: state of the art and perspectives Tech Rep CS- 2003-1, Dip di Informatica, Università Ca’ Foscari di Venezia, Jan 2003 [10] Bhawana Agarwal, Transformation of UML Activity Diagram into Petri Nets for Verification Purposes, International Journal Of Engineering And Computer Science, Vol 2, pp 798-805, 2013 [11] Mohamed Ariff Ameedeen, A Model Driven Approach to Analysis and Synthesis of Sequence Diagrams, Ph.D Thesis, School of Computer Science, The University of Birmingham, 2011 55 [12] Paola Bracchi, A Methodology for Software Performance Modeling and its Application to a Border Inspection System, Master Thesis, College of Engineering and Mineral Resources, West Virginia University, 2006 [13] Simonetta Balsamo, Moreno Marzolla, Performance Evaluation of UML Software Architectures with Multiclass Queueing Network Models, Proceedings of the 5th international workshop on Software and performance (WOSP’05), pp.37-42, Palma, Illes Balears, Spain, 2005 [14] Vittorio Cortellessa, Raffaela Mirandola, Deriving a Queueing Network based Performance Model from UML Diagrams Proceedings of the 2nd international workshop on Software and performance (WOSP’00), pp 58–70, Ottawa, Ontario, Canada, 2000 [15] S Balsamo and M Simeoni Deriving performance models from software architecture specifications In Proceedings of ESM’01 [16] J A Rolia and K C Sevcik, “The Method of Layers”, IEEE Transaction on Software Engineering, Vol 21/8, pp 682-688, 1995 [17] H Beilner, J Mäter, C Wysocki, “The hierarchical evaluation tool HIT”, Proceedings of the 7th International Conference on Modelling Techniques and Tools for Computer Performance Evaluation, Wien, 1994 [18] C M Woodside, J Neilson, S Petriu, S Mjumdar, “The Stochastic rendezvous network model for performance of synchronous client-server-like distributed software”, IEEE Transaction on Computer, Vol 44, pp 20-34, 1995 [19] R Franks, C M Woodside “Performance of multi-level client-server systems with parallel service operations”, pp 120-130, 1998 [20] K S Trivedi, “Probability and Statistics with Reliability, Queueing, and Computer Science Applications”, John Wiley and Sons, 2001 [21] F Bause Queueing Petri Nets - A formalism for the combined qualitative and quantitative analysis of systems In Proc of 5th Intl Workshop on Petri Nets and Perf Models, Toulouse, France, Oct 19-22, 1993 [22] F Bause and F Kritzinger Stochastic Petri Nets – An Introduction to the Theory Vieweg Verlag, 2002 [23] QPME Homepage http://qpme.sourceforge.net, November 2011 [24] Descartes Research Group http://www.descartes-research.net, November 2011 56 [25] S Kounev Performance Modeling and Evaluation of Distributed Component-Based Systems using Queueing Petri Nets IEEE Transactions on Software Engineering, 32(7):486{502, July 2006 [26] F Bause, P Buchholz, and P Kemper Hierarchically combined queueing Petri nets, volume 199 of Lecture Notes in Control and Information Sciences, pages 176{182 Springer Berlin / Heidelberg, 1994 [27] S Kounev and A Buchmann Performance Modelling of Distributed EBusiness Applications using Queueing Petri Nets In Proceedings of the 2003 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS 2003), Austin, USA, March 20-22, 2003 [28] K Sachs Performance Modeling and Benchmarking of Event-based Systems PhD thesis, TU Darmstadt, 2010 [29] A Law and D W Kelton Simulation Modeling and Analysis Mc Graw Hill Companies, Inc., third edition, 2000 [30] K Pawlikowski Steady-State Simulation of Queueing Processes: A Survey of Problems and Solutions ACM Computing Surveys, 22(2):123{170, 1990 [31] S Kounev and A Buchmann SimQPN - a tool and methodology for analyzing queueing Petri net models by means of simulation Performance Evaluation, 63(4-5):364-394, May 2006 [32] OMG, Unified Modeling Language, Version 2.5.1, https://www.omg.org/spec/UML/2.5.1, last visited 6/2018 [33] James Rumbaugh, Ivar Jacobson, Grady Booch, The Unified Modeling Language Reference Manual, 2nd ed, Addison Wesley, 2004 [34] OMG, UML Profile for Schedulability, Performance & Time, Version 1.1, https://www.omg.org/spec/SPTP/1.1/, last visited 6/2018 [35] Samuel Kounev, Simon Spinner, Jăurgen Walter, QPME Users Guide v2.1: A software tool for performance modeling and analysis using queueing Petri nets, 2015 [36] Bach Nguyen Trong, Xây dựng biến đổi mơ hình ADD2QPN hướng tới đánh giá hiệu phần mềm ĐATN Đại học 2018, Giảng viên hướng dẫn PGS.TS Huỳnh Quyết Thắng 57 ... VỀ KỸ THUẬT MƠ HÌNH HĨA ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM 1.1 Định nghĩa Hiệu phần mềm 1.2 Đánh giá hiệu phần mềm 1.3 Một số kỹ thuật mơ hình hóa đánh giá hiệu phần mềm Kỹ thuật. .. hoạt động thành Queueing Petri Nets ứng dụng đánh giá hiệu phần mềm? ?? Mục tiêu đề tài: Nghiên cứu tổng quan đánh giá hiệu phần mềm, tập trung nghiên cứu kỹ thuật mơ hình hóa PN QN; Nghiên cứu mơ... Tổng quan kỹ thuật mơ hình hóa đánh giá hiệu phần mềm Trong chương nghiên cứu trình bày khái niệm hiệu phần mềm, đánh hiệu phần mềm số kỹ thuật mơ hình hóa đánh giá hiệu phần mềm (mạng Petri, mạng