Xây dựng cấu trúc dữ liệu mô tả biểu đồ trình tự UML

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 51 - 54)

Phương pháp xây dựng cấu trúc dữ liệu mô tả biểu đồ trình tự UML hoàn toàn

tương tự với cách xây dựng cấu trúc dữ liệu mô tả biểu đồ trạng thái mà tôi đã trình bày ở phần trước. Đầu tiên là tôi xem xét các thành phần chính của biểu đồ, ta sẽ mô tả

dữ liệu gì thông qua các thành phần này. Tiếp theo là phân tích tài liệu XMI được xuất ra từ một biểu đồ trình tự UML, xem xét xem tài liệu XMI dùng các thẻ gì để mô tả

các thành phần chính này, các thành phần dữ liệu trong thẻ (thuộc tính) gồm những gì. Cuối cùng, tôi sẽ lọc ra các dữ liệu cần thiết nhất và xây dựng các lớp Java để mô tả

các thành phần chính của biểu đồ. Đây cũng chính là phương pháp phân tích tài li ệu XMI mà tôi sử dụng trong khóa luận.

Áp dụng phương pháp phân tích tài liệu XMI ở trên, tôi xây dựng các lớp mô tả

44

Hình 4.4: Sơ đồ lớp biểu diễn các thành phần của biểu đồ trình tự UML

4.2.2.1 Lớp ClassifierRole mô tảcác đối tượng

Mô tả các lớp trong biểu đồ trạng thái, ta chỉ mô tả tên của lớp, ngoài ra XMI mô tả thêm id của lớp, như vậy để mô tả một ClassifierRole, ta chỉ cần mô tả hai thành phần dữ liệu, đó là: id của lớp và tên của lớp:

public class ClassifierRole {

private String id; // ID cua lop

private String name; // Ten lop

}

Tài liệu XMI, mô tả các lớp thông qua thành phần (thẻ) <UML: ClassifierRole>,trong đó:

- xmi.id: Mô tả id của ClassifierRole.

- name: Mô tả tên của ClassifierRole.

Đây cũng chính là tên thẻ và tên các thuộc tính của thẻ khi ta duyệt tài liệu UML và lấy dữ liệu mô tả các ClassifierRole.

4.2.2.2 Lớp Message mô tả thông điệp trao đổi giữa các đối tượng

Thông điệp – hay chính là tên của phương thức được gọi trong mã nguồn. Mà như ta đã biết, một phương thức được mô tả bởi các thành phần như: tên phương thức, các tham số truyền vào, kiểu giá trị trả về của phương thức và một thành phần quan trọng không kém là ta cần xác định xem phương thức đó thuộc lớp (class) nào. Nhưng

khi phân tích tài liệu XMI ta thấy: Không giống như các thành phần khác của biểu đồ

UML, các dữ liệu mô tả một thành phần đều là các thuộc tính của một loại thẻnào đó.

45

ClassifierRole> mô tả các đối tượng của biểu đồ trình tự. Dữ liệu mô tả về một

thông điệp của biểu đồ trình tựUML được thể hiện qua hai loại thẻ khác nhau:

- Thẻ <UML:Message> chứa các dữ liệu mô tả tên phương thức, lớp chứa

phương thức đó.

- Thẻ mô <UML:TaggedValue> tả các tham số, kiểu giá trị trả về của

phương thức.

Vì vậy, tôi xây dựng hai lớp độc lập nhau để lưu trữ những thành phần dữ liệu khác nhau của một thông điệp được mô tả trên hai loại thẻXML khác nhau. Đó là lớp

Message và lớp TaggedValue. Lớp Message mô tả hai dữ liệu vềthông điệp được mô tả trong thẻ <UML:Message> đó là tên phương thức và id của lớp chứa phương (adsbygoogle = window.adsbygoogle || []).push({});

thức đó. Lớp TaggedValue đại diện cho thẻ <UML:TaggedValue> mô tả về tên các tham số và kiểu giá trị trả về của phương thức:

- Class Message:

public class Message {

private String id; //ID cua message

private String name; // Ten cua message

private String sender; // ID cua lop

}

- Class TaggedValue:

public class TaggedValue {

private String value; // gia tri cua TaggedValue private String ID; // ID cua Message

}

Một thông điệp sẽ là sự kết hợp của Message và TagedValue. Thông qua thuộc tính id của thông điệp.

4.2.2.3 Mô tả biểu đồ trình tự UML bằng các đối tượng trong Java

Ta đã có ba lớp cơ bản: ClassifierRole, Message, TagedValue để mô tả hai thành phần quan trọng của biểu đồ trạng thái UML, đó là đối tượng và thông

điệp trao đổi giữa các đối tượng. Trong một biểu đồ trình tự, không chỉ có một đối

tượng hay một thông điệp, mà nó chứa mỗi chuỗi các đối tượng và các thông điệp trao

đổi giữa các đối tượng, tạo nên giao thức trao đổi thông điệp giữa các đối tượng. Do

đó, cũng giống như mô tả biểu đồ trình tự, để mô tả các thành phần có trong biểu đồ

trình tự, tôi cũng dùng một danh sách các ClassifierRole để lưu trữ tất cả các đối

tượng có trong biểu đồ. Danh sách các Message và danh sách các TagedValue để lưu trữ tất cả các thông điệp trao đổi giữa các đối tượng trong biểu đồ. Các lớp này

46

Ngoài ra tôi cũng xây dựng thêm các phương thức giúp truy xuất dữ liệu về từng thành phần trong danh sách các đối tượng trong lớp được dễ dàng hơn thông qua id

của đối tượng đó.

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 51 - 54)