Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
1,78 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THANH HÀ NGHIÊN CỨU VÀ CÀI ĐẶT MỘT CÔNG CỤ TRÊN NỀN TẢNG ECLIPSE ĐỂ HỖ TRỢ PHÁT TRIỂN CÁC ỨNG DỤNG JAVA 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Ĩ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG ĐỨC HẠNH Hà Nội – 2018 L LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ “Nghiên cứu cài đặt công cụ tảng Eclipse để hỗ trợ phát triển ứng dụng Java” cơng trình nghiên cứu riêng hướng dẫn TS Đặng Đức Hạnh Các nội dung nghiên cứu kết đề tài trung thực chưa cơng bố cơng trình khác Những phân tích, đánh giá tác giả thu thập từ nguồn khác có ghi rõ tài liệu tham khảo Học viên thực Vũ Thanh Hà i LỜI CẢM ƠN Để hoàn thành luận văn thạc sĩ, bên cạnh nỗ lực thân có hướng dẫn nhiệt tình q Thầy Cơ, động viên ủng hộ gia đình bạn bè suốt trình nghiên cứu thực luận văn Tôi xin chân thành bày tỏ lòng biết ơn sâu sắc đến Thầy TS Đặng Đức Hạnh, người tận tình hướng dẫn tạo điều kiện tốt cho tơi hồn thành luận văn Xin chân thành cảm ơn thầy cô khoa Công nghệ thông tin, Trường đại học Công Nghệ truyền đạt kiến thức quý báu giúp đỡ tơi q trình học tập nghiên cứu trường Cuối cùng, xin gửi lời cảm ơn đến gia đình, bạn bè, đồng nghiệp, người hỗ trợ tơi suốt q trình học tập, nghiên cứu thực luận văn Học viên thực Vũ Thanh Hà ii MỤC LỤC Trang LỜI CAM ĐOAN i LỜI CẢM ƠN .ii MỤC LỤC iii DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v DANH SÁCH CÁC HÌNH VẼ vi MỞ ĐẦU .1 CHƯƠNG KIẾN THỨC NỀN TẢNG 1.1 Giới thiệu chương .3 1.2 Thiết kế hướng miền 1.2.1 Kiến thức miền vấn đề .3 1.2.2 Ngôn ngữ chung 1.2.3 Rằng buộc mô hình cài đặt 1.2.4 Cô lập miền 1.2.5 Mơ hình thể phần mềm 1.2.6 Vòng đời đối tượng miền .12 1.3 Phương pháp phát triển phần mềm hướng miền DDSDM 13 1.3.1 Phát triển mơ hình miền khái niệm .14 1.3.2 Định nghĩa vòng lặp phát triển .15 1.3.3 Thực vòng lặp phát triển 15 1.3.4 Tích hợp nguyên mẫu phần mềm 15 1.4 Công cụ hỗ trợ phát triển phần mềm hướng miền 16 1.4.1 Lịch sử phát triển 16 1.4.2 Tổng quan kiến trúc 16 1.4.3 Ví dụ điển hình: CourseMan 17 1.4.4 Phát triển lớp miền .18 1.4.5 Xây dựng nguyên mẫu phần mềm từ lớp miền 24 iii 1.5 Thành phần mở rộng Eclipse Plug-in .25 1.5.1 Kiến trúc mở Eclipse 25 1.5.2 Môi trường phát triển Plug-in .27 1.6 Tổng kết chương .30 CHƯƠNG XÂY DỰNG ELCIPSE PLUGIN CHO .31 2.1 Giới thiệu chương .31 2.2 Mô tả yêu cầu cho Plug-in 31 2.3 Mô hình thiết kế Eclipse Plugin cho phần mềm hướng miền 34 2.3.1 Mơ hình thiết kế UML cho Eclipse Plugin 34 2.3.2 Thuật toán sinh phương thức Thuật toán sinh module phần mềm 36 2.3.3 Thuật toán sinh cấu hình phần mềm SWC 40 2.4 Cài đặt chi tiết thiết kế plug-in 42 2.5 Tổng kết chương .48 CHƯƠNG CÀI ĐẶT VÀ THỰC NGHIỆM 49 3.1 Giới thiệu chương .49 3.2 Môi trường cài đặt .49 3.3 Bài tốn quản lý khóa học 49 3.4 Kết thực nghiệm 52 3.5 Tổng kết chương .64 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 65 TÀI LIỆU THAM KHẢO 66 iv DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Thuật ngữ Từ viết tắt API Application Programming Interface DDD Domain-Driven Design Ý nghĩa Giao diện lập trình ứng dụng Thiết kế hướng miền IDE Domain-driven software development Phương pháp phát triển phần method mềm hướng miền Integrated Development Environment Mơi trường phát triển tích hợp JDT Java Development Tools Các công cụ phát triển Java JRE Java Runtime Environment Môi trường chạy Java MCC Module Configuration Class Lớp cấu hình mơ đun phần mềm MVC Model View Controller Mơ hình thiết kế phần mềm OSGi Open Service Gateway Initiative PDE Plug-in Development Environment RCP Rich Client Platform SWC Software Configuartion Nền tảng lập trình ứng dụng Desktop Cấu hình phần mềm SWT The Standard Widget Toolkit Bộ công cụ đồ họa chuẩn User interface Giao diện người dùng eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng DDSDM UI XML v Nền tảng Java cho việc phát triển triển khai plug-in Môi trường phát triển plug-in DANH SÁCH CÁC HÌNH VẼ Hình 1.1: Các thành phần thiết kế hướng miền Hình 1.2: Kiến trúc phân lớp Hình 1.3: Vịng đời đối tượng miền Hình 1.4: Tổng quan phương pháp phát triển phần mềm hướng miền Hình 1.5: Thiết kế lớp miền phần mềm CourseMan Hình 1.6: Áp dụng meta-attribute DAssoc cho ba liên kết CourseMan Hình 1.7: Kiến trúc mở Eclipse Hình 1.8: Hoạt động plug-in Hình 2.1: Các thử thách cho DSL dựa annotation Hình 2.2: Biểu đồ cho plug-in Hình 2.3: Biểu đồ lớp cho plug-in Hình 2.4: Biểu đồ triển khai cho plug-in Hình 2.5: Mơ hình kiến trúc phần mềm COURSEMAN Hình 2.6: Các bước xây dựng Plug-in Hình 2.7: Màn hình nhập thơng tin ban đầu Plug-in Hình 2.8: Màn hình chọn Template cho Plug-in Hình 2.9: Màn hình dự án Plug-in tạo Hình 2.10: Màn hình Extensions Hình 2.11: Màn hình tạo command Hình 2.12: Màn hình khai báo handlers Hình 2.13: Màn hình khai báo bindings Hình 2.14: Màn hình khai báo vị trí item menu Hình 3.1: Mơ hình ca sử dụng CourseMan Hình 3.2: Mơ hình miền khái niệm mơ hình CourseMan Hình 3.3: Đầu vào thực nghiệm Hình 3.4: Giao diện menu sinh phương thức cho lớp miền Hình 3.5: Giao diện menu sinh cấu hình mơ-đun phần mềm Hình 3.6: Cấu hình mơ-đun phần mềm sinh Hình 3.7: Giao diện menu sinh cấu hình mơ-đun phần mềm Hình 3.8: Cấu hình phần mềm SWC1 sinh Hình 3.9: Cấu hình phần mềm SWC1 sinh Hình 3.10: Cấu hình Run Configurations để chạy mã nguồn Hình 3.11: Giao diện phần mềm CourseMan Hình 3.12: Giao diện form CourseMan vịng lặp Hình 3.13: Giao diện form CourseMan sau sửa cấu hình mơ-đun vi MỞ ĐẦU Một ứng ứng dụng phát triển với kiến trúc tuyệt với, sử dụng cơng nghệ có giao diện tốt khơng giải u cầu nghiệp vụ đề ứng dụng khơng thể xem hữu ích Do đó, thiết kế hướng miền DDD đưa [2] Thiết kế hướng miền DDD nhằm phát triển phần mềm cách lặp lặp lại xung quanh mơ hình miền thực tế Cả phần mềm mơ hình miền nắm bắt triệt để yêu cầu miền khả thi để cài đặt xét mặt kỹ thuật [6] Ý tưởng DDD mơ hình hóa miền cho phát triển phần mềm Về lý thuyết, đội phát triển cần tập trung chủ yếu vào xây dựng mô hình miền, tuân thủ nguyên tắc DDD cài đặt Khi xương hệ thống rắn chắc, thứ trở nên dễ dàng việc triển khai tính tương tự việc lắp ghép viên gạch xếp hình Trên thực tế, việc xây dựng phần mềm hướng miền không đơn giản, nhiều công việc cần phải thực hiện: từ phân tích miền, xây dựng mơ hình miền, cài đặt dạng mã nguồn sử dụng ngơn ngữ lập trình định, đảm bảo nguyên tắc DDD gắn chặt cài đặt với mơ hình, lập lớp miền chứa thành phần cấu thành nên DDD [2] Để tăng hiệu suất tạo phần mềm, công cụ Java hỗ trợ phát triển phần mềm hướng miền tên DomainAppTool, nhóm tác giả [5] đề xuất Công cụ sử dụng nghiên cứu gần DDD tập trung vào mở rộng ngơn ngữ lập trình hướng đối tượng dựa annotation để xây dựng mơ hình miền Mơ hình khơng sở cho ngơn ngữ chung thành viên nhóm phát triển mà cịn sử dụng đầu vào để sinh phần mềm [6] DomainAppTool tự động tạo phần mềm từ tập lớp miền thiết kế với tính thiết kế hướng miền Lợi ích công cụ cho phép nhà phát triển tập chung vào thiết kế mơ hình miền để đưa tập lớp miền phần mềm, toàn phần mềm bao gồm giao diện đồ họa người dùng đối tượng lưu trữ tạo tự động vào thời gian chạy Tuy nhiên, hạn chế cơng cụ chưa có giao diện người dùng, người sử dụng phải thực thủ công loạt lệnh command line để tạo phần mềm Phát triển phần mềm trình lặp lặp lại để sinh phần mềm cuối Trong vòng lặp phát triển, sử dụng cơng cụ người dùng lại phải thực lệnh đó, gây khơng khó khăn tốn nhiều thời gian Vì vậy, tơi xin chọn đề tài “Nghiên cứu cài đặt công cụ tảng Eclipse để hỗ trợ phát triển ứng dụng Java” Mục tiêu luận văn tạo gói mở rộng plug-in cài cơng cụ hỗ trợ lập trình Eclipse cho DomainAppTool Từ đó, chức trực quan hóa, người dùng sử dụng trình phát triển phần mềm Điều có ý nghĩa quan trọng giúp cho công cụ hỗ trợ phát triển phần mềm hướng miền sử dụng rộng rãi Trong luận văn, tơi tập trung vào trình bày chi tiết hai đóng góp xây dựng thuật tốn tạo cấu hình phần mềm xây dựng gói Eclipse plug-in; cuối bước thực thực nghiệm kết đạt Về phần bố cục, luận văn chia thành ba chương sau: Chương Kiến thức tảng : Trình bày sở lý thuyết cơng nghệ sử dụng luận văn Bao gồm: Thiết kế hướng miền, phương pháp phát triển phần mềm hướng miền, công cụ hỗ trợ phát triển phần mềm hướng miền thành phần mở rộng Eclipse Plug-in Chương Xây dựng Eclipse Plug-in cho phần mềm hướng miền : Trình bày mơ hình thiết kế Plugin cài đặt chi tiết thiết kế Các thuật toán tự động sinh phương thức cho lớp miền cấu hình mơ-đun phần mềm giới thiệu trọng tâm tập trung vào trình bày chi tiết thuật tốn sinh cấu hình phần mềm Chương Cài đặt thực nghiệm : Trình bày u cầu mơi trường cài đặt thực nghiệm, toán thực nghiệm cuối kết đạt CHƯƠNG KIẾN THỨC NỀN TẢNG 1.1 Giới thiệu chương Chương trình bày sở lý thuyết cơng nghệ sử dụng luận văn Bao gồm ba nội dung chính: Thiết kế hướng miền DDD: khái niệm, ngơn ngữ chung, thiết kế hướng mơ hình kiến trúc ứng dụng sử dụng DDD Phương pháp phát triển phần mềm hướng miền DDSDM: khái niệm, pha phát triển nguyên mẫu phần mềm từ mô hình miền Cơng cụ hỗ trợ phát triển phần mềm hướng miền: lịch sử phát triển, tổng quan kiến trúc, phát triển lớp miền bước xây dựng nguyên mẫu phần mềm từ lớp miền Thành phần mở rộng Eclipse Plug-in: Kiến trúc mở Eclipse môi trường phát triển Plug-in 1.2 Thiết kế hướng miền Thiết kế hướng miền cách tiếp cận để phát triển phần mềm có yêu cầu phức tạp việc liên kết cài đặt với mơ hình phát triển Tiền đề thiết kế hướng miền [2] là: Đặt trọng tâm dự án tập trung vào miền lõi logic miền Các thiết kế phức tạp xây dựng dựa mơ hình miền Sự cộng tác chun gia miền chuyên gia phát triển để trau dồi lặp lặp lại mơ hình miền khái niệm giải vấn đề miền cụ thể Thiết kế hướng miền phát triển từ tiền đề coi trái tim phát triển phần mềm kiến thức vấn đề cần giải tìm cách hữu ích để hiểu vấn đề Sự phức tạp cần giải phức tạp miền kiến thức kỹ thuật, giao diện người dùng hay chí khơng phải chức cụ thể Điều có nghĩa thiết kế thứ xung quanh hiểu biết quan niệm hầu hết khái niệm cần thiết nghiệp vụ, chứng minh cho phát triển khác cách hỗ trợ miền lõi 1.2.1 Kiến thức miền vấn đề Phát triển phần mềm quy trình xây dựng phần mềm để giải toán nghiệp vụ thực tế hay miền vấn đề Phần mềm bắt nguồn liên quan chặt chẽ với miền Mặt khác, phần mềm làm từ mã nguồn Nhà phát triển thường sa đà vào việc dành nhiều thời gian tạo mã nguồn nhìn phần mềm đối tượng phương thức đơn giản [2] Xem xét ví dụ sản xuất ô tô [1] Công nhân liên quan trực tiếp đến việc lắp ráp linh kiện ơ-tơ có góc nhìn hạn chế quy trình sản xuất tô Họ coi ô tô tập khổng lồ linh kiện cần lắp ráp chúng với nhau; thực quy trình tạo