1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ Kỹ thuật phần mềm: 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

145 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÙI ANH TÚ

MỘT SỐ PHƯƠNG PHÁP TỐI ƯU NĂNG

LƯỢNG TIỂU THU CHO CAC THIET BỊ DIĐỘNG DỰA TRÊN PHÂN TÍCH MÃ NGUÔN

LUẬN ÁN TIEN SĨ KY THUAT PHAN MEM

Ha Noi - 2024

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÙI ANH TÚ

MỘT SỐ PHƯƠNG PHÁP TỐI ƯU NĂNG

LƯỢNG TIEU THU CHO CÁC THIET BỊ DIĐỘNG DUA TREN PHAN TÍCH MA NGUON

Chuyên ngành: Kỹ thuật phần mềmMã số: 9480103.01

LUẬN ÁN TIEN SĨ KY THUẬT PHAN MEMNGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS.TS Trương Ninh Thuận

Hà Nội - 2024

Trang 3

Lời cam đoan

Tôi xin cam đoan luận án “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” là công trình

nghiên cứu của riêng tôi Các số liệu, kết quả được trình bày trong luận án là

hoàn toàn trung thực và chưa từng được công bố trong bất kỳ một công trình

nào khác.

m Tồi đã trích dẫn đầy đủ các tài liệu tham khảo, công trình nghiên cứu liênquan ở trong nước và quốc tế Ngoại trừ các tài liệu tham khảo này, luận

An hoàn toàn là công việc của riêng tôi.

m Trong các công trình khoa học được công bố trong luận án, tôi đã thể hiện

rõ ràng và chính xác đóng góp của các đồng tác giả và những gì do tôi đã

đóng góp.

a Luận án được hoàn thành trong thời gian tôi làm Nghiên cứu sinh tại Bộ

môn Công nghệ phần mềm, Khoa Công nghệ Thông tin, Trường Đại họcCông nghệ, Đại học Quốc gia Hà Nội.

Tác giả:

Hà Nội:

Trang 4

Lời cảm ơn

Trước hết, tôi muốn bay tỏ sự biết ơn đến PGS.TS Trương Ninh Thuận, cánbộ hướng dẫn, người đã trực tiếp giảng dạy và định hướng tôi trong suốt thờigian thực hiện luận án này Thầy đã hướng dẫn cho tôi nhiều kiến thức trong

học thuật và phương pháp nghiên cứu Vinh dự lớn cho tôi khi được học tập,

nghiên cứu dưới sự hướng dẫn của Thầy.

Tôi xin bày tỏ sự biết ơn sâu sắc đến các thầy, cô trong Bộ môn Công nghệphần mềm vì sự tận tâm, giúp đỡ và các đóng góp rất hữu ích cho luận án củacác thầy, cô.

Tôi xin trân trọng cảm ơn Ban Giám hiệu, Khoa Công nghệ thông tin và

Phòng Đào tạo trường Dại học Công nghệ - Đại học Quốc gia Hà Nội đã tạođiều kiện cho tôi trong suốt quá trình học tập và nghiên cứu tại Trường.

Tôi cũng bày tổ sự biết ơn đến Ban Giám hiệu, Khoa Công nghệ thông tin,các phòng trong Trường Dại học Công nghệ Thông tin và Truyền thông - Đạihọc Thái Nguyên đã tạo điều kiện về thời gian và tài chính cho tôi thực hiệnluận án này Tôi muốn cảm ơn đến các đồng nghiệp tại Trường Đại học Côngnghệ Thông tin và Truyền thông - Đại học Thái Nguyên đã giúp đỡ, động viênvà sát cánh bên tôi trong suốt quá trình nghiên cứu.

Tôi muốn cảm ơn đến tất cả những người bạn của tôi, các anh chị nghiên cứusinh đã luôn động viên, chia sé với tôi trong những giai đoạn khó khăn nhất của

Trang 5

Tóm tắt

Nghiên cứu ảnh hưởng của phần mềm đối với sự tiêu thụ năng lượng trên

các thiết bị di động được coi là hướng tiếp cận hiệu quả để cải thiện hiệu năng,đồng thời giảm thiểu sự tiêu thụ năng lượng trên các thiết bị di động Trong cácnghiên cứu về năng lượng, các mô hình toán học được đề xuất để biểu diễn các

tác động của phần mềm tới sự tiêu thụ năng lượng trên thiết bị di động, từ đóđưa ra các giải pháp phân tích, đánh giá, cải thiện chất lượng của phần mềm.

Đã có nhiều mô hình được đề xuất, tuy nhiên chưa có một mô hình nào biểu

diễn đầy đủ sự ảnh hưởng của mã nguồn chương trình tới mức tiêu thụ nănglượng của thiết bị di động.

Luận án tập trung nghiên cứu sự ảnh hưởng trực tiếp của mã nguồn phầnmềm tới mức độ tiêu thụ năng lượng của các thiết bị di động Bằng kỹ thuật

phân tích chương trình tĩnh, luận án xây dựng một mô hình biểu diễn sự phụ

thuộc giữa mã nguồn của chương trình và mức tiêu thụ năng lượng của thiết bịđi động Dựa vào mô hình đã xây dựng, luận án đề xuất các thuật toán và côngcụ ước lượng mức độ tiêu thụ năng lượng của thiết bị di động, phương pháp tối

ưu bộ kiểm thử tính chất năng lượng và phương pháp giảm tải mức độ tiêu thụ

năng lượng cho thiết bị di động.

Các đóng góp chính của luận án bao gồm:

(i) Dé xuất mô hành va phương pháp tước lượng múc độ tiêu thụ năng lượng

trên các thiết bi di động dựa trên phân tích mmã nguồn Luận ấn tập trungphân tích sự ảnh hưởng của mã nguồn phần mềm tới mức độ tiêu thụ nănglượng, từ đó xây dựng mô hình tiêu thụ năng lượng cho từng phần cứng,

thiết bị di động dưới tác động của các câu lệnh điều khiển trong mã nguồn.

Mô hình được định nghĩa dưới dạng các ôtômát năng lượng để biểu diễn

sự thay đổi mức độ tiêu thụ năng lượng dưới sự điều khiển của mã nguồn

chương trình Dựa trên mô hình ôtômát năng lượng, luận án tiếp tục đềxuất phương pháp ước lượng mức độ tiêu thụ năng lượng theo thời gian

cho các ca sử dụng Một công cụ ước lượng được triển khai nhằm hỗ trợcho đội ngũ phát triển phần mềm tính toán mức năng lượng tiêu thụ dựa

vào mô hình mà không phải thực thi các ca sử dụng trên thiết bị di động.So sánh với số liệu đo lường bằng thiết bị chuyên dụng, công cụ ước lượng

11

Trang 6

đã chứng minh tính đúng đắn và tính hiệu quả của phương pháp với kếtquả ước lượng có độ sai số nhỏ.

(ii) Dé xuất phương pháp tối wu bộ kiểm thử tính chất năng lượng dựa trên

phân tích mã nguồn Dựa trên mô hình ôtômát năng lượng kết hợp với kỹ

thuật phân tích đồ thị dòng điều khiển, luận án đề xuất thay đổi đồ thịdòng điều khiển bằng cách bổ sung các trọng số năng lượng và đánh dấucác nút trên đồ thị dòng điều khiển có trọng số lớn làm cơ sở đánh giá độphủ và hệ số phủ năng lượng của mỗi ca kiểm thử Tiếp theo, luận án đềxuất các thuật toán để tính toán tỷ lệ phát hiện lỗi của các ca kiểm thử vàthuật toán lựa chọn các ca kiểm thử tốt nhất đưa vào bộ kiểm thử tối ưu.

Kết quả thực nghiệm cho thấy bộ kiểm thử tối ưu có kích cỡ nhỏ hơn rất

nhiều so với bộ kiểm thử ban đầu trong khi độ phủ tương đương.

(iii) Dé xuất phương pháp giảm tải sự tiêu thụ năng lượng cho thiết bị di độngdựa trên phân tích mã nguồn Luận ấn đề xuất phương pháp giảm tải việcxử lý các tác vụ cho thiết bị đi động trong mô hình điện toán đám mây di

động nhằm giảm thiểu sự tiêu thụ năng lượng Bằng cách ứng dụng phương

pháp ước lượng mức tiêu thụ năng và phân tích các ràng buộc về mặt thời

gian thực hiện tác vụ, luận án đã xây dựng một hàm mục tiêu và các thuật

toán để giảm tải cho thiết bị đi động bằng cách đưa một số tác vụ lên máychủ điện toán đám mây để xử lý Kết quả thực nghiệm cho thấy phương

pháp đề xuất đã giúp thiết bị di động tiết kiệm năng lượng đồng thời tối

ưu thời gian thực thi.

Luận án đóng góp giải pháp về mặt lý thuyết và công cụ giúp đội ngũ phát

triển phần mềm mở rộng khả năng phân tích sự tiêu thụ năng lượng, ước lượng

mức tiêu thụ năng lượng dựa vào mã nguồn Luận án đề xuất phương pháp tối

ưu bộ kiểm thử tính chất năng lượng, góp phần giảm thiểu thời gian thực hiệncác ca kiểm thử trong thực tế Luận án cũng trình bày một phương pháp giảmtải sự tiêu thụ năng lượng cho thiết bị di động có thể áp dụng trong thực tiễn

nhằm cải thiện chất lượng phần mềm.

Từ khóa: Kiểm chứng, kiểm thử, giảm tải, ước lượng, tiêu thụ năng lượng,

điện toán đấm mây di động, phân tích tĩnh.

1V

Trang 7

Mục lục

TOM tat ằ.ằ-ÔÔÔÔÔÔÔÔÔÔÔÔÔÔ- iliMu UC cc cc cc cee eee eee ee ee ee ee ee ee ee ee eee eens iv

Danh mục các từ viết tắt c2 ix

Danh mục các thuật toan cece cc cee ce rece eee ence eee x

Chương 1 GIỚI THIỆU - 1

1.1 Đặt vấn đề 2Q 2n nh xa 11.2 Đóng góp của luận ấn 2n 51.3 Cấu trúc luận ấn ng ng ng nh vn v xy 7Chương 2 KIÊN THUC CƠ SỞ 10

2.1 Phân tích và biểu diễn chương trình 10

2.1.1 Phân tích chương trình 10

2.1.2 Các kỹ thuật biểu diễn chương trình 13

2.1.3 Ôtômát hữu hạn các trạng thấi 14

2.2 Một số vấn đề trong kiểm thử phần mềm 16

2.2.1 Khái niệm kiểm thử phần mềm 16

2.2.2 Các kỹ thuật kiểm thử phần mềm 16

2.2.3 Kiểm thử cấu trúC c 226222122 172.3 Thiết bị di động va van đề năng lượng 19

2.3.1 Thiết bị di động và cấu tạo phần cứng 20

2.3.2 Phần mềm trên thiết bị di động - 21

2.3.3 Vẫn đề năng lượng trên thiết bị di động 23

