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

Mô hình hóa chuyên biệt miền cho ứng dụng web

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 (337.28 KB, 12 trang )

1

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

PHẠM VĂN THANH

MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN
CHO ỨNG DỤNG WEB

LUẬN VĂN THẠC SĨ

Hà Nội - 2015


2

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

PHẠM VĂN THANH

MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN
CHO ỨNG DỤNG WEB

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Ĩ


NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Đặng Đức Hạnh

Hà Nội - 2015


3

LỜI CẢM ƠN

Trƣớc hết, tôi xin gửi lời biết ơn sâu sắc đến Tiến sĩ Đặng Đức Hạnh, 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ệ, Đại học Quốc Gia Hà Nội đã dành rất nhiều thời gian và tâm huyết hƣớng
dẫn, giúp đỡ tôi hoàn thành luận văn tốt nghiệp cao học này.
Nhân đây, tôi xin chân thành cảm ơn Ban Giám hiệu Trƣờng Đại học Công
nghệ, Đại học Quốc Gia Hà Nội cùng quý thầy cô trong Khoa Công nghệ Thông
tin, Trƣờng Đại học Công nghệ, Đại học Quốc Gia Hà Nội đã tạo điều kiện cho
tôi học tập và hoàn thành tốt khóa học.
Đồng thời, tôi cũng xin cảm ơn tới Ban Giám đốc, đồng nghiệp của tôi tại
Trung tâm Dịch vụ việc làm Thanh niên Trung ƣơng Đoàn, nơi tôi đang công
tác đã tạo điều kiện cho tôi về thời gian để tôi tham gia đầy đủ khóa học.
Mặc dù đã có nhiều cố gắng để hoàn thiện luận văn nhƣng không thể tránh
khỏi đƣợc những thiếu sót, rất mong nhận đƣợc những đóng góp quý báu của
quý thầy cô, đồng nghiệp và các bạn.
Tôi xin chân thành cảm ơn. /.

Hà Nội, ngày 5 tháng 10 năm 2015
HỌC VIÊN

Phạm Văn Thanh



4

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn “Mô hình hóa chuyên biệt miền cho ứng dụng
Web” là do chính tôi viết dƣới sự hƣớng dẫn của Tiến sĩ Đặng Đức Hạnh. Nội
dung của luận văn có tham khảo một số tài liệu chứ không sao chép từ bất kỳ tài
liệu nào đã đƣợc công bố.

Hà Nội, ngày 5 tháng 10 năm 2015
HỌC VIÊN

Phạm Văn Thanh


5

MỤC LỤC
Trang
LỜI CẢM ƠN .............................................................................................................. 1
LỜI CAM ĐOAN ........................................................................................................ 4
MỤC LỤC ................................................................................................................... 5
DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT .... ERROR! BOOKMARK NOT DEFINED.
DANH MỤC HÌNH VẼ ............................. ERROR! BOOKMARK NOT DEFINED.
MỞ ĐẦU ..................................................................................................................... 7
CHƢƠNG 1: TỔNG QUAN VỀ MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN .................. 9

1.1. Khái niệm mô hình và mô hình hóa ............................................................ 9
1.1.1. Khái niệm mô hình................................................................................... 9

1.1.2. Khái niệm mô hình hóa ............................................................................ 9
1.2.3. Mô hình hoá trực quan ............................................................................. 9
1.1.4. Mô hình hóa mục đích chung................................................................. 10
1.2. Mô hình hóa chuyên biệt miền ....................... Error! Bookmark not defined.
1.2.1. Cấu trúc của mô hình hóa chuyên biệt miền ........ Error! Bookmark not
defined.
1.2.2. Mô hình kiến trúc của mô hình hóa chuyên biệt miền Error! Bookmark
not defined.
1.3. Ngôn ngữ mô hình hóa chuyên biệt miền ..... Error! Bookmark not defined.
1.4. Đặc điểm và ý nghĩa của mô hình hóa chuyên biệt miền Error! Bookmark
not defined.
1.4.1. Đặc điểm của mô hình hóa chuyên biệt miền ...... Error! Bookmark not
defined.
1.4.2. Ý nghĩa của của mô hình hóa chuyên biệt miền đối với ngƣời sử dụng Error!
Bookmark not defined.
1.4.3. Lợi ích của mô hình hóa chuyên biệt miền .......... Error! Bookmark not
defined.
1.4.4. So sánh DSM với các ngôn ngữ mô hình mục đích chung khác ... Error!
Bookmark not defined.


6

