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 1 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

Thông tin cơ bản

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ác giả Bùi Anh Tú
Người hướng dẫn PGS.TS. Trương Ninh Thuận
Trường học Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại Luận án Tiến sĩ Kỹ thuật phần mềm
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 145
Dung lượng 43,2 MB

Cấu trúc

  • Chương 1. GIỚI THIỆU (14)
    • 1.1. Đặt vấn đề......................... 2Q 2n nh xa 1 1.2. Đóng góp của luận ấn........................... 2n. 5 1.3. Cấu trúc luận ấn.................... ng ng ng nh vn v xy 7 Chương 2. KIÊN THUC CƠ SỞ (14)
    • 2.1. Phân tích và biểu diễn chương trình (23)
      • 2.1.1. Phân tích chương trình (23)
      • 2.1.2. Các kỹ thuật biểu diễn chương trình (26)
      • 2.1.3. Ôtômát hữu hạn các trạng thấi (27)
    • 2.2. Một số vấn đề trong kiểm thử phần mềm (0)
      • 2.2.1. Khái niệm kiểm thử phần mềm (29)
      • 2.2.2. Các kỹ thuật kiểm thử phần mềm (29)
      • 2.2.3. Kiểm thử cấu trúC......................c 226222122. 17 2.3. Thiết bị di động va van đề năng lượng (30)
      • 2.3.1. Thiết bị di động và cấu tạo phần cứng (0)
      • 2.3.2. Phần mềm trên thiết bị di động (34)
      • 2.3.3. Vẫn đề năng lượng trên thiết bị di động (36)
    • 2.4. Két Chuong.... .... đa. ences 26 Chương 3. UGC LƯỢNG MUC TIEU THU NANG LƯỢNG CUA (0)
    • 3.3. Mô hình hóa mức tiêu thụ năng lượng của thiết bị di động (47)
      • 3.3.1. Anh hưởng của mã nguồn tới sự tiêu thụ năng lượng (0)
      • 3.3.2. Mô hình hóa trang thái năng lượng cho các phần cứng (0)
      • 3.3.3. Mô hình hóa trạng thái năng lượng cho thiết bị di động (54)
      • 3.3.4. Ôtômát năng lượng cho ứng dụng di động (57)
    • 3.4. Ước lượng mức tiêu thụ năng lượng của thiết bị di động (60)
      • 3.4.1. Dac ta hình thức cho các ỦC (0)
      • 3.4.2. Bộ đếm thời gian trong mô hình trạng thái năng lượng......... ol 3.4.3. Hệ số tiêu thu năng lượng tại mỗi trạng thái (64)
      • 3.4.4. Công thức ước lượng mức độ tiêu thụ năng lượng cho UC (0)
    • 3.5. Công cụ mô hình hóa và ước lượng mức tiêu thụ năng lượng (0)
      • 3.5.1. Công cụ trực quan hóa trang thái năng lượng (0)
      • 3.5.2. Công cụ ước lượng mức tiêu thu nang lượng (0)
    • 3.6. Thực nghiệm.........................-. 2Q nh sa 61 1. Công cụ thực nghiệm............................ccc c2 61 2. Kết quả thực nghiệm (74)
    • 3.7. Thảo luận và đánh giá..........................-. Sa 64 1. Thảo luận về ôtômát năng lượng (77)
      • 3.7.2. Đánh giá phương pháp ước lượng (79)
    • 3.8. Tổng kết chương........................ 2220222122. 67 Chương 4. TOI UU BO KIEM THU TÍNH CHAT NANG LUGNG (80)
      • 4.2.2. Phan loại lỗi năng lượng (0)
      • 4.2.3. Kiểm thử tinh chat năng lượng (0)
    • 4.3. Các nghiên cứu liên quan..................... c2 een sa 75 4.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 di 501220115 (88)
      • 4.4.3. Tính toán hệ số phủ năng lượng cho các ca kiểm thử (97)
      • 4.4.4. Tối ưu bộ kiểm thử....................... c2 22s. 86 4.5. Thực nghiỆệm.................... ng HH HH HH tenet eeneees 88 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 (99)
    • 5.1. Giới thiỆU............... cece eee eect e eee eene ees 94 1. Mô hình điện toán đấm mây di động (107)
      • 5.1.2. Bài toán giảm tải trong mô hình điện toán đấm mây di động (0)
    • 5.2. Các nghiên cứu liên qUaAN..................-.c 2c 2n Sa 97 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 (110)
      • 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 (113)
      • 5.3.3. Dề xuất mô hình giảm tải mức độ tiêu thụ năng lượng (0)
    • 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 (0)
      • 5.4.2. Tính toán mức độ tiêu thụ năng lượng cho mỗi tac vụ (119)
      • 5.4.3. Tính toán tổng chi phí cho mỗi trường hợp thực thi tác vu (0)
      • 5.4.4. Xác định hàm mục tiêu (0)
      • 5.4.5. Thuật toán ra quyết định giảm tải (122)

