1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

90 407 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 4,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ô 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 chuyên dụng DSL và công nghệ sinh mã T4, nội dung

Trang 1

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

Chuyên 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

Trang 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ỚITHIỆU 11

1.2 NGÔNNGỮMIỀNCHUYÊNDỤ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 DSLMÔHÌNHPHẦNMỀMNHÚ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ÔNGNGHỆSINHMÃ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ỔNGQUANVỀTỐIƯUPHẦNMỀMNHÚNG 21

2.2 CÁCKHÍACẠNHTỐIƯUPHẦNMỀMNHÚNG 22

2.3 CÁCPHƯƠNGPHÁPTỐIƯUPHẦNMỀMNHÚNGTRONGGIAI ĐOẠNTHIẾTKẾ 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ƯỞNGVÀQUYTRÌNHTRIỂNKHAI 30

3.2 CÁCPHÉPBIẾNĐỔITRÊNMÔ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

Trang 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ÂYDỰNGHÀMĐÁNHGIÁHIỆUNĂNGVÀ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 ĐỊNHNGHĨADSL,XÂYDỰNGFRAMEWORKVÀTẠOMẪUT4 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ÂYDỰNGCHƯƠNGTRÌNHTỐIƯUDỰATRÊNBIẾNĐỔIMÔ 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ÌNHTHỰCNGHIỆM 49

4.2 THỰCNGHIỆM1-ỨNGDỤNGBÀITOÁNTHÁPHÀNỘI 49

4.2.1 Mô tả bài toá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ỰCNGHIỆM2-ỨNGDỤNGBÀITOÁN8QUÂNHẬU 56

4.3.1 Mô tả bài toá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ỰCNGHIỆM3-ỨNGDỤNGSẮPXẾPKIỂUPHÂNĐOẠN(QUICK SORT) 64

4.4.1 Mô tả bài toá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ỰCNGHIỆM4-ỨNGDỤNGVẼĐỒTHỊ 71

4.5.1 Mô tả bài toá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

Trang 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 toá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 toán 8 quân hậu 63

Bảng 4-4 So sánh tỷ lệ giảm khi chạy chương trình Bài toá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 toá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

Trang 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 toá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 toá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 toá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 toán 8 Quân 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 toá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 toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp D 75

Trang 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

DSD Domain-specific description Mô tả miền chuyên dụng

DSL Domain Specific Language

Ngôn ngữ miền chuyên dụng

EDA Electronic Design Automation Thiết kế điện tử tự động EMF Eclipse Modeling Framework

GMF Graphical Modeling Framework

IDE

Integrated Development Environment; Integrated Design Environment; Integrated Debugging Environment

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

MDE Model Driven Engineering Kỹ thuật hướng mô hình

OOP Object-oriented programming

Lập trình hướng đối tượng

UML Unified Modeling Language Ngôn ngữ mô hình hóa

XML Extensible Markup Language

Ngôn ngữ đánh dấu mở rộng

Trang 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

Trang 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 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ệ tính toá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 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 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 đó

Trang 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, http://www.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 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

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à

để

Trang 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ô

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 chuyên 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

Trang 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ả toà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ể

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 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 Ngoà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 toá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ư:

Trang 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, 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

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 2, 3,

1-4 dưới đây minh họa giao diện định nghĩa DSL trong Eclipse

Trang 14

Hình 1-2 Công cụ EMF

Hình 1-3 Công cụ GMF

Trang 15

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

Trang 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,… 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ớ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

Trang 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

Trang 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

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

Trang 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 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

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:

Trang 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, ngoà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

Trang 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 đề

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ễ

Trang 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 toá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

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,

Jong-Bae 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]

“Tối ưu hóa kết nối Client / Server

Trang 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 toá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]

Trang 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à độ

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

Trang 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 toá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, ngoà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ẽ chuyên 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ô

Trang 26

hì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

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 đồ Class và 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, chi 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 27

