ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA -------------------- Đỗ Quang Trí PHÁT TRIỂN PHƯƠNG PHÁP TINH CHẾ MÔ HÌNH TRÊN SEAM ĐỂ HỖ TRỢ SINH MÃ TỰ ĐỘNG Chuyên ngành : Khoa học máy tính Mã số: 604801 LUẬN VĂN THẠC SĨ Tp. HCM, ngày 18 tháng 07 năm 2013 ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA -------------------- Đỗ Quang Trí PHÁT TRIỂN PHƯƠNG PHÁP TINH CHẾ MÔ HÌNH TRÊN SEAM ĐỂ HỖ TRỢ SINH MÃ TỰ ĐỘNG Chuyên ngành : Khoa học máy tính Mã số: 604801 LUẬN VĂN THẠC SĨ Tp.
HCM, ngày 18 tháng 07 năm 2013 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG - HCM Cán bộ hướng dẫn khoa học :. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 :. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 :. (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp.
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1. Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có). CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA………… ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Đỗ Quang Trí. Ngày, tháng, năm sinh: 26/06/1984.
Nơi sinh: Đồng Nai. Chuyên ngành: Khoa học máy tính. TÊN ĐỀ TÀI: Phát triển phương pháp tinh chế mô hình trên SEAM để hỗ trợ sinh mã tự động. NHIỆM VỤ VÀ NỘI DUNG: Tìm hiểu, so sánh UML và các phương pháp mô hình hệ thống như OPM và SEAM.
Đề xuất một phương pháp hỗ trợ sinh mã tự động hiệu quả hơn trên SEAM Xây dựng công cụ chuyển đổi những mô hình khác nhau của SEAM thành những mô hình chi tiết hơn và cuối cùng sinh ra mã chương trình. NGÀY GIAO NHIỆM VỤ : (Ghi theo trong QĐ giao đề tài). NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài). CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên):.
CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) (Họ tên và chữ ký) TRƯỞNG KHOA….……… (Họ tên và chữ ký) LỜI CÁM ƠN Trước hết, tôi xin bày tỏ lòng cảm ơn chân thành PGS. Quản Thành Thơ, chủ nhiệm Bộ môn Khoa học máy tính và Ts. Bùi Hoài Thắng, là những người tận tình hướng dẫn tôi trong suốt thời gian làm luận văn tốt nghiệp. Tôi xin cảm ơn các thầy, cô giáo ở khoa Công nghệ thông tin, phòng Sau đại học, trường Đại học Bách Khoa Tp.HCM - ĐHQG Tp.HCM đã giảng dạy tôi trong suốt thời gian học tập tại trường và tạo điều kiện giúp đỡ tôi hoàn thành luận văn này.
Cảm ơn các bạn bè, đồng nghiệp đã cổ vũ động viên tôi trong suốt quá trình học tập tại trường. Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên chắc chắn luận văn này còn nhiều thiếu sót và hạn chế nhất định. Kính mong nhận được sự góp ý của thầy cô và các bạn.HCM, ngày 18 tháng 07 năm 2013 Học viên Đỗ Quang Trí TÓM TẮT LUẬN VĂN THẠC SỸ 1. Tiếng Việt Sinh mã tự động là một quá trình đi từ mô hình ý niệm để sinh ra mã một cách tự động.
Trong quá trình đó, ở mỗi bước đòi hỏi người sử dụng bổ sung thêm những yêu cầu của hệ thống. Luận văn này với mục tiêu nghiên cứu các công cụ mô hình, so sánh các công cụ với nhau. Bên cạnh đó luận văn cũng tập trung đi sâu phân tích một công cụ mô hình hỗ trợ sinh mã về mặt lý thuyết một cách hiệu quả có tên gọi là SEAM. Sau đó luận văn đề xuất một phương pháp mô hình yêu cầu đi từ mức tổng quát nhất,qua từng bước đi tới mô hình chi tiết nhất để từ đó sinh ra mã thông qua một ví dụ về một hệ thống ERP đơn giản được gọi là GeneralRessorts.
English Code generation is a process to transform visual diagrams to code automatically. In this process, in each step, users require to add more knowledge or requirements for the system. This thesis will invesgate on these modeling tools, compare each others. Besides, the thesis is to analyze deeply one modeling tool support to transform from the simplest diagram to complex diagram, from that, we can generate simple code.
We get one example to model a simple ERP system named GeneralRessorts. LỜI CAM ĐOAN Tôi tên Đỗ Quang Trí, là học viên cao học chuyên ngành Khoa học máy tính, khóa 2009, tại TP. Hồ Chí Minh. Tôi xin cam đoan: - Công trình nghiên cứu này do chính tôi thực hiện.
- Các số liệu trong luận văn là hoàn toàn trung thực và chưa được công bố ở các nghiên cứu khác hay trên bất kỳ phương tiện truyền thông nào. Tôi xin chịu hoàn toàn trách nhiệm về kết quả nghiên cứu trong Luận văn tốt nghiệp của mình. Học viên Đỗ Quang Trí Mục lục 1 Giới thiệu .2 Mục tiêu của luận văn .3 Giới hạn của luận văn .4 Đóng góp của luận văn .5 Cấu trúc các phần còn lại. GR Case Study .2 Model-driven development (MDD) .2 Tại sao lại là MDD .3 Quá trình MDD .3 Unified Modelling Language (UML) .2 Mô hình GR Case Study với UML .3 Công cụ sinh mã với UML.4 OPM and OPCAT .2 Khái niệm của OPM .3 Tinh chế OPM và những cơ chế trừu tượng .4 Mô hình GR với OPM.5 OPM-GCG Kiến trúc .2 Alloy và công cụ phân tích Alloy .3 Môi trường mô hình .5 Đơn vị chức năng (Funtional Unit) .6 Thiết kế dịch vụ, giả lập và quá trình sinh mã giả.
33 4 Thiết kế mô hình dịch vụ tại General Ressorts. 34 5 Giả lập và sinh mã từ mô hình.1 Giả lập dịch vụ .1 Các kết quả đã đạt được .1 Giới thiệu Một trong những thách thức lớn trong việc thiết kế hệ thống IT cho doanh nghiệp là xây dựng một quá trình thống nhất đi từ giai đoạn nắm bắt yêu cầu của hệ thống, trải qua các bước thiết kế và cuối cùng là sinh ra mã. Thông thường, các thiết kế hệ thống của doanh nghiệp được thực hiện với một công cụ mô hình nào đó và khi cần sinh ra mã chương trình (ở mức độ đơn giản) thì phải sử dụng một công cụ khác và phải thiết kế lại (mô hình cuối cùng để sinh mã) cho phù hợp với công cụ đó. Mục đính cuối cùng là đảm bảo những thiết kế ban đầu và mã chương trình sinh ra là thống nhất và thỏa mãn thiết kế ban đầu.
Tuy nhiên, đảm bảo yêu cầu trên là một quá trình không đơn giản. Đầu tiên, các mô hình ở giai đoạn thiết kế phải đảm bảo tính thống nhất qua từng giai đoạn thiết kế (đi từ đơn giản đến phức tạp), điều mà các công cụ mô hình hệ thống như Enterprise Architect [5] vẫn chưa làm tốt hoặc chưa hỗ trợ tốt cho người thiết kế. Thứ hai, thiết kế mô hình trong các doanh nghiệp chưa có một hướng dẫn cụ thể các bước thiết kế, đa phần vẫn dựa vào kinh nghiệm của người thiết kế do đó những mô hình sinh ra trong cùng một thiết kế và giữa những người thiết kế khác nhau dễ dẫn đến sự khác biệt đáng kể. Và cuối cùng, giữa thiết kế và sinh mã vẫn còn một khoảng cách do hầu hết các ngôn ngữ sinh mã hiện tại không hỗ trợ các tập đầu vào ở mức tổng quát nhất.
Do đó muốn sử dụng các công cụ đó, người thiết kế phải thiết kế lại mô hình trên các công cụ này ở mức sinh mã mới có thể sử dụng được. Vì những lý do nói trên, luận án này sẽ đi sâu vào phân tích những ngôn ngữ mô hình khác nhau hỗ trợ cho việc thiết kế và sinh mã hệ thống, nghiên cứu những mặt mạnh và những khiếm khuyết của các phương pháp đó. Sau đó, luận án sẽ đề xuất một phương pháp tích hợp hỗ trợ đặc tả quy trình kinh doanh đi xuyên suốt từ giai đoạn thiết kế đơn giản đến phức tạp và cuối cùng đi từ thiết kế phức tạp nhất đến giai đoạn sinh mã nhưng vẫn đảm bảo được tính thống nhất giữa các mô hình đồng thời mô hình cuối cùng sinh ra có thể dễ dàng sử dụng để sinh ra mã 1 chương trình. Phương pháp này dựa trên SEAM [2] (công cụ thiết kế) và BUD[18] (công cụ sinh mã).
Việc phân tích đó sẽ được ứng dụng thông qua một case study cụ thể để thấy được những ứng dụng thực tế của SEAM trong việc phân tích hệ thống nói chung và trong phát triển phần mềm nói riêng.2 Mục tiêu của luận văn So sánh UML (Unified Modeling Language) và các phương pháp mô hình hệ thống khác như OPM (Object-Process Methodology) và SEAM (Systemic Enterprise Architecture Methodology. Quá trình so sánh được thực hiện dựa trên các tiêu chí: quá trình mô hình, cú pháp (phần tử) mô hình, khả năng sinh ra mã. Tìm hiểu nền tảng lý thuyết xây dựng nên SEAM. Đề xuất phương pháp thiết kế mô hình hỗ trợ cho việc thiết kế dịch vụ trong doanh nghiệp sử dụng SEAM [2], hiện thực quá trình mô hình đi thiết kế đơn giản nhất đến chi tiết, từ đó có thể sinh ra mã chương trình bằng cách sử dụng công cụ BUD [18].
Xây dựng công cụ chuyển đổi những mô hình khác nhau của SEAM tới những mô hình chi tiết hơn.3 Giới hạn của luận văn Luận văn tập trung vào việc phân tích các công cụ sinh mã tự động để rút ra được những điểm mạnh và yếu giữa các công cụ đó. Từ đó đề xuất một phương pháp tốt nhất có thể dùng để thiết kế mô hình, tinh chế mô hình (mô hình sau chi tiết hơn mô hình trước) và kiểm tra tính đúng đắng của mô hình đó. Luận văn không đi sâu vào giai đoạn sinh mã từ mô hình, chỉ tập trung và quá trình đi từ sơ đồ đơn giản nhất, tinh chế để đi tới mô hình phức tạp nhất. Phần sinh mã từ mô hình cuối cùng đã được thực hiện trong một nghiên cứu khác (BUD [18]) và sẽ được sử dụng để sinh ra mã cho mô hình nhằm đảm bảo tính xuyên suốt của thiết kế.