Sinh mã nguồn cho 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

Chuyên khảo luật học phân tích 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, đánh giá các khía cạnh quan trọng, đề xuất hướng

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

Luận án tiến sĩ

2022

178
2
0

Phí lưu trữ

45 Point

Mục lục chi tiết

LỜI CAM ĐOAN

TÓM TẮT LUẬN ÁN

ABSTRACT

LỜI CÁM ƠN

1. GIỚI THIỆU BÀI TOÁN

1.1. Bối cảnh nghiên cứu

1.2. Vấn đề sinh mã nguồn trên các thiết bị đeo tay

1.3. Bài toán sinh mã nguồn cho các ứng dụng chạy trên các thiết bị đeo tay trong lĩnh vực Internet vạn vật

1.4. Phát biểu vấn đề

1.5. Mục tiêu nghiên cứu

1.6. Câu hỏi nghiên cứu

1.7. Những đóng góp chính của nghiên cứu

1.8. Tầm quan trọng của nghiên cứu

1.9. Giới hạn của nghiên cứu

1.10. Bố cục của luận án

2. 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ữ chuyên biệt hóa trong ngữ cảnh hẹp

2.1.2. Ngôn ngữ chuyên biệt hóa trong lĩnh vực Internet vạn vật

2.1.3. Những ứng dụng trên thiết bị đeo tay (IoWT) trong các giải pháp thông minh

2.1.4. Những thách thức trong bài toán sinh mã nguồn cho thiết bị đeo tay

2.2. Kiến thức nền tảng

2.2.1. Phát triển phần mềm theo kỹ thuật dựa trên 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

3. KHUNG THỨC TỔNG QUÁT XÂY DỰNG NGÔN NGỮ CHUYÊN 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 bài toá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.3. Khung thức đề xuất

3.4. Cơ chế sinh mã của khung thức tổng quát

3.5. Tổng kết chương

4. CÔNG CỤ SINH MÃ NGUỒN CHO CÁC ỨNG DỤNG CHẠY TRÊN THIẾT BỊ ĐEO TAY MICRASPIS

4.1. Thư viện EMF và GEF

4.2. Ví dụ minh họa

4.3. Kiến trúc tổng quát

4.4. Tầng thiết kế phần cứng và đặc tả ứng dụng

4.4.1. Thiết kế phần cứng

4.4.2. Thiết kế ứng dụng

4.5. Tầng kiểm tra cú pháp và ràng buộc dựa trên tập luật

4.5.1. Sub-phase 1: Kiểm tra ràng buộc

4.5.2. Sub-phase 2: Kiểm tra cú pháp

4.6. Sinh mã nguồn cho chương trình

4.6.1. Sinh mã nguồn theo đặc tả cụ thể

4.6.2. Sinh mã nguồn theo đặc tả trừu tượng

4.6.3. Sinh mã theo khai báo trực quan

4.7. So sánh kết quả

4.8. Tổng kết chương

5. TỔ CHỨC THỬ NGHIỆM

5.1. Triển khai Micraspis trong các trường học

5.2. Triển khai Micraspis trong môi trường công nghiệp

5.2.1. Tỷ lệ độ hài lòng với công cụ Micraspis

5.2.2. Tỷ lệ mã nguồn tạo ra tự động với công cụ Micraspis

5.2.3. Chất lượng mã nguồn tạo ra từ công cụ Micraspis

5.3. Tổng kết chương

6. 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

6.1. Dùng Alloy kiểm soát các đối tượng trong ứng dụng chạy trên thiết bị đeo tay

6.1.1. Ví dụ minh họa

6.1.2. Mô hình đề xuất

6.1.3. Giải thuật kiểm soát đối tượng thông qua các tập luật

6.1.4. Kết quả thực nghiệm

6.2. Tổng kết chương

7. 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 nền tảng Web

7.2.2. Mở rộng các 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

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ

