Ngôn ngữ mô hình hoá thống nhất UML và ngôn ngữ đặc tả SDL
Một câu nói mà những nhà thiết kế phần mềm luôn tâm niệm đó la: "Một bức tranh bằng trăm nghìn lời nói", điều này giông như việc mó hình hoá. ở đáy tói xin được trình bày về ngôn ngừ mô hình hoá thống nhất UML (Unified Modeling Language), một ngôn ngừ mà ngày nay dang được sử dụng rất nhiều trong công nghiệp phần mềm và so sánh nó với một ngôn ngừ đặc tả trước đó là ngôn ngữ SDL (Specification and Description Language).
1. NGÔN NGỮ UML (UNIFIED MODELING LANGUAGE)
UML la ngôn ngừ mô hình dê thực hiện mọi chức năng của hoạt dộng làm phẩn mềm: Làm trực quan hoá (visualizing), dặc tả (specifying), xây dựng (constructing), ỉàm tài liệu (documenting) cho thiết kế phần mềm [2]. Như vậy, UML về cơ bản định nghĩa một siêu mó hình và khồng mô tả "kỹ thuật phát triển".
Tóm tắt nội dung tài liệu: Ngôn ngữ mô hình hoá thống nhất UML và ngôn ngữ đặc tả SDL
NGÔN NGỮ MÕ HÌNH HOÁ THÒNG NHẤT UML VÀ NGÔN NGỮ ĐẶC TẢ SDL Trịnh Thị Thuý Giang Trường Đại học Khoa học Tự nhiên Một câu nói mà những nhà thiết kế phần mềm luôn tâm niệm đó la: "Một bức tranh bằng trăm nghìn lời nói", điều này giông như việc mó hình hoá. ở đáy tói xin được trình bày về ngôn ngừ mô hình hoá thống nhất UML (Unified Modeling Language), một ngôn ngừ mà ngày nay dang được sử dụng rất nhiều trong công nghiệp phần mềm và so sánh nó với một ngôn ngừ đặc tả trước đó là ngôn ngữ SDL (Specification and Description Language). NGÔN NGỮ UML (UNIFIED MODELING LANGUAGE) UML la ngôn ngừ mô hình dê thực hiện mọi chức năng của hoạt dộng làm phẩn mềm: Làm trực quan hoá (visualizing), dặc tả (specifying), xây dựng (constructing), ỉàm tài liệu (documenting) cho thiết kế phần mềm [2]. Như vậy, UML về cơ bản định nghĩa một siêu mó hình và khồng mô tả "kỹ thuật phát triển". UML trợ giúp cho cả 5 giai đoạn trong phát triển hệ thông: Phân tích yêu càu, Phân tích, Thiết kế, Lập trình, Kiêm thử. Một lợi thế rất lớn trong UML là nó có các View chỉ ra các khía cạnh khác nhau của hệ thống được mô hình. Một view không phải là một mô tả đồ họa mà nó bao gồm một số các biểu đồ trừu tượng. Tổng hợp tất cả các View cho chúng ta một cái nhìn tổng quan về hệ thống. Trong UML có 5 loại View: use case view, design view, process view, implementation view, deployment view [3]. Uses case view bao gồm các use case mổ tả hành vi của hệ thống dược xem bởi các user của nó, phân tích và kiểm thử. View này không 154 chỉ rò tô’ chức của một hệ thống phần mềm. Trong ƯML khía cạnh tĩnh của View này thê hiện trong các biêu đồ use case còn khía cạnh động thê hiện trong các biểu đồ tương tác, biêu đồ statechart và các biêu đổ hoạt động. Design view bao gồm các lớp, các giao diện và các cộng tác. View này chủ yếu trợ giúp cho các yêu cầu chức năng của hệ thống, có nghĩa là các dịch vụ mà hệ thống sè cung cấp cho các user của nó. Với ƯML mặt tĩnh của View này thể hiện trọng các biêu đồ lớp và biêu đồ đối tượng; mặt động thê’ hiện trong các biểu đồ tương tác, biêu đồ trạng thái và biêu đồ hoạt động. Process view bao gồm các dòng (thread) và các tiến trình (process), trong đó có các cơ chế tương tranh và động bộ của hệ thống. View này chủ yếu nhàm vào sự thực hiện, khả năng và các tiến trình của hệ thông. Implementation view bao gồm các thành phần và các file mà dược sử dụng đế tập hợp và đưa ra hệ thống vật lý. View này chủ yếu tập trung vào việc quản lý câu hình của hệ thống đưa ra. Deployment view bao gồm các node mô tả yêu cầu phần cứng khi hệ thống thực hiện. Nó chỉ ra việc triển khai hệ thống trong 1 kiến trúc vật lý có dùng máy tính và các thiết bị (các nứt). Nói cách khác là nó mô tả việc triển khai vật lý của hệ thống. View này dành cho người phát triển, tích hợp và kiểm thử. Một mô hình trong UML bao gồm một số các VIEW mô tả các khía cạnh khác nhau của hệ thôhg. Chỉ cần kết hợp các VIEW chúng ta có thê’ tạo được một bức tranh toàn cảnh của hệ thông. Một VIEW không phải là dồ thị, các nội dung của nó là được mồ tả bằng các biểu đồ kết hợp (combining) các phần tử mô hình: Lớp, đối tượng, nút, thành phần và các mối quan hệ [4]. NGÔN NGỮ ĐẶC TẢ SDL CHưẨn của ISO SDL (Specification and Description Language) được xây dựng dựa trên cơ chế nhãn dịch chuyên; các công cụ của SDL bắt buộc cả người sử dụng và người thiết kế trở lên hình thức hơn. SDL phù hợp cho việc nhận biết các lỗi và khả năng làm cho các mô hình trở lên sông động và giúp cho việc trả lời cấu hỏi: "What if?" |5]. SDL được sử dụng khá rộng rãi trong truyền thông công cộng và nó trợ giúp rất tốt cho các hệ thống này nhờ bộ công cụ đa dạng, ngoài ra SDL còn có nhiều giá trị về mặt thương mại. Mặc dù tên SDL ngụ ý sử dụng cho đặc tả và mô tả, nhưng SDL ngày này đã được sử dụng rộng rãi cho các mục tiêu khác như là thiết kế, lập trình ở mức cao với nhiệm vụ phức tạp hoặc phân tán như: Truyền thông vệ tinh, hàng không, thiết bị y tế, hệ thống điều khiên xe lửa, các giao thức truyền thông trong các ô tô,... SDL có hai cách mô tả: Mô tả đồ hoạ được gọi là GR (Graphical Representation) và mô tả văn bản gọi là PR (Phrase Representation). SDL cho phép chuyển đổi tự động và thay thế lẫn nhau giừa PR và GR. Một hệ thông SDL bao gồm các thành phần sau: Cấu trúc (structure): system, block, process, và các thủ tục. Sự truyền thông (communication): các tín hiệu với các tham số tín hiệu lựa chọn và các kênh (channel) hoặc các đường truyền tín hiệu (signal route). Hành vi (behavior): các tiến trình (process) Dữ liệu (data): các dạng dừ liệu trừu tượng (ADTs) Sự kê'thừa (Inheritance): mô tả các mối quan hệ và đặc tả. SO SẢNH GIỮA ƯML VÀ SDL Đê so sánh giữa ƯML và SDL ở đây tôi tập trung vào các vân đề chính sau: Giống nhau: Các hành vi (cấu trúc động): ƯML và SDL đều dựa trên cơ chế trạng thái nhàn dịch chuyển. ƯML có biểu đồ trạng thái, SDL có máy trạng thái hữu hạn. Các cấu trúc tỉnh: UML có các hệ thống con, các lớp và các liên kết; SDL có các khới, các tiến trình và các kênh. ƯML có biểu đồ tuần tự; SDL có MSC (Message Sequence Chart) Khác nhau: Trong SDL, khái niệm hệ thông là trung tâm; Trong ƯML không có khái niệm hệ thống. Chỉ có các lớp và các liên kết giửa chúng. Câu trúc đối tượng có thể được mô tả nhưng chỉ với mục tiêu là rõ. ƯML có 5 view thể hiện các khía cạnh khác nhau của hệ 'thống, tạo nên một bức tranh toàn cảnh của hệ thống cần xây dựng, do vậy không có khái niệm hệ thống tồn tại trong ƯML. Có thể coi SDL chỉ có 1 view, khi xây dựng hệ thống với SDL nó nhìn toàn bộ hệ thống một cách bao quát trên một khía cạnh nào đó. ƯML có tính mà với nghĩa: UML có thê mở rộng cho mọi cồng ty có thê xây dựng cáĩ? bộ công cụ riêng cho mình dựa trên các khái niệm của^UML. Tuỳ thuộc vào yêu cầu của mình họ có thể xây dựng một ngôn ngừ tuân theo các khái niệm của UML. Với SDL thì tính mở yếu hơn, nó không được dùng phổ biến đê’ xây dựng cho mọi hệ thông phần mềm, mà phần lớn nó chỉ được áp dụng trong các hệ thống phân tán, các hệ thống truyền thông, hệ thông thời gian thực. Trong SDL, một* tác nhân có thể được làm từ một câu trúc phức tạp của các tác nhân khác và từ đó có thê định nghĩa một dạng tác nhân ghép. Trong trường hợp này, một kiểu ghép có thê’ được định nghĩa và sử dụng như một phần tử với giao diện định nghĩa tốt. ƯML thiếu một khái niệm tương ứng với các kiểu ghép. Sự ghép này là một liên kết đặc biệt giừa các lớp trong UML. Trong SDL, sự tương tranh và truyền thông không đồng bộ giừa các tác nhân là một quy tắc. Các máy trạng thái định nghĩa dãy các hành vi của các tác nhân. Trong ƯML, tương tranh và truyền thông không đồng bộ là một sự lựa chọn. ƯML có các use - case dùng đê’ nắm bắt các yêu cầu, các biểu đồ cộng tác mà SDL không có các thành phần này. SDL có các kiêu đặc tả, các sự chuyển dịch có thực hiện trong dạng chi tiết đầy đủ, trong UML không trợ giúp cho các quá trình này. Hình sau chỉ ra phần chung, các biêu đồ và các khái niệm có thê dùng được trong ƯML và SDL. Chúng chia sẻ sự đặc tả cho câu trúc tĩnh, hành vi và các kịch bản (scenario). SDL So sách các đặc trưng giữa UML và SDL PHÁT TRIỂN phần mềm DựA trên UML và SDL Việc sử dụng UML có nghĩa là chúng ta xây dựng các đặc tả trong ƯML và thực hiện trong các ngôn ngừ lập trình hướng đối tượng như c++ , Java, Như vậy ƯML có các khái niệm cho phép xây dựng các bộ công cụ đê có thê tự động dịch các mô hình đặc tả ra mã chương trình. Tuy nhiên đối với các hệ thống thời gian thực việc sử dụng UML còn gặp nhiều vân đề không thuận lợi. Cụ thê là đối với các hệ thống lớn, phức tạp trong truyền thông. SDL lại có ưu thế trong vấn đề này. Đê phát triên các tiến trình phần mềm thông thường chúng ta bắt đầu từ những use case đơn giản, vì như vậy chúng ta dễ dàng nắm bắt được hệ thống của chúng ta thông qua các use case; sau đó chuyến các use case này vào các biêu đồ SDL. Như vậy đê thực hiện các tiến trình phần mềm chúng ta sè bắt đầu với UML và sau dó chuyên dến SDL cho các giai đoạn sau của tiến trình phần mềm. UML trợ giúp rất mạnh cho các giai đoạn sớm của quá trình phát triển phần mềm còn SDL có nhiều thuận lợi trong giai đoạn thiết kế và giai đoạn thực hiện sau đó. Trong giai đoạn thiết kế, UML được sử dụng rât tốt, trong giai đoạn này chúng ta sử dụng các use case và các biếu đồ tuần tự đê mô tả yêu cầu và các hoạt động của hệ thống. Hơn nữa các biểu đồ lớp không 158 hình thức có thể được dùng cho việc mô tả đồ hoạ cho các vân đề đặc biệt. Sau khi hoàn thành các bước này thì chúng ta đã thực hiện xong việc đặc tả yêu cầu (R-Spec). Các biểu đồ triển khai cung cap một cái nhìn khái quát toàn bộ hệ thống trong giai đoạn thiết kế. Sau đó các biếu đồ trạng thái và các biểu đồ tuần tự có thê’ dịch trực tiếp ra mã chương trình thông qua SDL. Điều này có nghĩa rằng, kết quả thu được trong giai đoạn thiết kế không chỉ có giá trị cung câp tài liệu cho đặc tả chức năng và đặc tả dừ liệu cũng như với đặc tả yêu cầu mà kết quả này còn được sử dụng để trực tiếp dịch ra mã chương trình [1]. Do SDL và ƯML có các khái niệm tương tự nhau và dựa vào nhừng so sánh trên chúng ta thây rằng việc kết hợp giừa ƯML và SDL sè cho chúng ta một ngôn ngừ đặc tả rất tôi cho quá trình phát triển phần mềm. Sự tương quan giửa ƯML và SDL trong các giai đoạn phát triển phẩn mếm KẾT LUẬN * UML là một ngôn ngừ mô hình hoá sử dụng các mô tả đồ hoạ dùng cho sự hình dung, sự đặc tả, sự xây dựng và làm tài liệu, đây chính là những công cụ rất mạnh cho các hệ thống phần mềm lớn. ƯML được sứ dụng khá phô biến và nó đà được ứng dụng thành công đê’ xây dựng các hệ thông trong: thương mại điện tử, các hệ thống chỉ huy và điều khiến, các trò chơi máy tính, điện tử trong y học, ngân hàng, bảo hiểm, điện thoại, robot và khoa học điện tử áp dụng trong hàng không. ƯML đã vượt qua hầu hết các ngôn ngừ lập trình truyền thống, nó có các ánh xạ chuyển từ ƯML đến Java, C++, Smalltalk, Visual Basic, Ada,.... SDL là một ngôn ngữ chuẩn của ISO (International Organization for Standard) nó dùng để đặc tả, để xác minh, phân tích, thực hiện, kiêm thử và thao tác. SDL có thê thực hiện được những điều khiên phức tạp của các hệ thống truyền thông và OSI (Open systems International). Bài báo đã nêu bật được những ưu điểm và nhược điểm khi sử dụng hai ngôn ngữ trên cho quá trình phát triển phần mềm và so sánh chúng. Đề tài đã được tiến hành tiếp tục với phần biến đôi từ UML sang SDL cũng như từ SDL sang ƯML giúp cho các nhà phát triển phần mềm có được sự linh động trong đặc tả phần mềm, xin phép sẽ được trao đôi cùng quý vị quan tâm trong một dịp khác. TÀI LIỆU THAM KHẢO Christian Schwingenschlửgl, Stefan Schửnauer. Application and Service Depelopment Using UML and SDL. Institute of Communication Networks, 1999. G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1998. H. Eriksson, M. Penker. UML Toolkit. Wiley Computer Publishing, 1998 I. Jacobson, G. Booch, J. Rumbaugh. 77?e Unified Software Development Process. Addison-Wesley, 1999. Kenneth J.Turner, Using Formal Description Techniques. JOHN WILEY & SONS, 1993.
File đính kèm:
- ngon_ngu_mo_hinh_hoa_thong_nhat_uml_va_ngon_ngu_dac_ta_sdl.doc
- 21_ky_00627_105_483354.pdf