TNYC
Thu nhận yêu cầu
1
CHƯƠNG I
YÊU CẦU PHẦN MỀM
Thu nhận yêu cầu
1. Tầm quan trọng của xác định yêu cầu
2. Yêu cầu phần mềm (software requirement) là gì?
3. Phân loại yêu cầu
4. Kỹ thuật yêu cầu
(Requirements Engineering - RE) là gì?
5. Lợi ích từ quy trình xác định yêu cầu chất lượng cao
6. Vai trò của người phân tích yêu cầu
Nội dung
2
Thu nhận yêu cầu
Công nghệ và xã hội không ngừng thay đổi một
cách nhanh chóng, và ảnh hưởng to lớn của hệ
thống thông tin trong một môi trường vô cùng phức
tạp
Kỹ thuật yêu cầu (requirements engineering - RE)
đóng một vai trò vô cùng quan trọng
Cần có sự tham gia của các chuyên gia trong việc thu
nhận và quản lý yêu cầu
Hệ thống nghiệp vụ -Hệ thống thông tin – Phần mềm
1. Tầm quan trọng trong XĐ yêu cầu?
3
Thu nhận yêu cầu
Sản phẩm phát triển với tốc độ chóng mặt. Ngày
nay khách hàng thường đòi hỏi phiên bản mới của
sản phẩm trong khoảng thời gian dưới 1 năm
Ví dụ: theo Siemens thì 20 năm trước, 55% hàng
bán là từ sản phẩm tuổi <5. Ngày nay, 75% hàng
bán được là từ sản phẩmcó tuổi <5.
Một số đặc trưng
4
5
Thu nhận yêu cầu
Thay đổi không ngừng của công nghệ
Các kỹ sư không thể sống cả đời với nghề nghiệp
của mình trong 1 công ty nào đó
Một số đặc trưng
6
Thu nhận yêu cầu
Gia công phần mềm đóng một vai trò vô cùng
quan trọng có tính toàn cầu
Vai trò quan trọng của đặc tả. VD: Đặc tả cho máy
giặt cho đội ngũ xây dựng nó chưa từng nhìn thấy
máy giặt lần nào
Một số đặc trưng
7
Thu nhận yêu cầu
Việc phát triển phần mềm thường liên kết chặt
chẽ với nghiệp vụ mà nghiệp vụ thì biến đổi
không ngừng nên các phiên bản mới của sản
phẩm thường được tạo bằng cách thay đổi
phần mềm nhằm hạ thấp chi phí biến đổi
Một số đặc trưng
8
Thu nhận yêu cầu
Tại sao yêu cầu là quan trọng?
Nguyên nhân thất bại của dự án (RE-62%)
1. Những yêu cầu không đầy đủ - Incomplete
requirements (13.1%)
2. Lack of user involvement (12.4%)
3. Lack of resources (10.6%)
4. Unrealistic expectations (9.9%)
5. Lack of executive support (9.3%)
6. Changing requirements and specifications
(8.7%)
7. Lack of planning (8.1%)
8. System no longer needed (7.5%)
Thu nhận yêu cầu
Ai thành công ???
For the first half of the 20th century, the Indian
and Harley Davidson motorcycle manufactures
were fierce competitors.
In WWII the U. S. Army asked for a 500 cc
motorcycle.
Indian made one for them.
Harley Davidson built a 750 cc motorcycle.
Have any of you heard of a Indian motorcycle?
10
Thu nhận yêu cầu
Một yêu cầu là một đặc trưng của hệ thống, hay
là sự mô tả những việc, mà hệ thống có khả năng
thực hiện để hoàn thành mục tiêu của hệ thống
2. Yêu cầu (requirement)
11
Thu nhận yêu cầu
1. A condition or capability needed by a user to
solve a problem or achieve an objective.
2. A condition or capability that must be met or
possessed by a system or system component to
satisfy a contract, standard, specification, or other
formally imposed document.
3. A documented representation of a condition or
capability as in 1 or 2.
Theo IEEE 1990
12
Thu nhận yêu cầu
13
Yêu cầu?
“Tôi không có thời gian
để viết yêu cầu!
Bạn không thấy tôi đang
bận gỡ lỗi?”
Thu nhận yêu cầu
Yêu cầu
Yêu cầu có thể được ràng buộc bởi hợp đồng hay
văn bản
Có những yêu cầungầm định (implicit)
Mộtyêucầucóthểđượcnhậnbiết(known,
spoken)/ không nhậnbiết (forgotten, unspoken…)
Thu nhận yêu cầu
Khả thi - Feasible
Có giá trị - Valid
Không nhập nhằng - Unambiguous
Dễ kiểm chứng - Verifiable
Dễ biến đổi - Modifiable
Toàn vẹn - Consistent
Đầy đủ -Complete
Lần vết được - Traceable
Đặc trưng của yêu cầu
15
16
Thu nhận yêu cầu
3. Phân loại yêu cầu
17
…….
Thu nhận yêu cầu
18
Yêu cầu hệ thống
Yêu cầu chức năng: chức năng dịch vụ hệ thống
cung cấp
Yêu cầu phi chức năng: những ràng buộc về tiêu
chuẩn, thời gian, qui trình phát triển…, chủ yếu là
những yêu cầu về chất lượng
Ràng buộc: phản ảnh những đặc trưng của miền
ứng dụng. Chúng có thể là những yêu cầu chức
năng hay yêu cầu phi chức năng.
Thu nhận yêu cầu
Yêu cầu chức năng
Yêu cầu chức năng chỉ ra những gì hệ thống làm,
chúng thường quan hệ các use-case hay những
qui tắc nghiệp vụ (business rule)
Một số yêu cầu chức năng
Chức năng tính toán
Chức năng lưu trữ
Chức năng tìm kiếm
Chức năng kết xuất
Chức năng backup, restore
Chức năng đa người dùng
Chức năng đa phương tiện…
Thu nhận yêu cầu
20
Ví dụ
Trong hệ thống quản lý thư viện
Người dùng có thể tìm kiếm, download, in những bài
báo
Người dùng được cấp một vùng lưu trữ riêng để có
thể copy để lưu trữ tài liệu lâu dài…
Thu nhận yêu cầu
Yêu cầu phi chức năng
Một số yêu cầu phi chức năng
Độ tin cậy, thời gian đáp ứng, các yêu cầu về lưu trữ…
Các chuẩn được sử dụng, các công cụ CASE, ngôn ngữ
lập trình…
Yêu cầu của người sử dụng: dễ sử dụng, thân thiện
Ràng buộc về ngân sách
Phù hợp với các chính sách của tổ chức sử dụng hệ
thống
Yêu cầu tương thích giữa phần cứng và phần mềm
Các yêu cầu từ các tác nhân ngoài khác…
Thu nhận yêu cầu
22 CNPM/NN
Yêu cầu phi chức năng
Thu nhận yêu cầu
23
Ví dụ
Trong hệ thống quản lý thư viện
Yêu cầu sản phẩm: giao diện người dùng không
chứa frame và applet java
Yêu cầu tổ chức: qui trình phát triển hệ thống và
tài liệu phân phối phải phù hợp theo tiêu chuẩn
“STAN-07” (sử dụng ngôn ngữ, phương pháp thiết
kế…)
Yêu cầu ngoài: hệ thống không được lộ thông tin
của khách hàng (tên, số tham chiếu…)
Thu nhận yêu cầu
Yêu cầu nghiệp vụ (Business requirements)
Yêu cầu người dùng (User requirements)
Yêu cầu chức năng (Functional requirements)
Các mức yêu cầu
24
Thu nhận yêu cầu
Biễu diễn các mục tiêu của tổ chức hay khách
hàng yêu cầu hệ thống phải có
Yêu cầu nghiệp vụ thường do người tài trợ cho dự
án, khách mua phần mềm, người quản lý các
người dùng, bộ phận tiếp thị (maketing)…
Thường được ghi nhận trong phần đặc tả (vision)
và phạm vi (scope) của tài liệu, đôi khi còn được
gọi là tuyên bố dự án (project charter) hay tài liệu
yêu cầu thị trường (market requirements
document)
Yêu cầu nghiệp vụ
25