CÁC ĐỀ TÀI ĐÃ HOÀN TẤT

Tài liệu tham khảo

Danh sách các Case-study

Tóm tắt

I. Giới thiệu về giải pháp sinh mã nguồn cho thiết bị đeo tay trong IoT

Trong bối cảnh phát triển nhanh chóng của công nghệ Internet vạn vật (IoT), thiết bị đeo tay đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày. Những thiết bị này không chỉ giúp theo dõi sức khỏe mà còn hỗ trợ trong nhiều lĩnh vực khác nhau như y tế, thể thao và giải trí. Tuy nhiên, việc phát triển ứng dụng cho các thiết bị này vẫn gặp nhiều thách thức. Giải pháp sinh mã nguồn tự động cho thiết bị đeo tay là một trong những hướng đi tiềm năng nhằm tối ưu hóa quy trình phát triển ứng dụng.

1.1. Tầm quan trọng của thiết bị đeo tay trong IoT

Thiết bị đeo tay trong IoT không chỉ giúp người dùng theo dõi sức khỏe mà còn cung cấp thông tin thời gian thực về các hoạt động hàng ngày. Những thiết bị này có khả năng kết nối và giao tiếp với nhau, tạo thành một hệ sinh thái thông minh, hỗ trợ người dùng trong việc quản lý sức khỏe và nâng cao chất lượng cuộc sống.

1.2. Khái niệm sinh mã nguồn trong phát triển ứng dụng

Sinh mã nguồn là quá trình tự động chuyển đổi các đặc tả ứng dụng thành mã nguồn có thể thực thi. Điều này giúp giảm thiểu thời gian và công sức của lập trình viên, đồng thời nâng cao chất lượng mã nguồn. Trong bối cảnh thiết bị đeo tay, sinh mã nguồn đóng vai trò quan trọng trong việc phát triển ứng dụng nhanh chóng và hiệu quả.

II. Những thách thức trong việc phát triển ứng dụng cho thiết bị đeo tay

Mặc dù thiết bị đeo tay mang lại nhiều lợi ích, nhưng việc phát triển ứng dụng cho chúng vẫn gặp phải nhiều thách thức. Các vấn đề như khả năng tương tác, an ninh mạng và tính khả dụng của ứng dụng là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Khó khăn trong việc tích hợp giao thức truyền thông

Thiết bị đeo tay thường sử dụng nhiều giao thức truyền thông khác nhau, điều này gây khó khăn trong việc tích hợp và giao tiếp giữa các thiết bị. Việc phát triển một giải pháp đồng bộ hóa giao thức là cần thiết để đảm bảo tính khả dụng và hiệu quả của ứng dụng.

2.2. Vấn đề an ninh mạng trong thiết bị đeo tay

An ninh mạng là một trong những thách thức lớn nhất trong phát triển ứng dụng cho thiết bị đeo tay. Các thiết bị này thường thu thập và truyền tải dữ liệu nhạy cảm, do đó cần có các biện pháp bảo mật mạnh mẽ để bảo vệ thông tin người dùng khỏi các mối đe dọa từ bên ngoài.

III. Phương pháp sinh mã nguồn cho thiết bị đeo tay trong IoT

Để giải quyết các thách thức trong phát triển ứng dụng cho thiết bị đeo tay, một phương pháp sinh mã nguồn hiệu quả cần được áp dụng. Phương pháp này bao gồm việc sử dụng mô hình hóa và tập luật để tự động hóa quá trình phát triển ứng dụng.

3.1. Mô hình hóa trong phát triển ứng dụng

Mô hình hóa là một kỹ thuật quan trọng trong phát triển phần mềm, cho phép lập trình viên tạo ra các mô hình trừu tượng của ứng dụng. Những mô hình này có thể được chuyển đổi thành mã nguồn thông qua các công cụ sinh mã, giúp tiết kiệm thời gian và nâng cao chất lượng sản phẩm.

3.2. Sử dụng tập luật để kiểm soát quy trình phát triển

Tập luật là các quy định ràng buộc trong quá trình phát triển ứng dụng. Việc áp dụng tập luật giúp đảm bảo rằng mã nguồn được sinh ra đáp ứng các yêu cầu và tiêu chuẩn chất lượng, từ đó nâng cao tính khả dụng và độ tin cậy của ứng dụng.

IV. Ứng dụng thực tiễn của giải pháp sinh mã nguồn cho thiết bị đeo tay

Giải pháp sinh mã nguồn cho thiết bị đeo tay đã được áp dụng trong nhiều lĩnh vực khác nhau, từ y tế đến thể thao. Những ứng dụng này không chỉ giúp cải thiện chất lượng cuộc sống mà còn nâng cao hiệu quả công việc.

4.1. Ứng dụng trong lĩnh vực y tế

Thiết bị đeo tay được sử dụng để theo dõi sức khỏe bệnh nhân, cung cấp thông tin thời gian thực về tình trạng sức khỏe. Các ứng dụng này giúp bác sĩ đưa ra quyết định nhanh chóng và chính xác hơn trong quá trình điều trị.

4.2. Ứng dụng trong thể thao và giải trí

Trong lĩnh vực thể thao, thiết bị đeo tay giúp người dùng theo dõi hoạt động thể chất, từ đó cải thiện hiệu suất tập luyện. Các ứng dụng này cung cấp thông tin chi tiết về nhịp tim, lượng calo tiêu thụ và nhiều chỉ số khác, giúp người dùng có kế hoạch tập luyện hợp lý.

V. Kết luận và hướng phát triển tương lai cho thiết bị đeo tay trong IoT

Giải pháp sinh mã nguồn cho thiết bị đeo tay trong IoT không chỉ giúp tối ưu hóa quy trình phát triển ứng dụng mà còn mở ra nhiều cơ hội mới cho các nhà phát triển. Tương lai của thiết bị đeo tay hứa hẹn sẽ còn phát triển mạnh mẽ hơn nữa với sự hỗ trợ của công nghệ mới.

5.1. Tương lai của thiết bị đeo tay trong IoT

Với sự phát triển không ngừng của công nghệ, thiết bị đeo tay sẽ ngày càng trở nên thông minh hơn, tích hợp nhiều tính năng mới và đáp ứng tốt hơn nhu cầu của người dùng. Các nhà phát triển cần tiếp tục nghiên cứu và cải tiến giải pháp sinh mã nguồn để đáp ứng xu hướng này.

5.2. Định hướng nghiên cứu trong tương lai

Nghiên cứu về sinh mã nguồn cho thiết bị đeo tay cần được mở rộng để bao quát nhiều lĩnh vực ứng dụng khác nhau. Việc phát triển các công cụ hỗ trợ sinh mã nguồn tự động sẽ giúp nâng cao hiệu quả và chất lượng của các ứng dụng trong tương lai.

19/07/2025

Trích đoạn nội dung tài liệu

Chương 1 GIỚI THIỆU BÀI TOÁN 1.1 Bối cảnh nghiên cứu Trong lịch sử công nghệ phần mềm, vấn đề tự động hóa trong quá trình xây dựng ứng dụng luôn được quan tâm. Những cách tiếp cận để tự động hóa như lập trình logic (Prolog), lập trình đặc tả (ví dụ như Lisp, Alloy) cũng đã đem lại một số kết quả về mặt lý thuyết nhưng tính hiệu quả và độ khả dụng còn nhiều hạn chế (chạy chậm, không có tương tác người máy). Ngoài ra vấn đề này cũng được quan tâm rất nhiều trong lĩnh vực học thuật cũng như công nghiệp từ rất sớm. Những công cụ cho phép sinh mã nguồn từ mô hình UML (ví dụ như công cụ PowerDesigner1 , IBM Rational Rose2 ) hay những công cụ cho phép sinh mã nguồn từ giao diện người dùng (ví dụ như MS Visual Studio3 , Apache NetBeans4 ) được các công ty phát triển mạnh mẽ cũng như sự tiếp nhận của người dùng rất tích cực.

