Chương 6 Kết luận
5.17 Minh họa văn phạm của hệ thống
Dựa trên đặc tả hệ thống, một hệ thống thời gian thực được đặc tả một cách đầy đủ gồm các thành phần phần mềm với các yếu tố như tập thuộc tính, tập phương thức, các bất biến, v.v. Kết hợp với việc tích hợp mã nguồn cùng với đặc tả làm cho việc phát triển hệ thống hồn tồn đảm bảo được tính đúng đắn và tốc độ triển khai nhanh. Đặc biệt, có thể áp dụng kỹ thuật này để tự động hóa một số giai đoạn trong q trình phát triển hệ thống thời gian thực như giai đoạn triển khai. Việc kiểm thử phần mềm khơng chỉ nhằm mục đích phát hiện lỗi mà chuyển thành việc khẳng định phần mềm có thỏa yêu cầu hệ thống hay không.
5.5 Tổng kết chương
Trong chương này, luận án trình bày kỹ thuật đặc tả thành phần phần mềm thời gian thực bằng hợp đồng thời gian và mở rộng cho đặc tả phi chức năng trên hai khía cạnh gồm (i) bổ sung đặc tả phi chức năng cho thiết kế thời gian trở thành thiết kế thời gian-tài nguyên và (ii) bổ sung ràng buộc phi chức năng vào hợp đồng thời gian để trở thành hợp đồng thời gian-tài nguyên nhằm lập luận khả năng sử dụng tài nguyên của hệ thống cần phát triển. Với sự đóng góp hệ thống lý thuyết trong chương này, khi phát triển hệ thống thời gian thực, các yếu tố chức năng và phi chức năng được xem xét một cách đầy đủ nhằm có sự phân tích, đánh giá tồn bộ các yếu tố trước khi triển khai phần mềm. Một số đóng góp được tóm tắt trong các mục sau:
Mơ hình này cho phép phân tích và lập luận các yếu tố ràng buộc của các thành phần chức năng và phi chức năng dựa trên đặc tả của các thành phần phần mềm.
Mơ hình dễ dàng được mở rộng để điều khiển nhiều loại hệ thống khác nhau có cả ràng buộc thời gian cũng như các hệ thống không ràng buộc thời gian. Đồng thời, hệ thống cũng cho phép mở rộng cho phù hợp với một số mơ hình như hệ thống nhúng, tác tử di động và điều khiển các thuộc tính phi chức năng của thành phần chẳng hạn như chất lượng dịch vụ và một số loại tài nguyên như bộ nhớ trong, hiệu năng CPU, năng lượng, v.v.
Cách tiếp cận lý thuyết trong chương này phản ánh đầy đủ hai khía cạnh trong kỹ thuật phát triển phần mềm thời gian thực, và cho phép phân tích đánh giá các yếu tố khác nhau trong quá trình phát triển hệ thống. Dựa trên lý thuyết này, hệ thống được phát triển giảm thiểu rủi ro, chi phí cho bảo trì và có chất lượng tốt. Phần lý thuyết trong chương này dựa trên các nghiên cứu được công bố trong các hội nghị “4th EAI International Conference on Context-Aware Systems and Applications (ICCASA 2015)”, “Hội nghị NAFOSTED Conference on Information and Computer Science (NICS 2017)” và “Hội thảo Khoa học Quốc gia Công nghệ Thông tin và Ứng dụng trong các lĩnh vực lần thứ 6 (CITA 2017). Dù các nghiên cứu được trình bày trong chương này là một giải pháp tốt cho đặc tả và kiểm chứng hệ thống thời gian thực dựa trên thành phần. Tuy nhiên, vẫn còn một số hạn chế chưa được khắc phục như chưa xây dựng được công cụ để kiểm tra lý thuyết đã đề xuất, chưa triển khai ngôn ngữ đặc tả
thời gian thực mẫu cho ngơn ngữ lập trình Java, C/C++, v.v. Do đó, hướng nghiên cứu tiếp theo luận án sẽ tiến hành cài đặt công cụ. Công cụ này cho phép sử dụng ngôn ngữ đặc tả thời gian thực mẫu để đặc tả các thành phần và hỗ trợ cho ngơn ngữ lập trình Java hoặc C/C++, v.v.
CHƯƠNG 6
Kết luận
Qua các chương đã trình bày trong luận án, chương này luận án tổng kết các kết quả đạt được cũng như đưa ra các hạn chế chưa giải quyết được và hướng phát triển tiếp theo.
6.1 Các kết quả đạt được
Các nghiên cứu trong luận án được trình bày trong ba chương chính gồm Chương 3, Chương4 và Chương 5. Cụ thể, luận án đã phát triển mơ hình phần
mềm thời gian thực dựa trên sự cải tiến mơ hình PECOS. Mơ hình này có thể áp dụng cho nhiều hệ thống thời gian thực có nền tảng phân cứng khác nhau gồm các thể thức tương tác của các thành phần phần mềm đã được chứng minh chặt chẽ, các thành phần phần mềm thời gian thực được đặc tả bằng các hợp đồng thời gian và hợp đồng thời gian có ràng buộc tài ngun. Do đó, tính đúng đắn của hệ thống thể hiện qua phương pháp phát triển nên các thành phần phần mềm. Từng phần yêu cầu của môi trường hệ thống được đảm bảo bằng các ràng buộc bất biến. Các ràng buộc này được biểu diễn bằng cơng thức logic thời gian tuyến tính. Mơ hình hệ thống cho phép phân tích đầy đủ các yếu tố chức năng cũng như phi chức năng trong thành phần phần mềm thời gian thực. Đặc tính của mơ hình được trình bày trong Chương 3.
Để mơ hình hóa các chuỗi hành vi của thành phần phần mềm thời gian thực, luận án đã đề xuất thể thức tương tác tương tranh thời gian để đặc tả chuỗi hành vi của thành phần phần mềm và sử dụng ơtơmát thời gian để mơ hình hóa các hành vi của mơi trường. Để phân tích đánh giá các yếu tố phi chức năng, luận án bổ sung đặc tả thành phần này vào thể thức tương tác. Do đó,
thể thức tương tác này có thể đặc tả đầy đủ các thành phần chức năng và phi chức năng được sử dụng trong thành phần phần mềm thời gian thực. Luận án cũng chỉ ra rằng bài toán kiểm tra liệu một ơtơmát thời gian hoặc ơtơmát trọng số là mơ hình của mơi trường có tn thủ thể thức tương tác thời gian và thể thức tương tác thời gian với ràng buộc tài nguyên đã cho là quyết định được, và đã phát triển các thuật toán để giải quyết bài toán này. Độ phức tạp của thuật toán tỉ lệ thuận với kích thước của đồ thị vùng của ơtơmát thời gian và ơtơmát trọng số. Nội dung kiến thức này được trình bày trong Chương 3.
Luận án cũng mở rộng lý thuyết giao diện thành phần bằng cách bổ sung ràng buộc thời gian vào quan hệ đầu vào/đầu ra để đặc tả và mơ hình hóa thành phần thời gian thực. Kỹ thuật phát triển phần mềm này dựa trên các phép ghép, phép làm min và phép cắm các thành phần phần mềm để phát triển hệ thống. Trong quá trình ghép các thành phần, tính đúng đắn của hệ thống được kiểm chứng từng phần thay vì kiểm chứng tồn bộ hệ thống. Do đó, phương pháp này có thể áp dụng ngay trong giai đoạn đầu của quá trình phát triển hệ thống. Do thành phần phần mềm được coi như là một “hộp đen” nên việc kiểm tra tính đúng đắn của bộ kết quả đầu ra của thành phần phần mềm thỏa yêu cầu thiết kế gặp nhiều khó khăn. Giao diện thời gian thực trong chương này được đặc tả bằng tập biến đầu vào/đầu ra, mối quan hệ giữa đầu vào/đầu ra và ràng buộc thời gian nhằm đảm bảo rằng môi trường hệ thống gán một bộ giá trị trên tập biến đầu vào của giao diện thì giao diện sẽ đảm bảo tập kết quả đầu ra thỏa mãn yêu cầu của môi trường trong khoảng thời gian theo thiết kế. Một hệ thống thời gian thực sẽ được phát triển bằng cách ghép dần các thành phần phần mềm. Trong quá trình ghép, pha kiểm chứng được thực hiện ngay khi ghép các giao diện thành phần, chỉ những giao diện nào được kiểm chứng thành cơng thì thành phần phần mềm của nó mới được ghép vào hệ thống. Trên cơ sở đó, hệ thống phần mềm thời gian thực được phát triển thông qua các phép ghép, phép cắm giao diện và tính đúng đắn của hệ thống cũng được bảo tồn nhờ tiếp cận bằng phương pháp toán học. Cũng dựa trên kỹ thuật này, sự phân tích, đánh giá các khía cạnh khác nhau của thành phần phần mềm như tính chất làm mịn, phép ghép song song, nối tiếp, tính chất dùng chung sự làm mịn, v.v. cũng được giải quyết. Nội dung nghiên cứu này được trình bày trong Chương 4.
Luận án áp dụng cách tiếp cận tính đúng đắn bởi cách xây dựng (cor- rectness by construction) và thiết kế bằng hợp đồng (design by contract) để đề xuất kỹ thuật đặc tả thành phần phần mềm bằng hợp đồng thời gian và hợp
đồng thời gian với các ràng buộc tài nguyên nhằm phân tích và đánh giá đầy đủ các tính chất của thành phần phần mềm trên hai khía cạnh chức năng và phi chức năng. Do đó, thành phần phần mềm thời gian thực được thiết kế sẽ được xem xét một cách đầy đủ. Nội dung của đong góp này được trình bày trong các Chương 5. Luận án cũng đề xuất ngôn ngữ đặc tả thời gian thực mẫu nhằm hợp
nhất các ngôn ngữ đặc tả thời gian thực với đầy đủ tính năng đặc tả về phần chức năng và phi chức năng cho thành phần phần mềm.
Tất cả các đóng góp trong luận án hướng đến việc tìm ra những kỹ thuật phân tích, đánh giá và kiểm chứng hệ thống thời gian thực dựa trên thành phần. Những đóng góp của luận án được thể hiện trên năm khía cạnh khác nhau trong q trình phát triển phần mềm thời gian thực gồm mở rộng mơ hình PECOS cho thành phần phần mềm thời gian thực, đề xuất thể thức tương tác tương tranh thời gian thực với các ràng buộc chức năng và phi chức năng, đặc tả thành phần phần mềm thời gian thực bằng lý thuyết giao diện thành phần thời gian và lý thuyết hợp đồng thời gian, và mở rộng ngôn ngữ đặc tả cho việc đặc tả thành phần thời gian thực trên hai khía cạnh chức năng và phi chức năng.
6.2 Hướng phát triển tiếp theo
Luận án đã trình bày các đóng góp cụ thể trong Phần 6.1. Tuy nhiên, kết
quả của luận án vẫn còn một số hạn chế cần giải quyết. Dưới đây luận án tóm tắt một số vấn đề có thể nghiên cứu trong tương lai.
Trong đóng góp thứ nhất, luận án đã nghiên cứu và mở rộng mơ hình thành phần phần mềm cho hệ thống thời gian thực. Mơ hình này có thể áp dụng trong việc phát triển các hệ thống trên nhiều nền tảng khác nhau như hệ thống thời gian thực, hệ thống nhúng, hệ thống tác tử di động và triển khai cho các dịch vụ Web trên cơ sở các thể thức tương tác tương tranh thời gian có ràng buộc tài nguyên. Tuy nhiên, cần mở rộng mơ hình theo hướng có thể tích hợp với những mơ hình đã có như hỗ trợ UML, các mơ hình sử dụng BPEL, JML, v.v. Bên cạnh đó, cần phát triển bộ khung phát triển phần mềm trong đó hỗ trợ ngơn ngữ đặc tả thời gian thực mẫu, có các chức năng tìm kiếm các đặc tả sao cho có thể ghép được với nhau theo các phép toán đã đề xuất trong luận án và phát triển các chức năng cho phép kiểm chứng sự tuân thủ các chuỗi hành vi của môi trường đối với thể thức tương tác thời gian thực của thành phần phần mềm.
Trong đóng góp thứ hai, luận án đã đề xuất kỹ thuật đặc tả và mơ hình hóa thành phần phần mềm thời gian thực bằng lý thuyết giao diện thời gian thực có quan hệ đầu vào đầu ra. Tuy nhiên, khoảng trống giữa lý thuyết giao diện thành phần, Assume/Guarantee và lý thuyết hợp đồng cần được nghiên cứu để phân tích đánh giá ưu nhược điểm khi sử dụng các lý thuyết này áp dụng vào phát triển phần mềm. Để ứng dụng lý thuyết vào thực tế, luận án cần phát triển thêm một số thuật tốn kiểm tra tính cắm được của hệ thống, kiểm tra tính chất làm mịn cũng như kiểm tra được các phép ghép trong lý thuyết giao diện này.
Trong đóng góp thứ ba, luận án đã đề xuất kỹ thuật đặc tả hệ thống thời gian thực dựa trên thành phần bằng lý thuyết hợp đồng thời gian thực trên hai khía cạnh chức năng và phi chức năng. Tuy nhiên, chưa có một cơng cụ nào để có thể áp dụng lý thuyết này nên công việc tiếp theo cần phát triển bộ công cụ phát triển phần mềm cho hệ thống thời gian thực dựa trên lý thuyết đã đề xuất. Việc đặc tả hệ thống thời gian thực ở mức trừu tượng cao làm giảm phần lớn các công việc trong giai đoạn đầu phát triển phần mềm, nhưng lại đòi hỏi những người làm trong lĩnh vực này có chun mơn cao. Do đó, Luận án cần mở rộng ngơn ngữ thời gian thực mẫu để có thể tích hợp với các ngơn ngữ lập trình đã có như C/C++, Java, v.v. Trên cơ sở đó có thể phát triển phần mềm cho hệ thống thời gian thực và những hệ thống tương thích. Ngồi ra, các nghiên cứu tiếp theo tập trung vào tự động hóa các bước trong q trình phát triển phần mềm từ giai đoạn đầu của dự án.
Trên cơ sở các nghiên cứu trong luận án, Hướng tiếp theo luận án xây dựng bộ công cụ hỗ trợ cho các phương pháp đã đề xuất và áp dụng công cụ này trong thực tế nhằm minh chứng cho tính hiệu quả của các kết quả của luận án. Đây là một hướng nghiên cứu và cũng là một thách thức lớn nhằm đưa các phương pháp đề xuất trở thành những đóng góp thiết thực trong lĩnh vực phát triển phần mềm nói chung và phần mềm thời gian thực dựa trên thành phần nói riêng.
DANH MỤC CÁC CƠNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN
1. Nguyen Trinh Dong, Dang Van Hung and Truong Anh Hoang (2011),“Real-Time Relational Interface Behavior Modeling and Specifica- tion”, KSE 2011-Third International Conference on Knowledge and Sys- tems Engineering, pp.112-119.
2. Nguyen Trinh Dong (2015), “Memory Resource Estimation of Component- Based Systems”, 4th International Conference, ICCASA 2015, Vung Tau, Vietnam, November 26-27, pages 73-82.
3. Dang Van Hung, Nguyen Trinh Dong and Truong Anh Hoang (2017), “A Model for Real-timed Concurrent Interaction Protocols in Component In- terfaces”,VNU Journal of Science: Computer Science and Communication Engineering, vol.33, no.1 , pages 8-15.
4. Nguyen Trinh Dong, Dang Van Hung, Truong Anh Hoang (2017),“A for- mal contract-based model for component-based real-time systems”, NICS 2017 - 4th National Foundation for Science and Technology Development Conference on Information and Computer Science (NICS), pages 230-235.
5. Nguyen Trinh Dong (2017), “A General Model for Quality Analyzing of Functional and Non-functional Features in Real-Time Systems”, The 6th Conference on Information Technology and Its application, (CITA 2017),
pages 15-22.
Tài liệu tham khảo
[1] C. Baier and J.-P. Katoen, Principles of Model Checking (Representation and Mind Series). The MIT Press, 2008.
[2] D. A. Peled, Software Reliability Methods. Texts in Computer Science,
Springer, 2001.
[3] E. M. Clarke, Jr., O. Grumberg, and D. A. Peled, Model Checking. Cam-
bridge, MA, USA: MIT Press, 1999.
[4] C. Green, “Application of theorem proving to problem solving,” inProceed- ings of the 1st International Joint Conference on Artificial Intelligence,
IJCAI’69, (San Francisco, CA, USA), pp. 219–239, Morgan Kaufmann Publishers Inc., 1969.
[5] R. Alur and D. L. Dill, “A theory of timed automata,” Theor. Comput. Sci., vol. 126, pp. 183–235, Apr. 1994.
[6] R. Koymans, “Specifying real-time properties with metric temporal logic,”
Real-Time Syst., vol. 2, pp. 255–299, Oct. 1990.
[7] O. Maler, D. Nickovic, and A. Pnueli, “From mitl to timed automata,” in
Formal Modeling and Analysis of Timed Systems(E. Asarin and P. Bouyer, eds.), vol. 4202 of Lecture Notes in Computer Science, pp. 274–289,
Springer Berlin Heidelberg, 2006.
[8] T. Vale, I. Crnkovic, E. S. de Almeida, P. A. da Mota Silveira Neto, Y. C. Cavalcanti, and S. R. de Lemos Meira, “Twenty-eight years of component- based software engineering,” Journal of Systems and Software, vol. 111,
[9] C. Szyperski,Component Software: Beyond Object-Oriented Programming.
Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2nd ed., 2002.
[10] M. Bertrand, “The grand challenge of trusted components,” inProceedings of the 25th International Conference on Software Engineering, ICSE ’03,
(Washington, DC, USA), pp. 660–667, IEEE Computer Society, 2003. [11] G. T. Heineman and W. T. Councill, eds., Component-based Software En-
gineering: Putting the Pieces Together. Boston, MA, USA: Addison-Wesley
Longman Publishing Co., Inc., 2001.