Tổng quan luận án

Luận án tiến sĩ chuyên ngành Kỹ thuật phần mềm (mã số 9480103.01) của tác giả Bùi Anh Tú, thực hiện tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội dưới sự hướng dẫn khoa học của PGS. Trương Ninh Thuận vào năm 2024, có tiêu đề: "Một số phương pháp tối ưu năng lượng tiêu thụ cho các thiết bị di động dựa trên phân tích mã nguồn".

Tính cấp thiết của đề tài xuất phát từ giới hạn vật lý về kích thước và dung lượng pin trên các thiết bị di động trong bối cảnh nhu cầu xử lý của phần mềm ngày càng gia tăng. Dù các hệ điều hành đã tích hợp nhiều cơ chế quản lý năng lượng, các nghiên cứu thực nghiệm chỉ ra rằng mức độ tiêu hao năng lượng vẫn chịu sự chi phối trực tiếp từ cách thức mã nguồn điều khiển phần cứng. Khoảng trống nghiên cứu được tác giả xác định là hiện chưa có mô hình toán học nào phản ánh đầy đủ mối quan hệ phụ thuộc giữa mã nguồn chương trình và mức tiêu thụ năng lượng tổng thể của thiết bị di động, đồng thời có thể áp dụng đồng thời cho nhiều bài toán tối ưu khác nhau trong quy trình phát triển phần mềm.

Luận án xác định 03 mục tiêu nghiên cứu cụ thể:

  1. Xây dựng mô hình biểu diễn sự tiêu thụ năng lượng của thiết bị di động dựa trên phân tích mã nguồn của phần mềm nhằm khắc phục các nhược điểm của các mô hình đã có.
  2. Đề xuất các giải pháp, thuật toán để giải quyết ba vấn đề về năng lượng trên thiết bị di động bao gồm ước lượng mức tiêu thụ năng lượng, tối ưu bộ kiểm thử năng lượng và giảm tải sự tiêu thụ năng lượng.
  3. Phát triển một số công cụ hỗ trợ quy trình phát triển phần mềm.

Đối tượng nghiên cứu của luận án là mã nguồn của các ứng dụng chạy trên thiết bị di động, sự ảnh hưởng của mã nguồn tới mức độ tiêu thụ năng lượng của các thành phần phần cứng, cùng các mô hình năng lượng và thuật toán tối ưu liên quan. Phạm vi nghiên cứu tập trung vào hệ điều hành mã nguồn mở Android, phân tích mã nguồn viết bằng ngôn ngữ Java, xem xét các thành phần phần cứng chính gồm CPU, màn hình (LCD/LED), bộ phát âm thanh (Audio), máy ảnh (Camera), bộ thu phát định vị (GPS), kết nối mạng (Wifi, 3G/Cellular), và mô hình tính toán trong môi trường điện toán đám mây di động (Mobile Cloud Computing - MCC).

Tổng quan tài liệu và vị trí của luận án

Trong luận án, tác giả đã tổng hợp và phân loại các công trình nghiên cứu liên quan theo ba hướng tiếp cận chính:

Thứ nhất, nhóm nghiên cứu về đo lường và ước lượng mức độ tiêu thụ năng lượng:

  • Phương pháp đo lường thực tế: Các công trình của Nichanametla [89] và Carroll [26, 27] sử dụng thiết bị phần cứng chuyên dụng để lấy mẫu và đo đạc mức năng lượng tiêu thụ của từng thành phần phần cứng trong các điều kiện thực thi cố định. Hướng nghiên cứu này đạt độ chính xác cao nhưng bị giới hạn vào cấu hình phần cứng cụ thể, đòi hỏi thiết bị đo ngoại vi (như Monsoon Power Monitor [8], BattOr [99], NEAT [24]) và không thể hiện được tác động trực tiếp của từng câu lệnh mã nguồn.
  • Phương pháp ước lượng dựa trên mô hình: Nghiên cứu của Li, Hao, Halfond và Govindan [66, 113] phân tích mức độ tiêu thụ năng lượng ở cấp độ dòng lệnh mã nguồn; nghiên cứu của Shin Nakajima và cộng sự [88] mô hình hóa trạng thái tiêu thụ năng lượng của phần cứng bằng ôtômát. Tác giả chỉ ra nhược điểm của công trình [66, 113] là ước lượng từng dòng lệnh rời rạc mà không xét đến mối liên kết ngữ nghĩa giữa các câu lệnh, dẫn đến sai lệch khi có mâu thuẫn câu lệnh. Trong khi đó, mô hình của Nakajima [88] dừng lại ở từng phần cứng riêng lẻ mà chưa xây dựng được trạng thái năng lượng tổng thể cho toàn bộ thiết bị di động.

