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

Luận văn thạc sĩ VNU UET sinh mã tự động trong phát triển phần mềm hướng 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.67 MB, 113 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
----------  ----------

DƯƠNG NGỌC LÂM

SINH MÃ TỰ ĐỘNG TRONG PHÁT TRIỂN PHẦN MỀM
HƯỚNG MƠ HÌNH

LUẬN VĂN THẠC SĨ CƠNG NGHỆ THƠNG TIN

Hà Nội – 2014

LUAN VAN CHAT LUONG download : add


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

DƯƠNG NGỌC LÂM

SINH MÃ TỰ ĐỘNG TRONG PHÁT TRIỂN PHẦN MỀM
HƯỚNG MƠ HÌNH
Ngành:
Chun ngành:
Mã số:

Cơng nghệ thơng tin
Kỹ thuật Phần mềm
60480103


LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. ĐẶNG ĐỨC HẠNH

Hà Nội – 2014

LUAN VAN CHAT LUONG download : add


LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tôi, được thực hiện dưới
sự hướng dẫn khoa học của TS. Đặng Đức Hạnh.
Nội dung nghiên cứu và kết quả nêu trong luận văn là hoàn tồn trung thực, được
tơi tổng hợp, bổ sung và biên soạn theo sự hiểu biết của mình sau khi nghiên cứu được
từ các tài liệu tham khảo như sách, bài báo khoa học, luận văn, và dữ liệu từ các trang
Web uy tín.
Hà nội, tháng 6, năm 2014
Học viên
(ký và ghi rõ họ tên)

ii

LUAN VAN CHAT LUONG download : add


LỜI CẢM ƠN
Lời đầu tiên, tôi muốn dành lời cảm ơn sâu sắc nhất tới TS. Đặng Đức Hạnh –
Giảng viên Bộ môn Công nghệ Phần mềm – Khoa Công nghệ Thông tin – Trường
Đại học Công nghệ - ĐHQGHN, người đã trực tiếp định hướng và hướng dẫn tôi hồn
thành luận văn này. Từ những ngày đầu cịn bỡ ngỡ với lĩnh vực nghiên cứu mới, tôi

đã được Thầy tận tình quan tâm, hướng dẫn để tiếp cận nhanh với công nghệ mới.
Và bây giờ, sau khi đã trải qua giai đoạn nghiên cứu, tôi cũng đã thu được những
kiến thức nhất định được đúc kết trong luận văn này.
Ngoài ra, trong khoảng thời gian học tập và nghiên cứu tại Trường Đại học
Công nghệ – ĐHQGHN, với sự giảng dạy và giúp đỡ của các Thầy/Cô và các bạn
học viên, tơi đã học được rất nhiều bổ ích và lý thú. Ngồi những kiến thức về lĩnh vực
Cơng nghệ Thông tin mà tôi thu lượm được, điều tôi tâm đắc nhất đó là khả năng
tư duy, phân tích, tổng hợp các vấn đề một cách khoa học từ Thầy/Cơ và các bạn.
Điều đó khơng những giúp ích cho tôi trong việc xử lý tốt hơn các công việc
hàng ngày, mà cịn giúp tơi nâng cao khả năng nghiên cứu. Tự đáy lịng mình, tơi xin
gửi lời cảm ơn chân thành nhất tới các Thầy/Cô và các bạn. Tôi cũng xin gửi lời
cảm ơn tới gia đình mình đã ln ln động viên tơi hồn thành tốt nhiệm vụ học tập
được giao.
Do lĩnh vực nghiên cứu được đề cập trong luận văn còn mới lạ, chưa được
ứng dụng rộng rãi, và vẫn còn đang trong giai đoạn phát triển, cho nên tơi đã gặp
khơng ít khó khăn trong việc nghiên cứu. Giới hạn về thời gian cũng là vấn đề khiến
tôi chưa tập trung hết tâm huyết để khai thác các vấn đề chuyên sâu hơn nữa trong
lĩnh vực này. Vì vậy mà chắc chắn luận văn sẽ cịn nhiều điều thiếu sót, và rất mong
nhận được ý kiến đóng góp q báu của các Thầy/Cơ và bạn đọc quan tâm. Mọi ý kiến
đóng góp xin vui lịng gửi về địa chỉ thư điện tử:
Xin chân thành cảm ơn.
Học viên
Dương Ngọc Lâm

iii

LUAN VAN CHAT LUONG download : add


MỤC LỤC

LỜI CAM ĐOAN .......................................................................................................................ii
LỜI CẢM ƠN............................................................................................................................iii
MỤC LỤC ................................................................................................................................. iv
DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT ...........................................................viii
DANH MỤC CÁC HÌNH ẢNH VÀ ĐỒ THỊ ...........................................................................x
DANH MỤC CÁC BẢNG BIỂU.............................................................................................xii
MỞ ĐẦU .................................................................................................................................xiii
CHƯƠNG 1. TỔNG QUAN CÔNG NGHỆ PHÁT TRIỂN HƯỚNG MƠ HÌNH ...............1
1.1

Giới thiệu .............................................................................................................................................. 1

1.2

Ứng dụng MDA trong quy trình phát triển phần mềm.................................................................... 2

1.2.1

Phát triển phần mềm theo phương pháp truyền thống ...................................................................... 3

1.2.2

Phát triển phần mềm theo phương pháp hướng mơ hình (MDD)...................................................... 4

1.2.3

Những thuận lợi của kiến trúc hướng mơ hình (MDA)...................................................................... 5

1.2.3.1


Chất lượng sản phẩm ................................................................................................................ 5

1.2.3.2

Khả năng tương thích................................................................................................................ 5

1.2.3.3

Khả năng tương tác ................................................................................................................... 5

1.2.3.4

Bảo trì và Tư liệu ...................................................................................................................... 6

1.3

Cơ bản về MDA.................................................................................................................................... 6

1.3.1

Mơ hình (model) là gì?. ..................................................................................................................... 7

1.3.2

Meta-model........................................................................................................................................ 7

1.3.3

Chuyển đổi mơ hình........................................................................................................................... 8


1.3.4

Các đặc điểm mong muốn của sự chuyển đổi.................................................................................... 9

1.3.4.1

Khả năng truy tìm nguồn gốc.................................................................................................... 9

1.3.4.2

Tính nhất qn gia tăng........................................................................................................... 10

1.3.4.3

Tính hai chiều ......................................................................................................................... 10

1.3.5

Mơ hình bốn lớp của MDA .............................................................................................................. 10

1.3.6

Ví dụ về MOF .................................................................................................................................. 12

