Tải bản đầy đủ (.pdf) (90 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.18 MB, 90 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
------

NGUYỄN THỊ THU HUYỀ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
Ngành: Cơng nghệ thơng tin
Chun ngành: Kỹ thuật phần mềm
Mã số: 60480103

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN NGỌC BÌNH

Hà Nội – 2014


2

MỤC LỤC
MỞ ĐẦU ............................................................................................................ 8
CHƢƠNG 1 NGÔN NGỮ MIỀN CHUYÊN DỤNG VÀ CÔNG NGHỆ SINH
MÃ T4 ...............................................................................................................11
1.1 GIỚI THIỆU ............................................................................................11
1.2 NGÔN NGỮ MIỀN CHUYÊN DỤNG .....................................................11
1.2.1 Khái niệm ..........................................................................................11
1.2.2 Phạm vi ứng dụng của DSL ...............................................................12
1.2.3 Các công cụ hỗ trợ phát triển DSL .....................................................12
1.3 DSL MƠ HÌNH PHẦN MỀM NHÚNG ....................................................15


1.3.1 DSL mơ hình phần mềm nhúng .........................................................15
1.3.2 Quy trình xây dựng framework DSL và xây dựng siêu mơ hình ........16
1.4 CƠNG NGHỆ SINH MÃ T4 ....................................................................18
1.4.1 Khái niệm ..........................................................................................18
1.4.2 Các cơng cụ tích hợp và sử dụng T4 ..................................................19
1.4.3 Quy trình sinh mã theo T4 .................................................................19
1.4.4 Tích hợp T4 vào DSL framework để sinh mã từ mơ hình ..................19
CHƢƠNG 2 CÁC PHƢƠNG PHÁP TỐI ƢU TRONG GIAI ĐOẠN THIẾT
KẾ 21
2.1 TỔNG QUAN VỀ TỐI ƢU PHẦN MỀM NHÚNG ..................................21
2.2 CÁC KHÍA CẠNH TỐI ƢU PHẦN MỀM NHÚNG .................................22
2.3 CÁC PHƢƠNG PHÁP TỐI ƢU PHẦN MỀM NHÚNG TRONG GIAI
ĐOẠN THIẾT KẾ ..........................................................................................24
CHƢƠNG 3 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 ...................................................30
3.1 Ý TƢỞNG VÀ QUY TRÌNH TRIỂN KHAI .............................................30
3.2 CÁC PHÉP BIẾN ĐỔI TRÊN MƠ HÌNH .................................................31
3.2.1 Phân chia cấu trúc ..............................................................................31
3.2.2 Gộp cấu trúc ......................................................................................32
3.2.3 Thay đổi thứ tự mối quan hệ ..............................................................33
3.2.4 Hƣớng giới hạn của mối quan hệ .......................................................34
3.2.5 Tạo hoạt động đặc trƣng ....................................................................34
3.2.6 Chuyển đổi thuộc tính thành tham số .................................................37
3.2.7 Loại bỏ các thuộc tính dƣ thừa ...........................................................37
3.2.8 Chuyển thuộc tính thành lớp ..............................................................37


3

3.2.9 Thu gọn kiểu dữ liệu ..........................................................................37

3.2.10 Chuyển tham số thành thuộc tính ...................................................37
3.2.11 Chuyển các thành phần động thành tĩnh .........................................38
3.3 XÂY DỰNG HÀM ĐÁNH GIÁ HIỆU NĂNG VÀ BỘ NHỚ CHIẾM
DỤNG ............................................................................................................38
3.3.1 Hàm đánh giá hiệu năng ....................................................................38
3.3.2 Hàm đánh giá bộ nhớ .........................................................................41
3.4 ĐỊNH NGHĨA DSL, XÂY DỰNG FRAMEWORK VÀ TẠO MẪU T4 ...41
3.4.1 Định nghĩa DSL và xây dựng framework ..........................................41
3.4.2 Tạo mẫu T4 để sinh tham số tự động từ mơ hình ...............................43
3.5 XÂY DỰNG CHƢƠNG TRÌNH TỐI ƢU DỰA TRÊN BIẾN ĐỔI MƠ
HÌNH ..............................................................................................................44
3.5.1 Chuyển đổi mơ hình để tối ƣu hiệu năng............................................46
3.5.2 Chuyển đổi mơ hình để tối ƣu bộ nhớ chiếm dụng .............................46
4.1 MƠ TẢ VÀ MƠ HÌNH THỰC NGHIỆM .................................................49
4.2 THỰC NGHIỆM 1 - ỨNG DỤNG BÀI TOÁN THÁP HÀ NỘI ................49
4.2.1 Mơ tả bài tốn ....................................................................................49
4.2.2 Thiết kế lớp gốc .................................................................................49
4.2.3 Biến đổi mơ hình lớp .........................................................................51
4.2.4 Đánh giá hiệu năng và lựa chọn mơ hình tốt hơn ...............................53
4.3 THỰC NGHIỆM 2 - ỨNG DỤNG BÀI TOÁN 8 QUÂN HẬU .................56
4.3.1 Mơ tả bài tốn ....................................................................................57
4.3.2 Thiết kế lớp gốc .................................................................................57
4.3.3 Biến đổi mơ hình lớp .........................................................................58
4.3.4 Đánh giá hiệu năng và lựa chọn mơ hình tốt hơn ...............................61
4.4 THỰC NGHIỆM 3 - ỨNG DỤNG SẮP XẾP KIỂU PHÂN ĐOẠN (QUICK
SORT) ............................................................................................................64
4.4.1 Mơ tả bài tốn ....................................................................................64
4.4.2 Thiết kế lớp gốc .................................................................................64
4.4.3 Biến đổi mơ hình lớp .........................................................................65
4.4.4 Đánh giá hiệu năng và lựa chọn mơ hình tốt hơn ...............................68

4.5 THỰC NGHIỆM 4 - ỨNG DỤNG VẼ ĐỒ THỊ ........................................71
4.5.1 Mơ tả bài tốn ....................................................................................71
4.5.2 Thiết kế lớp gốc .................................................................................71
4.5.3 Biến đổi mơ hình lớp .........................................................................72
4.5.3 Đánh giá hiệu năng và lựa chọn mơ hình tốt hơn ...............................76
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỀN .......................................................79
TÀI LIỆU THAM KHẢO ................................................................................80
PHỤ LỤC..........................................................................................................80


4

DANH MỤC CÁC BẢNG
Bảng 3-1. Các độ đo ảnh hƣởng đến hiệu năng ...................................................39
Bảng 3-2. Các tham số sử dụng để đánh giá hiệu năng .......................................40
Bảng 3-3. Các lớp ngữ nghĩa và trực quan chính trong siêu mơ hình ..................42
Bảng 4-1. So sánh hiệu năng thực tế các chƣơng trình Bài toán Tháp Hà Nội ....56
Bảng 4-2. So sánh tỷ lệ giảm khi chạy chƣơng trình Bài tốn Tháp Hà Nội .......63
Bảng 4-3. So sánh hiệu năng thực tế các chƣơng trình Bài tốn 8 qn hậu .......63
Bảng 4-4. So sánh tỷ lệ giảm khi chạy chƣơng trình Bài tốn 8 quân hậu ...........63
Bảng 4-5. So sánh hiệu năng thực tế các chƣơng trình Quick Sort ......................71
Bảng 4-6. So sánh tỷ lệ giảm khi chạy chƣơng trình Quick Sort .........................72
Bảng 4-7. So sánh hiệu năng thực tế các chƣơng trình Vẽ đồ thị ........................77
Bảng 4-8. So sánh tỷ lệ giảm khi chạy chƣơng trình Vẽ đồ thị ...........................78
DANH MỤC CÁC HÌNH
Hình 1-1. Cơng cụ Microsoft DSL để định nghĩa DSL .......................................13
Hình 1-2. Cơng cụ EMF .....................................................................................14
Hình 1-3. Cơng cụ GMF .....................................................................................14
Hình 1-4. Cơng cụ MOFScript ...........................................................................15
Hình 1-5. Một phần của siêu mơ hình định nghĩa DSL .......................................17

Hình 1-6. Framework DSL hỗ trợ thiết kế biểu đồ lớp........................................18
Hình 1-7. Các bƣớc sinh mã theo T4 ..................................................................19
Hình 1-8. Một mẫu đƣợc xây dựng theo T4 để sinh tham số từ biểu đồ lớp ........20
Hình 2-1. Quy trình triển khai kỹ thuật tối ƣu hƣớng mơ hình ............................26
Hình 3-1. Quy trình triển khai ............................................................................31
Hình 3-2. Ví dụ về chuyển đổi phân chia cấu trúc ..............................................32
Hình 3-3. Ví dụ về chuyển đổi gộp cấu trúc .......................................................32
Hình 3-4. Ví dụ về chuyển đổi thay đổi thứ tự mối quan hệ................................33
Hình 3-5. Ví dụ chuyển đổi hƣớng giới hạn mối quan hệ ...................................34
Hình 3-6. Ví dụ chuyển đổi tạo hoạt động đặc trƣng ..........................................34
Hình 3-7. Ví dụ chuyển đổi lập thuộc tính tạm thời ............................................35
Hình 3-8. Ví dụ chuyển đổi loại bỏ các thuộc tính dƣ thừa .................................36
Hình 3-9. Ví dụ chuyển đổi thuộc tính thành lớp ................................................36
Hình 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
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 .....................................................................................................43
Hình 3-13. Tập tin đầu ra của T4 trích xuất các tham số từ biểu đồ ....................44
Hình 3-14. Chƣơng trình tối ƣu ..........................................................................45
Hình 3-15. Tính tốn hiệu năng, bộ nhớ chiếm dụng cho mỗi biểu đồ lớp ..........45
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
...........................................................................................................................46
Hình 4-1. Mơ hình thực nghiệm .........................................................................49
Hình 4-2. Biểu đồ lớp A1 ...................................................................................50
Hình 4-3. Tệp XML của biểu đồ lớp A1 .............................................................50


5

Hình 4-4. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp A1..............51

Hình 4-5. Chƣơng trình thực hiện phép phân chia cấu trúc biểu đồ lớp A ..........51
Hình 4-6. Mẫu T4 lấy các thông tin ngữ nghĩa từ mơ hình lớp A .......................52
Hình 4-7. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu A ......................................52
Hình 4-8. Mơ hình dữ liệu mới A .......................................................................53
Hình 4-9. Tệp tham số dựa trên các T4 templates của A .....................................53
Hình 4-10. Tính tốn hiệu năng và bộ nhớ cho mỗi biểu đồ lớp A ......................54
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 đồ
lớp A ..................................................................................................................54
Hình 4-12. Giao diện chƣơng trình Bài tốn Tháp Hà Nội ..................................55
Hình 4-13. Biểu đồ lớp B1 .................................................................................57
Hình 4-14. Tệp XML của biểu đồ lớp B1 ...........................................................58
Hình 4-15. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp B1 ............58
Hình 4-16. Chƣơng trình thực hiện phép phân chia cấu trúc biểu đồ lớp B .........59
Hình 4-17. Mẫu T4 lấy các thơng tin ngữ nghĩa từ mơ hình lớp B ......................59
Hình 4-18. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu B ....................................60
Hình 4-19. Mơ hình dữ liệu mới B .....................................................................60
Hình 4-20. Tệp tham số dựa trên các T4 templates của B ...................................61
Hình 4-21. Tính tốn hiệu năng và bộ nhớ cho mỗi biểu đồ lớp B ......................61
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 biểu đồ
lớp B ..................................................................................................................62
Hình 4-23. Giao diện chƣơng trình Bài tốn 8 Qn hậu ....................................63
Hình 4-24. Biểu đồ lớp C1 .................................................................................64
Hình 4-25. Tệp XML của biểu đồ lớp C1 ...........................................................65
Hình 4-26. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp C1 ............65
Hình 4-27. Chƣơng trình thực hiện phép phân chia cấu trúc biểu đồ lớp C .........66
Hình 4-28. Mẫu T4 lấy các thơng tin ngữ nghĩa từ mơ hình lớp C ......................66
Hình 4-29. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu C ....................................67
Hình 4-30. Mơ hình dữ liệu mới C .....................................................................67
Hình 4-31. Tệp tham số dựa trên các T4 templates của C ...................................68
Hình 4-32. Tính tốn hiệu năng và bộ nhớ cho mỗi biểu đồ lớp C ......................68

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 đồ
lớp C ..................................................................................................................69
Hình 4-34. Giao diện chƣơng trình Quick sort ....................................................70
Hình 4-35. Biểu đồ lớp D1 .................................................................................71
Hình 4-36. Tệp XML của biểu đồ lớp D1 ...........................................................71
Hình 4-37. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp D1 ............72
Hình 4-38. Chƣơng trình thực hiện phép phân chia cấu 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 từ mơ hình lớp D......................73
Hình 4-40. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu D ....................................74
Hình 4-41. Mơ hình dữ liệu mới D .....................................................................74
Hình 4-42. Tệp tham số dựa trên các T4 templates của D ...................................75
Hình 4-43. Tính tốn hiệu năng và bộ nhớ cho mỗi biểu đồ lớp D ......................75


6

Hình 4-44. Biểu đồ so sánh tối ƣu hiệu năng và bộ nhớ chiếm dụng của biểu đồ
lớp D ..................................................................................................................76
Hình 4-45. Giao diện chƣơng trình Vẽ đồ thị......................................................77
BẢNG THUẬT NGỮ VÀ TỪ VIẾT TẮT
Ký hiệu
Class
Codesign
hardwaresoftware
DSD
DSL
EDA
EMF
ES
GMF


IDE
MDE
OOP

Thuật ngữ
Class

Codesign hardware-software
Domain-specific description
Domain Specific Language
Electronic Design Automation
Eclipse Modeling Framework
Embedded System
Graphical Modeling Framework
Integrated
Development
Environment; Integrated Design
Environment;
Integrated
Debugging Environment
Model Driven Engineering

T4
UML

Object-oriented programming
Software
Performance
Engineering

Text Template Transformation
Toolkit
Unified Modeling Language

XML

Extensible Markup Language

SPE

Diễn giải
Lớp
Đồng thiết kế phần cứng phần mềm
Mô tả miền chuyên dụng
Ngôn ngữ miền chuyên
dụng
Thiết kế điện tử tự động
Hệ thống nhúng
Môi trƣờng phát triển tích
hợp; Mơi trƣờng thiết kế
hợp nhất; Mơi trƣờng gỡ
lỗi hợp nhất
Kỹ thuật hƣớng mơ hình
Lập trình hƣớng đối
tƣợng

Cơng nghệ sinh mã dựa
trên mẫu
Ngơn ngữ mơ hình hóa
Ngơn ngữ đánh dấu mở

rộng


7

LỜI CAM ĐOAN

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ă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, tạp chí, các cơng trình nghiên cứu đã
đƣợc cơng bố, 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 đoan


8

MỞ ĐẦU
Hệ 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ì: hệ thống nhúng là một hệ tính tố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ệ tính tốn (có thể là máy tính cá nhân, vi xử lý, vi
hệ thống,…) đƣợ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 cụ 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 chun

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 dụ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 tại độc lập.
Phần 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 cứng, cho phép đáp ứng tƣơng
tác ngƣời dùng hoặc cung cấp môi trƣờng để 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, tủ 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
bảo vệ và các sản phẩm đo và điều khiển.
Việc thiết kế và chế tạ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 đầ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à vi điều khiển, đáp ứng nhu cầu phát
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ƣ. Điều đó


9

chƣ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 điều kiện đặ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 điện tử, hệ
thống trên một chip thì 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 tin –
truyền thông. Hội nghị hàng đầu thế giới hàng năm về tự động hóa thiết kế là
Design Automation Conference (DAC, www.dac.com) tại Hoa Kỳ đƣợc bắt đầu
từ năm 1973 và tại khu vực Châu Á Thái Bình Dƣơng (ASP-DAC,
từ năm 1995 ln 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 ngồ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 trình nhúng và xây dựng
hệ thống gồm cả phần cứng lẫn phần mềm kè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 đề tiêu thụ năng lƣợng,
vấn đề thời gian thực.
thiết kế
phần cứng – phần mềm – codesign hardware-s
Asse
.
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 đ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 dễ báo trì …) mà chƣa tập trung vào các độ đo mức thực
thi (thời gian thực thi, bộ nhớ sử dụng …), nhƣng tối ƣu giai đoạn thiết kế mang
.

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ế. Đó là
để


10

đặc 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 dữ liệu dựa vào chuyển đổi mơ
hình
4.
Cấu trúc của luận văn có 4 chƣơng gồm chƣơng 1 nói về ngơn ngữ miền
chun dụng DSL 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 framework hỗ
trợ thiết kế mơ hình cấu trúc dữ 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 và phát
triển thực nghiệm cho các nội dung 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 đoạn 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 đổ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.


11

CHƢƠNG 1


NGÔN NGỮ MIỀN CHUYÊN DỤNG VÀ CÔNG NGHỆ SINH MÃ T4
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, UML đƣợ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ả chi tiết phần mềm trong các lĩnh vực cụ thể; khơng chuẩn hóa
về định dạng 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 các hạn chế này, một xu hƣớng triển vọng hiện nay là
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ƣ SQL, html,.. 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
và khả năng sinh mã từ XML 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ác
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, thông 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ả tồn bộ các đặc điểm phân
biệt của các chƣơng trình trong một miền vấn đề cụ thể; mô tả miền cụ thể


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 DSL; hệ thống xử lý miền cụ thể, một công cụ phần mềm để biên
dịch, phiên dịch hoặc phân tích các mơ tả miền cụ thể [20, 26].
DSL đặc tả hệ thống, phần cứng, phần mềm trong một phạm vi ứng dụng cụ
thể nhƣ SQL, html, VSDL. Mỗi DSL áp dụng trong một miền ứng dụng cụ thể và
có ý nghĩa, dễ sử dụng. Ngồi ra DSL có ít hệ thống ký hiệu, ít bảo trì và tăng
hiệu suất. Nó cũng có thể kết nối tới các miền chuyên gia. So với UML thì DSL
cịn có một ƣu điểm nổi bật là 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 và khả năng
sinh mã từ XML mạnh mẽ.
Bên cạnh các ƣu điểm trên thì DSL cịn một vài hạn chế. DSL là một ngôn
ngữ kỹ thuật và ngôn ngữ học mới nên chúng ta cần phải đầu tƣ thêm thời gian
nghiên cứu khi tiếp cận. DSL hỗ trợ IDE yếu nhƣ trình soạn thảo, chƣơng trình
tìm và khắc phục lỗi, tái cấu trúc,…Sự di trú khó và khó khăn khi phát triển thành
tổng quát.
1.2.2 Phạm vi ứng dụng của DSL
DSL đƣợc ứng dụng trong rất nhiều lĩnh vực, một phần nhỏ DSL đƣợc ứng
dụng trong công nghệ phần mềm. Nổi tiếng nhất là PIC, SCATTER, CHEM,
LEX, YACC, và Make [10], hoặc một vài ví dụ khác nhƣ SQL, BNF, và HTML,
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 chi 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 hành chuyên dụng. Multi-Media chính là Web máy tính, thao
tác 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ác giao thức truyền thơng, chuyển mạch viễn
thơng, và mơ hình tính tốn ký hiệu số… Ngoài ra DSL cũng đƣợc ứng dụng
nhiều trong các lĩnh vực khác nhƣ mô phỏng, các agent di động, robot điề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ợ phát triển DSL
Các công cụ hỗ trợ phát triển và định nghĩa DSL có rất nhiều. Chúng ta sẽ đi
tìm hiểu một vài cơng cụ hỗ trợ DSL phổ biến hiện nay nhƣ:


13

Microsoft DSL
Các công cụ DSL là một phần của Visual Studio SDK, cơng cụ DSL tích
hợp trong Microsoft Visual Studio 2005, 2008 và 2010. Công cụ này cho phép dễ
dàng xây dựng kiến trúc một DSL và các mơ hình đƣợc hợp thức hóa, ngồ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.

Hình 1-1. Cơng cụ Microsoft DSL để định nghĩa DSL
Eclipse
Eclipse bao gồm công cụ Eclipse Modeling Framework (EMF) cho phép tạo
một framework mơ hình và sinh mã dễ dàng, các mơ hình biến đổi cụ thể và quản
lý (tạo, sửa, lƣu, tải) các mơ hình đối tƣợng; cơng cụ Graphical Modeling
Framework (GMF) thì cung cấp thành phần sinh ra và thời gian chạy trong phát
triển biên tập đồ họa dựa trên EMF và GMF; công cụ MOFScript 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, 14 dƣới đây minh họa giao diện định nghĩa DSL trong Eclipse.


14

Hình 1-2. Cơng cụ EMF

Hình 1-3. Cơng cụ GMF



15

Hình 1-4. Cơng cụ MOFScript
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 vi 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.
Hầu 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 ngun 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 chi 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 phù hợp và
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:
Định nghĩa các thành phần
Các thành phần trong phần mềm nhúng chúng ta chia thành các lớp nhƣ lớp
chức năng chứa các hàm chức năng trong hệ thống, nó biểu diễn nhƣ ký hiệu lớp
trong UML. Lớp này cịn chứa thêm thuộc tính thực thi. Lớp tài nguyên chứa
các thành phần tài nguyên hệ thống nhƣ CPU, bộ nhớ, tệp, Input/Output. Lớp
thông điệp mô tả các gói tin truyền đi trong mơi trƣờng mạng khi trao đổi thông


16


tin giữa các thành phần (kích thƣớc gói tin, kiểu dữ 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 ta đị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 phần lớp nhƣ màu sắc, độ rộng,… Ngồ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
vng,…) và xác định các quan hệ cho các thành phần của lớp.
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 ta phải dựa trên tập các thành
phần, cú pháp đã định nghĩa DSL ở trên, để từ đó chúng ta sẽ xây dựng tập các
ký hiệu đồ họa tƣơng ứng, tập các biểu diễn XML và ánh xạ giữa ký hiệu đồ họa
XML và phát triển framework cho phép xây dựng mơ hình đặ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 dựng các siêu mơ hình đặc tả DSL. Siêu mơ
hình là mơ hình sử dụng để định nghĩa và tạo các mơ hình. Quy trình định nghĩa
DSL và xây dựng meta-model theo các bƣớc sau:
- Định nghĩa các thành phần lôgic: Domain Classes, Components, Tasks,
Flows, Comment Classes, Rules, Constrain, Relationship… và các ràng
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 diện đồ họa sau khi DSL đã
đƣợc biên dị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


17


Hình 1-5. Một phần của siêu mơ hình định nghĩa DSL
Áp dụng theo quy trình ở trên và thực hiện trên công cụ DSL để xây dựng
một framework DSL và siêu mơ hình hỗ trợ thiết kế biểu đồ lớp, sẽ đƣợc trình
bày cụ thể hơn ở chƣơng sau. Ví dụ hình 1-6 là một biểu đồ lớp của ứng dụng 8
quân hậu đƣợc thiết kế từ framework DSL.


18

Hình 1-6. Framework DSL hỗ trợ thiết kế biểu đồ lớp
1.4 Công nghệ sinh mã T4
Trong 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 framework DSL đã xây dựng để trích xuất các tham số từ biểu
đồ.
1.4.1 Khái niệm
Text Template Transformation Toolkit - T4 là một công cụ sinh mã dựa 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 dạng 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
2008.
Ví dụ: Khối mã đƣợc viết bằng C#, khối văn bản là Hello
<#@ template language=“C#” #>
Hello <# Write(“World!”)#>
1.4.2 Các cơng cụ tích hợp và sử dụng T4
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 .tt trong dự án của mình thì Visual Studio giao
TextTemplatingFileGenerator tự động tạo ra tập tin đầu ra từ mẫu. Trong



19

Command Line Utility thì 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 ngồ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
từ Tangible Engineering, mở rộng Visual Studio cung cấp IntelliSense và cú pháp
mạnh hơn 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.Break 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 từ CodePlex vào Visual Studio…
1.4.3 Quy trình sinh mã 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 đồ

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 vào DSL framework:


20


Thêm tệp có phần mở rộng .tt 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-8 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.
-

Hình 1-8. Một mẫu đƣợc xây dựng theo T4 để sinh tham số từ biểu đồ lớp

Tổng kết chƣơng
Tóm lại trong chương này đã đưa ra một quy trình xây dựng framework DSL
cho phép chúng ta xây dựng hoàn thiện một framework DSL hỗ trợ thiết kế mơ
hình cấu trúc dữ liệu của ứng dụng, ngồi ra kết hợp với cơng nghệ sinh mã T4
để 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ỗ trợ 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 tối ưu trong giai đoạn thiết kế để lựa chọn ra một phương pháp tối
ưu mà luận văn sẽ nghiên cứu sâu hơn.


21

CHƢƠNG 2
CÁC PHƢƠNG PHÁP TỐI ƢU TRONG GIAI ĐOẠN THIẾT KẾ

2.1 Tổng quan về tối ƣu phần mềm nhúng
Xu thế phát triển của công nghệ thông tin hiện nay tập trung vào công nghệ
nhúng. Hệ thống nhúng phát triển mạnh mẽ và có mặt trong hầu hết các lĩnh vực
đờ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 ngày

càng đƣợc nghiên cứu sâu rộn
: 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, vấn
đề thời gian thực… Do đó việc nghiên cứu vấn đề
.
năm

việc biên dịch

thiết kế –
Assemb
[10]. 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; Tối ƣu
trong

.
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 giai đoạn sau. Tuy nhiên vấn đề tố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 độ đo 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 dễ


22

báo trì…) mà chƣa tập trung vào các độ đo mức thực thi (thời gian thực thi, bộ
nhớ sử dụng…). Việc đánh giá phần mềm nhúng về hiệu năng, bộ nhớ, mức tiêu
thụ năng lƣợng của phần mềm vẫn là một thách thức đang 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ớ, dữ liệu và tối ƣu kích thƣớc phần
mềm, tối ƣu chi phí,… Có thể thực hiện tối ƣu trong các giai đoạn khác nhau và
phƣơng pháp tối ƣu theo mỗi khía 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 vì 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 trên các khía cạnh khác.
Tối ƣu đa mục tiêu hƣớng tới sự cân bằng giữa các mục tiêu tối ƣu của hệ
thống. Khi chúng ta cải tiến mục tiêu này thì phải khơng làm giảm mục tiêu tối
ƣu khác. Tối ƣu đa mục tiêu dựa trên nguyên lý Pareto.
2.2 Các khía cạnh tối ƣu phần mềm nhúng
Các nghiên
:
Tối ưu hiệu năng
Tối ƣu hiệu năng là bài toán đƣợc quan tâm nhiều nhất khi tối ƣu phần mềm
nói chung. Bài tốn tối ƣu hiệu năng đã đƣợc nghiên cứu sâu rộng và có