Thứ hai, nhóm nghiên cứu về kiểm thử tính chất năng lượng:

  • Các nghiên cứu sinh ca kiểm thử tính chất năng lượng: Banerjee và cộng sự [20], Jabbarvand và cộng sự [50, 52, 53], Mao [65] đề xuất các kỹ thuật phát hiện lỗi năng lượng và các đoạn mã gây lãng phí năng lượng lớn.
  • Các nghiên cứu tối ưu hóa bộ kiểm thử năng lượng: Sagheer [96], Jabbarvand [53], Li [61, 63] tập trung vào việc giảm thiểu chi phí thực thi các ca kiểm thử tính chất năng lượng vốn rất tốn kém tài nguyên. Tuy nhiên, các kỹ thuật hiện có chưa kết hợp chặt chẽ giữa mô hình trạng thái năng lượng toàn diện của thiết bị với đồ thị luồng điều khiển của chương trình.

Thứ ba, nhóm nghiên cứu về giảm tải tính toán trong mô hình điện toán đám mây di động (MCC):

  • Các công trình của Li [59], Huda [48], Yang [111], Wang [106, 107], Masoudi [81, 82], Lin [68], Lu [74], Hao [45] đề xuất các mô hình và thuật toán ra quyết định chuyển tác vụ từ thiết bị di động lên máy chủ đám mây để tiết kiệm năng lượng. Tác giả nhận thấy phần lớn các nghiên cứu này chỉ xem xét việc ra quyết định cho từng tác vụ riêng lẻ, thiếu đánh giá đồng thời toàn bộ tập tác vụ và chưa tích hợp mô hình ước lượng năng lượng chi tiết dựa trên phân tích mã nguồn tĩnh.

Từ các hạn chế trên, luận án định vị giải pháp của mình là xây dựng một mô hình hình thức ôtômát năng lượng hợp nhất, làm cơ sở lý thuyết xuyên suốt để giải quyết đồng thời cả ba bài toán: ước lượng năng lượng trước khi thực thi, tối ưu hóa bộ kiểm thử năng lượng, và giảm tải tác vụ đa mục tiêu trong điện toán đám mây di động.

Cơ sở lý thuyết và phương pháp nghiên cứu