năng, chúng ta tập trung vào chi phí thời gian thực thi trong phân hoạch Thời gian thực của phân hoạch bao gồm thời gian thực thi các tác vụ phần cứng, thời gian thực thi các tác vụ phần mềm và thời gian 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

và kiểm thử Điều này làm mất nhiều thời gian và chi 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

: web application, web service…) T

p

Phương pháp này sẽ

Trang 28

Phương pháp này

Tối ưu dựa trên sinh mã thay thế mô phỏng chức năng

mã 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 phươ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ừ điển thao tác cơ bản để ước lượng cho mỗi tác vụ như: đọc tệp, ghi tệp, đọc ghi bộ nhớ; mỗi phần mềm nhúng được thiết kế theo các thao tác cơ bản trong từ điển; sinh mã mô phỏng các tác vụ dựa trên các thao tác cơ bản và các đoạn code mẫu ứng với các thao tác cơ bản (các đoạ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ã); chạy 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

Phát 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ẽ

tối ưu, mô hình tối ưu

Tối ưu dựa trên đánh giá biểu đồ lớp, DSL và T4

ưu Pareto dựa trên DSL và T4 Tối

ưu dựa trên đánh giá trực tiếp kiến trúc tĩnh của phần mềm nhúng (biểu đồ 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 đặc biệt là thiết kế hướng đối tượ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ối ưu đa mục tiêu Pareto Phương pháp này

C

phương pháp này để nghiên cứu và triển khai tiếp ở chương sau.

Trang 30

3 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

3.1 Ý tưởng và quy trình triển khai

Tối ưu dựa trên biến đổ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 dựa trên mô phỏng và phân tích

mô hình Thứ hai là xây dựng các phép biến đổi trên mô hình và kiểm tra tính đúng đắn của các phép biến đổi Thứ ba là khó thực hiện tự động quá trì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 đề kiểm chứng kết quả tối ưu trong giai đoạn thiết kế 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 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 diễn ở hình 3-1 như sau:

Trang 31

Hình 3-1 Quy trình triển khai

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 32

thế 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

Hình 3-2 Ví dụ về chuyển đổi phân chia cấu 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 dữ 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 33

truy xuất của các thành phần lại gần như nhau Do đó, chúng tôi đưa ra phép biến đổi gộp cấu trúc sẽ giả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 phân chia Tuy nhiên với phép biến đổi này, đóng gói của hệ thống có thể bị phá vỡ và cũng chỉ sử dụng trong giới hạn 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 Hình 3-3 là một ví dụ về phép gộp cấu trúc

3.2.3 Thay đổi 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 dụng nếu các cấu trúc không được truy cập theo thứ tự thì 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 Hình 3-4 là một ví dụ về phép thay đổi thứ tự mối quan hệ

Hình 3-4 Ví dụ về chuyển đổi thay đổi thứ tự 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ị

dữ liệu được thêm hay xóa đi Truy cập dữ liệu giảm vì tăng truy cập do một thứ

tự khác nhau

Trang 34

3.2.4 Hướng giới hạn của mối quan hệ

Hình 3-5 Ví dụ chuyển đổi hướng giới hạn 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 đổi 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ệ được định vị, bổ sung dữ liệu vào lớp mục tiêu cần phải được lưu, sau đó đưa ra tổng chi 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í dụ về phép hướng giới hạn mối quan hệ

3.2.5 Hoạt động đặc trưng

Phép chuyển đổi này nhằm tạo các hàm đặc trưng cho mỗi cấu trúc để tránh việc cùng truy cập vào các cấu trúc theo phương pháp tổng quát, phương pháp mới, riêng cho mỗi cấu trúc được tạo Hình 3-6 là một ví dụ về phép tạo hoạt động đặc trưng

Hình 3-6 Ví dụ chuyển đổi tạo hoạt động đặc trưng

Trang 35

Trong chuyển đổi này toàn bộ số lượng truy cập dữ liệu được giảm do gọi trực tiếp tới hàm của chính cấu trúc đó 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 được tạo ra hay xóa đi

3.2.6 Chuyển thuộc tính thành tham số

Hình 3-7 Ví dụ 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 được thực thi thì thuộc tính này được tạo ra như một biến cục bộ tạm thời Trong 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) Hình 3-7 là một ví dụ 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 Do 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ử dụng, ví dụ như không ghi hoặc đọc thì nó không chiếm không gian bộ nhớ

