Tải bản đầy đủ (.pdf) (38 trang)

THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM - Chương 1: Tổng hợp và phân tích các yêu cầu phần mềm potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.6 MB, 38 trang )

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


h
h


c
c
2007
2007
-
-
2008
2008
Giáo viên: TS.Huỳnh QuyếtThắng
BM Công nghệ phầnmềm
Khoa CNTT, ĐHBK HN
2
Chương 1. Tổng hợpvàphântíchcácyêucầuphầnmềm
1. Các vấn đề và khái niệmtrongyêucầuphầnmềm
2. Phát hiệncácyêucầuphầnmềm (Software Elicitation)
3. Xây dựng các đặc tính xác định chấtlượng yêu cầuvàcác
yêu cầu khác
4. Đặctả các yêu cầuphầnmềm
5. Xác định nguồngốcyêucầuvàma trận theo dõi các yêu
cầuphầnmềm
6. Thẩm định xác minh các yêu cầuphầnmềm (verification
requirement)
3
1.2. Phát hiện các yêu cầuphầnmềm(Software
Elicitation)
1. Phân tích bài toán

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:

• Gain agreement on the problem definition.
• Understand the root causes—the problem behind
the problem.
• Identify the stakeholders and the users.
• Define the solution system boundary.
• Identify the constraints to be imposed on the
solution.
6
1.2.1. Phân tích bài toán (vấn đề)
z Step 1: Gain Agreement on the Problem Definition
• Simply write the problem down and see whether
everyone agrees.
• The Problem Statement:
Table 4-1. Problem statement format
Element Description
The problem of Describe the problem.
affects Identify stakeholders affected by the problem.
the result of which Describe the impact of this problem on
stakeholders and business activity.
Benefits of Indicate the proposed solution and list a few key
benefits.
7
1.2.1. Phân tích bài toán (vấn đề)
z Step 2: Understand the Root Causes—The Problem
Behind the Problem
• Your team can use a variety of techniques to gain an
understanding of the real problem and its real causes.
One such technique is "root cause" analysis, which is
a systematic way of uncovering the root, or underlying,
cause of an identified problem or a symptom of a

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 đề)

z Step 5: Identify the Constraints to Be
Imposed on the Solution
• Potential system constraints: Economic, Political,
Technical, System, Environmental, Schedule and
resources
11
1.2.1. Xác định quá trình phát triển các yêu cầuphần
mềm
z Xác định các bướcvàtàiliệumôtả quy trình chúng ta
sẽ thựchiện quá trình phát triểncácyêucầuphần
mềm
z Mô tả phương pháp xác định các NSD trong phạmvi
bài toán củaphầnmềmvàcáckỹ thuậtsẽ sử dụng để
phát hiệncácyêucầuphầnmềm
z Mô tả các đặctả hoặc các mô hình phân tích củaphần
mềm
z Các thông tin cho mỗiyêucầu, trọng số củayêucầu
z Các bướctiến hành phá hiệncácyêucầu, phân tích
yêu cầu
12
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
z Khả năng và phạmvi củaphầnmềmtậphợpcác
yêu cầuphầnmềm ở mức độ cao (business
requirement)
z Mô tả khả năng, mụctiêucủaphầnmềm, các
phạmvi ứng dụng củaphầnmềm, các hạnchế
củaphầnmềm, mộtsốđặc điểmcủa ứng dụng: ai
sử dụng, trong mô trường nào
z Thông thường tấtcả các thôg tin này đượcmôtả

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

phầnmềm
1. Yêu cầuphầnmềm(mức cao business requirement)
Mô tả các đặc điểm chính mà phầnmềmmớisẽ cung
cấp cho khách hàng. Thông thường phầnnàyrất khác
nhau cho những phầnmềm khác nhau
1.1 Cơ sở (background)
Mô tả lý do hợplýcần phát triểnphầnmềmmới: tai
sao, cơ sở nào. Có thể giảithíchtổng thể lịch sử hoặc
tình huống quyết định cầnphảixâydựng phầnmềm
1.2. Cơ hội (business opportunity)
Mô tả cơ hộitrênthị trường đang tồntạivấn đề mà
phầnmềmsẽ giải quyết. Có thể mô tả ngắngọnmộtsố
phầnmềmtương tự và các đặc tính của chúng và giải
thích tại sao càan làm phầnmềmnày
16
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
1.3. Đốitượng/mụctiêu
Mô tả mụctiêumàphầnmềmgiảiquyết
1.4. Yêu cầu khách hàng hay yêu cầuthị trường
Mô tả các đốitượng khách hàng mà phầnmềmsẽ phục
vụ.
1.5. Các giá trị cung cấp cho khách hàng
Mô tả chi tiếtcáckhả năng củaphầnmềmsẽ cung cấp
cho khách hàng:
-Khả năng giảiquyết công việc
-Khả năng tiếtkiệm
-Khả năng tựđộnghóa các công việctrước đây

1.6. Các rủiro

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

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
19
1.2.2. Xây dựng khả năng (vision) và phạm vi (scope) của
phầnmềm
4. Ngữ cảnh công việc (business context)
4.1. Tiểusử khách hàng
Các đặc điểmcủa khách hàng:
Phân loại khách hàng
4.2. Các trong số dự án
Chia làm 03 loại:
Các mục tiêu chính củaphầnmềm(objectives)
Các ràng buộcvàhạnchế (constraint)
Mức độ tự do củaphầnmềm(khả năng cân đốigiữamục
tiêu và các ràng buộc)
5. Các yếutố thành công củadự án
Các yếutố làm dự án khả thi
Các yếutố chứng tỏ khảăng cạnh tranh củaphầnmềm
20
(1) Phân lớpngườisử dụng phầnmềm (user
classes)
Phân loại theo đặc điểm
Phân loại theo vị trí địalý
Phân loại theo vai trò công việc
Phân loại theo chứcnăng
Liệt kê các phân loại(cáclớp) và mô tả chi tiết
các đặc điểmcủaNSD ở từng lớp
(2) Tìm các NSD tiêu biểu (presentative user)

(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

(5) Lựachọnkỹ thuật phát hiệnyêucầuphầnmềm
(6) áp dụng kỹ thuậtchotừng đạidiện - Product Champion
(7) Xây dựng các tiêu thứcchấtlượng
(8) Chi tiếthóa(chuyển hóa) các trường hợpsử dụng thành
chứcnăng phầnmềm
(9) Xem xét các trường hợpsử dụng và chứcnăng
(10) Phấttriển mô hình phân tích, gảithíchvàlàmrõvớicác
khách hàng
23
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:
(11) Phá ttriểnvàđánh giá giao diệnchotừng yêu cầu
(12) Phát triểncáctrường hợpkiểmthử cho các yêu cầu
(13) Sử dụng các trường hợpkiểmthửđểkiểmtra
(14) Lặplạicácbước 6-13 trướckhithiếtkế
1 2
3 4 65
7
8 9
10 11 1312
24
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 Phát hiệncácyêucầuphầnmềmlàmột công
việcphứctạp
z Đâychínhlàcầunối để giải quyết bài toán
z Đâychínhlàcầunốigiữa PTV và NSD
z Đòi hỏirất nhiềunỗ lực và các phẩmchấtcủa
PTV

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:

×