1.4

Các tiêu chuẩn của OMG được sử dụng với MDA ......................................................................... 14

1.4.1


MOF (Meta-Object Facility) ........................................................................................................... 14

1.4.2

UML (Unified Modeling Language)................................................................................................ 14

1.4.3

OCL (Object Contraint Language).................................................................................................. 14

1.4.4

CWM (Common Warehouse MetaModel)........................................................................................ 15

1.4.5

UML Profile..................................................................................................................................... 15

1.4.6

XMI (XML Metadata Interchange).................................................................................................. 16

1.4.7

JMI (Java Metadata Interchange) ................................................................................................... 16

1.5

Tổng kết chương ................................................................................................................................ 17


CHƯƠNG 2. KHẢO SÁT KHẢ NĂNG SINH MÃ TỰ ĐỘNG TRONG MDD ..................18
2.1

Giới thiệu ............................................................................................................................................ 18

iv

LUAN VAN CHAT LUONG download : add


2.2

Các bộ sinh mã hướng mơ hình ........................................................................................................ 19

2.2.1

Sử dụng Khuôn mẫu và Bộ lọc (Template and Filtering) ................................................................ 20

2.2.2

Sử dụng Khuôn mẫu và Meta-Model (Template and Meta-Model) ................................................. 21

2.2.3

Sử dụng Bộ sinh dựa trên API (API-based Generator) ................................................................... 22

2.2.4

Sử dụng Sinh mã nội tuyến (Inline Code Generation) ..................................................................... 22


2.3

Công cụ chuyển đổi mơ hình............................................................................................................. 24

2.3.1

EMF (Eclipse Modeling Framework).............................................................................................. 24

2.3.2

MDR (Metadata Repository) ........................................................................................................... 25

2.3.3

AndroMDA ...................................................................................................................................... 26

2.3.4

OptimalJ .......................................................................................................................................... 26

2.3.5

ArcStyler .......................................................................................................................................... 27

2.4

Khuôn mẫu (Templates).................................................................................................................... 27

2.4.1


Ngơn ngữ mục đích chung (General-Purpose Languages) ............................................................. 27

2.4.1.1

Ngôn ngữ đánh máy (Strongly Typed Languages) ................................................................. 27

2.4.1.2

Ngôn ngữ kịch bản (Loosely Typed Languages - Scripting) .................................................. 28

2.4.2

Ngôn ngữ phụ thuộc miền (Domain-Specific Languages) ............................................................... 28

2.4.3

Ngôn ngữ chuyển đổi mơ hình sang văn bản................................................................................... 28

2.4.3.1

Xpand...................................................................................................................................... 28

2.4.3.2

MOF Model to Text (MOFM2T)............................................................................................ 30

2.4.3.3

JET (Java Emitter Templates)................................................................................................. 33


2.5

Những lợi ích của việc sinh mã hướng mơ hình .............................................................................. 36

2.5.1

Chất lượng....................................................................................................................................... 36

2.5.2

Sự nhất quán.................................................................................................................................... 36

2.5.3

Sự linh hoạt...................................................................................................................................... 37

2.5.4

Tính di động..................................................................................................................................... 37

2.5.5

Phân tách các khía cạnh.................................................................................................................. 38

2.5.6

Tốc độ phát triển ............................................................................................................................. 38

2.5.7


Tăng thời gian phân bổ cho các pha chính...................................................................................... 38

2.6

Rủi ro từ việc áp dụng sinh mã ......................................................................................................... 39

2.6.1

Phần mềm không phù hợp cho việc sinh mã.................................................................................... 39

2.6.2

Chất lượng của phần mềm sinh mã kém.......................................................................................... 39

2.7

Tổng kết chương ................................................................................................................................ 39

CHƯƠNG 3. CÔNG NGHỆ WEB HƯỚNG MƠ HÌNH......................................................41
3.1

Giới thiệu ............................................................................................................................................ 41

3.1.1

Phương pháp tiếp cận...................................................................................................................... 42

3.1.2

Phân tách các khía cạnh.................................................................................................................. 44


3.1.3

Mơi trường chuyển đổi .................................................................................................................... 45

3.2

Cơng nghệ Web hướng mơ hình UWE............................................................................................. 46

3.2.1

Tổng quan về UWE.......................................................................................................................... 46

3.2.2

Các phương pháp khác trong MDWE so sánh với UWE................................................................. 48

3.2.2.1

WebML................................................................................................................................... 49

3.2.2.2

Object-Oriented Hypermedia (OO-H) .................................................................................... 49

v

LUAN VAN CHAT LUONG download : add



3.2.2.3
3.3

Object-Oriented Web Solution (OOWS) ................................................................................ 49

Tự động sinh mã trong UWE4JSF ................................................................................................... 50

3.3.1

Tổng quan về UWE4JSF.................................................................................................................. 50

3.3.2

Chuyển đổi mơ hình và cơ chế thẩm định mơ hình trong UWE4JSF............................................... 52

3.3.2.1

Chuyển đổi mơ hình UML2UWE........................................................................................... 53

3.3.2.2

Cơ chế thẩm định của UWE4JSF............................................................................................ 55

3.3.2.3

Chuyển đổi mơ hình sang mơ hình UWE2JSF ....................................................................... 56

3.3.2.4

UWE4JSF Meta-model........................................................................................................... 58


3.3.2.5

Chuyển đổi mơ hình sang văn bản trong UWE4JSF............................................................... 59

3.3.3
3.4

Cấu trúc của ứng dụng UWE4JSF .................................................................................................. 63
Tổng kết chương ................................................................................................................................ 65

CHƯƠNG 4. THỰC NGHIỆM VỚI UWE4JSF ..................................................................66
4.1

Giới thiệu ............................................................................................................................................ 66

4.2

Đặc tả yêu cầu .................................................................................................................................... 66

4.2.1

Biểu đồ ca sử dụng (Use Case Diagram) ........................................................................................ 67

4.2.2

Biểu đồ hoạt động (Activity Diagram)............................................................................................. 67

4.3


Thiết kế mơ hình ................................................................................................................................ 69

4.3.1

Mơ hình nội dung (Content) ............................................................................................................ 69

4.3.2

Mơ hình điều hướng (Navigation) ................................................................................................... 69

4.3.3

Mơ hình xử lý (Process)................................................................................................................... 71

4.3.3.1

AddContact ............................................................................................................................. 71

4.3.3.2

EditContact ............................................................................................................................. 72

4.3.3.3

DeleteContact.......................................................................................................................... 72

4.3.3.4