Trang 36

3.2.7 Loại bỏ các thuộc tính dư thừa

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 dư thừa, tức là nó không được sử dụng, đã lưu hành rồi, đã lấy thông tin 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 đi 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 tăng dung lượng bộ nhớ cấp phát Hình 3-8

là một ví dụ về phép loại bỏ 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 tậ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 đổi này nên được áp dụng khi một thuộc tính lớn, phức tạp và truy cập thường xuyên được gặp Hình 3-9 là một ví dụ về phép chuyển đổi thuộc tính thành lớp

Hình 3-9 Ví dụ chuyển đổi thuộc tính thành lớp

Trang 37

Việc chuyển đổi một thuộc tính thành một lớp không mong đợi làm thay đổi

số lượng truy cập dữ liệu cũng như làm giảm dung lượng bộ nhớ chiếm dụng Tuy nhiê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 đổi đơn giản nhưng hiệu quả trong cả cải tiến hiệu năng và

bộ nhớ Tư tưởng củ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 dữ liệu cần chỉ rõ miền giá trị của mỗi thuộc tính Hơ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 dữ liệu

3.2.10 Chuyển tham số thành thuộc tính

Dựa trên việc xây dựng hàm đánh giá hiệu năng trình bày phần sau, có thể chứng minh đượ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 thi phương thức đó khi sử dụng các thành phần dữ 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ỏ Ở đâ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 tần số sử dụng của các phương thức

Trang 38

tự động và tối ưu

3.3 Xây dựng hàm đánh giá hiệu năng và bộ nhớ chiếm dụng

Để 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 dựng các hàm đánh giá Các hàm đánh giá nhận đầ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ố đế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ử dụng để đánh giá mô hình ban đầu và mô hình tối ưu Trong nghiên cứu của

Phạm 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 đối tượng từ mô hình Class dựa trên DSL và T4” [17] đã xây dựng

hàm đánh giá hiệu năng phần mềm dựa trên biểu đồ 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 dụng bộ nhớ dựa trên mô hình dữ liệu trừu tượng tương tự như biểu đồ lớp nhưng không xét tính

kế thừa và phạm vi truy xuất của các thành phần [17]

3.3.1 Hàm đánh giá hiệu năng

Hàm đánh giá hiệu năng được xây dựng dựa trên phân tích hoạt động của một chương trình hướng đối tượng Khi chương trình được yêu cầu thực thi, đầu tiên mã nguồn các lớp sẽ được nạp vào 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 đối tượng cần tạo và cấp phát

bộ nhớ cho đối tượng trước Khi tạo đố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 39

tác 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ớ để trỏ đế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ề Đồ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ớ nên quá trình thực thi một phương thức tĩnh cần ít 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 đố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 đồ lớp chúng tôi lấy các tham số như trong Bảng 3.2 Từ các tham

số này, chúng tôi đã xây dựng các độ đo từ S 1 đến S 6 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 Tuy 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 n của các tham số Theo đó, các công thức tính các độ đo S 1 đến S 6 được cải tiến như trong các công thức (3.1) đến (3.6) Hàm đánh giá hiệu năng vẫn được tính theo [17] và đượ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

Bảng 3-1 Các độ đo ảnh hưởng đến hiệu năng

Kích thước các biến tĩnh S 1 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

thức tĩnh

S 2 Tổng kích thước của các method tĩnh

trong biểu đồ Kích thước thực thi các

Trang 40

Bảng 3-2 Các tham số sử dụng để đánh giá hiệu năng

