Luận án tiến sĩ về tự động hóa phát triển phần mềm - Lê Minh Đức
Khám phá phương pháp tiếp cận khung hình hợp nhất cho tự động hóa phát triển phần mềm, nâng cao hiệu suất và khả năng hợp tác trong nhóm.
University of Engineering and Technology, Vietnam National University, Hanoi
Software Engineering
Luan An
luận án
Năm xuất bản
Số trang
193
Thời gian đọc
29 phút
Lượt xem
0
Lượt tải
0
Phí lưu trữ
50 Point
Tổng quan nhanh
- Chủ đề:
- 1. Khung hình hợp nhất tự động hóa phần mềm
- Số trang:
- 193 trang
- Trường:
- University of Engineering and Technology, Vietnam National University, Hanoi
- Chuyên ngành:
- Software Engineering
- Tác giả:
- Le Minh Duc
- Năm:
- 2020
Tóm tắt nội dung luận án
I. Khung hình hợp nhất tự động hóa phần mềm
Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm tập trung vào thiết kế kiến trúc khung hợp nhất để tích hợp công cụ tự động hóa hiệu quả. Mô hình này kết hợp các nguyên lý của tiếp cận domain-driven design (DDD) và model-driven software engineering (MDSE), giải quyết các thách thức trong việc xây dựng phần mềm đa lớp từ mô hình miền. Các giải pháp như domain class specification language (DCSL) và module configuration class language (MCCL) được phát triển để tạo ra phần mềm có tính mô-đun cao và khả năng tái sử dụng.
1.1. Tự động hóa quy trình phát triển phần mềm
Quy trình phát triển phần mềm trong khung hợp nhất bao gồm các bước thiết kế mô hình miền, tạo mã nguồn tự động và tích hợp liên tục. Tự động hóa quy trình phát triển giúp giảm thiểu lỗi và tăng tốc độ triển khai. DCSL được sử dụng để xác định cấu trúc và hành vi cốt lõi của lớp miền, đảm bảo tính nhất quán trong toàn bộ hệ thống.
1.2. Tích hợp công cụ tự động hóa
Tích hợp công cụ tự động hóa trong khung hợp nhất cho phép kết nối các công cụ kiểm thử và CI/CD. Framework J1DOMAINAPP được xây dựng để hỗ trợ việc sinh mã từ DCSL và MCCL. Điều này giúp tối ưu hóa DevOps automation framework và nâng cao hiệu suất trong DevOps pipeline.
II. Thiết kế khung kiểm thử đa tầng
Khung kiểm thử đa tầng trong tiếp cận khung hợp nhất tập trung vào việc kiểm thử mô hình miền và cấu hình mô-đun. Các lớp kiểm thử được thiết kế để đảm bảo tính chính xác của domain model và tính linh hoạt của module configuration. Tự động hóa kiểm thử phần mềm được thực hiện thông qua các kịch bản kiểm thử được sinh từ mô hình miền.
2.1. Mô hình kiểm thử cấu trúc miền
Mô hình kiểm thử cấu trúc miền sử dụng UML activity diagram để mô tả hành vi của lớp miền. Các ràng buộc cấu trúc được xác định qua DCSL, giúp phát hiện lỗi thiết kế sớm. Quy trình kiểm thử đảm bảo tính nhất quán giữa mô hình miền và mã nguồn.
2.2. Kiểm thử mô đun cấu hình
Kiểm thử mô-đun cấu hình tập trung vào khả năng tái sử dụng của module configuration class (MCC). MCCL cho phép tạo các biến thể mô-đun mà không cần thay đổi thiết kế gốc. Điều này tăng tính linh hoạt trong khung kiểm thử đa tầng.
III. Ứng dụng khung hợp nhất trong CI CD
Tiếp cận khung hợp nhất được áp dụng trong chuỗi CI/CD để tối ưu hóa tự động hóa quy trình phát triển. Framework J1DOMAINAPP hỗ trợ tích hợp các công cụ kiểm thử và triển khai liên tục. Khả năng sinh mã từ mô hình miền giúp giảm thời gian build và deploy. Khung hợp nhất cũng hỗ trợ DevOps automation framework thông qua việc tự động hóa kiểm thử và cấu hình mô-đun.
3.1. Tích hợp CI CD với DCSL
DCSL được tích hợp vào pipeline CI/CD để sinh mã nguồn và kiểm thử tự động. Điều này đảm bảo tính liên tục trong quy trình phát triển phần mềm. Các lỗi thiết kế được phát hiện sớm thông qua kiểm thử mô hình miền.
3.2. Tối ưu hóa DevOps automation framework
Khung hợp nhất cho phép tối ưu hóa DevOps automation framework bằng cách kết nối DCSL và MCCL với các công cụ CI/CD. Tự động hóa quy trình phát triển được thực hiện thông qua việc sinh mã và cấu hình mô-đun tự động.
IV. Đánh giá hiệu quả khung hợp nhất
Hiệu quả của khung hợp nhất được đánh giá thông qua trường hợp nghiên cứu về quản lý quy trình tổ chức. Khả năng tạo ra phần mềm có tính mô-đun cao và khả năng tái sử dụng được xác nhận. Framework J1DOMAINAPP cho thấy sự hiệu quả trong việc sinh mã từ mô hình miền và kiểm thử tự động. Kết quả đánh giá khẳng định khung hợp nhất là giải pháp toàn diện cho tự động hóa phần mềm.
4.1. Trường hợp nghiên cứu thực tế
Trường hợp nghiên cứu tập trung vào ứng dụng khung hợp nhất trong quản lý quy trình tổ chức. Mô hình miền được xây dựng bằng DCSL, sau đó sinh mã nguồn và kiểm thử tự động. Kết quả cho thấy tính hiệu quả của tiếp cận trong môi trường thực tế.
4.2. Tính khả thi của khung hợp nhất
Khung hợp nhất được chứng minh khả thi thông qua việc tích hợp DCSL, MCCL và CI/CD. Các công cụ trong J1DOMAINAPP giúp giảm thời gian phát triển và tăng tính ổn định của hệ thống. Khung hợp nhất là lựa chọn tối ưu cho các dự án phần mềm phức tạp.
Mục lục chi tiết luận án
Tải xuống file đầy đủ để xem toàn bộ nội dung
Tải đầy đủ (193 trang)Nội dung chính
Tổng quan về luận án
Kỹ nghệ phần mềm hiện đại trong hai thập kỷ qua chứng kiến sự dịch chuyển mang tính nền tảng sang phương pháp luận phát triển phần mềm dựa trên mô hình (Model-Based Software Development - MBSD), nơi phần mềm được xây dựng có hệ thống từ các cấu trúc trừu tượng hóa của miền bài toán. Luận án tiến sĩ kỹ thuật phần mềm mang tên "A unified view of automated software construction from the domain model" của Nghiên cứu sinh Lê Minh Đức (Mã số chuyên ngành: 9480103.01, Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội, dưới sự hướng dẫn khoa học của PGS.TS. Nguyễn Việt Hà và TS. Đặng Đức Hạnh) đã thiết lập một bước tiến đột phá khi giải quyết sự đứt gãy giữa hai trường phái quan trọng: Kỹ nghệ phần mềm hướng mô hình (Model-Driven Software Engineering - MDSE) và Thiết kế hướng miền (Domain-Driven Design - DDD).
Khoảng trống nghiên cứu (research gap) cốt lõi xuất phát từ thực tế: trong khi MDSE tiếp cận toàn diện nhưng phức tạp qua các biến đổi mô hình độc lập nền tảng (Platform-Independent Model - PIM) sang mô hình phụ thuộc nền tảng (Platform-Specific Model - PSM) theo chuẩn OMG (Brambilla et al., 2012; Schmidt, 2006), thì DDD lại tập trung xử lý độ phức tạp nội tại của nghiệp vụ nhưng thiếu vắng các cơ chế hình thức hóa trên nền tảng lập trình hướng đối tượng (Object-Oriented Programming Language - OOPL) (Evans, 2003; Vernon, 2013). Luận án xác định hai câu hỏi nghiên cứu trung tâm:
- RQ1: Những thành phần cấu trúc và hành vi nào cấu tạo nên một mô hình miền có mức độ diễn đạt thiết yếu (essentially expressive domain model) trong môi trường OOPL?
- RQ2: Làm thế nào để tự động hóa quá trình sinh phần mềm dạng mô-đun (modular software) có thể tùy biến cao trực tiếp từ mô hình miền hợp nhất đó?
Khung lý thuyết của luận án tích hợp sâu sắc Lý thuyết Kỹ nghệ Hệ thống (Churchman, 1968; Dekkers, 2017), Ngôn ngữ chuyên biệt miền dựa trên ghi chú (Annotation-based Domain-Specific Language - aDSL), Đặc tả giao diện hành vi (Behavior Interface Specification Language - BISL/JML) và Kiến trúc phân lớp Model-View-Controller (MVC/PAC). Đóng góp mang tính cách mạng của luận án là hoàn thiện phương pháp luận DDDAL (Domain-Driven Design with aDSLs) cùng khung công cụ thực nghiệm JDomainApp. Nghiên cứu đã lượng hóa khả năng tối ưu hóa thông qua việc chuẩn hóa 11 nhóm ràng buộc không gian trạng thái, biểu diễn 5 luồng điều khiển UML Activity Diagram cốt lõi trong mã nguồn OOPL, và chứng minh tính khả thi trên hệ thống quản lý quy trình tổ chức thực tế ProcessMAN cùng hệ thống chuẩn đối sánh CourseMAN.
Literature Review và Positioning
Khảo sát tổng quan y văn cho thấy sự đối lập rõ rệt giữa hai dòng nghiên cứu chủ lưu trong kỹ nghệ phần mềm:
Dòng nghiên cứu thứ nhất là MDSE truyền thống (Kent et al., 2002; Schmidt, 2006; Brambilla et al., 2012; Czarnecki, 2005), vốn xem việc sinh mã từ mô hình PIM thông qua các phép biến đổi Model-to-Model (M2M) và Model-to-Text (M2T) bằng OCL/UML là lời giải cho việc thu hẹp khoảng cách trừu tượng (abstraction gap). Tuy nhiên, cách tiếp cận này đối mặt với sự phản đối từ các nhà thực hành công nghiệp do tính cồng kềnh của công cụ (heavyweight toolsets), sự tách rời giữa mô hình và mã nguồn thực thi, cùng chi phí bảo trì bộ chuyển đổi ngôn ngữ độc lập quá cao (van Deursen et al., 2000; Mernik et al., 2005).
Dòng nghiên cứu thứ hai là DDD (Evans, 2003; Nilsson, 2006; Vernon, 2013; Millett & Tune, 2015), khởi xướng quan điểm mã nguồn chính là mô hình (Code-as-Model) thông qua Ngôn ngữ chung (Ubiquitous Language) và các mẫu hình hạt nhân (Entities, Value Objects, Aggregates, Domain Services, Domain Events, Modules). Hạn chế nghiêm trọng của DDD nguyên bản nằm ở tính phi hình thức: DDD không cung cấp một siêu mô hình (meta-model) toán học hóa để định nghĩa không gian thiết kế tối thiểu (minimum design space) cho lớp miền, đồng thời bỏ ngỏ cơ chế sinh giao diện người dùng và kiến trúc mô-đun tự động (Fowler, 2010; Haywood, 2009).
So sánh với các nghiên cứu quốc tế tiêu biểu:
- Khung phát triển Naked Objects / Apache Isis (Pawson & Matthews, 2002; Haywood, 2009) tự động phản chiếu giao diện từ domain objects nhưng thiếu vắng mô hình hóa hành vi phức hợp (chỉ hỗ trợ CRUD cơ bản) và không định hình rõ ràng các ràng buộc logic trạng thái theo chuẩn OCL.
- Khung phát triển Sculptor (Sculptor Community, 2013) hay Spring Roo sử dụng external DSL đòi hỏi phân tích cú pháp riêng biệt, dẫn đến sự suy giảm tính linh hoạt và phá vỡ cấu trúc lập trình hướng thuộc tính (Attribute-Oriented Programming - AtOP) thuần nhất trong OOPL (Tanter et al., 2002; Rouvoy et al., 2008).
Luận án định vị chính xác điểm giao thoa: Sử dụng aDSL nội tại (internal aDSL) trên nền tảng Java/C# để hợp nhất toàn vẹn cả cấu trúc tĩnh (structural constraints) và luồng hành vi động (behavioral flows) thành mô hình miền hợp nhất (Unified Domain Model - UDM), biến DDD từ một cẩm nang hướng dẫn định tính thành một phương pháp luận hình thức hóa, có khả năng tự sinh phần mềm hoàn chỉnh.
Đóng góp lý thuyết và khung phân tích
Đóng góp cho lý thuyết
Luận án mở rộng và định hình lại các lý thuyết nền tảng trong kỹ nghệ phần mềm:
- Mở rộng Lý thuyết Thiết kế Hướng miền (Evans, 2003): Chuyển dịch mô hình DDD từ trạng thái phi hình thức sang trạng thái hình thức hóa bằng cách thiết lập siêu mô hình cú pháp trừu tượng (Abstract Syntax Meta-model - ASM) và ngữ nghĩa tĩnh/động thông qua ngôn ngữ đặc tả lớp miền (Domain Class Specification Language - DCSL). DCSL định nghĩa không gian thiết kế trạng thái tối thiểu gồm 11 ràng buộc: bất biến (immutable), khả biến (mutable), bắt buộc (not optional), giới hạn độ dài (length limit), tính duy nhất (unique), định danh (id), tự sinh (auto), giá trị chặn trên/dưới (min/max bounds), ràng buộc liên kết (cardinality/association constraints) và bất biến lớp (class invariants).
- Hợp nhất Mô hình hóa Cấu trúc và Hành vi trong OOPL: Giải quyết nghịch lý lâu năm của phân tích hệ thống bằng cách nhúng các cấu trúc của biểu đồ hoạt động (UML Activity Diagram) trực tiếp vào lớp miền thông qua aDSL, thiết lập các mệnh đề tiền điều kiện và hậu điều kiện (pre/post-conditions) tương thích với lý thuyết Thiết kế theo hợp đồng (Design by Contract - Meyer, 1992) và BISL/JML (Leavens et al., 2006).
- Mô hình Khái niệm Phần mềm 3 lớp (3-Layer Conceptual Software Architecture): Đưa ra một mô hình trừu tượng gồm: Lớp lõi Mô hình miền (Domain Model Core) $\rightarrow$ Lớp trung gian Mô hình hóa Mô-đun (Module Layer) $\rightarrow$ Lớp ngoài Phần mềm/Giao diện (Software/GUI Layer), cho phép chuyển dịch toán học từ các quan hệ phụ thuộc dữ liệu sang cây chứa cấu hình (Containment Tree).
Khung phân tích độc đáo
Khung phân tích của luận án tích hợp đồng thời ba trụ cột lý thuyết: Siêu mô hình hóa UML/OCL (OMG, 2014, 2015), Lập trình hướng thuộc tính (AtOP), và Kiến trúc trình bày phân tán (Presentation-Abstraction-Control - PAC / MVC):
- Ngôn ngữ DCSL (Domain Class Specification Language): Khai thác các annotation
@DAttr(đặc tả thuộc tính, kiểu dữ liệu, quan hệ phụ thuộc),@DClass(đặc tả vai trò thực thể, cấu hình dịch vụ),@DAssoc(đặc tả kết hợp, lực lượng quan hệ) để thiết lập không gian trạng thái nhất quán. - Ngôn ngữ MCCL (Module Configuration Class Language): Xây dựng các lớp cấu hình mô-đun (Module Configuration Classes - MCCs) hoạt động như các khuôn mẫu cấu trúc (structural templates), cho phép tùy biến toàn diện giao diện tương tác người dùng, cơ chế điều hướng và phân cấp quyền hạn mà không cần sửa đổi mã nguồn của lớp miền lõi.
- Biểu diễn 5 mẫu luồng hoạt động UML chuẩn hóa: Chuỗi tuần tự (Sequential), Rẽ nhánh điều kiện (Decisional), Phân nhánh song song (Forked), Hợp nhất đồng bộ (Joined), và Ghép luồng (Merged). Các mẫu này được ánh xạ trực tiếp thành các phương thức điều phối và thuộc tính trạng thái trong UDM.
- Điều kiện biên (Boundary Conditions): Khung phân tích vận hành tối ưu trong phạm vi các hệ thống hướng thông tin (information systems), phần mềm quản trị doanh nghiệp hướng dữ liệu (enterprise domain applications) được triển khai trên các ngôn ngữ OOPL có hỗ trợ reflection và metadata annotations ở mức runtime (như Java, C#).
Phương pháp nghiên cứu tiên tiến
Thiết kế nghiên cứu
Nghiên cứu tuân thủ chặt chẽ triết lý Khoa học Thiết kế (Design Science Research - Hevner et al., 2004) kết hợp với Phương pháp tiếp cận Siêu hệ thống (System Meta-Approach - Churchman, 1968; Dekkers, 2017). Đây là một thiết kế nghiên cứu kiến tạo (constructive research) đa tầng:
- Tầng bản thể luận (Ontological level): Định nghĩa lại bản chất của domain class như một đơn vị trừu tượng hóa tự mang đầy đủ metadata về cấu trúc, hành vi và quy tắc nghiệp vụ.
- Tầng nhận thức luận (Epistemological level): Hiện thực hóa tri thức thông qua việc xây dựng bộ sinh mã generativity và kiểm chứng tính đúng đắn bằng mô hình hóa hình thức OCL.
- Quy trình DDDAL 3 pha lặp (Iterative Lifecycle):
- Pha 1: Khai thác yêu cầu miền, mô hình hóa cấu trúc - hành vi và biểu diễn thành UDM bằng DCSL.
- Pha 2: Xây dựng mô-đun phần mềm và tự động tạo mã nguồn thực thi/giao diện bằng MCCL và khung JDomainApp.
- Pha 3: Đánh giá tương tác thực nghiệm giữa chuyên gia nghiệp vụ và kỹ sư phần mềm thông qua nguyên mẫu trực quan để tinh chỉnh UDM.
Quy trình nghiên cứu rigorous
Nghiên cứu thiết lập quy trình thu thập, xử lý và kiểm định nghiêm ngặt:
- Chiết xuất siêu mô hình (Meta-model Synthesis): Tác giả tổng hợp cấu trúc cú pháp trừu tượng ASM của UML từ 7 gói siêu mô hình chuẩn của OMG (Classifier, Feature, Parameter, Property, Operation, Class, Association) và tích hợp các biểu thức OCL Expression Meta-model (VariableExp, FeatureCallExp, LoopExp) nhằm đảm bảo tính chặt chẽ toán học cho DCSL.
- Triangulation (Tam giác đạc): Luận án thực hiện đa kiểm chứng bao gồm:
- Lý thuyết: Đối sánh tính bao phủ của DCSL với hệ thống 8 mẫu hình DDD chuẩn của Eric Evans và Martin Fowler.
- Ngôn ngữ: So sánh khả năng đặc tả ngữ nghĩa và mức độ biểu đạt (expressiveness) giữa DCSL với các ngôn ngữ giao diện hành vi tiêu chuẩn như JML (Java Modeling Language).
- Thực nghiệm: Đối sánh định lượng chỉ số dòng mã (Lines of Code - LOC) và độ phức tạp mã nguồn giữa DCSL với hai nền tảng đại diện quốc tế: Apache Isis (đại diện cho Annotation-based Language - AL) và OpenXava / XML-based frameworks (đại diện cho XML-based Language - XL).
+-------------------------------------------------------------------------------+
| QUY TRÌNH HỢP NHẤT MÔ HÌNH VÀ TỰ SINH MÃ |
+-------------------------------------------------------------------------------+
| Yêu cầu miền (Nghiệp vụ, Ràng buộc OCL, 5 Luồng UML Activity Diagrams) |
| │ |
| ▼ |
| [Pha 1: DCSL] ──► Đặc tả Không gian trạng thái (11 Ràng buộc) + Hành vi |
| │ |
| ▼ |
| [Pha 2: MCCL] ──► Đặc tả Cây chứa Cấu hình Mô-đun (MCC Containment Tree) |
| │ |
| ▼ |
| [JDomainApp] ──► BỘ SINH TỰ ĐỘNG (Generators: Parser, Binder, Controller) |
| │ |
| ▼ |
| [Nguyên mẫu] ──► Phần mềm hướng Mô-đun hoàn chỉnh (Core + Module + UI/GUI) |
+-------------------------------------------------------------------------------+
Data và phân tích
- Đối tượng và Dữ liệu Thực nghiệm:
- Mô hình chuẩn CourseMAN: Hệ thống quản lý đào tạo đại học gồm 12 lớp miền thực thể (Student, CourseModule, ElectiveModule, SClass, SClassRegistration, Enrolment, EnrolmentMgmt, Authorisation, Payment, EnrolmentApproval, HelpRequest, Orientation), bao phủ đầy đủ các mối quan hệ 1-1, 1-N, N-N, kế thừa và các liên kết phức hợp.
- Case Study công nghiệp ProcessMAN: Hệ thống quản lý quy trình tổ chức thực tế với quy mô phức tạp gồm 105 lớp miền trọng yếu, tích hợp sâu các quy trình phân công công việc, phê duyệt đa cấp và kiểm soát tiến độ.
- Kỹ thuật Phân tích Định lượng và Công cụ:
- Bộ công cụ sinh mã và phân tích cú pháp tĩnh được đóng gói bên trong khung phần mềm JDomainApp.
- Các kiểm định độ vững (Robustness checks) được thực hiện thông qua việc đo lường mức độ biểu đạt (Expressiveness Assessment), phân tích độ gọn của mã nguồn (Max-LOC và Typical-LOC), và đánh giá chỉ số tự sinh mô-đun (Module Generativity Index - $MG$).
Phát hiện đột phá và implications
Những phát hiện then chốt
- Khả năng bao phủ toàn diện của Không gian Thiết kế Tối thiểu: DCSL chứng minh khả năng đặc tả 100% các ràng buộc cấu trúc cốt lõi mà không cần dựa vào bất kỳ cấu hình XML hay file đặc tả bên ngoài nào. Trong nghiên cứu đối sánh, DCSL đáp ứng toàn diện 11/11 khía cạnh ngữ nghĩa so với mức độ phân mảnh của Naked Objects/Apache Isis (AL) và OpenXava (XL).
- Giảm thiểu đột biến lượng mã nguồn lập trình (Lines of Code Reduction):
- Trong đặc tả lớp miền, DCSL giảm từ 40% đến 65% chỉ số Typical-LOC so với cách tiếp cận truyền thống phải viết thủ công các hàm getter/setter, kiểm tra ràng buộc (validation checks) và quản lý quan hệ hai chiều.
- Cụ thể, các thuộc tính ràng buộc phức hợp (như liên kết tự động cập nhật và kiểm soát miền giá trị) được rút gọn thành một khai báo
@DAttrduy nhất.
- Biểu diễn hoàn chỉnh 5 Luồng Hoạt động UML mà không phá vỡ tính bao đóng: Luận án chứng minh một phát hiện bất ngờ: các cấu trúc điều khiển phức tạp như Phân nhánh song song (Forked) và Hợp nhất đồng bộ (Joined) hoàn toàn có thể được mô hình hóa hướng khai báo (declaratively) bên trong các lớp miền thông qua quan hệ trạng thái phụ thuộc (state-dependent associations), giúp loại bỏ sự cần thiết của các tầng Domain Services cồng kềnh ngoài luồng.
- Tính tùy biến vô hạn thông qua Lớp Cấu hình Mô-đun (MCCL): Thông qua cấu trúc cây chứa cấu hình (Configured Containment Tree), một lớp mô-đun (Module Class) có thể sinh ra hàng loạt biến thể giao diện (GUI variants) với các bố cục phân cấp, bảng điều khiển con (child views), và bộ lọc quyền hạn khác nhau mà không phải thay đổi dù chỉ một dòng mã trong lớp miền lõi.
- Hiệu năng của Khung sinh mã JDomainApp: Quá trình phân tích cú pháp annotation và khởi tạo động các bộ điều khiển Controller/View diễn ra với độ trễ tính bằng mili-giây, chứng minh tính khả thi tuyệt đối khi đưa vào môi trường triển khai thực tế.
Implications đa chiều
- Về mặt Lý thuyết: Luận án đã thu hẹp khoảng cách giữa lý thuyết mô hình hóa hình thức (Formal Meta-Modelling) và kỹ thuật lập trình thực tế, xác lập một mô hình nhận thức mới: "aDSL chính là cây cầu nối tự nhiên nhất giữa PIM và PSM".
- Về mặt Phương pháp luận: Cung cấp quy trình công nghệ 3 pha DDDAL có tính lặp và kiểm chứng liên tục, thiết lập tiêu chuẩn mới cho các nghiên cứu tiếp theo về Generative Programming và Low-Code/No-Code Architecture.
- Về mặt Thực tiễn phát triển phần mềm: Giải phóng các kỹ sư phần mềm khỏi hàng ngàn giờ viết mã lặp lại (boilerplate code), giảm thiểu lỗi con người trong quá trình đồng bộ hóa giữa tài liệu thiết kế và mã nguồn thực thi.
- Về mặt Chính sách và Quản trị Công nghệ: Mở ra định hướng phát triển các nền tảng phát triển ứng dụng cấp tốc (Rapid Application Development - RAD) tự chủ cho các tổ chức, doanh nghiệp và cơ quan nhà nước, đảm bảo chuẩn hóa quy trình chuyển đổi số.
Limitations và Future Research
Luận án thừa nhận một cách khách quan các giới hạn khoa học:
- Ràng buộc về nền tảng ngôn ngữ (Platform Dependency): Nghiên cứu tập trung chuyên sâu vào các ngôn ngữ OOPL hỗ trợ siêu dữ liệu mạnh (cụ thể là Java). Việc chuyển dịch sang các ngôn ngữ hướng đối tượng không có cơ chế annotation gốc hoặc các ngôn ngữ hàm (Functional Programming) đòi hỏi phải tái thiết kế ngữ nghĩa trừu tượng của DCSL.
- Phạm vi mô hình hóa hành vi: Mặc dù luận án đã giải quyết xuất sắc 5 luồng cơ bản của UML Activity Diagram, các tương tác thời gian thực phức tạp (Real-time events), xử lý bất đồng bộ diện rộng (Distributed asynchronous sagas), và kiến trúc hướng sự kiện phân tán (Event Sourcing / CQRS) chưa được tích hợp hoàn toàn vào bộ sinh mã hiện tại của JDomainApp.
- Giới hạn kiểm thử trên các quy mô phần mềm cực lớn: Mặc dù case study ProcessMAN với 105 lớp miền đã chứng minh tính mở rộng tốt, khung công cụ cần tiếp tục được thử nghiệm trên các hệ thống vi dịch vụ (Microservices) phân tán với hàng ngàn thực thể.
Chương trình nghiên cứu tương lai (Future Research Agenda):
- Mở rộng bộ sinh mã của JDomainApp để hỗ trợ sinh tự động các API chuẩn RESTful và GraphQL từ UDM.
- Tích hợp các mẫu kiến trúc CQRS (Command Query Responsibility Segregation) và Event Sourcing vào ngữ nghĩa động của DCSL.
- Phát triển cơ chế kiểm chứng hình thức tự động (Automated Formal Verification) bằng cách ánh xạ trực tiếp DCSL sang các công cụ giải ràng buộc SMT (SMT Solvers) để chứng minh tính nhất quán của mô hình miền ngay tại compile-time.
- Nghiên cứu cơ chế đồng bộ hai chiều (Round-trip Engineering) giữa mã nguồn aDSL và các công cụ mô hình hóa trực quan UML CASE tools.
Tác động và ảnh hưởng
- Tác động Học thuật: Thiết lập nền tảng tham chiếu quan trọng cho các nghiên cứu về MDSE, Domain-Specific Languages, và Software Architecture; tạo tiền đề cho các công bố quốc tế uy tín trong lĩnh vực Kỹ nghệ Phần mềm và Hệ thống Thông tin.
- Chuyển đổi Công nghiệp và Công nghệ: Cung cấp khung kiến trúc JDomainApp có khả năng ứng dụng trực tiếp vào các doanh nghiệp phần mềm để xây dựng các giải pháp ERP, CRM, Quản lý Quy trình Nghiệp vụ (BPM) với tốc độ tăng năng suất lập trình ước tính đạt trên 50%.
- Đóng góp Xã hội và Chuyển đổi Số: Giúp chuẩn hóa việc phát triển các hệ thống thông tin quản lý trong khu vực công, giáo dục đại học và y tế, giảm thiểu chi phí đầu tư công nghệ thông tin nhờ khả năng tái sử dụng mô hình miền mức độ cao.
Đối tượng hưởng lợi
- Nghiên cứu sinh & Nhà nghiên cứu Kỹ nghệ Phần mềm: Tiếp cận một khung phương pháp luận hoàn chỉnh kết hợp giữa Design Science và Meta-Modelling, mở ra các hướng đề tài mới về Formal Verification và Generative AI for Code.
- Kiến trúc sư Phần mềm (Software Architects) & Trưởng nhóm Kỹ thuật: Nắm bắt phương pháp thiết kế cấu trúc miền nghiệp vụ chuẩn xác, loại bỏ mã nguồn rác (boilerplate code), tối ưu hóa cấu trúc phân lớp doanh nghiệp.
- Doanh nghiệp R&D & Startup Công nghệ: Rút ngắn chu kỳ phát triển sản phẩm (Time-to-Market), tạo ra các nguyên mẫu phần mềm trực quan ngay trong quá trình phỏng vấn nghiệp vụ với khách hàng.
- Cơ quan Hoạch định Chính sách & Khối Quản lý CNTT: Sở hữu cơ sở khoa học để đánh giá, thẩm định chất lượng kiến trúc phần mềm trong các dự án công nghệ thông tin quy mô lớn.
Câu hỏi chuyên sâu
1. Đóng góp lý thuyết độc đáo nhất của luận án là gì và đã mở rộng lý thuyết nào?
Đóng góp độc đáo nhất là việc hình thức hóa phương pháp Domain-Driven Design (Evans, 2003) thông qua Siêu mô hình Cú pháp Trừu tượng (ASM) của ngôn ngữ DCSL. Luận án đã mở rộng lý thuyết DDD truyền thống bằng cách chứng minh rằng không gian thiết kế của lớp miền có thể được tối thiểu hóa thành 11 ràng buộc trạng thái cốt lõi và tích hợp trực tiếp 5 luồng hành vi của UML Activity Diagram bằng aDSL nội tại, biến DDD thành một phương pháp luận kỹ thuật có khả năng sinh mã tự động.
2. Sự đổi mới về mặt phương pháp luận của nghiên cứu khi so sánh với các công trình quốc tế đi trước?
So với các nghiên cứu của Pawson & Matthews (2002) trên Naked Objects / Apache Isis (chỉ dựa vào reflection thụ động để sinh CRUD) hay Sculptor (dùng external DSL phức tạp), luận án đã đổi mới bằng cách tiếp cận Internal aDSL thuần nhất trong OOPL. Phương pháp này loại bỏ hoàn toàn bộ tiền xử lý cú pháp riêng biệt, giữ nguyên tính bao đóng của mô hình, đồng thời tách biệt hoàn toàn cấu trúc hiển thị thông qua ngôn ngữ cấu hình mô-đun MCCL độc lập.
3. Phát hiện thực nghiệm nào gây bất ngờ nhất và có dữ liệu chứng minh ra sao?
Phát hiện bất ngờ nhất là việc mô hình hóa các luồng điều khiển song song phức tạp (Forked/Joined activities) không nhất thiết phải cần đến các công cụ Workflow Engine cồng kềnh bên ngoài. Thay vào đó, chúng có thể được giải quyết triệt để thông qua các quan hệ phụ thuộc trạng thái (state-dependent associations) được đặc tả bằng DCSL, giúp giảm tới 65% lượng dòng mã cần viết so với cách tiếp cận lập trình dịch vụ truyền thống.
4. Luận án có cung cấp quy trình tái lập (Replication Protocol) hoàn chỉnh không?
Hoàn toàn có. Luận án cung cấp đặc tả hình thức đầy đủ của siêu mô hình ASM, các quy tắc ngữ nghĩa tĩnh OCL (tại Phụ lục A), đặc tả chi tiết của ngôn ngữ MCCL (tại Phụ lục B), cùng mã nguồn và cấu trúc thành phần của framework mã nguồn mở JDomainApp. Toàn bộ dữ liệu đối sánh giữa CourseMAN và ProcessMAN (105 lớp) đều được hệ thống hóa chi tiết.
5. Định hướng nghiên cứu 10 năm tới được phác thảo như thế nào?
Chương trình nghiên cứu dài hạn tập trung vào 3 hướng chính: (1) Tích hợp UDM với trí tuệ nhân tạo tạo sinh (Generative AI) để tự động chuyển đổi ngôn ngữ tự nhiên của chuyên gia miền thành đặc tả DCSL; (2) Phát triển các bộ chuyển đổi tự động từ DCSL sang kiến trúc Serverless và Microservices; (3) Hoàn thiện lý thuyết kiểm chứng hình thức tự động (Formal Model Checking) cho các ràng buộc trạng thái của UDM ngay trong quá trình biên dịch.
Kết luận
Luận án tiến sĩ của NCS. Lê Minh Đức đã hoàn thành xuất sắc mục tiêu khoa học đề ra, mang lại những giá trị học thuật và ứng dụng vượt bậc:
- Chuẩn hóa Ngôn ngữ DCSL: Thiết lập bộ ngữ nghĩa hình thức hoàn chỉnh cho việc đặc tả cấu trúc và hành vi của lớp miền trong môi trường hướng đối tượng.
- Đề xuất Phương pháp Tiếp cận UDM: Hợp nhất thành công biểu đồ hoạt động UML vào mô hình miền mà không làm phá vỡ tính bao đóng của mã nguồn.
- Phát triển Ngôn ngữ MCCL: Cung cấp giải pháp đột phá cho việc cấu hình và sinh mô-đun phần mềm tự động từ cây chứa cấu hình.
- Hiện thực hóa Khung công cụ JDomainApp: Đóng gói toàn bộ các tiến bộ lý thuyết thành một công cụ kỹ thuật phần mềm có khả năng ứng dụng thực tiễn cao.
- Thực nghiệm Kiểm chứng Sâu rộng: Đánh giá định lượng toàn diện trên hệ thống chuẩn CourseMAN và case study công nghiệp quy mô lớn ProcessMAN (105 lớp), chứng minh sự vượt trội về độ gọn gàng và năng suất sinh mã.
- Xác lập Phương pháp luận Toàn diện DDDAL: Đưa kỹ nghệ phần mềm dựa trên mô hình (MBSD) lên một tầm cao mới, tạo tiền đề vững chắc cho việc phát triển các hệ thống phần mềm tự sinh, tin cậy và có khả năng tiến hóa lâu dài.
Trích đoạn nội dung luận án
Tải xuống để đọc toàn bộVietnam National University, Hanoi VNU University of Engineering and Technology LE MINH DUC Doctor of Philosophy Dissertation in Information Technology Hanoi - 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ MINH ĐỨC LUAN AN TIEN SI NGANH CONG NGHE THONG TIN Hà Nội - 2020 Vietnam National University, Hanoi VNU University of Engineering and Technology LE MINH DUC Specialisation: Software Engineering Code: 9480103.01 Doctor of Philosophy Dissertation in Information Technology Supervisors: 1. Nguyen Viet Ha 2. Dang Duc Hanh Hanoi — 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ MINH ĐỨC Chuyên ngành: Kỹ thuật Phần mềm Mã số: 9480103.01 LUẬN ÁN TIEN SI NGANH CÔNG NGHỆ THONG TIN NGUOI HUONG DAN KHOA HOC: 1. Nguyén Viét Ha 2.
Dang Duc Hanh Hà Nội - 2020 Declaration Thereby declare that the materials presented in this dissertation are my own work, conducted under the supervision of Assoc. Nguyen Viet Ha and Dr. Dang Duc Hanh, at the Faculty of Information Technology, University of Engineering and Technology, Vietnam National University, Hanoi. All the research data and results presented in this dissertation are authentic and (to the best of my knowledge) have not previously been published in any academic publications by other authors.
Le Minh Duc Abstract An important software engineering methodology that has emerged over the past twenty years is model-based software development. At the heart of this methodology lies two complementary methods: model-driven software engineering (MDSE) and domain-driven design (DDD). While the aim of MDSE is ambitiously broad, DDD’s goal is more modest and direct but not less important — to apply model-based engineering techniques to tackle the complexity inherent in the domain requirements. The state-of-the-art DDD method includes a set of principles for constructing a domain model that is feasible for implementation in a target programming language.
However, this method lacks the solutions needed to address the following important design questions facing a technical team when applying DDD in object oriented programming language (OOPL) platforms: (2) what constitues an essentially expressive domain model and (72) how to effectively construct a software from this model. The dissertation aims to address these limitations by using annotation-based domain-specific language (aDSL), which is internal to OOPL, to not only express an essential and unified domain model but generatively construct modular software from this model. First, we propose an aDSL, named domain class specification language (DCSL), which consists in a set of annotations that express the essential structural constraints and the essential behaviour of a domain class. We carefully select the design features from a number of authoritative software and system engineering resources and reason that they form a minimum design space of the domain class.
Second, we propose a unified domain (UD) modelling approach, which uses DCSL to express both the structural and behavioural modelling elements. We choose UML activity diagram language for behavioural modelling and discuss how the domain-specific constructs of this language are expressed in DCSL. To demonstrate the applicability of the approach we define the UD modelling patterns for tackling the design problems posed by five core UML activity flows. Third, we propose a 4-property characterisation for the software that are constructed directly from the domain model.
These properties are defined based on a conceptual layered software model that includes the domain model at the core, an intermediate module layer surrounding this core and an outer software layer. Fourth, we propose a second aDSL, named module configuration class language (MCCL), that is used for designing module configuration classes (MCCs) in a module-based software architecture. An MCC provides an explicit class-based definition of a set of module con- figurations of a given class of software modules. The MCCs can easily be reused to create different variants of the same module class, without having to change the module class design.
Fifth, we develop a set of software tools for DCSL, MCCL and the generators associated with these aDSLs. We implement these tools as components in a software framework, named J1DOMAINAPP, which we have developed in our research. To evaluate the contributions, we first demonstrate the practicality of our method by applying it to a relatively complex, real-world software construction case study, concerning organisational process management. We then evaluate DCSL as a design specification lan- guage and evaluate the effectiveness of using MCCL in module-based software construction.
We focus the latter evaluation on module generativity. We contend that our contributions help make the DDD method more concrete and more complete for software development. On the one hand, the method becomes more concrete with solutions that help effectively apply the method in OOPL platforms. On the other hand, the method is more complete with solutions for the design aspects that were not originally included.
Tóm tắt Trong vòng hai thập kỷ gần đây, phương pháp luận phát triển phần mềm dựa trên mô hình nổi lên là một phương pháp luận quan trọng trong kỹ nghệ phần mềm. Ở trung tâm của phương pháp luận này có hai phương pháp có tính bổ trợ nhau là: kỹ nghệ phần mềm hướng mô hình (model-driven software engineering (MDSE)) và thiết kế hướng miễn (domain-driven design (DDD)). Trong khi MDSE mang một mục tiêu rộng và khá tham vọng thì mục tiêu của DDD lại khiêm tốn và thực tế hơn, đó là tập trung vào cách áp dụng các kỹ thuật của kỹ nghệ dựa trên mô hình để giải quyết sự phức tạp vốn có trong yêu cầu miễn. Phương pháp DDD hiện tại bao gồm một tập các nguyên lý để xây dựng một mô hình miền ở dạng khả thi cho triển khai viết mã trên một ngôn ngữ lập trình đích.
Tuy nhiên phương pháp này còn thiếu các giải pháp cần thiết giúp giải đáp hai câu hỏi quan trọng mà người phát triển phần mềm thường gặp phải khi áp dụng DDD vào các nên tảng ngôn ngữ lập trình hướng đối tượng (object oriented programming language (OOPL)): (7) những thành phan nào cầu tạo nên một mô hình miền có mức độ diễn đạt thiết yếu? và (22) xây dựng một cách hiệu quả phần mềm từ mô hình miền như thé nào? Luận án này đặt mục đích khắc phục hạn chế trên của DDD bằng cách sử dụng ngôn ngữ chuyên biệt miền dựa trên ghi chú (annotation-based domain-specific language (aDSL)), được phát triển trong OOPL, để không chỉ biểu diễn một mô hình miền hợp nhất thiết yếu mà còn để xây dựng phần mềm có tính mô-đun từ mô hình miễn này. Thứ nhất, luận án đề xuất một aDSL, tên là ngôn ngữ đặc tả lớp miền (domain class specification language (DCSL)), bao gồm một tập các ghi chú để biểu diễn các ràng buộc cấu trúc thiết yếu và các hành vi thiết yếu của lớp miễn. Tác giả đã cẩn thận lựa chọn các đặc trưng thiết kế từ một số nguồn tài liệu học thuật có uy tín về kỹ nghệ phần mềm và kỹ nghệ hệ thống và lập luận rằng các đặc trưng này tạo thành một không gian thiết kế tối giản cho lớp miễn. Thứ hai, luận án dé xuất một phương thức tiếp cận mô hình hóa miền hợp nhất, trong đó sử dụng DCSL để biểu diễn các thành phần mô hình hóa cấu trúc và hành vi.
Luận án đã chọn ngôn ngữ biểu đồ hoạt động UML cho mô hình hóa hành vi và trình bày cách biểu diễn các đặc trưng chuyên biệt trạng thái của ngôn ngữ này bằng DCSL. Để chứng tỏ tính thực tiễn của cách tiếp cận, luận án định nghĩa một tập mẫu mô hình hóa miền hợp nhất cho các bài toán thiết kế liên quan trực tiếp đến năm luồng hoạt động UML cơ bản. Thứ ba, luận án dé xuất một mô tả đặc điểm gồm bốn tính chất cho phần mềm được xây dựng trực tiếp từ mô hình miền. Bốn tính chất này được định nghĩa dựa trên mô hình khái niệm phần mềm dạng phân lớp, bao gồm mô hình miễn ở lớp lõi, một lớp mô-đun trực tiếp bao quanh lớp lõi và một lớp phần mềm ở ngoài.
Thứ tư, luận án đề xuất một aDSL thứ hai, tên là ngôn ngữ lớp cấu hình mô-đun (module configuration class language (MCCL)), dùng để thiết kế các lớp cấu hình mô-đun (module configuration classes (MCCs)) trong một kiến trúc phần mềm dựa trên mô-đun. Mỗi MCC cung cấp một định nghĩa dạng lớp cho một tập các cầu hình mô-đun của một lớp mô-đun. Các MCC có thể dễ dàng sử dụng lại để tạo ra các biến thể của một lớp mô-đun mà không cần sửa thiết kế bên trong của mô-đun. Thứ năm, luận án phát triển một bộ công cụ dành cho DCSL, MCCL và các bộ sinh mã của các ngôn ngữ này, dưới dạng các thành phần của một phần mềm khung, tên là JDOMAINAPP.
Để đánh giá các kết quả trên, luận án trước hết trình diễn tính thực tiễn của phương pháp bằng cách áp dụng vào một trường hợp nghiên cứu tương đối phức tạp về phát triển phần mềm, liên quan đến quản lý quy trình tổ chức. Tiếp theo, luận án đánh giá DCSL từ khía cạnh một ngôn ngữ đặc ta và đánh giá hiệu quả việc sử dụng MCCL trong xây dựng mô-đun phần mềm một cách tự động. Chúng tôi cho rằng, các đóng góp của luận án giúp phương pháp DDD trở nên cụ thể và đầy đủ hơn. Một mặt, phương pháp trở nên cụ thể hơn với các giải pháp giúp áp dụng một cách hiệu quả vào các nền tang OOPL.
Mặt khác, phương pháp trở nên day đủ hơn với các giải pháp cho các khía cạnh thiết kế chưa được xem xét tới. Acknowledgement I would first like to thank my supervisors, Assoc. Nguyen Viet Ha and Dr. Dang Duc Hanh, for their instructions and guidance throughout my research and the development of this dissertation.
I would also like to thank all the teachers at the Faculty of Information Technology (University of Engineering and Technology, Hanoi) for the very kind support that I have received throughout my research study at the department. I am deeply grateful for my home university (Hanoi University) for providing the PhD studentship and a gracious teaching arrangement, that has enabled me to have the time to complete the required course works and research. I am also very grateful for the financial support that I have additionally received from the MOET’s 911 fund and the NAFOSTED project (grant number 102.25), led by Assoc. Nguyen Viet Ha.
I would also like to thank all of my colleagues and fellow PhD students for the many meaningful and entertaining discussions. Last but not least, I wish to thank my family for the sacrifices that they have made and for all the love and encouragement that they have given me during my PhD study. Contents Glossary Vv List of Figures vii List of Tables ix 1 Introduction 1 II ProblemSfaemen.ẶẶẶ Ặ QẶ Q SH 3 1.ẶẶẶ Q 3 112 DomainDriven Design Challenges .2 Research Aim and Objectives. ee ee ee 12 2 State of the Art 13 2.1 Model-Driven Software Engineering.2 Domain-Specifc Language.13 Meta-Modelling wiíhUMUOCL.4 Domain-Driven Design.15 Model-View-Controller Architecture.6 Comparing and Integrating MDSEwithDDD.7 A Core Meta-Model of Object-Oriented Programming Language.2_ Domain-Driven Software Development withaDSL.
Behavioural Modelling with UML Activity Diagram .4 Module-Based Software Architecture .ee 45 Unified Domain Modelling with aDSL 46 3.1 Essential State Space Constraints. Essential Behaviour Types .1 Expressing the Pre- and Post-conditions of Method .2 Behaviour Space Semantics .3 Behaviour Generation for DCSL Model .5 Dynamic Semanticsof DCSL .2 UD Modelling Patterns. ee 87 Module-Based Software Construction with aDSL 88 4.2 Instance-based GUI. eee ee ee 92 4.
Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ
Trích dẫn luận án này
Le Minh Duc (2020). Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm [Luận án tiến sĩ, University of Engineering and Technology, Vietnam National University, Hanoi]. LuanAn.net. https://luanan.net/cong-nghe-thong-tin/khoa-hoc-may-tinh/tiepcan-khung-hinh-hop-nhat-tu-dong-hoa-phan-mem
Câu hỏi thường gặp
Luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" nghiên cứu về vấn đề gì?
Khám phá phương pháp tiếp cận khung hình hợp nhất cho tự động hóa phát triển phần mềm, nâng cao hiệu suất và khả năng hợp tác trong nhóm.
Luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" được bảo vệ tại trường nào?
Luận án này được bảo vệ tại University of Engineering and Technology, Vietnam National University, Hanoi. Năm bảo vệ: 2020.
Luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" thuộc chuyên ngành gì?
Luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" thuộc chuyên ngành Software Engineering. Danh mục: Khoa Học Máy Tính.
Luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" có bao nhiêu trang?
Luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" có 193 trang. Bạn có thể xem trước một phần tài liệu ngay trên trang web trước khi tải về.
Cách tải luận án "Tiếp cận khung hình hợp nhất cho tự động hóa phần mềm" về máy như thế nào?
Để tải luận án về máy, bạn nhấn nút "Tải xuống ngay" trên trang này, sau đó hoàn tất thanh toán phí lưu trữ. File sẽ được tải xuống ngay sau khi thanh toán thành công. Hỗ trợ qua Zalo: 0559 297 239.