1
THI
THI
Ế
Ế
T K
T K
Ế
Ế
V
V
À
À
XÂY D
XÂY D
Ự
Ự
NG PH
NG PH
Ầ
Ầ
N M
N M
Ề
Ề
M
M
(SOFTWARE DESIGN AND CONSTRUCTION)
(SOFTWARE DESIGN AND CONSTRUCTION)
Năm
Năm
2. Xác định quá trình phát triểncácyêucầu
phầnmềm
3. Xây dựng khả năng (vision) và phạmvi
(scope) củaphầnmềm
4. Xác định các nhóm ngườisử dụng và đặc
tính củahọ và đạidiện tiêu biểuchomỗi
nhóm
5. Phân tích và xác định các yêu cầuphầnmềm
dựatrêncácđạidiệncủa các nhóm NSD
6. Xây dựng các đặctínhxácđịnh chấtlượng
yêu cầuvàcácyêucầu khác (non-functional
requirement)
4
1.2.1. Phân tích bài toán (vấn đề)
z [Dean Leffingwell]
• Problem analysis is the process of understanding
real-world problems and user's needs and
proposing solutions to meet those needs.
• The goal of problem analysis is to gain a better
understanding, before development begins, of the
problem being solved.
• To identify the root cause, or the problem behind
the problem, ask the people directly involved.
• Identifying the actors on the system is a key step
in problem analysis
5
1.2.1. Phân tích bài toán (vấn đề)
z [Dean Leffingwell] - The 5 specific steps
that must be taken in order to achieve the
goal:
problem
8
1.2.1. Phân tích bài toán (vấn đề)
z Step 3: Identify the Stakeholders and the
Users
• Who are the users of the system?
• Who is the customer (economic buyer) for the
system?
• Who else will be affected by the outputs that the
system produces?
• Who will evaluate and bless the system when it is
delivered and deployed?
• Are there any other internal or external users of the
system whose needs must be addressed?
• Who will maintain the new system?
• Is there anyone else?
9
1.2.1. Phân tích bài toán (vấn đề)
z Step 4: Define the Solution System
Boundary
• Who will supply, use, or remove information from
the system?
• Who will operate the system?
• Who will perform any system maintenance?
• Where will the system be used?
• Where does the system get its information?
• What other external systems will interact with the
system?
10
1.2.1. Phân tích bài toán (vấn đề)
ngắn gon trong 3-8 trang theo cấutrúcnhư sau:
13
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
z Cấutrúccủatàiliệu:
1. Yêu cầuphầnmềm(mức cao business)
1.1. Cơ sở (background)
1.2. Cơ hội
1.3. Đốitượng
1.4. Yêu cầu khách hàng hay yêu cầuthị trường
1.5. Các giá trị cung cấp cho khách hàng
1.6. Các rủiro
2. Khả năng củaphầnmềm (vision of solution)
2.1. Các khả năng
2.2. Các đặc điểm
2.3. Các phụ thuộcvàchấpnhận
14
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
z Cấutrúccủatàiliệu:
3. Phạmvi vàgiớihạn (scope and limitation)
3.1. Phạmvi của phiên bản đầu
3.2. Phạmvi củacácphiênbảntiếp theo
3.3. Hạnchế và ngoạilệ
4. Ngữ cảnh công việc (business context)
4.1. Tiểusử khách hàng
4.2. Các trong số dự án
5. Các yếutố thành công củadự án
15
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
Mô tả các rủirocủa công việc khi phát triểnphầnmềm.
Đánh giá các rủirovàcácphương pháp tránh
17
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
2. Khả năng củaphầnmềm (vision of solution)
Mô tả cáckhả năng củaphầnmềm. ởđay sẽ không mô tả
các chứcnăng phầnmềm
2.1. Các khả năng
Mô tả chính xác ngắngọncácmục đích dài hạncủaphần
mềm
2.2. Các đặc điểm
Danh sách các đặc điểm chính củaphầnmềm. Các đặc
điểm này sẽ khách những phầnmềmtương tự như thế
nào
2.3. Các phụ thuộcvàchấpnhận
Ghi nhậnlạicácphụ thuộcvàcácchấpnhận đãthực
hiên trong phầnmềm
18
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
3. Phạmvi vàgiớihạn (scope and limitation)
Mô tả các giớihạnvề khả năng củaphầnmềm. Phần
mềmchỉ giải quyết bài toán ở mức độ như vậy
3.1. Phạmvi của phiên bản đầu
Các phạmvi của phiên bản đầu (1.0)
3.2. Phạmvi củacácphiênbảntiếp theo
Các phạmvi củacácphiênbảntiếp theo
3.3. Hạnchế và ngoạilệ
Mô tả các hạnchế và ngoạilệ củaphầnmềm
(3) Khái niệm Product Champion: Những đạidiện
tiêu biểucủatừng nhóm ngườisử dụng. Trên
thựctế các yêu cầuphầnmềmsẽđược phát
hiệntừ những khách hàng này
1.2.3. Xác định các nhóm ngườisử dụng và đặctínhcủa
họ và đạidiệntiêubiểuchomỗinhóm
21
1.2.3. Xác định các nhóm ngườisử dụng và đặctínhcủahọ
và đạidiệntiêubiểuchomỗi nhóm
Manager
Analyst 1
Analyst 2
Analyst n
Product
Champion 1
Product
Champion 2
Requirement
Product
Champion n
Requirement
Requirement
22
1.2.4 Phân tích và xác định các yêu cầuphầnmềmdựa
trên các đạidiệncủa các nhóm NSD
Nguyên tắccủa phát hiệnyêucầuphầnmềm:
(1) định nghĩaphạmvi vàgiớihạnphầnmềm
(2) Xác định các phân nhóm ngườisử dụng
(3) Xác định các đạidiệncủatừng nhóm
(4) Xác định Product Champion củatừng nhóm
z Một trong những kỹ thuậttiêubiểu để xác định
và phát hiệncácyêucầusử dụng là “Trường
hợpsử dụng”- use-case
25
1.2.4 Phân tích và xác định các yêu cầuphầnmềmdựa
trên các đạidiệncủa các nhóm NSD
z Use-case: Thể hiệntậphợpcáctương tác
giữa các tác nhân (actor) và hệ thống
z Actor (tác nhân):
z Trường hợpsử dụng: