1
CNPM/NN
CÔNG NGHỆ PHẦN MỀM
Chương 3
Phân t
Phân t
í
í
ch: K
ch: K
ỹ
ỹ
thu
thu
ậ
ậ
t yêu c
t yêu c
ầ
ầ
u RE
u RE
(Requirements Engineering)
MÔN HỌC
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
2
CNPM/NN
K
K
ỹ
ỹ
thu
thu
ậ
ậ
t yêu c
t yêu c
ầ
ầ
u RE
u RE
3.1 Yêu cầu
3.1.1 Yêu cầu là gì?
3.1.2 Phân loại yêu cầu
3.1.3 Thế nào là một yêu cầu tốt?
3.2 Quy trình xác định yêu cầu
3.2.1 Phân tích khả thi
3.2.2 Phát hiện và phân tích yêu cầu
Các kỹ thuật phát hiện yêu cầu
3.2.3 Đặc tả yêu cầu
3.2.4 Đánh giá yêu cầu
3.3 Quản lý yêu cầu
3
CNPM/NN
M
M
ụ
ụ
c tiêu
c tiêu
Kỹ thuật yêu cầu là một quá trình lặp bao gồm 3 loại
hoạt động
Rút ra yêu cầu từ thực tế (Elicitation)
Đặc tả yêu cầu (Specification)
Xác thực (Validation)
Kết quả của quá trình là những đặc tả về hệ thống
phần mềm
Ta dùng Requirements Engineering thay cho
Requirement Analysis vì nó có nghĩa rộng hơn
4
CNPM/NN
3.1.1 Yêu c
3.1.1 Yêu c
ầ
ầ
u l
u l
à
à
g
g
ì
ì
(Requirement
(Requirement
-
-
IEEE)?
IEEE)?
a) A condition or capability (khả năng) needed by a user to
solve a problem or achieve (dành được, hoàn thành) an
objective (mục tiêu)
b) A Condition or capability that must be met or possessed (sở
hữu) by a system or system component to satisfy a contract
(hợp đồng), standard, specification or other formally (chính
thức) imposed (áp đặt) document
c) A documented representation of a condition or capability as
in definition (a) or (b)
5
CNPM/NN
Yêu c
Yêu c
ầ
ầ
u ph
u ph
ầ
ầ
n m
n m
ề
ề
m
m
Đặc tả yêu cầu phản ánh việc hiểu biết lẫn nhau về
vấn để được giải quyết giữa người phân tích và
khách hàng
Nó là một nền tảng cho hợp đồng giữa khách hàng
và tổ chức phát triển
Hệ thống được phát hành phải được kiểm tra về việc
thỏa mãn các đặc tả yêu cầu
Nó chuẩn bị cho giai đoạn tiếp theo là giai đoạn phân
tích
6
CNPM/NN
M
M
ứ
ứ
c đ
c đ
ộ
ộ
mô t
mô t
ả
ả
yêu c
yêu c
ầ
ầ
u
u
Yêu cầu người dùng:
Viết chủ yếu cho người dùng
Thường bằng ngôn ngữ tự nhiên cộng với các biểu đồ
Mô tả các dịch vụ và những ràng buộc hoạt động
Yêu cầu hệ thống
Tài liệu có cấu trúc mô tả chi tiết chức năng, dịch vụ và ràng
buộc
Có thể là một phần của hợp đồng, xác định những gì cần
phải thực hiện
7
CNPM/NN
Vd: x
Vd: x
á
á
c đ
c đ
ị
ị
nh v
nh v
à
à
đ
đ
ặ
ặ
c t
c t
ả
ả
8
CNPM/NN
Ngư
Ngư
ờ
ờ
i đ
i đ
ọ
ọ
c
c
9
CNPM/NN
K
K
ỹ
ỹ
thu
thu
ậ
ậ
t yêu c
t yêu c
ầ
ầ
u (Requirements Engineering)?
u (Requirements Engineering)?
“The hardest single part of the building a system is
deciding what to build”
[Bro87]
RE là bước chính yếu đầu tiên nhằm giải quyết vấn đề xử lý
dữ liệu. Trong giai đoạn này:
Những yêu cầu của người dùng đối với hệ thống tương lai
được xác định và được tư liệu (document) cẩn thận
Không cần xác định cách nào để giải quyết vấn đề
10
CNPM/NN
Requirements engineering
Requirements engineering
vs
vs
Requirement Analysis
Requirement Analysis
We use the term requirement engineering rather than the
narrower notion (khái niệm) of requirements analysis to
emphasize (nhấnmạnh, làm nổibật) that it is an iterative
and co-operative (cộng tác) process of analyzing a problem
Documenting the resulting observations (quan sát) and
Checking the accuracy (đúng đắn, chính xác) of the
understanding gained (thu được)
Requirements Engineering not only involves technical
concerns of how to prepare the requirements but also play a
dominant role in social and cognitive (kinh nghiệm) aspects
(khía cạnh)
11
CNPM/NN
Qui tr
Qui tr
ì
ì
nh RE
nh RE
the problem
the problem
requirements
requirements
elicitation
elicitation
build a
build a
prototype
prototype
create
create
analysis
analysis
models
models
develop
Specification
Review
Review
12
CNPM/NN
3.1.2 Phân lo
3.1.2 Phân lo
ạ
ạ
i yêu c
i yêu c
ầ
ầ
u
u
Có 3 loại yêu cầu:
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.
Yêu cầu miền ứng dụng: phản ảnh những đặc trưng của miền
ứng dụng
Có những yêu cầu ngầm định (implicit)
A requirement may be conscious (nhận biết) (known, spoken)
/ unconscious (forgotten, unspoken…)
13
CNPM/NN
Yêu c
Yêu c
ầ
ầ
u ch
u ch
ứ
ứ
c năng
c năng
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…
Yêu c
Yêu c
ầ
ầ
u ch
u ch
ứ
ứ
c năng ch
c năng ch
ỉ
ỉ
ra nh
ra nh
ữ
ữ
ng g
ng g
ì
ì
h
h
ệ
ệ
th
th
ố
ố
ng l
ng l
à
à
m, ch
m, ch
ú
ú
ng
ng
thư
thư
ờ
ờ
ng quan h
ng quan h
ệ
ệ
v
v
ớ
ớ
i nh
i nh
ữ
ữ
ng ngu
ng ngu
ồ
ồ
n đ
n đ
ặ
ặ
c trưng
c trưng
, t
, t
hư
hư
ờ
ờ
ng l
ng l
à
à
c
c
á
á
c use
c use
-
-
case hay nh
case hay nh
ữ
ữ
ng qui t
ng qui t
ắ
ắ
c nghi
c nghi
ệ
ệ
p v
p v
ụ
ụ
(
(
business rule)
business rule)
14
CNPM/NN
V
V
í
í
d
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
15
CNPM/NN
Yêu c
Yêu c
ầ
ầ
u phi ch
u phi ch
ứ
ứ
c năng
c năng
M
M
ộ
ộ
t s
t s
ố
ố
yêu c
yêu c
ầ
ầ
u phi ch
u phi ch
ứ
ứ
c năng
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…
16
CNPM/NN
Phân lo
Phân lo
ạ
ạ
i yêu c
i yêu c
ầ
ầ
u phi ch
u phi ch
ứ
ứ
c năng
c năng
Các yêu cầu về sản phẩm: hiệu năng, độ tin cậy…
Các yêu cầu của tổ chức sử dụng hệ thống: thời gian bàn
giao, yêu cầu phù hợp với hệ thống cũ…
Các yêu cầu ngoài: được xác định từ các tác nhân từ bên
ngoài như các yêu cầu về luật pháp, yêu cầu tôn trọng
tính riêng tư…
17
CNPM/NN
Yêu c
Yêu c
ầ
ầ
u phi ch
u phi ch
ứ
ứ
c năng
c năng
18
CNPM/NN
V
V
í
í
d
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”
Yêu cầu ngoài: hệ thống không được lộ thông tin của
khách hàng
19
CNPM/NN
M
M
ụ
ụ
c tiêu (Goal) v
c tiêu (Goal) v
à
à
đo lư
đo lư
ờ
ờ
ng (measure)
ng (measure)
Những yêu cầu phi chức năng khó phát biểu chính xác,
mơ hồ cần bổ sung bằng mục tiêu và một số đo lường
Ví dụ
Một mục tiêu của hệ thống
Hệ thống dễ sử dụng cho những người đã có kinh nghiệm và
người dùng có thể tùy biến được giao diện làm việc
Một yêu cầu phi chức năng có thể kiểm tra
Người dùng có kinh nghiệm có thể sử dụng tất cả các chức
năng sau 2 giờ huấn luyện. Sau khi huấn luyện người dùng có
kinh nghiệm sẽ không có lỗi trung bình quá 2 lỗi /ngày
20
CNPM/NN
Đo lư
Đo lư
ờ
ờ
ng
ng
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 ti me 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
21
CNPM/NN
Tranh ch
Tranh ch
ấ
ấ
p gi
p gi
ữ
ữ
a c
a c
á
á
c yêu c
c yêu c
ầ
ầ
u phi ch
u phi ch
ứ
ứ
c năng
c năng
Thường xảy ra trong các hệ thống lớn
Ví dụ trong thiết kế mạch
Để trọng lượng và lượng điện tiêu thụ thấp thì cần phải
dùng những chip có trọng lượng nhỏ và tiêu thụ năng
lượng thấp
Nhưng có thể phải sử dụng nhiều chip hơn
22
CNPM/NN
Yêu c
Yêu c
ầ
ầ
u mi
u mi
ề
ề
n
n
ứ
ứ
ng d
ng d
ụ
ụ
ng
ng
Yêu cầu miền ứng dụng được xác định từ lãnh vực ứng
dụng của hệ thống, nó phản ánh các thuộc tính và ràng
buộc của lãnh vực ứng dụng.
Nó có thể là yêu cầu chức năng hoặc phi chức năng.
VD:
Trong hệ thống Quản lý thư viện, do vấn đề bản quyền vài
tài liệu phải được xóa ngay sau khi in
23
CNPM/NN
C
C
á
á
c v
c v
ấ
ấ
n đ
n đ
ề
ề
v
v
ề
ề
yêu c
yêu c
ầ
ầ
u mi
u mi
ề
ề
n
n
ứ
ứ
ng d
ng d
ụ
ụ
ng
ng
Tính hiểu được
Yêu cầu cần diễn đạt theo ngôn ngữ miền ứng dụng, khó
hiểu cho người phát triển
Ẩn ý
Những chuyên gia miền thường quá thông thuộc trong lãnh
vực của mình nên họ thường làm những yêu cầu miền
không tường minh
24
CNPM/NN
Th
Th
ế
ế
n
n
à
à
o l
o l
à
à
m
m
ộ
ộ
t yêu c
t yêu c
ầ
ầ
u t
u t
ố
ố
t?
t?
Correct - a quality that can only be ensured by the customer or
user representative
Possible (feasible khả thi) - a quality that requires knowledge
of the environment on the part of the developer; available
tools, techniques, people and budgets must be able to satisfy
the final requirements
;
Necessary
Prioritized
Very important – absolutely necessary (to be implemented
in the next release)
Important - but not necessary for the next release
Purely (chỉ là) optional - nice to have but implementation
will depend on resources and schedule
25
CNPM/NN
Th
Th
ế
ế
n
n
à
à
o l
o l
à
à
m
m
ộ
ộ
t yêu c
t yêu c
ầ
ầ
u t
u t
ố
ố
t?
t?
Unambiguous (rõ ràng)
Concise (ngắn gọn) - with only the information necessary to
proceed too the next development step; associated history,
costs, schedule and so on are housed elsewhere.
Verifiable (có thể thẩm tra) ( testable, measurable)
Cần chú ý tới những nhu cầu trong tương lai (future needs)