Đối với phương thức, OWL không có cấu trúc để hỗ trợ. Điều này đòi hỏi, cần phải có luật chuyển đổi riêng. Khi đó, ta sẽ khai báo Phương thức như một lớp riêng và có quan hệ kết tập với lớp, có nghĩa là Lớp chứa các phương thức. Các thuộc tính Operator và các liên kết được thể như hình dưới.
Class +name: String +isAbstract: Boolean Operation +name: String +isAbstract: Boolean +visibility: VisibilityKind +Commonality: Boolean Parameter +name: String +direction: ParameterDirectionKind +class +ownedOperation 0..1 * +operation +ownedParameter 0..1 * +superClass +subClass * *
Hình 2.19. Siêu mô hình của biểu đồ lớp UML.
Khi đó, ta sẽ tạo thêm 2 lớp là lớp Parameter (tham số) và lớp Type với hai lớp con kế thừa nó là VisibilityKind và lớp ParameterDirectionKind.
Khi đó ta sẽ có quy tắc chuyển đổi đối với phương thức trong UML như sau:
o Lớp Class sẽ có thêm một thuộc tính kiểu đối tượng là “ownedOperation” với owl:domain là Class, và owl:range là Operation.
Xây dựng lớp Operation với các thuộc tính:
o op_name: DatatypeProperty: String. Tên phương thức
o isAbstract: DatatypeProperty: Boolean
Kiểm tra xem phương thức có là phương thức ảo không? Nếu là phương thức ảo, thuộc tính này nhận giá trị true, nếu không là false.
o visibility: ObjectProperty:VisibilityKind
Thuộc tính này kiểu Phương thức thuộc loại nào? public, protected hay private, có liên kết với lớp VisibilityKind.
o commonality: DatatypeProperty:Boolean.
Tiếp đó ta sẽ xây dựng lớp Parameter (Tham số):
o para_name: DatatypeProperty: String. Tên tham số
o direction: ObjectProperty: ParameterDirectionKind
Dạng trả về của tham số là in, out, inout, return. Nó rdf: range là lớp ParameterDirectionKind.
Tiếp theo là xây dựng hai lớp VisibilityKind và ParmeterDirectionKind. Lớp VisibilityKind có thuộc tính:
o visibilityKind: DatatypeProperty: String.
Có 4 lựa chọn cho phạm vi thuộc tính là :
o Public: Mọi lớp đều nhìn thấy thuộc tính, phương thức.
o Private: Lớp khác không nhìn thấy thuộc tính, phương thức.
o Protected: Các lớp thừa kế có thể nhìn thấy.
o Package và Implementation: thuộc tính, phương thức là public đối với với các lớp trong gói.
Lớp ParameterDirectionKind có thuộc tính:
paraDirectionKind: DatatypeProperty:String.
Các kiểu parameterDirectionKind (các kiểu tham số) gồm có: in, out, inout
và return.
Còn để ví dụ mình họa cho cách chuyển đổi từ phương thức này, chúng tôi sẽ nói rõ hơn trong phần triển khai ứng dụng ở chương 3.
Vậy là ta đã vừa xây dựng được những quy tắc chuyển đổi từ các yếu tố trong UML sang OWL. Trên đây là một số các luật cơ bản để có thể chuyển đổi từ mô hình UML sang OWL. Do đó, việc chuyển đổi này hoàn toàn có thể thực hiện được bằng công cụ Protégé. Và sau đây, chương 3 sẽ giới thiệu về các quy trình để thực hiện việc kiểm tra xem kết quả áp dụng các mẫu vào mô hình thiết kế UML.
CHƯƠNG 3:
QUY TRÌNH THỰC HIỆN KIỂM TRA KẾT QUẢ ÁP DỤNG MẪU VÀO MÔ HÌNH THIẾT KẾ UML
3.1. Giới thiệu
Các mẫu thiết kế (Design Pattern) luôn thu hút được sự quan tâm cả trong kinh doanh lẫn nghiên cứu lý thuyết để đạt được mục tiêu tăng khả năng sử dụng lại các thiết kế. Các mẫu thiết kế không phải là một bản thiết kế hoàn chỉnh để có thể chuyển trực tiếp thành mã nguồn, mà nó là một bản mô tả hay một mẫu mô tả việc giải quyết vấn đề có thể sử dụng được trong nhiều trường hợp khác nhau. Các mẫu thiết kế hướng đối tượng điển hình phải chỉ ra các mối quan hệ và tương tác giữa các lớp hoặc đối tượng, mà không cần phải xác định xem các lớp và các đối tượng ứng dụng cụ thể của nó. Cấu trúc của mẫu thiết kế rất rõ ràng và có khả năng sử dụng lại rất cao. Vì vậy, việc sử dụng các mẫu thiết kế là một sự lựa chọn tốt để cải tiến hoặc tinh chế thiết kế phần mềm. Áp dụng mẫu bằng cách tích hợp cấu trúc giải pháp của mẫu vào mô hình ban đầu. Tuy nhiên, chúng ta cần đảm bảo sự tích hợp đúng. Điều đó có nghĩa là mô hình phải thỏa mãn các tính chất cấu trúc của mẫu và bảo toàn hành vi của mô hình bàn đầu.
Trong chương này, chúng tôi sẽ trình bày về quy trình thực hiện kiểm tra kết quả áp dụng mẫu vào mô hình thiết kế UML. Hiện nay, có rất nhiều mẫu thiết kế, và tôi xin giới thiệu một số mẫu thiết kế được sử dụng khá thông dụng và mang lại hiệu quả cao, đó là mẫu Union Pattern và mẫu Composite Pattern.