CHƢƠNG 2: NGÔN NGỮ MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN CHO ỨNG
DỤNG WEB .............................................. ERROR! BOOKMARK NOT DEFINED.

2.1. Tổng quan phƣơng pháp xây dựng DSML ... Error! Bookmark not defined.
2.1.1. Giai đoạn 1: Khảo sát miền .................... Error! Bookmark not defined.
2.1.2. Giai đoạn 2: Định nghĩa các metamodel và các ràng buộc............ Error!
Bookmark not defined.

2.1.3. Giai đoạn 3: Xác định ký pháp cho ngôn ngữ ..... Error! Bookmark not
defined.
2.1.4. Giai đoạn 4: Thao tác mô hình ............... Error! Bookmark not defined.
2.2. Kỹ thuật và công cụ hỗ trợ xây dựng DSML Error! Bookmark not defined.
2.2.1. Biểu diễn mô hình với Metamodel ........ Error! Bookmark not defined.
2.2.2. Ràng buộc miền bằng ngôn ngữ OCL ... Error! Bookmark not defined.
2.2.3. Một số công cụ hỗ trợ xây dựng DSML Error! Bookmark not defined.
2.3. Vận dụng vào miền ứng dụng Web ............... Error! Bookmark not defined.
2.3.1. Khảo sát miền ứng dụng Web ................ Error! Bookmark not defined.
2.3.2. Định nghĩa các Metamodel và các ràng buộc ...... Error! Bookmark not
defined.
2.3.3. Xác định ký pháp của ngôn ngữ mô hình hóa chuyên biệt miền cho ứng
dụng Web............................................... Error! Bookmark not defined.
CHƢƠNG 3: CÀI ĐẶT VÀ THỰC NGHIỆM TRÊN ECLIPSE ..................... ERROR!
BOOKMARK NOT DEFINED.

3.1. Biểu diễn cú pháp trừu tƣợng của DSL cho miền ứng dụng Web ... Error!
Bookmark not defined.
3.1.1. Mô hình Ecore........................................ Error! Bookmark not defined.
3.1.2. Mô hình genmodel ................................. Error! Bookmark not defined.
3.2. Biểu diễn cú pháp cụ thể................................. Error! Bookmark not defined.
3.2.1. Graphical Definition Model (GDM) WML.gmfgrahp Error! Bookmark
not defined.
3.2.2. Tooling Definition Model (TDM) ......... Error! Bookmark not defined.
3.2.3. Mapping Definition Model (MDM) ...... Error! Bookmark not defined.
3.3. Kỹ thuật sinh mã ............................................. Error! Bookmark not defined.
3.3.1. Các cách để xây dựng máy sinh mã ....... Error! Bookmark not defined.


7


3.3.2. Qui trình tạo ra máy sinh mã.................. Error! Bookmark not defined.
3.3.3. Mã nguồn của mô hình EMF.model ...... Error! Bookmark not defined.
3.3.4. Các thành phần của EMF.edit và EMF.editor ..... Error! Bookmark not
defined.
3.3.5. Code Generation (CG) ........................... Error! Bookmark not defined.
3.4. Kết quả của DSL cho miền ứng dụng Web .. Error! Bookmark not defined.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ... ERROR! BOOKMARK NOT DEFINED.

1. Kết quả đạt đƣợc: ............................................... Error! Bookmark not defined.
2. Hƣớng phát triển:............................................... Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO .......................................................................................... 11

63


8

MỞ ĐẦU
Ngày nay, làm thế nào để giảm thời gian thiết kế, giảm chi phí khi phát
triển các ứng dụng phần mềm hiện đại nhƣng lại phải tăng tính linh hoạt, hiệu
quả của phần mềm để cạnh tranh và đáp ứng các nhu cầu sử dụng phần mềm
trên tất cả các lĩnh vực khác nhau của đời sống xã hội. Xuất phát từ mong muốn
đó, trong những năm qua giải pháp phát triển các thƣ viện lớp đã đƣợc xây dựng
hoàn chỉnh phục vụ cho phát triển phần mềm cũng chƣa thể để đáp ứng đầy đủ
đƣợc các nhu cầu của ngành công nghiệp phần mềm. Việc phát triển phần mềm
vẫn còn ở dạng thủ công, dựa vào sức ngƣời là chủ yếu.
Vì vậy, việc nghiên cứu và đƣa ra một giải pháp cho phép phát triển phần
mềm một cách tự động đã đƣợc đề xuất và phát triển. Và giải pháp phát triển
phần mềm hƣớng mô hình đƣợc xem là một trong những giải pháp phù hợp nhất

