Tôi xin cam đoan: Luận văn “Tối ưu phần mềm nhúng trong giai đoạn thiết kế dựa trên chuyên đổi mô hình” là công trình nghiên cửu độc lập của tôi Những số liệu, kết quả nêu trong luận vă
Trang 1NGUYEN THI THU HUYEN
TOI UU PHAN MEM NHUNG TRONG GIAI
DOAN THIET KE DUA TREN CHUYEN DOI
MÔ HÌNH
Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mêm
Ma sé: 60480103
LUAN VAN THAC SY CONG NGHE THONG TIN
NGUOI HUONG DAN KHOA HOC: PGS.TS NGUYEN NGOC BINH
Hà Nội ~2014
Trang 2ATEN CHUYEN DUNG
1.4.4 Tich hop T4 vao DST framework dé sinh mã tử mô hỉnh 19 CHƯƠNG 2 CÁC PHƯƠNG PHIÁP TÓI ƯU TRONG GIAI ĐOẠN THIẾT
KE 21
2.1 TONG QUAN VB'TOI UU PHAN MBM NHUNG 21
2.3 CÁC PHƯƠNG PHIÁP TỎI ƯU PHẢN MẺM NHÚNG TRONG GIAI
C HUONG 3 Tol ƯU PHẢN MB M NHŨNG TRƠNG GIẢI ĐOẠN THIẾT
KE DUA TREN CHUYEN DOI MG HINH
3.2.1 Phân chia câu trúc
3.22 Gộp cấu trúc
3.2.3 Thay đối thử tự mối quan hệ
3.2.4 Hướng giới hạn của mỗi quan hệ
3.2.5 Tạo hoạt đồng đặc trưng
3.2.6 Chuyến đổi thuộc tính thành tham số
3.2.7 Loại hồ các thuộc tính dư thừa
3.2.8 Chuyển thuộc tính thành lớp
Trang 3
3.2.10 Chuyển tham số thành thuộc tính
3.5.1 Chuyển đỗi mô hình dễ tỗi ưu hiệu năng
3.5.2 Chuyển đối mô hình để tối ưu bộ nhớ chiếm dụng
4.1 MÔ TẢ VÀ MÔ HÌNH THỰC NGHIỆM
4.2 THỰC NGIHữM 1 - ỨNG DỰNG BÀI TOÁN THÁP HÀ NỘI
4.2.1 Mô tả bải toán
4.2.3 Biến đổi mô hình lớp
4.2.4 Dánh giá hiệu năng và lựa chọn m mô hình tốt hơn -
'THỰU NGHIÊM 2 - UNG DUNG BÀI TOÁN 8 QUẦN HẬU 56
4.3.4 Đánh giá năng và lựa chọn mô hình tốt hơn 61 4.4 THUC NGHIÊM 3 - UNG DUNG SAP XEP KIBUPHAN DOAN N (QUICK
441 Mô
4.4.2 Thiết kế lớp gốc
4.4.3 Diến đổi mô hình lớp
4.4.4 Dánh giá hiệu năng và lựa chọn m mô hình tốt hơn
45 THỰC NGHIÊM 4 - UNG DUNG VỀ DỎ THỊ
tết kế lớp gốc 4.5.3 Biển đỗi mô hình lớp
4.5.3 Đánh giá hiệu năng và lựa chọn mô hình tốt hơn
KET LUAN VA HUONG PHAT TRIEN
TÀI LIỆU THAM KHAO
Trang 4
DANH MỤC CÁC BẢNG
Bang 3-2 Cac tham sé str dung dé danh giá hiệu năng 40
Bang 3-3 Các lớp ngữ nghĩa và trực quan chính trong siêu mô hình 42
Bang 4-1 5o sánh hiệu năng thực tế các chương trinh Bai toán Tháp 1R Nội 56 Bang 4-2 ¥ y
Bang 4-3 So sánh hiệu năng thực tế các chương trình Bai toán 8 quân hậ
Táng 4-4 5o sánh tỷ lệ giảm khi chạy chương trình Bài toán 8 quân hậu
Bang 4-5 So sánh hiệu năng thực tê cdc chuong trinh Quick Sort
Bảng 4-6 5o sánh tỷ lệ giảm khi chạy chương trình Quick Sort
Bảng 4-7 So sánh hiệu năng thực tế các chương trình Vẽ đã thị
Bảng 4-8 So sánh tỷ lệ giám khi chạy chương trình Vẽ đỗ thị
Tinh 1-5 Một phần cua siéu mé hinh dinh nghia DST
Hình 1-6 Framework DSL hé tro thiét ké bidu dé lớp
Hinh 1-7 Các bước sinh mã theo T4
Tình 1-8 Một mẫu được xây dựng theo T4 để sinh tham số từ biểu đồ lớp 20
Tĩnh 2-1 Quy trình triển khai kỹ thuật tối ưu hưởng mô hình 26
Ilinh 3-2 Vi du vé chuyén đổi phân chia ¢ cầu iri
Hình 3-3 Ví dụ về chuyển đổi gộp cầu trúc
Hình 3-4 Ví đụ về chuyển đổi thay đổi thứ tự mối quan h
Hình 3-5 Ví dụ chuyển đối hướng giới han mỗi quan hệ
Hình 3-6 Ví dụ chì đối tạo hoạt động đặc trưng
Hình 3-7 Ví dụ chuyển dễi lập thuộc tính tạm thời
Hình 3-8 Vi dụ chuyển đối loại bé các thuộc lính dư thừa 36
Tinh 3-10 Siêu mô hình của DSL hỗ trợ tối ưu hiệu năng cho biểu đỗ lớp 42 Hình 3-11, Cập nhật các tham số thành phần của biểu đồ 43
Ilinh 3-12 Một mẫu được xây dựng theo T4 đề sinh tham sé Name và Frequence
từ biểu đồ lớp 4
Hình 3-13 Tập tin đầu ra của T4 trích xuất các tham số từ biểu đỗ
linh 3-14 Chương trình tối ưu
Hinh 3-15 Tính toán hiệu năng, bộ nhớ chiếm dụng cho -
Hình 3-16 Biểu đỗ so sánh tối ưu hiệu năng, bộ nhớ chiếm dụng của biêu đô lớp
Trang 5Hình 4-4 Thuộc tinh lần số truy xuất thành phần trong biểu đề lớp À1
Hình 4-5 Chương trình thực hiện phép phần chia cầu trúc bidu da lop A
Ilinh 4-6 Mẫu T4 lây các thông tin ngữ nghĩa từ mô hình lớp A
1lình 4-7 Têp XML được tạo từ chương trình tối ưu A
Tỉnh 4-8 Mô hình để liệu mới A
Ilinh 4-9 Tệp tham số đựa trên các Ta templates c của A
Hinh 4-10 Tỉnh toán hiệu năng và bộ nhớ cho mỗi biểu đề 'lớp A
Hình 4-11 Biểu đồ so sánh tôi ưu hiệu năng và bô nhớ chiếm dụng của biểu dễ
Hình 4-15, Thuộc tính tần số truy xuất thành phần rong biểu dề lớp BỊ 58 Thin 4-16 Chuong trinh thyc hién phép phan chia cdu trac bigu dd Iép B 59
Hình 4-17 Mẫu T4 lây các thông tin ngữ nghĩa từ mô hinh lép B 59
Ilinh 4-18 Tệp XML được tạo từ chương trinh téi uu B
1Tỉnh 4-19 Mô hỉnh đữ liệu mới B
Hình 4-20 Tệp tham số dựa trên các T4 templates của B
Hình 4-21 Tỉnh toán hiệu năng và bộ nhớ cho mỗi biểu đề lớp B
Hình 4-22 Biểu đỗ so sánh tối ưu hiệu năng và bộ nhớ chiếm dụng của bị
lớp B
Hình 4-23 Giao diện chương trình Bài toán § Quân hậu
Hình 4-24 Biểu dễ lớp C1 -
Hinh 4.25 Tép XMIT, của biển đồi lớp C1
Hình 4-26 Thuộc tính tần số truy xuất thành phan trong biểu đỗ lớp C1
Hình 4-27 Chương trính thực hiện phép phân chia cau trúc biểu đỗ lớp Œ
Ilinh 4-28 Mẫu T4 lẫy các thông tin ngữ nghĩa từ mô hình lớp Œ
1lïnh 4-29 Tệp XML được tạo từ chương trình tối ưu Ở
Hinh 4-30 Mô hình đữ liệu mới C
Ilinh 4-31 Tệp tham số dựa trên các T4 templates của C
Hình 4-32 Tính toán hiệu năng và bộ nhớ cho mỗi biểu dé lớp Œ
Hình 4-33 Biểu đỗ so sánh tối ưu hiệu năng và bộ nhớ chiếm dụng của biểu dd
Hình 4-37 Thuộc tính tần số truy xuẤt thành phần trong biểu dễ lớp D1 72
1linh 4-38 Chương trình thực hiện phép phân chia cau trúc biểu đỗ lớp D 73
Hình 4-39 Mẫu T4 lây các thông tin ngữ nghĩa lừ mô hình lớp D 73
Ilinh 4-40 Tệp XML được tạo từ chương trình tối ưu D
1Tỉnh 4-41 Mô hình đữ liệu mới D
Hình 4-42 Tệp tham số đựa trên các Tả templates của D
Hình 4-43 Tính toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp D
Trang 6
Hình 4-44 Bidu dé so sénh 14i tru hiệu năng và bộ nhớ chiếm dụng của biểu đầ
software Codesign hardware-software
DSD Domain-specific description Mé6 t4 mién chuyén dung
Ngôn ngữ miễn chuyên
DSL Domain Specific Language dung
EDA Electronic Design Automation 'Thiết kế điện tử tự động
HME Eclipse Modeling Framework
OME Graphical Modeling Framework
Integrated Development | Méi trường phát triển tích
Environment; Integrated Design | hợp, Môi trường thiết kế
Environment; Integrated | hợp nhất, Môi trường gỡ
MDE Model Driven Engineering Kỹ thuật hướng mô hình
Lập trình hướng đổi OOP Object-oriented programming tượng
SPE Engineering
Text ‘Template ‘Transformation | Céng nghệ sinh mã dựa
UML Unified Modeling Language Ngôn ngữ mô hình hóa
Ngôn ngữ đánh đấu mở
Trang 7Tôi xin cam đoan: Luận văn “Tối ưu phần mềm nhúng trong giai đoạn
thiết kế dựa trên chuyên đổi mô hình” là công trình nghiên cửu độc lập của tôi
Những số liệu, kết quả nêu trong luận văn là trung thực, được trích dẫn và
có tính kế thừa, phát triển từ các tài liêu, tap chỉ, các công trình nghiên cứu đã
được công hỗ, các website
Các giải pháp nêu trong luận văn được rút ra từ những cơ sở lý luận và quá
trình nghiên cứu thực tiễn
Người cam doan
Trang 8Hệ thống nhúng là hệ thông máy tính cùng phẫn mềm được gắn theo một
hệ thống khác để điều khiển hoạt động và xử lý thông tin của hệ thống đó Nói
theo chuẩn IEEE như trong [1] thì: bệ thống nhúng là một hệ tính toán năm
trong sản phẩm, tạo thành một phần của hệ thống lớn hơn và thực hiện một số
chức năng của hệ thông Khi hệ Lính toán (có thể là máy tính cá nhân, vì xử lý, vỉ
hệ thống ) dược nhúng vảo trong một sản phẩm hay một hệ thống một cách
hữu cơ và thực hiện một số chức năng oụ thể của hệ thống thì ta gọi đó là một hộ
thống nhúng
Hệ thông nhúng thường được thiết kế để thực hiện một chức năng chuyên
biệt nào đó Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ thông nhúng chỉ thực hiên một hoặc một vài chức năng nhất định, thường đi kèm với những yêu câu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên đụng Trong một số trường hợp, hệ nhúng cũng có thể hoạt
động như một hệ thống tồn lại độc lập
Phan mềm nhúng là phần mềm tích hợp trong các hệ thống nhúng Mục
đích cúa phần mềm nhúng nhằm điễu khiển phần ứng, cho phép dap img wong
tác người dùng hoặc cung cấp môi trưởng dể phát triển các phần mễm nhúng tích hợp khác Phần mềm nhúng tạo nên phần trí tuệ của các sản phẩm nhúng Phần mềm nhúng ngảy cảng có tỷ lễ giá trị cao trong giá trị của các sản phẩm nhúng
Chúng ta có thể nhìn thấy các sản phẩm của hệ thông nhúng trong cuộc sống,
hàng ngày như ô tô, điện thoại di động, ti vi, ti lạnh, thể tín dụng, phương tiện vận chuyển hay trong những hệ thống lớn như máy móc thiết bị ở bệnh viện, công nghệ viễn thông, tự động hóa, các thiết bị năng lượng, các thiết bị cảnh báo
bdo vệ và các sản phẩm đo và điều khiển
¿ thiết kế và chế lạo các hệ thống nhúng được các nước phát triển quan
tâm và giải quyết từ lâu, nhưng bắt dầu phát triỀn với tốc độ nhanh từ giữa những
năm 1970 khi xuất hiện các bộ vi xử lý và vì điều khiển, đáp ứng nhu cầu pháL triển các hệ thống điện tử, dân dụng, an ninh quốc phòng, trỏ chơi, công nghiệp
hóa, tự đông điều khiển của nhiễu quốc gia và thể giới Tuy nhiên, việc phát triển
các hệ thống nhúng lâu nay chủ yêu phụ thuộc vào người thiết kể, nhất là kinh nghiệm phát triển hệ thống vả trình đê công nghệ của người kiến trúc sư Diéu đó
Trang 9chưa có gì đảm bảo bản thiết kể (về phần cứng và/hoặc phần mềm) là tối ưu hay
tốt nhất trong những diều kiện dặt ra khi thiết kế và phát triển hệ thống nhúng Với sự phát triển nhanh chóng của công nghệ, nhất là công nghệ vi diện tử, hệ
thống trên một chip thi việc thiết kế và phát triển hệ thống nhúng không thể làm
bằng tay và chỉ theo kinh nghiệm của người thiết kế nữa, mà cần được làm tự
đông vả/hoặc có sự hễ trợ của các công cụ thiết kế Vì thể, tự động hóa thiệt kế
điện tử (EDA) đã thành chủ để thời sự và luôn nóng bỏng, có sức hấp dẫn và
cạnh tranh cao giữa các nước, giữa các tập đoàn xuyên quốc gia, giữa các trung tâm nghiên cứu và giữa các trường đại học trong suốt hơn 40 năm qua và ngày
cảng có tính cạnh tranh cao, thuộc về công nghệ lõi của công nghệ thông tỉn —
truyền thông Hội nghị hang dầu thế giới hảng năm về tự dộng hỏa thiết kế là Design Automation Conference (DAC, www.dac.com) tại Hoa Kỳ dược bất dầu
từ năm 1973 và tại khu vực Châu Á Thar Binh Dương (ASP-DAC,
http:/Awww.aspdac.com/aspdac/bylaws) từ năm 1995 luôn có sức hấp dẪn cao với
cả giới hản lâm và giới doanh nghiệp Các nghiên cứu và hội nghị quốc tế về hệ thống nhúng ngày càng tăng, nhu cầu đảo tạo và phát triển hệ thống nhúng là cấp bách ở Việt Nam, nơi các nhả công nghiệp nước ngoài muốn hợp tác với các
doanh nghiệp, viện nghiên cứu và đại học của Việt Nam để triển khai các dự án
liên quan đến phát triển hệ thắng những, trong đó có lập Irình những và xây dựng
hệ thống gồm cá phần cứng lẫn phần mềm keém theo [2]
Công nghệ phần mềm đặc biệt là phần mềm nhúng ngày cảng phát triển
mạnh mẽ Môi trưởng phát triển phần mềm nhúng bị giới hạn về: khả năng xử lý
của CPU, kích thước bộ nhớ, thời gian sống của pin, vấn dễ tiêu thụ năng lượng,
van để thời gian thực Do đó, vẫn đề tối ưu trong phát triển phần mềm có ý nghĩa quan trọng Hải toán tối ưu phần mềm thường gŠm các mức: tối ưu mức thiết kế, tối ưu mã nguồn, tối ưu chương trình địch và tối tru môi trường (đồng thiết kế phần cửng phần mềm codesign hardware-software, tối ưu tập lệnh Assembly), téi wu thai gian chạy Tối ưu trong giai đoạn thiết kế lä hướng tiếp cận mới và còn nhiễu thách thức như: không thể đánh giá chính xác hiệu năng, mức tiêu thụ điện năng, dung lượng bộ nhớ chiếm dụng và các độ đo phần
mềm trong giai doạn thiết kế chủ yêu lập trung vào các độ do chất lượng (khả
năng tái sử dựng, tính dễ báo trì .) mà chưa tập trung vào các độ do mức thực
thi (thời gian thực thi, bộ nhớ sử dụng .), nhưng tối ưu giai doạn thiết kế mang,
lại nhiễu lợi ich hơn so với các phương pháp tối trong ưn giai đoạn sau
Luận văn tập trung nghiên cứu và tìm hiểu một phương pháp tối ưu trong
phát triển phần mềm nhúng giai đoạn thiết kể Dó là nghiên cứu phương pháp tối
tu phần mềm nhúng trong thời gian thiết kế dựa trên xây đựng ngân ngữ DSL để
Trang 10đặo tả, mô hình, tự động sinh mã tỗi ưu, độc lập nền tảng cho các phần mềm
nhúng Cụ thể là phương pháp tối ưu cầu trúc đữ liệu dựa vào chuyển đổi mô
hình kết hợp với sinh mã mỗ phỏng thay thể theo công nghệ |
Cầu trúc của luận văn có 4 chương gồm chương Ì nói về ngôn ngữ miễn
chuyên dụng I28I, và công nghệ sinh mã T4, nội dung tập trung nghiên cứu ngôn
ngữ DSL có tích hợp công nghệ sinh mã T4 nhằm xây dựng một amework hỗ trợ thiết kế mô hình cầu trúc đữ liệu của phần mềm nhúng Chương 2 tập trung tìm hiểu các phương pháp tôi ưu phần mềm nhúng trong giai đoạn thiết kế để từ
đó lựa chọn một phương pháp tối ưu mà luận văn tập trung nghiên cứu va phát
triển thực nghiệm cho các nội dưng chương sau Tiếp đến chương 3 với trọng tâm
nghiên cứu là tỗi ưu phần mềm nhứng trong giai doan thiết kế dựa trên chuyển đổi mô hình, chúng tôi tập trung tìm hiểu các kỹ thuật chuyển dỗi mô hình áp dụng trong giai đoạn thiết kế phần mềm nhúng để thực hiện tối ưu hiệu năng hay
bệ nhớ chiếm dụng, Chương 4 đã xây dựng hệ thống thử nghiệm, cải đặt một số
phép biển đổi với một số ứng dụng Cuối cùng chính là phần kết luận và các hướng nghiên cứu có thể phát triển tiếp của luận văn.
Trang 11
1.1 Giới thiệu
Ngày nay với sự phát triển mạnh mẽ của công nghệ phần mềm, LIMI được
sử dụng phổ biển trong thiết kế phần mễm Tuy nhiên, UML có một số hạn chế
như không đặc tả chỉ tiết phần mềm trong các lĩnh vực cụ thể, không chuẩn hóa
về định dang lưu trữ - các công cụ hỗ trợ UML thường không thống nhật về định dạng lưu trữ nên không khả chuyên, khả năng tái sử dụng và khả năng sinh mã
không mạnh Để khắc phục
sử dựng ngôn ngữ miễn chuyên dụng (DSL), DSL là ngôn ngữ chỉ sử dựng trong
các lĩnh vực cụ thể như 8QL, humÌ, DSL cho phép lưu trữ các mô hình theo
XML là chuẩn công nghệ độc lập ngôn ngữ và nền tảng nên tỉnh khả chuyển cao
> han ché nay, m6t xu hudng lriển vọng hiện nay là
và khả năng sinh mã từ XXII, mạnh mẽ
'Trong thiết kế phần mềm hướng đối tương, biểu đồ lớp được sử dụng phễ
biến nhất, nên chương này sẽ tìm hiểu và nghiên cứu phát triển một ngôn ngữ
DSL để mô hình hóa phần mềm nhúng và phát triển framework dùng để thiết kế
mô hình cấu trúc dữ liệu của phần mềm nhúng, chính lả thiết kế các biểu đồ lớp
để từ đó chúng ta sẽ triển khai các nghiên cửu tiếp theo về tối ưu phần mễm nhúng trong giai đoạn thiết kế ở các chương sau
1.2 Ngôn ngữ miền chuyên dụng
1.2.1 Khái niệm
Một ngôn ngữ miền chuyên dụng là ngôn ngữ thiết kế để cung cấp ký hiệu
phủ hợp cho một miễn ứng dụng và chí dựa vào các khải niệm liên quan và cáo
tính năng của miễn đỏ; hoặc là ngôn ngũ lập trình hoặc ngôn ngữ đặc tả thực thi, thing qua các ký hiệu và các trừu tượng hóa thích hợp, tính năng diễn tâ,
thường bị hạn chế bởi một miền vấn đề cụ thể Ngôn ngữ miễn chuyên dụng là
ngôn ngữ nhỏ, thưởng là khai báo, ngân ngữ diễn tả toàn bô các đặc điểm phân
tiệt của các chương trình trong một miễn vấn để cụ thể; mô tả miễn cụ thể
Trang 12(DSD), một chương trình (đặc tä, mô tả, truy vẫn, quá trình, nhiệm vụ, .) viết
trong một D§L; hệ thống xử lý miền cụ thể, một công cụ phần mềm dễ biên dịch, phiên dịch hoặc phân tích các mô tả miền cụ thể [20, 26]
DS5L đặc tả hệ thông phần cứng, phần mém trong một phạm vi ung dung cu
thé nhu SQL, html, VSDL Mi DSL áp dụng trong một miền ứng dụng cu thé va
có ý nghĩa, để sử dụng Ngoài ra DSL có ít hệ thống ky hiéu, it bao tri va ting
hiệu suất, Nó cũng có thể kết nối tới các miền chuyên gia 5o với UML thi D§L
còn có một ưu điểm nỗi bật là cha phép lưu trữ các mô hình theo XMIL là chuẩn
công nghệ độc lập ngôn ngữ và nền tảng nên tính khả chuyển cao vả khả năng
LEX, YACC, và Make [10], hoặc một vải ví đụ khác như SQL, BNE, và H.ML,
chúng ta chia thành các lĩnh vực như Công nghệ phần mềm là các sắn phẩm tải chính kiểm soát hành vi và phối hợp, kiến trúc phần mễm, và cơ sở dữ liệu Hệ
thống phần mềm gồm mô tả và phân tích các cây cú pháp trừu tượng, video bộ
điều khiến chỉ tiết kỹ thuật, bộ nhớ cache gắn kết các giao thức, cấu trúc dữ liệu
trong C, và hệ điều hanh chuyén dung Multi-Media chính là Web máy tính, thao
táo hình ảnh, hoạt hình 3D, và bản vẽ Về viễn thông bao gồm các ngôn ngữ
chuỗi và cây để kiểm tra mô hình, cáo giao thức truyền thông, chuyển mạch viễn thông, và mỗ hình tỉnh toán ký hiệu số Ngoài ra I2SL cũng dược ứng dụng nhiều trong các lĩnh vực khác như mỗ phỏng, các agent di déng, robot diéu khiển,
giải phương trình vi phân từng phần, vả thiết kế phân cứng kỹ thuật số [25, 27,
29]
1.2.3 Các công cụ hỗ trợ phat trién DSL
Các công cụ hỗ trợ phát triển và dịnh nghĩa DSI, có rất nhiều Chủng ta sẽ dì
tìm hiểu một vải công cụ hỗ trợ 138L, phổ biến hiện nay như:
Trang 13hop trong Microsoft Visual Studio 2005, 2008 va 2010 Céng cu nay cho phép dé dang xây dựng kiến trúc một DSL và các mô hình được hợp thức hóa, ngoài ra nó còn hỗ trợ sinh mã và mã được sinh có thể biên dịch dễ dàng Hình 1-1 dưới đây
minh họa giao diện định nghĩa DSL trong Microsoft Visual Studio 2008
lý (tao, sửa, lưu, tải) các mô hình đối tượng; công cụ Graphical Modeling
Framework (GMF) thi cung cấp thành phần sinh ra và thời gian chay trong phát
triển biên tập đồ họa dựa trên EME và GME: công cụ MOEScript cho phép một
mô hình MOFScript thực hiện để chuyển đổi ngôn ngữ văn bản Hình 1-2, 1-3, 1-
4 dưới đây minh họa giao diện định nghĩa D§L trong Eclipse
Trang 14
Hình 1-3 Công cụ GME
Trang 15
1.3 DSL mô hình phần mềm nhúng
1.3.1 DSL mô hình phần mềm nhúng
Hệ thống nhúng có những đặc điểm riêng như thường được thiết kế cho các
tác vụ đặc biệt hay được hỗ trợ bởi một số lượng lớn các vì xử lý và kiến trúc vi
xử lý Các hê thống nhúng được thiết kế cùng với phần cứng được chỉ định sẵn
và yêu cầu khả năng đáp ứng nhanh, phần nhiều có các ràng buộc thời gian thực
Hau hét hé thống nhủng phải sử dụng hệ điều hành thời gian thực và gặp khó
khăn khi xử lý lỗi phần mềm Ngoài ra, hệ thống nhúng có ràng buộc về điện
năng và bị hạn chế bởi chính tài nguyên của nó (như tốc độ CPU, dung lượng bộ nhớ, tuổi thọ pin, thời gian thực, ) Nó thường chạy trong môi trường có điều
kiên khắt khe và thường được cân nhắc cùng với chỉ phí phát triển [2, 21, 24, 28]
Với nhiều các đặc điểm riêng như vậy thì DSL là ngôn ngữ miền phi hop va
có nhiều hỗ trợ khi chủng ta phát triển xây dựng DSL để thiết kế phần mềm nhúng Để định nghĩa vả xây dựng DSL mô hình phần mềm nhúng, chúng ta cần xác định và định nghĩa các thành phần, cú pháp trong DSL cho phần mềm nhúng
Trang 16lin gitta cdc think phần (kích thước gói tin, kiểu đữ liệu, ) Lớp liền kết là biểu
diễn liên kết giữa các lớp Lớp thuộc tính biểu diễn các thánh phần của các lớp
Lớp ràng buộc biểu diễn ràng buộc giữa các lớp, các thuộc tính của lớp
Các quy tắc cú pháp
Chúng †a định nghĩa các quy tắc cho mỗi lớp và mỗi thành phần của lớp, xác
định các thuộc tính cho các thành phan lớp như máu sắc, độ Tộng, Ngoài ra
chúng ra cần phải định nghĩa các hỉnh ảnh xuất hiện các lớp (hình tròn, hình vuông, ) và xác định các quan hệ cho các thành phần của lén
Xây dựng siêu mô hình hỗ trợ DSL
Để xây dựng siêu mô hình hỗ trợ DSL chúng la phải đựa trên tập các thành
phần, củ pháp đã dịnh nghĩa DSL ở trên, dể từ đó chúng ta sẽ xây dựng tập các
ký hiệu dŠ họa tương ứng, tập các biểu diễn XMI, và ánh xạ giữa ký hiểu đỗ họa XMI, và phát triển framework cho phép xây dựng mô hình dặc tả kiến trúc phần mềm tử siêu mô hình
1.3.2 Quy trình xây dựng framework DSL và xây dụng siêu mô hình
Các công cụ DSL cho phép xây dung các siêu mô hinh đặc tả DSL Siêu mô
hình lá mô hinh sử đụng dễ dịnh nghĩa và tạo các mô hình Quy trình dịnh nghĩa IDSI, và xây dựng meta-model theo các bước sau
- Dinh nghĩa các thảnh phần lôgic: Domain Classes, Components, Lasks, Flows, Comment Classes, Rules, Constrain, Relationship va các rang
buộc
- Tạo các ký hiệu hình học tương ứng với mỗi thành phần lôgic ở trên Các
ký hiệu này sẽ sử dụng để thiết kế trong giao điện đỗ họa sau khi DSL đã
được biên địch vả triển khai
- Định nghãa tệp siêu mô hình lưu trữ các định nghĩa và ảnh xạ giữa lớp
lôgic vá ký hiệu hình học như hình 1-5
Trang 17
Áp dụng theo quy trình ở trên và thực hiện trên công cụ D§L để xây dựng
m6t framework DSL va siêu mô hình hỗ trợ thiết kế biểu đồ lớp, sẽ được trình
bay cụ thể hơn ở chương sau Ví dụ hình 1-6 là một biểu đồ lớp của ứng dung 8
quân hậu được thiết kế từ framework DSL.
Trang 18Trong phần này chúng ta sẽ tìm hiểu và nghiên cứu về công nghệ sinh mã
T4 để tích hợp vào famework DSL đã xây dựng để trích xuất các tham số từ biểu
đồ
1.41 Khái nệm
Text Template Transformation Toolkit - T4 la mét céng cu sinh ma dwa trén
mẫu Mẫu T4 là một tệp kết hợp giữa các khối văn bản vả các khối logic điều
khiển Khối logic điều khiển được viết bằng C# hoặc Visual Basic.NET Mẫu T4 được sử dụng để sinh ra các tệp mã theo các định dang khác nhau như: XML,
HTML, SQL VHDL các tệp văn bản khác T4 có sẵn trong Visual Studio
Chúng ta sử dụng T4 cùng với các công cụ như Visual Studio Custom thì
T4 được tích hợp trong Visual Studio 2008, khi chủng ta thêm một tập tin văn
bản với phần mở rộng f trong dự án của mìỉnh thi Visual Studio giao
TextTemplatingFileGenerator tu động tạo ra tập tin đầu ra từ mẫu Trong
Trang 19Command Line Utility thi T4 gồm các tiện ích dòng lệnh, TextTransform.exe có
thể sử dụng để xử lý mẫu bên ngoài Visual Studio Trong công cụ Editor, T4 hỗ
trợ soạn thảo văn bản và gỡ lỗi còn hạn chế Chúng ta có thể sử dụng T4 Editor
tir Tangible Engineering, mở rông Visual Studio cung cấp IntelliSense và cú pháp
mạnh hon cho các tập tin tt Công cụ Debugger thì việc gỡ lỗi đòi hỏi phải thực
hiện gọi đến Debugger.Đreak phương pháp trong khối mã đề thiết lập các điểm ngắt Còn trong công cụ Visual Studio Templates thì phải cài đặt thêm T4
Toolbox tir CodePlex vao Visual Studio
1.4.3 Quy trinh sinh ma theo T4
Để định nghĩa các mẫu T4 chúng ta thực hiện theo các bước sau [30], hình
1-7 minh họa các bước định nghĩa T4:
- Định nghĩa các mẫu T4
- Sinh đặc tả từ mô hình kiến trúc
- Lấy thông tin các thành phần từ mô hình thành phần
- Sinh mã theo các nền tảng khác nhau từ luồng biểu đồ
<i template language="C#" #»
Hello
<# Write("Worldi"); #>
Geneve public class GeneratedTe: on:
Microsoft Visualstudio, TextTemplating TextTransformation {
public override string TransformText() {
this.Write("Hello\r\n")5 Weite(*World!");
return this.GenerationEnvironment.Tostring();
}
Hello World!
Hình 1-7 Các bước sinh mã theo T4
1.4.4 Tích hợp T4 vào DSL framework để sinh mã từ mô hình
T4 là công nghệ sinh mã mạnh, cho phép xây dựng mẫu hỗ trợ sinh mã tự
động dựa vào tệp XML định nghĩa DSL và tệp XML của mô hình thiết kế thực
tế T4 được sử dụng linh đông, có thể sinh đầu ra theo dạng ngôn ngữ tủy ý, ngôn
ngữ hình thức hoặc thậm chí là một mô hình trung gian
Các bước để tích hợp T4 vao DSL framework:
Trang 20- Thêm tệp có phần mở rộng f vào dự án, công cụ hỗ trợ sẽ tự động sinh ra
tập tin đầu ra từ mẫu
- Định nghĩa các mẫu để trích xuất các tham số của mẫu thiết kế từ DSL
Hình 1-§ là ví dụ về T4 được định nghĩa để lấy thông tin về tần suất truy cập
các thành phần từ của biểu đỗ lớp được
Seabee ,Wiuuast dio Tei Templeeing Vadose, Made lingreleTeanséopmaeion” WS
xe
Ga eam aed tahertre
<8 oucput extension
<8 FO3_Pareco_Ciaas processor~"P0)_Fareco_ClassDirectiveFrocessor” requirest"tielave='EightQueensAi.dsicle'™ #>
SH // Sac bien luu eeu, thong ke them so Eu hieu do
sering(] seClass:
arciass = new string{ehis.tlodelRost.Types Cowie) +
/7đayet gạc Elazs trong kode:
foreach (tlodelType type vn rhis.Node1Root Types)
( //83en thì ten Class
ae f8Clasgi" Ws<f= cợpe.Nane W2
# //uay thong tin lop hien tai
Modelclase godelciacs = type as Model Clase:
để trích suất tham số tự động từ mô hình Ở các chương sau chúng ta sẽ áp dụng
kết quả nghiên cứu này để xây dựng hoàn thién framework DSL hé tro thiét ké biểu đồ lớp của ứng dụng và lấy tự động các tham số của các thành phân trong biểu đồ lớp Trong nội dung chương tiếp theo chúng tôi tập trung tìm hiểu các phương pháp tdi wu trong giai đoạn thiết kế để lựa chọn ra một phương pháp tôi
tu mà luận văn sẽ nghiên cứu sâu hơn
Trang 21CHƯƠNG 2
CÁC PHƯƠNG PHIẤP TỎI ƯU TRONG GIAI ĐOẠN TIIÉT KẾ
21 Tổng quan về tối tru phần mềm nhúng
Xu thế phát triển của công nghệ thông tin hiện nuy tập trung vào công nghệ
ác lĩnh vực
dời sống xã hội Củng với công nghệ phần cửng, kỹ nghệ phần mềm nhúng ngay
nhúng Hệ thẳng những phát triển mạnh mỡ và có mặt trong hầu hế
cảng được nghiên cứu sâu rộng và hoàn thiện đặc biệt là phần mềm nhúng trên môi trường Mobile Các thiết bị nhúng thường bị giới hạn về: khả năng xử lý của
CPU, kích thước bộ nhớ thời gian sống của pin, vấn để tiêu thụ năng lượng, vin
đề thời gian thực Do đó việc nghiên cứu vấn để tối ưu phần mềm nhúng nói
chung và phân mềm Mobile có Ý nghĩa đặc biệt quan trọng
Bài toán tối ưu phần mêm nhúng cũng như tối ưu phần mêm nói chưng
thường gôm năm mức: tôi ưu mức thiết kê, tối ưu mã nguồn, tối ưu việc biên dich
và tối ưu môi trường (đồng thiết kế — codesign hardware-software, tôi ưu tập lệnh
Assembly), tối ưu thời gian chạy |10J Tối ưu trong giai đoạn thiết kế dựa vào
đánh giá, ước lượng và tập trung nhiều vào tối ưu đa mục tiêu Pareto, lối ưu
trong giai đoạn cài đặt chỉnh là tối ưu mức mã nguồn, tối ưu mức thuật toán; Tối
wu trang giai đoạn thực thí là lập lich thực thi và tối ưu dữ liên, môi trường: Tối
uu mic Assembly 1a téi un các thiết bị phần cứng và tổi ưu tập lệnh Assembly của CPU Tối ưu trong giai đoạn thiết kế là hướng tiếp cận mới và còn nhiều thách thức đặt ra nhưng mang lại nhiễu lợi ích hơn so với các phương pháp tôi trong ưu giai đoạn sau
Tối ưu phần mềm nhúng trong giai đoạn thiết kế đem lại nhiều lợi ích hơn
trong các giải đoạn sau Tuy nhiên vấn dề lỗi ưu trong giai đoạn thiết kế cỏ một
số thách thức như: không thể đánh giá chỉnh xác hiệu năng, mức tiêu thụ điện năng, dung lượng bộ nhớ chiếm dụng và các độ do phần mềm trong giai đoạn
thiết kế chủ yếu tập trung vào các độ đo chất lượng (khả năng tái sử dụng, tính đễ
Trang 22báo trì ) mà chưa tập trung vào oáo độ đo mức thực thi (thời gian thực thị, bô
nhớ sử dụng ) Việc dánh gid mềm nhúng về hiệu năng bộ nhớ, mức Liêu
thụ năng lượng của phần mềm vẫn là một thách thức dang trong quá trình nghiền
cứu và thực nghiệm
Các mục tiểu chính của tôi ưu là tối ưu hiêu năng, tối ưu tiêu thụ điện năng, của hệ thống, tuổi thọ của pin, tối ưu bộ nhớ, đữ liêu và tôi ưu kích thước phần
mém, t6i ua chi phi, Cd thé thie hién t6i wu trong các giai đoạn khác nhau và
phương pháp tối ưu theo mỗi khia cạnh cũng khác nhau Chúng ta không thế tối
ưu đồng thời các mục tiêu tối ưu vi các khía cạnh tối có thể mâu thuẫn Tối ưu
khía cạnh này phải thỏa mãn các rằng buộc lrên cáo khía cạnh khác
Tối ưu da mục tiêu hưởng tới sự cân bằng giữa các mục liêu tỗi ưu của hệ
thống Khi chúng ta cải tiến mục tiêu này thi phải không lâm giảm mục tiêu tối tưu khác Tối ưu đa mục tiêu dựa trên nguyên lý Darcto
2.2 Các khía cạnh tối ưu phần mềm nhúng
Các nghiên cứu gần dây về tối ưu phẩn mềm nhúng tập trung vào các khía
canh chỉnh dưới đây:
Tôi ưu hiệu năng
¡ ưu hiệu năng là bải toán được quan tâm nhiều nhất khi tổi tu phần mềm
ngữ bậc cao, tối ưu thuật toán Điễn hình là các nghiên cứu của Pospiech F, Olsen
§: “Phần mém nhúng trong thể giới SoC Giúp HảS đối mặt như thể nào với
những thách ihive thidt ké HW va SW” (15], và của Wonchul Lee, Wonyong Sung: "Tối tụ phân mềm âm thanh MPHG 3 lớp của bộ xử lÿ RISC 32 bit” [22] Một cách tiếp cận mới, tổng quát hơn hiện đang được quan tâm nghiên cứu là sử dụng các kỹ thuật xấp xi để đưa các hàm phức tạp mũ về các hàm đa thức với một dung sai nhất định Tiêu biểu như nghiền cứu của Yong-Yoon Cho, Jong-
ae Moon, and Young-Chul Kim: “Mới hệ thông đễ đánh giá hiệu năng của
phần mềm nhúng" [23] Ngoài ra còn có một số nghiền cứu tiếp cận tối ưu hiệu
năng đựa trên kỹ thuật caching áp dung cho phần mềm nhúng phần tán đặc biệt là
phần mềm Mobile Tiều biểu như nghiên cứu “
cho các ứng dụng ải động” đã được thảo luận trên Nokia Forum [12]
tối ưu hóa kết nối Chenl / Server
Trang 23Tôi ưu tiêu thụ năng lượng
Vấn đề tối ưu tiêu thụ điện năng có ý nghĩa quan trọng trong các môi trường nhúng đặc biệt là trong các thiết bị không dây như: diện thoại, bộ diều khiển va
ngay cả Laptop Bài toán tối ưu năng lương cho phần mềm nhúng có vai trò quan
trọng trong kỹ nghệ phần mềm, hiện đã được nghiên cứu rộng rãi và thu được những thành tựu nhất định Một số hướng tiếp cận tập trung vào quản lý địch vụ thời gian chạy, tối giản trao truyền đữ liệu khi tính toán đẻ tiết kiệm điện năng như các nghiên cứu của Armita Peymandoust, Tajana Simunic, Giovanni De
Micheli, “Tdi ưu phân môm nhúng năng lượng yêu sử dụng đại số tượng trưng” [4], cia Feeney, L & Nilsson, M., “Diéu ira néu thụ năng lượng của một giao
điện mạng không day trong môi trường mạng ak hoc” |6] Một số hướng tiếp cận mới dã ứng dụng trí tuệ nhân tạo, dựa trên các mô hình học máy và đại số dễ quyết dịnh ngừng thực hiện một số ứng dụng hiện thời nhằm tiết kiểm thời gian
cho ứng dụng thời gian thực Điển hỉnh như trong nghiên cứu của Tang lung
Cheung, Kari Okamoto, Frank Maker, “Khung diễn trình quyết dinh Markov cho tôi ưu hóa phần mêm trên điện thaại đi động" [I6], tác giả đã áp xây đụng mô
hình quyết định Markov để quản lý các ứng dụng thời gian chạy
Tối ưu truyền thông trong môi trường phân tin
Việc lỗi ưu truyền thông tin trong mỗi trường phân tán tập trung vào: tôi ưu
ic tram
giao thức truyền thông, lua chon giao thite pha hop, 141 uu dit héu Lai
dau cudi trước khi gửi vào dường truyền Trong đỏ việc tối ưu giao thức truyền thông cụ thể rất phức tạp liên quan nhiều dến hạ ting vật lý và các tầng khác
nhau trong mô hình truyền thông và không có ý nghĩa thực tiễn với một ứng dụng
xu thé phát triển cho ứng dụng phân tán Có nhiều nghiên cứu nhằm tôi ưu dữ
liệu truyền thông cho mô hình tính toán nay tập trung nhiều vào loại bỏ dữ liệu
thừa trong các thẻ XML mô tả gói SOAP, loại bö các thẻ, mã thừa trong tập
Html Dién hình là các nghiên cửu của Angyoon Oh and Geolfirey C Fox: "7i
wu héa hiéu sudt nkdn tin cho dich vu Web trong may di déng” |S|, cia Sangyoon Oh, Mehmet 8 Aktas, Marlon Pierce, Geoffrey C Fox: “Ti wu héa hiệu suất nhắn tin dịch vụ Web sir dụng một kho bối cảnh cho dữ liệu nh” 9
20, 24].
Trang 24
Tai ưu bộ nhớ chương trình
¡ ưu bộ nhớ phương trình cũng góp phần quan trọng trong việc tối ưu hiệu
năng đặc biệt là trên môi trường Mobile với bộ nhớ han chế Các nghiên cứu
trong khía cạnh này gồm: sử dụng nhiều các chịp nhớ, thanh ghi trong chương trình, cập phát và giải phóng bộ nhớ động tối ưu các dich vu don rac trong cdc framework lap trinh JZME, NET Compact framework Nghién ctru cia Kaustubh
R Joshi, Matti [iiltunen, , Richard Schlichting, William II Sanders, and Adnan Agbaria: “Thich ting dia trén m6 hinh tryc tuvén đề tối ưu hóa hiệu năng và độ
tin cậy” [231 đã đạt được kết quả tốt trong khía cạnh tối ưu nay
Ti ưu bộ nhớ đệm
Tối ưu bô nhớ đêm là kỹ thuật đã dược nghiên cứu và áp dụng tử lâu trong
hầu hết mọi môi trường: [2esktop, Network, Mobile và ngay cả trong việc quản lý
bộ nhớ phần cứng Do đó tối wu cache cho phần mềm những phân tân đặc biệt là phần mềm Mobile cũng dang được nghiên cứu, triển khai [7, 8, 9]
Tôi ưu tập lệnh Assembly va déng téi wu
Các nghiên cứu tôi wu mirc Assembly tap trung vào: lựa chọn tập lệnh phù hợp, thay thế các lệnh nhân bằng các lệnh địch, thay đôi thứ tự thực hiện các lệnh
tối ưu mà không làm thay đôi kết quả Các nghiên cứu đồng tối ưu nhằm phân
hoạch phần cứng, phần mém cho hệ thống nhúng dã dược nhỏm tác giả NN
Binh, M Imai, A Shiomi, N Hikichi, and J Sato nghién citu, triên khai và đạt
được kết quá tốt [11, 13, 14]
2.3 Các phương pháp t tối ưu phần mềm nhúng trong giai đoạn thiết kế
Tối ưu mức thị đới mục tiêu chính lả thiết kế kiến trúc tối ưu, thiết kế
cấu trúc dữ liệu tối ưu rồi lựa chọn thuật toán tối ưu, lựa chon framework phat triển tối tru, lựa giao thức truyền thông tối ưu (hữp, https, SOAT) Tối ưu mức
thiết kế thực hiện theo các phương pháp: Tối ưu cấu trúc đỡ liệu trừu tượng bằng,
chuyển đối mô hình và sinh mã mô phỏng chức năng; Lựa chọn cấu hình phát triển (#amework, ngôn ngữ, giao thức truyền thông ) tối ưu cho phần mềm
nhúng hướng mô hình, Tối ưu cầu trúc dữ liệu hướng mê hình dựa trên DSL, tối
tưu pareto và sinh mã mô phỏng; Lựa chọn cầu hình thiết bị tỗi ưu cho phần mềm
nhúng bằng kỹ thuật hướng mô hình
Mue tiêu của tối ưu trong giai đoạn thiết kế là đánh giá, cái tiễn và lựa chọn
mô hình tốt nhất Chúng ta cỏ thể thực hiện theo mỗi khía cạnh tỗi ưu oụ thể hoặc
Trang 251à tối ưu da mục tiêu Khi thực hiện tỗi ưu trong giai đoạn thiết kế thường có hai
cách tiếp cận là từ tận cáo mô hình thiết kế, xây dựng và tỉnh toán các ham danh piá mô hình, trên cư sở đó chúng ta lựa chọn ra mô hình tốt nhất hoặc là từ mô
hình thiết kế ban đầu chúng ta xây dựng các hàm đánh giá sau đó tiến hành phân
tích và biến đối rồi tái cấu trúc Các bước thực hiện cái tiến nhằm đạt được mô hình tối ưu theo hàm đánh giá
Để đánh giá phần mềm nhúng ở mức thiết kế, thường có ba cách tiếp cận là
có thể đánh giá trực tiếp từ mô hình hay chuyển từ mô hình thiết kế về mô hình
hiệu năng và đánh giá mô hình hiệu năng hoặc đánh giá đựa trên mô phỏng
Chúng la chủ yếu lập trung đánh gì
mô hình hiệu năng, sử dụng một số phương pháp như: đặc Lá hệ thông, phương
về hiệu năng, chuyển đặc tả hệ thống sang
pháp SPH, phương pháp dựa trên mẫu kiến trúc, phương pháp dựa trên mô
phông, phương pháp tối ưu dựa trên phân chia phần cửng — phần mềm (đồng thiết kế)
Ba hướng tiếp cận để đánh giá và tôi ưu phân mềm trong giai đoạn thiết kế
Tải ưu dựa trên kỹ nghệ hiệu năng phần môm (SPE)
Theo phương pháp này chúng ta sẽ chuyển mô hinh thiết kế về mô hình hiệu
năng để đánh giá lỗi ưu, chủng la có thể thực hiện triển khai theo hai phương,
pháp như sau
- Phương pháp sử dụng UML để đặc tả kiến trúc phần mềm, ngoài ra bd
sung thêm thông tin về hiệu năng váo các mô hình UML Sau đó chúng la sẽ chuyên từ mô hình UMI sang mô hình hiệu năng và dánh giá mô hình hiệu
năng để lựa chọn kiến trúc tốt nhất,
- Phương pháp tối ưu đựa trên I2S1., chúng ta sẽ định nghĩa một số I25i, để
đặc tả phần mềm, chuyền sang mô hình hiệu năng để đánh giá và tối ưu Ban đầu chủng ta định nghĩa DSL với các rằng buộc SPE cho biểu đổ class, Sequence, Activity, Deploy Sau khi dinh nghĩa và xây dựng các loại biểu đề chúng ta sẽ sử dụng công nghệ T4 để lấy tham số tự động từ mô hình rồi
chuyển sang mô hình hiệu năng và đánh giá mỗ hình hiệu năng để chọn ra kiến trúc tất nhất
Tải ưu dựa trên mô phẳng
Theo phương pháp này dựa trên cách tiếp cận kỹ nghệ hướng mô hình MDE Ban dau chúng ta thiết kế mê hình tiếp theo là sinh mã mô phỏng cho các chức
năng rồi chạy mà mô phỏng trên môi trường thực để đảnh giá và lựa chọn mô
Trang 26hình hoặc môi trường phát triển Thực hiện triển khai dựa trên DSL, định nghĩa
DSL để thiết kế mô hình và sinh mã mô phỏng các chức năng, thực thi mã mô phỏng để lựa chọn kiến trúc tốt nhất hoặc môi trường phát triển tốt nhất Hình 2-1
biếu diễn một quy trình triển khai kỹ thuật tối ưu hướng mô hình
— [I)Desoeper creates vauai (2) rstramenied code
_ | model ot appcation 's generating from
Quy trình triển khai kỹ thuật tôi ru hướng mồ hình
Hình 2-1 Quy trình triển khai kỹ thuật tối ưu hướng mô hình
Tôi ưu dựa trên đánh giả và chuyển đổi trực tiếp trên mô hình
Theo phương pháp này chúng ta sẽ đánh giá trực tiếp hiệu năng, bộ nhớ,
năng lượng tiêu thụ từ mô hình, việc đánh giá này gặp rất nhiều khó khăn Trong phương pháp này thường đánh giá trực tiếp và tối ưu theo các độ đo chất lượng
như tính đóng gói, khả năng tái sử dụng, Một số nghiên cứu đưa ra cách đánh giá hiệu năng dựa trên biểu đồ Class, thường có hai hướng tiếp cận tối ưu là tối
ưu hiệu năng dựa trên đánh giá biểu dé Class va téi ưu đa mục tiêu dựa trên biểu
đỗ lớp và nguyên lý Pareto
Một số phương pháp tối ưu giai đoạn thiết kế theo ba hướng tiếp cận trên
Tổi ưu dựa trên phân chia phần cứng ~ phần mềm
Chúng ta sẽ phân tích và đánh giá hiệu năng, mức tiêu thụ điện năng, chỉ phí
và giai đoạn thiết kế hệ thống nhúng theo mỗi phân hoạch Để đánh giá hiệu
Trang 27năng, chúng la tập trung vào chỉ phí thời gian thực thí rong phân hoạch Thời
gian thực của phân hoạch bao gồm lhời gian thực thủ các tác vụ phần cứng, thời pian thực thi các tác vụ phần mềm và thời pian chuyển giữa 2 tác vụ Thời gian
thực thi cảng lâu thỉ hiệu nẵng càng giám
Tựa chọn môi trường nhát triền phần mắm nhúng tỖi irư
Khi phát triển phần mềm nhúng cho các thiết bị không đồng nhất trong môi
trường phân tán, vấn đề tối ưu cần phải đựa trên nhiều khía cạnh và mục tiêu tấi
tưu trên mỗi loại thiết bị là khác nhau Các khía cạnh quan trọng trong tối ưu phần
mềm nhủng đã được nghiên cứu và liếp Lục phát triển như: tôi tru hiệu năng, cực
đại thời gian sống của pím, tối ưu quản lý bộ nhớ, tối ưu dữ liệu, tối ưu
framework lựa chọn mục tiêu tối ưu trên mỗi loại thiết bị cần xét trên sự cân
bằng piữa các yếu tố vi các yếu tổ nảy không độc lập mả luôn có sự ảnh hưởng, qua lại Khỏ khăn lớn cho bài toán tối ưu là các khía cạnh tôi ưu chỉ được kiểm
chứng và hiệu chỉnh sau khi đã cải đặt, triển khai ứng dụng Do đó khi muén thay
đổi các yếu tố nhằm cải tiến hệ thông phải thiết kế lại kiến trúc, cải đặt, triển khai
và kiểm thử Diễu này làm mắt nhiều thời gian vả chỉ phí tối ưu
Giải pháp khắc phục vẫn để trên là tối ưu hệ thống trong ngay giai đoạn thiết
kế dựa trên kỹ nghệ phần mềm hướng mô hình Ti wu Iya chọn môi trường phát triển phần mềm nhúng trong giai đoạn thiết kế có vai trò đặc biệt quan trong vì
nếu thay đôi thiết kế, lựa chọn lại môi trường phái triên thì hầu như phải thay đổi
loại toàn bô nhần mềm Tôi ưu phần mềm mức thiết kê có giá trị hơn nhiều so với tối ưu mã nguồn nhưng cũng gặp nhiều khó khăn về đặc lá các mmục tiêu tối ưu, cae rang buộc, các lựa chọn không rồ ràng và việc đánh giá các khía cạnh phần mém trong thời gian thiết kế khó định lượng Tối ưu mức thiết kế thường hướng
đến các mục tiêu: thiết kế kiến trúc tôi ưu, thiết kể cấu trúc đữ liệu tối ưu, lựa
chọn giải thuật tỗi ưu, lựa chọn môi trường phát triển tối ưu (ffamework và ngôn
ngit: Java, NET Compact, Android, Symbian , giao thức truyền đữ liệu: http,
https, SOAP ; kiểu ứng dung: web application, web service )
Tôi ưu lựa chọn môi trường phát triển phần mêm nhúng có phương pháp tiệp
cận dựa trên ngôn ngữ miễn xác định D$L, công nghệ sinh mã T4, sinh mã mỗ
phóng chức năng, chạy triển khai trên thiết bị thực tế, đánh giá kế quả chạy mã
mỗ phỏng để quyết dịnh lựa chọn tôi ưu Phương pháp nảy sẽ lựa chọn dược Tramework và ngôn ngữ, giao thức truyền thông, kiểu ứng dụng cho phần mềm nhúng ngay trong thời gian thiết kế
Trang 28Tôi ưu thiết kế phần mềm nháng dựa trên biển đối mô hình và sinh mã
mã phỏng
Mật phương pháp tiếp cận nữa trong tôi ru phần mềm nhúng mức thiết kế là
tối ưu dựa trên biển đổi mô hình Hiện tại chưa có nhiều nghiên cứu về vấn để
nảy, các nghiên cứu đã đưa ra các giải pháp, quy tắc chuyên đổi các mô hình thiết
*ế tối ưu nhưng vẫn chưa xây đựng mô hình, công thức tỉnh toan và chưa tự đông héa trong khía canh tối ưu này Tôi ru mô hình thiết kế cho phân mềm nhúng là vấn đê tương đối rộng, đê nghiên cửu chuyên sâu vào các đặc tả để công thức hóa, các phép biến đổi mô hình và vẫn đề tự động hóa, phạm vi nghiên cứn này chỉ tập trung vào tối ưu thiết kể cầu trúc đữ liệu mức thiết kế Phương pháp này
sế lựa chọn được thiết kế đữ liệu tối ưu theo các quan hệ giữa các mục tiêu tối ưu
và gác ràng buôc của phần mềm nhũng,
TI wu dựa trên sinh mã thay thể mô phông chức năng
Một phương pháp tiếp cận nữa trong tối ưu phần mềm nhúng mức thiết kế là tối ưu dựa trên sinh ma thay thế mô phỏng chức năng, nhằm xây dựng phương
pháp tôi ưu dựa trên sinh mã mô phỏng và phát triển framework DSL, T4 hỗ trợ
tối ưu
Xây dựng nhương pháp tối ưu phần mềm nhúng dựa trên sinh mã mô phỏng
xây dựng tử diễn thao Lic cơ bản dễ ước lượng cho mỗi tác vụ như: đọc tệp, ghi
tp, đọc ghi bộ nhứ; mỗi phần mềm nhúng được thiết kế thca các thao tác cơ bắn trong tử diễn; sinh mã mô phóng các lác vụ dựa trên các thao tác cơ bản và các doạn code mẫu ứng với các thao tác cơ bản (các doạn code mẫu có thể thao các ngôn ngữ, môi trường khác nhau để tùy biến việc sinh mã}; chay mã mô phỏng trên thiết bị thực tế, thông kê, đánh giá, lựa chọn mô hình tắt nhất
Phat trién framework DSL và T4 hỗ trợ tổi ưu: DSL để thiết kể mô hình, T4
để sinh mã thực thi từ mô hình Phương pháp này sẽ lựa chọn được mã mô phỏng
tối ưu, mô hình tối ưu
Tôi uu dựa trên đúnh gid biểu đỗ lớp, DŠL và T
Một phương pháp tiếp cận nữa trong tối ưu phần mềm nhúng mức thiết kế là
tối ưu dựa trên đánh giá biêu đỗ Class để tối ưu Pareto dựa trên I28L và 14 Tối
ưu dựa trên danh gid trực tiếp kiến trúc tĩnh của phần mềm nhúng (biểu dé Class) Trong các mô hình đặc tả phần mềm, mô hình class lả mô hình đặc tả
phần mềm hướng đổi tương quan trọng Các độ đo dựa trên mô hình class cũng được nghiên cứu rộng rãi nhằm đánh giá các khía cạnh chất lượng phần mềm như
độ phức tạp mô hình, khả năng bảo trị, khá năng tái sử dụng Tuy nhiên việc
Trang 29đánh giá hiệu năng, kích thước trên mô hình class chưa được nghiên cứu nhiều
ướng dối lượng phần mềm nhúng Có thể thực hiện tối ưu
đơn mục tiều (tối ưu hiệu năng) hay tốt ưu da mục tiêu Pareto Phương pháp này
sẽ lựa chơn biểu đã class sẽ có hiệu năng tốt nhất
TẢI ưu đa mục tiêu Pareta để tỗi ưu cầu túc dữ liệu phầu mầm nhúng
mức thiết ké
Trong phát triển phần mềm nhúng, đặc biệt là các phần mềm nhúng hưởng
đữ liệu (xử lý đữ liệu lớn như: ứng dụng media, game ), việc tối ưu cấu trúc đữ
liệu có ý nghĩa quan trọng Tối ưu cấu trúc đữ liệu cho phần mềm nhúng trong
thời gian thiết kế lại cảng quan trọng hơn vì thay dỗi cầu trúc dữ liệu xử lý trong chương trình hầu như phải thay dỗi lai mã nguằn Khi thiết kế phần mềm nhúng,
để giải quyết một vẫn đề có thể có nhiều mô hình cấu trúc đữ liệu được đưa ra
1 âm sao lựa chọn được cấu trúc dữ liệu tối tru từ các cấu trúc đữ liêu ứng viên sẽ
tác động lớn đến chất lượng và hiệu năng phần mềm Phương pháp này sẽ lựa chọn được thiết kế dữ liệu tối ưu theo các quan hệ giữa các mục tiêu tối ưu và các ràng buộc của phần mềm nhũng
Tổng kết chương
Từ việc tìm hiểu và nghiên cứu về các phương pháp lôi ưu phẫn mêm nhúng
giai đoạn thiết kế rong chương này thì chúng tôi thấy phương pháp tối ưa phần
mềm nhúng giai douạn thiết kế dựu trên chuyên dổi mô hình hiện tại chưa có nhiều nghiên cửa Các nghiên cứu đã đưa ra các giải pháp, quy lắc chuyển đổi
các mô hình thiết ‘Oi ru nhưng vẫn chưa xây dựng mô hình, công thức tĩnh toản về chưa tự động hỏa trong phương pháp tối tru này Chúng tôi sẽ lựa chon
phương pháp nà: để nghiên cứu và triển khai tiếp ở chương sau Nội dung
nghiên cứn sẽ chuyên sâu vào các đặc tà đề công thức hóa, các pháp biến đổi mô
hình và vấn dé tự độ hỏa, về chỉ tập trung vào tôi tru thiết kể cầu trúc đữ liệu
múc thiết kế
Trang 30CHƯƠNG 3
TOTUU PHAN MEM NHUNG TRONG GIẢI ĐOẠN THIẾT KẾ DỰA
TRÊN CHUYỂN ĐÔI MÔ HÌNH
3.1 Ý tưởng và quy trình triển khai
'Tỗi ưu dựa trên biến dổi mô hình là một hưởng tối ưu theo cách tiếp cận
đánh giá trực tiếp mô hình hiên đang được quan tâm nghiên cứu Theo phương,
pháp này, từ mô hình thiết kế ban đầu, áp dụng các phép biển đối trên mô hình để
đưa về mô hình tối ưu dựa trên các hàm đánh giá đã xây dựng Tôi ưu phần mềm dựa trên biến đổi mô hình tuy đang được quan tâm, nghiên cứu nhưng vẫn còn gặp nhiều thách thức Thứ nhất là khó đánh giá hiệu năng, kích thước bộ nhớ và điện năng tiêu thụ trong giai đoạn thiết kế Trong giai đoạn thiết kế chỉ có các mô
hình phần mềm nên việc đánh giá được thực hiện đựa trên mô phỏng và phân tích
mô hình Thử hai là xây dựng
đúng dẫn của các phép biến dể
e phép biến đổi trên mô hình và kiểm tra lính
hit ba là khó thực hiện tư dộng quá tình lấy
tham số từ mô hình, đánh giá và biến đổi mô hình cũng như chuyến từ các tham
số đặc tả thành mô hình Cuối cúng, vấn dễ kiểm chứng kết quả tối ưu trong giai
đoạn thiết
tiếp cân mới dựa trên DSL và T4 để tối ưu phần mềm nhúng trong giai đoạn thiết
kế dựa trên biển đổi mô hình Quy trình nghiên cứu tổng thể được biểu điễn ở
hình 3-] như sau:
là cần thiết và cũng là một thách thức Vì vậy luận văn đưa ra cách
Trang 314.Thiết kế mô hình ban
đầu:
1,Xây dựng Framework:
~DSL cho biển đỗ lớp
-Siều môhình _
~ T4: lây tham số từ biểu đã
~ Thiết kê theo Framework DSL, Ts (1)
§,Xây dựng chương trình
tôi ưu hỗa
2.Xây dựng phép biển đôi
3.2 Các phép biến đổi trên mô hình
Trong phần này chúng tôi tập trung nghiên cứu các phép biến đổi mô hình cầu trúc dữ liêu của phần mềm nhúng trong giai đoạn thiết kế dựa trên các thành
phần cấu trúc dữ liệu như phân chia cấu trúc, gộp cấu trúc, loại bỏ thuộc tính dư
thừa, chuyển đổi thuộc tính, tạo thuộc tính tạm, loại bỏ quan hệ hai chiều giữa hai
cấu trúc, dựa theo nghiên cứu của Keller [3] Trong nghiên cứu này tác giả chưa chứng minh tính đúng đắn và không đưa ra giải pháp cũng như các tiêu chí để
thực hiện tự động các biến đối Trong phần này, chúng tôi đưa thêm ba phép biến
đổi là thu gọn kiểu dữ liêu, chuyển đổi tham số của các phương thức thành các thành viên dữ liêu của lớp và chuyển đổi từ tĩnh sang động và ngược lại để tối ưu
hiệu năng
3.2.1 Phân chia cấu trúc
Phép biến đồi này nhằm phân chia một cấu trúc thành nhiều cấu trúc theo tần
số truy suất thành phần dữ liệu và tần số thực hiện hàm Các thành phần có tần số
truy xuất lệch nhau nhiều sẽ được tách thành cầu trúc riêng Các tần số nảy phụ
thuộc vảo nhà thiết kế Vấn đề cốt yếu ở đây là tần số và số lượng phân chia như
Trang 32thế nào, để giải quyết vấn đề này chúng ta có thể sử dụng thuật toán phân cụm để
thực hiện phân chia
Hình 3-2 là một ví dụ về phép phân chia cấu trúc, từ cấu trúc lớp ban đầu
được chia thành 2 cầu trúc lớp khác nhau
Hinh 3-2 Vi du vé chuyển đổi phân chia cau trúc
Thực hiện phân chia cấu trúc có thể cải tiến mức chiếm dụng bộ nhớ của chương trình Hơn nữa, chuyển đổi này có thể làm giảm năng lượng tiêu thụ của
ứng dụng Giả sử có hai cầu trúc được tạo mới đặt trong hai bộ nhớ khác nhau, mỗi bô nhớ tùy theo kích thước của cấu trúc, truy cập bộ nhớ để thực hiện truy
cập này tốn ít năng lượng hơn
3.2.2 Gộp cấu trúc
Hình 3-3 Ví dụ về chuyển đổi gộp cấu trúc
Phép biến đổi này dựa trên đánh giá toàn bộ mô hình đữ liệu sau khi đã phân tích các cấu trúc Phép biến đổi phân chia dựa trên phân tích từng cấu trúc để
phân chia Điều này dẫn đến có thể tồn tại nhiều cấu trúc khác nhau mà tần số
Trang 33truy xuất của ác thành phần lại gần như nhau Do đó, chúng tôi đưa ra phép biển
đổi gop cu trúc ái quyết vẫn đề nảy bằng cách hợp nhất mọi cầu trúc thành
một cấu trúc sau đó mới nhân chia Tuy nhiên với phép biến déi nay, đóng gói
của hệ thông có thế bị phá vỡ và cũng chỉ sử dụng trong giới han các thành phần
dữ liệu và các hàm bình đẳng và có thể truy xuất từ các câu trúc khác nhau
Chuyển đổi này có thể cải tiên mức chiếm dụng bộ nhớ của chương trình vì một vài cầu trúc được hợp nhất vào một cấu trúc Ngoài ra toản bộ truy cập dữ liệu cũng được giảm vì không phải mỗi giá trị được truy cập riêng giao nhau linh 3-3 là một ví đụ về phép gộp cầu trúc
3.2.3 Thay doi thứ tự mỗi quan hệ
Chuyển đổi này nhằm thay đỗi thử tự các mối quan hệ giữa các câu trúc Chuyến này đỗi này nên được áp dung nêu các cấu trủc không được truy cập theo
thứ tự thi thứ tự mới sẽ thể hiện trạng thái truy cập của các cấu trúc chính xác
hơn 1Tình 3-‡ là một ví dụ về phép thay đổi thứ tự mỗi quan hệ
‘Word
du Tê: s inserting word Rutter: Uauean
Hinh 3-4 Ví dụ về chuyển đổi thay dỗi thứ Lự mỗi quan hệ
Chuyển đỗi này không làm giảm bộ nhớ chiếm dụng vì không có các giá trị
dt liệu được thêm hay xóa đi Truy cập đữ liệu giảm vỉ tăng truy cập do một Thứ
tự khác nhau.
Trang 343.2.4 Hướng giới hạn của mối quan hệ
next +wxt Character Character
and: int snd; int
ssetendtent: me) #rredou= 3e [nd: ine) [previous +getValue(]: Chat +getVelue(): Char
psetValue(value: Char) spsetValue(velue: Char)
Hình 3-5 Ví dụ chuyển đổi hướng giới han mỗi quan hệ
Chuyên đổi này làm giảm hướng giữa hai lớp từ hai chiêu hướng thành một chiều Chuyển đổ này được áp dụng khi hai lớp có mỗi quan hệ hai chiêu nhưng lại không sử dụng được, có nghĩa lả chỉ có một lớp gọi được lớp khác Mỗi chiều
trong đó một mối quan hệ dược định vị, bỂ sung đữ liệu vào lớp mục tiêu cần phải được lưu, sau đó dưa ra tổng chỉ phí cho việc lưu trữ, truy cập vả kiểm tra
dữ liệu Khi thục hiện chuyển đối này có thể cải tiến mức chiếm dụng bê nhớ của
chương trình nhờ việc giới hạn hướng và số lượng truy cập dữ liệu cũng giảm
Hình 3-5 là một ví đụ về phép hướng giới hạn môi quan hệ
Trang 35
Trong chuyển đổi nay Loan hộ số lượng truy cập đữ liệu được giảm do gọi
trực liếp tới hàm của chính cấu trúc dé Tổng thể bộ nhớ chiểm dụng của ứng
dụng không tăng lên vì không có đối tượng dữ liệu nào dược lạo ra hay xóa di
3.2.6 Chuyển thuộc tính thành tham số
DictionaryEngine
¬#nrdBuffer: String -ErseledLht: St:ng[B "]
Tlinh 3-7 Vi du chuyén thuộc tính thành tham số
Chuyển đổi này sẽ lập các biến tạm thời như đầu vào và đầu ra của phương,
thức/hảm Khi chương trình dược thưc thĩ thi thuộc tính nảy được tạo ra như một
biển cục bộ tam thời rong chuyển đổi này số lượng truy cấp dữ liêu không thay
đối, khi chức năng của ứng dụng như trước (nghĩa là thuộc tính vẫn ghi và đọc
như trước đây) IIình 3-7 là một ví đụ về phép chuyển thuộc tính thành tham số
Chuyển đổi này làm giảm bộ nhớ chiếm dụng theo thời gian sống của ứng
dụng De các thuộc tính đang được tạo ra trên stack hiện tại chứ không phải trên
heap Khi nó không được sử đụng, ví dụ như không ghi hoặc đọc thì nó không
chiếm không gian hộ nhở
Trang 363.2.7 Luại bỏ các thuộc tính dư thừa
down | > ‘sget'Vakea(): Char
~nE:Eni(]: int BeTvaue(vale: Char]
~satEnd{and: Int) cVaue(): Char
—serwakie(valuns Char)|
Hình 3-8 Ví dụ chuyển đối loại bỗ các thuộc tính dư thừa
Trong chuyển đổi nảy thì các thuộc tính dư thừa được loại bỏ Một thuộc
tính đư thừa, tức là nó không được sử dụng, đã lưu hành ri, đã lấy thông tín rồi
Khi thực hiện chuyển đổi này thì bộ nhớ chiêm dựng giảm do việc xỏa di một thuộc tính Các thuộc tính thay thể cho các thuộc tính xóa đi sẽ được phần bổ
trong trường hợp khác nên không làm Lăng dung lượng bộ nhớ vấp phát Hình 3-8
là một ví dụ về phép loại hô các thuộc tính dư thừa
3.2.8 Chuyển thuộc tính thành lớp
Chuyển đổi này nhằm chuyển một thuộc tính thành một lớp riêng kết nổi với
lớp ban đầu thành một lập hợp Sử dụng một tập các mối quan hệ dựa vào đặc tính của tâp hợp củng với các đặc tính chính và phụ Chuyển dỗi này nên dược áp
dụng khi một thuộc tính lớn, phức tap va truy cập thường xuyên được gặp Hình
3-9 là một ví dụ về phép chuyển dỗi thuộc tỉnh thành lớp
DictionaryEngine avec: Shing
Trang 37‘Tuy nbién chuyển đổi này khởi đầu cho nhiều chuyển đổi với ưu và nhược điểm
khác nhau, như đã trình bày ở trên
3.2.9 Thu gọn kiêu dữ liệu
Đây là phép biến dỗi den giản nhưng hiệu quả trong cả cải tiễn hiệu năng va
bộ nhớ Tư tưởng nủa phép biến đổi nảy dựa trên miễn giá trị của các thành viễn
dữ liêu để chuyển kiểu dữ liệu về kiểu nhỏ nhất chứa được miễn giá trị Để thực hiện phép biển đổi này, trong quá trình thiết kế mô hình đữ liệu cần chỉ rõ miễn
giá trị của mỗi thuộc tính Iơn nữa, khi thiết kế siêu mô hình để xây dựng công
cụ DSL cũng cần định nghĩa thêm thuộc tính miễn giá trị cho mỗi thành viên đữ
liệu
3.2.10 Chuyển tham số thành thuộc tính
Dua trên việc xây dựng hàm đánh giá hiệu năng trinh bày phần sau, có thé chứng mỉnh được thời gian thực thi một phương thức với tham số truyền vào sẽ
nhiều hơn thời gian thực thí phương thức đỏ khi sử đụng các thành phần đữ liệu thay cho các tham số Điều này hiển nhiên đúng vì việc sử dụng các tham số sẽ
mắt thêm thời gian cấp phát bộ nhớ và gắn giá trị cho các tham số này Do đó, để
cải tiến hiệu năng, chủng tôi để xuất và xây dựng phép biến đổi chuyển tham số
thánh thuộc tỉnh ĐỂ đảm báo việc truy xuất các thành phần tĩnh vả động trong,
chương trình hưởng đối tượng, các tham số của các phương thức tĩnh sẽ được chuyển thành các thành phần dữ liệu tĩnh và các tham số của các phương thức
động sẽ được chuyên thành các thành phần dữ liệu đông
Mặc dù phép biến đổi nảy cải tiến hiệu năng nhưng cũng làm tăng dung
lượng bộ nhớ chiếm dụng Điều nảy có thể chỉ ra dựa vào công thức đánh giá bộ
nhớ trong phần sau Do đó, khi xây dựng chương trình biến đối tự động trên mô hình để tối ưu hiệu năng, cần xác định thêm các ràng buộc để không làm dung
lượng bộ nhớ chiếm dụng tăng nhiều Điều này rất quan trọng đối với phần mềm
nhúng khi bộ nhớ trong các thiết bị những thưởng có kích thước nhỏ Ở dây chúng tôi xây dựng rảng buộc thực hiện phép biển đổi này dựa vào lần số sử
dụng của các phương thức
Trang 38hiệu năng nhưng cũng làm tăng kích thước bộ nhớ chiếm dụng của chương trình
Điều này sẽ dược chỉ ra trong phần dánh giả bộ nhớ Vi vay phép biến đổi này chỉ
được thực hiện khi tần số sử dụng lớn Đây cũng là tiêu chí để thực hiện biến đổi
tu ding và tối ưu
3.3 Xây dựng hàm đánh giá hiệu năng và bộ nhớ chiếm dung
Để thục hiện các phép biến đổi trên mô hình chúng ta cần phân tích mô hình
vả xây đựng các hảm đánh giá Các hàm dánh giả nhận dầu vào lả các tham số đặc tả mô hình, phân tích ảnh hưởng của các tham số dến các mục tiều đánh giá
như hiệu năng, bộ nhớ, tiêu thụ điện năng, Sau khi xây dựng, các hảm đánh giá
này sẽ được sử dụng làm tiêu chí lựa chọn trong các bước chuyển đổi cũng như
sử đụng để đánh giá mô hình ban đầu và mô hinh tối ưu Trong nghiên cứu của
Pham Văn Hướng và Nguyễn Ngọc Bình về “Đánh giả hiệu năng phẩn mỗm nhúng hướng dối tượng từ mô hình Class dựa trên D§L và T4” (L7| dã xây dựng
hàm đánh giá hiệu năng phần mềm dựa trên biểu dễ lớp Để làm cơ sở cho các
phép biến đổi và tôi ưu trên mê hình, chủng tôi sẽ cải tiến các công thức đánh giả
trong [17] để xây dựng hàm đánh giá hiệu năng và mức chiếm đụng bộ nhớ dựa
trên mô hình dữ liệu trừu lượng tương tự như biểu dỗ lớp nhưng không xét Linh
kế thừa và phạm ví truy xuất của các thành phần | 17]
3.3.1 Ham đánh giá hiện năng
Hảm đánh giá hiệu năng được xây đựng đựa trên phân tích hoạt dộng của
một chương trình hướng đối tượng Khi chương trình dược yêu cầu thực thị, dầu
tiên mã nguồn các lớp sẽ được nap vao bộ nhớ các biển tĩnh và các phương thức tĩnh cũng được cấp phát bộ nhớ trong thời điểm nạp Do đó các thành phần tĩnh chỉ mất một lần cấp phát tĩnh và một lần truy xuất bộ nhớ để sử dụng sau khi nạp
Khi sử dụng các biển đối tượng vá các phương thức dối tượng cần tạo và cấp phát
bộ nhớ cho dối tượng trước Khi tạo dỗi tượng, cần thực hiện hai bước là truy
xuất bộ nhớ để thực hiện câu lệnh tạo đối tượng và cấp phát đông bộ nhớ cho các
biến và phương thức đối tượng Do đó cần một thao tác cấp phát động và hai thao
Trang 39táo truy xuất bộ nhớ để có thể sử dụng các thành phần thuộc đối tượng Khi thực
thi một phương thức tĩnh, cần một thao tác truy xuất bộ nhớ dễ trỏ dến tập lệnh
của phương thức, một lần cấp phát bộ nhớ cho các tham số và sau khi thực hiện cân một lần truy xuất bộ nhớ để tham chiếu đến dữ liệu trả về Dỗng thời, để gọi một phương thức tĩnh cần truy xuất mã nguẫn của lớp đang chứa trong bộ nhớ
niên quá trình thực thi một phương thức tĩnh cần íL nhất một thao tác cấp phát và
ba thao tác truy xuất bộ nhớ Khi thực thi một phương thức dối tượng, cần phải
tạo đối tượng trước rồi mới gọi thông qua biển tham chiếu đối tượng nên cần một thao tác cấp phát đông và hai thao tác truy xuất bộ nhớ Như vậy toàn bộ quá
trình thực hiện của phương thức đối tượng cần ít nhất hai thao tác cấp phát bộ
nhớ và năm thao tác truy xuất bộ nhớ
'Từ biểu dỗ lớn chúng tôi lấy các tham số như trong Bang 3.2 Từ các tham
số này, chúng tôi đã xây dựng các độ đo từ 3, đến 8, như mô tả trong Bảng 3 1
và xây dụng hàm đánh giá hiệu năng dựa trên các đô đo này Iuy nhiên, để cải tiến hàm đánh giá hiệu năng sử dụng trong biến đối mô hình, chúng tôi bổ sung
thêm tần số sử dụng w của các tham số Theo đó, các công thức tính các độ đo 5;
đến 8; dược cải tiến như trong các công thức (3.1) đến (3.6) Hàm dánh giá hiệu
năng vẫn được tính theo [17] và dược trình bảy trong công thức (3.7) Theo công thức (3.7), hàm hiệu năng có giá trị cảng nhỏ càng tốt
Bang 3-1 Các độ đo ảnh hưởng đến hiệu năng
Tham số Ký hiệu Mũ tả Kích thước các biến tĩnh S; Tông kích thước các thuộc tính tĩnh
trong biểu đồ lớp
Kích thước các phương Sp Tông kích thước của các method tĩnh thức tĩnh trong biểu đồ
Kích thước thục thi các S3 Tông kích thước tham số và kiêu trả
phương thức tĩnh về khi thực thi các method static
Kích thước các biển đổi Ss Tổng kích thước các thuộc tỉnh
tượng nonstatic của đối tượng
Kích thước các phương & lông kích thước các method thức đối tượng nonstatic của đối tượng
Kích thước thực thi các % 'Tổng kích thước tham số và kiểu trả
phương thức đối tượng về khi thực thi method nonstatic của
đổi tượng
Trang 40
Băng 3-2 Các tham số sử đụng để dánh piá hiệu năng,
Các biển tĩnh xX Là thuộc tính tỉnh, được cầp phát bộ nhớ khi
nap chương trình Ä; là thuộc tính tinh thir j trong một lớp
Các biến đối tượng ¥; Tả thuộc tính của đối tượng, được cấp phát bộ
nhở khi đổi tượng được tạo ƑV; là biến
instance thir j của lớp
Tham số phương P, “Tham số thứ k eta mot method
thức
Tông các lớp A 86 class trong biểu đồ lớp
Tổng các phương B; Sõ các phương thức tĩnh trong cÌass 7
thức tĩnh B Tông số phương thức tĩnh trong biểu đồ
"Tông các thuộc tính CG 36 cac thuéc tinh tinh trong class i
tinh Cc Tổng số thuộc tính tĩnh trong biểu dé
Tổng các phương 7, Số các phương thức non-slatie trong class ï
thức dỗi tượng D Tổng số phương thức non-slalic trong biéu đỗ
Tông các thuộc tính x 86 cdc thuéc tinh non-static trong class i
đối tượng * 'Tông số các thuộc tính non-static trong biểu