1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Sinh mã tự động trong phát triển phần mềm hướng mô hình

119 21 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

Nội dung

ĐẠ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 ĐẠ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 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi, thực hướng dẫn khoa học TS Đặng Đức Hạnh Nội dung nghiên cứu kết nêu luận văn hồn tồn trung thực, tơi tổng hợp, bổ sung biên soạn theo hiểu biết sau nghiên cứu từ tài liệu tham khảo sách, báo khoa học, luận văn, liệu từ trang Web uy tín Hà nội, tháng 6, năm 2014 Học viên (ký ghi rõ họ tên) ii LỜI CẢM ƠN Lời đầu tiên, muốn dành lời cảm ơn sâu sắc 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 hướng dẫn tơi hồn thành luận văn Từ ngày đầu bỡ ngỡ với lĩnh vực nghiên cứu mới, Thầy tận tình quan tâm, hướng dẫn để tiếp cận nhanh với công nghệ Và bây giờ, sau trải qua giai đoạn nghiên cứu, thu kiến thức định đúc kết luận văn Ngoài ra, khoảng thời gian học tập nghiên cứu Trường Đại học Công nghệ – ĐHQGHN, với giảng dạy giúp đỡ Thầy/Cô bạn học viên, học nhiều bổ ích lý thú Ngồi kiến thức lĩnh vực Công nghệ Thông tin mà thu lượm được, điều tâm đắc khả tư duy, phân tích, tổng hợp vấn đề cách khoa học từ Thầy/Cô bạn Điều khơng giúp ích cho tơi việc xử lý tốt công việc hàng ngày, mà cịn giúp tơi nâng cao khả nghiên cứu Tự đáy lịng mình, tơi xin gửi lời cảm ơn chân thành tới Thầy/Cô bạn Tơi xin gửi lời cảm ơn tới gia đình ln ln động viên tơi hồn thành tốt nhiệm vụ học tập giao Do lĩnh vực nghiên cứu đề cập luận văn lạ, chưa ứng dụng rộng rãi, giai đoạn phát triển, gặp khơng khó khăn việc nghiên cứu Giới hạn thời gian vấn đề khiến chưa tập trung hết tâm huyết để khai thác vấn đề chuyên sâu lĩnh vực Vì mà chắn luận văn nhiều điều thiếu sót, mong nhận ý kiến đóng góp q báu Thầy/Cơ bạn đọc quan tâm Mọi ý kiến đóng góp xin vui lịng gửi địa thư điện tử: lamdn84@gmail.com Xin chân thành cảm ơn Học viên Dương Ngọc Lâm iii 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 TỔNG QUAN CƠNG NGHỆ PHÁT TRIỂN HƯỚNG MƠ HÌNH 1.1 Giới thiệu 1.2 Ứng dụng MDA quy trình phát triển phần mềm 1.2.1 Phát triển phần mềm theo phương pháp 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) 1.2.3 Những thuận lợi kiến trúc hướng mơ hình (MDA) 1.2.3.1 Chất lượng sản phẩm 1.2.3.2 Khả tương thích 1.2.3.3 Khả tương tác 1.2.3.4 Bảo trì Tư liệu 1.3 Cơ MDA 1.3.1 Mơ hình (model) gì? 1.3.2 Meta-model 1.3.3 Chuyển đổi mơ hình 1.3.4 Các đặc điểm mong muốn chuyển đổi 1.3.4.1 Khả truy tìm nguồn gốc 1.3.4.2 Tính quán gia tăng 10 1.3.4.3 Tính hai chiều 10 1.3.5 Mơ hình bốn lớp MDA 10 1.3.6 Ví dụ MOF 12 1.4 Các tiêu chuẩn OMG 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 KHẢO SÁT KHẢ NĂNG SINH MÃ TỰ ĐỘNG TRONG MDD 18 2.1 Giới thiệu 18 iv 2.2 Các sinh mã hướng mơ hình 2.2.1Sử dụng Khuôn mẫu Bộ lọc (Template and Filtering) 2.2.2Sử dụng Khuôn mẫu Meta-Model (Template and Meta-Model) 2.2.3Sử dụng Bộ sinh dựa API (API-based Generator) 2.2.4Sử dụng Sinh mã nội tuyến (Inline Code Generation) 2.3 Cơng cụ chuyển đổi mơ hình 2.3.1EMF (Eclipse Modeling Framework) 2.3.2MDR (Metadata Repository) 2.3.3AndroMDA 2.3.4OptimalJ 2.3.5ArcStyler 2.4 Khuôn mẫu (Templates) 2.4.1Ngơn ngữ mục đích chung (General-Purpose Languages) 2.4.1.1 Ngôn ngữ đánh m 2.4.1.2 Ngôn ngữ kịch bả 2.4.2Ngôn ngữ phụ thuộc miền (Domain-Specific Languages) 2.4.3Ngơn ngữ chuyển đổi mơ hình sang văn 2.4.3.1 Xpand 2.4.3.2 MOF Model to Te 2.4.3.3 JET (Java Emitter 2.5 Những lợi ích việc sinh mã hướng mơ hình 2.5.1Chất lượng 2.5.2Sự quán 2.5.3Sự linh hoạt 2.5.4Tính di động 2.5.5Phân tách khía cạnh 2.5.6Tốc độ phát triển 2.5.7Tăng thời gian phân bổ cho pha 2.6Rủi ro từ việc áp dụng sinh mã 2.6.1Phần mềm không phù hợp cho việc sinh mã 2.6.2Chất lượng phần mềm sinh mã 2.7 Tổng kết chương CHƯƠNG CƠNG NGHỆ WEB HƯỚNG MƠ HÌNH 3.1 Giới thiệu 3.1.1Phương pháp tiếp cận 3.1.2Phân tách khía cạnh 3.1.3Mơi trường chuyển đổi 3.2Công nghệ Web hướng mơ hình UWE 3.2.1Tổng quan UWE 3.2.2Các phương pháp khác MDWE so sánh với UWE 3.2.2.1 WebM 3.2.2.2 Object v 3.2.2.3 Object-Oriented Web Solution (OOWS) 3.3 Tự động sinh mã UWE4JSF 3.3.1 Tổng quan UWE4JSF 3.3.2 Chuyển đổi mơ hình chế thẩm định mơ hình 3.3.2.1 Chuyển đổi mơ hình UML2UWE 3.3.2.2 Cơ chế thẩm định UWE4JSF 3.3.2.3 Chuyển đổi mơ hình sang mơ hình UWE2JSF 3.3.2.4 UWE4JSF Meta 3.3.2.5 Chuyển đổi mơ hình sang văn UWE4JSF 3.3.3 Cấu trúc ứng dụng UWE4JSF 3.4 Tổng kết chương CHƯƠNG THỰC NGHIỆM VỚI UWE4JSF 4.1 Giới thiệu 4.2 Đặc tả yêu cầu 4.2.1 Biểu đồ ca sử dụng (Use Case Diagram) 4.2.2 Biểu đồ hoạt động (Activity Diagram) 4.3 Thiết kế mơ hình 4.3.1 Mơ hình nội dung (Content) 4.3.2 Mơ hình điều hướng (Navigation) 4.3.3 Mơ hình xử lý (Process) 4.3.3.1 AddContact 4.3.3.2 EditContact 4.3.3.3 DeleteContact 4.3.3.4 Login 4.3.3.5 Logout 4.3.3.6 Register 4.3.4 Mơ hình biểu diễn (Presentation) 4.3.4.1 Giao diện tổng thể 4.3.4.2 MainMenu 4.3.4.3 ContactDataInp 4.3.4.4 CustomerInfo 4.3.4.5 Contact 4.3.4.6 Giao diện nhập liệu 4.3.4.7 Concrete Presen 4.4 Thực sinh mã 4.5 Đánh giá kết 4.6 Tổng kết chương KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC Phụ Lục A Các plug-in công cụ UWE4JSF vi 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 DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT Chữ viết tắt AJAX APD API ATL BPEL CASE CWM DSL DTD EJB EMF EMOF HTML ID JET JMI JSF JSP LMU M2M M2T MOF MDA MDE MDD MDR MDSE TÀI LIỆU THAM KHẢO Tiếng Anh: Ali F., Stephane S.S., Timothy C.L (2012), “A Meta-Model for Model- Driven Web Development”, Int J Software Informatics, Vol 6, No 2, pp 125162 Alexander K., Nora K., Flavia M., Gefei Z (2003), “ArgoUWE: A CASE Tool for Web Applications”, EMSISE’03 Andreas K (2007), Model Driven Software Engineering for Web Applications, Dissertation, Ludwig-Maximilians-Universität München, Germany AnneKe K., Jos W., Wim B (2003), MDA Explained: The Model Driven Architecture: Practice and Promise, Addison Wesley, United States Benjamin K (2007), Xpand: A Closer Look at the model2text Transformation Language, University of Karlsruhe, Germany Bill K., Yannis Z (2008), Engineering Service Oriented Systems: A Model Driven Approach, IGI Global Christian K., Nora K (2008), UWE Metamodel and Profile: User Guide and Reference, Ludwig-Maximilians-Universität München (LMU), Germany Christian K., Nora K., Alexander K (2009), “UWE4JSF: A Model-Driven Generation Approach for Web Applications”, In Proc 9th Int Conf Web Engineering (ICWE'09), LNCS, Vol 5648, pp 493-496 Ian G (2011), Essential Software Architecture: Second Edition, Springer, New York 10 Jean P.B., Mireille B.F., Joel C., Sylvain R., Antonio S (2010), ModelDriven Engineering for Distributed Real-Time Systems: MARTE Modeling, Model Transformations and their Usages, ISTE Ltd and John Wiley & Sons Inc, Great Britain and the United States 11 Markus V (2003), “A Catalog of Patterns for Program Generation”, EuroPloP2003 12 Markus V., Andreas G (2001), “Jenerator - Generative Programming for Java”, OOPSLA2001 13 Martin H., Zuzana K (2009), “Taking Advantage of Web 2.0 in Organized Education (A Survey)”, ICL 2009 Proceedings, pp 741-752 14 Nora K., Alexander K., Geifei Z., Hubert B (2008), “UML-BASED WEB ENGINEERING: An Approach Based on Standards”, Web Engineering: Modelling and Implementing Web Applications, Chapter 7, pp 156-191 86 15 Sndhya P., Ashok K., Ravi B.M (2013), “MVC ARCHITECTURE DRIVEN DESIGN AND AGILE IMPLEMENTATION OF A WEB-BASED SOFTWARE SYSTEM”, International Journal of Software Engineering & Applications (IJSEA), Vol 4, No Tiếng Đức: 16 Bahruz M (2009), Analyse-Patterns zur Modellierung und Generierung von Web-Systeme mit UWE, Diploma Thesis, Ludwig-Maximilians-Universität München (LMU), Germany 17 Christian K (2008), Modellbasierte Generierung von Web-Anwendungen mit UWE Diploma Thesis, Ludwig-Maximilians-Universität München (LMU), Germany Các liên kết khác: 18 https://metacase.com/webinar/Domain_Specific_Modeling_76_cases_of_MD D _that_works_Nov2009.pdf 19 http://uwe.pst.ifi.lmu.de/posters/UWE4JSF.pdf 20 http://www.omg.org/mda/mda_files/ArcStyler5_Whitepaper_220205.pdf 87 PHỤ LỤC Phụ Lục A Các plug-in cơng cụ UWE4JSF Như trình bày Chương 3, công cụ UWE4JSF thực chất bao gồm chuỗi plug-in tích hợp vào mơi trường EMF, thể hình ảnh minh hoạ sau Hình Phụ Lục A.1: Chuỗi plug-in UWE4JSF Bảng Phụ Lục A.1: Các Plug-in công cụ UWE4JSF Plug-in UWE.UWE UWE4JSF.UWE4JSF UWE4JSF.CONFIG M2MCONFIG.MODEL UWE4JSF JETEXTENSIONS UWE4JSF.M2T UWE.M2M.CORE UWE.UML2UWE Plug-in UWE.VALIDATION UWE4JSF.M2M UWE4JSF.INTEGRATION Các plug-in xây dựng đóng gói thành thư viện Java (gói JAR) Chúng tìm thấy thư mục /eclipse/plugins trình phát triển Eclipse sau cài đặt Phiên UWE4JSF (ver 1.2.10.2) gồm có gói sau: Hình Phụ Lục A.2: Các Plug-in UWE4JSF Vì chúng gói JAR để phục vụ cho cơng việc nghiên cứu, dùng cơng cụ giải nén (Un-zip) để tìm hiểu cấu trúc thư mục, file chúng Qua dễ dàng hiểu phần lý thuyết trình bày Ví dụ, muốn xem gói “*.uwe.uwejsf.m2t_1.1.11.jar” có sau giải nén: Hình Phụ Lục A.3: Cấu trúc thư mục, file Plug-in 89 Hình Phụ Lục A.4: Các file khn mẫu Plug-in Từ ta xem nội dung file khuôn mẫu JET dùng cho việc chuyển đổi từ mơ hình sang mã nguồn cách mở file công cụ Text Editor 90 Phụ Lục B Thực hành với MagicUWE Thực bước sau để xuất liệu làm đầu vào cho công cụ chuyển đổi Bước 1: Cài đặt MagicDraw 16.8 phiên MagicUWE 14 tương ứng Bước 2: Thực thiết kế mơ trình bày Chương Tham khảo 15 hướng dẫn trang chủ UWE Lưu ý sử dụng thư viện UWE Profile.xml JSFStandardElements.xml phù hợp với công cụ UWE4JSF phiên Bước 3: Xuất mơ hình làm liệu đầu vào từ công cụ MagicDraw Định dạng liệu Eclipse UML2 XMI Hình Phụ Lục B.5 Hình Phụ Lục B.5: Xuất liệu làm đầu vào cho công cụ chuyển đổi 14 http://uwe.pst.ifi.lmu.de/toolMagicUWE.html 15 http://uwe.pst.ifi.lmu.de/teachingTutorial.html 91 Phụ Lục C Thực hành chuyển đổi với Eclipse IDE Bước 1: Thiết lập môi trường phát triển ứng dụng Eclipse Galileo IDE theo hướng 16 dẫn trang chủ UWE Do Eclipse phân chia trình phát triển ứng dụng Web trình phát triển mơ hình (EMF) riêng làm hai Và thời điểm Eclipse Galileo Web cập nhật công cụ UWE4JSF qua Update Site, để sử dụng UWE4JSF cho Eclipse Galileo Web ta phải thực cập nhật (update) qua Eclipse Galileo EMF, sau vào thư mục /plugins Eclipse Galileo EMF chép (copy) plug-in UWE4JSF sang thư mục /plugins Eclipse Galileo Web Bước 2: Thực sinh mã cách tạo ứng dụng Web với khung Eclipse Web sau: 16 http://uwe.pst.ifi.lmu.de/toolUWE4JSF.html 92 Hình Phụ Lục C.6: Khung ứng dụng Web Tiếp theo đưa liệu đầu vào trích xuất từ cơng cụ MagicDraw vào thư mục, ví dụ /model/emf-uml khung ứng dụng Web, đưa liệu ánh xạ mơ hình biểu diễn cụ thể, ví dụ vào thư mục /model/mapDefaults, cuối tạo file cấu hình uwejsf-config.xml Thực cấu hình file uwejsf-config.xml tương ứng với liệu đầu vào sở liệu sử dụng (mặc định 17 HSQLDB) Tham khảo ví dụ mẫu trang chủ UWE để hiểu cấu trúc liệu file cấu hình uwejsf-config.xml Sau có file cấu hình uwejsf-config.xml ta thực chuyển đổi cách click chuột phải vào file cấu hình chọn cơng cụ chuyển đổi UWE4JSF để sinh mã Hình Phụ Lục C.7: Sinh mã UWE4JSF 17 http://uwe.pst.ifi.lmu.de/uwe4jsf/AddressBook.zip 93 Khi thực sinh mã có sai sót cơng cụ thông báo, cần quay lại bước thiết kế mơ hình để kiểm tra lại tính đắn việc đặc tả Nếu thực thành cơng có mã nguồn sinh thư mục /src /WebContent khung ứng dụng Web Hình Phụ Lục C.8: Mã nguồn sinh Bước 3: Mã nguồn sinh để thực thi cần bổ sung thư viện thiếu, bổ sung liệu cho file thể ngôn ngữ DefaultResources.properti94 es, file thể giao diện style.css, file logo Cấu hình ứng dụng Web hoạt động với Web Server Apache Tomcat 6.x Trong trường hợp chức phức tạp ứng dụng đặc tả mơ hình cần viết mã thủ cơng, đóng gói dạng thư viện API bổ sung vào phần cấu hình Phần đặc tả mơ hình sử dụng ngơn ngữ diễn tả OGNL kết hợp với thư viện Helper UWE để thực thi lời gọi tới thư viện mà xây dựng Hình Phụ Lục C.9: Bổ sung mã nguồn Bước 4: Sau cấu hình đầy đủ thực chạy ứng dụng Web Một số kết 18 sau: 18 Dữ liệu mang tính chất minh hoạ 95 Register Login 96 AddContact ListContacts 97 ViewContact DeleteContact & EditContact 98 ... mơ hình hố khía cạnh phần mềm ngơn ngữ mơ hình hố Phương pháp phát triển phần mềm hướng mơ hình đời với ý tưởng tập trung vào việc mơ hình hố phần mềm, từ chuyển đổi tự động sang mô đun, mã nguồn,... [18] Hình 2.13: Chuyển đổi mơ hình sang mã nguồn theo MDA Hình 2.14: Sinh mã dựa Khn mẫu Bộ lọc Hình 2.15: Sinh mã dựa Khn mẫu Meta-model Hình 2.16: Sinh mã dựa API Hình 2.17: Sinh mã nội tuyến Hình. .. 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

Ngày đăng: 11/11/2020, 22:21

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w