Luận án kết hợp giữa phương pháp hình thức toán học, kỹ thuật phân tích chương trình tĩnh và thực nghiệm phần mềm:

  1. Cơ sở lý thuyết hình thức:
  • Lý thuyết ôtômát hữu hạn đơn định (Deterministic Finite Automata - DFA): Hệ thống được mô hình hóa dưới dạng bộ ngũ $A = (Q, \Sigma, \delta, q_0, F)$, trong đó $Q$ là tập trạng thái, $\Sigma$ là bảng ký hiệu đầu vào, $q_0$ là trạng thái bắt đầu, $F$ là tập trạng thái kết thúc, và $\delta$ là hàm chuyển trạng thái. Luận án sử dụng DFA để mô hình hóa trạng thái năng lượng của từng phần cứng và trạng thái năng lượng tổng thể của thiết bị di động.
  • Biểu diễn cấu trúc chương trình: Sử dụng đồ thị cú pháp trừu tượng (Abstract Syntax Tree - AST), đồ thị luồng điều khiển (Control Flow Graph - CFG) theo định nghĩa của Frances E. Allen, và đồ thị lời gọi (Call Graph - CG).
  • Kiểm thử cấu trúc (kiểm thử hộp trắng): Áp dụng các tiêu chí bao phủ trên đồ thị kiểm thử $G = (N, E)$ bao gồm bao phủ đỉnh (câu lệnh), bao phủ cạnh (nhánh), bao phủ đường đi và bao phủ đường đi độc lập.
  1. Phương pháp phân tích chương trình:
  • Tiếp cận bằng phân tích chương trình tĩnh dựa trên dòng điều khiển và dòng dữ liệu, cho phép trích xuất cấu trúc và hành vi tiêu thụ tài nguyên của ứng dụng trực tiếp từ mã nguồn mà không cần thực thi chương trình trên thiết bị vật lý.
  • Công cụ phân tích mã nguồn: Luận án sử dụng thư viện JavaParser để phân tích cú pháp mã nguồn Java, trích xuất các cấu trúc lớp, phương thức, câu lệnh gọi API điều khiển phần cứng; sử dụng thư viện CFGBuilder để tự động xây dựng đồ thị luồng điều khiển CFG từ cây cú pháp trừu tượng.
  1. Phương pháp thu thập dữ liệu và công cụ thực nghiệm:
  • Đo lường thực tế làm đối chứng: Luận án sử dụng thiết bị đo phần cứng chuyên dụng Keweisi KWS-MX18 kết hợp công cụ giám sát pin AccuBattery trên thiết bị di động để đo lường công suất và dòng tiêu thụ thực tế tại các trạng thái phần cứng, làm tham số chuẩn hóa cho mô hình.
  • Nguồn dữ liệu kiểm thử: Mã nguồn của các ứng dụng Android thực tế và mã nguồn mở (như Open Camera, Osmdroid), các ca sử dụng (Use-Case - UC), cùng các công cụ sinh dữ liệu tự động như Randoop và Auto Click.

Nội dung chính theo từng chương

Chương 1. Giới thiệu

Chương 1 trình bày tổng quan về bối cảnh nghiên cứu, tính cấp thiết của vấn đề tiêu thụ năng lượng trên thiết bị di động, phân tích ba định hướng nghiên cứu chính trong kỹ thuật phần mềm hướng năng lượng (tính toán/ước lượng, kiểm thử tính chất năng lượng, giảm tải tính toán). Tác giả xác định đối tượng nghiên cứu là mã nguồn phần mềm di động và sự ảnh hưởng của nó đến năng lượng phần cứng; phạm vi nghiên cứu tập trung vào phân tích tĩnh ứng dụng Android trên nền Java; xác định 03 mục tiêu, 03 nhóm đóng góp chính và sơ đồ cấu trúc gồm 06 chương của luận án.

Chương 2. Kiến thức cơ sở

Chương 2 hệ thống hóa nền tảng lý thuyết phục vụ cho toàn bộ nghiên cứu:

  • Phân tích và biểu diễn chương trình: Phân biệt phân tích tĩnh và phân tích động; trình bày kỹ thuật phân tích dòng điều khiển, dòng dữ liệu; giới thiệu thư viện JavaParser và CFGBuilder; định nghĩa đồ thị lời gọi (Call Graph) và đồ thị luồng điều khiển (CFG).
  • Lý thuyết ôtômát hữu hạn: Định nghĩa hình thức DFA, các thành phần trạng thái, bảng ký hiệu vào và hàm chuyển trạng thái. Tác giả minh họa bảng chuyển trạng thái của DFA:
