II. Đánh giá giữa phân tích thiết kế theo hớng chức năng và hớng đố
5.5 Sơ đồ tuần tự
Sơ đồ tuần tự minh hoạ các đối tợng tơng tác với nhau, chúng tập trung trên các Message nối tiếp. Đó là cách các Message đợc gửi và nhận giữa các đối tợng. Sơ đồ tuần tự có hai trục, trục thẳng đứng chỉ thời gian và trục nằm ngang chỉ tập các đối t- ợng. Sơ đồ khối cũng chỉ rõ sự tơng tác, với các tơng tác đợc cho trớc- một sự tơng tác rõ ràng giữa các đối tợng đó xảy ra tại nhiều thời điểm trong suốt thời gian thực hiện của hệ thống (khi một chức năng cụ thể đợc dùng).
Trên trục nằm ngang các đối tợng đợc chỉ ra trong chuỗi nối tiếp, mỗi đối tợng đ- ợc biểu diễn bởi một hình chữ nhật với đối tợng và/hoặc tên đợc gạch chân và đờng thẳng đứng vẽ nét đứt gọi là đờng sống của đối tợng. Sự thực hiện của đối tợng chỉ ra một chuỗi (các Message đợc gửi hoặc đợc nhận). Sự truyền thông chung giữa các đối tợng đợc biểu diễn nh Message nằm ngang giữa các đờng sống của đối tợng. Mũi tên
chỉ ra Message là đồng bộ, không đồng bộ, đơn giản. Đọc sơ đồ tuần tự là bắt đầu tại đỉnh của sơ đồ và đọc xuống để xem chuyển đổi của các Message nói lên vị trí mà thời gian đã qua.
5.5.1. Dạng đặc điểm chung và dạng cụ thể (Generic and instance form)
Sơ đồ tuần tự có thể đợc dùng trong hai dạng, dạng có các đặc điểm chung và dạng cụ thể. Dạng cụ thể mô tả chi tiết rõ ràng, nó là các tài liệu mà một sự tơng tác có thể. Dạng cụ thể không có điều kiện, nhánh hoặc vòng lặp nào của nó chỉ ra tơng tác chỉ với khung cảnh đợc lựa chọn. Dạng đặc điểm chung mô tả tất cả các cách có thể có trong khung cảnh hiện tại. Do đó các nhánh, các điều kiện, các vòng lặp có thể đợc gộp vào. Ví dụ nh việc “mở một tài khoản”. Trong một sơ đồ tuần tự sử dụng dạng đặc điểm chung sẽ đợc mô tả với tất cả các cách, ở đó mọi thứ là thành công, khách hàng không đợc phép mở một tài khoản, tiền ngay lập tức đợc gửi v.v..Giống nh với dạng cụ thể của sơ đồ tuần tự sẽ phải lựa chọn một hành động rõ ràng và các tr- ờng hợp đợc gán vào. Ví dụ nh một sơ đồ có thể chỉ ra việc mở một tài khoản có thành công hay không. Nếu tất cả các trờng hợp phải đợc chỉ ra sử dụng sơ đồ dạng cụ thể thì tất cả chúng phải đợc vẽ ra.
Một Message là sự truyền thông giữa các đối tợng truyền thông tin với khả năng hành động sẽ xảy ra. Một Message thờng xem xét một sự kiện. Các Message có thể là các tín hiệu, các lời gọi thực hiện… Khi một Message đợc nhận, nó bắt đầu kích hoạt đối tợng nhận nó, điều đó đợc gọi là sự hoạt động. Sự hoạt động chỉ ra điều khiển tập trung, với nó các đối tợng thực hiện tại các điểm trong khoảng thời gian. Một đối tợng đợc hoạt động cũng thực hiện mã riêng của nó hoặc đang đợi một phản hồi của đối t- ợng khác tới Message mà nó đã gửi.
Sự hoạt động đợc vẽ trong hình chữ nhật dẹt trên đờng sống của đối tợng. Đờng sống (lifeline) biểu diễn sự tồn tại của đối tợng tại khoảng thời gian riêng biệt, nó đợc vẽ bằng đờng nét đứt và mở rộng từ trên đỉnh xuống dới đáy của sơ đồ. Các Message là các đờng mũi tên (đơn giản, đồng bộ, không đồng bộ) giữa các đờng sống của đối t- ợng. Mỗi Message có thể có một đặc trng là tên và tham số, ví dụ: print (file: File).
Các Message có thể liên tục mặc dù chúng ít khi đợc dùng, bởi vì sự liên tục đợc mở rộng trong sơ đồ. Thông tin phản hồi cũng đợc chỉ ra với các mũi tên (sử dụng mũi
: computer : Printerserver : printer : queue Print(file)
Print(file) [Printer free] Print(file)
[Printer basy] Store(file)
Các Message có thể cũng có điều kiện, một điều kiện nhận giá trị True khi Message đợc gửi và đợc nhận. Các điều kiện thờng là mô hình các nhánh hoặc quyết định có hay không có Message đợc gửi, điều kiện thờng đợc mô tả bởi các nhánh có vài đờng mũi tên chỉ Message đợc vẽ với các điều kiện mở rộng lẫn nhau, hay chỉ một Message đợc gửi tại một thời điểm nh trong hình 5.5.
Nếu các nhánh đợc mô hình hoá với các điều kiện không mở rộng lẫn nhau thì các Message đợc gửi đồng thời, một Message cũng có thể đợc gửi từ một đối tợng tới bản thân nó, trong trờng hợp đó ký hiệu Message đợc vẽ từ ký hiệu đối tợng tới bản thân nó nh hình 5.6.
Hình 5.5: Các Message từ PrinterServer tới Printer có các điều kiện chỉ ra cách các đờng đợc mô tả trong sơ đồ tuần tự, hoặc Message print đợc gửi tới Printer
hay Message store đợc gửi tới Queue.
5.5.2. Các đối tợng tơng tranh
Trong nhiều hệ thống các đối tợng chạy một cách đồng thời, mỗi đối tợng có luồng điều khiển riêng của nó. Nếu hệ thống sử dụng các đối tợng tơng tranh, nó đợc
: computer : Printerserver : printer Print(Ps-file)
Print(Ps-file) [No queue] Print(Ps-file) Guard-Condition Object Return Lifeline Synchronous Message Activation Simple Message
hoạt động bởi các Message không đồng bộ và các đối tợng hoạt động. Các chủ đề đó đợc xem xét thêm trong phần sau.
5.5.3. Định nghĩa các nhãn tơng tác và các ràng buộc
Sơ đồ tuần tự có thể có các nhãn và các lời chú giải đặt trong lề trái hoặc lề phải. Nhãn có thể là một trong các loại nh: nhãn đánh dấu thời gian, nhãn mu tả các hành động, nhãn tạo ra trong lúc hoạt động, nhãn mu tả các ràng buộc v.v.. Nó cũng có thể biểu diễn ràng buộc về thời gian bằng các nhãn ví dụ nh ràng buộc về thời gian giữa 2 Message và thời gian nó mất để Message đến nơi nhận (thời gian truyền).
5.5.4. Tạo và huỷ bỏ các đối tợng
Sơ đồ tuần tự có thể chỉ ra cách các đối tợng đợc tạo ra. Một đối tợng có thể tạo ra một đối tợng khác thông qua một Message. Đối tợng đợc tạo ra và đợc vẽ với ký hiệu
của nó ở nơi nó đợc tạo ra (trên trục thời gian). Message tạo ra hoặc huỷ bỏ một đối t- ợng thờng là Message không đồng bộ. Khi một đối tợng bị huỷ bỏ nó bị đánh dấu X, đó là cách chỉ ra tại thời điểm mà đối tợng bị huỷ bỏ, ví dụ hình 5.7.
Hình 5.6: Các khái niệm đợc sử dụng trong sơ đồ tuần tự.
5.5.5. Sự đệ quy
Đệ quy là kỹ thuật thờng đợc dùng trong nhiều giải thuật. Sự đệ quy xảy ra khi một phơng thức gọi bản thân nó, Message mô tả luôn là một Message đồng bộ và nó
: Computer : CustomerWindow NewCustomer(data) Customer(Data) RemoveCustomer() : Customer DeleteCustomer() : computer
bị đánh dấu trong sơ đồ tuần tự. Thông tin phản hồi đợc chỉ ra nh một Message đơn giản.