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.2. Sử dụng luật phân tích mã nguồn
Theo [11,47] mỗi luật sẽ tác động lên các thành phần khác nhau của mã nguồn. Các thành phần này là kết quả của việc phân tích mã nguồn ban đầu thành cây cú pháp trừu tượng AST đối với Java và cây DOM đối với XML. Do vậy, chiến lược để phát hiện các thành phần tiềm năng được thực hiện như sau:
Bước 1: Với từng tệp mã nguồn Java (*.java) và XML (*.xml) trong dự án, phân
tích chúng thành một cây cú pháp trừu tượng AST và cây DOM.
Bước 2: Với mỗi cây cú pháp trừu tượng và cây DOM thu được, tiến hành phân
loại các thành phần của chúng thành những nhóm có cùng kiểu. Ví dụ, chia chúng thành nhóm chứa các phần tử là lời gọi phương thức, nhóm chứa các phần tử là các khai báo biến, ...
Bước 3: Với mỗi qui tắc trong tập các qui tắc đã được xây dựng, áp dụng vào
những thành phần mà qui tắc đó tác động lên. Nếu những thành phần đó vi phạm điều kiện mà luật đã đề ra thì đó sẽ là những thành phần tiềm năng.
Bước 4: Với mỗi thành phần tiềm năng phát hiện được, tổng hợp những thông tin
cần thiết liên quan đến thành phần tiềm năng đó và đưa chúng vào một danh sách. Danh sách này sẽ được thông báo lại cho người sử dụng.
Do tập luật phong phú, hơn nữa việc các luật có nên được áp dụng trong một trường hợp cụ thể hay không đôi khi phụ thuộc rất nhiều vào ngữ nghĩa của chương trình. Vì vậy, các thành phần tiềm năng cần được liệt kê đầy đủ trong một danh sách để người lập trình quyết định sẽ áp dụng hoặc khơng áp dụng luật nào vào mã nguồn của mình.