Trạng thái Ký hiệu vào: 0 Ký hiệu vào: 1
$q_0$ $q_2$ $q_1$
$q_1$ $q_3$ $q_0$
$q_2$ $q_0$ $q_2$
$q_3$ $q_1$ $q_3$
  • Kiểm thử phần mềm: Trình bày các khái niệm kiểm thử chức năng (hộp đen), kiểm thử cấu trúc (hộp trắng), kiểm thử hộp xám; định nghĩa đồ thị kiểm thử $G = (N, E)$, đường đi kiểm thử (testpath), và các tiêu chuẩn độ phủ (bao phủ đỉnh, cạnh, đường đi, đường đi độc lập).
  • Thiết bị di động và đặc tính năng lượng: Phân tích cấu trúc phần cứng (CPU kiến trúc ARM, màn hình LED/LCD, pin, modem 3G/4G/LTE/Wifi/Bluetooth/NFC, camera, loa, mic); phần mềm trên thiết bị di động (hệ điều hành Android nắm giữ hơn 71% thị phần tính đến tháng 3/2021, iOS; ngôn ngữ Java, Kotlin); các công cụ đo lường năng lượng phần cứng bên ngoài (Monsoon Power Monitor, BattOr, NEAT) và hạn chế khi áp dụng cho thiết bị nguyên khối.

Chương 3. Ước lượng mức tiêu thụ năng lượng của các thiết bị di động dựa trên phân tích mã nguồn

Chương 3 trình bày giải pháp xây dựng mô hình năng lượng và kỹ thuật ước lượng:

  • Mô hình hóa trạng thái năng lượng: Luận án xây dựng ôtômát năng lượng cho từng phần cứng riêng biệt ($Audio, GPS, 3GCellular, Wifi, LCD, CPU$), trong đó các phép chuyển trạng thái được kích hoạt bởi các lời gọi hàm API tương ứng trong mã nguồn Android (như MediaPlayer, LocationManager, WifiManager, ConnectivityManager, DevicePolicyManager).
  • Thuật toán 3.1 (Sinh ôtômát năng lượng cho thiết bị di động): Hợp nhất các ôtômát năng lượng thành phần thành một ôtômát năng lượng tổng thể cho thiết bị.
  • Thuật toán 3.2 (Tối ưu ôtômát năng lượng cho ứng dụng cụ thể): Loại bỏ các trạng thái và phép chuyển không được ứng dụng gọi tới, thu gọn kích thước mô hình.
  • Ước lượng mức tiêu thụ năng lượng: Đưa vào khái niệm đặc tả hình thức cho các ca sử dụng (UC), tích hợp bộ đếm thời gian và hệ số tiêu thụ năng lượng tại mỗi trạng thái của ôtômát. Thiết lập công thức toán học ước lượng tổng năng lượng tiêu thụ theo thời gian thực thi của UC dựa hoàn toàn trên việc duyệt mô hình mà không cần biên dịch hay chạy ứng dụng trên thiết bị vật lý.
  • Công cụ phát triển: Xây dựng công cụ PSA (hỗ trợ trực quan hóa các trạng thái năng lượng) và công cụ PCE (công cụ đặc tả và ước lượng mức tiêu thụ năng lượng cho UC, triển khai dưới dạng plug-in tích hợp vào Android Studio và IntelliJ).
  • Đánh giá thực nghiệm: Tác giả tiến hành đo đạc đối chứng giữa kết quả ước lượng từ công cụ PCE với kết quả đo thực tế bằng thiết bị đo Keweisi KWS-MX18 và ứng dụng giám sát AccuBattery, chứng minh kết quả ước lượng có sai số nhỏ nằm trong khoảng cho phép.

Chương 4. Tối ưu bộ kiểm thử tính chất năng lượng của phần mềm di động dựa trên phân tích mã nguồn

