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

pdf62 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2168 | Lượt tải: 4download
Tóm tắt nội dung 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), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfBà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