Login....................................................................................................................................... 73


4.3.3.5

Logout..................................................................................................................................... 73

4.3.3.6

Register ................................................................................................................................... 74

4.3.4

Mơ hình biểu diễn (Presentation) .................................................................................................... 74

4.3.4.1

Giao diện tổng thể................................................................................................................... 76

4.3.4.2

MainMenu............................................................................................................................... 77

4.3.4.3

ContactDataInput .................................................................................................................... 77

4.3.4.4

CustomerInfo .......................................................................................................................... 78

4.3.4.5


Contact.................................................................................................................................... 79

4.3.4.6

Giao diện nhập liệu ................................................................................................................. 80

4.3.4.7

Concrete Presentation Model.................................................................................................. 81

4.4

Thực hiện sinh mã.............................................................................................................................. 81

4.5

Đánh giá kết quả ................................................................................................................................ 81

4.6

Tổng kết chương ................................................................................................................................ 84

KẾT LUẬN ..............................................................................................................................85
TÀI LIỆU THAM KHẢO........................................................................................................86
PHỤ LỤC.................................................................................................................................88
Phụ Lục A. Các plug-in của công cụ UWE4JSF .......................................................................................... 88

vi

LUAN VAN CHAT LUONG download : add



Phụ Lục B. Thực hành với MagicUWE ........................................................................................................ 91
Phụ Lục C. Thực hành chuyển đổi với Eclipse IDE..................................................................................... 92

vii

LUAN VAN CHAT LUONG download : add


DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT
Chữ viết tắt

Chú giải

AJAX

Advanced Javascript and XML

APD

Abtract Presentation Diagrams

API

Application Programming Interface

ATL

ATLAS Transformation Language


BPEL

Business Process Execution Language

CASE

Computer Aided Software Engineering

CWM

Common Warehouse Metamodel

DSL

Domain-Specific Language

DTD

Document Type Definition

EJB

Enterprise Java Bean

EMF

Eclipse Modeling Framework

EMOF


Essensial MOF

HTML

HyperText Markup Language

ID

Identification

JET

Java Emitter Templates

JMI

Java Metadata Interface

JSF

Java Server Faces

JSP

Java Server Pages

LMU

Ludwig-Maximilians-Universität München


M2M

Model to Model

M2T

Model to Text

MOF

Meta-Object Facility

MDA

Model-Driven Architecture

MDE

Model-Driven Engineering

MDD

Model-Driven Development

MDR

Metadata Repository

MDSE


Model-Driven Software Engineering
viii

LUAN VAN CHAT LUONG download : add


Chữ viết tắt

Chú giải

MDSD

Model-Driven Software Development

MDWE

Model-Driven Web Engineering

MVC

Model-View-Controller

NAD

Navigation Access Program

OCL

Object Constraint Language


OGNL

Object Graph Navigation Language

OLAP

Online Analytical Processing

OMG

Object Management Group

OO-H

Object-Oriented Hypermedia

OOWS

Object-Oriented Web Solution

PIM

Platform-Independent Model.

PHP

Hypertext Preprocessor

PSM


Platform-Specific Model

RMI

Remote Method Invocation

SFs

Software Factories

UEL

Unified Expression Language

UI

User Interface

UML

Unified Modeling Language

URL

Uniform Resource Locator

UWE

UML-based Web Engineering


VTL

Velocity Template Language

WebML

Web Markup Language

XMI

XML Metadata Interchange

XML

eXtensible Markup Language

XSTL

eXtensible Stylesheet Language Transformations

ix

LUAN VAN CHAT LUONG download : add


DANH MỤC CÁC HÌNH ẢNH VÀ ĐỒ THỊ
Hình 1.1: Tập hợp miền ứng dụng và phương pháp trong MDD

2


Hình 1.2: Phương pháp phát triển phần mềm truyền thống

3

Hình 1.3: Ứng dụng MDA vào quy trình phát triển phần mềm

4

Hình 1.4: Khả năng tương tác sử dụng các cầu nối trong MDA. Nguồn [4, mục 1.3.3]

5

Hình 1.5: Mơ hình được viết bởi ngôn ngữ và mô tả hệ thống. Nguồn [4, mục 2.1]

7

Hình 1.6: Meta-model

8

Hình 1.7: Meta-language

8

Hình 1.8: Định nghĩa chuyển đổi bên trong công cụ chuyển đổi. Nguồn [4, mục 2.3]

9

Hình 1.9: Mơ hình bốn lớp của MDA. Nguồn [4, mục 8.2]


10

Hình 1.10: MOF trong MDA. Nguồn [9, tr. 204]

11

Hình 1.11: Cơ chế chuyển đổi mơ hình trong MDA. Nguồn [4, mục 8.3.1]

12

Hình 2.12: Sự trừu tượng hố tăng dần của ngơn ngữ máy tính [18].

18

Hình 2.13: Chuyển đổi mơ hình sang mã nguồn theo MDA

19

Hình 2.14: Sinh mã dựa trên Khn mẫu và Bộ lọc.

20

Hình 2.15: Sinh mã dựa trên Khn mẫu và Meta-model.

21

Hình 2.16: Sinh mã dựa trên API.

22


Hình 2.17: Sinh mã nội tuyến.

22

Hình 2.18: Sinh mã dựa trên khn mẫu. Nguồn [6, tr. 140]

23

Hình 2.19: Ví dụ về sinh mã. Nguồn [6, tr. 140]

23

Hình 2.20: Khung EMF. Nguồn [9, tr. 210]

25

Hình 2.21: Luồng chuyển đổi trong oAW. Nguồn [5]

29

Hình 2.22: Chuyển đổi mơ hình sang mã nguồn với Acceleo

31

Hình 2.23: JET Engine.

34

Hình 2.24: Chuyển đổi với JET.


34

Hình 2.25: Tốc độ phát triển theo số liệu năm 2009 của MetaCase [18]

38

Hình 3.26: Phân tách các chuyển đổi từ PIM sang PSM. Nguồn từ Chương 3, tài liệu [3]

45

Hình 3.27: Mơi trường chuyển đổi dựa trên EMF

46

Hình 3.28: Mơ hình UWE được biểu diễn bởi UML Profile và UML

46

Hình 3.29: Chuyển đổi mơ hình theo các khía cạnh. Trích dẫn từ Chương 1 của [3]

48

Hình 3.30: Tiến trình chuyển đổi trong UWE4JSF [19]

51

Hình 3.31: Tiến trình chuyển đổi chi tiết trong UWE4JSF [17]

53