Chương 4 tập trung vào bài toán nâng cao hiệu quả phát hiện lỗi năng lượng:

  • Bản chất lỗi năng lượng: Phân tích các loại lỗi năng lượng phổ biến như rò rỉ năng lượng do cảm biến không được giải phóng, lặp vô hạn, hoặc đánh thức CPU không cần thiết.
  • Cải tiến đồ thị luồng điều khiển: Tác giả tích hợp thông tin từ ôtômát năng lượng vào đồ thị CFG truyền thống để tạo thành đồ thị CFG có trọng số năng lượng ($CFG_e$) và đồ thị đánh dấu các nút tiêu thụ năng lượng lớn ($CFG_{et}$).
  • Các thuật toán đề xuất:
    • Thuật toán 4.1: Tính tổng trọng số năng lượng cho các nút $v$ trong lộ trình đường đi $path_i$.
    • Thuật toán 4.2: Xác định trọng số năng lượng cực đại cho các nút trong đồ thị CFG.
    • Thuật toán 4.3: Xác định các nút tiêu thụ năng lượng đủ lớn trên đồ thị dựa trên ngưỡng cho phép $\epsilon$.
    • Thuật toán 4.4: Tính toán hệ số phủ năng lượng cho từng ca kiểm thử trong bộ kiểm thử ban đầu.
    • Thuật toán 4.5: Tối ưu bộ kiểm thử năng lượng dựa trên kỹ thuật tìm kiếm tham lam, lựa chọn tập ca kiểm thử tối thiểu nhưng vẫn bảo đảm bao phủ toàn bộ các nút tiêu hao năng lượng lớn và đạt hệ số phủ năng lượng tương đương bộ kiểm thử gốc.
  • Đánh giá thực nghiệm: Kết quả thử nghiệm trên ứng dụng di động cho thấy bộ kiểm thử tối ưu giảm đáng kể số lượng ca kiểm thử so với bộ kiểm thử ban đầu trong khi vẫn duy trì được độ phủ năng lượng và khả năng phát hiện lỗi tương đương.

Chương 5. Giảm tải sự tiêu thụ năng lượng cho thiết bị di động dựa trên phân tích mã nguồn

Chương 5 giải quyết bài toán giảm tải tính toán trong mô hình điện toán đám mây di động (MCC):

  • Mô hình giảm tải tác vụ: Phân tích các yếu tố tác động đến hiệu năng và năng lượng của thiết bị khi thực hiện tác vụ tại chỗ (Local Execution) so với chuyển tác vụ lên máy chủ đám mây (Cloud Execution). Chi phí năng lượng và thời gian truyền thông qua mạng truyền dẫn (Wifi, 3G/4G) được tính toán cụ thể bằng mô hình ước lượng đã đề xuất ở Chương 3.
  • Hàm mục tiêu đa mục tiêu: Xây dựng hàm mục tiêu kết hợp đồng thời hai yếu tố thời gian và năng lượng với các hệ số ưu tiên tương ứng là $\alpha$ (hệ số ưu tiên về mặt thời gian thực thi) và $\beta$ (hệ số ưu tiên về mặt tiết kiệm năng lượng tiêu thụ), thỏa mãn điều kiện ràng buộc.
  • Thuật toán 5.1 (Thuật toán ra quyết định giảm tải): Ứng dụng thuật toán di truyền (Genetic Algorithm) để tìm kiếm phương án phân bổ tối ưu cho toàn bộ tập tác vụ ($Tasks$) trong khoảng thời gian cho phép, thay vì quyết định riêng rẽ từng tác vụ.
  • Kết quả thực nghiệm: Tác giả so sánh ba phương án: không giảm tải (thực thi toàn bộ tại chỗ), giảm tải ngẫu nhiên một nửa số tác vụ, và giảm tải theo thuật toán đề xuất.

Dữ liệu thực nghiệm so sánh hiệu quả giảm tải được tác giả ghi nhận trong văn bản như sau:

Trường hợp thiết lập hệ số Tỷ lệ tiết kiệm năng lượng (%) Tỷ lệ tiết kiệm thời gian (%) Ghi chú so sánh
$\beta = 1, \alpha = 0$ (ưu tiên năng lượng tối đa) 24,1% Không ưu tiên Phương pháp ngẫu nhiên chỉ đạt 15,1%
$\beta = 0, \alpha = 1$ (ưu tiên thời gian tối đa) Dữ liệu phụ thuộc đồ thị thực nghiệm Dữ liệu tối ưu theo hàm mục tiêu Tối đa hóa tốc độ phản hồi
$\alpha = 0,6, \beta = 0,4$ (trường hợp cân bằng) 18,0% 21,0% Đạt tối ưu hài hòa cả thời gian và năng lượng

Chương 6. Kết luận

Chương 6 tổng kết các kết quả đạt được về mặt lý thuyết, thuật toán và công cụ của luận án, chỉ ra những ưu điểm cũng như các mặt hạn chế của nghiên cứu, đồng thời đề xuất 08 định hướng phát triển tiếp theo.

