Silde bài giảng công nghệ phần mềm
Trang 1Công nghệ phần mềm
Pha lấy yêu cầu
Giảng viên: TS Nguyễn Mạnh Hùng
Học viện Công nghệ Bưu chính Viễn thông (PTIT)
Trang 2Nội dung tham khảo từ
Stephen R Schach Object-Oriented and Classical
Software Engineering Seventh Edition,
WCB/McGraw-Hill, 2007
Trang 4Pha lấy yêu cầu (2)
Thực hiện:
Tìm hiểu và nắm rõ lĩnh vực của phần mềm
Xây dựng mô hình nghiệp vụ của khách hàng
Xác định rõ yêu cầu của khách hàng dựa trên mô
hình nghiệp vụ
Lặp lại các bước trên cho đến khi khách hàng đồng ý
Trang 5Pha lấy yêu cầu (3)
Tìm hiểu domain của ứng dụng:
Xây dựng danh sách từ chuyên môn (glossary)
Mỗi từ / khái niệm / cụm từ được giải thích nghĩa rõ
ràng theo đúng chuyên ngành hẹp của ứng dụng
Trang 6Pha lấy yêu cầu (4)
Xây dựng mô hình nghiệp vụ:
B1: Phỏng vấn với đại diện khách hàng để có bản
mô tả nghiệp vụ toàn bộ các hoạt động của khách hàng
B2: Sử dụng UML để biểu diễn yêu cầu của khách
hàng: Use case
Chỉ các yêu cầu chức năng mới được mô hình hóa
trong UML, các yêu cầu phi chức năng sẽ được áp dụng từ bước thiết kế
Trang 8Use case (2)
Một use case thường có:
Actor: tác nhân – người dùng tương ứng với use
case đó
Actor thường là người khởi tạo use case hoặc là
tác nhân chính để use case hoạt động
Một người dùng có thể làm nhiều actor khác nhau
Một actor có thể tham gia vào nhiều use case
khác nhau
Actor có thể là một tổ chức khác hoặc một thiết bị
đầu cuối như máy in, điện thoại, tổng đài thông tin
Trang 9Quan hệ giữa các use case (1)
Quan hệ “include”:
Uc A có quan hệ include với uc B nếu việc hoàn
thành B là một phần công việc để hoàn thành A
Việc hoàn thành B có thể lặp lại nhiều lần, thì
người ta tạo ra uc riêng để tránh trùng lặp
Quan hệ này được biểu diễn bằng một mũi tên nét
đứt đi từ A đến B Mũi tên có nhãn « include »
Ví dụ: uc Mua hàng sẽ bao gồm uc Xem hàng và uc
Thanh toán (hình trang sau)
Trang 10Quan hệ giữa các use case (2)
Image's source: http://www.uml-diagrams.org/
Trang 11Quan hệ giữa các use case (3)
Quan hệ “extend”:
Uc A có quan hệ extend với uc B nếu việc hoàn
thành A là một tùy chọn công việc để hoàn thành
B
Trong một số trường hợp, làm B bao gồm làm A
Nhưng trong một số trường hợp khác, làm B
không cần làm A
Quan hệ này được biểu diễn bằng một mũi tên nét
đứt đi từ A đến B Mũi tên có nhãn « extend »
Ví dụ: uc Xem hàng sẽ extend từ một số uc như Tìm
kiếm hàng và uc bỏ hàng vào giỏ (hình trang sau)
Trang 12Quan hệ giữa các use case (4)
Image's source: http://www.uml-diagrams.org/
Trang 13Quan hệ giữa các use case (5)
Quan hệ kế thừa:
Uc A có quan hệ kế thừa với uc B nếu B là một
phần dạng tổng quát của A, hay A là một thể hiện
chi tiết của B
Quan hệ này được biểu diễn bằng một mũi tên nét
liền (đầu hình tam giác rỗng) đi từ A đến B
Ví dụ: uc Thanh toán bằng thẻ sẽ kế thừa từ uc Thanh
toán (hình trang sau)
Trang 14Quan hệ giữa các use case (6)
Image's source: http://www.uml-diagrams.org/
Trang 15Ví dụ
Phần mềm quản lí
quỹ cho vay mua nhà
Trang 16Mục đích
Phần mềm:
Hỗ trợ việc xác định được số tiền còn dư
hàng tuần trong quỹ để cho các cặp vợ
chồng trẻ vay vốn mua nhà
Trang 17Mô tả (1)
Điều kiện được vay:
Các cặp vợ chồng trẻ lấy nhau trong vòng 1-10
năm
Cả 2 đều có công việc ổn định
Căn nhà có giá nhỏ hơn giá trung bình trong khu
vực, tính trong vòng 12 tháng gần nhất
Thu nhập không đủ chi trả cho khoản vay theo lãi
suất thông thường
Số tiền trong quỹ còn đủ cho vay mua căn hộ
Số tiền trả cố định hằng tháng không vượt quá
28% tổng thu nhập của gia đình người vay
Trang 18Mô tả (2)
Nếu được vay:
Mỗi cặp VC được vay thế chấp một khản tiền đúng
bằng giá căn hộ, và lấy căn hộ làm thế chấp
Phải trả ngay 10% số vốn, được nhận 90% số vốn để
thanh toán tiền nhà
– Ví dụ: căn nhà giá 100 000$ thì phải trả ngay 10 000$
và tiền vay gốc còn 90 000$
Lãi suất vay hàng năm là 7,5% (0,625% mỗi tháng),
trả trong vòng 30 năm
Trang 19Mô tả (3)
Nếu được vay:
Mỗi tháng phải trả môt khoản cố định là 629,30$
Khoản này bao gồm:
– Tiền lãi hàng tháng của khoản vay gốc còn dư
– Trừ dần vào khoản vay gốc
Trang 20Mô tả (4)
Bảo hiểm và thuế căn hộ:
Người mua bắt buộc phải mua bảo hiểm căn hộ, khi
có cháy nổ, cty bảo hiểm sẽ phải trả trong quỹ
Tiền bảo hiểm tính theo năm, trả hàng tháng, trừ vào
tài khoản tiết kiệm của khách hàng
Tiền thuế bất động sản cũng tính và trả theo cơ chế
trên
Ngoài ra còn có phí làm hồ sơ, phí thanh lí khoản vay
sau 30 năm
Trang 21Mô hình nghiệp vụ (1)
Về phía nhà quản lí quỹ:
Mỗi đầu tuần, quỹ sẽ phải ước lượng xem còn bao
nhiêu vốn trong quỹ có thể cho vay
Khách hàng có thể nộp đơn xin vay vào bất cứ thời
điểm nào Người của quỹ sẽ phải thẩm định xem:
– Khách hàng có đủ điều kiện vay hay không
– Quỹ còn đủ tiền cho khách hàng vay hay không
Số tiền khách hàng phải trả hàng tuần tùy thuộc vào
thu nhập của họ
Trang 22Mô hình nghiệp vụ (2)
Vậy có thể có 3 use case:
Ước lượng xem còn bao nhiêu vốn trong quỹ hàng
tuần
Khách hàng nộp đơn xin vay
Ước lượng số tiền khách hàng phải trả hàng tuần
Trang 23Use case này cho phép nhân viên quỹ ước lượng số tiền
còn dư trong quỹ, vào mỗi đầu tuần, để có thể cho vay
Trang 24Mô hình nghiệp vụ (4)
use case khách hàng nộp đơn xin vay vốn:
Mô tả:
Use case này cho phép nhân viên quỹ thẩm định xem:
(1) khách hàng có đủ điều kiện vay hay không
(2) quỹ còn đủ tiền cho khách hàng vay hay không
Trang 25Use case này cho phép nhân viên quỹ ước lượng số tiền
khách hàng phải trả trong tuần là bao nhiêu
Trang 26 Nhân viên quỹ là người tiến hành ước lượng
Có người vay đến trả thì mới ước lượng số tiền
→ cả hai đều là actor cho use case này!
Trang 27Mô hình nghiệp vụ (7)
Xem xét vấn đề quản lí các nguồn tiền đầu tư:
Các mặt hàng đầu tư
Chuyển nhượng vốn lẫn nhau giữa các khoản đầu tư
Chuyển khoản đầu tư thành quỹ để cho vay
→ Việc quản lí khoản đầu tư là một cho use case của hệ
thống!
Trang 28Mô hình nghiệp vụ (8)
Use case quản lí các khoản đầu tư của quỹ
Mô tả:
Use case này cho phép nhân viên quỹ quản lí các khoản
đầu tư của quỹ
Trang 29Mô hình nghiệp vụ (9)
Tổng hợp các use case ban đầu:
Trang 30Làm mịn mô hình NV (1)
Xem xét lại từng use case:
UC ước lượng số dư trong quỹ hàng tuần có thể cho
vay: cần thiết
UC khách hàng nộp hồ sơ xin vay vốn: do nhân nviên
thẩm định làm việc mà không cần đến phần mềm → loại bỏ!
UC ước lượng số tiền phải trả hàng tuần của người
vay: cần thiết
UC quản lí nhà đầu tư: cần thiết
Trang 31Làm mịn mô hình NV (2)
Kết quả còn lại 3 use case:
Trang 32Chi tiết mô hình NV (1)
Cách tính số tiền người vay phải trả hàng tuần:
B1: tính số tiền cố định phải trả (gốc và lãi) hàng
tháng, chia cho 4,25 tuần
B2: tính tổng số tiền quỹ phải trả giúp cho khách hàng
về thuế + bảo hiểm nhà trong năm, chia cho 52
B3: tính phần dư từ tuần trước chưa trả xong
B4: tính tổng thu nhập của người vay trong tuần
Nếu B1+B2+B3 > 28%* B4, thì người vay phải trả
28%*B4, phần dư sẽ chuyển sang tuần kế tiếp
Trang 33Chi tiết mô hình NV (2)
Cách tính số dư trong quỹ hàng tuần:
B1: tính tổng (ước lượng) số tiền đầu tư thu được
trong năm, chia cho 52 tuần
B2: ước lượng chi phí hoạt động bộ máy quản lí quỹ
trong năm, chia cho 52
B3: tính tổng số tiền người vay trả cho quỹ trong tuần
B4: tính tổng số dư nợ từ tuần trước của khách hàng
Trang 34Chi tiết mô hình NV (3)
Các thông tin phải xử lí:
Thông tin về các khoản đầu tư
Thông tin về chi phí hoạt động
Thông tin về quỹ
Trang 35Chi tiết mô hình NV (4)
Thông tin về các khoản đầu tư:
Số hiệu mặt hàng đầu tư
Tên mặt hàng đầu tư
Ước lương nguồn thu hàng năm
Ngày ước lượng trước đó gần nhất
Thông tin về chi phí hoạt động của quỹ:
Ước lượng chi phí hoạt động trong năm
Ngày ước lượng trước đó gần nhất
Trang 36Chi tiết mô hình NV (5)
Thông tin về người vay:
Họ tên và mã khách hàng
Giá gốc căn hộ phải trả
Ngày được vay
Khoản cố định phải trả hàng tuần
Thu nhập hàng tuần hiện thời
Ngày cuối cùng cập nhật thu nhập hàng tuần
Thuế BĐS hàng năm,
Ngày cuối cùng cập nhatạ thuế BĐS
Bảo hiểm nhà hằng năm
Ngày cuối cùng cập nhật mức bào hiểm nhà
Trang 37Chi tiết mô hình NV (6)
Các báo cáo thống kê:
Số dư khả dụng của quỹ trong tuần
Danh sách các khoản đầu tư
Danh sách các khách hàng vay vốn
Trang 38Bài tập (1)
Các nhóm làm bài tập với đề bài tập lớn của mình:
Lập danh sách các từ chuyên môn của ứng dụng
Mô tả các hoạt động nghiệp vụ của dự án
Xác định các UC ban đầu
Chi tiết và làm mịn các UC ban đầu này
Trang 39Tinh chỉnh các UC (1)
Xem lại cách tính số dư quỹ hàng tuần:
B1: ước lượng tổng thu từ các khoản đầu tư cả năm,
chia cho 52 tuần
→ Cần thêm một UC ước lượng tổng thu từ các khoản đầu
tư cho mỗi tuần:
UC này là UC con của UC: tính số dư hàng tuần của
quỹ
Trang 40Tinh chỉnh các UC (2)
Mô tả:
UC ước lượng tổng thu hằng tuần của quỹ cho phép UC
tính số dư hàng tuần của quỹ ước lương tổng thu
hàng tuần của quỹ từ các khoản đầu tư
Các bước thực hiện:
Tính thu nhập hàng năm cử từng khoản đầu tư
Tính tổng cho các khoản, chia cho 52 tuần
Trang 41Tinh chỉnh các UC (3)
Mô tả:
UC ước lượng tổng thu hằng tuần của quỹ cho phép UC
tính số dư hàng tuần của quỹ ước lương tổng thu
hàng tuần của quỹ từ các khoản đầu tư
Các bước thực hiện:
Tính thu nhập hàng năm cử từng khoản đầu tư
Tính tổng cho các khoản, chia cho 52 tuần
Trang 42Tinh chỉnh các UC (4)
Ước lượng chi phí hoạt động hằng tuần của quỹ
→ cần thêm 2 UC:
UC ước lượng chi phí hằng tuần của quỹ là UC con
của UC tính số dư hàng tuần của quỹ
UC cập nhật chi phí hoạt động hằng năm của quỹ
Trang 43Tinh chỉnh các UC (5)
UC cập nhật chi phí hằng năm của quỹ:
Mô tả:
UC này cho phép nhân viên quỹ ước lương và cập nhật
tổng chi phí hoạt động hàng năm của quỹ
Các bước thực hiện:
Ước lượng chi phí hằng năm và cập nhật lại
Trang 44Tinh chỉnh các UC (6)
UC ước lượng chi phí hằng tuần của quỹ:
Mô tả:
UC này cho phép UC tính số dư hàng tuần của quỹ ước
lương chi phí hoạt động hàng tuần của quỹ
Các bước thực hiện:
Lấy tổng chi phí hằng năm, chia cho 52 tuần
Trang 45Tinh chỉnh các UC (7)
Cách tính khoản phải trả hàng tuần của khách hàng:
Cập nhật thu nhập hàng tuần của khách hàng
Tính toán khoản dư nợ từ tuần trước của khách hàng
Tính dư nợ cho tuần tiếp theo của khách hàng, nếu cóTuy nhiên trước đó đã có:
UC tính thu nhập hàng tuần của khách hàng
→ Tách UC này thành 2 UC khác nhau:
UC cập nhật thu nhập hằng tuần của khách hàng
UC tính số tiền phải trả và dư nợ hàng tuần của
khách, là UC con của UC tính số dư khả dụng hàng tuần của quỹ
Trang 46Tinh chỉnh các UC (8)
UC cập nhật thu nhập hàng tuần của khách hàng:
Mô tả:
UC này cho phép nhân viên cập nhật lại thu nhập hàng
tuần của người vay
Thực hiện:
cập nhật thu nhập hằng tuần của khách hàng
Trang 47UC này cho phép UC tính dư nợ hằng tuần của quỹ ước
lượng số tiền khách hàng phải trả và dư nợ snag tuần
kế tiếp của người vay
Trang 48Tinh chỉnh các UC (10)
UC tính toán số tiền phải trả và dư nợ tuần của khách hàng (tt):Thực hiện:
Tính số tiền cố định phải trả mỗi tháng, chia cho 4,25 tuần
Tính tổng tiền thuế và bảo hiểm của năm, chia cho 52 tuần
Tính dư nợ của tuần trước, nếu có
Nếu tổng 3 khoản này <28% tổng thu nhập trong tuần: số
tiền phải trả = tổng đó, dư nợ tuần sau = 0
Ngược lại, số tiền phải trả là 28% thu nhập tuần, phần dư
tổng trên – 28% thu nhập tuần sẽ là dư nợ cho tuần kế tiếp
Trang 50Tinh chỉnh các UC (12)
Cần UC quản lí các khoản vay của khách hàng:
UC này sẽ bao gồm hoạt động của UC cập nhật thu
nhập tuần của khách hàng
Nhưng UC cập nhật thu nhập tuần của khách hàng
không bao gồm hết các hoạt động của UC quản lí
khoản vay của khách hàng
→ gộp UC cập nhật thu nhập tuần của khách hàng vào UC
quản lí khoản vay của khách hàng
Trang 51Tinh chỉnh các UC (13)
Cần UC xuất các báo cáo:
Mô tả:
UC này cho phép nhân viên xuất các báo cáo về số dư
quỹ, danh sách khoản đầu tư, danh sách khoản vay
Trang 52Kết quả sơ đồ UC
Trang 53Bài tập (2)
Các nhóm làm bài tập lớn:
Tinh chỉnh các UC đã khởi tạo từ bài tập số 1 để được
sơ đồ UC và mô tả các UC phiên bản cuối cùng của
dự án
Trang 54Questions?