trong phát triển ứng dụng phần mềm hiện đại ngày nay.
Phát triển hƣớng mô hình là đặt mô hình hóa làm vấn đề trọng tâm trong
phát triển phần mềm, và từ các mô hình sẽ đƣợc dịch chuyển sang mã chƣơng
trình triển khai nhờ bộ sinh mã nguồn (code generator). Và phát triển hƣớng mô
hình đặc biệt phù hợp với phát triển các sản phẩm phần mềm cùng thế hệ. Một
trong các hƣớng tiếp cận của phát triển hƣớng mô hình là mô hình hóa chuyên
biệt miền, trong đó việc xây dựng ngôn ngữ mô hình hóa chuyên biệt miền
thƣờng đƣợc triển khai dƣới dạng một dự án nhỏ khởi đầu trong một dự án lớn.
Và kết quả của dự án mô hình hóa chuyên biệt miền là một ngôn ngữ mô hình
hóa thuộc miền cho phép mô hình hóa các vấn đề trong dự án, kết quả thu đƣợc
là sự dịch chuyển các mô hình của dự án sang mã (code) triển khai, điều này làm
giảm bớt thời gian và chi phí phát triển phần mềm.
Với những ƣu điểm của mô hình hóa chuyên biệt miền và lợi ích mang lại
khi phải phát triển một ngôn ngữ cho phép mô hình hóa chuyên biệt miền, vì vậy
tôi đã lựa chọn đề tài “Mô hình hóa chuyên biệt miền cho ứng dụng Web” làm
đề tài luận văn của mình. Mục tiêu của đề tài là tìm hiểu phƣơng pháp phát triển
phần mềm hƣớng mô hình với cách tiếp cận là mô hình hóa chuyên biệt miền.
Trong phạm vi nghiên cứu của đề tài tôi đã tìm hiểu phƣơng pháp xây dựng
ngôn ngữ mô hình hóa chuyên biệt miền cho ứng dụng Web và cài đặt thử
nghiệm với công cụ Eclipse.


9

Luận văn bao gồm 3 chƣơng sau:
Chương 1. Tổng quan về mô hình hóa chuyên biệt miền: Giới thiệu tổng
quan và cơ sở lý thuyết cho mô hình hóa chuyên biệt miền.
Chương 2. Ngôn ngữ mô hình hóa chuyên biệt miền cho ứng dụng Web:
Trình bày miền ứng dụng Web, xây dựng Metamodel cho miền cho ứng dụng
Web và các luật ràng buộc.

Chương 3. Cài đặt và thực nghiệm trên Eclipse: Trình bày về cài đặt và
kết quả thử nghiệm DSML cho miền ứng dụng Web trên phần mềm mã nguồn
mở Eclipse.


10

CHƢƠNG 1:
TỔNG QUAN VỀ MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN
Trong chƣơng này chúng tôi sẽ tập trung vào trình bày các khái niệm về mô
hình hóa, mô hình hóa chuyên biệt miền, ngôn ngữ mô hình hóa chuyên biệt
miền và đặc điểm của mô hình hóa chuyên biệt miền.
1.1. Khái niệm mô hình và mô hình hóa
Trong một số giai đoạn của quy trình phát triển phần mềm có sử dụng mô
hình hóa mục đích chung, ngôn ngữ UML đƣợc sử dụng để xây dựng các biểu
đồ trong pha phân tích và thiết kế hệ thống. Các mô hình đƣợc mô hình hóa bởi
UML thƣờng sử dụng có ý nghĩa làm tài liệu cho dự án là chủ yếu, nếu có phát
sinh mã nguồn thì chỉ dừng lại ở mức thô, muốn sinh mã nguồn hoàn toàn tự
động thì phải sử dụng một ngôn ngữ mô hình hóa chuyên biệt miền để sinh mã
nguồn từ miền đó [3].
1.1.1. Khái niệm mô hình
Mô hình là hình thức biểu diễn một cách tổng quát các thành phần cơ bản
trong một hệ thống. Mô hình sẽ cho phép chúng ta hiểu rõ hơn về hệ thống mà
chúng ta cần phát triển.
1.1.2. Khái niệm mô hình hóa
Mô hình hóa là một quá trình chuyển thế giới thực thành các mô hình bằng
cách [3] loại bỏ các chi tiết không cần thiết và giữ lại các chi tiết quan trọng để
biểu diễn bằng các đối tƣợng hình học, khi đó các mô hình sẽ giúp chúng ta dễ
dàng hiểu thế giới thực hơn.
1.2.3. Mô hình hoá trực quan