Hình 3.32: Gói hỗ trợ thẩm định mơ hình trong UWE Meta-model

56

Hình 3.33: Ví dụ về cấu trúc của mơ hình biểu diễn trong UWE.

57

x

LUAN VAN CHAT LUONG download : add


Hình 3.34: Các thành phần mơ hình tiêu chuẩn JSF của mơ hình biểu diễn cụ thể.

58

Hình 3.35: Cấu trúc cơ bản của UWE4JSF meta-model mức PSM

58

Hình 3.36 : Cấu trúc của khung ứng dụng UWE4JSF

64

Hình 4.37 Biểu đồ ca sử dụng tổng quát (Use Case Diagram)

67


Hình 4.38 Biểu đồ hoạt động chức năng CreateContact

68

Hình 4.39 Biểu đồ lớp thể hiện mơ hình nội dung

69

Hình 4.40 Biểu đồ lớp thể hiện mơ hình điều hướng

70

Hình 4.41 Mơ hình xử lý tổng quát

71

Hình 4.42 Biểu đồ hoạt động AddContact

71

Hình 4.43 Biểu đồ hoạt động EditContact

72

Hình 4.44 Biểu đồ hoạt động DeleteContact

72

Hình 4.45 Biểu đồ hoạt động Login


73

Hình 4.46 Biểu đồ hoạt động Logout

73

Hình 4.47 Biểu đồ hoạt động Register

74

Hình 4.48 Giao diện tổng thể của một trang Web được thể hiện qua mơ hình biểu diễn.

76

Hình 4.49 Giao diện thành phần con MainMenu

77

Hình 4.50 Giao diện thành phần con ContactDataInput

77

Hình 4.51 Giao diện thành phần con CustomerInfo

78

Hình 4.52 Giao diện thành phần con Contact

79


Hình 4.53 Giao diện nhập dữ liệu cho Login và Register

80

Hình 4.54 Mơ hình biểu diễn cụ thể

81

Hình 4.55: Số dịng lệnh *.java ở thư mục /src.

82

Hình 4.56: Số dịng lệnh *.jsp ở thư mục /WebContent.

82

Hình Phụ Lục A.1: Chuỗi plug-in trong UWE4JSF.

88

Hình Phụ Lục A.2: Các Plug-in của UWE4JSF

89

Hình Phụ Lục A.3: Cấu trúc thư mục, file của Plug-in

89

Hình Phụ Lục A.4: Các file khn mẫu của Plug-in


90

Hình Phụ Lục B.5: Xuất dữ liệu làm đầu vào cho cơng cụ chuyển đổi.

91

Hình Phụ Lục C.6: Khung ứng dụng Web.

93

Hình Phụ Lục C.7: Sinh mã bằng UWE4JSF.

93

Hình Phụ Lục C.8: Mã nguồn được sinh ra.

94

Hình Phụ Lục C.9: Bổ sung mã nguồn.

95

xi

LUAN VAN CHAT LUONG download : add


DANH MỤC CÁC BẢNG BIỂU
Bảng 4.1: Các khuôn mẫu được sử dụng trong biểu đồ hoạt động


67

Bảng 4.2: Các khuôn mẫu được sử dụng trong mơ hình điều hướng

69

Bảng 4.3: Các khn mẫu được sử dụng trong mơ hình biểu diễn

74

Bảng 4.4: Các thành phần cần bổ sung

82

Bảng 4.5: Tiêu chí đánh giá việc sinh mã

83

Bảng Phụ Lục A.1: Các Plug-in của công cụ UWE4JSF

88

xii

LUAN VAN CHAT LUONG download : add


MỞ ĐẦU
Cơng nghệ phầm mềm ln là điều gì đó ám ảnh các nhà khoa học, thúc đẩy họ
phải luôn tìm tịi, sáng tạo ra những cách thức mới để nâng cao chất lượng của

sản phẩm phần mềm. Nhìn lại quá khứ từ khi máy tính ra đời cho đến ngày nay thì có
thể thấy ngơn ngữ máy tính cũng đã phát triển qua nhiều thế hệ từ hợp ngữ, đến
ngôn ngữ thủ tục, đến ngôn ngữ hướng đối tượng, và bây giờ là ngơn ngữ mơ hình
hố. Cùng với sự phát triển của ngơn ngữ, thì các phương pháp phát triển tương ứng
với chúng cũng ra đời nhằm giải quyết bài toán chất lượng phần mềm, như
phương pháp hướng đối tượng, phương pháp hướng thành phần, phương pháp
hướng khía cạnh, vân vân. Có một điều rất dễ nhận thấy đó là mức độ trừu tượng, tính
kế thừa của các ngôn ngữ, của các phương pháp đều phát triển theo hướng tăng dần.
Tại sao lại như vậy? Nguyên nhân chính, đơn giản đến từ những điều rất tự nhiên
trong cuộc sống. Đó là nhu cầu của con người.
Cơng nghệ phát triển ngày càng hiện đại với nhiều nền tảng mới ra đời, cùng với
nhu cầu ngày càng lớn của người dùng internet khiến cho các nhà phát triển phải
xây dựng các hệ thống lớn có nhiều tính năng để đáp ứng nhu cầu đó, cũng như làm
tăng sự trải nghiệm của người dùng. Rồi nhu cầu mới lại được đưa ra một cách nhanh
chóng, và các phiên bản phần mềm mới lại ra đời sao cho có thể hoạt động tốt được
trên nền tảng mới. Việc này thực tế gây ra rất nhiều phiền toái cho các nhà phát triển
với các vấn đề quản lý, duy trì phần mềm một cách thủ công nếu họ vẫn áp dụng
phương pháp phát triển cũ. Nỗ lực và thời gian tiêu tốn cho việc duy trì đó là rất lớn.
Khơng có cách giải quyết nào tốt hơn là phải áp dụng các phương pháp phát triển mới
vào quy trình phát triển phần mền.
Để giải quyết nhu cầu người dùng một cách nhanh chóng, các nhà phát triển
thường phải tập trung vào khâu phân tích các vấn đề ở giai đoạn đầu của dự án,
và cách tốt nhất để diễn đạt ý tưởng cho những bộ phận liên quan có chun mơn khác
nhau, là qua việc mơ hình hố các khía cạnh của phần mềm bằng ngơn ngữ mơ hình
hố. Phương pháp phát triển phần mềm hướng mơ hình ra đời với ý tưởng chính là
tập trung vào việc mơ hình hố phần mềm, rồi từ đó chuyển đổi tự động sang các
mơ đun, mã nguồn, hay chương trình có thể thực thi được bằng các công cụ
chuyển đổi. Hiện tại, phương pháp phát triển này đang được áp dụng bởi rất nhiều
tổ chức vì nó đã giải quyết được rất nhiều vấn đề ở cả khía cạnh người dùng và
khía cạnh người phát triển, và được xem như là thế hệ phát triển tiếp theo trong