Kết quả và những đóng góp mới

Luận án tự nêu 03 đóng góp mới chính về mặt khoa học lý thuyết và giải pháp thực tiễn:

  1. Đề xuất mô hình và phương pháp ước lượng năng lượng tiêu thụ trên các thiết bị di động dựa trên phân tích mã nguồn:
  • Xây dựng mô hình ôtômát năng lượng phản ánh sự biến đổi trạng thái năng lượng của từng thành phần phần cứng và toàn bộ thiết bị di động dưới tác động của các câu lệnh trong mã nguồn.
  • Đề xuất phương pháp tự động sinh và tối ưu ôtômát năng lượng từ mã nguồn thông qua phân tích chương trình tĩnh.
  • Xây dựng phương pháp đặc tả hình thức cho các ca sử dụng (UC) và công thức ước lượng mức tiêu thụ năng lượng theo thời gian mà không cần chạy chương trình trên thiết bị thật. Triển khai công cụ thực nghiệm PCE dưới dạng plug-in cho Android Studio và IntelliJ.
  1. Đề xuất phương pháp tối ưu bộ kiểm thử tính chất năng lượng của phần mềm di động:
  • Cải tiến đồ thị luồng điều khiển truyền thống (CFG) thành đồ thị có trọng số năng lượng ($CFG_e, CFG_{et}$), cho phép xác định chính xác các điểm tiêu thụ năng lượng cao trong mã nguồn.
  • Định nghĩa khái niệm hệ số phủ năng lượng và xây dựng thuật toán tham lam để trích xuất bộ kiểm thử tối ưu có kích thước thu gọn nhưng vẫn bảo đảm khả năng phát hiện lỗi năng lượng tương đương bộ kiểm thử ban đầu.
  1. Đề xuất phương pháp giảm tải sự tiêu thụ năng lượng cho thiết bị di động trong mô hình điện toán đám mây di động:
  • Xây dựng phương pháp tính toán chi phí năng lượng và thời gian thực thi cho từng tác vụ dựa trên phân tích tĩnh mã nguồn.
  • Đề xuất hàm mục tiêu tối ưu đa mục tiêu (cân bằng thời gian và năng lượng) cùng thuật toán di truyền ra quyết định giảm tải đồng thời cho toàn bộ tập tác vụ ($Tasks$). Thực nghiệm chứng minh giải pháp giúp thiết bị tiết kiệm 24,1% năng lượng khi ưu tiên năng lượng tuyệt đối, hoặc tiết kiệm đồng thời 18% năng lượng và 21% thời gian thực thi trong kịch bản cân bằng ($\alpha = 0,6; \beta = 0,4$).

Về mặt công bố khoa học, các kết quả của luận án đã được công bố trong 04 công trình khoa học (gồm 02 bài báo kỷ yếu hội thảo quốc tế thuộc hệ thống Springer LNICST và IEEE, 02 bài báo trên các tạp chí quốc tế Mobile Networks and Applications và International Journal of Future Computer and Communication).

Hạn chế và hướng nghiên cứu tiếp

