Ta cần xem xét dữ liệu lưu trong file xml xuất ra từ biểu đồ tuần tự để có cấu trúc lưu trữ thích hợp để tạo ra máy trạng thái.
Từ biểu đồ trình tự UML vẽ ra thì ta đã có thể thấy các thông tin quan trọng, gồm có các thông điệp ( message ), các lớp trao đổi các thông điệp đó.
Các lớp mô tả thông điệp
Trước hết xét các thông điệp ( message ) chính là các phương thức được gọi trong mã nguồn. Để xác định rõ 1 phương thức thì ta cần tên phương thức, các tham số truyền vào, kiểu dữ liệu trả về, và lớp chứa phương thức đó. Trong file xml xuất ra, ta lấy ngay thông tin về các thông điệp lưu trong thẻ UML:Message. Các thông tin của message trong thể nay gồm : id là thuộc tính xmi.id, tên ở thuộc tính name, tên lớp chứa phương thức từ thuộc tính sender.
Nhưng trong tab UML:Message ta chưa thấy các tham số truyền vào và kiểu dữ liệu trả về của phương thức, mà nó được lưu trong các tab khác có tên là UML:taggedValue:
Vì vậy ta sẽ xây dựng thành 2 lớp là Message và taggedValue: 1. Class Message:
Public class Message {
Private String id; // ID cua lop lay tu xmi.id Private String name; // Ten message
Private String sender; // ID lop
Public class TaggedValue {
Private String value; // value attribute Private String ID; // ID of Message
Việc kết hợp giữa 2 lớp bởi thuộc tính ID của lớp sẽ tạo ra thông tin đầy đủ về 1 thông điệp.
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 để có thể liên kết lớp với các message của nó, 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.