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

Nghiên ứu cải tiến kỹ thuật sinh mã nguồn trong phát triển ứng dụng web hướng mô hình theo kỹ thuật uwe

84 3 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

Tiêu đề Nghiên Cứu Cải Tiến Kỹ Thuật Sinh Mã Nguồn Trong Phát Triển Ứng Dụng Web Hướng Mô Hình Theo Kỹ Thuật Uwe
Tác giả Nguyễn Thanh Giang
Người hướng dẫn PGS.TS Huỳnh Quyết Thắng
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Luận Văn Thạc Sĩ Kỹ Thuật
Năm xuất bản 2018
Thành phố Hà Nội
Định dạng
Số trang 84
Dung lượng 5,38 MB

Nội dung

ểCác công cụ chuyển đổi mô hình, sinh mã ngu n hiồ ện có đã đáp ứng được một ph n ầnhu cầu cho phương pháp phát triển ứng dụng Web hướng mô hình.. Chương 2: Phát triển các giải thuật sin

Trang 1

B GIÁO D Ộ ỤC VÀ ĐÀO TẠ O TRƯỜNG ĐẠ I H C BÁCH KHOA HÀ N I Ọ Ộ

- Nguy n Thanh Giang ễ

NGHIÊN C U C Ứ Ả I TIẾ N K THU T SINH MÃ NGU Ỹ Ậ Ồ N TRONG PHÁT TRIỂ Ứ N NG D ỤNG WEB HƯỚ NG MÔ HÌNH

THEO K THU T UWE Ỹ Ậ

Chuyên ngành: K thu t phỹ ậ ần mềm

LUẬN VĂN THẠC SĨ ỸK THU T Ậ

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS.TS Huỳnh Quy t Th ng ế ắ

HÀ N I – 2018Ộ

1

Trang 2

L ỜI CAM ĐOAN

Tôi – Nguyễn Thanh Giang – cam kết luận văn là công trình nghiên cứu của bản thân tôi dướ ự hưới s ng d n c a PGS.TS Hu nh Quyẫ ủ ỳ ế t Thắ ng

Các kết qu nêu trong luả ận văn là trung thực, không phải là sao chép toàn văn của

Trang 3

LỜI CAM ĐOAN 2

DANH M C CÁC T VI T T T VÀ THU T NG 5Ụ Ừ Ế Ắ Ậ Ữ DANH M C HÌNH 7Ụ DANH M C B NG 9Ụ Ả M Ở ĐẦU 11

1 Mục đích nghiên c u c a luứ ủ ận văn 11

2 N i dung c a luộ ủ ận văn 11

3 Các đóng góp khoa học c a luủ ận văn 12

Chương 1: Tổng quan v kiề ến trúc hướng mô hình và k thuỹ ật Web hướng mô hình UWE 13

1.1 Kiến trúc hướng mô hình 13

1.2 Các k thuỹ ật Web hướng mô hình 13

1.3 K thuỹ ật UWE 16

1.3.1 Mô hình yêu c u 18ầ 1.3.2 Mô hình n i dung 19ộ 1.3.3 Mô hình điều hướng 19

1.3.4 Mô hình x ửlý 20

1.3.5 Mô hình trình bày 20

1.4 T ng h p các nghiên c u vổ ợ ứ ề ỹ k thuật sinh mã ngu n trong phát triồ ể ứn ng dụng Web hướng mô hình 22

1.4.1 Các phương pháp sinh mã hướng mô hình 22

1.4.2 OptimalJ 24

1.4.3 UWE4JSF 24

1.5 Ti u kể ết chương 25

Chương 2: Phát triển các gi i thu t sinh mã ngu n 27 ả ậ ồ 2.1 Đặ ấn đềt v 27

2.2 Quy trình chuyển đổi MDA cho k thuỹ ật UWE 28

2.2.1 Lựa chọ ền tảng công nghện n 28

2.2.2 Lựa chọn mô hình Web 29

2.2.3 Lựa chọn phương pháp sinh mã 30

2.2.4 Quy trình chuyển đổi MDA cho kỹ thuật UWE 31

2.3 Xây d ng gi i thu t CM2M sinh mã thành ph n Model t mô hình n i dung ự ả ậ ầ ừ ộ (Content Model to Model Code Genenation) 32

Trang 4

2.4 Xây d ng giụ ải thuật PRES2V sinh mã thành ph n View t mô hình trình bày ầ ừ(Presenation Model to View Code Generation) 38 2.5 Xây d ng gi i thu t NPROM2C sinh mã thành ph n Controller tụ ả ậ ầ ừ mô hình điều hướng và x lý (Navigation and Processing Model to Controller Code Generation)43 ử2.5.1 Xây dựng giải thuật NM2C 432.5.2 Xây dựng giải thuật PROM2C 482.6 Ti u kể ết chương 52Chương 3: Cài đặ t công c CODEGER-UWE tích hụ ợp các giải thu t và áp d ng, ậ ụ đánh

3.1 Xây d ng công c CODEGER-ự ụ UWE 533.2 Áp d ng công c CODEGER-ụ ụ UWE vào một bài toán c th 55ụ ể3.3 Đánh giá 61 3.4 Ti u kể ết chương 62

K T LU N 63Ế ẬDANH M C THAM KH O 65Ụ ẢPHỤ Ụ L C 67

Trang 5

DANH M C CÁC T Ụ Ừ VIẾ T T T VÀ THUẬ Ắ T NG Ữ

T viừ ết tắt, thu t ngậ ữ T viừ ết đầy đủ

ATL Atlas Transformation Language

CIM Computation Independent Model

CSS Cascading Style Sheets

CWM Common Warehouse Metamodel

DTD Document Type Definition

EMF Eclipse Modeling Framework

HTML Hypertext Markup Language

ISM Implementation Specific Model

J2EE Java 2 Platform, Enterprise Edition

JET Java Emitter Templates

JSF Java Server Faces

JSP Java Server Pages

JSTL JSP Standard Tag Library

MDA Model Driven Architecture

MDD Model Driven Development

MDE Model Driven Engineering

MDSD Model Driven Software Development

MDWE Model Driven Web Engineering

MOF Meta Object Facility

MVC Model View Controller

OCL Object Constraints Language

OMG Object Management Group

OOHDM Object Oriented Hypermedia Design Method

OOHDMDA Object Oriented Hypermedia Design Method Driven Approach PIM Pl tf I d d t M d l

PSM Platform Specific Model

QVT Query Views Transformation

Trang 6

UWE Uml-based Web Engineering

W2000 (HDM) Hypertext Design Model

WebSA Web Software Architecture

WTP Web Tools Platform

XMI XML Metadata Interchange

XML eXtensible Markup Language

XSLT eXtensible Stylesheet Language Transformation

Trang 7

DANH MỤC HÌNH

Hình 1.1 Cấu trúc MDA cho k thuỹ ật Web [6] 14

Hình 1.2 UWE metamodel [15] 16