Văn bản luận án nêu rõ các hạn chế hiện tại và đề xuất 08 hướng phát triển tiếp theo:

  1. Hoàn thiện mô hình năng lượng cho thiết bị trong thực tế: Hiện tại mô hình mới chỉ tích hợp 06 thành phần phần cứng ($Audio, GPS, 3GCellular, Wifi, LCD, CPU$). Cần mở rộng nghiên cứu mô hình trạng thái năng lượng cho tất cả các phần cứng khác trên thiết bị thực tế.
  2. Mở rộng khả năng phân tích của ôtômát năng lượng: Tập ký hiệu đầu vào hiện được xây dựng dựa trên một số thư viện Android cơ bản. Do hệ thống thư viện liên tục cập nhật, cần tiếp tục bổ sung tập ký hiệu từ các thư viện mới để nâng cao khả năng thích ứng của ôtômát với nhiều dạng mã nguồn khác nhau.
  3. Cải tiến độ chính xác của phương pháp ước lượng: Các hệ số tiêu thụ năng lượng tại từng trạng thái phần cứng thu được qua đo lường vẫn có sai số. Cần nghiên cứu các phương pháp lọc nhiễu trong quá trình đo đạc để nâng cao độ chính xác của công thức ước lượng.
  4. Ước lượng mức độ tiêu thụ năng lượng đa ứng dụng: Phương pháp hiện tại chỉ áp dụng cho một ứng dụng đơn lẻ trong môi trường cô lập, chưa tính đến ảnh hưởng tương tác từ hệ điều hành và các ứng dụng khác cùng chạy nền.
  5. Tự động hóa hoàn toàn quy trình tối ưu bộ kiểm thử: Quy trình cải tiến đồ thị CFG và tối ưu bộ kiểm thử hiện tại còn phức tạp, chưa được tích hợp thành một công cụ tự động hóa hoàn chỉnh cho người dùng cuối.
  6. Xác định tự động hệ số ngưỡng $\epsilon$: Trong bài toán tối ưu kiểm thử, hệ số $\epsilon$ quyết định nút có tiêu thụ năng lượng đủ lớn hay không hiện do người thiết kế kiểm thử thiết lập thủ công. Cần nghiên cứu áp dụng học máy để tự động gợi ý giá trị $\epsilon$ phù hợp cho từng mã nguồn.
  7. Cải tiến mô hình giảm tải cho các tác vụ phụ thuộc: Thuật toán giảm tải hiện tại chỉ áp dụng cho các tác vụ độc lập, chưa xử lý được trường hợp các tác vụ có quan hệ phụ thuộc dữ liệu hoặc tập tác vụ biến động liên tục theo thời gian thực.
  8. Tự động xác định hệ số ưu tiên thời gian ($\alpha$) và năng lượng ($\beta$): Hai hệ số này hiện do lập trình viên thiết lập tĩnh. Cần nghiên cứu ứng dụng học máy để tự động học hỏi và tùy chỉnh các hệ số này phù hợp với kỳ vọng đa dạng của người dùng trong các hoàn cảnh sử dụng khác nhau.

Giá trị tham khảo

Luận án mang lại giá trị tham khảo chuyên môn cho các đối tượng cụ thể sau:

  1. Nghiên cứu sinh và học viên cao học ngành Kỹ thuật phần mềm, Khoa học máy tính:
  • Cung cấp phương pháp luận hình thức hóa về việc tích hợp thuộc tính phi chức năng (năng lượng) vào các mô hình tính toán hình thức (DFA, CFG, Call Graph).
  • Tài liệu tham khảo hữu ích về kỹ thuật phân tích chương trình tĩnh trên nền tảng Java và Android bằng việc sử dụng JavaParser và CFGBuilder.
  1. Kỹ sư và các nhà phát triển phần mềm di động:
  • Cung cấp quy trình và công cụ cụ thể (như plug-in PCE) để ước lượng mức tiêu thụ năng lượng của các ca sử dụng ngay từ giai đoạn viết mã nguồn, giảm bớt nhu cầu sử dụng các thiết bị đo vật lý tốn kém.
  • Đưa ra giải pháp tổ chức lại bộ kiểm thử nhằm giảm thiểu thời gian thực hiện kiểm thử tính chất năng lượng trong quy trình tích hợp liên tục.
  1. Các nhà nghiên cứu và kỹ sư hệ thống trong lĩnh vực điện toán đám mây di động (MCC) và tính toán biên:
  • Tham khảo mô hình hàm mục tiêu đa yếu tố và thuật toán di truyền ra quyết định giảm tải tác vụ nhằm cân bằng giữa thời gian đáp ứng và mức độ tiêu hao năng lượng của thiết bị đầu cuối.

