Bài giảng Nhập môn công nghệ phần mềm - Tuần 6: Kỹ nghệ yêu cầu phần mềm
ặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Đặc tả các yêu cầu phi chức năng và lập bảng chú
giải các từ vựng / thuật ngữ
– Các yêu cầu phi chức năng và chức năng không được
đưa ra trong bất kỳ use case cụ thể nào
• Chức năng (Functionality): Các yêu cầu chức năng tổng quan
cho tất cả các use case
• Khả năng sử dụng (Usability): Ví dụ: các yêu cầu về khả năng
sử dụng dễ dàng hoặc yêu cầu về đào tạo người dùng.
• Độ tin cậy (Reliability): Các độ đo định lượng như thời gian
trung bình giữa các lần gặp sự cố hoặc lỗi trên nghìn dòng mã
• Hiệu năng (Performance): Bao gồm thời gian đáp ứng, số
lượng người sử dụng đồng thời,.
• Khả năng hỗ trợ (Supportability): Các yêu cầu nhằm tăng
cường khả năng hỗ trợ hoặc khả năng bảo trì của hệ thống
• Các ràng buộc thiết kế (Design constraints)
• Yêu cầu: Đặc tả các yêu cầu cho bài toán
(casestudy) với nhóm chức năng đã
chọn. (cả y/c chức năng và phi chức
năng)
• Phần nội dung này các nhóm làm vào
trong file .docx (báo cáo)
• Các nhóm chuẩn bị thêm một slide
powerpoint về nội dung Đặc tả các yêu
cầu ở trên, buổi học tiếp theo sẽ trình
bày
38 trang |
Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 582 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Nhập môn công nghệ phần mềm - Tuần 6: Kỹ nghệ yêu cầu phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nhập môn Công nghệ phần mềm
Introduction to Software Engineering
(IT3180)
Bài tập tuần 06
Kỹ nghệ yêu cầu phần mềm (Requirement
Engineering)
Giang vien
Mục tiêu
210/21/2020
Department of Software Engineering -
SOICT/HUST
• Thực hiện các bài tập (câu hỏi) về Yêu cầu phần
mềm
• Thực hiện các bài tập về công cụ đặc tả yêu cầu
phần mềm
• Đặc tả các yêu cầu cho bài toán (casestudy) của
môn học: sử dụng usecase của UML
– Xác định các thành phần: tác nhân (actor), ca sử
dụng (usecase) và các quan hệ → xây dựng biểu đồ
usecase
– Đặc tả kịch bản chi tiết cho các usecase
– Xác định và mô tả các yêu cầu phi chức năng
Đánh giá
310/21/2020
Department of Software Engineering -
SOICT/HUST
• Hoàn thành các bài tập về Yêu cầu phần mềm
• Nắm được đặc điểm của các công cụ đặc tả yêu
cầu phần mềm: Biểu đồ luồng dữ liệu – DFD
(data flow diagram) + Máy trạng thái – FSM
(Finite state machine) + Sơ đồ thực thể liên kết
– ERD (entity relation diagram) + Usecase
(UML)
• Hoàn thành đặc tả các yêu cầu cho bài toán
(casestudy) của môn học: sử dụng usecase của
UML
Bài 1.1
a) Lựa chọn nào sau đây mô tả một yêu cầu phi chức
năng?
1. Hệ thống phải phát sinh ra một báo cáo về tất cả các chiến dịch
quảng cáo cho một khách hàng cụ thể
2. Hệ thống phải cho phép những người sử dụng nhập vào chi tiết
các khách hàng
3. Hệ thống phải có khả năng lưu trữ ban đầu là 500MB dữ liệu,
mỗi năm tăng lên 100MB
4. Tất cả các phương án trên đều đúng
10/21/2020
Department of Software Engineering -
SOICT/HUST 4
Bài 1.1
b) Lựa chọn nào sau đây mô tả một yêu cầu chức năng?
1. Hệ thống phải có khả năng trả lời tất cả các truy vấn trong 5 giây
2. Hệ thống cho phép người sử dụng thêm một sản phẩm muốn
mua vào giỏ hàng
3. Người sử dụng sẽ gây ra ít lỗi hơn 50% so với hệ thống hiện tại
4. Giao diện hệ thống thân thiện với người dùng
10/21/2020
Department of Software Engineering -
SOICT/HUST 5
Bài 1.1
c) Sơ đồ luồng dữ liệu cung cấp thông tin gì?
1. Đưa ra hình ảnh quan hệ giữa các đối tượng dữ liệu
2. Đưa ra hình ảnh những chức năng biến đổi luồng dữ liệu
3. Chỉ ra những quyết định logic chính khi chúng xuất hiện
4. Chỉ ra sự tương tác của hệ thống với sự kiện bên ngoài
10/21/2020
Department of Software Engineering -
SOICT/HUST 6
Bài 1.1
d) Đặc tả hệ thống mô tả _____?
1. Chức năng, hiệu năng và các ràng buộc của hệ thống
2. Bản cài đặt của hệ thống
3. Các phần tử kiến trúc phần mềm
4. Thời gian cần thiết cho mô phỏng hệ thống
10/21/2020
Department of Software Engineering -
SOICT/HUST 7
Bài 1.1
e) Hoạt động nào sau đây không phải là mục tiêu của xây
dựng mô hình yêu cầu?
1. Xác định một tập các yêu cầu phần mềm có thể được thẩm định
2. Mô tả các yêu cầu khách hàng
3. Tạo lập một cơ sở cho thiết kế phần mềm
4. Đưa ra giải pháp sơ bộ cho vấn đề đặt ra
10/21/2020
Department of Software Engineering -
SOICT/HUST 8
Bài 1.1
f) Điều gì xảy ra khi sử dụng ngôn ngữ tự nhiên để mô tả
các yêu cầu? (chọn nhiều)
1. Một vài yêu cầu được diễn đạt chung, đi cùng nhau ở dạng một
yêu cầu
2. Các yêu cầu, mục tiêu hệ thống và thông tin thiết kế có thể
không được phân biệt rõ ràng
3. Dễ dẫn đến hiểu nhầm giữa người đọc và người viết
4. Cung cấp thông tin đầy đủ nhất cho người phát triển
10/21/2020
Department of Software Engineering -
SOICT/HUST 9
Bài 1.2
a) Bạn thử đưa ra một cấu trúc chung nhất cho tài liệu đặc
tả yêu cầu. Trình bày ngắn gọn các lợi ích chính của tài liệu
đặc tả yêu cầu?
10/21/2020
Department of Software Engineering -
SOICT/HUST 10
Tài liệu yêu cầu
Ví dụ
10/21/2020
Department of Software Engineering -
SOICT/HUST 11
Ví dụ
10/21/2020
Department of Software Engineering -
SOICT/HUST 12
Bài 1.2
b) Bạn hãy tìm hiểu và mô tả các vấn đề gây ra các khó
khăn trong thu thập yêu cầu?
10/21/2020
Department of Software Engineering -
SOICT/HUST 13
Bài 1.2
Hướng dẫn:
• Những vấn đề từ phía người dùng:
– Người dùng không hiểu họ muốn gì
– Người dùng liên tục thay đổi yêu cầu
– Người dùng không hiểu về kỹ thuật
– Người dùng không hiểu về quy trình phát triển
• Những vấn đề từ phía nhà phát triển:
– Ngôn từ của người dùng và nhà phát triển không khớp nhau
– Nhà phát triển cố lái cho yêu cầu của người dùng khớp với một hệ thống hay mô hình
sẵn có thay vì phát triển một hệ thống theo nhu cầu của khách hàng
– Việc phân tích có thể do các lập trình viên thực hiện thay vì các nhân viên có kỹ năng
phân tích để có thể hiểu được nhu cầu của khách hàng một cách đúng đắn
• Những vấn đề khác:
– Các yêu cầu thường mang tính đặc thù của tổ chức đặt hàng nó, do đó nó thường
khó hiểu, khó định nghĩa và không theo một tiêu chuẩn nào cả
– Các hệ thống thông tin lớn có rất nhiều người sử dụng, do đó các yêu cầu thường rất
đa dạng và có các mức ưu tiên khác nhau, thậm chí mâu thuẫn lẫn nhau
– Người đặt hàng nhiều khi là các nhà quản lý, không phải là người dùng thực sự do đó
việc đưa ra các yêu cầu thường không chính xác10/21/2020 Department of Software Engineering -
SOICT/HUST 14
Bài 1.3
Trong ngữ cảnh của
software engineering và
kỹ nghệ yêu cầu phần
mềm, hãy thảo luận
nhóm và viết một đoạn
ngắn bình luận về bức
tranh vui dưới đây?
10/21/2020
Department of Software Engineering -
SOICT/HUST 15
Bài 1.4
Hãy gọi tên các biểu đồ sau đây. Mỗi biểu đồ hướng về vấn
đề gì trong đặc tả và phân tích yêu cầu phần mềm? Từng
biểu đồ cho chúng ta biết những thông tin gì?
10/21/2020
Department of Software Engineering -
SOICT/HUST 16
Bài 1.4
Biểu đồ 1: Hệ thống bán hàng
10/21/2020
Department of Software Engineering -
SOICT/HUST 17
Chi tiết đơn
đặt hàng và
mẫu HĐ
trống
Đơn hàng đã
được điền
Đơn hàng đã
được duyệt
Đơn hàng đã
được duyệt
1
Điền đơn hàng
2
Kiểm tra đơn hàng
3
Ghi đơn hàng
4
Điều chỉnh kho
5
Gửi nhà cung cấp
1 Đơn hàng
2 Kho hàng
Khách hàng
Bài 1.4
Biểu đồ 2: Hệ thống đăng ký học trực tuyến
10/21/2020
Department of Software Engineering -
SOICT/HUST 18
Bài 1.4
Biểu đồ 3: Hệ thống bán hàng
10/21/2020
Department of Software Engineering -
SOICT/HUST 19
Bài 1.4
Biểu đồ 4: Hệ thống đăng ký học trực tuyến
10/21/2020
Department of Software Engineering -
SOICT/HUST 20
Bài 1.5
Xây dựng biểu đồ luồng dữ liệu (DFD (data flow diagram))
Background:
• DFD biểu diễn một cách linh hoạt các thực thể ngoài,
các chức năng xử lý, luồng dữ liệu và các kho dữ liệu.
• Việc xây dựng DFD theo các mức cấp bậc:
– Sơ đồ ngữ cảnh (Context diagram)
– Sơ đồ mức 0
– Sơ đồ mức i
• Mỗi biểu đồ DFD cũng đi kèm với các mô tả chi tiết về ý
nghĩa các luồng dữ liệu và các bước thực hiện của chức
năng xử lý. DFD cũng cung cấp thông tin về đầu ra và
đầu vào của mỗi thực thể và chính quá trình.
10/21/2020
Department of Software Engineering -
SOICT/HUST 21
Bài 1.5
Xây dựng biểu đồ luồng dữ liệu (DFD (data flow diagram))
Background:
• Cấu trúc tổng quát:
10/21/2020
Department of Software Engineering -
SOICT/HUST 22
Bài 1.5
Xây dựng biểu đồ DFD cho yêu cầu chức năng Lập thẻ độc
giả: bạn đọc phải đăng lý thẻ độc giả với thư viện thì mới
có thể thực hiện mượn trả sách. Khi đăng ký bạn đọc cần
điền vào một biểu mẫu như sau:
Quy định: Tuổi của người đăng ký phải từ 18 tuổi trở lên
và thẻ có giá trị hiệu lực trong vòng 12 tháng.
10/21/2020
Department of Software Engineering -
SOICT/HUST 23
Bài 1.5
Hướng dẫn: Xác định các thành phần:
• Chức năng xử lý: Lập thẻ độc giả
• Kho dữ liệu: Thông tin độc giả
• Xây dựng sơ đồ và các mô tả chi tiết kèm theo
10/21/2020
Department of Software Engineering -
SOICT/HUST 24
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Sơ đồ usecase (UML): Mô hình hóa các
chức năng mà hệ thống sẽ thực thi.
• Usecase là gì?
– Use case là một trình tự hành động của hệ thống
thực hiện nhằm thu được một kết quả dễ thấy tới
một tác nhân nào đó.
– Một use case mô hình hóa một hội thoại giữa
một hoặc nhiều tác nhân với hệ thống
– Một use case mô tả hành động của hệ thống
thực hiện nhằm mang đến một giá trị nào đó cho
tác nhân
10/21/2020
Department of Software Engineering -
SOICT/HUST 25
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Mô hình usecase:
– Các biểu đồ ca sử dụng (usecase diagram)
– Phần mô tả bằng lời các kịch bản usecase (đặc tả
usecase – usecase specification)
– Đặc tả phụ trợ (Supplementary specification)
– Bảng chú giải (Glossary)
10/21/2020
Department of Software Engineering -
SOICT/HUST 26
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Biểu đồ usecase (usecase diagram):
10/21/2020
Department of Software Engineering -
SOICT/HUST 27
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Đặc tả usecase (usecase specification):
– Miêu tả tất cả các vấn đề liên quan đến một ca sử dụng.
Dùng làm cơ sở cho các định hướng phân tích, thiết kế,
mã hóa, kiểm thử theo hướng ca sử dụng ở các công
đoạn tiếp theo.
10/21/2020
Department of Software Engineering -
SOICT/HUST 28
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Nhóm chức năng số 1 trong casestudy: "1. Quản lý
thông tin hộ khẩu, nhân khẩu“
– Tác nhân: “Quản lý tổ dân phố”, hai tác nhân con
thể hiện hai vai trò “Tổ trưởng” và “Tổ phó”
– Các usecase tổng quát:
• Đăng nhập / đăng xuất, các usecase khác được thực
hiện với điều kiện usecase “Đăng nhập” thực hiện
thành công
• Quản lý thông tin sổ hộ khẩu
• Quản lý thông tin nhân khẩu
• Thống kê thông tin nhân khẩu
• Tìm kiếm thông tin, usecase tìm kiếm có thể được gọi
đến khi tác nhân thực hiện các usecase quản lý khác10/21/2020 Department of Software Engineering -
SOICT/HUST 29
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Nhóm chức năng số 1 trong casestudy: "1. Quản lý
thông tin hộ khẩu, nhân khẩu“
– Xây dựng biểu đồ usecase tổng quát
10/21/2020
Department of Software Engineering -
SOICT/HUST 30
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Nhóm chức năng số 1 trong casestudy: "1. Quản lý
thông tin hộ khẩu, nhân khẩu“
– Biểu đồ usecase phân rã cho “Quản lý thông tin
sổ hộ khẩu”
10/21/2020
Department of Software Engineering -
SOICT/HUST 31
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Nhóm chức năng số 1 trong casestudy: "1. Quản lý
thông tin hộ khẩu, nhân khẩu“
– Biểu đồ usecase phân rã cho “Quản lý thông tin
nhân khẩu”
10/21/2020
Department of Software Engineering -
SOICT/HUST 32
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Nhóm chức năng số 1 trong casestudy: "1. Quản lý
thông tin hộ khẩu, nhân khẩu“
– Biểu đồ usecase phân rã cho “Thống kê thông
tin nhân khẩu”
10/21/2020
Department of Software Engineering -
SOICT/HUST 33
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
Đặc tả use
case UC001
“Đăng nhập”
10/21/2020
Department of Software Engineering -
SOICT/HUST 34
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
Đặc tả use
case UC001
“Đăng nhập”
10/21/2020
Department of Software Engineering -
SOICT/HUST 35
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Đặc tả các yêu cầu phi chức năng và lập bảng chú
giải các từ vựng / thuật ngữ
– Các yêu cầu phi chức năng và chức năng không được
đưa ra trong bất kỳ use case cụ thể nào
• Chức năng (Functionality): Các yêu cầu chức năng tổng quan
cho tất cả các use case
• Khả năng sử dụng (Usability): Ví dụ: các yêu cầu về khả năng
sử dụng dễ dàng hoặc yêu cầu về đào tạo người dùng.
• Độ tin cậy (Reliability): Các độ đo định lượng như thời gian
trung bình giữa các lần gặp sự cố hoặc lỗi trên nghìn dòng mã
• Hiệu năng (Performance): Bao gồm thời gian đáp ứng, số
lượng người sử dụng đồng thời,...
• Khả năng hỗ trợ (Supportability): Các yêu cầu nhằm tăng
cường khả năng hỗ trợ hoặc khả năng bảo trì của hệ thống
• Các ràng buộc thiết kế (Design constraints)
•
10/21/2020
Department of Software Engineering -
SOICT/HUST 36
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Ví dụ:
10/21/2020
Department of Software Engineering -
SOICT/HUST 37
Đặc tả các yêu cầu cho bài toán (casestudy) với usecase
• Yêu cầu: Đặc tả các yêu cầu cho bài toán
(casestudy) với nhóm chức năng đã
chọn. (cả y/c chức năng và phi chức
năng)
• Phần nội dung này các nhóm làm vào
trong file .docx (báo cáo)
• Các nhóm chuẩn bị thêm một slide
powerpoint về nội dung Đặc tả các yêu
cầu ở trên, buổi học tiếp theo sẽ trình
bày.
10/21/2020
Department of Software Engineering -
SOICT/HUST 38
Các file đính kèm theo tài liệu này:
- bai_giang_nhap_mon_cong_nghe_phan_mem_tuan_6_ky_nghe_yeu_cau.pdf