Bài toán sinh mã nguồn cũng chưa bao giờ là bài toán cũ và có lời giải thỏa mã cho người dùng. Hiện nay, với xu thế phát triển những hệ thống thông minh, nhu cầu phần mềm càng được quan tâm nhiều hơn nữa từ đó bài toán này cũng thôi thúc các nhà nghiên cứu cũng như các công ty trong lĩnh vực phát triển phần mềm càng đầu tư và hoàn thiện lời giải. Tuy nhiên, vẫn còn có sự giới hạn giữa việc sinh mã nguồn từ đặc tả ứng dụng bằng các mô hình trừu tượng trong từng lĩnh vực. Điều này cũng có thể giải thích từ nhiều nguyên nhân như quy trình xây dựng phần mềm, phương pháp luận biểu diễn phần mềm hay mức độ tự động sinh mã nguồn hay các yếu tố khác.

Quy trình xây dựng phần mềm 1 https://www.com/products/powerdesigner-data-modeling-tools.html 2 https://www.com/support/pages/ibm-rational-rose-enterprise-7004-ifix001 3 https://visualstudio.com 4 https://netbeans.org/download/index.html 1 được xem là hiệu quả khi quy trình đó đảm bảo phạm vi ứng dụng rộng rãi, thời gian phát triển ngắn cũng như tính tự động cao. Trên thực tế, với sự xuất hiện ngôn ngữ lập trình và các công cụ ngày càng nhiều, cũng như nhiều phương pháp luận chính quy và bán chính quy đã đem lại sự tự động hóa mang tính cục bộ trong quy trình xây dựng phần mềm (một khâu nào đó trong quy trình phát triển phần mềm). Việc tự động hóa cho toàn bộ quá trình phát triển phần mềm rõ ràng vẫn là vấn đề chưa được quan tâm đúng mức. Tuy nhiên, việc tự động hóa cho toàn bộ quá trình này sẽ dẫn đến phạm vi ứng dụng bị giới hạn lại và đó cũng là yếu tố làm cho lĩnh vực này còn bỏ ngỏ nhiều hướng nghiên cứu [2], [10].

Trong bối cảnh đó, chúng tôi đã chọn một hướng để tiếp cận và hiện thực một quy trình phát triển phần mềm mà tính tự động hóa được nâng lên cũng như phạm vi áp dụng được cải thiện. Cụ thể chúng tôi đã chọn quy trình xây dựng các ứng dụng trên thiết bị đeo tay trong lĩnh vực Internet vạn vật một cách tự động. Interner vận vật (IoT) là một lĩnh vực được ứng dụng rất nhiều vào đời sống hiện đại ngày nay. Từ các ứng dụng thông minh trên xe hơi nhằm xác định đường đi ngắn nhất trong lộ trình, hay các thiết bị theo dõi hoạt động cơ thể của chúng ta.

Từ những ứng dụng này, chúng ta thu thập được một dữ liệu cực lớn, giúp cho các thiết bị thông minh, trao đổi chia sẻ thông tin lẫn nhau [11]. Một trong những thiết bị thông minh mà chúng ta thường dùng trong các lĩnh vực về chăm sóc sức khỏe cho đến những cảnh báo về tai nạn, thiên tai,. đó là thiết bị đeo tay (wearables). Thiết bị này với các phần mềm tích hợp được phát triển rất mạnh mẽ trong nhiều lĩnh vực ứng dụng trong cuộc sống.

