Bài giảng Nhập môn công nghệ phần mềm - Lương Trần Hy Hiến - Chủ đề 3: Phân tích phần mềm (Phần 2)
• Sơ đồ lớp ở mức phân tích
– Xác định các lớp đối tượng chính
– Xác định các thông tin và hành động/trách nhiệm của mỗi lớp
đối tượng chính
– Xác định các quan hệ chính
– Xác định các lớp đối tượng phụ, các danh mục
• Sơ đồ lớp và Khả năng tiến hóa của hệ thống
• Sơ đồ trạng thái
– Khái niệm và các ký hiệu
• Trạng thái
• Biến cố, điều kiện
• Trạng thái đầu, trạng thái cuối
• Superstate
– Áp dụng
TenVT : long : string : string : short : short : short : string + + + + Them () Xoa () Sua () LayDL () : void : void : void : void CNganh + + + + NganhID MaNganh TenNganh TenVT : long : string : string : string CTKB + + + + + + TKBID TKB HOCKY NAMHOC NGAYBD NGAYKT : long : string : short : short : DateTime : DateTime CTKBLOP + TKBLOPID : long CTKBLOP_CHITIET + + + + + THU TIETBD TIETKT LYTHUYET PHONG : short : short : short : short : string COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 36 HIENLTH Sơ đồ trạng thái STATECHART DIAGRAM COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 37 HIENLTH Statechart Diagram • Ghi nhận các hành vi động (even – oriented) • Mục tiêu: – Mô hình hóa chu kỳ sống của đối tượng – Mô hình hóa các đối tượng phản hồi (user interfaces, devices, …) COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 38 HIENLTH Các khái niệm • Sơ đồ trạng thái – Mô tả chu trình sống của các đối tượng chính từ khi sinh ra, hoạt động & mất đi – Mỗi đối tượng có thể có nhiều sơ đồ trạng thái theo các góc nhìn khác nhau • Trạng thái & biến cố – Trạng thái của đối tượng diễn đạt tình trạng hiện có của đối tượng (có ý nghĩa trong một đoạn thời gian) – Biến cố là các sự kiện xảy ra làm cho đối tượng chuyển trạng thái. COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 39 HIENLTH State Diagram Bàn cờ Khởi tạo bàn cờ Quân trắng đi Quân đen đi Quân trắng thắng Hòa Quân đen thắng COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 40 HIENLTH Ví dụ: Xét ứng dụng quản lý TKB • Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp • Hệ thống cho phép sinh viên tra cứu thời khóa biểu theo từng học kỳ của lớp • Hệ thống cho phép giảng viên tra cứu thời khóa biểu giảng dạy trong học kỳ COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 41 HIENLTH Ví dụ minh họa • State Diagram mô tả trạng thái TKB [Bắt đầu học kỳ mới] [Kết thúc học kỳ] [Tất cả các lớp đã được phân phòng] [Một số lớp chưa được phân phòng] Có lớp mới được phân [Còn lớp chưa được phân phòng] [Tất cả các lớp đã được phân phòng] Yêu cầu tra cứu TKB Khởi tạo do / Khoi tao TKB Chờ phân phòng Có lớp mới được phân() / Cap nhat Phong Đang sử dụng Yêu cầu tra cứu TKB(Lop) / TKB Lop Yêu cầu tra cứu TKB(GV) / TKB Giảng viên Đóng do / Ket thuc hoc ky COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 42 HIENLTH Các thành phần trong State diagram • Trạng thái – State • Sự kiện – Event • Hành động – Action • Mối liên hệ giữa các trạng thái State1 entry / Action_1 do / Action_2 exit / Action_3 Event_1 [Condition]/ Action 11State1 entry / Action_1 do / Action_2 exit / Action_3 State2 COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 43 HIENLTH Một số ký hiệu Tên trạng thái Tên trạng thái stateVar : type = value entry/ entry action do/ activity exit/ exit action Tên biến cố (tham số) Tên hành động (tham số) [Điều kiện] Trạng thái Chuyển đổi trạng thái COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 44 HIENLTH • Trang thái bắt đầu – Là trạng thái khi mới được khởi tạo của object – Bắt buộc phải có – Chỉ có thể có 1 trạng thái bắt đầu • Trang thái kết thúc – Chỉ vị trí kết thúc đời sống của object – Không nhất thiết phải thể hiện – Có thể có nhiều Tr/thái bắt đầu Tr/thái kết thúc Các trạng thái đặc biệt COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 45 HIENLTH Tên trạng thái stateVar : type = value entry/ entry action do/ activity exit/ exit action Biến cố(tham số) [Biểu thức điều kiện] / Hành động (tham số) Trạng thái Biến cố Chuyển đổi trạng thái Hành động Hành động Sơ đồ trạng thái • Là đồ thị có hướng với các node là các trạng thái nối với nhau bới các cung mô tả việc chuyển đổi trạng thái COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 46 HIENLTH Các thành phần trong State diagram • Sự kiện – Event • Event – Entry: sự kiện phát sinh khi đối tượng bắt đầu nhận trạng thái – Exit: sự kiện phát sinh khi đối tượng kết thúc trạng thái thúc trạng thái – Do: sự kiện phát sinh khi user thực hiện một hành động thông qua bàn phím/chuột. State1 entry / Action_1 do / Action_2 exit / Action_3 COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 47 HIENLTH Các thành phần trong State diagram • Trạng thái – State • Action – Entry: hành động được thực hiện khi đối tượng bắt đầu trạng thái – Do: tập các hành động có thể thực hiện với trạng thái – Exit: hành động được thực hiện khi đối tượng kết thúc trạng thái State1 entry / Action_1 do / Action_2 exit / Action_3 COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 48 HIENLTH Các thành phần trong State diagram • Mối liên hệ giữa các trạng thái –Transition – Event – Action – Condition: điều kiện cho phép chuyển từ trạng thái này sang trạng thái khác Event_1 [Condition]/ Action 11State1 entry / Action_1 do / Action_2 exit / Action_3 State2 COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 49 HIENLTH Các thành phần trong State diagram • State – Event – Action – Transition Huy Huy Huy / SoLuong = 10 Them Sinh Vien/ SoLuong = 0 Them Sinh Vien [SoLuong <10] KH Khởi tạo do / KhoiTao Đang mở entry / Sinh vien dang ky exit / Tang SoLuong 1 DV Kết thúc do / Ket thuc khoa hoc Bị Hủy do / Thong bao sinh vien da dang ky COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 50 HIENLTH Ví dụ minh họa • State Diagram mô tả trạng thái TKB [Bắt đầu học kỳ mới] [Kết thúc học kỳ] [Tất cả các lớp đã được phân phòng] [Một số lớp chưa được phân phòng] Có lớp mới được phân [Còn lớp chưa được phân phòng] [Tất cả các lớp đã được phân phòng] Yêu cầu tra cứu TKB Khởi tạo do / Khoi tao TKB Chờ phân phòng Có lớp mới được phân() / Cap nhat Phong Đang sử dụng Yêu cầu tra cứu TKB(Lop) / TKB Lop Yêu cầu tra cứu TKB(GV) / TKB Giảng viên Đóng do / Ket thuc hoc ky COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 51 HIENLTH Ví dụ minh họa • State Diagram mô tả trạng thái màn hình quản lý danh mục người dùng COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 52 HIENLTH Ví dụ minh họa • State Diagram mô tả trạng thái màn hình quản lý danh mục người dùng Thoat Thêm ND Sửa ND [Đã chọn ND] Kết thúc sửa NDKết thúc Thêm ND Khởi tạo màn hình entry / Load entry / Show do / Thêm ND do / Sửa ND do / Xóa ND do / Thoát Đang thêm Người dùng entry / Thêm ND do / Lưu ND do / Không lưu exit / Xác lập trạng thái Kết thúc MH Người dùng entry / Unload Đang sửa Người dùng entry / Sửa ND do / Lưu do / Không lưu exit / Xác lập trạng thái COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 53 HIENLTH Sơ đồ trạng thái S1 S4 S2 S3 S5 S6 B1 B2 B3 B4 B5 B6 B7 B8 B9 B1, B2: biến cố sinh B4, B8, B9: biến cố mất B3, B5, B6, B7: biến cố hoạt động COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 54 HIENLTH Sơ đồ trạng thái • Mỗi sơ đồ trạng thái sẽ ánh xạ thành một thuộc tính của đối tượng • Các trạng thái của đối tượng trong 1 sơ đồ trạng thái không giao nhau và giá trị của thuộc tính tương ứng chỉ mang 1 trong các giá trị tương ứng • Sơ đồ trạng thái càng chi tiết sẽ phục vụ: – Có những xử lý thích hợp trong kiểm tra ràng buộc – Có những xử lý thích hợp trong xử lý biến cố – Phục vụ tra cứu, tìm kiếm • Khi đã quan tâm đến sơ đồ trạng thái của 1 đối tượng – Thường trong ứng dụng không còn chức năng xóa (thật sự) đối tượng này – Các đối tượng sẽ tồn tại ở trạng thái mất thay vì bị xóa thật sự COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 55 HIENLTH • Thông thường, sơ đồ trạng thái của 1 đối tượng có dạng Sẵn sàng Tạm dừngHoạt động Chấm dứt Sơ đồ trạng thái COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 56 HIENLTH Cách xây dựng sơ đồ trạng thái • Cách 1: – Xác định quá trình hoạt động bình thường của đối tượng từ khi sinh ra đến khi mất đi – Bổ sung các trạng thái và biến cố liên quan đến • Sinh ra • Hoạt động • Tạm từng • Mất đi • Cách 2: – Xác định các trạng thái sinh – Xác định các trạng thái cuối – Xác định các trạng thái trung gian và các biến cố/hành động làm chuyển trạng thái COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 57 HIENLTH Kết quả: Sơ đồ trạng thái S1 S4 S2 S3 S5 S6 B1 B2 B3 B4 B5 B6 B7 B8 B9 STT Trạng thái Ý nghĩa Xử lý liên quan Ghi chú … … … … … STT Biến cố Ý nghĩa Xử lý liên quan Ghi chú … … … … … Bảng mô tả các trạng thái Bảng mô tả các biến cố Sơ đồ trạng thái COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 58 HIENLTH Tạo State Diagram trong PD • Tạo mới State Diagram • State – Start – End – State • Transition • Action • Event COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 59 HIENLTH Bài tập • Vẽ sơ đồ trạng thái của thang máy • Vẽ sơ đồ trạng thái của 1 đèn giao thông • Vẽ sơ đồ trạng thái của 1 cặp đèn giao thông tại ngã tư • Vẽ sơ đồ trạng thái của 1 độc giả • Vẽ sơ đồ trạng thái của 1 cuốn sách • Vẽ sơ đồ trạng thái của 1 phòng trong khách sạn • Vẽ sơ đồ trạng thái của 1 quân cờ COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 60 HIENLTH Bài tập Vẽ sơ đồ trạng thái: • Quản lý giải bóng đá vô địch quốc gia • Quản lý bình chọn bài hát hay Làn sóng xanh • Quản lý giáo vụ trường đại học • Quản lý giáo vụ trường phổ thông • Quản lý bán hàng • Quản lý nhân sự - Tiền lương COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 61 HIENLTH Ôn tập • State diagram là gì ? • Event là gì ? • Transition ? • Action là gì ? Các loại Action ? • Xây dựng State diagram cho một số ứng dụng trong phần bài tập COMP1026 – Introduction to Software Engneering CH3 – Part 2 - 62 HIENLTH Câu hỏi và thảo luận ?
File đính kèm:
- Bài giảng Nhập môn công nghệ phần mềm - Lương Trần Hy Hiến - Chủ đề 3 Phân tích phần mềm (Phần 2).pdf