6. Cấu trúc của luận văn
2.2.2. Mô hình hành vi củahệ thống
Các vấn đề chính:
• Xác định các sự kiện hệ thống và các thao tác hệ thống. • Tạo biểu đồ tuần tự của hệ thống cho các tnrờng hợp sử dụng. • Tạo hợp đổng (contract) cho các thao tác của hệ thống.
• Biểu đồ tu ần tự của hệ thông (System Sequence D iagram )
Trong phần này ta tập trung vào xác định các thao tác, thứ tự thực hiện của chúng mà hệ thống cần phải tiến hành để thực hiện một trường hợp sử dụng và tác động của mỗi thao tác đó lên hệ thống, các đối tượng của hệ thống.
Một trường hợp sử dụng định nghĩa một lớp các trao đổi giữa tác nhân và hệ thống, một trao đổi riêng biệt của lớp này là một thực hiện hoá (realization) của trường hợp sử dụng đó. Có thể có nhiều thực hiện hoá cho một trường hợp sử dụng.
Kịch bản của một trường hợp sử dụng là một hiện thực hoá cụ thể của trường hợp sử dụng đó.
• Sự kiện vào hệ thống và các thao tác của hệ thông
Trong quá trình tương tác của các hiện thực hoá, tác nhân phát sinh ra các sự kiện tới hệ thống, yêu cầu hệ thống thực hiện một số thao tác để trả lời. Sự kiện được phát sinh bởi tác nhân có quan hệ chặt chẽ với thao tác mà hệ thống thực hiện. Điều này có nghĩa là: xác định các thao tác của hệ thống bằng cách xác định các sự kiện mà tác nhân phát sinh.
Định nghĩa một số thuật ngữ:
• Sự kiện vào hệ thống: là sự kiện từ bên ngoài được phát sinh bởi một tác nhân tới hệ thống. Một sự kiện vào hệ thống khởi đầu một thao tác đáp ứng.
• Thao tác của hệ thống: là một thao tác mà hệ thống thực hiện trong việc trả lời một sự kiện vào hệ thống. Một số thao tác của hệ thống cũng phát sinh các sự kiện ra tới tác nhân để chỉ ra sự kiện hệ thống tiếp theo mà một tác nhân có thể thực hiện.
• Sự kiện hệ thống: có thể là sự kiện vào hoặc sự kiện ra.
D o đó, một sự kiện vào hệ thống khởi động một thao tác của hệ thống và thao tác của hệ thống trả lời cho sự kiện vào hệ thống.
Ví dụ: Xét trường hợp sử dụng Thi cho hệ thống quản lý thi trên mạng, liên quan tới tác nhân Thí sinh. Thứ tự thực hiện các sự kiện vào như sau:
- Đăng nhập vào hệ thống. - Chọn đề thi.
- Nộp bài thi. - Xem điểm.
❖ Biểu đò tuần tự của hệ thống
Một biểu đổ tuần tự của hệ thống mô tả tương tác giữa toàn bộ hệ thống với một tác nhân bên ngoài.
Trong pha phân tích yêu cầu, cần định nghĩa hệ thống bằng cách xem nó như là một hộp đen để mô tả hệ thống làm cái gì, không cần giải thích nó làm như thế nào. Vì vậy phải tập trung vào việc xác định và mô tả các hoạt động hệ thống mà một tác nhân yêu cầu. Điều đó có nghĩa là ta quan tâm đến việc tìm các sự kiện vào của hệ thống bằng cách xem xét kỹ các trường hợp sử dụng và các kịch bản của nó.
Trong trường hợp tổng quát, một sự kiện có kèm theo các tham số. Ví dụ, biểu diễn một sự kiện dưới dạng Event(xl,...,xn) để chỉ sự kiện Event có n tham số.
: Thí sinh dang NhapThiQ --- --- > chonDeThiO --- nopBai() --- ---> xemDiemO --- >
Hình 17: Biểu đổ tuần tự của hệ thống cho trường hợp sử dụng Thỉ.
Các bước để tạo biểu đồ tuần tự của hệ thống:
- Vẽ đường thẳng mô tả hệ thống như là một hộp đen, - Xác định các tác nhân tương tác trực tiếp với hệ thống,
Vẽ một đường thẳng cho mỗi tác nhân,
- Xác định các sự kiện vào hệ thống mà mỗi tác nhân phát sinh ra, minh hoạ chúng trong biểu đổ.
Biểu đồ tuần tự của hệ thống là một mô hình động, chỉ ra hành vi phụ thuộc vào thời gian của hệ thống. Nó được sử dụng cho phân tích động bằng cách xem xét các sự kiện ngoài: các tác nhân và đáp ứng nhìn thấy được. Thuật toán thực hiện là không cần thiết trong pha phân tích. Mô hình động không quan trọng cho các kho chứa dữ liệu tĩnh thuần tuý như cơ sở dữ liệu. Chúng có vai trò quan trọng cho các hệ thống tương tác.
❖ Ghi nhận các thao tác của hệ thông
Các sự kiện vào của h ệ thống sẽ xác định tập thao tác hệ thống được yêu cầu. Mỗi sự kiện vào hệ thống: Event(xl,x2,...xn) dẫn tới việc thực hiện một thao tác hệ thống Event(xl,x2,...xn). Tên của sự kiện vào và tên của thao tác là giống nhau, sự khác biệt là ở chỗ: sự kiện vào là tên của tác nhân còn thao tác là tên của sự trả lời. Trong UML, kí hiệu các thao tác của một kiểu (hay một lớp) là:
Lớp X Ễ ^ T h u ộ c tính 1 ^ ^ T h u ộ c tính 2 ^►Phương th ứ c io ^ P hư ơng thức2() Hình ỉ 8: Kí hiệu lớp (kiểu).
Ví dụ: Với trường hợp sử dụng Thi các hoạt động của một kiểu có tên là System được chỉ ra như sau:
System
^ d a n g N h a p T h i() ^ c h o n D e T h i() ♦ n o p B a i() ^ x e m D ie m O
Hình 19: Lớp System cho trường hợp sử dụng T h i.
2.2.3. Các hợp đồng cho thao tác hệ thống
Biểu đồ tuần tự của hệ thống không mô tả kết quả thực hiện thao tác được gọi. Mục đích của các hợp đổng là để thấy được sự thay đổi trạng thái hệ thống bởi các thao tác hệ thống.
Việc thực hiện một thao tác hệ thống làm thay đổi trạng thái hệ thống theo các dạng khác nhau: đối tượng cũ có thể bị xoá bỏ, đối tượng mới và các liên kết có thể được tạo ra và giá trị thuộc tính của đối tượng có thể bị thay đổi.
Một hợp đổng bao gồm:
+ Điều kiện trước (pre-condition): là các điều kiện mà trạng thái của hệ thống phải thoả mãn trước khi thực hiện thao tác.
+ Điều kiện sau (post-condition): là các điều kiện mà trạng thái hệ thống phải đạt được sau khi thao tác kết thúc.
Hợp đồng của một thao tác OpO được viết như sau: { Điều kiện trước } OpO { Điểu kiện sau } Điều kiện trước và Điều kiện sau là các mệnh đề Boolean.
Đối với Điều kiện sau, ta tập trung vào các ảnh hưởng sau đây của thao tác: - Sự tạo mới và xoá bớt các đối tượng.
- Sự thay đổi các thuộc tính.
- Các liên kết được hình thành hoặc phá vỡ.
( I ) Lập tài liệu hợp đồng công việc
ề
Sử dụng sơ đồ sau để trình bày cho một hợp đồng: • Tên: Tên của một thao tác và các tham số.
• Trách nhiệm: Các chức năng mà thao tác phải thoả mãn. • Kiểu: Tên kiểu (khái niệm, lớp, giao diện).
• Tham chiếu tới các chức năng: số chức năng hệ thống, trường hợp sử dụng. • Chú ý: Các chú ý về thiết kế, thuật toán,...
• Các trường hợp đặc biệt. • Output.
• Điều kiện trước . • Điều kiện sau.
(2) Làm th ế nào đ ể tạo một ỉưrp đồng
- Xác định các thao tác hệ thống từ biểu đồ tuần tự của hệ thống. - Với mỗi một thao tác hệ thống xây dựng một cam kết.
- Bắt đầu với việc viết vào mục Trách nhiệm: mô tả mục đích của thao tác.
- Sau đó hoàn thiện mục Điều kiện sau, mô tả tình trạng thay đổi của đối tượng trong mô hình khái niệm.
(3) Mối quan hệ giữa hợp đổng và các tài liệu khác
- Các trường hợp sử dụng đề xuất ra các sự kiện vào hệ thống và biểu đồ tuần tự của hệ thống.
- Các thao tác hệ thống được xác định từ biểu đồ tuần tự của hệ thống.
- Ảnh hướng của thao tác hệ thống được mô tả bởi hợp đổng trong ngữ cảnh của mô hình khái niệm.
2.2.4. Mô hình hoá hành vi trong biểu đồ trạng thái
Biểu đồ trạng thái của một đối tượng chỉ ra:
+ Tất cả các thông điệp được chuyển tới đối tượng đó. + Thứ tự của các thông điệp.
+ Tác động của các thông điệp.
Biểu đồ trạng thái cũng có thể được sử dụng để mô tả trình tự hợp lệ của các sự kiện vào hệ thống trong một trường hợp sử dụng và để định nghĩa hành vi - các thay đổi trạng thái do các sự kiện vào tại tất cả các trường hợp sử dụng của hệ thống.
Trong hệ thống phần mềm, một đối tượng phải có khả năng nhận và trả lời các sự kiện. Các sự kiện được nhận bởi một đối tượng chính là các thông điệp gửi tới đối tượng đó.
Nói chung, việc tiếp nhận một sự kiện có thể làm cho một đối tượng chuyển từ trạng thái này sang trạng thái khác. Đây chính là sự thay đổi trạng thái, các hành vi của một đối tượng được xác định từ việc chuyển trạng thái của nó.
Biểu đồ trạng thái trong UML mô tả các sự kiện quan trọng, trạng thái và hành vi của đối tượng trong việc phản ứng với sự kiện. Sự chuyển trạng thái được chỉ ra bằng các mũi tên, có nhãn là tên sự kiện gây ra nó.
Kí hiệu: Tên trang thái Sự kiện
>
Tên trạng thái
Hình 20: Kí hiệu trạng thái.
Có hai trạng thái đặc biệt là trạng thái bắt đầu và trạng thái kết thúc. Mỗi biểu đồ trạng thái chỉ có duy nhất một trạng thái bắt đầu và có thể có nhiều trạng thái kết thúc - mô tả trạng thái khi một đối tượng bị loại bỏ hay ngừng việc phản ứng tới sự kiên. m . - Đợi chọn lệnh chọn Thêm HocPhan chọn Thoat L :>
chọỉi Xoá HocPhan
Thêm HocPhan
Xoá HocPhan
chọn Sửa HocPhan Sửa
HocPhan
_ _ y
Hình 21: Biểu đồ trạng thái cho đối tượng F'ormCNHocPhan.
Sự thay đổi trạng thái có thể có các điều kiện bảo vệ. Điều kiện bảo vệ là biểu thức có giá trị đúng / sai cho phép chuyển trạng thái khi nó mang giá trị đúng. Sự thay đổi trạng thái có thể là kết quả của một hành động được thực hiện. Khi thực thi phần mềm, phương thức của đối tượng được xem như là sự thực hiện một hành động trong biểu đồ trạng thái. Một hành động phải được hoàn thành trước khi chuyển sang trạng thái mới và không được ngắt quãng bởi tất cả các sự kiện khác.
Một trạng thái cho phép lồng để chứa trạng thái con. Một trạng thái con thừa kế thay đổi của trạng thái cha. Trạng thái lồng có thể được sử dụng để nâng cao một biểu đồ trạng thái ở mức trừu tượng cao trong đó có các trạng thái kết thúc.
Biểu đồ trạng thái còn được dùng để mô tả thứ tự hợp lệ của các sự kiện vào hệ thông trong một trường hợp sử dụng.
Ví dụ: Đối với trường hợp sử dụng Thi thao tác ChamDiem được thực hiện sau khi sự kiện nộp bài xảy ra.
Đăpg nhập . ________1 V Đ ợ i đ ăn g nh ập thi Đăng nhập xong V Đ ợ i ch ọn đề Chọn đề ,______\ỉ/ . ___
Hiển thị bài N ộ p bài C hấm đ iểm thi
Hình 22: Biểu đồ trạng thái của trường hợp sử dụng Thi.
Tóm tắt giai đoạn phân tích
Giai đoạn phân tích tập trung vào hiểu các yêu cầu, khái niệm các thao tác liên quan đến hệ thống. Khảo cứu và phân tích tập trung vào câu hỏi “cái gì?” . Cái gì là các quá trình, các khái niệm, các quan hệ liên kết, các thuộc tính, các thao tác.
Bảng 10: Bảng tổng kết giai đoạn phản tích.
Kết q u ả phân tích Các câu hỏi được tr ả lời
Trường hợp sử dụng Có những quy trình sử dụng nào?
Mô hình khái niệm Có những khái niệm, quan hệ và thuộc tính nào?
Biểu đổ tuần tự của hệ thống Hệ thống có những sự kiện nào và những thao tác nào?
Hợp đổng Các thao tác hệ thống làm những gì?
2.4. T hiết kê hệ thống
2.4.1. Biểu đố cộng tác
Các vấn đề chính:
• Kí hiệu của các biểu đồ cộng tác. • Kí hiệu UML cho biểu đồ cộng tác. • Bản chất của pha thiết kế.
• Các mẫu thiết kế dùng để gán trách nhiệm cho các đối tượng. • Sử dụng các mẫu thiết kế để tạo biểu đồ cộng tác.
Biểu đổ cộng tác ngoài mô tả các đối tượng với các mối liên kết giữa chúng còn chỉ ra các thông điệp được truyền từ đối tượng này sang đối tượng khác.
Biểu đồ cộng tác tập trung vào ngữ cảnh trao đổi thông tin và mối quan hệ giữa các bộ phận trong hệ thống.
Cả biểu đồ cộng tác và biểu đồ tuần tự đối tượng đều thể hiện các cấu trúc tương tự nhưng tôi sẽ chủ yếu mô tả và sử dụng các biểu đồ cộng tác. Biểu đồ cộng tác được mô tả dưới dang sau:
• m e s s a g e 1 ( ) o A — > :C la s s A 1 :m e s a g e 2 () > :C la s s B 2 :m e s s a g e 3 () > : C h a u Hình 24: Biểu đồ cộng tác. ♦> Các ví dụ của biểu đồ cộng tác
Giả sử, sau khi người quản trị viên chọn chức năng tạo đề thi bằng cách gửi thông điệp taoDeThi(dvkt,t,n) cho DKKyThi. DKKyThi xử lý yêu cầu này bằng cách gửi thông điệp taoDeThi(dvkt,t,n) cho DSDeThi (danh sách đề thi), DSDeThi sẽ xử lý nhiệm vụ bằng việc tạo DeThi. Tương tác này được mô tả trong biểu đồ cộng tác
T hông đ iệp !■ % s a u : đầu tiên
Tham số Đ ường liôn A kết
taoD eThi(dvkt,t,n)
C ) - - - - > :DKKvThi 1 :taoD eThi(dvkt,t,n)
- > :D S D e T h i 2 :th e m D e T h i() - > : C hau Hướng tr u y ền ' ^ thôn g điệp M ội đối tượng
T hông điộp bên ' trong đầu tiên
V
2.1 :tao()
:D eT hi
Hình 25: Biểu đồ cộng tác thao tác taoDeThiị).
Nhìn từ khía cạnh lập trình, có thể miêu tả dưới dạng giả chương trình như sau:
:DKKyThi chấp nhận việc gọi phương thức
taoDeThi(dvkt,t ,n) (từ một đối tượng giao diện);
:DKKyThi gọi phương thức taoDeThi(dvkt,t ,n) của :DSDeThi;
:DSDeThi gọi khỏi tạo (constructor) của lớp DeThi để tạo
một đối tượng mới l à :DeThi .
Biểu đồ cộng tác của một thao tác miêu tả thuật toán thực hiện thao tác đó. Các ký hiệu cơ bản sau đây được sử dụng trong biểu đồ cộng tác:
- Thể hiện: Mỗi một thể hiện (hoặc đối tượng) sử dụng cùng ký hiệu đồ hoạ như kiểu (hoặc lớp) của nó, nhưng tên được gạch chân và được đặt trước bởi một dấu hai chấm. Giá trị cho thuộc tính của đối tượng được miêu tả dưới dạng:
Tên thuộc tính = giá trị thuộc tính.
- Liên kết: Liên kết giữa hai đối tượng là đường nối giữa hai đối tượngđó, thể hiện một số kiểu chiều hướng và khả Iiăng nhìn thấy nhau giữa các đối tượng. Ví dụ, hai thể hiện trong mối quan hệ Client / server, một đường định hướng từ Client tới server có nghĩa là thông tin cộng tác thể được gửi từ Client tới server.
- Thông điệp: Các thông điệp giữa các đối tượng được biểu diễn bằng đường liên kết cộng tác mũi tên được gán nhãn. Bất cứ thông điệp nào có thể được gửi dọc theo liên kết này, cùng với một số được thêm vào để chỉ thứ tự thông điệp được gửi.
msgio > :Class A 1 :m essage1() 2:m essage2() > ____ - > :Class B 3:m essage3() Chau Hình 26: Các thông điệp.
Thông điệp có thể được truyền giữa hai đối tượng của hai lớp có quan hệ liên kết. Các thông điệp có thể quay vòng (đệ quy) gửi thông báo cho chính nó.
- Tham số: Tham số của thông điệp có thể được chỉ ra trong dấu ngoặc đơn sau tên thông điệp. Kiểu của tham số có thể chỉ ra một cách tuỳ ý, ví dụ như taoDeThi(dvkt,t,n).
♦> Các ký hiệu b ổ sung
Thông điệp đã gửi sang đối tượng yêu cầu thì một giá trị có thể được trả về cho đối tượng gửi. Biến chứa giá trị trả về được đặt trước thông điệp bằng phép gán