Là một phƣơng thức tƣ duy về vấn đề sử dụng các mô hình đƣợc tổ chức
xoay quanh các khái niệm đời thực. Mô hình giúp chúng ta hiểu vấn đề, giao
tiếp với mọi ngƣời có liên quan đến dự án (khách hàng, chuyên gia lĩnh vực
thuộc đề án, nhà phân tích, nhà thiết kế, …).


11

Ví dụ mô hình về chiếc ô tô:

Hình 1.1: Nhìn vấn đề ô tô của người bình thường
Mô hình
Ô tô

Thân xe

Bánh xe

Động cơ

Cửa xe
Hình 1.2: Nhìn vấn đề ô tô của chuyên gia phân tích

1.1.4. Mô hình hóa mục đích chung
Trong pha phân tích và thiết kế của vòng đời phát triển phần mềm có sử
dụng ngôn ngữ mô hình hóa mục đích chung (Ví dụ nhƣ UML) để mô hình hóa
phần mềm nhƣng không phải lúc nào phần mềm cũng đƣợc triển khai nhƣ mô
hình ban đầu; và nếu có sử dụng mô hình để tự động sinh ra code thì code đƣợc
sinh ra thƣờng chỉ là mã khung thô và cần sử dụng tay để code hoàn thiện và các
mô hình ở đây mang ý nghĩa làm tài liệu nhiều hơn mục đích sinh code tự động.

Hình dƣới đây là một ví dụ về mô hình hóa với UML.

Hình 1.3: Mô hình UML cho cửa sổ Windows

Với mô hình hóa sử dụng ngôn ngữ mô hình hóa UML có thuận lợi là: Cho
đến nay UML đã đƣợc phát triển tƣơng đối hoàn thiện và đƣợc ngƣời dùng sử


12

TÀI LIỆU THAM KHẢO
[1] MetaCase, .
[2] WebML, .
[3] Robert A. Maksimchuk, Michael W. Engle, Bobbi J.Young, Ph.D.Jim
Conallen, Kelli A. Houston Grady Booch, “Object-Oriented Analysis
and Design with Applications”, the United States on recycled paper at
Courier in Westford, Massachusetts, April, 2007.
[4] Sanna Sivonen, "Domain-specific modelling language and code generator for
developing repositorybased", VTT Publications, Oulu, research project 2008.
[5] Richard C. Gronback, “Eclipse Modeling Project A Domain-Specific
Language”,United States of America, 2009.
[6] Rick Kuhn, "Role Based Access Control" American National Standards,
Apr. 2003.
[7] David Dean, Anna Gerber, Gunnar Wagenknecht, Philippe Vanderheyden
Bill Moore, “Eclipse Development using the Graphical Editing Framework
and the Eclipse Modeling Framework”, ibm. com/redbooks, 2004.
[8] Petter Graff Vladimir Bacvanski, “Mastering Eclipse Modeling
Framework”, 2005, Elipse.
[9] Reena Cherukuri Dr. Saeed Rajput, Role Based Access Control Models, Slide.
[10] Elisa Chiarani (UNITN), Edith Felix (THA),Benjamin Fontan (THA),

Charles Haley (OU), Fabio Massacci (UNITN), Zoltán Micskei (BME),
Bashar Nuseibeh (OU), Federica Paci (UNITN), Thein Tun (OU) Yijun Yu
(OU), Dániel Varró (BME) Gábor Bergmann (BME),"Methology For
Evolutionary", 1.33, 2010.
[11] Beatriz Marín, Oscar Pastor Giovanni Giachetti, "Integration Of Domain
Specific Modeling Languages and UML", ©Technomathematics Research
Foundation, 2009.
[12] Steven Kelly and Juha-Pekka Tolvanen, “Domain-Specific Modeling:
Enabling Full Code Generation”, AWiley-Interscience, 2008.
[13] Marco Brambilla, Jordi Cabot, and Manuel Wimmer, “Model - Driven
Software Engineering in Practic”, Morgan & Claypool Publishers, 2012.
[14] Jordi Cabot(1) and Martin Gogolla(2), “Object Constraint Language (OCL):
a Definitive Guide”, (1)INRIA / Ecole des Mines de Nantes (France),
(2)
University of Bremen (Germany).
[15] Group Object Management, "Object Constraint Language", OMG,
formal/06-05-01, 2006.



×