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ượng trê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ên phan 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 án trì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át nă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 động và 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 Đó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ượng mứ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ễn mứ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 mô hình.
yy i “ Chương 4: Chuong 5: \ị i Tối ưu bộ kiểm thử tinh chat Giảm tải sự tiêu thụ năng lượng năng lượng của phần mềm di động cho thiết bị di động dựa vào phương dựa vào mô hình và phương pháp pháp ước lượng mức tiêu thụ năng : | ước lượng đã đề xuất. ¡ | Mục tiêu: Cai tiến do thị luong điêu Mục tiêu: Ứng dụng phương pháp ước ¡| khiển bằng cách bồ sung các trọng lượng tính toán mức tiêu thụ năng số tiêu thụ năng lượng làm cơ sở xác lượng cho các tác vụ, làm cơ sở đề xuất định khả năng phát hiện lỗi của các phương pháp giảm tải cho thiết bị di ca kiểm thử, từ đó dé xuất các thuật động bằng cách ra quyết định xử lý một toán tối ưu bộ kiểm thử tính chất so tac vụ trên máy chủ điện toán dam ee luong. / 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 án giớ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úng vớ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 đá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ải tiế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 phan tích mã nguồn.
Trong chương này, luận án đề xuất một phương pháp giảm tải mứ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ện toán đám mây di động. Dầu chương, luận án giới thiệu mô hình điện toán đám mâ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ường hợ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áy chủ đ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ứu tiếp theo trong tương lai.
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 trong cá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ùng là 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.
Phân tích và biểu diễn chương trình 2. 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ă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. 10 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. 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. 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.
11 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ã đó.