2.4 Két Chuong đa ences 26Chương 3 UGC LƯỢNG MUC TIEU THU NANG LƯỢNG CUACAC THIẾT BỊ DI DONG DUA TREN PHAN TÍCH MA NGUON283.1 GiGi thiGu so ii 28

Trang 8

3.2 Các nghiên cứu liên quan 2c c2 eee es 31

3.3 Mô hình hóa mức tiêu thụ năng lượng của thiết bị di động 34

3.3.1 Anh hưởng của mã nguồn tới sự tiêu thụ năng lượng 34

3.3.2 Mô hình hóa trang thái năng lượng cho các phần cứng 35

3.3.3 Mô hình hóa trạng thái năng lượng cho thiết bị di động 41

3.3.4 Ôtômát năng lượng cho ứng dụng di động 44

3.4 Ước lượng mức tiêu thụ năng lượng của thiết bị di động 47

3.4.1 Dac ta hình thức cho các ỦC 48

3.4.2 Bộ đếm thời gian trong mô hình trạng thái năng lượng ol3.4.3 Hệ số tiêu thu năng lượng tại mỗi trạng thái 51

3.4.4 Công thức ước lượng mức độ tiêu thụ năng lượng cho UC 55

3.5 Công cụ mô hình hóa và ước lượng mức tiêu thụ năng lượng 56

3.5.1 Công cụ trực quan hóa trang thái năng lượng 56

3.5.2 Công cụ ước lượng mức tiêu thu nang lượng 58

3.6 Thực nghiệm - 2Q nh sa 613.6.1 Công cụ thực nghiệm ccc c2 613.6.2 Kết quả thực nghiệm - 64

3.7 Thảo luận và đánh giá - Sa 643.7.1 Thảo luận về ôtômát năng lượng - 64

3.7.2 Đánh giá phương pháp ước lượng 66

3.8 Tổng kết chương 2220222122 67Chương 4 TOI UU BO KIEM THU TÍNH CHAT NANG LUGNGCUA PHAN MEM DI DONG DUA TREN PHAN TÍCH MA NGUON694.1 Giới thiỆU eee een ng Hung vn xa 694.2 Một số vấn đề trong kiểm thử tính chất năng lượng của phần mềm diỘNE ng ng ng HH HT HH ng kg kg k kg ng Hà hà kg ki và 714.2.1 Khái niệm về lỗi năng lượng 71

4.2.2 Phan loại lỗi năng lượng 73

4.2.3 Kiểm thử tinh chat năng lượng 74