Nội dung

GIỚI THIỆU

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

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ết bị 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úp quá 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ăng lượng được giải quyết bằng hai phương pháp đó là đo lường thực tế và ước lượng dự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êu thụ 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ăng lượ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ềm khá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ùy thuộ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 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 ưu cá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ể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 [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ớn hoặ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ài việ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ượng mộ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ần thiế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ật toá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ác trường hợp thực thi tác vụ ở môi trường khác nhau Các nghiên cứu về giảm tả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 ứng dụ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ên cá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êu thụ 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 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ăng lượ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ăng lượ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ên cứ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ần cứ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ần mề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ác nhượ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ện sự 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 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 đám mâ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ác van đề 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 được cá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ân tích chương trình tĩnh để phân tích các mã nguồn của ứng dụng di động: nghiên cứ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 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ảm thiể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ên cứ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ác thiế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 định sự ả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 ô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ượng củ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ên thiế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ển bằ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.

Phân tích và biểu diễn 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ăng lượ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ân tí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 tra kế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.

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ện mô hình của phần mềm, xác định đầy đủ các đường thực thi của chương trình mà không cần phải thực thi phần mềm Do sự phù hợp của phương pháp đối vớ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 theo 4 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ừu tượ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 pho biến để phân tích chương trình tĩnh Dòng điều khiển chương trình được mô 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ủa kỹ 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ĩa chương trình và tập trung vào xác định các giá trị có thể của dữ liệu nhằm biể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.

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ực tế 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ất hiệ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 JavaParser sử 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 sinh ra đồ 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

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 mềm.

Kiểm thử phần mềm không chỉ giúp tìm ra các lỗi của phần mềm, quá trình này còn giúp xác định một phần mềm:

6 đáp ứng được yéu cầu trong thiết kế hay không?

6 thực hiện các công việc đúng như kỳ vọng hay không? ó

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? C

Quá trình kiểm thử phần mềm có thể được thực hiện trong bất kì pha nào củ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ử được xâ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ật kiể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ầu củ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âm tớ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ắng tì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 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ười kiể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ực hiệ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ểm thử khác như kiểm thử động, kiểm thử tĩnh, kiểm thử phi chức năng Luận án sử 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úc 2.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ương trì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

- Tập các đỉnh đầu No và tập các đỉnh cuối Ny đều là tập con của N, tập các cạnh # là tập con của N x N,

- 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 1000) value = mediaPlayer.Stop(); else mediaPlayer.Stop();

Khi thực thi với đầu vào time = 1001 thi đoạn lệnh trên sé chỉ chạy theo nhánh của lệnh if với giá trị biểu thức điều kiện là 1001 > 1000 (tương ứng với biểu thức điều kiện đúng), tức là lệnh mediaPlayer.Stop() sẽ được thực thi.

Các câu lệnh điều khiển mặc dù xuất hiện trong chương trình, tuy nhiên không cần biểu diễn trong các UC Nhu vậy, ta không cần hình thức hóa cho nhóm câu lệnh này.

(ii) Nhóm 2: Nhóm các câu lệnh làm thay đổi trạng thái của thiết bi Day là nhóm các câu lệnh có trong tập kí hiệu vào của Otomat tổng quát App, các câu lệnh này làm thay đổi trạng thái tiêu thụ năng lượng từ mức này sang mức khác.

Chang hạn, câu lệnh MediaPlayer.Start() sẽ làm thay đổi thành phan Audio

49 từ of f sang on Có nhiều câu lệnh có thể tạo ra các tác động tượng tự như

MediaPlayer.Start(), vì thé ta sẽ nhóm các câu lệnh có chung tính chất thành một câu lệnh hình thức là Audio: On. Áp dụng với phương pháp tương tự ta sẽ có danh mục các câu lệnh hình thức trong Bảng 3.6.

Bang 3.6: Các câu lệnh hình thức trong đặc ta UC a ee Giải thích ý nghĩa của các câu lệnh