Câu hỏi thường gặp

  1. Luận án giải quyết bài toán ước lượng năng lượng bằng phương pháp nào và có ưu điểm gì so với đo lường vật lý? Luận án sử dụng phương pháp phân tích chương trình tĩnh để trích xuất các lệnh điều khiển phần cứng từ mã nguồn Java, từ đó xây dựng mô hình ôtômát năng lượng cho thiết bị và đặc tả các ca sử dụng (UC). Ưu điểm chính là cho phép tính toán, ước lượng mức tiêu thụ năng lượng theo thời gian của ứng dụng trước khi biên dịch và chạy thực tế, không yêu cầu thiết bị đo phần cứng ngoại vi và không phụ thuộc vào việc tháo mở thiết bị di động nguyên khối.

  2. Công cụ PCE được phát triển trong luận án có tính năng gì và hoạt động trên môi trường nào? PCE là công cụ đặc tả hình thức và ước lượng mức tiêu thụ năng lượng cho các ca sử dụng (UC) của ứng dụng di động dựa trên mô hình ôtômát năng lượng. Công cụ được đóng gói dưới dạng plug-in cài đặt trực tiếp vào các môi trường phát triển tích hợp (IDE) phổ biến gồm Android Studio và IntelliJ, giúp lập trình viên ước lượng nhanh năng lượng của mã nguồn mà không cần thực thi trên thiết bị thật.

  3. Đồ thị $CFG_{et}$ trong Chương 4 được xây dựng nhằm mục đích gì? Đồ thị $CFG_{et}$ là đồ thị luồng điều khiển được cải tiến bằng cách bổ sung trọng số năng lượng cho các nút dựa trên ôtômát năng lượng và đánh dấu các nút có mức tiêu hao năng lượng vượt qua ngưỡng $\epsilon$. Đồ thị này làm căn cứ tính toán hệ số phủ năng lượng cho từng ca kiểm thử, giúp thuật toán tham lam nhận diện và chọn lọc các ca kiểm thử đi qua các nút tiêu tốn nhiều năng lượng nhất để đưa vào bộ kiểm thử tối ưu.

  4. Trong bài toán giảm tải tác vụ ở Chương 5, thuật toán đề xuất đạt được hiệu quả tiết kiệm cụ thể là bao nhiêu? Theo số liệu thực nghiệm được tác giả công bố: khi hệ số ưu tiên năng lượng $\beta = 1$ và hệ số thời gian $\alpha = 0$, phương pháp đề xuất giúp thiết bị tiết kiệm 24,1% năng lượng (vượt trội so với mức tiết kiệm 15,1% của phương pháp giảm tải ngẫu nhiên). Trong kịch bản tối ưu đa mục tiêu cân bằng ($\alpha = 0,6; \beta = 0,4$), phương pháp giúp tiết kiệm đồng thời 18% chi phí năng lượng và 21% thời gian thực thi tác vụ.

  5. Những thành phần phần cứng nào đã được luận án đưa vào mô hình hóa ôtômát năng lượng? Luận án đã mô hình hóa trạng thái tiêu thụ năng lượng cho 06 thành phần phần cứng cơ bản của thiết bị di động, bao gồm: bộ xử lý trung tâm (CPU), màn hình hiển thị (LCD/LED), bộ phát âm thanh (Audio), bộ thu phát định vị toàn cầu (GPS), bộ thu phát sóng di động (3G/Cellular) và kết nối mạng không dây cục bộ (Wifi).

Kết luận

Luận án của tác giả Bùi Anh Tú đã giải quyết vấn đề tối ưu hóa năng lượng tiêu thụ cho thiết bị di động bằng hướng tiếp cận phân tích mã nguồn tĩnh kết hợp mô hình hóa hình thức. Tác giả đã xây dựng thành công mô hình ôtômát năng lượng, đề xuất các thuật toán ước lượng năng lượng theo ca sử dụng, tối ưu hóa bộ kiểm thử năng lượng dựa trên đồ thị luồng điều khiển cải tiến và giảm tải tác vụ đa mục tiêu trong điện toán đám mây di động. Các kết quả nghiên cứu được kiểm chứng bằng thực nghiệm phần mềm, đối chứng với thiết bị đo thực tế và đóng gói thành công cụ hỗ trợ quy trình phát triển ứng dụng di động.