lĩnh vực cơng nghệ phần mềm.
Ở một góc độ khác, trong thời buổi hội nhập kinh tế thế giới hiện nay, các
công ty, tổ chức cạnh tranh nhau khốc liệt nhằm giành chỗ đứng trên thị trường, để
khẳng định thương hiệu của mình bằng cách cung cấp các sản phẩm có chất lượng tốt
hơn với giá cả rẻ hơn đối thủ. Để thực hiện điều đó khơng có cách nào khác là phải
xiii

LUAN VAN CHAT LUONG download : add


ứng dụng cơng nghệ mới vào quy trình sản xuất kinh doanh của mình, làm tăng
năng suất sản phẩm, giảm thiểu sức lao động của con người. Tất cả những điều nêu
trên là động lực thúc đẩy tôi lựa chọn đề tài nghiên cứu “Sinh mã tự động trong
phát triển phần mềm hướng mơ hình”.
Luận văn được cấu trúc như sau:
Chương 1: Tổng quan về công nghệ phát triển hướng mơ hình (MDD/MDE) nói chung
và cơng nghệ phát triển phần mềm hướng mơ hình nói riêng (MDSD/MDSE). Chương
này cũng đề cập đến phương pháp phát triển sử dụng kiến trúc đang được áp dụng
rộng rãi bởi các tổ chức hiện nay, đó là kiến trúc hướng mơ hình MDA.
Chương 2: Tập trung vào khảo sát khả năng sinh mã tự động (Code Generation) khi
chuyển đổi giữa các mơ hình trong phát triển phần mềm hướng mơ hình. Đi sâu vào
nghiên cứu các phương pháp chuyển đổi từ mơ hình sang văn bản (mã nguồn, tài liệu),
sử dụng các ngôn ngữ chuyển đổi và công cụ khuyển đổi khác nhau. Tùy vào từng
ứng dụng cụ thể mà có thể sử dụng các phương pháp khác nhau, phân tích ưu điểm,
nhược điểm của từng phương pháp.
Chương 3: Giới hạn phạm vi nghiên cứu qua việc phân tích cơng nghệ phát triển
ứng dụng Web hướng mơ hình (MDWD/MDWE) nói chung, đi sâu vào nghiên cứu
khả năng sinh mã tự động với công nghệ Web hướng mơ hình dựa trên UML (UWE)
nói riêng, trong đó tập trung vào cơng cụ UWE4JSF.
Chương 4: Thực nghiệm với UWE4JSF bằng cách xây dựng một ứng dụng đơn giản

nhằm đánh giá khả năng sinh mã của công cụ này.

xiv

LUAN VAN CHAT LUONG download : add


CHƯƠNG 1. TỔNG QUAN CƠNG NGHỆ PHÁT TRIỂN
HƯỚNG MƠ HÌNH
Chương này luận văn sẽ đề cập một cách khái quát về Cơng nghệ phát triển
hướng mơ hình (MDD), trong đó luận văn sẽ giới hạn phạm vi nghiên cứu trong
lĩnh vực phát triển phần mềm (MDSD). Ngoài ra luận văn cũng đề cập đến lý thuyết
cơ bản về kiến trúc hướng mơ hình (MDA) và những lợi thế của phương pháp
phát triển phần mềm sử dụng kiến trúc này so với phương pháp truyền thống.
1.1

Giới thiệu

Tiếp tục với vấn đề được đề cập trong Phần Mở Đầu, khi các nhà phát triển đang
đối mặt với nhiều vấn đề về sự phát triển nhanh chóng và ngày càng phức tạp của các
nền tảng cơng nghệ mới. Do đó, họ phải dành nhiều công sức và thời gian để tuỳ biến
ứng dụng (thường theo cách thủ công là sửa mã nguồn) sao cho có thể hoạt động được
trên các nền tảng khác nhau.
Cơng nghệ hướng mơ hình (MDE) là phương pháp tiếp cận mới giải quyết được
sự phức tạp của các nền tảng khác nhau bằng cách tập trung vào diễn tả khía cạnh
miền ứng dụng một cách hiệu quả. MDE hướng tới việc sử dụng các mơ hình (models)
như là tác nhân chính trong tồn bộ vịng đời phát triển của ứng dụng. Và do đó, ở
khía cạnh này nó cũng đồng nghĩa với thuật ngữ Phát triển hướng mơ hình (MDD), và
chúng ta có thể ngầm hiểu rằng khi nhắc đến MDE hay MDD là ta đang nói về
“Cơng nghệ phát triển hướng mơ hình”. MDD phát triển dựa trên ý tưởng về

mơi trường quản lý mơ hình phần mềm có tính tự động hố cao. Nghĩa là nó khơng bị
phụ thuộc vào các nền tảng, và khi có nền tảng mới ra đời thì sự tự động hố đó sẽ
phát huy tác dụng, ứng dụng mới sẽ được chuyển đổi tự động từ các mơ hình để
tương thích với nền tảng mới. Điều đó làm tăng năng suất và thời gian phân phối sản
phẩm.
Ngày nay, MDD không chỉ được ứng dụng trong lĩnh vực phần mềm mà còn ở
những lĩnh vực khác như phần cứng [6] (mơ hình các mạch điện tử để tạo các mạch
vật lý ngoài sự can thiệp của con người), các hệ thống nhúng [10]. Phạm vi nghiên cứu
được đề cập trong luận văn là lĩnh vực phần mềm, tương ứng với thuật ngữ
“Công nghệ phát triển phần mềm hướng mơ hình” (MDSE hay MDSD). Tiếp đó, ở
Chương 3 luận văn sẽ trình bày phạm vi cụ thể hơn là miền ứng dụng Web (MDWE)
với các phương pháp phát triển Web hướng mơ hình, mà trọng tâm là phương pháp
UWE.

1

LUAN VAN CHAT LUONG download : add