Thực nghiệm .- 2Q nh sa 61 1 Công cụ thực nghiệm ccc c2 61 2 Kết quả thực nghiệm

Nhằm đánh giá tính hiệu quả của phương pháp ước lượng, luận án tiến hành thực nghiệm ước lượng mức tiêu thụ năng lượng cho một số UC trong thực tiễn.

Phương pháp được thực hiện và so sánh với các phương pháp đo lường khác.

Trong thực nghiệm này, luận án tiến hành ứng dụng mô hình Ôtômát năng lượng, phương pháp và các thuật toán ước lượng đã đề xuất để tiến hành ước lượng kết quả tiêu thụ năng lượng khi thực thi một số UC Việc so sánh với các phương pháp đo lường và ước lượng khác nhằm xác định độ tin cậy của phương pháp ước lượng mà luận án đã đề xuất.

Thiết bị sử dụng để chạy ứng dụng thực nghiệm là chiếc điện thoại Samsung

Galaxy Note 8 (Cấu hình như sau: CPU: Snapdragon 280, GPU: Snapdragon:

Adreno 540, Ram: 6 GB, Storage: 64 GB) được gỡ bỏ các ứng dụng không cần thiết nhằm tránh bị nhiễu trong quá trình tính toán mức tiêu thụ năng lượng.

Phần mềm được chọn để thực nghiệm là phần mềm Bản đồ mã nguồn mở có

61 tên Osmdroid được công bố mã nguồn trên Github [91] Luận án tiến hành tải mã nguồn va bổ sung vào sau mỗi câu lệnh của Osmdroid một lệnh in ra nhật ký tên các phương thức (hoặc tên câu lệnh) thực thi, thời gian thực thi vào tệp tin nhật kí trên thiết bị di động, mã nguồn sau khi chỉnh sửa được công bố trên

Github* Tép tin nhật ký này sau đó sẽ được sử dụng để thiết kế các UC dưới dạng câu lệnh hình thức Phần mềm sau khi bổ sung lệnh in nhật ký sẽ được biên dịch lại và cài đặt lên thiết bị di động để tiến hành thực nghiệm.

Thực nghiệm sẽ tiến hành đo lường thực tế trên thiết bị vật lý, do đó cần thực hiện nhiền lần đo cho một ÚC để nâng cao tính chính xác của việc đo lường.

Nhằm tao ra các thao tác giống hệt nhau cho mỗi lần thực thi UC, luận án sử dụng một phần mềm tự động bấm (click) có tên Auto Click [19] Auto Click sẽ chỉ lại thao tác của người sử dụng khi thực thi một UC và lặp lại chúng nhiều lần với thao tác chính xác 100% so với thao tác của người sử dụng.

Ngoài việc tiến hành đo lường bằng thiết bị vật lý, thực nghiệm tiến hành đo lường song song với phần mềm AccuBattery - Pin [10] Hình 3.8 minh hoa phương pháp do lường sử dụng AccuBattery - Pin Hai ứng dụng Osmdroid va

AccuBattery - Pin được chạy song song để ghi nhận các thông số tiêu thụ năng lượng trên thiết bị di động.

Luận án tiến hành thực nghiệm và tính toán mức tiêu thụ năng lượng cho mỗi UC bằng ba cách khác nhau, sau đó so sánh kết quả của chúng.

Cách 1: Thực thi UC trên thiết bi vat lý va do lường bằng thiết bị Keueisi KWS-MX18 [5] Dỗi với mỗi UC, thực nghiệm sử dung Auto Click ghi lại quá trình thao tác của người thử nghiệm, sau đó chạy lại các thác tac này Sau mỗi lần thực thi, thực nghiệm sẽ sử dụng Keweisi KWS-MX18 để đo lường mức tiêu thu năng lượng Dé đảm bảo tính chính xác, quá trình thực nghiệm cho mỗi UC được tiến hành 10 lần giống nhau, kết quả đo lường được tính trung bình bằng trung bình của tất cả các lần đo lường.

Cách 2: Thực thi UC trên thiết bi vat ly va do lường bằng AccuBattery - Pin.

AccuBattery - Pin sẽ được bật song song trong quá trình Auto Click thực hiện các UC trên Osmdroid Mỗi UC cũng được thực hiện 10 lần và kết quả được tính trung bình của các lần đo lường.

*#Osmdroid edited: https://github.com/tubavn/osmdroid-master-edited

We tê Ae all ll 67% § id = Bac-Giang Z7

Mức sử dung pin trung bình -19,9%/h