Các phương thức

tĩnh

S Là phương thức tĩnh, được cấp phát bộ nhớ

khi nạp chương trình Các phương thức

đối tượng

O Là phương thức non-static, được cấp phát bộ

nhớ động Các biến tĩnh X j Là thuộc tính tĩnh, được cấp phát bộ nhớ khi

nạp chương trình X j là thuộc tính tĩnh thứ j trong một lớp

Các biến đối tượng Y j Là thuộc tính của đối tượng, được cấp phát bộ

nhớ khi đối tượng được tạo Y j là biến instance thứ j của lớp

Tham số phương

thức

P k Tham số thứ k của một method

Tổng các lớp A Số class trong biểu đồ lớp

Tổng các phương

thức tĩnh

B i Số các phương thức tĩnh trong class i

B Tổng số phương thức tĩnh trong biểu đồ Tổng các thuộc tính

tĩnh

C i Số các thuộc tính tĩnh trong class i

C Tổng số thuộc tính tĩnh trong biểu đồ Tổng các phương

thức đối tượng

D i Số các phương thức non-static trong class i

D Tổng số phương thức non-static trong biểu đồ Tổng các thuộc tính

đối tượng

E i Số các thuộc tính non-static trong class i

E Tổng số các thuộc tính non-static trong biểu

đồ Tổng các tham số F j Số các tham số trong phương thức j

(3.1)

(3.2)

(3.3)