Hình 1.1: Tập hợp miền ứng dụng và phương pháp trong MDD
Như đã trình bày, mơ hình (model) là điểm mấu chốt mà các phương pháp
tiếp cận trong MDD hướng tới. Trong đó mơ hình phần mềm có thể được phân loại
thành phi cấu trúc và cấu trúc [6], ví dụ mơ hình phi cấu trúc như các mơ tả bằng
ngơn ngữ tự nhiên, các hình vẽ bằng cơng cụ đồ hoạ máy tính; mơ hình cấu trúc thì có
tập hợp các thành phần được định nghĩa trước và các quy tắc mà chúng tuân theo. Các
quy tắc này có thể ở dạng phi hình thức (informally) hay dạng hình thức (formally).
Các quy tắc được cung cấp dưới dạng hình thức được gọi là meta-model hay domainspecific language (DSL- ngôn ngữ phụ thuộc miền) hay modeling language (ngơn ngữ
mơ hình hố), và được sử dụng bởi các phương pháp mơ hình hố khác nhau.
Trên thị trường hiện tại có nhiều kiến trúc hướng mơ hình (xem Hình 1.1) mà
MDD tn theo như MDA (chuẩn hoá bởi OMG sử dụng MOF), Software Factories 1

(phát triển bởi Microsoft sử dụng DSL), EMF (được tích hợp với Eclipse sử dụng
Ecore), DSM (sử dụng DSL, phát triển bởi MetaCase 2 với công cụ MetaEdit+),
vân vân. Tuy nhiên, ở Chương này luận văn chỉ tập trung vào phân tích kiến trúc
MDA. Kiến trúc tương tự với MDA, chỉ khác biệt một số điểm là EMF sẽ được đề cập
ở Chương 2. Cả hai kiến trúc này đang được áp dụng rộng rãi bởi nhiều tổ chức
hiện nay.
1.2

Ứng dụng MDA trong quy trình phát triển phần mềm

Mục này sẽ giải thích tại sao MDA có thể khắc phục được những nhược điểm mà
các phương pháp truyền thống đang gặp phải. Về mặt bản chất, MDA không phải là
quy trình phát triển phần mềm, và tư tưởng của MDA có thể áp dụng cho bất kỳ
quy trình nào. Cụ thể chúng ta sẽ so sánh phương pháp sử dụng MDA với
phương pháp phát triển truyền thống trong quy trình phát triển theo mơ hình
thác nước.
1
2

/> />
2

LUAN VAN CHAT LUONG download : add


1.2.1 Phát triển phần mềm theo phương pháp truyền thống
Đối với việc xây dựng những hệ thống nhỏ, ít tốn kém thì việc áp dụng các
phương pháp truyền thống vẫn còn hữu dụng, tuy nhiên đối với việc xây dựng những
hệ thống lớn, địi hỏi phải đáp ứng nhiều tính năng từ phía người dùng, thì việc
áp dụng các phương pháp này về lâu về dài sẽ gây nhiều khó khăn cho nhà phát triển.

Yêu cầu
Tài liệu dạng văn
bản
Phân tích
Tài liệu dạng văn
bản, biểu đồ
Thiết kế
Tài liệu dạng văn
bản, biểu đồ
Lập trình
Mã nguồn
Kiểm thử
Mã nguồn
Triển khai

Hình 1.2: Phương pháp phát triển phần mềm truyền thống
Hình trên minh họa các pha phát triển của mơ hình thác nước, các pha phân tích,
thiết kế mơ tả các vấn đề hầu như dưới dạng văn bản, và hình ảnh minh họa là một số
biểu đồ (UML) như biểu đồ ca sử dụng, biểu đồ lớp, biểu đồ hoạt động, vân vân.
Đến pha lập trình thì một số vấn đề sẽ nảy sinh như nếu có những u cầu mới từ phía
người dùng, thì thông thường nhà phát triển sẽ chú trọng nhiều hơn vào pha lập trình
để đáp ứng nhanh nhu cầu của người dùng, thời gian hạn hẹp sẽ khiến nhà phát triển
sao nhãng phần thiết kế, do đó khoảng cách giữa pha thiết kế và pha lập trình ngày
càng lớn, tầm quan trọng của pha thiết kế sẽ giảm dần theo thời gian. Tuy việc
cập nhật tài liệu sau khi lập trình có thể được giải quyết bằng các cơng cụ tạo tài liệu
từ mã nguồn, tuy nhiên nó cũng chỉ giải quyết được việc thiết kế ở mức thấp, còn ở
mức trừu tượng cao hơn như biểu diễn bằng các biểu đồ, ý nghĩa của nó thì các
cơng cụ này khơng giải quyết được. Điều này sẽ gây nhiều khó khăn cho việc
kiểm thử, vận hành, bảo trì hệ thống sau này khi tài liệu thiết kế không được cập nhật
đầy đủ.

Ngồi vấn đề về thiết kế trên thì mơ hình truyền thống này cịn phải đối mặt với
vấn đề khả năng tương thích ngược. Vì các cơng nghệ mới được phát minh theo
3

LUAN VAN CHAT LUONG download : add


thời gian một cách nhanh chóng nhằm đáp ứng các yêu cầu ngày một đa dạng của
người dùng, để giải quyết những vấn đề tồn đọng trước đó, buộc các nhà phát triển
phần mềm cũng phải chạy đua theo để không bị lạc hậu. Như vậy những phiên bản
phần mềm mới có thể khơng tương thích với các cơng nghệ cũ, nền tảng cũ đã được
dùng bởi mơ hình truyền thống.
1.2.2 Phát triển phần mềm theo phương pháp hướng mô hình (MDD)
Phương pháp phát triển phần mềm hướng mơ hình (MDSD) ít nhiều giải quyết
được những vấn đề nêu trên. Khi ứng dụng MDA vào quy trình phát triển theo
mơ hình thác nước, bản chất ở mỗi pha của quy trình là tài liệu được thể hiện ở dạng
mơ hình, và vì các mơ hình này là mơ hình hình thức (formal model) nên chúng có thể
được hiểu bởi máy tính và được xử lý tự động.

Yêu cầu
Tài liệu dạng văn
bản
Phân tích
PIM
Thiết kế
PSM
Lập trình
Mã nguồn
Kiểm thử
Mã nguồn

Triển khai

Hình 1.3: Ứng dụng MDA vào quy trình phát triển phần mềm
Các mơ hình được sử dụng bởi các cơng cụ chuyển đổi tự động từ nhiều nhà
phát triển khác nhau để tạo ra các lược đồ (schemas), khung mã nguồn (code
skeletons), mã tích hợp (integration code), và kịch bản triển khai (deployment scripts)
cho nhiều nền tảng khác nhau được sử dụng trong một dự án.
MDA định nghĩa mơ hình độc lập nền (PIM), mơ hình phụ thuộc nền (PSM),
mơ hình văn bản (Text), và cũng định nghĩa cách chúng liên kết với nhau. Một PIM
được tạo ra, sau đó được chuyển đổi sang một hoặc nhiều PSM, để rồi được chuyển
sang Text.
4