Sac Tiéu thu pin Hiéu suat Lich sử om) S O

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

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Cau trúc của luận án. - 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
Hình 1.1 Cau trúc của luận án (Trang 21)
Hình 2.1: Ví dụ về một hàm chuyển trang thái của DFA - 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
Hình 2.1 Ví dụ về một hàm chuyển trang thái của DFA (Trang 28)
Bảng 2.1: Ví dụ về một hàm chuyển trạng thái của DFA - 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
Bảng 2.1 Ví dụ về một hàm chuyển trạng thái của DFA (Trang 28)
Hình 3.1: Các trạng thái năng lượng của bộ phát âm thanh - 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
Hình 3.1 Các trạng thái năng lượng của bộ phát âm thanh (Trang 49)
Bảng 3.2: Bảng chuyển trạng thái của ôtômát Agps - 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
Bảng 3.2 Bảng chuyển trạng thái của ôtômát Agps (Trang 51)
Bảng 3.3: Bảng chuyển trạng thái của ôtômát Arcp - 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
Bảng 3.3 Bảng chuyển trạng thái của ôtômát Arcp (Trang 52)
Bảng 3.4: Bảng chuyển trạng thái của ôtômát Asœoeuuiax - 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
Bảng 3.4 Bảng chuyển trạng thái của ôtômát Asœoeuuiax (Trang 53)
Hình 3.2: Sự chuyển trạng thái năng lượng của thiết bi di động - 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
Hình 3.2 Sự chuyển trạng thái năng lượng của thiết bi di động (Trang 56)
Hình 3.3: Sơ đồ đo lường mức tiêu thụ năng lượng - 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
Hình 3.3 Sơ đồ đo lường mức tiêu thụ năng lượng (Trang 66)
Hình 3.4: Thiết bi đo lường Keweisi KWS-MX18 - 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
Hình 3.4 Thiết bi đo lường Keweisi KWS-MX18 (Trang 67)
Hình 3.6: Tổng quan về PCE - 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
Hình 3.6 Tổng quan về PCE (Trang 72)
Hình 3.7: Kết quả ước lượng từ công cu PCE - 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
Hình 3.7 Kết quả ước lượng từ công cu PCE (Trang 74)
Hình 3.8: Do lường mức tiêu thụ năng lượng với AccuBattery - Pin - 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
Hình 3.8 Do lường mức tiêu thụ năng lượng với AccuBattery - Pin (Trang 76)
Bảng 3.8: Kết quả thực nghiệm tính toán mức tiêu thụ năng lượng - 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
Bảng 3.8 Kết quả thực nghiệm tính toán mức tiêu thụ năng lượng (Trang 78)
Hình 4.2: Xây dựng đồ thị CFG¢t từ CFG. - 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
Hình 4.2 Xây dựng đồ thị CFG¢t từ CFG (Trang 97)
Bảng 4.2: Lần lựa chọn 2 - t2 được chọn - 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
Bảng 4.2 Lần lựa chọn 2 - t2 được chọn (Trang 100)
Bảng 4.4: So sánh kết quả kiểm thử của bộ kiểm thử T và T” - 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
Bảng 4.4 So sánh kết quả kiểm thử của bộ kiểm thử T và T” (Trang 105)
Hình 5.1: Kiến trúc của mô hình điện toán đám mây di động - 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
Hình 5.1 Kiến trúc của mô hình điện toán đám mây di động (Trang 108)
Hình 5.2: Mô hình giảm tai cho các tác vụ trong MCC - 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
Hình 5.2 Mô hình giảm tai cho các tác vụ trong MCC (Trang 116)
Bảng 5.2: Các yếu tố tác động tới quá trình ra quyết định giảm tải - 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
Bảng 5.2 Các yếu tố tác động tới quá trình ra quyết định giảm tải (Trang 118)
Hình 5.3: Biểu đồ so sánh tổng thời gian thực thi - 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
Hình 5.3 Biểu đồ so sánh tổng thời gian thực thi (Trang 126)
Hình 5.4: Biểu đồ so sánh tổng mức năng lượng tiêu thụ - 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
Hình 5.4 Biểu đồ so sánh tổng mức năng lượng tiêu thụ (Trang 127)
Hình 5.5: Biểu đồ so sánh khả năng tiết kiệm năng lượng và thời gian - 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
Hình 5.5 Biểu đồ so sánh khả năng tiết kiệm năng lượng và thời gian (Trang 128)

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

TÀI LIỆU LIÊN QUAN

w