(3.5)
(3.6) (3.7)
3.3.2 Hàm đánh giá bộ nhớ
Trong quá trình thực thi một chƣơng trình hƣớng đối tƣợng, các thành phần thuộc lớp sẽ đƣợc cấp phát bộ nhớ và tồn tại đến khi kết thúc chƣơng trình; các thành phần thuộc đối tƣợng bắt đầu đƣợc cấp phát bộ nhớ khi đối tƣợng đƣợc tạo và tồn tại đến khi hủy đối tƣợng; các tham số và các biến cục bộ bên trong phƣơng thức tĩnh hoặc động đƣợc cấp phát bộ nhớ khi phƣơng thức đƣợc gọi và bị thu hồi bộ nhớ khi phƣơng thức kết thúc. Theo đó, hàm đánh giá mức chiếm dụng bộ nhớ có thể tính theo công thức (3.8). Ở đây, công thức (3.8) không sử dụng để tính dung lƣợng bộ nhớ chiếm dụng mà chỉ đƣợc sử dụng để đánh giá xem mô hình nào chiếm dụng bộ nhớ nhiều hơn. Theo công thức (3.8), hàm đánh giá bộ nhớ có giá trị càng nhỏ càng tốt.
(3.8)
3.4 Định nghĩa DSL, xây dựng framework và tạo mẫu T43.4.1 Định nghĩa DSL và xây dựng framework 3.4.1 Định nghĩa DSL và xây dựng framework
Để triển khai phƣơng pháp tối ƣu dựa trên biến đổi mô hình tự động, chúng ta cần xây dựng mô hình dữ liệu hệ thống. Mô hình này tƣơng tự nhƣ biểu đồ lớp nhƣng không xét tính kế thừa và phạm vi truy xuất của các thành phần. Theo đó, mô hình bao gồm một tập các cấu trúc và quan hệ giữa các cấu trúc. Mỗi cấu trúc bao gồm một tập các thành phần dữ liệu và tập các thao tác. Mỗi thành phần dữ liệu đƣợc đặc tả bao gồm tên, kiểu dữ liệu, loại tĩnh hay động và tần số truy xuất đƣợc ƣớc lƣợng. Đồng thời, mỗi thành phần dữ liệu cũng có thêm đặc tả về miền giá trị. Mỗi thao tác đƣợc đặc tả gồm tên, kiểu dữ liệu trả về, loại tĩnh hay động và tần số thực hiện cũng đƣợc ƣớc lƣợng. Để xây dựng DSL đặc tả dữ liệu, chúng
ta định nghĩa các lớp lôgic và các lớp ký hiệu nhƣ trong Bảng 3.3. Sau đó xây dựng siêu mô hình.
Bảng 3-1. Các lớp ngữ nghĩa và trực quan chính trong siêu mô hình
Lớp ngữ nghĩa Mô tả Lớp trực quan tƣơng
ứng
Comment Lớp biểu diễn chú thích CommentBoxShape
ModelClass Lớp biểu diễn một cấu trúc ClassShape ModelAttribute Lớp biểu diễn một thành phần
dữ liệu
Không có ModelOperation Lớp biểu diễn một hàm Không có ModelMultiAssociati
on
Lớp biểu diễn một liên kết giữa hai cấu trúc
AssociationConnector
3.4.2 Tạo mẫu T4 để sinh tham số tự động từ mô hình
Trong phần này chúng tôi sẽ định nghĩa các mẫu theo chuẩn công nghệ T4 và sử dụng để trích xuất các tham số từ biểu đồ lớp. T4 đọc tệp mô hình thiết kế thực tế và tệp XML định nghĩa DSL để từ các ký hiệu hình học trong mô hình thực tế sẽ chuyển thành các thành phần lôgic rồi phân tích và sinh mã phù hợp theo các template, thực hiện theo các bƣớc sau:
- Thiết kế biểu đồ lớp theo DSL đã đƣợc xây dựng ở phần trƣớc - Cập nhật các tham số của biểu đồ đã đƣợc thiết kế
- Thêm tập tin có phần mở rộng .tt vào dự án
Định nghĩa các mẫu theo chuẩn công nghệ T4 và sử dụng để trích xuất các tham số về Name, Frequence từ biểu đồ.
Hình 3-11. Cập nhật các tham số thành phần của biểu đồ
Hình 3-12. Một mẫu đƣợc xây dựng theo T4 để sinh tham số Name và Frequence từ biểu đồ lớp
Tập tin đầu ra có kiểu là .txt đã trích xuất các tham số từ biểu đồ.
Hình 3-13. Tập tin đầu ra của T4 trích xuất các tham số từ biểu đồ