©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 1
Các yêu cầu phần mềm
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 2
Mục tiêu
●
Giới thiệu các khái niệm về yêu cầu người dùng và yêu cầu hệ
thống
●
Mô tả các yêu cầu chức năng và các yêu cầu phi chức năng
●
Giải thích cách thức các yêu cầu phần mềm được tổ chức trong
tài liệu yêu cầu
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 3
Các chủ đề
Yêu cầu là gì?
Các yêu cầu chức năng và phi chức năng
Các yêu cầu người dùng
Các yêu cầu hệ thống
Đặc tả giao diện
Tài liệu yêu cầu phần mềm
Kỹ nghệ yêu cầu (RE)
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 4
Yêu cầu là gì?
●
Yêu cầu có thể giới hạn từ một phát biểu trừu tượng mức cao
về một dịch vụ hoặc một ràng buộc hệ thống đến một đặc tả
chức năng toán học chi tiết.
●
Giới hạn này là không tránh khỏi vì các yêu cầu có thể:
•
Được sử dụng để đấu giá, do đó chúng phải dễ hiểu
cho mọi đối tượng người đọc
•
Có thể là cơ sở của bản hợp đồng – do đó chúng
phải được định nghĩa chi tiết
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 5
Sự trừu tượng hóa yêu cầu (Davis)
“If a company wishes to let a contract for a large software development project, it
must define its needs in a sufficiently abstract way that a solution is not pre-defined.
The requirements must be written so that several contractors can bid for the contract,
offering, perhaps, different ways of meeting the client organisation’s needs. Once a
contract has been awarded, the contractor must write a system definition for the client
in more detail so that the client understands and can validate what the software will
do. Both of these documents may be called the requirements document for the
system.”
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 6
Các kiểu yêu cầu
●
Yêu cầu người dùng
•
Là các phát biểu bằng ngôn ngữ tự nhiên và các biểu đồ về
các dịch vụ mà hệ thống cung cấp và các ràng buộc vận hành
của nó. Được viết cho các khách hàng.
●
Các yêu cầu hệ thống
•
Là các mô tả chi tiết về các chức năng của hệ thống, các dịch
vụ và các ràng buộc vận hành, được trình bày trong một tài liệu
có cấu trúc. Tài liệu này phải định nghĩa chính xác những gì
nên được cài đặt và có thể là một phần của bản hợp đồng giữa
khác hàng và nhà thầu.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 7
Các định nghĩa và các đặc tả
1. The software mu st provide a m eans of representing and
1. accessing extern al les created by other tools.
1.1 The u ser should be provided with facilities to den e the type of
1.2 external les.
1.2 Each extern al le type m ay have an associated tool which m ay be
1.2 applied to th e le.
1.3 Each external le t ype m ay be represented as a speci c icon on
1.2 the user’s display.
1.4 Facilities sh ould be provided for the icon representing an
1.2 external le type to be den ed by th e user.
1.5 Wh en a user selects an icon representing an extern al le, th e
1.2 e%ect of th at selection is to apply th e tool associated with th e type of
1.2 the external le t o the le represented by th e selected icon .
U ser requirem ent denition
System requirem ents specication
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 8
Những người đọc yêu cầu
Client m an agers
System end-u sers
Client engineers
Contractor m an agers
System arch itect s
System end-u sers
Client engineers
System arch itect s
Software developers
Client engineers (perhaps)
System arch itect s
Software developers
U ser
requirem ents
System
requirem ents
Software design
speci cation
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 9
Các yêu cầu chức năng & phi chức năng
●
Các yêu cầu chức năng
•
Là các phát biểu về các dịch vụ mà hệ thống sẽ cung cấp, cách
thức hệ thống phản ứng với các đầu vào đặc biệt và cách thức
hệ thống ứng xử với các tình huống đặc biệt.
●
Các yêu cầu phi chức năng
•
Là các ràng buộc trên các dịch vụ hoặc các chức năng được
yêu cầu bởi hệ thống như các ràng buộc về thời gian, các ràng
buộc về tiến trình phát triển, các chuẩn, …
●
Các yêu cầu miền
•
Là các yêu cầu đến từ miền ứng dụng của hệ thống, thay vì
đến từ người dùng và phản ứng các đặc tính của miền đó.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 10
Các yêu cầu chức năng
●
Mô tả chức năng hoặc các dịch vụ hệ thống
●
Phụ thuộc vào:
•
kiểu phần mềm,
•
những mong đợi của người dùng và
•
kiểu hệ thống ở đó phần mềm được sử dụng.
●
Các yêu cầu chức năng của người dùng có thể:
•
là các phát biểu mức cao về những gì không là các
yêu cầu chức năng hệ thống
•
không là các mô tả dịch vụ hệ thống chi tiết.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 11
Ví dụ: Xét hệ thống LIBSYS
●
LIBSYS:
•
là hệ thống cung cấp một giao diện đơn cho một số
CSDL bài báo trong các thư viện khác nhau.
•
Người dùng có thể tìm kiếm, download và in các bài
báo này cho các nghiên cứu cá nhân.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 12
Ví dụ: các yêu cầu chức năng của
LIBSYS
●
Người dụng có thể tìm kiếm trên toàn bộ các CSDL hoặc một
tập nhỏ các CSDL.
●
Hệ thống sẽ cung cấp các hiển thị phù hợp cho người dùng đọc
các tài liệu trong kho tài liệu.
●
Mọi đơn đặt hàng phải có một định danh duy nhất (ORDER_ID)
mà người dùng có thể copy đến vùng lưu trữ thường trực của
tài khoản.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 13
Sự mơ hồ của các yêu cầu
●
Các vấn đề phát sinh khi các yêu cầu không được phát biểu
chính xác.
●
Các yêu cầu mập mờ có thể được hiểu theo các cách khác
nhau bởi những người phát triển và người dùng.
●
Xét thuật ngữ ‘appropriate viewers’:
•
Ý định của người dùng – Hiển thị với mục đích cụ
thể cho mỗi kiểu tài liệu khác nhau;
•
Người phát triển hiểu – Cung cấp một hiển thị văn
bản mà chỉ ra các nội dung của tài liệu.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 14
Tính đầy đủ & tính phù hợp của các yêu
cầu
●
Về nguyên tắc, các yêu cầu phải đầy đủ và thống
nhất.
●
Tính đầy đủ
Chúng nên chứa mọi mô tả về các tiện ích được yêu
cầu.
●
Thống nhất
Chúng không chứa các xung đột hoặc các mâu
thuẫn trong các mô tả về các tiện ích hệ thống.
=> Trong thực tế, rất khó có thể tạo ra tài liệu yêu cầu
thống nhất và đầy đủ
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 15
Các yêu cầu phi chức năng
●
Các yêu cầu này định nghĩa các thuộc tính và các
ràng buộc của hệ thống. Ví dụ yêu cầu về độ tin cậy,
các yêu cầu về thời gian phản hồi, yêu cầu về lưu
trữ. Các ràng buộc như khả năng của thiết bị vào/ra,
các biểu diễn hệ thống, …
●
Các yêu cầu phi chức năng có thể quan trọng hơn
các yêu cầu chức năng. Nếu chúng không được thỏa
mãn, hệ thống có thể trở nên vô ích.
●
Ví dụ: Hệ thống điều khiển máy bay nếu không tin
cậy => không được phê chuẩn, không được sử dụng.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 16
Phân loại các yêu cầu phi chức năng
●
Các yêu cầu về sản phẩm
•
Các yêu cầu đặc tả rằng sản phẩm được phát hành phải ứng
xử theo cách đặc biệt, ví dụ: tốc độ thực thi, độ tin cậy, etc.
●
Các yêu cầu tổ chức
•
Các yêu cầu nẩy sinh từ các chính sách và các thủ tục của tổ
chức, ví dụ các chuẩn tiến trình được sử dụng, các yêu cầu cài
đặt, etc.
●
Các yêu cầu bên ngoài
•
Các yêu cầu nẩy sinh từ các nhân tố nằm ngoài hệ thống và
tiến trình phát triển nó, ví dụ: Các yêu cầu về khả năng tương
tác, các yêu cầu tương thích, etc.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 17
Các kiểu yêu cầu phi chức năng
Performance
requi rements
Space
requi rements
Us abi l i ty
requi rements
Efci ency
requi rements
Rel i abi l i ty
requi rements
Portabi li ty
requi rements
I nteroperabi l i ty
requi rements
Ethi cal
requi rements
Legis l ative
requi rements
I mpl ementati on
requi rements
Standards
requi rements
Del ivery
requi rements
Sa fety
requi rements
Priva cy
requi rements
Product
requi rements
Organi s ati onal
requi rements
External
requi rements
Non-functi onal
requi rements
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 18
Các VD về yêu cầu phi chức năng
●
Yêu cầu về sản phẩm
8.1 Giao diện người dùng cho LIBSYS nên được cài đặt bởi
HTML mà không chứa các frame hoặc Java applets.
●
Yêu cầu tổ chức
9.3.2 Tiến trình phát triển hệ thống và các tài liệu phát hành phải
theo những gì được định nghĩa trong XYZCo-SP-STAN-95.
●
Yêu cầu ngoài
7.6.5 Hệ thống không được lộ thông tin cá nhân của các khách
hành như họ tên và số tham chiếu đến các thao tác của hệ
thống.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 19
Các mục tiêu và các yêu cầu
●
Các yêu cầu phi chức năng có thể rất khó phát biểu
chính xác và các yêu cầu không chính xác rất khó để
thẩm định.
●
Mục tiêu
•
Mục tiêu phổ biến/chung của người dùng là dễ sử dụng.
●
Các yêu cầu phi chức năng có thể thẩm định
•
Một phát biểu sử dụng một số phép đo có thể được kiểm thử
một cách khách quan.
●
Các mục tiêu hữu ích cho những nhà phát triển vì
chúng truyền tải được các ý định/mong muốn của
những người dùng hệ thống.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 20
Các ví dụ
●
Mục tiêu hệ thống
•
Hệ thống nên dễ sử dụng bởi những người điều khiển có kinh
nghiệm và nên được tổ chức theo cách tối thiểu hóa các lỗi
người dùng.
●
Yêu cầu phi chức năng có thể thẩm định
•
Những người điểu khiển hệ thống có kinh nghiệm có thể sử
dụng mọi chức năng của hệ thống sau 2 tiếng huấn luyện. Sau
thời gian huấn luyện này, số lỗi được tạo bởi họ không vượt
quá 2 lỗi/1 ngày.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 21
Các phép đo yêu cầu
Property Measure
Speed Processed transactions/second
User/Event response time
Screen refresh time
Size M Bytes
Number of ROM chips
Ease of use Training time
Number of help frames
Reliability Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability Percentage of target dependent statements
Number of target systems
Bất cứ khi nào có thể bạn nên chuyển các yêu cầu phi chức năng
thành các yêu cầu có định lượng.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 22
Tương tác các yêu cầu
●
Các xung đột giữa các yêu cầu phi chức năng khác
nhau thường phổ biến trong các hệ thống phức tạp.
●
Hệ thống lái máy bay:
•
Để giảm thiểu trọng lượng, số chips trong hệ thống nên giảm
thiểu.
•
Để giảm thiểu năng lượng tiêu thụ, các chips nguồn điện thấp
hơn nên được sử dụng.
Tuy nhiên sử dụng các chips nguồn điện thấp có
nghĩa răng nhiều chips hơn phải được sử dụng. =>
Yêu cầu nào là then chốt nhât?
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 23
Các yêu cầu miền
●
Nẩy sinh từ miền ứng dụng hơn là từ các yêu cầu của người
dùng. Nó mô tả các đặc tính và các đặc trưng của hệ thống
phản ánh miền ứng dụng.
●
Các yêu cầu miền là các yêu cầu chức năng mới, các ràng buộc
lên các yêu cầu đang tồn tại hoặc định nghĩa các tính toán cụ
thể.
●
Nếu các yêu cầu này không thỏa mãn, hệ thống không thể làm
việc.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 24
Các yêu cầu miền của hệ thống LIBSYS
●
Phải có một giao diện người dùng chuẩn cho mọi CSDL, nên
dựa trên chuẩn Z39.50.
●
Vì các hạn chế bản quyền, một số tài liệu phải được xóa ngay
sau khi đến. Phụ thuộc vào các yêu cầu người dùng, các tài liệu
này sẽ được in cục bộ trên server hệ thống và chuyển bằng tay
đến người dùng hoặc in trên máy in mạng.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 25
Hệ thống bảo vệ tầu
●
Sự giảm tốc độ của tầu được tính như sau:
D
train
= D
control
+ D
gradient
where D
gradient
is 9.81ms
2
* compensated gradient/alpha and
where the values of 9.81ms
2
/alpha are known for different types
of train.