LUAN VAN CHAT LUONG download : add


1.2.3 Những thuận lợi của kiến trúc hướng mơ hình (MDA)
1.2.3.1 Chất lượng sản phẩm
Điểm mấu chốt là người phát triển chú trọng vào việc phát triển PIM, vì vậy mà
họ có thể làm việc một cách độc lập mà khơng phụ thuộc vào nền tảng đích, và có
nhiều vấn đề kỹ thuật mà họ không cần quan tâm tới. Những vấn đề này sẽ tự động
thêm vào bởi việc chuyển đổi từ PIM sang PSM, do đó nó sẽ cải thiện năng suất theo
hai cách:
 Người phát triển PIM sẽ làm ít việc hơn vì những chi tiết về nền tảng đích
khơng cần được thiết kế. Tại mức mơ hình PSM và Text (mã nguồn) sẽ được
viết ít hơn vì lượng lớn mã nguồn được sinh tự động từ PIM, PSM.
 Người phát triển có thể chuyển từ việc chú trọng vào viết mã nguồn sang việc
thiết kế PIM, do đó họ sẽ để ý nhiều hơn việc giải quyết các vấn đề nghiệp vụ
tại thời điểm đầu thiết kế, hay bảo trì nâng cấp phần mềm sau này, dẫn đến
hệ thống sẽ phù hợp nhiều hơn với nhu cầu của người dùng, và người dùng

cũng sẽ có được những tính năng tốt hơn trong khoảng thời gian ngắn hơn.
1.2.3.2 Khả năng tương thích
Ngồi ra xét đến khía cạnh tương thích ngược, thì từ một PIM có thể chuyển đổi
sang nhiều PSM cho nhiều nền tảng khác nhau, do đó việc thiết kế PIM sẽ hồn tồn
tương thích với nền tảng mới sử công nghệ mới. Mặt khác khi những cơng nghệ mới
được phát minh trong tương lai, thì các tổ chức/công ty phần mềm cần cung cấp những
công cụ chuyển đổi phù hợp, điều này cho phép chúng ta nhanh chóng triển khai
hệ thống mới dựa trên nền tảng cũ (PIM).
1.2.3.3 Khả năng tương tác
PIM
First
transformation

First
transformation
PSM Bridge

PSM

PSM

Second
transformation

Second
transformation
Code Bridge

Code


Code

Hình 1.4: Khả năng tương tác sử dụng các cầu nối trong MDA. Nguồn [4, mục 1.3.3]
5

LUAN VAN CHAT LUONG download : add


Khi PSM được nhắm vào các nền tảng khác nhau, chúng khơng thể nói chuyện
trực tiếp với nhau. Bằng cách nào đó chúng ta cần chuyển đổi các khái niệm từ một
nền tảng thành các khái niệm được sử dụng ở nền tảng khác. Đây là những gì mà
khả năng tương tác đề cập tới. MDA giải quyết vấn đề này bằng cách tạo ra các
cầu nối (bridge) cần thiết giữa chúng.
Nếu chúng ta có thể chuyển đổi một PIM thành hai PSM được nhắm tới hai
nền tảng, tất cả thông tin chúng ta cần để thu hẹp khoảng cách giữa hai PSM là đã có
sẵn. Cụ thể, với mỗi thành phần trong PSM thứ nhất ta biết từ thành phần nào trong
PIM mà nó đã được chuyển đổi. Từ thành phần trong PIM ta biết thành phần
tương ứng nào ở trong PSM thứ hai. Do đó, ta có thể suy ra có bao nhiêu thành phần từ
PSM thứ nhất liên quan đến các thành phần ở PSM thứ hai. Khi ta biết tất cả chi tiết
kỹ thuật nền tảng cụ thể của cả hai PSM, ta có tất cả thông tin cần thiết để tạo một
cầu nối giữa hai PSM.
Ví dụ, lấy một PSM là mơ hình (mã nguồn) Java và một PSM khác là mơ hình
cơ sở dữ liệu quan hệ. Với một thành phần Customer trong PIM, ta biết lớp Java nào
mà thành phần này được chuyển đổi thành. Ta cũng biết bảng nào (CSDL) mà
thành phần Customer này được chuyển đổi thành. Xây dựng một cầu nối giữa một
đối tượng Java trong PSM và một bảng trong PSM là điều dễ dàng. Để lấy một
đối tượng từ CSDL, ta truy vấn bảng đã được chuyển đổi từ Customer, và khởi tạo lớp
từ PSM còn lại (Java) với dữ liệu lấy được từ bước truy vấn trước. Để lưu trữ một
đối tượng, ta tìm dữ liệu trong đối tượng Java và lưu nó vào bảng Customer. Việc
ánh xạ giữa đối tượng Java và đối tượng cơ sở dữ liệu quan hệ là yếu tố cơ bản cho

việc xây dựng các công nghệ quản lý dữ liệu như Hibernate 3 mà không cần truy vấn
trực tiếp vào CSDL. Công nghệ này được sử dụng trong công cụ UWE4JSF sẽ được
đề cập ở Chương 3.
1.2.3.4 Bảo trì và Tư liệu
Việc tập trung vào thiết kế sẽ dễ dàng cho các pha vận hành bảo trì sau này.
Khâu kiểm thử cũng sẽ nhẹ nhàng hơn nhiều vì lượng lớn mã nguồn được sinh tự động
nên sẽ gặp ít lỗi hơn.
1.3

Cơ bản về MDA

Ở mục 1.2, chúng ta đã đề cập một cách khái quát các thành phần cần có trong
MDA như các mơ hình (PIM, PSM, Text), mối quan hệ giữa các mơ hình, các cơng cụ
chuyển đổi, các bước chuyển đổi, vân vân. Mục này sẽ trình bày chi tiết hơn về
lý thuyết từ những vấn đề cơ bản đến nâng cao, giúp cho độc giả có cái nhìn sâu hơn
về MDA.
3

/>
6

LUAN VAN CHAT LUONG download : add


1.3.1 Mơ hình (model) là gì?.
Một mơ hình ln ln là một sự trừu tượng của vấn đề gì đó tồn tại trong
thực tế. Đối với mơ hình phần mềm, nó ln được viết bởi một ngơn ngữ, có thể là
UML, một ngơn ngữ lập trình, hoặc bất kỳ một ngôn ngữ nào khác mà chúng ta nghĩ
tới. Để cho phép việc chuyển đổi tự động của một mơ hình, các mơ hình phải được
viết bởi một ngơn ngữ hình thức (well-defined). Ngơn ngữ này có thể được hiểu và

