Đánh giá hiệu quả sinh mã của Acceleo JavaEE Generator

Một phần của tài liệu Thao tác mô hình trong phát triển hướng mô hình (Trang 87)

Tiến hành thực nghiệm công cụ Acceleo JavaEE Generator trong việc xây dựng ứng dụng Công báo điện tử tôi có một số đánh giá nhƣ sau:

76

5.4.2.1 Thời gian và số lượng file được sinh

Khi thực hiện sinh mã từ mô hình đối với module sinh mã từ mô hình Cinematic sang mã nguồn Strut thời gian thực hiện là nhanh hơn module sinh mã từ mô hình Entity, mặc dù số lƣợng file sinh ra là lớn hơn, số lƣợng biểu đồ đầu vào là nhiều hơn. Cụ thể, với module sinh mã StrutsArchitecture số lƣợng file sinh ra là 175 (file) thời gian sinh mã mất ~3 giây. Còn với module sinh mã StrutsPresentation số lƣợng file sinh ra là 165 (file) trong thời gian ~1.5 (giây). Nhƣng với module sinh mã HibernateArchitecture thời gian sinh mã lên tới ~28 (giây) với số lƣợng file đƣợc sinh ra là 30 (giây) (xem Hình 5.34). Tuy nhiên qua thực nghiệm cho thấy thời gian sinh mã là không cố định đối với các lần sinh mã khác nhau.

Hình 5.34 Thời gian và số lƣợng file sinh bởi Acceleo JavaEE Generator

5.4.2.2 Đánh giá khả năng sinh mã

Về tổ chức và cấu trúc các tệp tin, thƣ mục đƣợc sinh ra: Ứng dụng sinh ra đúng theo kiến trúc MVC với sự phân tách rõ ràng giữa các lớp Model, View và Controller.

 Sinh các lớp Controller và view theo cấu trúc của Struts Framework: Các file mã nguồn và file cấu hình đƣợc sinh theo cách tổ chức cấu trúc của Struts. Các lớp action, form, cấu hình đặt trong thƣ mục prj->src. Các file trình diễn (jsp, css, js..) trong thƣ mục prj->WebContent.

 Sinh lớp model theo cấu trúc của Hibernate framework: Các file cấu hình, DAO Interface, Dao Implement, HibernateUtil… đƣợc sinh ra nhƣ đặc tả tại 4.2.2. File sinh ra đặt trong thƣ mục prj->Src.

 Script SQL để tạo lập cơ sở dữ liệu SQL server cho hệ thống đƣợc tạo ra.

Về chất lƣợng mã nguồn sinh ra:

Đánh giá tổng thể trên các mã nguồn sinh ra: Các file Java sinh ra không khi thực

hiện biên dịch, các file cấu hình liên quan chỉ cần chỉnh sửa nhỏ là ứng dụng có thể thực thi đƣợc.

Khả năng sinh mã của các template bổ sung và hiệu chỉnh: Các thao tác bổ sung và

hiệu chỉnh trên template hoạt động đúng nhƣ yêu cầu đặt ra. Cụ thể, file mã nguồn script sql đƣợc tạo ra và thực thi tốt trên MS SQL Server 2008, cơ sở dữ liệu có đủ các bảng, các mối quan hệ giữa các bảng, các trƣờng thông tin. Đối với các lớp DAO

77

implement của Hibernate các thao tác cập nhật, thêm mới, sửa, xoá, truy vấn dữ liệu hoạt động tốt.

5.4.2.3 Những hạn chế của bộ sinh mã

Các gói thƣ viện liên quan Strut, Hibernate, JavaEE…không đƣợc sinh tự động bởi công cụ mà cần khai báo bằng tay. Do hƣớng tiếp cận bottom-up của Acceleo JavaEE Generator, việc ứng dụng đích cần đạt đƣợc nhƣ thế nào đã đƣợc chỉ rõ trƣớc khi thực hiện sinh mã, do vậy các prototype cho ứng dụng đích cần đƣợc thiết lập trƣớc khi áp dụng sinh mã.

Các phƣơng thức trong các lớp Action trong Struts chƣa đƣợc cài đặt (implement) để gọi tới các phƣơng thức trong các lớp của Hibernate DAO để tƣơng tác với cơ sở dữ liệu, việc này ngƣời phát triển ứng dụng vẫn phải làm bằng tay.

Trong lớp trình diễn, các file .jsp cũng cần phải đƣợc ngƣời dùng hiệu chỉnh thêm nhƣ: sắp xếp và trình bày lại các thành phần trên mỗi trang, các control dạng danh sách (kiểu Iterator trong Struts) cần phải chỉ rõ những thành phần nào đƣợc hiển thị. Một số control chƣa thể sinh do chƣa đƣợc đặc tả trên metaamodel của mô hình nguồn, ví dụ nhƣ control dạng File Browser.