Trong đó, hệ thống cảnh báo sớm trong sức khỏe là được sử dụng nhiều nhất (Hình 1. Theo thống kê có hơn 400 triệu thiết bị đeo tay được bán ra trên thị trường vào năm 2020 [12]. Trong đó, những công ty mạnh về công nghệ như Apple, SamSung hay Microsoft,. đều đưa ra những sản phẩm đột phá trên thiết bị đeo tay này.

Thiết bị đeo tay với ưu điểm kích thước nhỏ gọn, nguồn điện tiêu tốn ít, kết hợp với các linh kiện thu thập dữ liệu tự động (sensor ) cùng với các ứng dụng (apps) giúp cho chúng đóng vai trò quan trọng trong các hệ thống thông minh ngày nay. Những hệ thống thông minh này, thường sẽ gắn liền với hệ thống Internet cùng với các chương trình xử lý dữ liệu tự động. Đi kèm với các ứng dụng là các tập dữ liệu thu thập theo thời gian, không gian,. giúp cho hệ thống thông minh càng trở nên chính xác và hiệu quả hơn trong cuộc sống.

Cho đến nay, số lượng các ứng dụng trong lĩnh vực IoT hằng năm tăng hơn 10%. Theo tổ chức IoT Analytic5 , năm 2020 những ứng dụng 5 https://iot-analytics.com/top-10-iot-applications-in-2020/ 2 Hình 1.1: Các thiết bị đeo tay đang triển khai trong thực tế hiện nay [1]. trong lĩnh vực IoT trãi đều các lĩnh vực từ công nghiệp sản xuất đến các lĩnh vực chăm sóc sức khỏe và có tốc độ phát triển cao (lĩnh vực công nghiệp sản xuất tăng trên 22%). Trong đó, các ứng dụng chạy trên thiết bị đeo tay cũng đang là xu thế phát triển.

Ngoài ra với việc phát triển ngày càng nhiều thiết bị đeo tay cũng dẫn đến các vấn đề tái sử dụng phần cứng ngày càng nhiều trong hệ thống. Điều này cũng đồng nghĩa việc tổ chức các chương trình cho các thiết bị phải đảm bảo tính mở rộng. Từ đó, chúng tôi cũng đề xuất những hướng thiết kế ứng dụng có thể chạy trên nhiều loại thiết bị đeo tay khác nhau nhưng có cùng kiến trúc và ngược lại. Đây cũng là một tiêu chí mà các nghiên cứu trước đây vẫn còn bỏ ngõ.

Từ những khảo sát trên chúng tôi nhận thấy rằng, việc xây dựng một hướng tiếp cận để hỗ 3 trợ sinh mã nguồn cho các ứng dụng chạy trên thiết bị đeo tay một cách tự động nhanh chóng là nhu cầu cấp thiết. Hướng tiếp cận đó cũng đặt ra nhiều thách thức cho chúng tôi như phạm vi ứng dụng, tỷ lệ mã nguồn tạo ra, tính đúng đắn, thời gian xử lý,. Những vấn đề này, chúng tôi đã trình bày trong những phần sau.1 Vấn đề sinh mã nguồn trên các thiết bị đeo tay Trong bài toán sinh mã nguồn cho các ứng dụng chạy trên thiết bị đeo tay thường chúng ta sẽ gặp các vấn đề như sau: (a) Chưa có khung thức thống nhất cho bài toán sinh mã nguồn nhằm đảm bảo các tính khả thi của bài toán [13]. (b) Phạm vi ứng dụng phải được xác định một cách rõ ràng nhằm đảm bảo tính hợp lý của mã nguồn tạo ra.

Các ứng dụng chạy trên thiết bị thường có nguyên tắc xử lý chung là thu thập dữ liệu, truyền dữ liệu và thực thi các xử lý tiếp theo từ các hệ thống thông minh qua các dữ liệu thu thập được. Nên việc tự động hóa các chức năng này là một thử thách [14, 15]. (c) Việc đặc tả ứng dụng như thế nào để mô tả được các xử lý của ứng dụng. Các xử lý này thường là các qui trình rõ ràng đã được thiết kế trong các hệ thống thông minh [2].

(d) Các mã nguồn sinh ra cho các xử lý trên các thiết bị đeo tay phụ thuộc vào tính đúng đắn của các đặc tả ứng dụng. Ở đây, các đặc tả này thường là các mô hình nên việc kiểm chứng các mô hình này trong giai đoạn đầu của quá trình sinh mã nguồn là một thử thách [16]. (e) Việc đặc tả cho bài toán sinh mã nguồn có sự tách biệt lớn giữa phần cứng và các xử lý nghiệp vụ trong hệ thống. Bởi vì, việc sinh mã nguồn cho bài toán này không chỉ mô tả cho các xử lý nghiệp vụ mà còn phụ thuộc vào cách lắp ráp các linh kiện trong thiết bị [17].

(f) Đồng thời, mã nguồn tạo ra cần có tính tái sử dụng cho các ứng dụng khác nhau trên các thiết bị cùng cấu trúc và ngược lại. Chất lượng của mà nguồn cũng cần được quan tâm.2 Bài toán sinh mã nguồn cho các ứng dụng chạy trên các thiết bị đeo tay trong lĩnh vực Internet vạn vật Hiện nay, việc nghiên cứu sự kết hợp cho ngôn ngữ đặc tả thân thiện với người dùng và một phần mềm hỗ trợ cho phép đưa ra một ứng dụng nhanh chóng là một việc kết hợp thú vị cho bài toán tiếp cận và xây dựng phần mềm [18] [19] [20]. Trong luận án này, chúng tôi xin trình 4 bày về một hướng nghiên cứu, làm thế nào để có thể xây dựng một công cụ mà trong đó việc đặc tả các ứng dụng (cụ thể là các ứng dụng chạy trên thiết bị đeo tay, tạm gọi là Wearable Application) một cách đơn giản như chỉ khai báo bằng các mô hình và các ràng buộc ngữ nghĩa giữa các thực thể. Kiến trúc phần cứng của các thiết bị đeo tay này cũng được đặc tả một cách đơn giản như kéo thả và tự động cấu hình như cấu hình các chân pins trên bo mạch, số lượng các thành phần cần có cho thiết bị.

Công cụ cũng thể hiện tính chặt chẽ và hợp lí của các thiết kế đồng thời cũng có thể ánh xạ sang mã nguồn của ứng dụng. Mã nguồn sinh ra có thể chạy trên thiết bị đeo tay đã được đặc tả trên hệ thống mà tốn ít thời gian để người dùng bổ sung mã nguồn. Chương trình được phát sinh từ công cụ đó có thể thực thi một cách nhanh chóng trên các nền mà vẫn đảm bảo được tính nhất quán từ các phần đặc tả của người dùng. Công cụ mà chúng tôi đề xuất chính là một ngôn ngữ trong ngữ cảnh hẹp (Domain-Specific Language - DSL) với tên gọi là Micraspis, cho các ứng dụng trong các giải pháp thông minh chạy trên nền các thiết bị đeo tay.

Trong công cụ này chúng tôi cũng hướng đến cách tiếp cận là kết hợp giữa mô hình hóa và kết hợp ràng buộc giữa các mô hình bằng các khai báo giúp cho chương trình không những hoàn thiện mà còn đảm bảo tính đúng đắn với thiết kế ban đầu. Bản chất của công cụ này là một một ngôn ngữ chuyên biệt hóa trong ngữ cảnh hẹp. Có rất nhiều công trình xây dựng công cụ sinh mã nguồn cho các ứng dụng chạy trong môi trường Internet vạn vật (IoT Application). Về mặt hiệu quả, nổi bật nhất là công cụ Midgar [5].

Công cụ này cho phép mô hình hóa đặc tả liên kết các các đối tượng và kết hợp khai báo các nút xử lý cho các chức năng của ứng dụng.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