, Olsen
S: “Phần mềm nhúng trong thế giới SoC. Giúp HdS đối mặt như thế nào với
những thách thức thiết kế HW và SW” [15
, Wonyong
Sung: “Tối ưu phần mềm âm thanh MPEG 3 lớp của bộ xử lý RISC 32 bit” [22

-Yoon Cho, JongBae Moon, and Young-Chul Kim: “Một hệ thống để đánh giá hiệu năng của
phần mềm nhúng” [23].

cho các ứng dụng di động”

“Tối ưu hóa kết nối Client / Server
n trên Nokia Forum [12].



23

Tố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ƣ: điện thoại, bộ điều khiển và
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 đƣợ

, Tajana Simunic, Giovanni De
Micheli, “Tối ưu phần mềm nhúng năng lượng yếu sử dụng đại số tượng trưng”
[4
, L. & Nilsson, M., “Điều tra tiêu thụ năng lượng của một giao
diện mạng không dây trong môi trường mạng ad hoc” [6]. Một số hƣớng tiếp cận
mới đã ứ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ố để
quyết đị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 tiến trình quyết định Markov cho
tối ưu hóa phần mềm trên điện thoại di động” [16], tác giả đã áp xây dựng mơ
hình quyết định Markov để quản lý các ứng dụng thời gian chạy.
Tối ưu
Việc tối ƣu truyền thông tin trong môi trƣờng phân tán tập trung vào: tối ƣu
giao thức truyền thông, lựa chọn giao thức phù hợp, tối ƣu dữ liệu tại các trạm
đầu cuối trƣớc khi gửi vào đƣờ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 đến hạ tầng 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
cụ thể. Do đó vấn đề tối ƣu truyền thông cho ứng dụng phân tán trong môi trƣờng
không đồng nhất tập trung chính vào việc lựa chọn giao thức truyền thông và tối
ƣu dữ liệu tại các trạm đầu cuối. Các ứng dụng phân tán Mobile theo mơ hình
điện toán đám mây dựa trên hạ tầng Web Services đã đƣợc nghiên cứu và đang là
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 tốn này 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
. Fox: “Tối
ưu hóa hiệu suất nhắn tin cho dịch vụ Web trong máy di động” [5
Sangyoon Oh, Mehmet S. Aktas, Marlon Pierce, Geoffrey C. Fox: “Tối ưu hóa
hiệu suất nhắn tin dịch vụ Web sử dụng một kho bối cảnh cho dữ liệu tĩnh” [19,
20, 24].


24

Tối ưu bộ nhớ chương trình
Tối ƣu bộ nhớ chƣơ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ớ hạn chế. Các nghiên cứu
trong khía cạnh này gồm: sử dụng nhiều các chip nhớ, thanh ghi trong chƣơng
trình, cấp phát và giải phóng
R. Joshi, Matti Hiltunen, , Richard Schlichting, William H. Sanders, and Adnan
Agbaria: “Thích ứng dựa trên mơ hình trực tuyến để tối ưu hóa hiệu năng và độ
tin cậy” [23
.
Tối ưu bộ nhớ đệm
Tối ƣu bộ nhớ đệm là kỹ thuật đã đƣợc nghiên cứu và áp dụng từ lâu trong
hầu hết mọi môi trƣờng: Desktop, Network, Mobile và ngay cả
, triển khai [7, 8, 9].

[11, 13, 14].
2.3 Các phƣơng pháp tối ƣu phần mềm nhúng trong giai đoạn thiết kế
Tối ƣu mức thiết kế vớ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 chọn framework phát
triển tối ƣu, lựa giao thức truyền thông tối ƣu (http, https, SOAP). 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 dữ 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 (framework, 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
ƣ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.
Mục 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 cụ thể hoặc


25

là tối ƣu đa 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ập các mơ hình thiết kế, xây dựng và tính tốn các hàm đánh
giá 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á dựa trên mô phỏng.
Chúng ta chủ yếu tập trung đánh giá về hiệu năng, chuyển đặc tả hệ thống sang
mơ hình hiệu năng, sử dụng một số phƣơng pháp nhƣ: đặc tả hệ thống, phƣơng
pháp SPE, 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ơ hình thiết kế về mơ hình hiệu
năng để đánh giá tối ƣu, chúng ta 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, ngồi ra bổ
sung thêm thơng tin về hiệu năng vào các mơ hình UML. Sau đó chúng ta sẽ
chun từ mơ hình UML sang mơ hình hiệu năng và đá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 dựa trên DSL, chúng ta sẽ định nghĩa một số DSL để
đặ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 định 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 đầu 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ô


×