DI ĐỘNG VÀ PHƯƠNG PHÁP PHÁT TRIỂN LINH HOẠT
2.2. Kỹ thuật phân tích và tái cấu trúc mã nguồn để nâng cao hiệu năng của ứng dụng d
2.2.4.1 xuất kỹ thuật phân tích và tái cấu trúc mã nguồn PMDlint
• Kỹ thuật đề xuất thực hiện các nhiệm vụ:
o Phân tích các đề án ứng dụng Android: Đây là một trong những tính năng chính nhằm thực hiện việc phân tích các dự án chứa mã nguồn Java để tìm ra các thành phần tiềm ẩn (potential problems) và thông tin về các luật bị vi phạm.
o Giải quyết các thành phần tiềm ẩn các vấn đề: cho phép sửa chữa và giải quyết
các vấn đề tiềm ẩn nhằm tối ưu hóa mã nguồn.
o Xem thơng tin các luật: cho phép chọn một thành phần tiềm ẩn nào đó để xem các thơng tin về luật bị vi phạm.
o Xóa bỏ một thành phần tiềm năng trong danh sách.
o Bổ sung luật mới vào bộ luật đã có: dựa vào kinh nghiệm lập trình của mình, người lập trình có thể thêm các luật mới vào tập luật đã có.
• Mơ hình kiến trúc của PMDlint:
Dựa vào các đặc tả nhiệm vụ đã được nêu trên, PMDlint sẽ được phân chia thành các thành phần con giúp cho việc thiết kế và triển khai trở nên dễ dàng hơn, kiến trúc của PMDlint được xây dựng dạng plug-in và được thể hiện trong Hình 2.1.
Kiến trúc gồm 5 thành phần chính:
o Bộ nạp cấu hình (Configuration Loader): nạp và lưu lại cấu hình các luật tối ưu mã nguồn. Các thông tin liên quan về các luật cũng được nạp vào trong mơ-đun này. Cấu hình này phải được nạp trước bất kỳ hoạt động nào của ứng dụng, bởi cấu hình này được sử dụng bởi hầu hết các chức năng.
o Bộ tiền xử lý (Preprocessor): thu thập thơng tin hữu ích từ mã nguồn Java, phân tích mã nguồn từ các tập tin được lưu trong dự án của Eclipse thành cây cú
pháp AST, phân loại các thành phần của AST thành các nhóm riêng biệt có cùng kiểu.
o Bộ phân tích (Analyzer): dị tìm các thành phần tiềm ẩn trong mã nguồn Java, lấy dữ liệu từ bộ tiền xử lý là các nhóm nốt cùng kiểu và thao tác trên chúng.
o Khối hiển thị thành phần tiềm ẩn (Display Problem Unit): hiển thị các thành phần tiềm ẩn được tìm thấy bởi bộ phân tích. Các thông tin về các thành phần này sẽ được tổng hợp và hiển thị giúp người sử dụng có cái nhìn trực quan về thực trạng mã nguồn chương trình mà mình đang viết.
o Khối tái cấu trúc mã nguồn (Refactoring Unit): cấp cho người sử dụng một công cụ hỗ trợ việc thay đổi mã nguồn để loại bỏ các thành phần tiềm ẩn giúp cho mã nguồn trở nên tối ưu hơn và chất lượng hơn.