5.4.2.4 Đánh giá tính hiệu quả của phương pháp MDD

Theo nhận định của tác giả về tính hiệu quả đi kèm chất lƣợng trong việc áp dụng phƣơng pháp phát triển hƣớng mô hình của công cụ Acceleo JavaEE Generator. Tính tự động hoá trong việc sinh mã đã tiết kiệm khoảng ¾ lƣợng thời gian cho việc lập trình/cài đặt. Tuy nhận định này có thể mang tính chủ quan, cảm tính nhƣng khi tiến hành cài đặt hoàn thiện một số chức năng chính của ứng dụng cho thấy việc cài đặt các phần còn thiếu là mất ít thời gian bởi việc cần làm chỉ là gọi các phƣơng thức đã đƣợc cài đặt ở các lớp HibinernateDAO trong mỗi Action cụ thể. Một số kết quả ứng dụng sau khi cài đặt và chạy thử đƣợc thể hiện ở PHỤ LỤC của luận văn này.

Nhìn chung, sau khi thử nghiệm phát triển phần mềm bằng phƣơng pháp phát triển hƣớng mô hình (MDD) nói chung và sử dụng công cụ Acceleo JavaEE Generator trong ngữ cảnh của luận văn này nói riêng, tác giả nhận thấy phƣơng pháp MDD đạt đƣợc những hiệu quả và đã thể hiện đƣợc những điểm mạnh, khắc phục những điểm hạn chế của phƣơng pháp phát triển phần mềm truyền thống nhƣ đã đề cập ở phần mở đầu của luận văn.

78

KẾT LUẬN

Sau khi nghiên cứu cơ sở lý thuyết và thực hiện luận văn này tác giả đã thu đƣợc nhiều kiến thức mới và có hƣớng nhìn tích cực hơn về phƣơng pháp phát triển hƣớng mô hình.

Một số kết quả đạt đƣợc sau khi thực hiện luận văn:

 Nghiên cứu và hiểu đƣợc phƣơng pháp luận trong phát triển hƣớng mô hình. Cụ thể nhƣ nắm bắt đƣợc về kiến trúc hƣớng mô hình, các chuẩn trong phát triển hƣớng mô hình, có những định hƣớng tiếp cận phƣơng pháp chuyển đổi mô hình nói chung và đặc biệt là chuyển đổi mô hình sang văn bản.

 Nghiên cứu công cụ chuyển đổi mô hình sang văn bản Acceleo M2T và cụ thể hơn là khảo sát, cập nhật, bổ sung bộ công cụ chuyển đổi mô hình Acceleo JavaEE Generator để áp dụng trong việc phát triển ứng dụng web theo mô hình kiến trúc MVC với nền tảng kết hợp từ Struts Framework – Hibernate Framework và Cơ sở dữ liệu MS SQL Server.

 Thực nghiệm sinh mã ứng dụng “Công Báo điện tử” trên công cụ Acceleo JavaEE Generator sau khi đƣợc cập nhật một số tính năng sinh mã và đƣa ra đánh giá hiệu quả của việc sinh mã tự động với công cụ nêu trên. (adsbygoogle = window.adsbygoogle || []).push({});

Định hƣớng nghiên cứu trong tƣơng lai:

Trong luận văn này, sau khi có những thực nghiệm với phƣơng pháp phát triển hƣớng mô hình trên công cụ Acceleo M2T, Luận văn thấy rằng phƣơng pháp này rất hiệu quả khi đƣợc ứng dụng rộng rãi trong xu hƣớng công nghiệp phần mềm nhƣ hiện nay. Do đó tôi có những đinh hƣớng nghiên cứu nhằm đƣa phƣơng pháp MDD đƣợc áp dụng rộng rãi hơn:

 Trong ngắn hạn tôi sẽ nghiên cứu sâu hơn để cải tiến công cụ Acceleo JavaEE Generator nhằm mục đích có thể áp dụng tức thời đối với nhu cầu hiện tại của công việc.

 Trong dài hạn tôi dự định thành lập một nhóm nghiên cứu về chuyển đổi mô hình sang văn bản (M2T) để có thể xây dựng một công cụ chuyển đổi mô hình M2T mới, phù hợp với nhu cầu và đặc thủ của nền tảng công nghệ chúng tôi định hƣớng.

TÀI LIỆU THAM KHẢO

1. Ali F., T.C.L., Stephane S.S, A Meta-Model for Model-Driven Web Development. 2 ed. Vol. 6. 2012: Int J Software Informatics. P 125-162.

