Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 178 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
178
Dung lượng
19,13 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TÔN LONG PHƯỚC SINH MÃ NGUỒN CHO CÁC THIẾT BỊ ĐEO TAY TRONG CÁC GIẢI PHÁP THÔNG MINH TRÊN NỀN TẢNG INTERNET VẠN VẬT BẰNG MÔ HÌNH HĨA VÀ TẬP LUẬT LUẬN ÁN TIẾN SĨ TP H CHÍ MINH - N M 2022 TR IăH CăQU CăGIA TP HCM NGă IăH CăBÁCHăKHOA TÔN LONG PH C SINH MÃ NGU N CHO CÁC THI T B EO TAY TRONG CÁC GI I PHÁP THÔNG MINH TRÊN N N T NG INTERNET V N V T B NG MƠ HÌNH HĨA VÀ T P LU T Chun ngành: Khoaăh cămáyătính Mưăs ăchuyênăngƠnh: 62.48.01.01 Ph năbi năđ căl p: PGS TS Nguy n Thái Nghe Ph năbi năđ căl p: TS.ă oàn Duy Ph năbi n:ă PGS.ăTS.ă ng Tr n Khánh Ph năbi n:ă PGS.ăTS.ăTr n Minh Quang Ph năbi n:ă TS Lê Kim Hùng NG I H NGăD N: TS LÊ LAM S N TS PH M HOÀNG ANH i LỜI CAM ĐOAN Tác giả xin cam đoan cơng trình nghiên cứu thân tác giả Các kết nghiên cứu kết luận luận án trung thực, không chép từ nguồn hình thức Việc tham khảo nguồn tài liệu (nếu có) thực trích dẫn ghi nguồn tài liệu tham khảo quy định Tác giả luận án Tơn Long Phước ii TĨM TẮT LUẬN ÁN Các thiết bị đeo tay lĩnh vực Internet vạn vật thiết bị nhỏ gọn, kiến trúc đơn giản thường giao tiếp với theo hướng truyền tải liệu nhằm hỗ trợ giải pháp thơng minh Những giải pháp triển khai nhiều lĩnh vực hệ thống hỗ trợ chữa cháy, nhà hàng thức ăn nhanh hay lĩnh vực điều trị y tế Hiện nay, với gia tăng thiết bị số nhỏ gọn xem thiết bị đeo tay kỷ nguyên số, nhu cầu phát triển ứng dụng chạy thiết bị ngày phát triển Từ đó, nhà phát triển ứng dụng phần mềm cho thiết bị cần có cơng cụ hỗ trợ phát triển ứng dụng cách nhanh chóng hiệu Hiện nghiên cứu học thuật công nghiệp quan tâm đến công cụ phát triển ứng dụng tự động, bán tự động lĩnh vực hỗ trợ phát triển ứng dụng cho thiết bị đeo tay bỏ ngỏ Từ đó, chúng tơi đề xuất khung thức hỗ trợ xây dựng ứng dụng chạy thiết bị đeo tay cách nhanh chóng hiệu Từ khung thức này, xây dựng cơng cụ có tên Micraspis, cho phép sinh mã ứng dụng dựa vào mơ hình hóa tập luật Công cụ cho phép đặc tả kiến trúc phần cứng ứng dụng chạy phép thiết bị đeo tay mơ hình hóa, đồng thời có ánh xạ thống hai mơ hình đặc tả Công cụ hoạt động dựa vào nguyên tắc chuyển đổi mơ hình sang mã nguồn (ngơn ngữ lập trình C++) chạy ứng dụng bo mạch dịng Arduino Chúng tơi thử nghiệm cách khoa học khách quan nhằm minh chứng công cụ Micarspis đạt tiêu chí đề Kết thử nghiệm thể sau: 65% mã nguồn hồn thiện tạo tự động từ cơng cụ Micraspis cho hệ thống ứng dụng thiết bị đeo đơn giản đến phức tạp Bên cạnh đó, chúng tơi thực phương pháp kiểm chứng khác vấn người dùng nhằm thu thập đánh giá từ chuyên gia đến lập trình viên chưa kinh nghiệm hay chất lượng phần mềm Nội dung vấn tập trung việc đánh giá cách cơng cụ Micraspis hỗ trợ cho lập trình viên việc phát triển ứng dụng chạy thiết bị đeo tay giải pháp thông minh thuộc lĩnh vực Internet vạn vật Ngoài ra, để kiểm chứng tính đắn mơ hình đặc tả, dùng ngôn ngữ Alloy xây dựng thuật toán nhằm nâng cao chất lượng mã nguồn tạo Các đóng góp luận án tóm tắt sau: Đề xuất hướng tiếp cận sinh mã nguồn cho ứng dụng ngữ cảnh hẹp với kết hợp mơ hình hóa tập luật Đề xuất khung thức sinh mã cho ứng dụng chạy thiết bị đeo tay giải pháp thông minh thuộc lĩnh vực Internet vạn vật Luận án tập trung vào vấn đề sinh mã nguồn cho ứng dụng với hai hướng tiếp cận: (i) sử dụng mơ hình hóa; (ii) sử dụng tập luật cho ràng buộc ứng dụng Dựa vào khung thức đề xuất, xây dựng công cụ sinh mã nguồn có tên gọi Micraspis nhằm sinh mã nguồn cho ứng dụng chạy thiết bị đeo tay giải pháp thông minh Đồng thời, luận án đề xuất phương án đánh giá công cụ tính đắn, hiệu cách khách quan tin cậy Keywords: Sinh mã nguồn, mơ hình hóa, ứng dụng IoT, thiết bị đeo tay, Internet vạn vật, ngôn ngữ chuyên biệt ngữ cảnh hẹp, giải pháp thơng minh, Alloy, đặc tả ứng dụng, mơ hình máy trạng thái iii ABSTRACT A wearable is a lightweight body-worn device that relies on data-driven communications to keep people connected purposefully, for instance, for fire-fighting, prompting fast-food clients, and medical treatment With rise of wearable computing in the era of IoT-driven smart applications, programmers now expect the time to market for these devices to be shortened While support for IoT programming in general has gathered traction, tool proposals that automate the development of smart solutions based on the Internet of Wearable Things, though of paramount importance, still stay on the sidelines We propose a code generation tool called Micraspis that allows a wearable to be described both functionally and architecturally - as if they are two sides of the same coin The tool has an underlying model-to-code transformation mechanism to generates source code that is executable on a specific IoT programming platform such as Arduino Our experiments demonstrate that programming code generated by Micraspis amounts to at least 65% of the source code needed to fulfill the business logic of ordinary wearable devices We conduct an interview to meticulously collect programmers’ assessment on how Micraspis assists them in programming and architecting smart IoT wearables A total of 161 programmers responded to a Likert scale questionnaire, with which at least 65% of them either agree or strongly agree Overall, the results show that Micraspis has promising applicability in supporting IoWT-enabled smart solutions The main contributions of the thesis are summarized as follows i Propose a source code generation approach for applications by a combination of modeldriven and rule-based development Generating source code for applications in software engineering has always been a concern of software developers in the field The challenge of properly defining application domains as well as specifying applications is always a difficult question for source code generation ii Propose a code generation framework for smart IoT wearable applications in softwareintensive systems The thesis focuses on the problem of generating source code for applications with two approaches: (i) using modeling; (ii) using rule sets for constraints in the application iii Based on the proposed framework, build a tool called Micraspis to generate source code for applications running on smart IoT wearables At the same time, the thesis proposes a method to evaluate the tool for correctness and effectiveness in an objective and reliable manner Keywords: code generation, modeling, IoT application, wearable, Internet of Things, domain specific language, smart solution, Alloy, application specification, state machine iv LỜI CÁM ƠN Tôi xin trân trọng cám ơn hướng dẫn tận tình TS Lê Lam Sơn TS Phạm Hoàng Anh suốt q trình học tập nghiên cứu sinh tơi Đặc biệt cám ơn TS Lê Lam Sơn hướng dẫn tơi xun suốt qua trình học tập nghiên cứu Tôi biết ơn hướng dẫn, truyền đạt động viên Thầy Đồng thời xin gửi lời cảm ơn chân thành đến môn Công nghệ phần mềm, khoa Khoa Học Kỹ Thuật Máy Tính, phịng Đào Tạo Sau Đại Học trường Đại Học Bách Khoa – Đại Học Quốc Gia thành phố Hồ Chí Minh tạo điều kiện cho tơi suốt thời gian học tập nghiên cứu Tôi xin chân thành cám ơn đến quý Thầy Cô Nhà khoa học phản biện, nhiệt tình hỗ trợ đóng góp ý kiến cho việc hồn thiện luận án tiến sĩ Tôi xin gửi lời cảm ơn chân thành đến thành viên gia đình đồng hành với suốt trình học tập, nghiên cứu hồn thành luận án Tôi xin chân thành cám ơn đồng nghiệp tôi, thành viên ESP-Lab hỗ trợ, động viên chia sẻ giúp an tâm để học tập nghiên cứu thời gian qua Một lần xin chân thành cám ơn v Mục lục DANH MỤC CÁC HÌNH ẢNH ix DANH MỤC CÁC BẢNG BIỂU xi TỪ ĐIỂN THUẬT NGỮ xii GIỚI THIỆU BÀI TOÁN 1.1 Bối cảnh nghiên cứu 1.1.1 Vấn đề sinh mã nguồn thiết bị đeo tay 1.1.2 Bài toán sinh mã nguồn cho ứng dụng chạy lĩnh vực Internet vạn vật 1.2 Phát biểu vấn đề 1.3 Mục tiêu nghiên cứu 1.4 Câu hỏi nghiên cứu 1.5 Những đóng góp nghiên cứu 1.6 Tầm quan trọng nghiên cứu 1.7 Giới hạn nghiên cứu 1.8 Bố cục luận án thiết bị đeo tay TÌNH HÌNH NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG 2.1 Tình hình nghiên cứu 2.1.1 Ngơn ngữ chun biệt hóa ngữ cảnh hẹp 2.1.2 Ngôn ngữ chuyên biệt hóa lĩnh vực Internet vạn vật 2.1.3 Những ứng dụng thiết bị đeo tay (IoWT) giải pháp thông minh 2.1.4 Những thách thức toán sinh mã nguồn cho thiết bị đeo tay 2.2 Kiến thức tảng 2.2.1 Phát triển phần mềm theo kỹ thuật dựa mô hình (MDE) 2.2.2 Sinh mã nguồn dựa theo hướng phát triển mơ hình MDD 2.2.3 Sinh mã nguồn dựa theo kiến trúc hướng mơ hình MDA 2.2.4 Sinh mã nguồn dựa vào đặc tả theo ngữ nghĩa 2.3 Tổng kết chương KHUNG THỨC TỔNG QT XÂY DỰNG NGƠN NGỮ CHUN BIỆT HĨA TRONG NGỮ CẢNH HẸP CHO LĨNH VỰC INTERNET VẠN VẬT 3.1 Cơ sở cho cách tiếp cận xây dựng khung thức cho tốn sinh mã nguồn theo hướng mơ hình 3.2 Các khung thức sinh mã nguồn theo hướng mơ hình 3.2.1 Midgar 3.2.2 Asm2C++ 3.2.3 IoTSuite vi 1 4 6 10 11 12 15 15 15 17 19 20 22 22 22 24 25 26 27 28 28 30 30 31 3.3 3.4 3.5 3.2.4 UML4IoT 3.2.5 VIPLE 3.2.6 EL4IoT 3.2.7 ThingML 3.2.8 M3 Framework 3.2.9 CHESSIoT Khung thức đề xuất Cơ chế sinh mã khung Tổng kết chương thức tổng quát CÔNG CỤ SINH MÃ NGUỒN CHO CÁC ỨNG DỤNG THIẾT BỊ ĐEO TAY MICRASPIS 4.1 Giới thiệu 4.1.1 Thư viện EMF GEF 4.1.2 Ví dụ minh họa 4.2 Kiến trúc tổng quát 4.3 Tầng thiết kế phần cứng đặc tả ứng dụng 4.3.1 Thiết kế phần cứng 4.3.2 Thiết kế ứng dụng 4.4 Tầng kiểm tra cú pháp ràng buộc dựa tập luật 4.4.1 Sub-phase 1: Kiểm tra ràng buộc 4.4.2 Sub-phase 2: Kiểm tra cú pháp 4.5 Sinh mã nguồn cho chương trình 4.5.1 Sinh mã nguồn theo đặc tả cụ thể 4.5.2 Sinh mã nguồn theo đặc tả trừu tượng 4.5.3 Sinh mã theo khai báo trực quan 4.6 So sánh kết 4.7 Tổng kết chương KIỂM CHỨNG 5.1 Giới thiệu 5.2 Tổ chức thử nghiệm 5.2.1 Triển khai Micraspis trường học 5.2.2 Triển khai Micraspis môi trường công nghiệp 5.3 Kết 5.3.1 Tỷ lệ độ hài lịng với cơng cụ Micraspis 5.3.2 Tỷ lệ mã nguồn tạo tự động với công cụ Micraspis 5.3.3 Chất lượng mã nguồn tạo từ công cụ Micraspis 5.4 Tổng kết chương 31 32 33 34 34 34 37 39 43 CHẠY TRÊN 45 46 47 48 51 53 55 56 58 60 60 61 62 63 65 66 68 69 70 72 72 74 74 74 78 79 83 MƠ HÌNH HĨA ĐẶC TẢ NGHIỆP VỤ CÁC GIẢI PHÁP THÔNG MINH BẰNG NGÔN NGỮ ALLOY 85 6.1 Giới thiệu 86 6.2 Dùng Alloy kiểm soát đối tượng ứng dụng chạy thiết bị đeo tay 88 6.2.1 Ví dụ minh họa 89 6.2.2 Mơ hình đề xuất 90 6.2.3 Giải thuật kiểm soát đối tượng thông qua tập luật 93 6.2.4 Kết thực nghiệm 95 6.3 Tổng kết chương 100 vii KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 7.1 Kết luận 7.2 Hướng phát triển 7.2.1 Mở rộng tảng Web 7.2.2 Mở rộng thành phần phần cứng 7.2.3 Mở rộng phạm vi sinh mã nguồn 7.2.4 Một số hướng nghiên cứu mở rộng khác 101 101 102 102 102 103 103 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CƠNG BỐ 104 CÁC ĐỀ TÀI ĐÃ HỒN TẤT 106 Tài liệu tham khảo 107 A Danh sách Case-study 120 viii DANH MỤC CÁC HÌNH ẢNH 1.1 Các thiết bị đeo tay triển khai thực tế [1] 2.1 2.2 Qui trình hoạt động DSL thông dụng theo Martin Folwer [2] Giao diện công cụ DSL hỗ trợ phát triển ứng dụng lĩnh vực Internet vạn vật [3] Cách nhìn tổng quát hướng tiếp cận mơ hình phát triển phần mềm Một ví dụ cho kiến trúc lớp mơ hình UML [4] 16 2.3 2.4 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Kiến trúc tổng quát công cụ Midgar [5] Kiến trúc tổng quát công cụ Asm2C++ [6] Mơ hình phát triển ứng dụng với tảng IoTSuite [7] Mơ hình phát triển ứng dụng với tảng VIPLE [8] Kiến trúc công cụ CHESSIoT [9] Khung thức tổng quát qui trình bước cho việc phát triển ứng dụng chạy thiết bị đeo tay Meta-model thành phần khung thức đề xuất cho ứng dụng chạy thiết bị đeo tay Khung mẫu DSL đề xuất chúng tôi: Các nhà phát triển IoT thiết kế trực quan ứng dụng chạy thiết bị đeo tay với mã nguồn tạo tổ chức ngôn ngữ C++ 4.1 4.2 4.3 Kiến trúc tổng thể thiết bị iTempFoll hệ thống cảnh báo sức khỏe Tiến trình xử lý nghiệp vụ y tế thiết bị iTempFoll Kiến trúc tầng cơng cụ Micraspis đề xuất cho q trình thiết kế phần cứng & ứng dụng cho thiết bị đeo tay 4.4 Giao diện cho công cụ Micraspis khung thức đề xuất toán sinh mã nguồn cho ứng dụng chạy thiết bị đeo tay 4.5 Thiết kế phần cứng cho thiết bị đeo tay dành cho bệnh nhân với tên gọi iTempFoll 4.6 Thiết kế phần cứng cho thiết bị đeo tay dành cho bác sỹ với tên gọi iTempFoll 4.7 Sơ đồ máy trạng thái đặc tả cho thiết bị đeo tay bệnh nhân 4.8 Sơ đồ máy trạng thái đặc tả cho thiết bị đeo bác sĩ 4.9 Meta-model cho trạng thái mô tả ứng dụng công cụ Micraspis 4.10 Meta-model cho mô tả phần cứng công cụ Micraspis 4.11 Mã nguồn mẫu cho ứng dụng định nghĩa công cụ Micraspis 5.1 5.2 5.3 5.4 5.5 Sinh viên thực hành với công cụ Micraspis thực hành lập trình IoT trường Đại học Cơng nghiệp Tp.HCM Biểu đồ hiển thị tỷ lệ hài lòng người dùng với câu trả lời mà thu thập cho bảng câu hỏi Micraspis Tỷ lệ độ hài lòng người dùng theo chuyên ngành với công cụ Micraspis Tỷ lệ độ hài lịng người dùng theo vị trí với công cụ Micraspis Tỷ lệ sinh mã nguồn cho case-study với công cụ Micraspis ix 17 23 24 29 31 32 33 35 38 38 39 48 51 52 54 55 56 57 58 63 64 65 73 76 77 77 79 ... toán sinh mã nguồn cho ứng dụng chạy thiết bị đeo tay 4.5 Thiết kế phần cứng cho thiết bị đeo tay dành cho bệnh nhân với tên gọi iTempFoll 4.6 Thiết kế phần cứng cho thiết bị đeo tay. .. hình hóa có kết hợp tập luật Từ hai phần đặc tả trên, công cụ xây dựng cho phép sinh mã nguồn cho ứng dụng chạy thiết bị đeo tay hệ thống thông minh thuộc lĩnh vực Internet vạn vật Mã nguồn sinh. .. sau 1.1.1 Vấn đề sinh mã nguồn thiết bị đeo tay Trong toán sinh mã nguồn cho ứng dụng chạy thiết bị đeo tay thường gặp vấn đề sau: (a) Chưa có khung thức thống cho tốn sinh mã nguồn nhằm đảm bảo