biên dịch một cách tự động bởi máy tính. Ví dụ, trong MDA mã nguồn cũng là một
mơ hình, vì nó được viết bởi ngơn ngữ lập trình có thể được hiểu bởi một trình biên
dịch, và nó mơ tả hệ thống. Chúng ta có định nghĩa về mơ hình (tham khảo [4]) như
sau:
“Một mơ hình là một mơ tả của (hoặc một phần của) một hệ thống được viết
bởi một ngơn ngữ hình thức.”
“Một ngơn ngữ hình thức là một ngôn ngữ với mẫu được xác định rõ ràng, và
ý nghĩa phù hợp với việc biên dịch tự động bởi máy tính.”

Hình 1.5: Mơ hình được viết bởi ngơn ngữ và mô tả hệ thống. Nguồn [4, mục 2.1]
1.3.2 Meta-model
Cũng theo tài liệu [4] một meta-model cũng là một mô hình nhưng ở mức
trừu tượng cao hơn vì nó biểu diễn mơ hình, một meta-model chính nó phải được viết
bằng ngơn ngữ hình thức (well-defined). Ngơn ngữ này được gọi là meta-language.

7

LUAN VAN CHAT LUONG download : add


Hình 1.6: Meta-model
Như vậy, một meta-language cũng là một ngơn ngữ cụ thể mơ tả ngơn ngữ
mơ hình (modeling language).

Hình 1.7: Meta-language
1.3.3 Chuyển đổi mơ hình
Một cơng cụ chuyển đổi lấy một PIM và chuyển đổi nó thành một PSM. Một
công cụ chuyển đổi khác chuyển đổi PSM thành Text (Code). Những sự chuyển đổi
này là điểm chính trong quy trình phát triển áp dụng MDA. Một cơng cụ chuyển đổi
cũng giống như một hộp đen. Nó xem một mơ hình như là đầu vào và sinh ra

mơ hình thứ hai như đầu ra của nó. Nếu chúng ta mở cơng cụ chuyển đổi ra và nhìn
vào bên trong, chúng ta có thể thấy các thành phần liên quan đến việc thực hiện
chuyển đổi. Đâu đó bên trong cơng cụ, có một định nghĩa mơ tả cách một mơ hình
được chuyển đổi. Chúng ta gọi định nghĩa này là “định nghĩa chuyển đổi”.

8

LUAN VAN CHAT LUONG download : add


Hình 1.8: Định nghĩa chuyển đổi bên trong cơng cụ chuyển đổi. Nguồn [4, mục 2.3]
“Một định nghĩa chuyển đổi là tập hợp các luật chuyển đổi cùng mô tả cách
một mơ hình tại ngơn ngữ nguồn có thể được chuyển đổi thành một mơ hình ở
ngơn ngữ đích.”
“Một luật chuyển đổi là một mô tả cách một hoặc nhiều cấu trúc trong
ngơn ngữ nguồn có thể được chuyển đổi thành một hoặc nhiều cấu trúc trong ngơn
ngữ đích.”
1.3.4 Các đặc điểm mong muốn của sự chuyển đổi
Theo phương pháp MDA, có nhiều đặc điểm của quy trình chuyển đổi mà
chúng ta muốn hướng tới, đó là:
 Khả năng truy tìm nguồn gốc, nghĩa là người ta có thể theo dõi một thành phần
tại mơ hình đích khi tìm ngược lại các thành phần tại mơ hình nguồn nơi nó
được sinh ra.
 Tính nhất quán gia tăng, nghĩa là khi thơng tin đích bổ sung đã được thêm vào
mơ hình đích, và khi mơ hình đích được tái sinh từ mơ hình nguồn thì thơng tin
bổ sung vẫn cịn.
 Tính hai chiều, nghĩa là một chuyển đổi có thể được áp dụng khơng chỉ từ
nguồn tới đích mà cịn ngược lại từ đích về nguồn.
1.3.4.1 Khả năng truy tìm nguồn gốc
Trong nhiều tình huống, khả năng truy tìm nguồn gốc là tài sản hữu ích trong

ứng dụng MDA. Thường thì một PIM khơng có tất cả các thơng tin cần thiết để
thực thi tồn bộ hệ thống. Và do đó khi chuyển đổi sang PSM thì PSM cần được
lấp đầy thông tin một cách thủ công. Điều tương tự xảy ra ở Text, một cách hiển nhiên,
đây là nguồn gốc của mọi sự rắc rối. Vì vậy mà một cơng cụ ít nhất nên làm là
cảnh báo người dùng các phần bị thay đổi cho PIM. Ví dụ, khi người dùng thay đổi tên
của một phương thức trong PSM, công cụ có thể gợi ý phương thức tương ứng trong
PIM cũng được đổi tên.

9

LUAN VAN CHAT LUONG download : add


1.3.4.2 Tính nhất qn gia tăng
Khi một mơ hình đích được sinh ra, nó thường cần được thêm một vài việc
phụ trợ như bổ sung mã vào một phương thức, hoặc tinh chỉnh một giao diện
người dùng để tối ưu cách sử dụng. Khi chúng ta tái sinh mơ hình đích (vì có thay đổi
ở mơ hình nguồn), chúng ta vẫn muốn duy trì các cơng việc phụ đã hồn thành ở
mơ hình đích lúc đầu. Đây là chính là tính nhất quán gia tăng.
1.3.4.3 Tính hai chiều
Đặc điểm mong muốn cuối của sự chuyển đổi là tính hai chiều, hay sự
chuyển đổi có thể hoạt động ở cả hai hướng. Điều mà chúng ta quan tâm ở đây là
chuyển đổi ngược từ Text về PSM, rồi từ PSM về PIM. Thực tế thì việc này rất khó
thực hiện, vì cũng như việc đi biên dịch ngược ngôn ngữ máy về ngơn ngữ lập trình
bậc cao (reverse engineering), và rất ít cơng cụ có thể thực hiện được.
1.3.5 Mơ hình bốn lớp của MDA
Để hiểu rõ hơn về model, meta-model, chúng ta xem xét mơ hình bốn lớp được
định nghĩa bởi OMG gồm M0, M1, M2, M3 như sau.

Hình 1.9: Mơ hình bốn lớp của MDA. Nguồn [4, mục 8.2]

10

LUAN VAN CHAT LUONG download : add


×