Hình 1.3 UWE profile cho mô hình yêu cầu [15] 18

Hình 1.4 UWE profile cho mô hình n i dung [15] 19ộ Hình 1.5 UWE profile cho mô hình điều hướng [15] 20

Hình 1.6 UWE profile cho mô hình x lý ử [15] 21

Hình 1.7 UWE profile cho mô hình trình bày [15] 22

Hình 1.8 Phương pháp sinh mã dựa trên khuôn m u và b l c [8] 22 ẫ ộ ọ Hình 1.9 Phương pháp sinh mã dựa trên khuôn m u ẫ và metamodel [8] 23

Hình 1.10 Phương pháp sinh mã dựa trên API [8] 23

Hình 1.11 Phương pháp sinh mã dựa trên khuôn m u [3] 24 ẫ Hình 1.12 Quy trình sinh mã UWE4JSF [4] 25

Hình 2.1 C u trúc MDA cho ng d ng web theo k thuấ ứ ụ ỹ ật UWE 27

Hình 2.2 Mô hình MVC trong Web [17] 29

Hình 2.3 Java metamodel 30

Hình 2.4 JSP metamodel 31

Hình 2.5 Chuyển đổi mô hình PIM sang PSM, mã ngu n theo mô hình MVC 31ồ Hình 2.6 Các thành ph n trong mô hình n i dung 32ầ ộ Hình 2.7 Các quy tắc cấu thành gi i thuả ật CM2M 33

Hình 2.8 Quy trình chuyển đổi sinh mã nguồ ừn t mô hình n i dung 36ộ Hình 2.9 Các thành ph n trong mô hình trình bày 38ầ Hình 2.10 Các quy tắc cấu thành gi i thu t PRES2V 38 ả ậ Hình 2.11 Quy trình chuyển đổi sinh mã JSP từ mô hình trình bày 42

Hình 2.12 Các thành phần trong mô hình điều hướng 44

Hình 2.13 Các quy tắc cấu thành gi i thu t NM2C 44 ả ậ Hình 2.14 Quy trình chuyển đổi sinh mã nguồ ừ mô hình điều hướn t ng 47

Hình 2.15 Các thành ph n trong mô hình x 49ầ ử lý Hình 2.16 Các quy tắc cấu thành gi i thu t PROM2C 49 ả ậ Hình 2.17 Quy trình chuyển đổi sinh mã nguồ ừn t mô hình x lý 51ử Hình 3.1 Ki n trúc MagicDraw và CODEGER-ế UWE 54

Hình 3.2 Cài đặt CODEGER UWE- 54

Trang 8

Hình 3.4 B n mô hình c a AddressBook 57ố ủ Hình 3.5 Mã ngu n sinh ra t bồ ừ ốn mô hình UWE 58 Hình 3.6 Khung ng dứ ụng Web 59 Hình 3.7 Giao di n trang web 59ệ Hình 3.8 Hi n th ệ ịcác kết qu tìm ki m Contact 60ả ế Hình 3.9 Giao di n tệ ạo mới Contact 60 Hình 3.10 Giao di n c p nhệ ậ ật một Contact đã có 60 Hình 3.11 Hi n th lệ ị ại danh sách sau khi đã xóa một Contact 61

Trang 9

DANH MỤC BẢNG

B ng 1 So sánh các k thuả ỹ ật Web hướng mô hình [6] 16

B ng 2 Các thành ph n khuôn m u trong UWE [15] 17ả ầ ẫ

B ng 3 Bả ảng đánh giá mã nguồn 61

Trang 10

L I C M Ờ Ả ƠN

Để có th ể hoàn thành luận văn ố t t nghi p này, em xin chân thành cệ ảm ơn thầy hướng d n lu n ẫ ậ văn ố t t nghi p, PGS.TS Hu nh Quyếệ ỳ t Th ng, b ắ ộ môn ông ngh ph n C ệ ầ

m mề , trường đại học Bách Khoa Hà Nội Thầy đã nhiệt tình hướng d n, truyẫ ền đạt

nh ng ki n thữ ế ức cần thiết và định hướng cho em trong quá trình thực hiện đề tài

Em xin chân thành cảm ơn sự giúp đỡ quý báu c a anh Trủ ần Đình Diễn, nghiên c u ứsinh t i b môn Công ngh phạ ộ ệ ần mềm, trường đạ ọi h c Bách Khoa Hà N i ộ

Em xin chân thành cảm ơn các thầy cô giáo b môn Cở ộ ông nghệ phần mềm, trường

Đạ ọi h c Bách Khoa Hà N i ộ

Dù đã cố ắng nhưng ận văn ắ g lu ch c ch n không tránh kh i thi u sót, em r t mong ắ ỏ ế ấ

nhận được ý kiến đóng góp của các thầy cô

Em xin chân thành cảm ơn!

Trang 11

Các công cụ chuyển đổi mô hình, sinh mã ngu n hiồ ện có đã đáp ứng được một ph n ầnhu cầu cho phương pháp phát triển ứng dụng Web hướng mô hình Đề tài t p trung ậ

cải tiến kỹ thuật sinh mã để nâng cao chất lượng mã nguồn, tăng năng suất, giảm bớt

thời gian cho người phát tri n ể

1 M ục đích nghiên c ứ u củ a lu ận văn

Mục đích của luận văn là nghiên cứu cải tiến kỹ thuật sinh mã để nâng cao chất lượng mã nguồn, tăng năng suất, tiết kiệm thời gian và chi phí cho ứng dụng Web, giúp phát triển ứng dụng Web đơn giản, linh hoạt, nhanh chóng và hiệu quả hơn

Việc cải tiến này được thể hiện thông qua xây dựng bộ quy tắc chuyển đổi cấp mô hình và xây dựng công cụ sinh mã nguồn dựa trên bộ quy tắc này

Luận văn có 3 nhiệm vụ cụ thể:

1) Trình bày bộ quy t c chuyển đổ ấắ i c p mô hình: từ mô hình độc lập v i n n t ng ớ ề ảcông ngh (PIM) sang mô hình theo n n t ng công nghệ ề ả ệ ụ c th ể (PSM) v i n n tớ ề ảng công ngh ệ được áp dụng là J2EE (Java 2 Platform, Enterprise Edition)

2) Xây d ng công c sinh mã nguự ụ ồn CODEGER-UWE dựa trên bộ quy t c chuyển ắ

đổ ấi c p mô hình

3) Áp d ng công cụ ụ CODEGER-UWE đã xây dựng vào bài toán cụ ể và đánh giá th

k t qu ế ả

2 N ội dung củ a lu ận văn

N i dung luộ ận văn bao gồm chương:3

Chương 1: ổ T ng quan v kiề ến trúc hướng mô hình và k thu t ỹ ậ Web hướng mô hình UWE Chương này giới thi u kiệ ến trúc hướng mô hình, các k thuật Web hướng mô ỹ

Trang 12