4.3 Các nghiên cứu liên quan c2 een sa 754.4 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 di501220115 - -(/ 77

4.4.1 Tong quan về bai toán tối ưu bộ kiểm thử tinh chất năng lượng 77

vil

Trang 9

4.4.2 Cải tiến đồ thị CFG cho bài toán tối ưu bộ kiểm thử tính chất năng

4.4.3 Tính toán hệ số phủ năng lượng cho các ca kiểm thử 84

4.5.1 Công cụ thực nghiém 2 ene nee 89

4.5.2 Dánh giá kết quả c2 22222222 91

4.6 Tổng kết chương : 2622222222112 1v 92

Chương 5 GIẢM TẢI SỰ TIÊU THỤ NĂNG LƯỢNG CHO THIẾT

BỊ DI ĐỘNG DUA TREN PHAN TÍCH MÃ NGUON 94

5.1 Giới thiỆU cece eee eect e eee eene ees 94

5.1.1 Mô hình điện toán đấm mây di động 955.1.2 Bài toán giảm tải trong mô hình điện toán đấm mây di động 96

5.3 Mô hình giảm tai cho các tác vụ trong mô hình điện toán đấm mây di

511211 99

5.3.1 Các nhân tố ảnh hưởng tới hiệu năng xử lý của thiết bị di động 100

5.3.2 Một số vấn đề trong giảm tải mức độ tiêu thụ năng lượng 101

5.3.3 Dề xuất mô hình giảm tải mức độ tiêu thụ năng lượng 103

5.4 Phương pháp giảm tải cho các tác vụ trong mô hình điện toán đấm mây

5.5.2 Dánh giá kết quả c2 2222222 ees 113

5.6 Tổng kết chương cence eee een nee enn 22 114

Chương 6 KẾT LUẬN c cà 117

6.1 Kết luận Q2 n2 n2 eee n eben en vu ened 117

vil

Trang 10

Danh mục các công trình khoa học 122

Tài liệu tham khảo 123

vill

Trang 11

AST Abstract Syntax Tree Cây cú pháp trttu tượng

CFG Control Flow Graph Đồ thị luồng điều khiển

CG Call Graph Đồ thi lời gọi

DFA Deterministic Finite Au- | Otomat hữu han đơn định

FA Finite Automata Otomat hữu han

ILP Integer Linear Programming | Quy hoach tuyén tinh nguyén

MCC Mobile Cloud Computing Điện toán đám mây di động

QoS Quality of Service Chat lugng dich vu

SDK Software Development Kit | Cong cu va phan mém ding dé phattriển ứng dụng

UC Use-Case Ca stt dung

ix

Trang 12

Danh mục các hình vẽ1.1

Cấu trúc của luận An 2 ee 8

Ví dụ về một hàm chuyển trạng thái của DFA 15

Cac trạng thái năng lượng của bộ phát âm thanh 36

Sự chuyển trạng thái năng lượng của thiết bị di động 43

Sơ đồ đo lường mức tiêu thụ năng lượng 53

Thiết bị đo lường Keweisi KWS-MXIS 54

Tổng quan về PS§A vo 57Tổng quan về PCE TQ vo 59Kết quả ước lượng từ công cạẶ PCE 61

Đo lường mức tiêu thu năng lượng với AccuBattery - Pin 63

Xây dựng đồ thị CFG„ từ CFG Q.2 82Xây dựng đồ thi CFG~t từ CFG 22 ee 84Kiến trúc của mô hình điện toán đám mây di động 95

Mô hình giảm tải cho các tác vụ trong MCC 103

Biểu đồ so sánh tổng thời gian thực thi 113

Biểu đồ so sánh tổng mức năng lượng tiêu thụ 114

Biểu đồ so sánh khả năng tiết kiệm năng lượng và thời gian 115

Trang 13

Danh mục các thuật toán

Sinh ôtômát năng lượng cho thiết bị di dong 45

Tối ưu ôtômát năng lượng thành phan cho ứng dụng cụ thể 47

Tính tổng trọng số năng lượng cho các nút v trong path; 80

Xác định trọng số năng lượng cực đại cho các nút trong đồ thị CFG 81Xác định các nút tiêu thụ năng lượng đủ lớn trên #⁄ŒG, 83

Tính hệ số phủ năng lượng cho các ca kiểm thử 86

Tối ưu bộ kiểm thử năng lượng 88

Thuật toán ra quyết định giảm tải cho thiết bị di động 110

XI

Trang 14

Chương 1

GIỚI THIEU

1.1 Đặt vấn đề

Trong những năm gần đây, sự bùng nổ của thiết bị di động đặt ra nhiều

vấn đề phức tạp cho các nhà nghiên cứu Một trong các vấn đề được nhiều nhànghiên cứu đặc biệt quan tâm đó là vấn đề năng lượng trên các thiết bị di động.

Để đảm bảo tính di động cho các thiết bị, bộ phận lưu trữ năng lượng của thiếtbị thường được thiết kế với sự ưu tiên về kích thước để đảm bảo độ nhỏ gọn,

cũng vì thế mà thời gian sử dụng của các thiết bị di động luôn có một giới han

nhất định Để mở rộng giới hạn về thời lượng sử dụng, các nhà nghiên cứu phát

triển phần mềm tập trung vào việc nghiên cứu sự ảnh hưởng của phần mềm tới

sự tiêu thụ năng lượng, từ đó đưa ra các giải pháp nhằm tối ưu phần mềm giúpquá trình thực hiện các tác vụ ít tiêu tốn năng lượng của thiết bị hơn Dưới đây

là một số định hướng nghiên cứu phổ biến về năng lượng trên thiết bị di động.

Thứ nhất, van đề tính toán mức độ tiêu thụ năng lượng trên các thiết bị diđộng trong quá trình thực thi phần mềm Bài toán tính toán mức tiêu thụ nănglượng được giải quyết bằng hai phương pháp đó là đo lường thực tế và ước lượngdựa trên mô hình Phương pháp đo lường thực tế [89, 26] được thực hiện bằng

cách sử dụng các thiết bị chuyên dụng để lấy mẫu, đo lường mức độ tiêu thụ

năng lượng trong các điều kiện nhất định, từ đó đưa ra công thức về mức tiêuthụ năng lượng cho các ca sử dụng Phương pháp này cho ra kết quả tính toán

có độ chính xác tiệm cận với thực tế, nhưng phương pháp chỉ có thể áp dụng

cho các thiết bi di động với thông số phần cứng cố định và thực thi với một

phần mềm cụ thể Trong khi đó, kỹ thuật ước lượng sử dụng các phương pháp

mô hình hóa hoặc các công thức toán học để xây dựng mô hình tiêu thụ nănglượng của thiết bị di động dưới sự tác động của các câu lệnh điều khiển trong

chương trình Phương pháp ước lượng dựa mô hình [66, 113, 88] cho phép tính

toán được mức độ tiêu thụ cho nhiều thiết bị khác nhau với nhiều phần mềmkhác nhau, tuy nhiên độ chính xác của kết quả ước lượng trên mô hình còn tùythuộc vào phương pháp xây dựng mô hình và sự phù hợp của mô hình đối thiết

Trang 15

bị di động hay phần mềm cụ thể.

Thứ hai, kiểm thử tính chất năng lượng là giải pháp cơ bản để phát hiện lỗi

năng lượng của các ứng dụng di động Hai hướng nghiên cứu trong kiểm thửtính chất năng lượng đó là sinh ra ca kiểm thử tính chất năng lượng và tối ưucác bộ kiểm thử tính chất năng lượng Đối với hướng nghiên cứu sinh ca kiểmthử 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

[50, 53, 65, 52, 20] đã đề xuất các phương pháp để tạo ra các ca kiểm thử nhằm

phát hiện các đoạn mã nguồn trong chương trình làm tiêu hao năng lượng lớnhoặc phát hiện ra lỗi về năng lượng Trong khi đó, quá trình thực thi các ca

kiểm thử tính chất năng lượng tốn kém chi phí hơn rất nhiều so với các ca kiểm

thử chức năng Do đó, các hướng nghiên cứu thứu hai về phương pháp tối ưu

bộ kiểm thử tính chất năng lượng [96, 53, 63, 61] có vai trò quan trọng trong

việc tối wu quy trình phát hiện lỗi năng lượng của phần mềm.

Thứ ba, vấn đề giảm thiểu sự tiêu thụ năng lượng trên thiết bị di động Ngoàiviệc phát hiện và gỡ các lỗi năng lượng nhằm giảm thiểu sự tiêu thụ năng lượngmột cách vô ích, thiết bị vẫn phải tiêu thụ năng lượng để xử lý các tác vụ cầnthiết Một giải pháp để giảm bớt sự tiêu thụ năng lượng là đưa các tác vụ sang

một hệ thống khác để xử lý Chăng hạn, trong mô hình điện toán đám mây di

động các tác vụ được đưa lên máy chủ điện toán đám mây để xử lý thay vì xử

lý tại thiết bi di động Tuy nhiên, chi phí về năng lượng trong quá trình vận

chuyển tác vụ từ thiết bị đi động lên máy chủ điện toán đám mây có thể lớn hơn

chi phí năng lượng khi xử lý tại chỗ, do đó việc tính toán chi phí năng lượng

trước khi quyết định vận chuyển tác vụ lên máy chủ điện toán đám mây là rất

cần thiết Từ đây các giải pháp giảm tải cho thiết bị di động ra đời với các thuậttoán ra quyết định giảm tải dựa trên việc đánh giá chi phí năng lượng trong cáctrường hợp thực thi tác vụ ở môi trường khác nhau Các nghiên cứu về giảmtải [59, 48, 111, 107, 37, 106] đã đóng góp nhiều giải pháp quan trọng giúp các

nhà phát triển phần mềm có được các thuật toán, công cụ để tích hợp vào ứngdụng di động nhằm giảm thiểu sự tiêu thụ năng lượng khi thực thi phần mềm.

Ba hướng nghiên cứu chính về năng lượng trên thiết bị di động đều dựa trêncác phân tích về sự ảnh hưởng của phần mềm đối với sự tiêu thụ năng lượng,trong đó mã nguồn của phần mềm đóng vai trò quyết đinh, tác động tới sự tiêuthụ năng lượng của thiết bị di động Trong các phương pháp nghiên cứu về tácđộng của mã nguồn của phần mềm tới sự tiêu thụ năng lượng của thiết bị di

động, phân tích chương trình là kỹ thuật được sử dụng phổ biến Dựa trên các

Trang 16

kĩ thuật phân tích chương trình, nhiều nghiên cứu về năng lượng trên thiết bị diđộng đã dược công bố như tự động phân tích [42, 64, 72, 69, 42, 22, 109, 30, 77],

kiểm thử [108, 53, 51, 20], tái cấu trúc [21, 79], và cải tiến phần mềm [70, 62].Các nghiên cứu này đã đóng góp nhiều giải pháp giúp cho các nhà phát triển

phần mềm tạo ra các phần mềm ít tiêu tốn năng lượng hơn.

Một trong những nhiệm vụ quan trọng nhất trong các nghiên cứu về nănglượng trên thiết bị di động là tìm ra được sự tương quan giữa mã nguồn phan

mềm đối với sự tiêu thụ năng lượng, sự tương quan này thường được biểu diễn

bởi các mô hình năng lượng Mô hình năng lượng sau đó sẽ được sử dụng để

giải quyết các vấn đề như tính toán mức tiêu thụ năng lượng, kiểm thử tính

chất năng lượng hoặc giảm tai sự tiêu thụ năng lượng cho thiết bị di động Có

nhiều mô hình năng lượng đã được đề xuất để giải quyết các vấn đề về nănglượng trong phần mềm di động Cụ thể, mô hình [66, 113] cho phép phân tích

mức độ tiêu thụ năng lượng cho từng đoạn chương trình, trực quan hóa mức độ

tiêu thụ năng lượng trên mỗi dòng lệnh, giúp cho người lập trình có thể quan

sát, đánh dấu những đoạn mã nguồn gây ra mức độ tiêu thụ năng lượng lớn;

Shin Nakajima và các công sự [88] đề xuất mô hình để phân tích sự tiêu thụnăng lượng của phần mềm trên thiết bị di động, mô hình được áp dụng để mô

hình hóa trạng thái tiêu thụ năng lượng của các phần cứng của thiết bị; Nghiêncứu [89, 26] cho phép đo lường mức độ tiêu thu năng lượng trên các thành phầncứng bằng cách sử dụng các thiết bị chuyên dụng, từ đó đưa ra các công thức

tính toán mức tiêu thụ năng lượng cho các ca sử dụng.

Ngoài các ưu điểm kể trên, các mô hình biểu diễn sự ảnh hưởng của phầnmềm tới sự tiêu thụ năng lượng cũng bộc lộ một số nhược điểm Chẳng hạn,

nghiên cứu [66, 113] cho phép ước lượng mức tiêu thụ trên từng câu lệnh ma

không có sự liên kết với các câu lệnh khác, do đó khi xuất hiện lỗi về mặt ngữ

nghĩa làm cho các câu lệnh mâu thuẫn nhau thì kết quả ước lượng tổng thể của

cả đoạn mã nguồn sẽ bi sai lệch Nghiên cứu của Nakajima [88] cho phép môhình hóa trạng thái năng lượng của phần cứng nhưng chưa đưa ra phương pháp

biểu diễn trạng thái năng lượng tổng quát của thiết bi di động Nghiên cứu của

Nichanametla [89] và Carroll [26] đưa ra phương pháp đo lường mức tiêu thu

năng lượng cho các trạng thái hoạt động của phần cứng nhưng chưa phân tích

được sự tác động của mã nguồn đối với sự thay đổi trạng thái năng lượng Cácnhược điểm này khiến cho các mô hình không biểu diễn được một cách toàn diệnsự tác động của mã nguồn tới sự tiêu thụ năng lượng, do đó không thể áp dụng

Trang 17

các mô hình này để đồng thời giải quyết ba vấn đề về năng lượng trên thiết bị

di động.

Sau khi phân tích uu nhược điểm của các phương pháp, luận án đề xuất các

giải pháp để giải quyết các vấn đề năng lượng trên thiết bị di động Mục tiêu

chính là tìm ra các phương pháp có thể ứng dụng trong quy trình phát triển

phần mềm nhằm tối ưu mức năng lượng tiêu thụ trên thiết bị di động Thứnhất, phương pháp ước lượng mức tiêu thụ năng lượng dựa trên phân tích mã

nguồn cho phép các nhà phát triển phần mềm tính toán trước mức độ tiêu thụ

năng lượng từ đó điều chỉnh mã nguồn giúp tối ưu năng lượng tiêu thụ Thứ

hai, phương pháp tối ưu các bộ kiểm thử giúp cải thiện quá trình phát hiện lỗi,

từ đó tránh được các lỗi tiêu hao năng lượng vô ích Thứ ba, 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 đámmây di dong đã đề xuất các thuật toán ra quyết định xử lý tác vụ giúp thiết

bị di động giảm thiểu sự tiêu thụ năng lượng Luận ấn tập trung vào ba mục

tiêu chính: (i)Xay dung mô hành biểu diễn sự tiêu thu năng lượng của thiết bị

đi độ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ó; (ii) Đề xuất các giải pháp, thuật toán để giải quyết

ba van dé vé năng lượng trên thiết bi di động bao gồm tước lượng mic tiêu thụ

năng lượng, tối uu bộ kiểm thử năng lượng va giảm tải sự tiêu thụ năng lượng;

(iti) Phát triển một số công cụ hỗ trợ quy trình phát triển phần mềm.

Phương pháp nghiên cứu của luận án là đánh giá các ưu nhược điểm của các

mô hình đã có, xem xét khả năng ứng dụng của các mô hình vào giải quyết cácvan đề về năng lượng Đồng thời, luận án tiến hành phân tích một số lượng lớn

các mã nguồn của ứng dụng di động để tìm ra mô hình phù hợp khắc phục đượccác nhược điểm của mô hình đã có và cho khả năng ứng dụng để giải quyết các

bài toán khác nhau như ước lượng, tối ưu bộ kiểm thử, giảm tải sự tiêu thụ

năng lượng.

Trong khuôn khổ phạm vi nghiên cứu, luận án sử dụng các kỹ thuật phântích chương trình tĩnh để phân tích các mã nguồn của ứng dụng di động: nghiêncứu các phương pháp mô hình hóa để xây dựng mô hình biểu diễn sự tiêu thụnăng lượng; đề xuất một số thuật toán để giải quyết các vấn đề về năng lượng

dựa trên mô hình và ứng dụng các kỹ thuật lập trình để xây dựng các công cụ

hỗ trợ cho đội ngũ phát triển phần mềm.

Đối tượng nghiên cứu chính của luận án là các phần mềm chạy trên các thiết

Trang 18

bị di động Cu thé là mã nguồn của các ứng dụng di động và sự ảnh hưởng của

chúng tới việc tiêu thụ năng lượng của thiết bị di động Đồng thời, luận án cũng

quan tâm tới các mô hình năng lượng và ứng dụng của các mô hình này trong

việc giải quyết các vấn đề năng lượng trên thiết bị di động Từ đó, có sự đánh

giá, phân tích, tổng hợp và đề xuất những giải pháp mới.

Để hoàn thành các mục tiêu đã đặt ra, luận án tập trung nghiên cứu các nội

dung sau:

e® Nghiên cứu các mô hình biểu diễn sự tiêu thụ năng lượng trên các thiết bịđi động dưới sự tác động của phần mềm.

e Nghiên cứu các giải pháp tính toán, tối ưu, giảm tải mức độ tiêu thụ năng

lượng dựa trên mô hình.

e Dé xuất một mô hình biểu diễn sự tiêu thụ năng lượng của thiết bi dựa trên

việc phân tích mã nguồn của phần mềm, khắc phục một số nhược điểm của

các mô hình đã có.

e Dé xuất các thuật toán để ước lượng, tối wu bộ kiểm thử, giảm tải mức độtiêu thụ năng lượng dựa trên mô hình đã đề xuất.

e Xây dựng các công cụ theo các phương pháp đã đề xuất để hỗ trợ đội ngũ

phát triển phần mềm phân tích, ước lượng, tối ưu mã nguồn nhằm giảmthiểu mức tiêu hao năng lượng trong quá trình phần mềm được thực thi.1.2 Đóng gốp của luận án

Sau quá trình giải quyết bài toán với mục tiêu, đối tượng và nội dung nghiêncứu đã đề ra, luận án có các đóng góp chính sau đây:

(i) Đề xuất mô hành va phương pháp tước lượng năng lượng tiêu thụ trên cácthiết bị di động dựa trên phân tích mã nguồn Luận án đã tập trung phần

tích một số lượng lớn các đoạn mã nguồn của ứng dụng di động, xác địnhsự ảnh hưởng của mã nguồn tới sự tiêu thụ năng lượng của thiết bị di động.

Từ đó luận án đề xuất xây dựng mô hình biểu diễn sự tiêu thụ năng lượng

của các phần cứng và thiết bị di động dưới tác động của các câu lệnh trong

mã nguồn Mô hình sử dụng các ôtômát năng lượng để biểu diễn sự thayđổi mức tiêu thụ năng lượng của phần cứng và thiết bị Bằng phương pháp

phân tích chương trình tĩnh, luận án đề xuất phương pháp tự động sinh

Trang 19

ôtômát năng lượng từ mã nguồn phần mềm Dựa vào ôtômát năng lượng,luận án tiếp tục đề xuất phương pháp ước lượng mức tiêu thụ năng lượngcủa thiết bị di động theo thời gian cho các UC Phương pháp ước lượngđược thực hiện dựa trên mô hình mà không cần phải thực thi các UC trênthiết bị vật lý giúp tiết kiệm chi phí cho quá trình tính toán Đồng thời,

luận án triển khai xây dựng một công cụ ước lượng mức tiêu thụ năng

lượng cho phép cài đặt trên các bộ lập trình như Android Studio và IntelliJ

theo dạng cài-cắm (plug-in).

(ii) Đề xuất phương pháp tối ưu bộ kiểm thử tính chất năng lượng của phan

mềm di động Dựa vào ôtômát năng lượng kết hợp với kỹ thuật phân tích

đồ thị luồng điều khiển, luận án đã đề xuất cải tiến đồ thị luồng điều khiểnbằng cách bổ sung trọng số năng lượng nhằm xác định các câu lệnh chương

trình gây ra mức tiêu thụ năng lượng lớn Kết hợp đồ thị luồng điều khiển

có trọng số năng lượng với phương pháp ước lượng đã đề xuất, luận án

đánh giá khả năng phát hiện lỗi của từng ca kiểm thử trong bộ kiểm thử

dựa trên các tiêu chí về độ phủ và hệ số phủ năng lượng, từ đó đưa ra thuật

toán lựa chọn các ca kiểm thử tốt nhất để đưa vào bộ kiểm thử tối ưu Kết

quả thực nghiệm trên các ứng dụng di động chứng minh khả năng tối ưu

và hiệu quả của phương phấp.

(iii) Đề xuất phương pháp giảm tải sự tiêu thu năng lượng cho thiết bị di động.

Vận chuyển các tác vụ lên máy chủ điện toán đám mây để xử lý là phươngpháp hiệu quả để giảm tải cho thiết bị di động Tuy nhiên, trước khi quyết

định vận chuyển mỗi tác vụ lên máy chủ điện toán đám mây, các chi phívề năng lượng và thời gian cần được tính toán để xác định hiệu quả của

việc giảm tải Bằng cách áp dụng phương pháp ước lượng mức tiêu thụnăng lượng đã đề xuất, luận án tiến hành tính toán chỉ phí năng lượng và

thời gian thực thi cho từng tấc vụ trong hai trường hợp, đó là thực thi

trên thiết bị di động và thực thi trên máy chủ điện toán đám mây Căncứ vào kết quả tính toán chi phí năng lượng và thời gian, luận án đề xuất

xây dựng một hàm mục tiêu và các thuật toán để ra quyết định đưa một

số tác vụ lên máy chủ điện toán đám mây nhằm giảm tải cho thiết bị diđộng Kết quả thực nghiệm của luận án đối với các ứng dụng di động cho

thấy phương pháp đề xuất đem lại hiệu quả tốt trong việc giảm thiểu chỉ

phí năng lượng và thời gian thực thi các tac vụ.

Các kết quả nghiên cứu của luận án góp phần bổ sung, hoàn thiện các mô

6

Trang 20

hình, phương pháp ước lượng, tối ưu bộ kiểm thử tính chất năng lượng và giảmthiểu sự tiêu thụ năng lượng trên thiết bị di động Bên cạnh đó, các công cụ

được xây dựng từ các phương pháp đề xuất trong luận án đã hỗ trợ đội ngũ

phát triển phần mềm tối ưu mã nguồn để đảm bảo các yêu cầu về năng lượng

trên thiết bi di động.

1.3 Cau trúc luận án

Luận án bao gồm sáu chương Trong đó, Chương | Gidi thiệu trình bày vềlý do thực hiện đề tài, phạm vi, đối tượng, phương pháp, nội dung nghiên cứu,các đóng góp và cấu trúc của luận án Các chương tiếp theo của luận án được

tổ chức như Hình 1.1 và có nội dung lần lượt như sau:

Chương 2 Kiến thúc cơ sở trình bày về các kiến thức nền tảng được sử dụng

trong các chương tiếp theo Mở đầu của chương này, luận án trình bày một số

kỹ thuật phân tích chương trình trong đó tập trung vào các kỹ thuật phân tích

chương trình tĩnh O mục kế tiếp, luận án tổng hợp một số kiến thức về kiểm

thử phần mềm, các kỹ thuật kiểm thử và phương pháp kiểm thử cấu trúc Cuối

cùng, luận án trình bày về đặc trưng của các thiết bi di động, van dé năng lượngtrên các thiết bị đi động và sự liên hệ giữa mã nguồn với năng lượng.

Chương 3 Ước lượng múc độ tiêu thu năng lượng của thiết bi di động dựa trênphan tích mã nguồn Chương này trình bày về phương pháp mô hình hóa sự tiêu

thụ năng lượng dựa trên phân tích mã nguồn chương trình, phương pháp ước

lượng mức tiêu thụ năng lượng và triển khai xây dựng một số công cụ trực quan

hóa, ước lượng mức tiêu thụ năng lượng cho thiết bị di động Đầu tiên, luận ántrình bày phương pháp mô hình hóa sự tiêu thụ năng lượng bằng các ôtômátnăng lượng, thuật toán hợp nhất tao ra ôtômát năng lượng của thiết bị di độngvà thuật toán tối ưu tạo ra ôtômát năng lượng của ứng dụng Tiếp theo, luận án

trình bày phương pháp bổ sung các hệ số tiêu thụ và bộ đếm thời gian vào các

trạng thái của ôtômát năng lượng, từ đó đưa ra các công thức ước lượng mức

độ tiêu thụ năng lượng dựa trên mô hình Cuối cùng, luận án trình bày một hệ

thống các công cụ hỗ trợ đội ngũ phát triển phần mềm trực quan hóa các trạng

thái năng lượng và ước lượng mức tiêu thụ năng lượng của thiết bị di động dựa

trên mô hình.

Chương 4 Tối uu 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 này giới thiệu một hướng tiếp cập trong

Trang 21

Đóng góp chính của luận an

“ Chương 3: \

Đề xuất mô hình và phương pháp ước lượngmức tiêu thụ năng lượng cho thiết bị đi động

dựa trên phân tích chương trình.

Mục tiêu: Xây dựng một mô hình biểu diễnmức tiêu thụ năng lượng khắc phục được một

số hạn chế của các mô hình đã có Đề xuất

các phương pháp và xây dựng công cụ ước

lượng mức độ tiêu thụ năng lượng dựa trên

dựa vào mô hình và phương pháp

: | ước lượng đã đề xuất.

¡ | Mục tiêu: Cai tiến do thị luong điêu¡| khiển bằng cách bồ sung các trọngsố tiêu thụ năng lượng làm cơ sở xác

định khả năng phát hiện lỗi của các

ca kiểm thử, từ đó dé xuất các thuậttoán tối ưu bộ kiểm thử tính chất

ee luong.

cho thiết bị di động dựa vào phương

pháp ước lượng mức tiêu thụ năng

lượng đã đề xuất.

Mục tiêu: Ứng dụng phương pháp ước

lượng tính toán mức tiêu thụ năng

lượng cho các tác vụ, làm cơ sở đề xuấtphương pháp giảm tải cho thiết bị diđộng bằng cách ra quyết định xử lý một

so tac vụ trên máy chủ điện toán dam

may /

Chuong 6:

Két luan

Hình 1.1: Cau trúc của luận án.

việc tối ưu bộ kiểm thử tính chất năng lượng của phần mềm di động Luận ángiới thiệu phương pháp cải tiến đồ thị luồng điều khiển bằng cách kết hợp chúngvới các ôtômát năng lượng được đề xuất ở Chương 3 nhằm bổ sung các trọng số

năng lượng cho các nút trên đồ thị Tiếp theo, luận án trình bày phương pháp

Trang 22

đánh giá khả năng phát hiện lỗi của các ca kiểm thử dựa vào độ phủ và hệ sốphủ năng lượng của các ca kiểm thử trên đồ thị luồng điều khiển đã được cảitiến, từ đó đưa ra thuật toán tối ưu bộ kiểm thử ban đầu Cuối chương, luậnán trình bày các kết quả thực nghiệm tối uu bộ kiểm thử với một phần mềm diđộng để chứng minh tinh đúng đắn của phương pháp đã đề xuất.

Chương 5 Giảm tải sự tiêu thụ năng lượng cho thiết bi di động dựa trên phantích mã nguồn Trong chương này, luận án đề xuất một phương pháp giảm tảimức tiêu thụ năng lượng cho thiết bi di động bằng cách sử dụng mô hình điệntoán đám mây di động Dầu chương, luận án giới thiệu mô hình điện toán đámmây di động và các vấn đề về năng lượng trong mô hình này Tiếp đến, luận

ấn trình bày một phương pháp giảm tải sự tiêu thụ năng lượng cho các tac vụđược xử lý trong mô hình đám mây di động, phương pháp nay cho phép tính

toán được mức tiêu thụ năng lượng của thiết bị di động trong cả hai trườnghợp thực thi tác vu, đó là thực thi trên thiết bị di động và thực thi trên máychủ điện toán đám mây Luận án đề xuất xây dựng một hàm mục tiêu nhằm

đánh giá kết quả thực thi các tác vụ, so sánh hai phương án thực thi tác vụ để

tìm kiếm giải pháp tối ưu nhất Luận án trình bày thuật toán giảm tải mức độtiêu thụ năng lượng của thiết bị nhưng vẫn đảm bảo các ràng buộc về mặt thời

gian Cuối chương, luận án trình bày các kết quả thực nghiệm để chứng minh

cho tính đúng đắn của phương pháp đã đề xuất.

Cuối cùng là Chương 6 Kết luận, chương này tiến hành phân tích về các ưu,

nhược điểm của từng phương pháp đã đề xuất và so sánh với một số phương

pháp nghiên cứu liên quan Từ đó, luận án thảo luận về các hướng nghiên cứutiếp theo trong tương lai.

Trang 23

Chương 2

KIÊN THỨC CƠ SỞ

Chương này giới thiệu một số kiến thức làm cơ sở cho các nghiên cứu trongcác của luận án Đầu tiên, chương này trình bày một số kỹ thuật phân tích và

biểu diễn chương trình được sử dụng trong các nghiên cứu mô hình năng lượng,

ước lượng và giảm tải sự tiêu thụ năng lượng Tiếp theo, chương này trình bày

về một số vấn đề liên quan tới kiểm thử phần mềm, đây là cơ sở lý thuyết đểtriển khai các nghiên cứu về tối ưu bộ kiểm thử tính chất năng lượng Cuối cùnglà các kiến thức tổng quan về thiết bị di động và vấn đề năng lượng phục vụ

cho các nghiên cứu về ước lượng, đo lường và xây dựng các công cụ liên quan.

2.1 Phân tích và biểu diễn chương trình

2.1.1 Phân tích chương trình

Phân tích chương trình cho phép các nhà nghiên cứu hiểu và phát hiện một

số lỗi của chương trình trong giai đoạn lập trình Các trình biên dịch của các

ngôn ngữ lập trình cũng có thể phát hiện và cung cấp các thông tin liên quanđến lỗi cú pháp của chương trình, tuy nhiên chúng chưa thể phát hiện ra các lỗi

về năng lượng Các nhà nghiên cứu về phần mềm sử dụng các kỹ thuật phân

tích chương trình làm nền tảng để mở rộng khả năng phân tích đặc tính nănglượng của phần mềm Phân tích chương trình là phương pháp phổ biến được áp

dụng trong các nghiên cứu về tác động của phần mềm đối với mức độ tiêu thụnăng lượng của thiết bị.

Có hai cách tiếp cận chính trong hoạt động phân tích chương trình đó là:

(i) Phân tích chương trành tinh (static program analysis): Phương pháp này

thực hiện mà không cần thực thi chương trình, chủ yếu dựa vào việc phântích mã nguồn hoặc trên một ngôn ngữ mô hình hóa nhất định.

(ii) Phân tích chương trinh động (dynamic program analysis): Thực thì chương

trình trên các bộ vi xử lý thực tế cùng với bộ dữ liệu đầu vào, kiểm trakết quả đầu ra hoặc các phản ứng của hệ thống để kết luận chương trình

có thực hiện thỏa mãn các hành vi mong đợi.

10

Trang 24

Phương pháp phân tích chương trình tĩnh cung cấp nhiều phương pháp luận

khác nhau làm nền tảng cho việc kiểm chứng, kiểm thử phần mềm Các bộ phân

tích chương trình tĩnh cho khả năng nắm bắt một cách chính xác và toàn diệnmô hình của phần mềm, xác định đầy đủ các đường thực thi của chương trìnhmà không cần phải thực thi phần mềm Do sự phù hợp của phương pháp đốivới các yêu cầu của bài toán, luận án sử dụng phương pháp phân tích chương

trình tĩnh [73] là phương pháp chủ yếu để phát triển các kĩ thuật phân tích đặc

tính năng lượng của phần mềm.

2.1.1.1 Một số phương pháp phân tích chương trình tĩnh

Phân tích chương trình tĩnh được sử dụng ở giai đoạn sớm của quá trình phát

triển, nó cho phép áp dụng với các tệp đơn lẻ hoặc toàn bộ mã nguồn mà không

phải thực thi chương trình.

Những kỹ thuật phân tích chương trình tĩnh đã và đang thu hút nhiều nghiên

cứu trên thế giới, hiện có nhiều kỹ thuật nhưng nhìn chung có thể phân theo4 nhóm chính, bao gồm: phân tích dòng điều khiển và dữ liệu, diễn giải trừutượng, kiểm chứng mô hình và phân tích tượng trưng.

Nhóm kỹ thuật được sử dụng trong luận án để giải quyết các bài toán năng

lượng là kỹ thuật phân tích chương trình tĩnh dựa trên phân tích dòng điều

khiển va dòng dữ liệu[100].

(i) Phân tích dòng điều khiển: là một trong các kỹ thuật được sử dụng phobiến để phân tích chương trình tĩnh Dòng điều khiển chương trình đượcmô hình hóa thành một đồ thị dòng điều khiển (Control Flow Graph -

CFG), được giới thiệu đầu tiên bởi Frances E Allen [15] CFG là đồ thị

có hướng được sử dụng để biểu diễn các khối mã dưới dạng các nút, sự

phụ thuộc điều khiển tạo thành các cạnh có hướng, bắt đầu với một nút

vào và kết thúc với điểm cuối của chương trình Việc xây dựng CFG cóthể được thực hiện dựa vào đồ thị cú pháp trừu tượng như là cây cú pháp

trừu tượng (Abstract Syntax Tree - AST)[102, 101] Đặc trưng chính củakỹ thuật này là xác định các thủ tục trong một chương trình gọi lẫn nhau

như thế nào cũng như xác định hàm nào được gọi một cách hiệu quả.

(ii) Phân tích dòng dữ liệu: Dựa trên biểu diễn trừu tượng của ngữ nghĩachương trình và tập trung vào xác định các giá trị có thể của dữ liệu nhằmbiểu diễn sự phụ thuộc của dữ liệu trong mã nguồn Phân tích dòng dữ liệu

có mục tiêu dự đoán tĩnh hành vi động của chương trình được phân tích.

11

Trang 25

Phân tích dòng điều khiển tập trung vào việc phân tích từng câu lệnh điều

khiển để tạo ra mô hình đồ thị dòng điều khiển, phân tích dòng dữ liệu là một

quá trình thu thập thông tin về dữ liệu trong các đoạn mã được thực thi thựctế mà không cần phải chạy đoạn mã đó Phân tích dòng dữ liệu là một cách rấthiệu quả và khả thi trong việc phát hiện lỗi chương trình và tối ưu hóa trong

các trình biên dịch.

2.1.1.2 Một số công cụ phân tích chương trình tĩnh

Các công cụ phân tích chương trình tĩnh cho phép đọc vào mã nguồn, phân

tích cấu trúc tĩnh của chương trình và xây dựng các đồ thị nhằm biểu diễn

chương trình Có nhiều công cụ phân tích chương trình tĩnh, tuy nhiên luận

án sử dụng hai công cụ chính để phân tích mã nguồn đó là JavaParser [4] và

CFGBuilder [28], đây là hai bộ thư viện của Java cho phép phân tích cấu trúc

tĩnh của chương trình:

(i) JavaParser là thư viện cho phép phân tích trực tiếp các mã nguồn Java.JavaParser đọc trực tiếp vào mã nguồn và phân tích cau trúc của các tệp tin

Java, các lớp, phương thức, thuộc tính và các lệnh điều khiển trong chương

trình, từ đó cho phép các lập trình viên sử dụng dữ liệu mà JavaParser

cung cấp để phát triển các ứng dụng liên quan tới mã nguồn JavaParsersử dụng ba bước chính là phân tích, biến đổi và tạo dựng để xây dựng cây

cú pháp trừu tượng từ mã nguồn của chương trình.

(ii) CFGBuilder là thư viện được viết bằng ngôn ngữ Java Tương tự nhưJavaParser, CFGBuilder là công cụ phân tích mã nguồn tinh của chương

trình CFGBuilder có khả năng tự động sinh ra các đồ thị luồng điều khiển

từ mã nguồn chương trình thông qua hai bước Đầu tiên, mã nguồn được

biến đổi thành cây cú pháp trừu tượng, sau đó CFGBuilder sẽ tự động sinhra đồ thị luồng điều khiển từ cây cú pháp trừu tượng Ngoài ra, CFGBuilder

cho phép lấy các thông tin về các đỉnh, các cạnh trong đồ thị luồng điều

khiển một cách dễ dàng.

Trong luận án này, JavaParser được ứng dụng để phân tích mã nguồn một

cách tự động nhằm tạo ra mô hình năng lượng từ mã nguồn và xây dựng các

UC tượng trưng trong bài toán ước lượng mức độ tiêu thụ năng lượng trong

Chương 3 Trong khi đó, CFGBuilder được sử dung để tao dựng đồ thị luồngđiều khiển CFG từ mã nguồn nhằm phục vụ cho các bài toán tối ưu bộ kiểm

thử ở Chương 4 và giảm tải sự tiêu thụ năng lượng ở Chương 5.

12

Trang 26

2.1.2 Các kỹ thuật biểu diễn chương trình

Sau khi phân tích mã nguồn, tùy vào đặc trưng của các bài toán mà các

nhà nghiên cứu sẽ biểu diễn mã nguồn dưới dạng các mô hình khác nhau Cácnghiên cứu trong luận án có sử dụng tới hai kỹ thuật biểu diễn chương trình, làkỹ thuật biểu diễn sử dụng đồ thị lời gọi và đồ thị luồng điều khiển.

2.1.2.1 Đồ thị lời gọi

Đồ thị lời gọi [95, 14, 103] là một đồ thị biểu diễn mối quan hệ goi giữa cácchương trình con trong chương trình phần mềm Mỗi đỉnh của đồ thị biểu diễncho một ham và mỗi cạnh từ a đến b (được viết là (ø,b)) biểu diễn hàm a có gọitới hàm b Nhu vậy, một khuyên trong đồ thị biểu diễn một hàm với lời gọi lai

chính nó hay còn gọi là lời gọi hàm đệ quy.

Đồ thị lời gọi được chia thành hai loại chính: động va tĩnh Do thị gọi động

ghi lại quá trình thực thi trong một trường hợp cu thể của chương trình, do đó

Đồ thị gọi động chính xác, nhưng chỉ biểu diễn một lần chạy chương trình duynhất Trong khi đó, Đồ thi gọi tĩnh biểu diễn mọi nhánh thực thi của chươngtrình Vì vậy, thuật toán biểu diễn đồ thị gọi tĩnh thường rất phức tạp việc biểudiễn các tất cả quan hệ “gọi” có thể xảy ra nhưng trong thực tế mốt số quan hệ“goi” này có thể không bao giờ xảy ra.

2.1.2.2 Đồ thị luồng điều khiến

Đồ thị luồng điều khiển [85, 17, 12] là một đồ thị có hướng, trong đó mỗi nút

của đồ thị biểu diễn một lệnh hoặc khối lệnh trong mã nguồn (trong đó đoạn

mã lệnh đảm bảo không chứa lệnh nhảy) Các cạnh có hướng được sử dụng đểthể hiện các đường di trong luồng điều khiển Các cạnh nối từ đỉnh A đến đỉnhB (viết tắt là (A > B)) được hiểu là luồng điều khiển rời khỏi khối A và đi tới

khối B.

Đồ thị gọi và đồ thị luồng điều khiển đều sử dụng để biểu diễn cấu trúc tĩnh

chương trình, chúng đều được xây dựng dựa trên mã nguồn Tuy nhiên, CFG

thường được sử dụng để mô tả cấu trúc bên trong của các hàm trong khi đồ thịlời gọi được biểu diễn ở mức độ trừu tượng hóa cao hơn (mối quan hệ “goi” giữa

các lời gọi chương trình con) Luận án sử dụng đồ thị lời gọi trong các đề xuấtvề việc ước lượng mức độ tiêu thụ năng lượng của chương trình trong Chương

3 và đồ thi CFG trong các nghiên cứu tối ưu bộ kiểm thử ở Chương 4 và giảm

13

Trang 27

tải sự tiêu thụ năng lượng ở Chương 5.

2.1.3 Ôtômát hữu hạn các trạng thái

Ôtômát hữu hạn là một mô hình tính toán của hệ thống với sự mô tả bởi

các đầu vào và đầu ra Tại mỗi thời điểm, hệ thống có thể được xác định ở mộttrong số hữu hạn các các trạng thái Mỗi trạng thái của hệ thống thể hiện sự

tóm tắt các thông tin liên quan đến những đầu vào đã chuyển qua và xác địnhcác phép chuyển kế tiếp trên dãy đầu vào tiếp theo.

Trong lĩnh vực phần mềm, ta có thể tìm thấy nhiều ví dụ về hệ thống trạng

thái hữu hạn và lý thuyết về ôtômát hữu hạn là một công cụ thiết kế hữu ích

cho các hệ thống này Chẳng hạn, mỗi phần cứng của thiết bị di động tồn tạiở các trạng thái tiêu thụ năng lượng khác nhau, các trạng thái này chuyển qualại do các tín hiệu điều khiển đầu vào, ta có thể mô tả nó như một ôtômát hữu

hạn trạng thái Tương tự như vậy, nếu xét ở góc độ tiêu thụ năng lượng, mỗi

thiết bị di động có thể là một ôtômát trạng thái với các trạng thái tiêu thụ khác

nhau và hữu hạn.

Lý do quan trọng nhất cho việc nghiên cứu các hệ thống trạng thái hữu hạnlà tính tự nhiên của khái niệm và khả năng ứng dụng đa dạng trong nhiều lĩnhvực thực tế ôtômát hữu hạn được chia thành hai loại: Đơn định và không đơnđịnh Cả hai loại ôtômát hữu hạn đều có khả năng nhận dạng chính xác tập

chính quy Ôtômát hữu hạn đơn định có khả năng nhận dạng ngôn ngữ dễ dàng

hơn ôtômát hữu hạn không đơn định, nhưng thay vào đó thông thường kíchthước của nó lại lớn hơn so với ôtômát hữu hạn không đơn định tương đương.

Các nghiên cứu trong luận án này chủ yếu sử dụng ôtômát hữu hạn đơn định.

Ôtômát hữu hạn đơn định:

Một ôtômát hữu hạn đơn định (Deterministic Finite Automata - DFA) gồm

một tập hữu hạn các trạng thái và một tập các phép chuyển từ trạng thái này

tới trạng thái khác trên các ký hiệu vào được chọn từ một bộ chữ cái nào đó

trong bang kí hiệu vào Ð Mỗi ký hiệu vào có đúng một phép chuyển khỏi mỗitrạng thái (có thể chuyển trở về chính nó) Dưới dây là định nghĩa về ôtômát

hữu hạn đơn định A:

Trong đó:

14

Trang 28

Bảng 2.1: Ví dụ về một hàm chuyển trạng thái của DFA

Trạng thái Kí hiệu vào

0 1

q0 q2 q1

ql q3 q0q2 q0 q2q3 ql q3

Hình 2.1: Ví dụ về một hàm chuyển trang thái của DFA

Hàm chuyển trạng thai ð đóng vai trò điều khiển việc chuyển trang thái trongôtômát Hình 2.1 là một ví dụ về việc biểu diễn các trạng thái và mô hình chuyểntrạng thái của một ôtômát hữu hạn đơn định, hàm chuyển này còn có thể được

biểu diễn tương ứng dưới dạng Bảng 2.1.

15

Trang 29

2.2 Một số vẫn đề trong kiểm thử phần mềm

2.2.1 Khái niệm kiểm thử phần mềm

Kiểm thử phần mềm là quá trình kiểm tra được tiến hành trên phần mềm

nhằm cung cấp cho các bên liên quan về chất lượng hoặc dịch vụ phần mềm.

Kiểm thử phần mềm cung cấp cho các bên liên quan một cách nhìn độc lập vềphần mềm từ đó cho phép đánh giá các rủi ro trong quá trình triển khai phần

Có triển khai được với các đặc tính tương tự hay không?

(iv) Có đáp ứng được nhu cầu của các bên liên quan hay không?

Quá trình kiểm thử phần mềm có thể được thực hiện trong bất kì pha nàocủa quy trình phát triển phần mềm, các phương pháp kiểm thử phần mềm được

xây dựng dựa trên các tính chất, đặc trưng của mỗi pha trong quy trình phát

triển phần mềm, do đó phương pháp kiểm thử bị chi phối theo một quy trình

nhất định.

2.2.2 Các kỹ thuật kiểm thử phần mềm

Có nhiều các kỹ thuật kiểm thử khác nhau, mỗi một kỹ thuật kiểm thử đượcxây dựng để phục vụ cho quá trình kiểm tra trong quy trình phát triển phần

mềm, dưới đây là một số kỹ thuật phổ biến:

(i) Kiểm thử chúc năng hay còn gọi là kỹ thuật kiểm thử hộp đen: Là kỹ thuậtkiểm thử dựa trên đặc tả chức năng của phần mềm Căn cứ vào yêu cầucủa chức năng, người thiết kế ca kiểm thử sẽ tạo ra các tập dữ liệu dựa để

đánh giá quá trình hoạt động của các chức năng mà không cần quan tâmtới cầu trúc bên trong của phần mềm Dây là một quy trình nhằm cố gắngtìm ra sự khác biệt giữa đặc tả và kết quả thực thi trên phần mềm.

(ii) Kiểm thử cấu trúc hay còn gọi là kỹ thuật kiểm thử hộp trắng: Là kỹ thuật

cho phép kiểm tra cấu trúc bên trong của phần mềm (mã nguồn), kỹ thuật

16

Trang 30

này dam bao mỗi câu lệnh bên trong mã nguồn sẽ được thực thi ít nhất

một lần trong quá trình kiểm thử Kiểm thử hộp trắng dựa trên cấu trúc

của chương trình bằng cách sử dụng các thuật toán cụ thể, nó đòi hỏi ngườikiểm thử cần phải có hiểu biết nhất định về đoạn mã nguồn kiểm thử.

(iii) Kiểm thử hộp xám: Là kỹ thuật kết hợp giữa kiểm thử hộp đen và kiểm

thử hộp trắng Trong kiểm thử hộp xám, cấu trúc bên trong chương trình

được sử dụng để thiết kế các ca kiểm thử, tuy nhiên khi thực hiện kiểm

thử thì người kiểm thử lại đóng vai trò là người dùng cuối cùng để thựchiện các ca kiểm thử.

Ngoài các kỹ thuật kiểm thử đã trình bày ở trên còn có các kỹ thuật kiểmthử khác như kiểm thử động, kiểm thử tĩnh, kiểm thử phi chức năng Luận ánsử dụng chính là phương pháp kiểm thử cấu trúc, nội dung này sẽ được trình

bày chi tiết ở phần tiếp theo.

2.2.3 Kiểm thử cấu trúc2.2.3.1 Đồ thị kiểm thử

Đồ thị kiểm thử là đồ thị có hướng được sử dụng để định nghĩa nhiều tiêu chíđể kiểm thử cấu trúc Đồ thị kiểm thử được xây dựng từ cấu trúc của chươngtrình (chẳng hạn như các thủ tục hoặc hàm) Các lộ trình trong đồ thị kiểm thửtương ứng với các ca kiểm thử cho các đối tượng cần kiểm thử.

Đồ thị kiểm thử G được định nghĩa bao gồm tập các đỉnh N và tập các cạnh

- Một đường đi (path - hay còn gọi là một lộ trình) là một chuỗi các đỉnh

[n1,n2, , ng], trong đó mỗi cặp đỉnh liền kề [n;,n;] với 1 =< i,j <= k thuộc

Trang 31

Đồ thị được sử dụng phổ biến nhất trong kiểm thử cấu trúc là đồ thị luồng

điều khiển D6 thị luồng điều khiển là đồ thị có hướng với tập đỉnh tương ứng

với các câu lệnh (hoặc nhóm câu lệnh) và các cạnh là các dòng điều khiển, đồ thịluồng điều khiển được xây dựng từ mã nguồn của chương trình hoặc các đoạn

chương trình.

2.2.3.2 Tiêu chí bao phủ

Một trong những van đề quan trọng trong kiểm thử đó là việc tạo ra các cakiểm thử với số lượng phù hợp và chất lượng cao nhất Trong kiểm thử có cấutrúc, mức độ bao phủ chương trình của một tập ca kiểm thử chính là độ đo kiểmthử Tập các ca kiểm thử có độ phủ cao hơn trên đồ thị CFG được đánh giá là

tốt hơn tập các ca kiểm thử có độ phủ thấp.

Độ bao phủ được tính bằng tỷ lệ giữa các thành phần được kiểm thử trêntổng số các thành phần sau khi đã thực hiện kiểm thử Có nhiều tiêu chí để

đánh giá độ bao phủ, dưới đây là một số tiêu chí bao phủ kiểm thử phổ biến:

- Bao phủ đỉnh (hay còn gọi là bao phủ câu lệnh): Yêu cầu thực thi các đường

đi kiểm thử sao cho tất cả các đỉnh trên đồ thị đều được thực hiện ít nhất

một lần Điều này đồng nghĩa với việc mỗi câu lệnh trong mã nguồn đềuđược thực thi ít nhất một lần.

- Bao phủ cạnh (hay còn gọi là bao phủ nhánh): Yêu cầu thực thi các đường

đi kiểm thử sao cho tất cả các cạnh trên đồ thị đều được đi qua ít nhất một

lần Nghĩa là mọi nhánh trong chương trình đều được thực thi ít nhất mộtlần.

- Bao phủ đường đi: Yêu cầu tất cả các đường đi đều được thực thi ít nhất

một lần trong quá trình kiểm thử Tuy nhiên, tiêu chí này rất khó đạt được

nếu trong các đoạn mã nguồn có chứa các vòng lặp vô hạn.

- Bao phủ đường di độc lập: Đối với các chương trình có chứa các vòng lặpvô hạn, số lượng các đường đi trong đồ thị sẽ là vô hạn Tuy nhiên, tồn tạimột tập con (nhỏ nhất) các đường đi cho phép tạo ra các đường đi còn lại,tập con các đường đi này gọi là tập các đường đi độc lập Số đường đi độc

lập của một đồ thị luồng điều khiển G bằng số điều kiện cộng với 1 Tiêu

chí bao phủ đường đi độc lập yêu cầu phải bao phủ tất cả các đường đi độc

lập theo cách tính toán trên.

18

Trang 32

2.2.3.3 Kiểm thử dựa trên đồ thị luồng điều khiển

Kiểm thử dựa trên đồ thị luồng điểu khiển nhằm tạo ra tập các ca kiểm thử

thỏa mãn các tiêu chí bao phủ như: Bao phủ đỉnh, bao phủ cạnh hoặc bao phủ

đường đi Tiêu chí bao phủ chính là điều kiện quan trọng để xác định đường đikiểm thử trên đồ thi CFG, từ đó tạo ra các ca kiểm thử tương ứng.

Quy trình kiểm thử dựa trên đồ thị luồng điều khiển được thực hiện qua các

bước dưới đây:

- Bước 1: Xây dựng đồ thị luồng điều khiển: Xuất phát từ mã nguồn

của chương trình, ta xây dựng đồ thị luồng điều khiển cho chương trình,đoạn chương trình bằng cách phân tích các câu lệnh, các dòng điều khiển.

Kết quả ta được một đồ thị CFG tương ứng với chương trình, đoạn chương

trình cần kiểm thử.

- Bước 2: Lựa chọn đường đi kiểm thử: Với đầu vào là đồ thị CFG kèm

theo tiêu chí kiểm thử, ta sử dụng các thuật toán trên đồ thị có hướng để

xác định được các đường đi thỏa mãn tiêu chí bao phủ theo yêu cầu Kếtquả của quá trình này là tập các đường đi được xây dựng từ đồ thị.

- Bước 3: Tạo các ca kiểm thử và thực hiện kiểm thử: Từ các đường

đi được tạo ra ở Bước 2, ta xây dựng tập các ca kiểm thử dựa trên tập cácđường di này và tiến hành kiểm thử.

2.3 Thiết bị di động và vấn đề năng lượng

Một trong những nội dung quan trọng của luận án là nghiên cứu sự ảnh

hưởng của mã nguồn tới mức độ tiêu thụ năng lượng của thiết bị Vì vậy, trongmục này luận án sẽ phân tích cấu trúc phần cứng của các thiết bị di động, trong

đó đặc biệt quan tâm tới van đề năng lượng Ngoài ra, phần này sẽ giới thiệu

về một số vấn đề liên quan tới phần mềm, các hệ điều hành và các công cụ lậptrình ứng dụng trên các thiết bi di động Van đề năng lượng trên các thiết bị diđộng sẽ được phân tích dựa vào các nghiên cứu đã công bố, từ đó đưa ra bức

tranh tổng quát nhất về các mô hình năng lượng trên các thiết bị di động dựa

vào việc phân tích mã nguồn.

19

Trang 33

2.3.1 Thiết bi di động và cấu tao phần cứng

Thiết bị di động được hiểu là một thiết bị máy tính đủ nhỏ để cầm và vận

hành trong tay Các thiết bị di động cung cấp giao diện màn hình cẩm ứng va

ban phim cảm ứng hoặc vật lý để con người có thể tương tác Các thiết bị di

động phổ biến hiện nay có thể kể đến đó là điện thoại thông minh, máy tinh

bảng và thiết bị đeo.

Hầu hết các thiết bị di động có thể kết nối Internet và kết nối với các thiết bị

khác như hệ thống giải trí trên xe hơi hoặc tai nghe thong qua Wi-Fi, Bluetooth,mạng di động hoặc giao tiếp trường gần Các thiết bị di động ngày nay còn tíchhợp máy ảnh, máy nghe nhạc kỹ thuật số, khả năng thực hiện và nhận các cuộcgọi điện thoại, trò chơi và sử dụng Hệ thống định vị toàn cầu.

Thiết bị di động thường được cấu thành từ nhiều phần cứng khác nhau tạo

ra một mô hình thống nhất Dưới đây là một số phần cứng phổ biến trên các

thiết bị di động:

- Màn hình: Bộ phận cấu tạo trên các thiết bị di động mà người dùng nhìn

thấy đầu tiên và nhiều nhất chính là màn hình Màn hình là nơi hiển thị

toàn bộ thông tin và tương tác với người dùng thông qua lớp cảm ứng Có

hai loại màn hình chính, đó là màn hình LED hoặc LCD, chúng có đặc điểm

và tính chất khác nhau, tuy nhiên ở góc độ năng lượng, màn hình sử dụngcông nghệ LED được đánh giá là tiết kiệm năng lượng hơn.

- Bộ cung cấp năng lượng - Pin: Trong cấu tạo của các thiết bị di động,

pin được xem là trái tim của thiết bị, chúng cung cấp toàn bộ năng lượng

để duy trì hoạt động cho thiết bị.

- Bộ xử lý trung tâm - CPU: Bộ xử lý trung tâm được ví như bộ não

của điện thoại giúp xử lý các dữ liệu, chương trình đang chạy Da phần cácthiết bị đi động dùng hệ điều hành Android hoặc iOS đều phù hợp với cấutrúc CPU do ARM thiết kế Các dòng CPU này được thiết kế cho laptop,máy tính bàn trước đây, tuy nhiên, khi được ứng dụng vào thiết bi di độngthì CPU được thiết kế tối ưu điện năng cho phù hợp với dung lượng có hạn

của Pin.

- Modem kết nối: Thiết bị đi động không thể thiếu tính năng kết nối Mỗi

thiết bị đi động đều được tích hợp các kết nối tùy chọn như 3G, 4G, NEC,

20

Trang 34

Bluetooth, LTE Để các hình thức kết nối này hoạt động được, thiết bị cần

cung cấp một mức năng lượng nhất định.

- Camera: Trong cấu tạo điện thoại thiết bị di động, camera được xem làcon mắt của thiết bị công nghệ này Da phần các thiết bị di động hiện nayđều được trang bị hai camera trước và sau Camera trên các thiết bị di động

ngày càng phát triển với khả năng chụp ảnh xa, sắc nét, xóa phông Cameradần trở thành thành phần không thể thiếu trên các thiết bị di động.

Bên cạnh những bộ phận kể trên, cấu tạo điện thoại thiết bị di động còn cónhiều bộ phận khác: Loa, mic, cổng cắm tai nghe, cổng sac, v.v Mỗi thành

phần đều có cơ chế hoạt động riêng, chúng thực hiện các chức năng đặc trưngsong về cơ bản đều tiêu thụ một mức năng lượng nhất định trên thiết bị.

2.3.2 Phần mềm trên thiết bị di động

Các nghiên cứu của luận án tập trung vào nghiên cứu mã nguồn của các phầnmềm trên điện thoại di động, trong phần này luận án giới thiệu một số hệ điềuhành dành cho thiết bị di động, các ngôn ngữ, thư viện và công cụ lập trình làmcơ sở cho các nghiên cứu về mã nguồn và đề xuất xây dựng một số công cụ hỗ

trợ lập trình.

2.3.2.1 Hệ điều hành trên thiết bị di động

Thiết bị di động có thể chạy các hệ điều hành di động cho phép các ứng dụng

của bên thứ ba được cài đặt và chạy, hai hệ điều hành pho biến hiện nay là iOS

của hãng Apple và Android của Google.

Android là hệ điều hành dựa trên Linux và phần mềm mã nguồn mở khác,được thiết kế chủ yếu cho các thiết bị di động có màn hình cảm ứng như điệnthoại thông minh và máy tính bảng Trong những năm qua, hệ điều hành An-

droid đã có những bước phát triển vượt bậc và nhanh chóng trở thành nền tảng

di động “thống trị” trên cả thế giới Tính đến tháng 3 năm 2021, Android nắmgiữ hơn 71% thị phần hệ điều hành di động trên thế giới.

Hệ điều hành iOS là hệ điều hành được Apple tạo ra và phát triển, dành cho

iPhone, iPad và các thiết bị di động khác của Apple Cùng với hệ điều hành

macOS trên MacBook, iOS được thiết kế để có thể kết nối dễ dàng giữa cácsản phẩm của Apple Phiên bản đầu tiên của iOS được phát hành vào tháng 6

21

Trang 35

năm 2007, khi iPhone ra mắt trên thị trường Hệ điều hành iOS là hệ điều hành

dành cho điện thoại di động phổ biến thứ hai trên thế giới, chỉ sau hệ điều hành

Trên các hệ điều hành này tích hợp sẵn các kho ứng dụng cho phép các nhà

phát triển đưa ứng dụng của mình lên và người sử dụng tải xuống để cài đặt vàsử dụng Hai kho ứng dụng phổ biến lần lượt là AppStore dành cho các thiết

bị chạy hệ điều hành iOS và GooglePlay dành cho các thiết bị di động chạy hệđiều hành Android.

2.3.2.2 Lập trình cho thiết bị di động

Lập trình ứng dụng di động là việc sử dụng những ngôn ngữ lập trình để viết

mã nguồn nhằm tạo ra các ứng dụng cho người sử dụng thiết bị di động Hiệnnay, các lập trình viên chủ yếu lập trình ứng dụng chạy trên nền tảng hai hệ

điều hành phổ biến là iOS và Android Trong hai hệ điều hành trên, Android là

hệ điều hành có tính mở hơn, vì vậy các nghiên cứu về mã nguồn trong luận ánnày sẽ tập trung vào các nghiên cứu trên nền tảng của Android.

Ngôn ngữ lập trình: Ngôn ngữ lập trình phổ biến cho các ứng dụng Androidlà Java và Kotlin Trong khi đó, Swift và Object-C là hai ngôn ngữ phổ biến chocác lập trình viên sử dụng để tạo ra ứng dụng chạy trên hệ điều hành iOS.

Thư viện lập trình: Các lập trình viên có thể sử dụng các bộ thư viện được

hỗ trợ bởi các ngôn ngữ lập trình để phát triển ứng dụng Đối với Android,

Google xây dung một hệ thống thư viện lập trình [18] trên nền tang ngôn ngữJava, hệ thống thư viện này cung cấp dưới dang API giúp cho người lập trình

dễ dàng sử dụng trong khi phát triển phần mềm Ngoài ra, các lập trình viêncũng có thể sử dung các SDK để phát triển ứng dụng di động đa nền tang (cho

phép chạy trên nhiều hệ điều hành) như React Native của Facebook, Flutter

của Google hoặc Xamarin của Microsof.

Công cụ lập trình: Các công cụ hỗ trợ lập trình viên phát triển ứng dụngcho Android bằng ngôn ngữ Java có thể kể đến là Android Studio, IntelliJ và

Eclipse Các công cụ này được các hãng phát triển trong nhiều năm, chúng hỗ

trợ cho người lập trình từ việc viết mã, sinh mã, thiết kế giao diện, kiểm thử

một số tính chất của phần mềm Tuy nhiên, các công cụ này cũng còn có nhữnghạn chế, đặc biệt trong bài toán năng lượng.

22

Trang 36

2.3.3 Vẫn đề năng lượng trên thiết bị di động

2.3.3.1 Phân tích các đặc tính năng lượng trên thiết bị đi động

Các thiết bị di động thường được trang bị một bộ cung cấp năng lượng (còngọi là Pin) với dung lượng có giới hạn trong khi các phần cứng như màn hình,

máy ảnh, bộ thu phát tín hiệu mạng, bộ vi xử lý, v.v tiêu thụ một mức năng

lượng đáng kể Rõ ràng, ngoài các phương pháp tối ưu mức tiêu thụ năng lượngcủa phần cứng, cách các ứng dụng điều khiển các phần cứng ảnh hưởng rất lớn

đến mức tiêu thụ năng lượng trên thiết bị [46, 47].

Nhiều cơ chế quản lý năng lượng đã được phát triển nhằm giảm thiểu sự tiêu

thụ năng lượng [104] Các cơ chế này được triển khai ở cấp độ hệ điều hành và

được thiết kế để không làm suy giảm hiệu năng của ứng dụng hoặc trải nghiệmngười dùng, do đó, các nhà phát triển ứng dụng không nhận ra điều này trongsuốt quá trình triển khai các ứng dụng Tuy nhiên, các nghiên cứu trước đây đã

chỉ ra rằng trong nhiều trường hợp, mức độ tiêu thụ năng lượng của một ứng

dụng có thể được cải thiện đáng kể thông qua những thay đổi trong mã nguồn

chương trình ngay cả khi có các cơ chế quản lý như vậy Một trong các lý dokhiến cho các cơ chế tiết kiệm năng lượng của hệ điều hành không hoạt động đólà khả năng tối ưu cách thức hoạt động trong từng tác vụ của ứng dụng, do đó

các nhà phát triển ứng dụng vẫn cần tối ưu mã nguồn thay vì phụ thuộc hoàn

toàn vào các cơ chế của hệ điều hành.

Các nhà phát triển phần mềm cần phải nhận diện được các hành vi tiêu thụnăng lượng trên thiết bị di động khi tiến hành các hoạt động cụ thể và tối ưumã nguồn chương trình để tiết kiệm năng lượng Để nhận biết được các hành vi

làm tiêu hao năng lượng, các nhà nghiên cứu về phần mềm tập trung vào các

giải pháp để phân tích các đặc tính và ước lượng mức độ tiêu thụ năng lượng

trên thiết bị đi động Việc phân tích nầy được tiến hành với từng phần cứng,từng đoạn mã nguồn chương trình nhằm tìm ra các đặc tính năng lượng củathiết bị dưới tác động của phần mềm.

Quá trình phân tích các đặc tính năng lượng của thiết bị di động gặp phải

Trang 37

như Monsoon Power Monitor [8], BattOr [99], va NEAT [24] Tuy nhiên,

phương pháp nay yêu cầu phải tháo mở thiết bị di động, đây là van đề hếtsức khó khăn với các thiết bị dang nguyên khối như điện thoại thong minh

hay máy tính bảng ngày nay Để giải quyết vấn đề này, các nhà nghiên cứu

thường sử dụng phương pháp tính toán mức độ tiêu thu năng lượng tức

thời thông qua việc gọi các API về Pin của hệ điều hành, từ đó có đượcthông số về năng lượng trong khoảng thời gian nhất định.

(ii) Thứ hai là khả năng đánh giá mức độ tiêu thụ năng lượng cho mỗi thành

phần đơn lẻ trong thiết bị Các phương pháp đo lường được đề cập ở trên

có thể cho biết tổng mức năng lượng tiêu thụ của thiết bị, song không thể

phan tách được mức tiêu thụ của từng thành phan Dé giải quyết van đề

này, các nhà nghiên cứu phải đưa ra được các mô hình biểu diễn mức độ

tiêu thụ năng lượng cho từng phần cứng đơn lẻ [88, 27] bằng cách sử dung

các công thức toán học, ứng dụng các mô hình này và thử nghiệm với một

tập mẫu đủ lớn để xác định mức tiêu thụ cho từng phần cứng.

(iii) Cuối cùng là khả năng phân tích mức độ tiêu thụ năng lượng của từng

chương trình, đoạn chương trình, dòng lệnh đối trong tổng mức độ tiêu thụ

năng lượng trên thiết bị Việc phân tích tác động của từng dòng lệnh, khốilệnh (66, 113] đối với mức độ tiêu thụ năng lượng rõ ràng là rất hữu ích

đối với các nhà phát triển phần mềm, cho phép các nhà phát triển phầnmềm phân tích, đánh giá, điều chỉnh mã nguồn trong quá trình phát triển

hệ thống nhằm tiết kiệm năng lượng.

2.3.3.2 Một số thuật ngữ trong các nghiên cứu năng lượng

Hiện nay, có rất nhiều các nghiên cứu về tính chất năng lượng cho các thiết bị

di động Các nghiên cứu này giới thiệu các bài toán, các mô hình, công thức, kỹ

thuật để giải quyết các bài toán về năng lượng cho thiết bị di động Tuy nhiên,

trong mỗi giải pháp các nhà nghiên cứu có thể định nghĩa một vấn đề với cáctên gọi khác nhau Sau quá trình nghiên cứu và tổng hợp các thuật ngữ cơ bản,

luận án trình bày các thuật ngữ, giải thích ý nghĩa và thống nhất sử dụng thuậtngữ trong suốt luận án này.

- Do lường mức độ tiêu thụ năng lượng: Day là phương pháp phụ thuộc

vào phần cứng, sử dụng các thiết bị chuyên dụng để đo công suất của thiết

bị từ đó tính toán ra mức độ tiêu thụ năng lượng Phương pháp này ít phụ

24

Trang 38

thuộc vào mô hình triển khai trong phần mềm Ví dụ phổ biến nhất cho

phương pháp này là đo lường bằng thiết bị ngoài như Moon Soon [8] hoặcđo lường kết hợp với việc gọi các API về Pin [31].

- Mô hình năng lượng: Đây là phương pháp biểu diễn mức độ tiêu thụnăng lượng bằng các mô hình toán học với các toán tử biểu diễn cho mức

tiêu thụ năng lượng của thành phần hoặc thiết bị Mô hình năng lượng có

thể biểu diễn cho một phần cứng đơn lẻ hoặc cho toàn bộ thiết bị, chúng

được xây dựng dựa trên những phân tích về đặc tính năng lượng của thiết

- Ước lượng mức độ tiêu thụ năng lượng: Dây là phương pháp ước lượng

mức độ tiêu thụ năng lượng cho thiết bị hoặc các thành phần đơn lẻ bằng

cách sử dụng các mô hình năng lượng, áp dụng các công thức toán học để

tính toán mà không cần phải đo lường trong thực tế Độ chính xác của việcước lượng phụ thuộc vào sự phù hợp của mô hình đối với mỗi bài toán cụ

- Lỗi năng lượng: Là một tình huống trong chương trình khiến cho điệnthoại tiêu hao năng lượng một cách vô ích Điều đó có nghĩa là nếu cải tiến

đoạn mã nguồn trong chương trình thì vẫn có thể hoàn thành cùng một

công việc nhưng mức tiêu thụ năng lượng ít hơn.

- Điểm nóng về năng lượng: Khác với lỗi về năng lượng, các điểm nóng

về năng lượng biểu diễn các tình huống mà thiết bị tiêu hao một lượng lớn

năng lượng nhưng không phải hoặc chưa xác định được đó có phải là lỗi

năng lượng hay không.

- Mức tiêu thụ năng lượng: Là chỉ số tiêu thụ năng lượng trong mộtkhoảng thời gian nhất định Đây là chỉ số quan trọng nhất trong các tínhchất về năng lượng của thiết bị di động.

2.3.3.3 Một số mô hình biểu diễn mức độ tiêu thụ năng lượng

Trong các nghiên cứu về sự ảnh hưởng của phần mềm đối với mức độ tiêuthụ năng lượng của thiết bị di động, các nhà nghiên cứu thường đề xuất các mô

hình tính toán biểu diễn sự phụ thuộc giữa mức độ tiêu thụ năng lượng với tác

động của chương trình Các mô hình này được sử dụng trong việc phân tích,

25

Trang 39

ước lượng, kiểm tra, giảm thiểu mức độ tiêu thụ năng lượng, tối ưu hiệu suất

làm việc của phần mềm.

Có nhiều loại mô hình được đề xuất, dưới đây là một số loại mô hình phổ

- Mô hình 6t6émat hữu han trang thái: Các nha nghiên cứu nhận định

rằng thiết bị hoặc từng phần cứng tiêu thụ năng lượng ở các mức cố định,

mỗi mức này được ghi nhận là một trạng thái Từ đó các nhà nghiên cứu

xác định các trạng thái và xây dựng các ôtômát hữu hạn trạng thái để biểudiễn cho sự thay đổi mức độ tiêu thụ năng lượng trên thiết bị di động.

Chang hạn, nghiên cứu [94, 88] mô hình thiết bị di động như một ôtômáthữu hạn các trạng thái, mỗi lời gọi hàm từ hệ thống có thể làm thay đổi

trạng thái của thiết bị.

- Mô hình dạng công thức toán học: Mô hình dạng này lấy các toán tửlà các nhân tố tác động tới mức độ tiêu thu năng lượng Sau khi xác địnhđầy đủ các toán tử, các nhà nghiên cứu sẽ đưa ra công thức tính toán mứcđộ tiêu thụ năng lượng dưới dạng hàm số với các biến là các toán tử đã xác

định trước Chẳng hạn như nghiên cứu [S4, 27] đã phân tích đặc tinh năng

lượng của một số phần cứng trên thiết bị di động, từ đó đưa ra các hàm

toán học để tính toán mức độ tiêu thụ năng lượng của một số phần cứng

như CPU, bộ thu phát 3G, màn hình, bộ thu phat Wifi.

- Mô hình ánh xạ mã nguồn: Các nhà nghiên cứu đánh giá các tác động

trực tiếp từ dòng lệnh, khối lệnh đối với mức độ tiêu thụ năng lượng, từ đó

đưa ra các mô hình biểu diễn mức tiêu hao năng lượng đối với từng dònglệnh, khối lệnh Một ví dụ điển hình có mô hình này là công cụ Elens củanhóm nghiên cứu [66], công cụ này dựa trên kết quả tính toán để biểu diễn

trực quan mức độ tiêu thụ năng lượng với các mau sắc khác nhau cho từng

câu lệnh.

2.4 Kết chương

Trong chương này, luận án đã trình bày một cách chi tiết về các kiến thức

nền tảng sẽ được sử dụng ở các chương tiếp theo Cụ thể, ở đầu chương luận ántrình về các phương pháp phân tích và biểu diễn chương trình, chi tiết về một

số phương pháp sẽ được sử dụng trong các Chương 3 và 4 Tiếp đến, luận án

26

Trang 40

nhắc lại một số vấn đề trong kiểm thử phần mềm bao gồm: Khái niệm về kiểmthử, các kỹ thuật kiểm thử và đặc biệt trình bày chi tiết về kỹ thuật kiểm thử

cấu trúc, đây là nền tảng được sử dụng trong Chương 4 Sau đó, luận án trìnhbày các kiến thức liên quan tới thiết bi động va van đề năng lượng trên thiếtbị di động, trong đó tập trung vào việc phân tích cấu trúc phần cứng và nănglượng trên các phần cứng, hệ thống phần mềm trên thiết bị di động, các hệ điều

hành và quá trình phát triển phần mềm cho thiết bị di động, vấn đề năng lượng

trên thiết bị di động và các nghiên cứu mô hình năng lượng, các kiến thức nền

tảng này được sử dụng trong các Chương 3 và 5.

Trong ba chương tiếp theo, luận án sẽ ứng dụng các nền tảng kiến thức cơ sở

để trong chương này đề xuất mô hình năng lượng cho thiết bị di động, phươngpháp ước lượng mức độ tiêu thụ năng lượng, phương pháp tối ưu bộ kiểm thử

tính chất năng lượng và phương pháp giảm tải sự tiêu thụ năng lượng cho thiết

bị di động.

27

Ngày đăng: 29/06/2024, 05:48

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w