Ngày đăng: 25/03/2015, 10:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Phạm Thƣợng Cát, “Hệ thống nhúng và sự phát triển của công nghệ thông tin”, Tạp chí Tin học và Điều khiển, Tr. 1-9, 2005 Sách, tạp chí
Tiêu đề: “Hệ thống nhúng và sự phát triển của công nghệ thông tin”
2. Nguyễn Ngọc Bình, ”Công nghệ phần mềm nhúng”, Nhà xuất bản Đại học quốc gia Hà Nội, Tr. xii-xvi, 1-11, 2014Tiếng anh Sách, tạp chí
Tiêu đề: ”Công nghệ phần mềm nhúng”
Nhà XB: Nhà xuất bản Đại học quốc gia Hà Nội
12. Nattawut Thepayasuwan, Alex Doboli. “Hardware-software co-design of resource constrained systems on a chip”, Distributed Computing Systems Workshops, Proceedings 24th International Conference, pp. 818-823, Mar 2004 Sách, tạp chí
Tiêu đề: Hardware-software co-design of resource constrained systems on a chip
13. N. N. Binh, M. Imai, A. Shiomi, N. Hikichi, and J. Sato, "A New Method for Hardware/Software Codesign of Pipelined Instruction Set Processor"Proceedings of 6th Tokai-shibu Electric Conference, Nov. 1994 Sách, tạp chí
Tiêu đề: A New Method for Hardware/Software Codesign of Pipelined Instruction Set Processor
14. P.H. Salus, editor. Little Languages, volume III of Handbook of Programming Languages. MacMillan, 1998 Sách, tạp chí
Tiêu đề: Little Languages", volume III of "Handbook of Programming Languages
15. Pospiech F, Olsen S. “Embedded software in the SoC world. How HdS helps to face the HW and SW design challenge”. IEEE, pp:653 – 658, 21- 24 Sept. 2003 Sách, tạp chí
Tiêu đề: Embedded software in the SoC world. How HdS helps to face the HW and SW design challenge
16. Poole, J., “Model-driven architecture: Vision, standards and emerging technologies” Workshop on Metamodeling and Adaptive Object Models, ECOOP, 2005 Sách, tạp chí
Tiêu đề: Model-driven architecture: Vision, standards and emerging technologies
17. P.V. Huong, N.N Binh, “Class Diagram Based Evaluation of Software Performance”, Proceedings of The 2012 International Conference on Information and Digital Engineering (ICIDE 2012), SPIE, Vol. 8768, pp Sách, tạp chí
Tiêu đề: Class Diagram Based Evaluation of Software Performance
19. Sangyoon Oh, Mehmet S. Aktas, Marlon Pierce, Geoffrey C. Fox, “Optimizing Web Service Messaging Performance Using a Context Store for Static Data” Sách, tạp chí
Tiêu đề: Optimizing Web Service Messaging Performance Using a Context Store for Static Data
20. Sanna Sivonen, “Domain-specific modelling language and code generator for developing repository-based Eclipse plug-ins”, ESPOO 2008 Sách, tạp chí
Tiêu đề: Domain-specific modelling language and code generator for developing repository-based Eclipse plug-ins
21. Vivy Suhendra, “Memory optimizations for time – Predictable embedded software”, A Thesis the degree of doctor, national university of Singapore 2009 Sách, tạp chí
Tiêu đề: Memory optimizations for time – Predictable embedded software
22. Wonchul Lee, Wonyong Sung, “Software optimization of MPEG audio layer3 for a 32bit RISC processor”, APCCAS '02 Asia-Pacific Conference, Vol. 1, pp. 435-438, Oct. 2002 Sách, tạp chí
Tiêu đề: Software optimization of MPEG audio layer3 for a 32bit RISC processor”
23. Yong-Yoon Cho, Jong-Bae Moon, and Young-Chul Kim, “A System for Performance Evaluation of Embedded Software”, Engineering and Technology 2005 Sách, tạp chí
Tiêu đề: A System for Performance Evaluation of Embedded Software
24. Zhihui Yang, “A Domain-Specific modeling approach for Component- Based software”, The doctor degree, Muncie, Indiana, 2009Danh sách các website Sách, tạp chí
Tiêu đề: A Domain-Specific modeling approach for Component- Based software
211-217, Singapore, 10/2012 (DOI: 10.1117/12.2008322, http://spie.org/x648.html?product_id=2008322) Link
Model-driven Development by deriving Code Generation Patterns from Product line architectures”, D-67661 Kaiserslautern, Germany, 2005 Khác
18. Quan Long, Zhiming Liu, Xiaoshan Li, and He Jifeng. Consistent Code Generation from UML Models. In ASWEC ’05: Proceedings of the 2005 Australian conference on Software Engineering, pages 23–30,Washington, DC, USA, 2005. IEEE Computer Society Khác

HÌNH ẢNH LIÊN QUAN

Hình 1-4. Công cụ MOFScript - 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
Hình 1 4. Công cụ MOFScript (Trang 15)
Hình 1-5. Một phần của siêu mô hình định nghĩa DSL - 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
Hình 1 5. Một phần của siêu mô hình định nghĩa DSL (Trang 17)
Hình 3-6. Ví dụ chuyển đổi tạo hoạt động đặc trƣng - 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
Hình 3 6. Ví dụ chuyển đổi tạo hoạt động đặc trƣng (Trang 34)
Hình 3-14. Chương trình tối ưu - 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
Hình 3 14. Chương trình tối ưu (Trang 45)
Hình 3-15. Tính toán hiệu năng, bộ nhớ chiếm dụng cho mỗi biểu đồ lớp - 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
Hình 3 15. Tính toán hiệu năng, bộ nhớ chiếm dụng cho mỗi biểu đồ lớp (Trang 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 đồ - 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
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 đồ (Trang 46)
Hình 4-13. Biểu đồ lớp B1 - 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
Hình 4 13. Biểu đồ lớp B1 (Trang 57)
Hình 4-15. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp B1 - 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
Hình 4 15. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp B1 (Trang 58)
Hình 4-32. Tính toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp C - 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
Hình 4 32. Tính toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp C (Trang 68)
Hình 4-43. Tính toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp D - 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
Hình 4 43. Tính toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp D (Trang 75)
Hình 4-45. Giao diện chương trình Vẽ đồ thị - 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
Hình 4 45. Giao diện chương trình Vẽ đồ thị (Trang 77)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w