2. AndroMDA 2.0.3. on July 2003: http://www.andromda.org.

3. AnneKe K., J.W., Wim B., MDA Explained: The Model Driven Architecture: Practice and Promise. 2003: Addison Wesley, United States.

4. b+m Generator FrameWork. http://sourceforge.net/projects/architecturware/ 5. Benjamin K., Xpand: A Closer Look at the model2text Transformation

Language. 2007: University of Karlsruhe, Germany.

6. Dave Steinberg., Frank Budinsky., Marcelo Paternostro., Ed Merks, EMF: Eclipse Modeling Framework. Vol. 2. 2008: Addison-Wesley Professional.

7. Eclipse Modeling Framework www.eclipse.org/emf/.

8. Ian G., Essential Software Architecture: Second Edition. 2011: Springer, New

York.

9. Jamda:, The Java Model Driven Architecture 0.2. 2003: http://sourceforge.net/projects/jamda/.

10. Jean Bézivin., Model Engineering: From Principles to Platforms. 2005:

Technische Universität Wien.

11. Krzysztof Czarnecki., Simon Helsen, Classification of Model Transformation Approaches. 2003: in Workshop on Generative Techniques in the Context of

Model-Driven Architecture.

12. Kurtev F., Jouault I., Transforming models with ATL. 2006: in Satellite Events at the MoDELS Conference, Montego Bay, Jamaica.

13. Markus V., A Catalog of Patterns for Program Generation. 2003:

EuroPloP2003.

14. Matthias Book., Volker Gruhn Sami Beydeda, Model-Driven Software Development. 2005: Spinger.

15. OBEO, Architecture of Acceleo. 2006:

http://www.acceleo.org/doc/obeo/en/acceleo-2.6-architect-tutorial.pdf.

16. OMG, Model Driven Architect Guide. 2003: Technical Document.

http://www.omg.org/mda/mda_files/MDA_Guide_Version1-0.pdf.

17. OMG, Codagen Architect 3.2 2004:

www.omg.org/mda/mda_files/Codagen2004.pdf.

18. OMG, MOF Model To Text Transformation Language (MOFM2T) 1.0. 2008: (adsbygoogle = window.adsbygoogle || []).push({});

80

19. OMG, Specification Meta Object Facility (MOF), Version 2.4. 2011: Technical Report, http://www.omg.org/spec/MOF/2.4/.

20. OMG, MDA Specifications 2014: Technical Report, http://www.omg.org/mda/specs.htm.

21. OMG, Query/View/Transformation (QVT) Specification. 2014: http://www.omg.org/spec/QVT/1.2

22. OMG., ArcStyler The leading platform for Model Driven Architecture (MDA). 2005: http://www.omg.org/mda/mda_files/ArcStyler5_Whitepaper_220205.pdf. 23. OptimalJ 3.0, User's Guide. http://www.compuware.com/products/optimalj. 24. Xpand. http://www.eclipse.org/modeling/m2t/?project=xpand.

81

PHỤ LỤC

Một số hình ảnh minh hoạ ứng dụng Công báo điện tử đƣợc sinh từ công cụ Acceleo JavaEE Generator

A. Giao diện - Quản trị hệ thống (Gói BackEnd)

1. Quản lý danh mục Lĩnh vực: Màn hình nhằm mục đích hiển thị các lĩnh vực văn bản và thực hiện các thao tác: Thêm, sửa, xoá.

ViewManageLinhVuc – Danh sách lĩnh vực

82

ViewUpdateLinhVuc – Cập nhật danh mục lĩnh vực

ViewDeleteLinhVuc – Xoá danh mục lĩnh vực

2. Quản lý danh mục: cơ quan ban hành

83

ViewCreateCoQuanBh – Tạo mới cơ quan ban hành

3. Quản lý danh mục: Loại văn bản ban hành

ViewManageLoaiVb – Quản lý loại văn bản

84

4. Quản lý Văn bản ban hành

ViewManageLoaiVb – Quản lý văn bản ban hành

85

5. Quản lý Công Báo

ViewManageCongBao– Quản lý số công báo

86

B. Giao diện - Quản trị hệ thống (Gói System) 1. Đăng nhập

ViewLogin– Đăng nhập hệ thống

2. Giao diện Backend – Quản trị viên

ViewManage– Giao diện Backend (adsbygoogle = window.adsbygoogle || []).push({});

3. Quản lý tài khoản ngƣời dùng

87

C. Giao diện – Khách viếng thăm (Gói BackEnd)

ViewCongBao– Trang chủ công báo

Một phần của tài liệu Thao tác mô hình trong phát triển hướng mô hình (Trang 87)