hình, t ng h p các nghiên c u vổ ợ ứ ề ỹ k thuật sinh mã ngu n trong phát triồ ển ứng dụng hướng mô hình

n

Chương 2: Phát triển các giải thuật sinh mã nguồ Chương này giới thiệu bài toán, lựa chọn nền tảng công nghệ, mô hình Web, phương pháp sinh mã, đưa ra quy trình chuyển đổi; trình bày ối tương quan giữa các mô hình UWE với mô hình MVC, thểm

hiện các quy tắc chuyển đổi mô hình và xây d ng công c ự ụsinh mã

Chương 3: Cài đặt công c CODEGER-ụ UWE tích h p các gi i thu t, áp d ng cho ợ ả ậ ụ

m t bài toán c th ộ ụ ể và đánh giá

3 Các đóng góp khoa họ c c a lu ủ ận văn

Luận văn có hai đóng góp như sau:

Th nh t: ứ ấ Xây dựng các giải thuật sinh mã nguồn: giải thuật CM2M sinh mã thành

phần Model ừ mô hình nội dung t , giải thuật NPROM2C sinh mã thành phần Controller

t ừ mô hình điều hướng và xử lý, g ải thuật PRES2V sinh mã thành phần View từ mô ihình trình bày

Th hai: ứ Xây dựng công cụ CODEGER-UWE tích hợp các giải thuật trên, áp dụng cho một bài toán c th , ụ ể đánh giá

Trang 13

Chương 1: Tổ ng quan v ki n trúc hư ng mô hình ề ế ớ

và kỹ thu t Web hư ng mô hình UWE ậ ớ1.1 Ki ế n trúc hư ớ ng mô hình

Kiến trúc hướng mô hình MDA (Model Driven Architecture là mộ hướng tiếp cận ) t

vấn đề theo k ngh ỹ ệ hướng mô hình MDE (Model Driven Engineering) do tổ chức OMG đề xu t MDA bấ ắt đầu với ý tưởng tách đặc điểm k thu t c a h th ng ra kh i ỹ ậ ủ ệ ố ỏ

nền tảng hoạt động của hệ ố th ng [6, 7, 14] MDA cung cấp một cách tiếp cận và công

o UML (Unified Modeling Language): ngôn ng mô hình th ng nh t ữ ố ấ

o MOF (Meta Object Facility): ngôn ng ữ dùng để định nghĩa ngôn ngữ mô hình

o XML (eXtensible Markup Language): ngôn ng ữ đánh dấu mở ộ r ng

o CWM (Common Warehouse Metamodel): siêu mô hình ng dứ ụng kho lưu dữ ệ li u MDA mô tả khuôn mẫu cho vi c phát tri n phệ ể ần mềm nhanh chóng hi u qu và tệ ả ối

ưu về chi phí, đồng th i cung c p các hướờ ấ ng dẫn để ấu trúc các đặ c c tả ạ l i thành các

mô hình, định nghĩa các chức năng của hệ thống dựa trên mô hình độ ậc l p n n t ng ề ảPIM (Platform Independent Model) ử ụng các ngôn ngữ đặc tả chuyên biệ PIM sau , s d t

đó được chuy n thành m t ho c m t vài mô hình ph thu c n n t ng xác đ nh ể ộ ặ ộ ụ ộ ề ả ị PSM(Platform Specific Model) mà các máy tính có thể chạy được PSM có thể ử ụng các s dngôn ng ữ đặc tả chuyên bi t ho c các ngôn ng ph biệ ặ ữ ổ ến như: Java, C#, C++ [6, 14]

1.2 Các k ỹ thuậ t W eb hướ ng mô hình

Với những ưu điểm của MDA và những đặc điểm về tính đa dạng về công nghệcũng như ngôn ngữ ủ c a phát tri n các ng d ng Web thì k ngh ể ứ ụ ỹ ệ Web hướng mô hìnhMDWE (Model Driven Web Engineering) được áp dụng vào phát triển các ứng d ng ụWeb nhằm tạo ra các ứng dụng Web nhanh chón linh ho t và chg, ạ ất lượng Trong kỹngh ệWeb hướng mô hình bao g m b n m c [1, 2, 14, 16]: ồ ố ứ

Trang 14

o Mô hình độc lập tính toán CIM (Computation Independent Model) th hiể ện mô hình hóa các chức năng của hệ ố th ng

o Mô hình PIM là một khung nhìn c a h th ng t m nhủ ệ ố ừ điể ìn độ ậc l p n n t ng ề ả Đó là

một mô hình của hệ ống không chứa thông tin cụ ể ề ề ả , hay công nghệ th th v n n t ngđược dùng để ự th c hi n nó ệ

o Mô hình PSM là một khung nhìn c a m t h th ng t ủ ộ ệ ố ừ điểm nhìn n n t ng c th ề ả ụ ể

Đó là một mô hình c a h th ng bao g m thông tin vủ ệ ố ồ ề công ngh c th ệ ụ ể được dùng

để ự th c hi n nó trong m t n n t ng c th ví d Java ho c NET ệ ộ ề ả ụ ể ụ ặ

o Mô hình triển khai cụ ể th ISM Implementation Specific Model) cung cấp thông tin (

Trang 15

M t s k thuộ ố ỹ ật Web hướng mô hình điển hình:

OOHDMDA: Phương pháp thiết k ế đa phương tiện hướng đối tượng OOHDM (Object Oriented Hypermedia Design Method) được đề xuất năm 1995 Ý tưởng của phương pháp này là chia việc thi t k m t h th ng Web thành ế ế ộ ệ ố ba mô hình: mô hình khái niệm, mô hình điều hướng và mô hình giao di n trệ ừu tượng [14 OOHDMDA] là

kiến trúc hướng mô hình cho OOHDM ắ đầu bằng mô hình PIM được thiết kế, b t trong OOHDM, tđể ạo ra các PSM OOHDMDA cung cấp phương pháp thiết kế ứng dụng Web bằng cách k t hế ợp UML và các mô hình được định nghĩa trong OOHDM

W2000 (HDM): W2000 (Hypertext Design Model) d a ự trên nguyên lý hướng i đốtượng Phương pháp này đưa ra một vòng đời cho phát tri n m t ng d ng Web [14] ể ộ ứ ụW2000 bắt đầu bằng bước phân tích yêu c u d a trên ầ ự biểu đồ s d ngca ử ụ D a trên ự

những thông tin có được ở bước phân tích yêu cầu để phát triển mô hình khái niệm và

mô hình điều hướng Tiếp theo W2000 thay đổi và m r ng m t s ở ộ ộ ố mô hình UML như

là biểu đồ ớ l p và biểu đồ ạ tr ng thái Cu i cùng số ử ụ d ng các biểu đồ ầ tu n tự để mô t ả

chức năng của hệ ố th ng

WebML: WebML là một phương pháp thiết kế Web thế ệ ứ ba dựa trên MDA h th ,

dựa trên mô hình quan hệ ực thể 6, 14 Trong WebML bổ sung, xây dựng tập ký th [ ] pháp để thi t k khái ni m c a các trang Web ph c t pế ế ệ ủ ứ ạ Phương pháp này sử ụ d ng ký

hiệu riêng và không sử ụ metamodel tuân thủ MOF, mà sử ụ định nghĩa ểu tài d ng d ng ki

li u DTD (ệ Document Type Definition) để lưu các mô hình nội dung và điều hướng, ví

d ụ định nghĩa dạng ngữ pháp cho cấu trúc của tài liệu XML DTD không có tính trừu tượng như MOF và thiếu ký hi u d hi u Ngôn ng chuyệ ễ ể ữ ển đổ địi nh ki u m r ng ể ở ộXSLT (eXtensible Stylesheet Language Transformation) được sử ụng cho việc dchuyển đổi mô hình sang mã nguồn (hỗ ợ Java và JSP) XSLT không phù hợp với tr

nh ng chuyữ ển đổi phức tạp, khó phát triển chương trình và dễ ị ỗ b l i [6]

UWE: UWE Uml –based ( Web Engineering) là phương pháp hướng đối tượng dựa trên ngôn ng mô hình hóa UML, là m t trong nh ng kữ ộ ữ ỹ thuật đầu tiên phát triển theo

k thuỹ ật hướng mô hình và được sử ụng nhiều nhất trong kỹ d thuật Web hướng mô hình [6, 14 UWE là một kỹ] thuật phát triể ứng dụn ng Web hoàn chỉnh nhưng chủ ế y u tập trung vào giai đoạn phân tích và thiết kế Một trong những ưu điểm quan trọng của UWE là t t cấ ả các mô hình của nó đều là ph n mầ ở ộ r ng c a UML UWE sủ ử ụ d ng ký

h a hoàn toàn d a trên UML Nó cho phép s d ng các công c d a trên

Trang 16

quen thuộc với UML K thuỹ ật Web hướng mô hình UWE đáp ứng đầ ủy đ các yêu cầu

của MDA cho việc phát triể ứng dụng Web bao gồm mô hình CIM, PIM, PSM và kỹn thu t chuyậ ển đổ ừi t mô hình CIM sang PIM, t mô hình PIM sang PSM.ừ

Hình 1.2 UWE metamodel [15]

Trang 17

Metamodel UWE được định nghĩa như một phần mở ộ r ng cho UML 2.0 UML profile tương thích với h u h t công c UML Metamodel ầ ế ụ UWE định nghĩa mộ ốt s khuôn mẫu m r ng cho UML d a trên nhở ộ ự ững đặc trưng riêng của các ứng dụng Web

Trang 18

1.3.1 Mô hình yêu cầu

Mô hình yêu c u s bao gầ ẽ ồm hai thành phần cơ bản đó là các biểu đồ ca s dử ụng và các biểu đồ ạt động tương ứ ho ng

Hình 1.3 UWE profile cho mô hình yêu cầu [15]

Biểu đồ ca sử ụng mô tả ự tương tác đặc trưng giữa người dùng bên ngoài và hệ d s

thống Nó thể ện nghiệp vụ ủa hệ ống đối với bên ngoài, trong một hoàn cảnh nhấ hi c th t

định, xét t ừ quan đ ểi m của ngườ ử ụi s d ng Biểu đồ ca s d ng mô t các yêu cử ụ ả ầu đối

với hệ ố th ng, mô tả ững gì hệ ống phải làm Tập hợp tất cả ể nh th bi u đồca sử ụng của d

h th ng s ệ ố ẽmô tả ấ ả các trườ t t c ng hợp mà hệ ố th ng có th ể được sử ụ d ng

Trang 19

Biểu đồ hoạt động là bản vẽ ập trung vào mô tả các hoạt động, luồng xử lý bên ttrong hệ thống Nó có thể được sử ụng để d mô t ả chi tiết cho các yêu cầu quy trình nghiệp vụ trong hệ ống đã được mô tả sơ lược trong biểu đồ ca sử ụng Các luồ th d ng

của một chức năng hoặc các hoạt động của mộ đối tượng Các thành phần tạo nên biểu t

đồ ca s d ng và biử ụ ểu đồ hoạt động được mô t trong hình 1.3 ả

1.3.2 Mô hình ộ n i dung

Mô hình i dung nộ th hiể ện trong ình 1.4, mô th ả ấ c u trúc và quan h gi a ệ ữ các thành

ph n t o nên ầ ạ phần mềm Mô hình hoá n i dung không ộ đòi ỏ ấ ỳ ấ h i b t k c u trúc b sung ổCác l p UML thông ớ thường được s d ng cho ử ụ mô hình hoá mô hình n i dung ộ tương ự t như mô hình hóa các ng d ng không ph i là Web ứ ụ ả

Hình 1.4 UWE profile cho mô hình nội dung [15]

1.3.3 Mô hình điề u hư ng ớ

Mô hình điều hướng mô tả ồ lu ng chuyển hướng tương ứng với hành động ngườ ử i s

dụng trong ứng dụng Web, th hiể ện trong ình 1.5 Nó được thể ện bằng biểu đồ ớp h hi l

và b sung các khuôn m u cổ ẫ ủa UWE đại di n cho các nút, các liên k t, thệ ế ực đơn và ch ỉ

Trang 20

h th ng ệ ố mà người dùng có thể tương tác để chuyển đổi giữa các trang, các danh mục

n i dung c a trang Web ộ ủ

Hình 1.5 UWE profile cho mô hình điều hướng [15]

1.3.4 Mô hình xử

Mô hình xử lý sẽ ể ện chi tiết quá trình xử lý được thực hiện như thế th hi nào, thể

hiện trong ình 1.6 Mô hình xửh lý đại diện cho các khía cạ độnh ng của ứng dụng Web,cung cấp các phầ ửn t mô hình cho việc tích h p quy trình vào ợ một mô hình ứng dụng Web Gói xử lý có thể được chia thành ba nhiệm vụ [15]: (1) Tích h p các quy trình ợnghiệp vụ vào mô hình điều hướng; (2) Định nghĩa một giao diện người dùng để h ỗ trợcác xử lý (3) Định nghĩa hành vi

1.3.5 Mô hình trình bày

Mô hình trình bày như ể ệ th hi n trong hình 1.7, mô tả ộ m t cái nhìn trừu tượng vềgiao diện người dùng của ứng d ng Web Mô hình trình bày định nghĩa nhiềụ u khuôn

mẫu cho các loại thành phần khác nhau, ví dụ như khung nhập văn bản, các nút bấm,

… nhưng không cung cấp chi ti t c th ế ụ ể như kiểu CSS hoặc các yế ốu t HTML [6]

Trang 21

Hình 1.6 UWE profile cho mô hình xử lý [15]

Trang 22

Hình 1.7 UWE profile cho mô hình trình bày [ ] 15

1.4 T ổ ng hợp các nghiên cứu về ỹ thuậ k t sinh mã ngu n trong phát tri ồ ể n ứng

d ụng Web hướ ng mô hình

1.4.1 Các phương pháp sinh mã hướng mô hình

o Khuôn mẫu và b l c (Template and Filtering) ộ ọ

Phương pháp [8] này là phương pháp đơn giản nhất để sinh mã ngu n Mã ngu n ồ ồđược sinh ra b ng cách áp d ng khuôn m u cho c t ằ ụ ẫ đặ ả mô hình văn bản (thường là XML/XMI), và sau khi lọc một vài ph n cầ ủa đặc tả M t ph n c a mã nguộ ầ ủ ồn cũng được nhúng trong khuôn m u ẫ

Hình 1.8 Phương pháp sinh mã dựa trên khuôn mẫu và bộ lọc [8]

Trang 23

o Khuôn mẫu và metamodel (Template and metamodel)

Phương pháp [8] này là m t s m r ng cộ ự ở ộ ủa phương pháp Khuôn mẫu và b l c T ộ ọ ừ

đặ ả mô hình văn bảc t n, ta xây d ng ự metamodel rồi áp d ng khuôn m u Khuôn m u ụ ẫ ẫđược mô t trong ph m vi c a ả ạ ủ metamodel

Hình 1.9 Phương pháp sinh mã dựa trên khuôn mẫu và metamodel [8]

o Sinh mã d a trên API (API –based Generator) ự

Phương pháp [8] này mô t k thu t mà ả ỹ ậ ở đó, trình khách s gẽ ọi API để sinh mã, API này được xây d ng d a trên metaự ự model hay cú pháp của ngôn ng ữ đích Phương pháp này phù hợp s dử ụng cho vi c sinh mệ ột lượng nh ỏmã ngu n do API nhanh chóng ồ

tr lên phở ức tạp, rườm rà với mô hình l n ớ

Hình 1.10 Phương pháp sinh mã dựa trên API [8]

Nhìn chung, gi i pháp cho nhu cả ầu sinh mã tự động là sử ụ d ng bộ ạ t o mã dựa trên khuôn mẫu hướng mô hình (Model driven Template – –based Code Generators) Bộ ạ t o

mã lấy thông tin t mô hình và khuôn mừ ẫu làm đầu vào, sau đó chuyển đổi sang mã nguồn/chương trình Kiến trúc bậc cao điển hình của hệ ống tạo mã hướng mô hình th

là d a trên khuôn mự ẫu được mô tả ụ ể như sau: c th

Trang 24

Hình 1.11 Phương pháp sinh mã dựa trên khuôn mẫu [3]

1.4.2 OptimalJ

OptimalJ [12] là một trong những môi trường phát triển đầu tiên triển khai MDA, được phát hành lần đầu vào năm 2001 bởi Compuware t i Amsterdam, d a trên ạ ựNetBeans IDE c a Sun Microsystem Tủ ừ năm 2006, OptimalJ phát tri n d a trên ể ựEclipse IDE Các mô hình trong OptimalJ có các m c trứ ừu tượng khác nhau:

o Mô hình miền (OptimalJ Domain Model) tương ứng với PIM trong MDA Nó định nghĩa miền nghi p v (Business Domain) mà không có b t c thông tin chi ti t n n ệ ụ ấ ứ ế ề

tảng cụ ể nào Nó đượ ịnh nghĩa bằng cách mô hình hóa các tính năng và hành th c đ

vi của ứng d ng, thông tin phụ ụ thu c miền được xây dựộ ng d a trên MOF bự ằng UML

o Mô hình miền được chuyển đổi t ng sang mô hình ng d ng (OptimalJ ự độ ứ ụApplication Model), tương ứng v i PSM trong MDA Mi n ng dớ ề ứ ụng định nghĩa

ứng d ng, d a trên n n t ng công ngh ụ ự ề ả ệ đượ ực l a ch n J2EE Nó mô t nh ng gì s ọ ả ữ ẽđượ ạo ra để ực t th c hi n ng d ng, b ng cách cung c p m t logic t ng quan v các ệ ứ ụ ằ ấ ộ ổ ềthành phần chứa trong m i t ng t o nên ỗ ầ ạ ứng dụng

o Mi n ề ứng dụng được chuyển đổi tự động sang mô hình mã (OptimalJ Code Model) tương ứng v i Code/Text trong MDA Mô hình mã t o ra mã ng d ng ớ ạ ứ ụ

OptimalJ không còn được ti p t c phát tri n t ế ụ ể ừ năm 2008

1.4.3 UWE4JSF

UWE4JSF [4] là công cụ ự động sinh mã ứng dụng Web nề ả t n t ng JSF t mô hình ừUWE, bao gồm một chuỗi các plugin được tích hợp trong môi trường mô hình hóa Eclipse EMF (Eclipse Modeling Framework), được xây dựng và đóng gói thành các thư viện Java (.jar)

Trang 25

UWE4JSF sử ụ d ng ngôn ngữ chuyển đổi mô hình ATL (Atlas Transformation Language) và công cụ mã nguồn mở JET (Java Emitter Template) ATL xây dựng các quy tắc xác định các phầ ửn t mô hình nguồn được kế ợp và điều hướng như thết h nào

để ạ t o và kh i t o các ph n t cở ạ ầ ử ủa mô hình đích JET cung cấp m t framework và ti n ộ ệích cho việc sinh mã, khuôn mẫu JSP với đầu vào mặc định là file xml

UWE4JSF tương thích trên Eclipse Galileo (version 3.5), Eclipse Helios (version 3.6), yêu cầu cài đặt nền t ng công cả ụ Web WTP (Web Tools Platform), EMF, JET, ATL và 2 sub –project: uwe4jsf –persistence –hibernate & uwejsf –framework

Phiên bản mới nh t cấ ủa UWE4JSF năm 2007

Hình 1.12 Quy trình sinh mã UWE4JSF [4]

Trang 26

hướng mô hình theo k thuỹ ật UWE, nhưng hiện tại đã không còn được ti p t c phát ế ụtri n, và không th v n hành v i các phiên bể ể ậ ớ ản mớ ủa Eclipse cũng như UWE profile.i c

Luận văn hướng đến nghiên cứu cải tiến kỹ thuật sinh mã nguồn cho ứng d ng Web ụhướng mô hình UWE, xây d ng phát tri n các gi i thu t sinh mã ngu n t b n mô hình ự ể ả ậ ồ ừ ốUWE d a trên nh ng nghiên cự ữ ứu đã có về ỹ k thuật sinh mã nguồn, đồng th i cờ ụ th ểhóa b ng viằ ệc xây dựng công c ụ sinh mã

Trang 27

Chương 2: Phát triển các giải thuật sinh mã nguồn 2.1 t v Đặ ấ n đ ề

Như đã giới thi u ệ ở chương một, trong MDA, s chuyự ển đổi các mức được định nghĩa: chuyển đổi CIM sang PIM, PIM sang PSM và t PSM sang mã ngu n K thu t ừ ồ ỹ ậUWE là phương pháp hướng đối tượng d a trên ngôn ng mô hình hóa UML, là m t ự ữ ộ

k thuỹ ật phát triể ứng dụng Web hoàn chỉnh, đáp ứng đần y đủ các yêu cầu của MDA bao g m các mô hình CIM, PIM, PSM và kồ ỹ thuật chuyển đổ ừi t mô hình CIM sang PIM, t mô hình PIM sang PSM [11], th hi n trong hình 2.1 ừ ể ệ

Hình 2.1 Cấu trúc MDA cho ứng dụng web theo kỹ thuật UWE

Những nghiên cứu trước đó [1, 2, 7] đã cơ bản hoàn thiện các kỹ thuật chuyển đổi

cấp mô hình từ CIM sang PIM Kết quả ủa bước chuyển đổi trên cho ta bốn mô hình ctrong kỹ thuật UWE: nội dung, điều hướng, xử lý và trình bày, là đầu vào cho bước chuyển đổi kế tiếp Tài liệu [1] cũng trình bày các quy tắc chuyển đổi mô hình PIM sang PSM, chuyển đổi PSM sang mã, tuy nhiên các quy tắc được đưa ra chưa được đầy

đủ, chưa có sơ đồ chuyển đổi m t cách t ng quan ộ ổ

Luận văn vì lẽ đó tiếp tục nghiên cứu, đi sâu vào việc phát triển các giải thuật sinh

mã t bừ ốn mô hình UWE, nhằm hoàn thiện quy trình chuyển đổi MDA cho k thu t ỹ ậUWE và cụ ể óa các giải thuật bằng việc xây dựng một plugin cho ứng dụng thương th h

m i MagicDraw th c hiạ Để ự ện được điều này, ta c n ph i: ầ ả

o Lựa chọn nền tảng công nghệ mô hình Web, phương pháp sinh mã, từ đó đưa ra ,

t ng quan chung cho quy trình chuyổ ển đổi

o Xây dựng gi i thu t chuyả ậ ển đổ ấi c p mô hình PIM sang PSM và chuyển đổi PSM sang mã ngu n ồ

Trong ph m vi luạ ận văn, quy trình chuyển đổ ẽ đượi s c thực hiện hoàn toàn trong

Trang 28

liệu được lấy trực tiếp bằng cách sử ụng các API của ứng dụng, mà không cần thông dqua định dạng đặ ả mô hình văn bảc t n (XML/XMI)

2.2 Quy trình chuyể n đ ổ i MDA cho k ỹ thuậ t UWE

Như đã trình bày ở trên, để đưa ra quy trình chuyển đổi MDA cho k thu t UWE ỹ ậcần lựa chọn được nền tảng công nghệ, lựa chọn mô hình Web và phương pháp sinh

2.2.1 L a chự ọn nền tảng công ngh

ASP.NET được phát triển bởi Microsoft, cung cấp cho các nhà phát triển một công

c kụ ịch bản dễ dàng để xây dựng các trang Web và các ứng dụng ASP.NET dễ phát triển, có công cụ ỗ ợ ốt là VisualStudio, hỗ ợ ạnh mẽ ới bộ thư viện phong phú h tr t tr m v

và đa dạng của NET framework, độ ả b o m t t t, phù h p v i d án doanh nghi p v a ậ ố ợ ớ ự ệ ừ

và nhỏ Nhược điểm là chỉ hoạt động tốt trong môi trường Windows, mã nguồn đóng

và mất phí

PHP viết tắt của Hypertext Preprocessor, hoàn toàn là mã nguồn mở, ban đầu là một

công cụ ị kch bản, sau đó được biết đến rộng rãi nhờ ệ vi c học nó d dàng và cễ ộng đồng phát triển rấ ớt l n PHP dễ ọ h c, miễn phí, có nhi u framework hề ỗ tr ợ như Zend, Symfony, Laravel giúp cho việc phát triển nhanh và tốt hơn, có trình quản lý nội dung văn bản, hình nh, video r t t t, phù h p v i d án Web v a và nhả ấ ố ợ ớ ự ừ ỏ PHP không được đánh giá cao về kh ả năng bảo m t so v i ASP.NET, khó b o trì ho c m r ng do cách ậ ớ ả ặ ở ộ

vi t mã ngu n ế ồ tương đối tùy ti n ệ

J2EE là công nghệ ủa Sun Microsystems, là một nền lập trình dành cho việc phát ctri n ể ứng dụng phân tán kiến trúc đa tầng, thường được sử ụng để xây dựng các hệ d

thống Website lớn đòi hỏi độ ảo mật cao, số lượng người dùng lớn Ưu điể b m lớn của J2EE là có ki n trúc thi t kế ế ế ố t t, cộng đồng mạnh do là công nghệ ở m , có framework

h tr tỗ ợ ốt như Spring, chạy tốt trên nhiều nền tảng và hoàn toàn miễn phí J2EE không

d hễ ọc như PHP hay ASP.NET, cần nhiều kinh nghiệm để có thể xây dựng một dự án

Trang 29

Java và m t sộ ố hành động xử lý đã được định trước (pre –defined actions) và trong

nội dung tĩnh của trang JSTL (JSP Standard Tag Library) là thư viện chuẩn của JSP, cung c p các thấ ẻ để ể ki m soát hành vi c a trang, vòng lủ ặp, các lệnh điều khiển, các thẻ qu c tế ố hóa và các thẻ SQL

o JavaBean là m t ki u l p ộ ể ớ Java đặc bi t có mệ ột số đặ c thù:

• Có một hàm kh i t o mở ạ ặc định, không có tham s ố

• Thu c tính c a thành ph n có th ộ ủ ầ ể là đọc, ghi, ch ỉ đọc, chỉ ghi

• T t c ấ ảcác thuộc tính đều là private, được truy c p ho c gán giá tr thông qua ậ ặ ịgetter/setter

o Spring là một framework phát tri n các ng d ng Java: Java Desktop, Java Web, ể ứ ụJava Mobile, giúp tạo các ứng d ng có hiụ ệu năng cao, dễ ể ki m thử ử ụ, s d ng l i mã ạnguồn,… Spring là mã nguồn mở, được phát triển, chia sẻ, có cộng đồng người dùng r t l n vấ ớ ới kích thước nhỏ Spring được chia thành nhiều gói, trong đó SpringMVC được thiết kế dành cho việc xây dựng các ứng dụng nề ảng Web.n t2.2.2 L a chự ọn mô hình Web

Mô hình MVC (Model –View –Controller) là m t ki n trúc phộ ế ần mềm hay mô hình thiết kế được sử ụng trong kỹ d thuật phần mềm Nó giúp cho người phát triển tách ng ứ

dụng của ba thành phần khác nhau Model, View và Controller Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác Do được chia thành các thành

phần độc lập nên giúp phát tri n ể ứng dụng nhanh, đơn giản, d ễnâng cấp, b o trì ả

Hình 2.2 Mô hình MVC trong Web [17]

Nhiệm vụ ủa các thành phần như sau: c

o Model: Có nhiệm v thao tác v i cơ sở ữ ệu, nghĩa là nó sẽ ứ ấ ảụ ớ d li ch a t t c các hàm,

Trang 30

o View: Có nhiệm v ti p nh n d li u t Controller và hi n th n i dung sang các ụ ế ậ ữ ệ ừ ể ị ộđoạn mã HTML, còn g i là thành ph n giao di n ọ ầ ệ

o Controller: Đóng vai trò trung gian gi a Model và Vữ iew Nó có nhiệm v ti p nh n ụ ế ậyêu cầ ừu t trình kháchsau đó xử lý các yêu cầu đó, gọi các Model tương ứng và gửi

d li u qua View ữ ệ tương ứng r i tr k t qu v cho trình khách ồ ả ế ả ề

2.2.3 L a chự ọn phương pháp sinh mã

Chương 1 đã giới thiệu các phương pháp sinh mã trong phát tri n ng d ng Web ể ứ ụhướng mô hình: phương pháp khuôn mẫu và b lộ ọc, phương pháp khuôn mẫu và metamodel, và phương pháp sinh mã dựa trên API Phương pháp khuôn mẫu và metamodel đượ ực l a ch n trong ph m vi luọ ạ ận văn do có ưu thế hơn so với hai phương pháp còn l ại

Metamodel là một biểu đồ ớp, định nghĩa các đặ l c tả mô hình cho mô hình, ngôn

ng ữ đích Nền tảng công nghệ được chọn là J2EE có các metamodel là Java metamodel

và JSP metamodel

Hình 2.3 Java metamodel Java metamodel được mô t ả trong hình 2.3, được tham kh o t tài li u [1] So v i ả ừ ệ ớnguyên mẫu gốc, Java metamodel được bổ sung thêm thành ph n thu c tính ầ ộ

Trang 31

annotation, kiểu d li u là ữ ệ String vào lớp JavaClassMemberJavaClass phục vụ

mục đích của tác giả

JSP metamodel được mô t ả trong hình 2.4, được tham kh o t tài li u [1] ả ừ ệ

Hình 2.4 JSP metamodel 2.2.4 Quy trình chuyể n đ ổi MDA cho k ỹ thuật UWE

T nhừ ững sự ựa chọn được trình bày ở trên: nền tảng công nghệ J2EE, mô hình lWeb MVC, phương pháp sinh mã khuôn mẫu và metamodel, k t h p v i s tương ế ợ ớ ự

đồng v m t đề ặ ịnh nghĩa của b n mô hình trong UWE là mô hình nố ội dung, điều hướng,

x ử lý, trình bày với ba thành phần trong mô hình MVC, ta đưa ra được quy trình chuyển đổi MDA cho k thuỹ ật UWE như hình 2.5 ụ ể như sau:C th

Trang 32

o Mô hình n i dung ộ (mức PIM) được chuyển đổi sang JavaModel (m c PSM),là m t ứ ộ

th hi n cể ệ ủa Java metamodel, sau đó chuyển đổi sang mã ngu n Java, ồ tương ứng thành phần Model Gi i thu t chuyả ậ ển đổi có tên là CM2M

o Mô hình điều hướng và x ử lý được chuyển đổ sang JavaModel, sau đó đượi c

chuyển đổi sang mã nguồn Java, tương ứng thành ph n Controller ầ Giải thu t ậ

chuyển đổi có tên NPROM2C

o Mô hình trình bày được chuyển đổi sang JSPModel, là m t th hi n c a JSP ộ ể ệ ủ

metamodel, sau đó chuyển đổi sang mã JSP, tương ứng thành ph n View Gi i thu t ầ ả ậchuyển đổi có tên PRES2V

Xây dựng các giải thuật này được trình bày ph n ti p theo cở ầ ế ủa luận văn

2.3 Xây ựng g ải thuậ d i t CM2M sinh mã thành phần Model ừ mô hình nội dung t (Content Model to Model Code Genenation)

Mô hình n i dung ộ s dử ụng thành ph n mô hình UML chu n cho mô hình c u trúc ầ ẩ ấnhư các lớp, các liên kết và các gói để mô hình hóa n i dung ng d ng Web ộ ứ ụ Hình 2.6

là một ví dụ ủ c a mô hình n i dung, thộ ể ệ hi n các lớp có trong mô hình, các th c tính uộ(attributes), các th t c (operations), các liên k t, s k thủ ụ ế ự ế ừa của lớp

Hình 2.6 Các thành phần trong mô hình nội dung Các lớp, các thành ph n trong l p c a mô hình nội dung được chuyển đổi sang ầ ớ ủJavaModel thông qua ba quy tắc chuyển đổi cấp mô hình: UWEClass2JavaClass,

Trang 33

UWEProperty2JavaClassMember UWEOperation2JavaMethod, , và quy tắc chuy n ể

đổi mô hình sang mã ngu n ồ JavaModel2SourceCode, thể ện như hình 2.7 hi

Hình 2.7 Các quy tắc cấu thành giải thuật CM2M

Đầu vào: L p, trong mô hình nớ ội dung

Trong ví d ụminh họa, lớp có tên là "JSPElement", k thế ừa từ ớ l p "JSPNode"

Đầ u ra: JavaClass v i các thu c tính: ớ ộ

o name: tên của lớp đầu vào

o superClasses: tên của lớp đầu vào được kế ừ th a

o c thuác ộc tính khác được gán các giá trị phù h p ợ

Trang 34

Quy tắc 2.3.2 UWEProperty2JavaClassMember

Mỗi một thuộc tính (attribute) được chuyển đổi tương ứng thành một trường (field) trong JavaBean có ph m vi truy cạ ập là "private", đi cùng là hai phương thức truy cập (getter), gán giá tr ị (setter) tương ứng có ph m vi truy c p là "public" ạ ậ

Quy tắ được c trình bày chi ti t trong ph lế ụ ục A, mụ 1 c

Minh h quy t ọ a ắ c

Mô tả

Đầ u vào: Thu c tính cộ ủa lớp

Trong ví d ụminh họa, thuộc tính có tên là "name", có ki u d li u là "String" ể ữ ệ

Đầ u ra: JavaField, JavaMethod (hàm getter), JavaMethod (hàm setter)

Trong ví d ụminh họa:

o JavaField có các thuộc tính:

• name: "_" tên c+ ủa ộthu c tính

• type: kiểu dữ ệ ủ li u c a thu c tính ộ

• initialize: kh i t o giá tr d a trên kiở ạ ị ự ểu dữ ệu thuộ li c tính

• c thuác ộc tính khác được gán các giá trị phù h p ợ

o JavaMethod (getter) có các thu c tính: ộ

• name: "get" + tên c a thu c tính ủ ộ

• type: kiểu dữ ệ ủ li u c a thu c tính ộ

• body: tr v JavaField ả ề

Trang 35

o JavaMethod (setter) có các thu c tính: ộ

• name: "set" + tên thu c tính ộ

• parameter: t o tham s truy n vào theo tên và ki u d li u thu c tính ạ ố ề ể ữ ệ ộ

• body: gán giá tr cho JavaField ị

• c thuác ộc tính khác được gán các giá trị phù h p ợ

Quy tắc 2.3.3 UWEOperation2JavaMethod

Mỗi một thủ ục (operation) được chuyển đổi tương ứng thành một phương t ức t h(method), có cùng ki u dể ữ ệ li u trả ề v và tham số đầu vào Nội dung phương thức là

mặc định

Quy tắ được c trình bày chi ti t trong ph l c A, mục 1 ế ụ ụ

Minh h quy t ọa ắc

Mô tả

Đầ u vào: Phương thứ ủ ớc c a l p

Trong ví d minh hụ ọa, phương thức "toCode" của lớp JSPNode ki u d li u tr có ể ữ ệ ả

v là "String", không có tham s ề ố

Đầu ra: JavaMethod v i các thu c tính: ớ ộ

o name: tên của phương thứ đầc u vào

o type: kiểu dữ ệ li u tr v cả ề ủa phương thức

o parameter: tham s cố ủa phương thức

o body: trả ề v giá tr m c đ nh, ph thu c vào ki u d li u tr v cị ặ ị ụ ộ ể ữ ệ ả ề ủa phương

th ức

o c thuác ộc tính khác được gán các giá trị phù h p ợ

Trang 36

Quy tắc 2.3.4 JavaModel2SourceCode

Sinh mã ngu n Java t ồ ừ JavaModel, được trình bày chi ti t trong ph l B ế ụ ục

Minh h quy t ọ a ắ c

Mô tả

Đầ u vào: JavaModel, là kết quả chuyển đổi cấp mô hình từ các lớ , các thành p

ph n có trong l p trong mô hình n i dung ầ ớ ộ

Đầ u ra: Mã ngu n Java

Hình 2.8 th hi n quy trình chuyể ệ ển đổi sinh mã ngu n t mô hình n i dung ồ ừ ộ

Trang 37

Sinh mã ngu n t mô hình n i dung ồ ừ ộ

Đầu vào: ContentModel {UWE Model}

Đầ u ra: listfile {JavaCode}

1: Begin

2: listClass ContentModel.getListClass ← {Lấy danh sách các l p có trong mô ớhình n i dung}ộ

3: For in c listClass do

4: T oạ file {Tạo file với tên tương ứng v i tên c a l p} ớ ủ ớ

5: jc UWEClass2JavaClass(c)← theo quy tắc 2.3 1

6: listProperty c.getlistproperty← {Lấy danh sách các thu c tính có trong l p} ộ ớ

jm←UWEOperation2JavaMethod (o) theo quy tắc 2.3.3

jc.members.add(jm) {Thêm các thành ph n vào l p JavaClass} ầ ớ

8: sourcecode ←jc.toCode theo quy tắc 2.3.4

9: Ghi sourcecode vào file

listfile.add(file)

10: return listfile

Trang 38

2.4 Xây d ụ ng g ả i i thu t PRES2V ậ sinh mã thành phầ n View t mô ừ hình trình bày (Presenation Model to View Code Generation)

Mô hình trình bày mô tả ộ m t cái nhìn trừu tượng v giao diề ện người dùng của ứng

dụng Mô hình trình bày được xây dựng trên các định nghĩa khuôn mẫu (stereotype) cho các loại thành ph n khác nhau, ví d khung nhầ ụ ập văn bản (text), các nút b m ấ(button), … Hình 2 là một ví dụ ủa mô hình trình bày, thể hiệ các lớp có trong mô 9 c n hình, định nghĩa khuôn mẫu c a t ng l p và quan h gi a các l p v i nhau ủ ừ ớ ệ ữ ớ ớ

Hình 2.9 Các thành phần trong mô hình trình bày Các lớp của mô hình trình bày được chuyển đổi sang JSPModel thông qua hai quy

t c chuyắ ển đổi cấp mô hình PreElement2JSP PreClass2JSP, và quy tắc chuyển đổi mô hình sang mã ngu n ồ JSPModel2SourceCode, th hiể ện như hình 2.10

Hình 2.10 Các quy tắc cấu thành giải thuật PRES2V

Trang 39

Quy tắc 2.4.1 PreElement2JSP

Lớp có khuôn mẫu là văn bản (text), nút bấm (button), khung nhập văn bản (text input), hình nh (image)ả , mỏ neo (anchor),…, được gọi chung là UIElement, được chuyển đổi thành các thành phần tương ứng trong JSP

c c trình bày chi ti t trong ph l 2

Minh h quy t ọ a ắ c

Mô tả

Đầ u vào: L p, trong mô hình trình bày

Trong ví d ụminh họa, lớp có tên là "Introduction" có khuôn mẫu là văn bản

Đầ u ra: JSPElement Tùy thuộc vào khuôn mẫu củ ớp đầu vào, đầu ra a lJSPElement sẽ có các l p con JSPElement, JSPAttribute, JSPTextNode, ớJSPNode vớ ố lượi s ng, thu c tính khác nhau ộ

Trong ví d minh h a, JSPElementụ ọ thucó ộc tính name có giá trị là "c:out", và JSPAttribute là con c a JSPElement, có thu c tính: ủ ộ

o name: "value"

o value: được xây dựng trên cơ sở tên của lớp đầu vào

Trang 40

Đầ u vào: L p, trong mô hình trình bày

Trong ví d ụminh họa, lớp có tên là "SearchForm" có khuôn m u là biẫ ểu mẫu

Đầu ra: JSPElement Tùy thuộc vào khuôn mẫu của lớp đầu vào, đầu ra

JSPElement sẽ có các lớp con JSPElement, JSPAttribute, JSPTextNode, JSPNode

với số lượng, thuộc tính khác nhau Ngoài ra, các lớp con có trong lớp đầu vào

tiếp tục được chuyển đổi dựa trên khuôn mẫu của nó bằng cách gọi lại chính PreClass2JSP (thực hiện đệ quy) hay quy tắc 2.4.1 PreElement2JSP

Trong ví d minh h a, JSPElement có thu c tính name có giá trụ ọ ộ ị là "form", hai có

l p con JSPAttribute vớ ới các thuộc tính có giá trị được xây dựng trên cơ sở tên

lớp đầu vào, có l p con ớ JSPElement có thuộc tính name là "table" chứa lớp chuyển đổi của các lớp là con của ớp đầu vào: lớl p "SearchCriterion" có khuôn

m u là khung nhẫ ập văn bản và l p "Search" có khuôn m u là nút bớ ẫ ấm

Ngày đăng: 22/01/2024, 17:02

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

TÀI LIỆU LIÊN QUAN