Môn học Công nghệ phần mềm

Trang 1
Giới thiệu:
Công nghệ phần mềm là một ngành không thể thiếu ñược trong lĩnh vực Công
nghệ thông tin. Ngày nay, chúng ta có thể sản xuất ra các hệ thống phần mềm lớn và hữu
ích là nhờ phần lớn vào sự phát triển của Công nghệ phần mềm.
Trong phạm vi giáo trình Công nghệ phần mềm, chúng tôi giới thiệu chi tiết về
vòng ñời phần mềm, các mô hình phát triển phần mềm và các pha cần thực hiện trong
quá trình xây dựng một hệ thống phần mềm, bao gồm: lập kế hoạch, khảo sát, phân tích,
thiết kế, cài ñặt, kiểm thử, tích hợp, bảo trì … ðể từ ñó, giúp sinh viên có ñược những
khái niệm căn bản về Công nghệ phần mềm và có khả năng áp dụng ñể xây dựng một hệ
thống cụ thể.
ðiều kiện tiên quyết:
- Có kiến thức về ngôn ngữ lập trình và ñã từng lập trình các ứng dụng cơ bản
- Có khả năng áp dụng những cấu trúc dữ liệu và giải thuật.
- Có hiểu biết về kiến trúc máy tính, mạng máy tính.
Tài liệu tham khảo:
- R. Pressman, "Software Engineering A Practitioner's Approach", 2001
- Ian Sommerville’s , “Software Engineering 7th Ed.”, 2005
- Các giáo trình, bài giảng môn Công nghệ Phần mềm của Khoa Công nghệ
Thông tin của các trường ðại học trên thế giới.
Mục tiêu: môn học:
Sinh viên có khả năng:
- Hiểu và giải thích ñược quy trình phát triển phần mềm
- Phân tích ñược các yêu cầu của người sử dụng
- Lựa chọn một mô hình quy trình phát triển phần mềm thích hợp cho một sản
phẩm cụ thể.
- Giải thích tầm quan trọng của các hoạt ñộng ñánh giá chất lượng phần mềm.
- Biết ñược phải tạo ra những kết quả gì trong từng giai ñoạn của quy trình phát
triển phần mềm.
- Áp dụng các mô hình thiết kế hệ thống thích hợp cho từng sản phẩm cụ thể.
- Sử dụng các CASE Tool ñể hỗ trợ quá trình phát triển phần mềm.
Môn học Công nghệ phần mềm







Trang 2
Mục lục

Chương 1 Tổng quan về công nghệ phần mềm................................................... 6
1.1 Giới thiệu về một số khái niệm cơ bản ................................................... 6
1.1.1 Phần mềm là gì?.................................................................................. 6
1.1.2 Công nghệ phần mềm là gì?................................................................ 7
1.1.3 Sự khác biệt giữa công nghệ phần mềm và khoa học máy tính?........ 7
1.1.4 Sự khác biệt giữa công nghệ phần mềm và công nghệ hệ thống? ...... 7
1.1.5 Quy trình phần mềm là gì?.................................................................. 8
1.1.6 Mô hình quy trình phát triển phần mềm là gì?.................................... 8
1.1.7 Các chi phí trong công nghệ phần mềm.............................................. 9
1.1.8 Các phương pháp công nghệ phần mềm là gì? ................................. 10
1.1.9 CASE (Computer-Aided Software Engineering).............................. 10
1.2 Thế nào là một phần mềm tốt?.............................................................. 11
1.2.1 Thách thức ñối với công nghệ phần mềm? ....................................... 11
1.3 Vấn ñề về tính chuyên nghiệp và ñúng quy tắc .................................... 11
1.4 Bài tập ................................................................................................... 12
Chương 2 Quy trình xây dựng phần mềm......................................................... 14
2.1 Một số mô hình phát triển phần mềm................................................... 14
2.1.1 Mô hình thác nước ............................................................................ 14
2.1.2 Mô hình xây dựng tiến triển.............................................................. 15
2.1.3 Công nghệ phần mềm dựa thành phần.............................................. 16
2.1.4 Mô hình phát triển lặp lại, tăng thêm................................................ 17
2.1.5 Mô hình xoắn ốc ............................................................................... 17
2.2 Các hoạt ñộng trong quy trình phần mềm............................................. 18
2.2.1 ðặc tả phần mềm .............................................................................. 19
2.2.2 Thiết kế phần mềm và cài ñặt ........................................................... 20
2.2.3 ðánh giá phần mềm.......................................................................... 21
2.2.4 Cải tiến phần mềm............................................................................ 22
2.3 Bài tập ................................................................................................... 22
Chương 3 Yêu cầu hệ thống .............................................................................. 25
3.1 Yêu cầu hệ thống .................................................................................. 25
3.1.1 Yêu cầu chức năng............................................................................ 25
3.1.2 Yêu cầu phi chức năng...................................................................... 26
3.1.3 Yêu cầu miền ứng dụng .................................................................... 28
3.1.4 Một số kỹ thuật ñặc tả yêu cầu hệ thống........................................... 28
3.1.4.1 ðặc tả bằng ngôn ngữ hướng cấu trúc ....................................... 29
3.1.4.2 ðặc tả dựa biểu mẫu (Form-based)............................................ 29
3.1.4.3 Biểu ñồ trình tự.......................................................................... 29
3.2 Yêu cầu của người sử dụng................................................................... 29
3.3 Tài liệu ñặc tả yêu cầu .......................................................................... 29
Môn học Công nghệ phần mềm







Trang 3
3.4 Bài tập ................................................................................................... 30
Chương 4 Quy trình xác ñịnh yêu cầu ............................................................... 32
4.1 Phân tích khả thi.................................................................................... 33
4.2 Phát hiện và phân tích yêu cầu.............................................................. 34
4.2.1 Khung nhìn (Viewpoint) ................................................................... 35
4.2.2 Phỏng vấn.......................................................................................... 36
4.2.3 Kịch bản............................................................................................ 37
4.2.4 Ca sử dụng ........................................................................................ 37
4.3 ðánh giá yêu cầu................................................................................... 38
4.4 Lập kế hoạch quản lý yêu cầu............................................................... 39
4.5 Bài tập ................................................................................................... 40
Chương 5 Các mô hình hệ thống ....................................................................... 41
5.1 Mô hình ngữ cảnh ................................................................................. 41
5.2 Mô hình ứng xử..................................................................................... 42
5.2.1 Mô hình luồng dữ liệu....................................................................... 42
5.2.2 Mô hình máy trạng thái..................................................................... 43
5.3 Mô hình dữ liệu..................................................................................... 43
5.4 Mô hình ñối tượng ................................................................................ 44
5.4.1 Mô hình thừa kế................................................................................ 45
5.4.2 Mô hình kết hợp................................................................................ 46
5.4.3 Mô hình ứng xử................................................................................. 47
5.5 Phương pháp hướng cấu trúc ................................................................ 48
5.6 Bài tập ................................................................................................... 49
Chương 6 Thiết kế kiến trúc .............................................................................. 52
6.1 Thiết kế kiến trúc là gì? ........................................................................ 52
6.2 Tổ chức hệ thống .................................................................................. 53
6.2.1 Kho dữ liệu dùng chung.................................................................... 54
6.2.2 Mô hình client – server ..................................................................... 54
6.2.3 Mô hình phân lớp.............................................................................. 55
6.3 Phân rã hệ thống.................................................................................... 55
6.3.1 Phân rã hướng ñối tượng................................................................... 56
6.3.2 Pipeline hướng chức năng................................................................. 57
6.4 Các chiến lược ñiều khiển..................................................................... 57
6.4.1 ðiều khiển tập trung.......................................................................... 58
6.4.1.1 Mô hình gọi trả lời (call-return)................................................. 58
6.4.1.2 Mô hình quản lý......................................................................... 58
6.4.2 ðiều khiển hướng sự kiện................................................................. 59
6.4.2.1 Mô hình lan truyền (Broadcast) ................................................. 59
6.4.2.2 Mô hình hướng ngắt (Interrupt-driven) ..................................... 59
6.5 Các kiến trúc tham chiếu....................................................................... 60
6.6 Bài tập ................................................................................................... 60
Chương 7 Thiết kế giao diện người dùng .......................................................... 62
7.1 Giao diện người dùng ........................................................................... 62
7.1.1 Tác nhân con người trong thiết kế giao diện .................................... 62
Môn học Công nghệ phần mềm







Trang 4
7.1.2 Các nguyên tắc thiết kế giao diên ..................................................... 63
7.1.3 Biểu diễn thông tin............................................................................ 63
7.2 Quy trình thiết kế giao diện người dùng............................................... 64
7.2.1 Phân tích người sử dụng ................................................................... 65
7.2.2 Lập mẫu thử giao diện người dùng................................................... 66
7.2.3 ðánh giá giao diện người dùng......................................................... 66
7.3 Bài tập ................................................................................................... 66
Chương 8 Cải tiến phần mềm............................................................................ 68
8.1 Bảo trì phần mềm.................................................................................. 68
8.1.1 Dự ñoán bảo trì ................................................................................. 70
8.1.2 Dự ñoán thay ñổi............................................................................... 70
8.2 Các quy trình cải tiến phần mềm.......................................................... 70
8.3 Tái kỹ nghệ hệ thống (System re-engineering)..................................... 73
8.4 Bài tập ................................................................................................... 74
Chương 9 Kiểm thử phần mềm.......................................................................... 75
9.1 Quy trình kiểm thử................................................................................ 75
9.2 Kiểm thử hệ thống ................................................................................ 76
9.2.1 Kiểm thử tích hợp ............................................................................. 76
9.2.2 Kiểm thử ñộc lập............................................................................... 77
9.2.3 Kiểm thử thành phần......................................................................... 78
9.2.3.1 Kiểm thử lớp ñối tượng.............................................................. 79
9.2.3.2 Kiểm thử giao diện..................................................................... 79
9.2.4 Thiết kế các trường hợp kiểm thử..................................................... 80
9.2.5 Tự ñộng kiểm thử.............................................................................. 81
9.3 Bài tập ................................................................................................... 81
Chương 10 Quản lý dự án.................................................................................. 83
10.1 ðịnh nghĩa về quản lý dự án................................................................. 83
10.2 Các hoạt ñộng quản lý........................................................................... 83
10.3 Lập kế hoạch dự án............................................................................... 84
10.4 Lịch biểu của dự án............................................................................... 85
10.5 Quản lý rủi ro........................................................................................ 88
10.6 Bài tập ................................................................................................... 89
Chương 11 Chuẩn và các quy trình hoạt ñộng trong công nghiệp phần mềm... 92
11.1 Các quy trình hoạt ñộng........................................................................ 92
11.1.1 Khái niệm Quy trình ....................................................................... 92
11.1.2 Các quy trình công nghệ liên quan ................................................. 93
11.1.3 Tóm lược một số quy trình ............................................................. 94
11.1.3.1 Quy trình Phân tích Thiết kế (Analysis and Design) ............... 94
11.1.3.2 Quy trình Quản lý Cấu hình phần mềm (Software Configuration
Management) 94
11.1.3.3 Quy trình Triển khai Ứng dụng (Deployment) ........................ 94
11.1.3.4 Quy trình Môi trường thực hiện (Environment) ...................... 94
11.1.3.5 Quy trình Hiện thực Xây dựng chương trình (Implementation)
95
Môn học Công nghệ phần mềm







Trang 5
11.1.3.6 Quy trình Quản lý Dự án (Project Management)..................... 95
11.1.3.7 Quy trình Xác ñịnh Yêu cầu (Requirements) .......................... 95
11.1.3.8 Quy trình Kiểm tra chất lượng (Test) ...................................... 95
11.2 Các vai trò trong hoạt ñộng sản xuất phần mềm................................... 96
11.2.1 Khái niệm vai trò ............................................................................ 96
11.2.2 Các vai trò....................................................................................... 96
11.3 Hệ thống chuẩn trong công nghiệp phần mềm..................................... 96

Môn học Công nghệ phần mềm







Trang 6
Chương 1 Tổng quan về công nghệ phần mềm
Giới thiệu:
Ngày nay, tất cả các nước phát triển ñều phụ thuộc chủ yếu vào các hệ thống phần
mềm. Và càng ngày càng có nhiều hệ thống ñược kiểm soát bởi phần mềm. Do ñó, việc
xây dựng và bảo trì hệ thống phần mềm một cách hiệu quả là yêu cầu cần thiết ñối với
nền kinh tế toàn cầu và của từng quốc gia.
Khái niệm về công nghệ phần mềm ñược ñưa ra lần ñầu tiên vào năm 1968 tại hội
nghị thảo luận về khủng hoảng phần mềm. Công nghệ phần mềm ñề cập tới các lý thuyết,
phương thức và công cụ ñể xây dựng phần mềm chuyên nghiệp, mang lại lợi nhuận cao.
Trong chương ñầu tiên, chúng ta sẽ tìm hiểu về một số khái niệm cơ bản có liên
quan tới phần mềm và công nghệ phần mềm. ðể từ ñó, chúng ta có những hiểu biết cơ
bản ñể tiếp tục nghiên cứu các chương tiếp theo. Ngoài ra, quy trình xây dựng phần mềm
ñòi hỏi phải tuân thủ các nguyên tắc vô cùng chặt chẽ. Do ñó, trong phần cuối chương
này, chúng ta sẽ tìm hiểu về những yêu cầu căn bản ñối với một kỹ sư phần mềm.
Mục tiêu:
- Hiểu rõ các khái niệm liên quan ñến phần mềm và công nghệ phần mềm ñược
trình bày trong phần 1.
- Biết ñược một số nguyên tắc cơ bản về tính chuyên nghiệp và ñúng nguyên
tắc ñối với kỹ sư phần mềm.
- Có thể tham khảo thêm về một số nguyên tắc của “Code of Ethics” ñể hiểu rõ
hơn về các nguyên tắc ñối với một kỹ sư phần mềm.
1.1 Giói thiêu vê môt sô khái niêm cơ bán
Mục tiêu:
Khi tìm hiểu về công nghệ phần mềm, chúng ta thường ñặt ra một số câu hỏi sau:
- Phần mềm là gì?
- Công nghệ phần mềm là gì?
- Sự khác biệt giữa công nghệ phần mềm và khoa học máy tính?
- Sự khác biệt giữa công nghệ phần mềm và công nghệ hệ thống?
- Quy trình phần mềm là gì?
- Mô hình quy trình phát triển phần mềm là gì?
- Chi phí của công nghệ phần mềm bao gồm những gì?
- Các phương pháp công nghệ phần mềm là gì?
- CASE (Computer-Aided Software Engineering) là gì?
- Thế nào là một phần mềm tốt?
- Những thách thức chính ñối với công nghệ phần mềm?
Câu trả lời sẽ ñược trình bày trong các phần tiếp theo. Học viên cần nắm rõ các
kiến thức cơ bản này.
1.1.1 Phần mềm là gì?
ðặt vấn ñề:
- Cho biết một số phần mềm ñã dùng
Môn học Công nghệ phần mềm







Trang 7
- Dựa trên kiến thức của mình, hãy nêu một khái niệm về phần mềm
Phần mềm là các chương trình máy tính và những tài liệu liên quan ñến nó như:
các yêu cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng… Do ñó, chúng ta thấy rằng
ñặc ñiểm của phần mềm là trừu tượng và vô hình.
Các sản phẩm phần mềm ñược chia thành 2 loại:
- Sản phẩm ñại trà (Generic Product): ñược phát triển ñể bán ra ngoài thị
trường, ñối tượng người sử dụng là tương ñối ña dạng và phong phú. Những
sản phẩm phần mềm thuộc loại này thường là những phần mềm dành cho máy
PC.
- Sản phầm theo ñơn ñặt hàng (Bespoke Product hoặc Customised Product):
ñược phát triển cho một khách hàng riêng lẻ theo yêu cầu. Ví dụ: Những hệ
thống phần mềm chuyên dụng, hỗ trợ nghiệp vụ cho một doanh nghiệp riêng
lẻ …
Một phần mềm mới có thể ñược tạo ra bằng cách phát triển các chương trình mới,
thay ñổi và ñiều chỉnh các hệ thống phần mềm ñại trà hoặc tái sử dụng lại các phần mềm
ñã tồn tại.
1.1.2 Công nghệ phần mềm là gì?
ðặt vấn ñề:
- Nhắc ñến công nghệ phần mềm là nhắc ñến những vấn ñề gì?
- Tại sao ngày nay người ta lại sử dụng rất nhiều tới khái niệm "Công nghệ
phần mềm"?
Công nghệ phần mềm là những quy tắc công nghệ (engineering discipline) có liên
quan ñến tất cả các khía cạnh của quá trình sản xuất phần mềm.
Các kỹ sư phần mềm nên tuân theo một phương pháp luận có hệ thống và có tổ
chức trong công việc của họ. ðồng thời, họ nên sử dụng các công cụ và kỹ thuật thích
hợp với vấn ñề cần giải quyết, các ràng buộc và tài nguyên sẵn có.
1.1.3 Sự khác biệt giữa công nghệ phần mềm và khoa học máy
tính?
ðặt vấn ñề:
- Khoa học máy tính ñề cập tới những vấn ñề gì?
- Hãy ñưa ra một số ví dụ thuộc lĩnh vực khoa học máy tính và công nghệ phần
mềm
Khoa học máy tính ñề cấp tới lý thuyết và những vấn ñề cơ bản; còn công nghệ
phần mềm ñề cập tới các hoạt ñộng xây dựng và ñưa ra một phần mềm hữu ích.
Khi sự phát triển của phần mềm trở lên mạnh mẽ thì các lý thuyết của khoa học
máy tính vẫn không ñủ ñể ñóng vai trò là nền tảng hoàn thiện cho công nghệ phần mềm.
1.1.4 Sự khác biệt giữa công nghệ phần mềm và công nghệ hệ
thống?
ðặt vấn ñề:
- Học viên ñã bao giờ nghe nhắc tới Công nghệ hệ thống hay chưa?
Môn học Công nghệ phần mềm







Trang 8
- Hãy trình bày một số vấn ñề có liên quan ñến Công nghệ hệ thống.
- Công nghệ phần mềm có phải là Công nghệ hệ thống không?
Công nghệ hệ thống (hay còn gọi là kỹ nghệ hệ thống) liên quan tới tất cả các
khía cạnh của quá trình phát triển hệ thống dựa máy tính bao gồm: phần cứng, phần mềm,
và công nghệ xử lý. Công nghệ phần mềm chỉ là một phần của quy trình này, nó có liên
quan tới việc phát triển hạ tầng phần mềm (software infrastructure), ñiều khiển, các ứng
dụng và cơ sở dữ liệu trong hệ thống.
Kỹ sư hệ thống phải thực hiện việc ñặc tả hệ thống, thiết kế kiến trúc hệ thống,
tích hợp và triển khai.
1.1.5 Quy trình phần mềm là gì?
ðặt vấn ñề:
- Hãy cho biết ñể sản xuất một phần mềm, người ta phải thực hiện những công
việc nào?
Quy trình phần mềm là một tập hợp các hành ñộng mà mục ñích của nó là xây
dựng và phát triển phần mềm. Những hành ñộng thường ñược thực hiện trong các quy
trình phần mềm bao gồm
- ðặc tả: ñặc tả những gì hệ thống phải làm và các ràng buộc trong quá trình
xây dựng hệ thống.
- Phát triển: xây dựng hệ thống phần mềm.
- Kiểm thử: kiểm tra xem liệu phần mềm ñã thoả mãn yêu cầu của khách hàng.
- Mở rộng: ñiều chỉnh và thay ñổi phần mềm tương ứng với sự thay ñổi yêu
cầu.
Những loại hệ thống khác nhau sẽ cần những quy trình phát triển khác nhau. Ví
dụ, hệ thống thời gian thực yêu cầu phải hoàn thành ñặc tả hệ thống trước khi chuyển
sang giai ñoạn xây dựng nó. Nhưng với hệ thống thương mại ñiện tử, chúng ta có thể vừa
ñặc tả vừa xây dựng chương trình một cách ñồng thời.
Tuy nhiên, nếu chúng ta không sử dụng một quy trình phát triển hệ thống thích
hợp thì có thể làm giảm chất lượng của hệ thống và tăng chi phí xây dựng.
1.1.6 Mô hình quy trình phát triển phần mềm là gì?
Mô hình quy trình phát triển phần mềm là một thể hiện ñơn giản của một quy
trình phần mềm, và nó ñược biểu diễn từ một góc ñộ cụ thể.
Sau ñây là một số ví dụ về mô hình quy trình phát triển phần mềm:
- Mô hình luồng công việc (workflow): mô tả một chuỗi các hành ñộng cần
phải thực hiện.
- Mô hình luồng dữ liệu (data-flow): mô tả luồng thông tin.
- Mô hình Vai trò/Hành ñộng (Role/action): chỉ ra vai trò của những người liên
quan trong quy trình phần mềm và nhiệm vụ của từng người.
Ngoài ra, còn có một số mô hình quy trình chung cũng ñược ñễ xuất như:
- Mô hình thác nước (waterfall)
- Mô hình phát triển lặp lại (Iterative development)
Môn học Công nghệ phần mềm







Trang 9
- Mô hình công nghệ phần mềm dựa thành phần (Component-based software
engineering).
1.1.7 Các chi phí trong công nghệ phần mềm
ðặt vấn ñề:
- ðể xây dựng một hệ thống phần mềm chúng ta phải ñầu tư cho những hạng
mục nào?
- Tất cả các hệ thống phần mềm có cùng các hạng mục chi phí hay không? Tại
sao?
ðể xây dựng một hệ thống phần mềm, chúng ta thường phải ñầu tư một khoản
ngân sách khá lớn. Theo thống kê cho thấy, chi phí cho việc xây dựng phần mềm chiếm
một phần ñáng kể của GNP ở tất cả các nước phát triển.
Chi phí phần mềm thường chiếm phần lớn chi phí của cả hệ thống máy tính. Chi
phí phần mềm trên máy PC thường lớn hơn chi phí phần cứng. Chi phí phần mềm dành
cho việc bảo trì phần mềm thường lớn hơn chi phí xây dựng phần mềm. ðối với những
hệ thống hoạt ñộng trong thời gian dài, thì chi phí bảo trì thường lớn gấp nhiều lần so với
chi phí xây dựng.
Xấp xỉ 60% chi phí là chi phí xây dựng và 40% là chi phí kiểm thử. ðối với
những phần mềm làm theo yêu cầu của khách hàng, chi phí mở rộng thường vượt quá chi
phí xây dựng.
Chi phí biến ñổi tuỳ thuộc vào từng loại hệ thống ñược xây dựng và các yêu cầu
về ñặc ñiểm của hệ thống như: hiệu năng và ñộ tin cậy của hệ thống.

Việc phân bổ chi phí cũng phụ thuộc vào mô hình phát triển hệ thống ñược sử
dụng. Sau ñây là bảng so sánh chi phí của 3 mô hình phổ biến nhất, thường ñược sử
dụng:
Mô hình thác nước:
Chi phí của các pha ñặc tả, thiết kế, cài ñặt, tích hợp và kiểm thử ñược xác ñịnh
một cách riêng rẽ.

Mô hình phát triển lặp lại :
Môn học Công nghệ phần mềm







Trang 10
Không thể phân biệt rõ chi phí cho từng pha trong quy trình.
Chi phí ñặc tả giảm vì ñây là ñặc tả ở bậc cao.
Tại mỗi bước lặp, các pha trong quy trình xây dựng hệ thống ñược thực hiện lại
nhằm thực hiện các yêu cầu hệ thống khác nhau ở từng bước lặp.
Sau khi ñã thực hiện hết các bước lặp, phải có chi phí kiểm thử toàn bộ hệ thống.

Mô hình công nghệ phần mềm hướng thành phần
Chi phí phụ thuộc nhiều vào việc tích hợp và kiểm thử hệ thống.

Ngoài chi phí xây dựng, chúng ta còn phải ñể một phần lớn chi phí phục vụ cho
việc thay ñổi phần mềm sau khi nó ñã ñược ñưa vào sử dụng. Chi phí cải tiến phần mềm
thay ñổi phụ thuộc vào từng loại phần mềm.

1.1.8 Các phương pháp công nghệ phần mềm là gì?
Phương pháp công nghệ phần mềm bao gồm các mô hình hệ thống, các ký pháp,
quy tắc, hướng dẫn thiết kế và quy trình ñể xây dựng phần mềm một cách dễ dàng, ñảm
bảo chất lượng cao và chi phí hiệu quả.
Một số phương pháp công nghệ phần mềm ñã ñược ñề xuất như: Phân tích hướng
cấu trúc tập trung vào việc xác ñịnh các chức năng cơ bản của hệ thống; phương pháp
hướng ñối tượng tập trung vào việc ñịnh nghĩa các ñối tượng và sự cộng tác giữa chúng...
1.1.9 CASE (Computer-Aided Software Engineering)
Các hệ thống CASE thường ñược sử dụng ñể hỗ trợ các hoạt ñộng trong quy trình
xây dựng phần mềm. Có hai loại CASE:
- Upper-CASE: công cụ ñể hỗ trợ các hoạt ñộng ñầu tiên như ñặc tả yêu cầu và
thiết kế.
Môn học Công nghệ phần mềm







Trang 11
- Lower-CASE: công cụ ñể hỗ trợ các hoạt ñộng sau như lập trình, gỡ lỗi và
kiểm thử.
1.2 Thê nào là môt phân mêm tôt?
ðặt vấn ñề:
- Bạn có thường xuyên sử dụng phần mềm không?
- Theo bạn, thế nào là một phần mềm tốt?
Phần mềm phải ñáp ứng các chức năng theo yêu cầu, có hiệu năng tốt, có khả
năng bảo trì, ñáng tin cậy, và ñược người sử dụng chấp nhận.
- Khả năng bảo trì: phần mềm phải ñược ñiều chỉnh và mở rộng ñể thoả mãn
những yêu cầu thay ñổi.
- Mức ñộ tin cậy: phần mềm phải ñược tin cậy, bảo mật và chính xác.
- Hiệu quả: phần mềm không nên sử dụng lãng phí tài nguyên của hệ thống.
- Khả năng ñược chấp nhận: người sử dụng phải chấp nhận phần mềm. ðiều ñó
có nghĩa là nó phải dễ hiểu, sử dụng ñược và tương thích với các hệ thống
khác.
1.2.1 Thách thức ñối với công nghệ phần mềm?
ðặt vấn ñề:
- Nếu quan tâm ñến sự phát triển của công nghệ phần mềm, bạn hãy cho biết
những thách thức mà công nghệ phần mềm phải ñối mặt.

Công nghệ phần mềm trong thế kỷ 21 phải ñối mặt với rất nhiều thách thức to lớn.
Với mỗi thách thức này, chúng ta phải có những giải pháp cụ thể.
- Không ñồng nhất: phát triển các kỹ thuật xây dựng phần mềm ñể giải quyết sự
không ñồng nhất về môi trường thực hiện và nền tảng hạ tầng.
- Chuyển giao: phát triển các kỹ thuật nhằm dẫn tới việc chuyển giao phần mềm
tới người sử dụng nhanh hơn.
- ðộ tin cậy: phát triển các kỹ thuật ñể chứng minh rằng phần mềm ñược người
sử dụng nó tin tưởng.
1.3 Vân dê vê tính chuyên nghiêp và dúng quy tàc
ðặt vấn ñề:
- Theo bạn, ñể ñáp ứng ñược các yêu cầu công việc một kỹ sư phần mềm phải
thoả mãn ñược những yêu cầu gì?
Quy trình xây dựng phần mềm ñược thực hiện trong một môi trường chuyên
nghiệp và ñòi hỏi tuân thủ các nguyên tắc một cách chính xác. Do ñó, những kỹ sư phần
mềm phải coi công việc của họ là trách nhiệm to lớn, chứ không ñơn thuần chỉ là việc
ứng dụng kỹ thuật.
Kỹ sư phần mềm phải ứng xử trung thực và cách làm của họ phải rất chuyên
nghiệp và ñúng quy tắc. Trong phần này, chúng ta sẽ trình bày một số nguyên tắc cần
thiết mà một kỹ sư phần mềm phải thực hiện.
Môn học Công nghệ phần mềm







Trang 12
- Sự tin cẩn: kỹ sư phần mềm phải tạo ñược sự tin cẩn từ phía nhân viên và
khách hàng.
- Năng lực: kỹ sư phần mềm không nên trình bày sai khả năng của mình, không
nên nhận những công việc vượt quá khả năng của mình.
- Các quyền về tài sản trí tuệ: kỹ sư phần mềm nên quan tâm về các tài sản trí
tuệ ñược bảo hộ như: bằng sáng chế, quyền tác giả … ñể ñảm bảo rằng tất cả
tài sản trí tuệ của nhân viên và khách hàng ñều ñược bảo hộ.
- Lạm dụng máy tính: kỹ sư phần mềm không nên sử dụng các kỹ năng của
mình ñể gây ảnh hưởng tới người khác. Lạm dụng máy tính có thể ñược hiểu
là những việc tầm thường (Ví dụ: chơi ñiện tử trên máy tính của người khác)
ñến những vấn ñề nghiêm trọng (Ví dụ: phát tán virus).
Vấn ñề về tính chuyên nghiệp và ñúng quy tắc ñối với kỹ sư phần mềm quan
trọng tới mức một số tổ chức ở Mỹ ñã hợp tác ñể phát triển bản Code of Ethics gồm 8
quy tắc liên quan ñến ứng xử và cách ra quyết ñịnh của các kỹ sư phần mềm chuyên
nghiệp.
1.4 Bài tâp
Câu 1:
Cho biết sự khác biệt giữa sản phẩm phần mềm ñại trà và sản phẩm phần mềm
theo yêu cầu.
Câu 2:
Hãy liệt kê 4 ñặc ñiểm quan trọng nhất của một phần mềm.
Câu 3:
Hãy nêu sự khác biệt giữa mô hình quy trình phần mềm và quy trình phần mềm.
Câu 4:
Tại sao phải sử dụng CASE tool? Hãy ñưa ra 2 CASE tool mà bạn biết.
Câu 5:
Kỹ sư phần mềm hay Lập trình viên phải có những kỹ năng hay nhiệm vụ nào sau
ñây? Nếu là Kỹ sư phần mềm chọn True. Nếu là Lập trình viên chọn False.
1. Thành thạo về ngôn ngữ lập trình và viết ñược các chương trình ứng dụng
True False
(Incorrect, Correct)
2. Biết cách cài ñặt chương trình dựa trên những giải pháp hoặc thuật toán cho
sẵn.
True False
(Incorrect, Correct)
3. Có kiến thức về các mô hình quy trình công nghệ phần mềm và có khả năng lựa
chọn một mô hình thích hợp vào dự án
True False
(Incorrect, Correct)
4. Biết cách phân tích và ñịnh nghĩa hệ thống thông qua phỏng vấn khách hàng,
thu thập tài liệu, ...
True False
Môn học Công nghệ phần mềm







Trang 13
(Incorrect, Correct)
5. Biết ñược sự khác nhau giữa các quy trình công nghệ phần mềm và thấy ñược
ưu/nhược ñiểm của từng quy trình.
True False
(Incorrect, Correct)
6. Biết cách kiểm thử phần mềm và có thể kiểm thử hệ thống một cách hiệu quả.
True False
(Incorrect, Correct)
Câu 6:
Trong quá trình xây dựng một phần mềm, ñiều quan trọng là chúng ta cần phải
tuân thủ, một chuỗi các hành ñộng ñược dự ñoán trước (bản ñồ chỉ dẫn), nhằm giúp xây
dựng một sản phẩm ñúng tiến ñộ và có chất lượng cao. Bản ñồ chỉ dẫn ñó gọi là gì?
(Quy trình phần mềm)
Câu 7:
Nếu coi phần mềm là một sản phẩm, thì những kết quả cụ thể nào sẽ ñược tạo ra
ñể ñại diện cho một phần mềm?
(Chương trình, Kiến trúc phần mềm, Mã lệnh và các tài liệu có liên quan)


Môn học Công nghệ phần mềm







Trang 14
Chương 2 Quy trình xây dựng phần mềm
Giới thiệu:
Quy trình xây dựng phần mềm (còn gọi tắt là quy trình phần mềm) là một tập hợp
các hành ñộng phải ñược thực hiện trong quá trình xây dựng một hệ thống phần mềm.
Trong chương này, chúng ta sẽ tìm hiểu một số mô hình phát triển phần mềm
thường ñược ứng dụng và ñánh giá ưu và nhược ñiểm của chúng. Sau ñó, chúng ta sẽ
nghiên cứu chi tiết những công việc phải làm trong quá trình xây dựng một phần mềm và
cách thực hiện chúng.
Mục tiêu:
- Hiểu rõ quy trình phần mềm
- Nắm ñược một số mô hình phát triển phần mềm
- Xác ñịnh chi tiết những công việc phải làm trong quy trình phần mềm và cách
thực hiện chúng.
- Có thể ứng dụng những mô hình phát triển phần mềm ñã nghiên cứu trên
những hệ thống phần mềm cụ thể.
2.1 Môt sô mô hình phát triên phân mêm
Giới thiệu:
Mô hình phát triển phần mềm là một thể hiện trừu tượng của quy trình phần mềm.
Nó biểu diễn các ñặc tả về quy trình từ những khía cạnh cụ thể; do ñó, nó chỉ cung cấp
một phần thông tin về quy trình phần mềm.
Phần sau ñây sẽ trình bày năm mô hình phát triển phần mềm phổ biến thường
ñược sử dụng:
- Mô hình thác nước
- Mô hình xây dựng tiến triển
- Công nghệ phần mềm dựa thành phần
- Mô hình phát triển lặp lại, tăng thêm
- Mô hình xoắn ốc
Mục tiêu:
- Phải hiểu rõ năm mô hình phát triển phần mềm cơ bản.
- Phân biệt ñược sự khác nhau giữa các mô hình; ưu và nhược ñiểm của từng
mô hình.
- Biết rõ ñối với loại hệ thống nào thì nên áp dụng mô hình phát triển nào cho
phù hợp.
2.1.1 Mô hình thác nước
Các pha của mô hình thác nước bao gồm:
- Phân tích và xác ñịnh các yêu cầu
- Thiết kế hệ thống và phần mềm
- Cài ñặt và kiểm thử ñơn vị
- Tích hợp và kiểm thử hệ thống
- Vận hành và bảo trì.
Môn học Công nghệ phần mềm







Trang 15
Trong mô hình thác nước, năm pha trên phải ñược thực hiện một cách tuần tự; kết
thúc pha trước, rồi mới ñược thực hiện pha tiếp theo. Do ñó, nhược ñiểm chính của mô
hình thác nước là rất khó khăn trong việc thay ñổi các pha ñã ñược thực hiện. Giả sử, pha
phân tích và xác ñịnh yêu cầu ñã hoàn tất và chuyển sang pha kế tiếp, nhưng lúc này lại
có sự thay ñổi yêu cầu của người sử dụng; thì chỉ còn cách là phải thực hiện lại từ ñầu.
Cho nên, mô hình này chỉ thích hợp khi các yêu cầu ñã ñược tìm hiểu rõ ràng và
những thay ñổi sẽ ñược giới hạn một cách rõ ràng trong suốt quá trình thiết kế. Tuy
nhiên, trong thực tế có rất ít những hệ thống nghiệp vụ có các yêu cầu ổn ñịnh.

2.1.2 Mô hình xây dựng tiến triển
Mô hình xây dựng tiến triển dựa trên ý tưởng xây dựng một mẫu thử ban ñầu và
ñưa cho người sử dụng xem xét; sau ñó, tinh chỉnh mẫu thử qua nhiều phiên bản cho ñến
khi thoả mãn yêu cầu của người sử dụng thì dừng lại.
Có hai phương pháp ñể thực hiện mô hình này:
- Phát triển thăm dò: mục ñích của nó là ñể làm việc với khách hàng và ñể ñưa
ra hệ thống cuối cùng từ những ñặc tả sơ bộ ban ñầu. Phương pháp này
thường bắt ñầu thực hiện với những yêu cầu ñược tìm hiểu rõ ràng và sau ñó,
bổ sung những ñặc ñiểm mới ñược ñề xuất bởi khách hàng. Cuối cùng, khi các
yêu cầu của người sử dụng ñược thoả mãn thì cũng là lúc chúng ta ñã xây
dựng xong hệ thống.
- Loại bỏ mẫu thử: mục ñích là ñể tìm hiểu các yêu cầu của hệ thống. Phương
pháp này thường bắt ñầu với những yêu cầu không rõ ràng và ít thông tin. Các
mẫu thử sẽ ñược xây dựng và chuyển giao tới cho người sử dụng. Từ ñó, ta có
thể phân loại những yêu cầu nào là thực sự cần thiết và lúc này mẫu thử không
còn cần thiết nữa. Như vậy, mẫu thử chỉ có tác dụng ñể làm sáng tỏ yêu cầu
của người sử dụng.
Môn học Công nghệ phần mềm







Trang 16

Tuy nhiên, nhược ñiểm của mô hình xây dựng tiến triển là: thiếu tầm nhìn của cả
quy trình; các hệ thống thường hướng cấu trúc nghèo nàn; yêu cầu các kỹ năng ñặc biệt
(Ví dụ: các ngôn ngữ ñể tạo ra mẫu thử nhanh chóng).
Mô hình xây dựng tiến triển chỉ nên áp dụng với những hệ thống có tương tác ở
mức ñộ nhỏ hoặc vừa; trên một phần của những hệ thống lớn; hoặc những hệ thống có
thời gian chu kỳ tồn tại ngắn.
2.1.3 Công nghệ phần mềm dựa thành phần
Mô hình này dựa trên kỹ thuật tái sử dụng một cách có hệ thống; trong ñó hệ
thống ñược tích hợp từ nhiều thành phần ñang tồn tại hoặc các thành phần thương mại
COTS (Commercial-off-the-shelf).
Các trạng thái chính của quy trình bao gồm:
- Phân tích thành phần sẵn có
- ðiều chỉnh yêu cầu
- Thiết kế hệ thống với kỹ thuật tái sử dụng
- Xây dựng và tích hợp hệ thống

Môn học Công nghệ phần mềm







Trang 17
2.1.4 Mô hình phát triển lặp lại, tăng thêm
Mô hình này ñược ñề xuất dựa trên ý tưởng thay vì phải xây dựng và chuyển giao
hệ thống một lần thì sẽ ñược chia thành nhiều vòng, tăng dần. Mỗi vòng là một phần kết
quả của một chức năng ñược yêu cầu.
Các yêu cầu của người sử dụng ñược ñánh thứ tự ưu tiên. Yêu cầu nào có thứ tự
ưu tiên càng cao thì càng ở trong những vòng phát triển sớm hơn.

Từ ñó, chúng ta có thể thấy rõ một số ưu ñiểm của mô hình phát triển tăng vòng:
- Sau mỗi lần tăng vòng thì có thể chuyển giao kết quả thực hiện ñược cho
khách hành nên các chức năng của hệ thống có thể nhìn thấy sớm hơn.
- Các vòng trước ñóng vai trò là mẫu thử ñể giúp tìm hiểu thêm các yêu cầu ở
những vòng tiếp theo.
- Những chức năng của hệ thống có thứ tự ưu tiên càng cao thì sẽ ñược kiểm
thử càng kỹ.
2.1.5 Mô hình xoắn ốc
Trong mô hình xoắn ốc, quy trình phát triển phần mềm ñược biểu diễn như một
vòng xoắn ốc. Các pha trong quy trình phát triển xoắn ốc bao gồm:
- Thiết lập mục tiêu: xác ñịnh mục tiêu cho từng pha của dự án.
- ðánh giá và giảm thiểu rủi ro: rủi ro ñược ñánh giá và thực hiện các hành
ñộng ñể giảm thiểu rủi ro.
Phát triển và ñánh giá: sau khi ñánh giá rủi ro, một mô hình xây dựng hệ thống sẽ
ñược lựa chọn từ những mô hình chung.
Lập kế hoạch: ñánh giá dự án và pha tiếp theo của mô hình xoắn ốc sẽ ñược lập
kế hoạch.
Môn học Công nghệ phần mềm







Trang 18

2.2 Các hoat dông trong quy trình phân mêm
Giới thiệu:
Trong quy trình phần mềm gồm 4 hoạt ñộng cơ bản. Những hoạt ñộng này bao
gồm:
- ðặc tả: các chức năng của hệ thống và những ràng buộc khi vận hành hệ
thống cần phải ñược xác ñịnh một cách ñầy ñủ và chi tiết.
- Thiết kế và cài ñặt: phần mềm ñược xây dựng phải thoả mãn ñặc tả của nó.
- ðánh giá: phần mềm phải ñược ñánh giá và thẩm ñịnh ñể ñảm bảo rằng nó ñã
thoả mãn tất cả các yêu cầu.
- Cải tiến: phần mềm cần phải cải tiến và ñiều chỉnh ñể phù hợp với những thay
ñổi về yêu cầu hệ thống.
Với mỗi mô hình khác nhau thì các hoạt ñộng này cũng ñược tổ chức theo các
cách khác nhau. Ví dụ, trong mô hình thác nước, chúng ñược tổ chức một cách tuần tự.
Trong mô hình tiến triển, các hoạt ñộng này có thể gối lên nhau. Trong các phần tiếp sau
ñây, chúng ta sẽ nghiên cứu cụ thể từng hoạt ñộng.
Mục tiêu:
- Xác ñịnh rõ những công việc nào cần phải làm trong quy trình phát triển phần
mềm.
- Từng công việc ñó ñược thực hiện cụ thể ra sao
Môn học Công nghệ phần mềm







Trang 19
- Phải nhớ một ñiều rằng: khi xây dựng bất kỳ phần mềm nào, chúng ta ñều
phải thực hiện bốn công việc trên. Tuy nhiên, với việc sử dụng các mô hình
phát triển phần mềm khác nhau thì trình tự thực hiện các công việc trên cũng
khác nhau.
2.2.1 ðặc tả phần mềm
ðặt vấn ñề:
- Công việc ñầu tiên cần phải làm trong quá trình xây dựng phần mềm là gì?
- Tầm quan trọng của việc ñặc tả phần mềm.
ðặc tả phần mềm (hay còn gọi là kỹ thuật xác ñịnh yêu cầu) là quy trình tìm hiểu
và ñịnh nghĩa những dịch vụ nào ñược yêu cầu và các ràng buộc trong quá trình vận hành
và xây dựng hệ thống.
Quy trình xác ñịnh yêu cầu bao gồm bốn pha chính:
- Nghiên cứu khả thi: Nghiên cứu khả thi giúp xác ñịnh những yêu cầu của
người sử dụng có thoả mãn những công nghệ hiện tại hay không. Về góc ñộ
kinh doanh, nghiên cứu khả thi nhằm xác ñịnh hệ thống ñưa ra có mang lại lợi
nhuận không. Việc nghiên cứu khả thi nên ñược thực hiện một cách nhanh
chóng và không quá tốn kém. Kết quả của việc nghiên cứu khả thi sẽ xác ñịnh
có nên tiếp tục xây dựng hệ thống nữa hay không.
- Phân tích và rút ra các yêu cầu: ñây là quy trình ñưa ra các yêu cầu hệ thống
thông qua một số phương pháp như: quan sát hệ thống hiện tại, phỏng vấn và
thảo luận với người sử dụng, phân tích nhiệm vụ, phân tích tài liệu hoặc hệ
thống cũ … Trong pha này, chúng ta có thể phải xây dựng một hoặc nhiều mô
hình hệ thống và các mẫu thử.
- ðặc tả yêu cầu: Pha này sẽ tư liệu hoá những thông tin thu thập ñược. Có hai
loại yêu cầu cần ñược xác ñịnh:
o Yêu cầu của người sử dụng: là những yêu cầu bằng ngôn ngữ tự nhiên
bổ sung thêm cho các biểu ñồ của 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ó. Kiểu yêu cầu này ñược viết bởi
người sử dụng.
o Yêu cầu hệ thống: là những tài liệu có cấu trúc mô tả chi tiết về các
chức năng, dịch vụ và các ràng buộc vận hành của hệ thống. Yêu cầu
hệ thống sẽ ñịnh nghĩa những gì cần phải xây dựng, cho nên nó có thể
trở thành bản hợp ñồng giữa khách hàng và nhà thầu.
- ðánh giá yêu cầu: pha này sẽ kiểm tra lại các yêu cầu xem chúng có ñúng
thực tế hay không, có thống nhất không, có ñầy ñủ không. Nếu phát hiện ra lỗi
thì ta phải chỉnh sửa các lỗi này.
Môn học Công nghệ phần mềm







Trang 20

2.2.2 Thiết kế phần mềm và cài ñặt
ðặt vấn ñề:
- Bỏ qua giai ñoạn thiết kế, sau khi ñặc tả và phân tích yêu cầu, có thể thực hiện
cài ñặt hệ thống ngay ñược không?
- Vai trò của bản thiết kế ñối với giai ñoạn cài ñặt là gì?
Thiết kế phần mềm là quá trình thiết kế cấu trúc phần mềm dựa trên những tài liệu
ñặc tả. Hoạt ñộng thiết kế bao gồm những công việc chính sau:
- Thiết kế kiến trúc: Các hệ thống con cấu thành lên hệ thống cần xây dựng và
mối quan hệ giữa chúng ñược xác ñịnh và tư liệu hoá.
- ðặc tả trừu tượng: với mỗi hệ thống con, phải có một bản ñặc tả về các dịch
vụ của nó và những ràng buộc khi nó vận hành.
- Thiết kế giao diện: với mỗi hệ thống con, các giao diện của nó với những hệ
thống con khác phải ñược thiết kế và tư liệu hoá.
- Thiết kế thành phần: các dịch vụ cung cấp cho các thành phần khác và các
giao diện tương tác với chúng phải ñược thiết kế.
- Thiết kế cấu trúc dữ liệu: cấu trúc dữ liệu ñược sử dụng ñể cài ñặt hệ thống
phải ñược thiết kế một cách chi tiết và cụ thể.
- Thiết kế thuật toán: Các thuật toán ñược sử dụng ñể cung cấp các dịch vụ phải
ñược thiết kế chi tiết và chính xác.
Môn học Công nghệ phần mềm







Trang 21

Cài ñặt là quy trình chuyển ñổi từ tài liệu ñặc tả hệ thống thành một hệ thống
thực, có thể vận hành ñược và phải loại bỏ các lỗi của chương trình.
Lập trình là một hành ñộng cá nhân, không có quy trình lập trình chung. Người
lập trình phải thực hiện một số kiểm thử ñể phát hiện ra lỗi trong chương trình và loại bỏ
nó trong quy trình gỡ lỗi.
2.2.3 ðánh giá phần mềm
ðặt vấn ñề:
- Sau khi cài ñặt phần mềm, chúng ta có thể chuyển giao ngay cho người sử
dụng ñược không?
- Vai trò của việc ñánh giá phần mềm là gì?
ðánh giá phần mềm hay còn gọi là thẩm tra và ñánh giá (V&V Verification and
validation) ñược sử dụng ñể chỉ ra rằng hệ thống ñã thực hiện theo ñúng các ñặc tả và
thoả mãn mọi yêu cầu của khách hàng.
ðánh giá phần mềm bao gồm các công ñoạn: kiểm tra, xem xét lại, và kiểm thử
hệ thống. Kiểm thử hệ thống tức là cho hệ thống thực hiện trên những trường hợp có dữ
liệu thật ñược lấy từ tài liệu ñặc tả hệ thống. Quy trình kiểm thử gồm các pha sau:
Kiểm thử thành phần (ñơn vị): các thành phần ñược kiểm thử một cách ñộc lập,
thành phần có thể là một chức năng hoặc một ñối tượng hoặc một nhóm các thực thể gắn
kết với nhau.
- Kiểm thử hệ thống: kiểm thử toàn bộ hệ thống.
- Kiểm thử chấp thuận: kiểm thử trên dữ liệu của khách hàng ñể kiểm tra hệ
thống có ñáp ứng tất cả các yêu cầu của khách hàng hay không.
Môn học Công nghệ phần mềm







Trang 22

Khi chuyển giao hệ thống cho khách hàng thì quy trình kiểm thử beta sẽ ñược
thực hiện. Khách hàng sẽ thông báo các lỗi cho ñội dự án. Những lỗi này sẽ ñược chỉnh
sửa và tiếp tục kiểm thử beta hoặc chuyển giao thực sự cho khách hàng.
2.2.4 Cải tiến phần mềm
ðặt vấn ñề:
- Sau khi chuyển giao phần mềm cho khách hàng, thì mọi công việc ñã kết thúc
chưa?
- Cải tiến phần mềm ñể làm gì?
- Tại sao không xây dựng hệ thống mới mà lại cải tiến hệ thống cũ?
Khi các yêu cầu hệ thống thay ñổi theo sự thay ñổi của các yêu cầu nghiệp vụ thì
phần mềm phải cải tiến và thay ñổi ñể hỗ trợ khách hàng. Thông thường chi phí ñể bảo trì
và cải tiến thường ñắt hơn nhiều so với chi phí xây dựng phần mềm.

2.3 Bài tâp
Câu 1:
Giải thích tại sao các hệ thống ñược xây dựng dựa trên mô hình phát triển tiến
triển thường khó bảo trì?
Câu 2:
Cho biết cách phối hợp mô hình thác nước, mô hình mẫu thử và mô hình xoắn ốc.
Câu 3:
Phân biệt sự khác nhau giữa yêu cầu hệ thống và yêu cầu của người sử dụng.
Câu 4:
Môn học Công nghệ phần mềm







Trang 23
Tài liệu nào sau ñây sẽ ñược tạo ra trong pha thiết kế hệ thống?
Mã lệnh
Thiết kế chi tiết
Lập kế hoạch
Kế hoạch kiểm thử
(Wrong, Correct, Wrong, Wrong)
Câu 5:
Sắp xếp thứ tự của những nhiệm vụ sau:
1. Lập kế hoạch, ước lượng chi phí, xác ñịnh yêu cầu.
2. Thiết kế ở mức cao
3. Thiết kế ở mức thấp
4. Cài ñặt
5. Kiểm thử ñơn vị
6. Kiểm thử hệ thống
7. Kiểm thử chấp thuận
8. ðánh giá yêu cầu
(1, 8, 2, 3, 4, 5, 6, 7)
Câu 6:
Chọn 5 hoạt ñộng chính, tổng quát trong quá trình xây dựng phần mềm.
Phân tích, Thiết kế, Lập trình, Gỡ lỗi,, Bảo trì
Giao tiếp, Quản lý rủi ro, Ước lượng, Sản xuất, Kiểm tra lại
Giao tiếp, Lập kế hoạch, Mô hình hoá, Xây dựng, Triển khai
Phân tích, Lập kế hoạch, Thiết kế, Lập trình, Kiểm thử
(Wrong, Wrong, Correct, Wrong)
Câu 7:
Mô hình phát triển phần mềm dựa trên mẫu thử là

Một phương pháp thích hợp ñược sử dụng khi các yêu cầu ñã ñược
xác ñịnh rõ ràng

Phương pháp tốt nhất ñược sử dụng trong các dự án có nhiều thành
viên
Một mô hình rất rủi ro, rất khó có thể ñưa ra một sản phẩm tốt

Một phương pháp hữu ích khi khách hàng không thể ñịnh nghĩa các
yêu cầu một cách rõ ràng
(Wrong, Wrong, Wrong, Correct)
Câu 8:
Mô hình xoắn ốc trong quá trình phát triển phần mềm.
Kết thúc với một sản phẩm ñược chuyển giao
Phức tạp và lộn xộn hơn mô hình lặp lại, tăng thêm
Môn học Công nghệ phần mềm







Trang 24
Phải ñánh giá rủi ro của dự án trong từng bước lặp xoắn ốc
Tất cả các khẳng ñịnh trên
(Wrong, Wrong, Correct, Wrong)
Câu 9:
Mô hình tăng vòng trong quá trình phát triển phần mềm

Là một phương pháp thích hợp khi các yêu cầu ñã ñược xác ñịnh rõ
ràng

Là phương pháp tốt nhất ñược sử dụng khi dự án có quá nhiều thành
viên tham dự

Là một mô hình mang tính cách mạng, nhưng không ñược sử dụng với
các sản phẩm thương mại

Là một phương pháp tôt ñể tạo ra phần cốt lõi của sản phẩm một cách
nhanh chóng
(Wrong, Wrong, Wrong, Correct)
Môn học Công nghệ phần mềm







Trang 25
Chương 3 Yêu cầu hệ thống
Giới thiệu:
Yêu cầu hệ thống là bản ñặc tả các dịch vụ mà hệ thống cung cấp và các ràng
buộc ñể xây dựng và vận hành hệ thống.
Quá trình tìm kiếm, phân tích, tư liệu hoá, và kiểm tra các dịch vụ và các ràng
buộc của hệ thống ñược gọi là kỹ thuật xác ñịnh yêu cầu (Requirements Engineering RE).
Chúng ta cần phải viết các yêu cầu ở các mức chi tiết khác nhau vì có nhiều người
sử dụng khác nhau sử dụng chúng theo những cách khác nhau.
Mục tiêu:
- Phân loại ñược các yêu cầu khác nhau và ñặc ñiểm của từng loại
- Có kỹ năng ñặc tả các loại yêu cầu khác nhau
- Nắm ñược cấu trúc của một tài liệu ñặc tả yêu cầu
3.1 Yêu câu hê thông
Giới thiệu:
Các yêu cầu của hệ thống phần mềm thường ñược chia thành ba loại: yêu cầu
chức năng, yêu cầu phi chức năng và yêu cầu miền ứng dụng. Tuy nhiên, trong thực tế
chúng ta rất khó phân biết ba loại yêu cầu này một cách rõ ràng.
Mục tiêu:
- Tìm hiểu về các yêu cầu hệ thống và ñặc ñiểm của chúng
- Phương pháp xác ñịnh các yêu cầu hệ thống
- Nắm rõ các kỹ thuật ñặc tả yêu cầu hệ thống và biết cách áp dụng những kỹ
thuật này một cách thích hợp.
Ví dụ:
Trong chương này, chúng ta sẽ sử dụng một ví dụ về hệ thống thư viện ñể xác
ñịnh các loại yêu cầu.
Hệ thống thư viện (LIBSYS) cung cấp một giao diện ñơn giản ñể lưu CSDL về
các bài báo trên các thư viện khác nhau. Người sử dụng có thể tìm kiếm, download và in
những tài liệu này.
3.1.1 Yêu cầu chức năng
ðặt vấn ñề:
- ðể xây dựng một hệ thống có thể dùng ñược thực sự, trước hết nó phải ñạt
ñược yêu cầu gì?
- Yêu cầu chức năng có phải là quan trọng nhất không?
- Nếu ta không xác ñịnh ñầy ñủ, rõ ràng các yêu cầu chức năng thì sẽ xảy ra
chuyện gì?
Yêu cầu chức năng mô tả hệ thống sẽ làm gì. Nó mô tả các chức năng hoặc các
dịch vụ của hệ thống một cách chi tiết.
ðặc ñiểm của yêu cầu chức năng:
Môn học Công nghệ phần mềm







Trang 26
- Tính mập mờ, không rõ ràng của các yêu cầu: Vấn ñề này xảy ra khi các yêu
cầu không ñược xác ñịnh một cách cẩn thận. Các yêu cầu mập mờ có thể ñược
người xây dựng và người sử dụng hiểu theo nhiều cách khác nhau.
- Tính hoàn thiện và nhất quán: Về nguyên tắc, yêu cầu phải chứa tất cả các mô
tả chi tiết và không có sự xung ñột hoặc ñối ngược giữa các yêu cầu. Tuy
nhiên, trong thực tế rất khó có thể ñạt ñược ñiều này.
Xác ñịnh các yêu cầu chức năng của LYBSYS
- Người sử dụng có thể tìm kiếm tất cả CSDL hoặc một tập con của CSDL.
- Hệ thống sẽ cung cấp những giao diện thích hợp ñể người sử dụng ñọc tài
liệu.
- Tất cả những hoá ñơn mà người sử dụng ñăng ký ñể in sao tài liệu có một mã
duy nhất.

3.1.2 Yêu cầu phi chức năng
ðặt vấn ñề:
Nếu hệ thống chỉ thoả mãn những yêu cầu chức năng thì ñã ñủ chưa?
Ví dụ hệ thống không tiện dụng ñối với người sử dụng thì sao?
Yêu cầu phi chức năng bao gồm những vấn ñề gì?
Yêu cầu phi chức năng không ñề cập trực tiếp tới các chức năng cụ thể của hệ
thống. Yêu cầu phi chức năng thường ñịnh nghĩa các thuộc tính như: ñộ tin cậy, thời gian
ñáp ứng, các yêu cầu về lưu trữ …và các ràng buộc của hệ thống như: khả năng của thiết
bị vào/ra, giao diện …
Một số yêu cầu phi chức năng còn có liên quan ñến quy trình xây dựng hệ thống.
Ví dụ: các chuẩn ñược sử dụng, các công cụ CASE, ngôn ngữ lập trình …
Các yêu cầu phi chức năng có thể là hạn chế hơn những yêu cầu chức năng.
Nhưng nếu nó không ñược thoả mãn thì hệ thống sẽ không sử dụng ñược.
Các yêu cầu phi chức năng xuất hiện là do yêu cầu của người sử dụng, ràng buộc
về ngân sách, 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 và các tác nhân ngoài khác. Do ñó, chúng ta có thể phân loại các
yêu cầu phi chức năng như sau:
- Các yêu cầu về sản phẩm xác ñịnh ứng xử của sản phẩm như: hiệu năng, khả
năng sử dụng, ñộ tin cậy … của sản phẩm
- Các yêu cầu về tổ chức: các yêu cầu này ñược lấy từ những chính sách và quy
tắc của khách hàng hoặc tổ chức sử dụng hệ thống.
- Các yêu cầu ngoài: ñược xác ñịnh từ các tác nhân ngoài của hệ thống.
Môn học Công nghệ phần mềm







Trang 27

Xác ñịnh các yêu cầu phi chức năng của LIBSYS
- Yêu cầu về sản phẩm: LIBSYS phải ñược cài ñặt bằng HTML mà không có
frame hoặc Java applets.
- Yêu cầu về mặt tổ chức: Quy trình xây dựng hệ thống và các tài liệu chuyển
giao phải thoả mãn các quy tắc ñã ñược ñịnh nghĩa trong XYZCo-SP-STAN-
95.
- Yêu cầu ngoài: Hệ thống không ñược ñể lộ các thông tin cá nhân của khách
hàng.
Nói chung, chúng ta rất khó xác ñịnh chính xác và rất khó thẩm tra những yêu cầu
phi chức năng mập mờ. Do ñó, trong tài liệu ñặc tả yêu cầu, người ta thường bổ sung các
mục tiêu. Mục tiêu rất hữu ích ñối với người phát triển hệ thống khi nó truyền tải ñược
những mong muốn của người sử dụng hệ thống. Còn với những yêu cầu phi chức năng có
thể thẩm ñịnh ñược là những yêu cầu có thể kiểm thử một cách khách quan.
Tuy nhiên, trong nhiều trường hợp thường xảy ra xung ñột giữa các yêu cầu phi
chức năng ñối với những hệ thống phức tạp.
Các mục tiêu và yêu cầu phi chức năng có thể thẩm ñịnh ñược của LIBSYS
- Mục tiêu của hệ thống là dễ sử dụng ñối với những người sử dụng có kinh
nghiệm và ñược tổ chức ñể sao cho tối thiểu hoá ñược lỗi.
- Các yêu cầu phi chức năng có thể thẩm ñịnh ñược: Những người sử dụng có
kinh nghiệm có thể sử dụng ñược tất cả các chức năng của hệ thống chỉ sau
hai tiếng tập huấn. Sau khoá huấn luyện này, số lỗi chương trình gây ra bởi
người sử dụng là không quá hai lỗi một ngày.

Môn học Công nghệ phần mềm







Trang 28
3.1.3 Yêu cầu miền ứng dụng
ðặt vấn ñề:
- Yêu cầu ñối với ñội phát triển hệ thống?
- Các yêu cầu về lĩnh vực ứng dụng của hệ thống thì thuộc vào loại nào trong
hai loại trên ñã trình bày?
Yêu cầu miền ứng dụng ñược xác ñịnh từ miền ứng dụng của hệ thống và phản
ánh các thuộc tính và ràng buộc của miền ứng dụng. Nó có thể là yêu cầu chức năng hoặc
phi chức năng.
Nếu yêu cầu miền ứng dụng không ñược thoả mãn thì có thể hệ thống sẽ không
làm việc ñược.
Sau ñây là một số vấn ñề liên quan ñến yêu cầu miền ứng dụng:
- Khả năng có thể hiểu ñược: các yêu cầu ñược biểu diễn dưới ngôn ngữ của
lĩnh vực ứng dụng.
- Ẩn ý: Các chuyên gia có hiểu biết về lĩnh vực của họ nhưng họ không biết
cách xây dựng những yêu cầu miền ứng dụng một cách rõ ràng, mang tính kỹ
thuật.
Yêu cầu về miền ứng dụng của LIBSYS
- Giao diện người dùng chuẩn cho tất cả các CSDL ñều dựa trên chuẩn Z39.50.
- Vì vấn ñề bản quyền nên một số tài liệu phải xoá ngay khi vừa chuyển ñến.
- Phụ thuộc vào yêu cầu của người sử dụng, những tài liệu ñó có thể ñược in
ngay trên server và chuyển ñến cho người sử dụng hoặc gửi ñến cho máy in
mạng.
3.1.4 Một số kỹ thuật ñặc tả yêu cầu hệ thống
Giới thiệu:
Nói chung, ngôn ngữ tự nhiên thường ñược sử dụng ñể viết ñặc tả yêu cầu hệ
thống cũng như yêu cầu của người sử dụng. Tuy nhiên, yêu cầu hệ thống thường chi tiết
hơn yêu cầu của người sử dụng nên ñặc tả bằng ngôn ngữ tự nhiên thường gặp một số
vấn ñề sau:
- Không rõ ràng: Người ñọc và người viết yêu cầu phải giải thích các từ theo
cùng một nghĩa. Ngôn ngữ tự nhiên có bản chất là mập mờ nên ñể ñạt ñược
yêu cầu trên là rất khó khăn.
- Quá mềm dẻo: với cùng một vấn ñề nhưng có nhiều cách khác nhau ñể ñặc tả.
- Thiếu khả năng mô-ñun hoá: cấu trúc của ngôn ngữ tự nhiên không tương
xứng với cấu trúc của các yêu cầu hệ thống.
Vì những lý do này mà ñặc tả bằng ngôn ngữ tự nhiên thường gây khó hiểu. Do
ñó, chúng ta có thể sử dụng một số phương pháp ñược trình bày trong các phần sau ñể
ñặc tả yêu cầu.

Môn học Công nghệ phần mềm







Trang 29
3.1.4.1 ðặc tả bằng ngôn ngữ hướng cấu trúc
Sử dụng ngôn ngữ hướng cấu trúc sẽ yêu cầu người viết ñặc tả tuân theo những
mẫu ñược ñịnh nghĩa trước. Tất cả các yêu cầu ñều ñược viết theo chuẩn và các thuật ngữ
ñược sử dụng có thể bị hạn chế.
Ưu ñiểm của phương pháp này là ñạt ñược mức ñộ diễn tả cao nhất của ngôn ngữ
tự nhiên nhưng mức ñộ ñồng nhất lại bị lạm dụng trong các ñặc tả.
3.1.4.2 ðặc tả dựa biểu mẫu (Form-based)
ðặc tả dựa biểu mẫu ñịnh nghĩa các chức năng hoặc thực thể, mô tả ñầu vào và
nơi xuất phát của nó, mô tả ñầu ra và nơi nó sẽ ñến. ðặc tả dựa biểu mẫu chỉ rõ những
thực thể cần thiết, các ñiều kiện trước và sau (nếu thích hợp), các ảnh hưởng của chức
năng.
3.1.4.3 Biểu ñồ trình tự
Biểu ñồ trình tự biểu diễn trình tự các sự kiện xảy ra khi người sử dụng tương tác
với hệ thống. Nếu ta ñọc biểu ñồ này từ ñầu ñến cuối thì ta sẽ thấy ñược thứ tự của các
hành ñộng ñược thực hiện.
3.2 Yêu câu cúa nguòi sú dung
ðặt vấn ñề:
- Yêu cầu của người sử dụng có ñược coi giống như yêu cầu hệ thống hay
không?
- Yêu cầu của người sử dụng là chức năng hay phi chức năng hay cả hai?
Yêu cầu của người sử dụng nên mô tả những yêu cầu chức năng và phi chức năng
ñể người sử dụng có thể hiểu ñược chúng mà không cần phải có những kiến thức về công
nghệ một cách chi tiết.
Yêu cầu của người sử dụng ñược ñịnh nghĩa bằng cách sử dụng ngôn ngữ tự
nhiên, bảng hoặc biểu ñồ ñơn giản. Tuy nhiên, chúng ta sẽ gặp phải một số khó khăn khi
sử dụng ngôn ngữ tự nhiên:
- Không rõ ràng: Tính chính xác rất khó ñạt ñược nếu tài liệu khó ñọc.
- Yêu cầu lộn xộn: các yêu cầu chức năng và phi chức năng không rõ ràng.
- Lẫn lộn giữa các yêu cầu: các yêu cầu khác nhau có thể ñược diễn tả cùng với
nhau.
Do ñó, ñể viết yêu cầu của người sử dụng ta nên áp dụng một số quy tắc sau:
- ðưa ra một ñịnh dạng chuẩn và áp dụng nó cho tất cả các yêu cầu.
- Bắt buộc sử dụng ngôn ngữ một cách thống nhất
- ðánh dấu những phần quan trọng trong các yêu cầu.
- Tránh sử dụng những từ ngữ mang tính chuyên môn, kỹ thuật.
3.3 Tài liêu dàc tá yêu câu
ðặt vấn ñề:
- Sau khi ñã xác ñịnh các yêu cầu hệ thống và yêu cầu của người sử dụng hệ
thống thì tiếp tục làm gì?
Môn học Công nghệ phần mềm







Trang 30
- Cấu trúc của một tài liệu ñặc tả yêu cầu hệ thống phải bao gồm những nội
dung gì?
Tài liệu ñặc tả yêu cầu là những yêu cầu chính thức về những gì cần phải thực
hiện bởi ñội phát triển hệ thống.
Tài liệu ñặc tả yêu cầu nên bao gồm cả các ñịnh nghĩa về yêu cầu của người sử
dụng và ñặc tả yêu cầu hệ thống.
Tài liệu ñặc tả yêu cầu không phải là tài liệu thiết kế hệ thống. Nó chỉ thiết lập
những gì hệ thống phải làm, chứ không phải mô tả rõ làm như thế nào.
Tài liệu ñặc tả yêu cầu dựa theo chuẩn IEEE
1. Giới thiệu
1.1. Mục ñích của tài liệu yêu cầu
1.2. Phạm vi của sản phẩm
1.3. Các ñịnh nghĩa, từ viết tắt
1.4. Các tham chiếu
1.5. Tổng quan về tài liệu yêu cầu
2. Mô tả chung
2.1. Giới thiệu chung về sản phẩm
2.2. Các chức năng của sản phẩm
2.3. ðặc ñiểm của người sử dụng
2.4. Các ràng buộc
2.5. Giả thiết và các phụ thuộc
3. ðặc tả yêu cầu: bao gồm các yêu cầu chức năng, phi chức năng, miền ứng dụng
và giao diện.
4. Phụ lục
5. Chỉ mục
3.4 Bài tâp
Câu 1:
Xác ñịnh yêu cầu hệ thống giúp trả lời những câu hỏi nào?
Câu 2:
ðánh giá việc sử dụng ngôn ngữ tự nhiên ñể ñịnh nghĩa các yêu cầu hệ thống và
yêu cầu của người sử dụng.
Câu 3:
Mô tả hệ thống bán vé tàu tự ñộng như sau:
Người sử dụng chọn ñích ñến và ñưa thẻ thanh toán vào máy, rồi nhập số PIN. Vé
ñược in ra và tài khoản của người sử dụng bị thay ñổi.
1. Phát hiện những nhập nhằng trong ñoạn tài liệu ñặc tả yêu cầu trên và sửa
chúng.Khi người sử dụng nhấn nút Start, menu sẽ hiển thị những ñích ñến có thể, và
người sử dụng chọn một ñích ñến trong số ñó. Khi ñích ñến ñã ñược lựa chọn, hệ thống
yêu cầu người sử dụng ñưa thẻ thanh toán vào máy. Thẻ sẽ ñược kiểm tra và người sử
dụng phải nhập số PIN. Khi giao dịch liên quan ñến thẻ thanh toán kết thúc hợp lệ thì vé
sẽ ñược in ra.
2. Bổ sung thêm các yêu cầu phi chức năng của hệ thống trên
Môn học Công nghệ phần mềm







Trang 31
Giao diện thân thiện, dễ sử dụng
Tốc ñộ xử lý nhanh (ñặc biệt ở các tiến trình kiểm tra thẻ, in vé ...)
Thông báo lỗi thích hợp và có chỉ dẫn sai sót
3. Vẽ biểu ñồ trình tự mô tả các hành ñộng của hệ thống trên
Môn học Công nghệ phần mềm







Trang 32
Chương 4 Quy trình xác ñịnh yêu cầu
Giới thiệu:
Mục tiêu của quy trình xác ñịnh yêu cầu là ñưa ra các tài liệu yêu cầu của hệ
thống. Quy trình xác ñịnh yêu cầu biến ñổi phụ thuộc vào miền ứng dụng, con người và
tổ chức xây dựng yêu cầu. Tuy nhiên, những quy trình này vẫn có chung một số hoạt
ñộng sau: phát hiện yêu cầu, phân tích yêu cầu, ñánh giá yêu cầu và quản lý yêu cầu.


Tuy nhiên, trong thực tế, các yêu cầu luôn luôn thay ñổi, thậm chí ngay cả khi
ñang xây dựng hệ thống. Vì vậy, người ta thường sử dụng mô hình xoắn ốc ñể xác ñịnh
các yêu cầu. Mô hình này cho phép việc xác ñịnh yêu cầu và cài ñặt hệ thống ñược thực
hiện cùng lúc.
Môn học Công nghệ phần mềm







Trang 33

Mục tiêu:
- Nắm ñược quy trình xác ñịnh yêu cầu
- Hiểu rõ các pha trong quy trình xác ñịnh yêu cầu
4.1 Phân tích khá thi
Mục tiêu:
- Xác ñịnh rõ vai trò của phân tích khả thi
- ðể phân tích khả thi, chúng ta phải thực hiện những công việc gì
- Nắm ñược một số gợi ý khi phân tích khả thi
ðối với tất cả các hệ thống mới, quy trình xác ñịnh yêu cầu thường bắt ñầu bằng
việc phân tích khả thi. Thông tin ñầu vào ñể phân tích khả thi là các yêu cầu nghiệp vụ,
mô tả sơ bộ về hệ thống, cách thức hệ thống hỗ trợ các yêu cầu nghiệp vụ. Kết quả của
việc phân tích khả thi là một báo cáo ñể quyết ñịnh có nên xây dựng hệ thống ñề xuất hay
không.
Phân tích khả thi thường tập trung vào:
- Xác ñịnh hệ thống có ñóng góp vào mục tiêu của tổ chức hay không
- Kiểm tra xem hệ thống có thể ñược xây dựng bằng cách sử dụng công nghệ
hiện tại và ngân sách cho phép.
- Kiểm tra xem liệu hệ thống có ñược tích hợp với các hệ thống khác ñang sử
dụng hay không.
Môn học Công nghệ phần mềm







Trang 34
Thực hiện phân tích khả thi dựa trên việc ñánh giá thông tin, lựa chọn thông tin và
viết báo cáo.
Những câu hỏi thường ñược ñặt ra ñể phân tích khả thi:
- Nếu hệ thống không ñược cài ñặt thì sao?
- Vấn ñề xử lý hiện tại như thế nào?
- Hệ thống ñề xuất giúp ñỡ ñược gì?
- Vấn ñề về tích hợp là gì?
- Công nghệ mới cần dùng là gì? Cần có những kỹ năng gì?
- Những lợi ích mà hệ thống mang lại?
4.2 Phát hiên và phân tích yêu câu
Mục tiêu:
- Nhiệm vụ của việc phát hiện và phân tích yêu cầu là gì?
- Hiểu rõ mô hình xoắn ốc trong quy trình phát hiện và phân tích yêu cầu
- Các kỹ thuật ñược sử dụng ñể phát hiện và phân tích yêu cầu
Trong pha phát hiện và phân tích yêu cầu, nhân viên kỹ thuật và khách hàng cùng
hợp tác ñể xác ñịnh miền ứng dụng, các dịch vụ mà hệ thống cung cấp, hiệu năng của hệ
thống, các ràng buộc vận hành của hệ thống…
Ở ñây, chúng ta có một khái niệm mới là stakeholder. Stakeholder là những người
tham dự vào dự án xây dựng hệ thống: người sử dụng cuối, người quản lý, kỹ sư, chuyên
gia lĩnh vực, … Ví dụ, trong hệ thống ATM gồm các Stakeholder sau: khách hàng của
ngân hàng, ñại diện của các ngân hàng khác, người quản lý ngân hầng, nhân viên ngân
hàng, quản trị CSDL, quản lý bảo mật, phòng marketing, kỹ sư bảo trì phần cứng và phần
mềm, người ñiều hành ngân hàng.
Tuy nhiên, việc phát hiện và tìm hiểu yêu cầu của stakeholder, chúng ta thường
gặp khó khăn vì những nguyên nhân sau:
- Stakeholder không biết những gì mà họ thật sự mong muốn.
- Stakeholder mô tả các yêu cầu theo thuật ngữ của họ.
- Những stakeholder khác nhau có thể có các yêu cầu xung ñột nhau
- Những yếu tố tổ chức và quyền lực có thể ảnh hưởng tới các yêu cầu hệ thống.
- Các yêu cầu có thể thay ñổi trong suốt quá trình phân tích. Những stakeholder
mới có thể xuất hiện và môi trường nghiệp vụ có thể thay ñổi.
Do ñó, người ta thường sử dụng mô hình xoắn ốc trong quy trình phát hiện và
phân tích yêu cầu.
Môn học Công nghệ phần mềm







Trang 35

Trong quy trình này bao gồm các hoạt ñộng sau:
- Phát hiện yêu cầu: tiếp xúc với các stakeholder ñể phát hiện ra các yêu cầu
của họ. Các yêu cầu miền ứng dụng cũng ñược phát hiện ở bước này.
- Phân loại và sắp xếp yêu cầu: nhóm các yêu cầu có liên quan lẫn nhau và tổ
chức chúng thành những nhóm gắn kết với nhau.
- Sắp thứ tự ưu tiên và ñiều chỉnh các yêu cầu xung ñột: khi có nhiều
stakeholder thì các yêu cầu của họ càng có nhiều xung ñột. Hoạt ñộng này
nhằm ñánh thứ tự ưu tiên của các yêu cầu, phát hiện và giải quyết xung ñột
giữa các yêu cầu.
- Tư liệu hóa yêu cầu: yêu cầu ñược tư liệu hoá và là ñầu vào của vòng kế tiếp
trong mô hình xoắn ốc.
Phát hiện yêu cầu là quy trình thu thập những thông tin về hệ thống ñược ñề xuất
và hệ thống ñang tồn tại ñể xác ñịnh các yêu cầu hệ thống và yêu cầu của người sử dụng.
Ta có thể lấy thông tin này từ các tư liệu, stakeholder, và bản ñặc tả của những hệ thống
tương tự. Chúng ta giao tiếp với stakeholder thông qua phỏng vấn hoặc quan sát và có thể
sử dụng kịch bản và mẫu thử ñể giúp phát hiện yêu cầu.
4.2.1 Khung nhìn (Viewpoint)
ðặt vấn ñề:
- Mỗi stakeholder liên quan ñến dự án có hiểu biết và nhu cầu hiểu biết nhất
ñịnh về dự án.
- Khi trình bày các vấn ñề về hệ thống nên phụ thuộc vào ñối tượng trình bày.
Khung nhìn là cách xây dựng yêu cầu ñể trình bày với từng stakeholder khác
nhau. Ta có thể phân loại Stakeholder theo nhiều khung nhìn khác nhau.
Phân tích dựa trên khung nhìn cho phép phát hiện nhiều khía cạnh khác nhau của
một vấn ñề và giúp phát hiện ra sự xung ñột giữa các yêu cầu.
Môn học Công nghệ phần mềm







Trang 36
Khung nhìn ñược chia thành 3 loại chính và mỗi loại sẽ cung cấp các yêu cầu
khác nhau.
- Khung nhìn tương tác: là những người hoặc hệ thống khác tương tác với hệ
thống. Trong hệ thống ATM, khách hàng và CSDL tài khoản là những khung
nhìn tương tác
- Khung nhìn gián tiếp: là những stakeholder không sử dụng hệ thống trực tiếp
nhưng có ảnh hưởng tới hệ thống. Trong hệ thống ATM, nhân viên quản lý và
bảo mật là những khung nhìn gián tiếp.
- Khung nhìn miền ứng dụng: là những ñặc ñiểm và ràng buộc của miền ứng
dụng, có ảnh hưởng tới các yêu cầu. Trong hệ thống ATM, các chuẩn ñể giao
tiếp giữa nhiều ngân hàng là một ví dụ.
Ta có thể phát hiện khung nhìn dựa trên:
- Người cung cấp và người nhận các dịch vụ của hệ thống
- Các hệ thống tương tác trực tiếp với hệ thống cần xây dựng.
- Các chuẩn và các quy tắc
- Tài nguyên và các yêu cầu phi chức năng
- Marketing và các khung nhìn nghiệp vụ khác.
Khung nhìn phân cấp của LIBSYS

4.2.2 Phỏng vấn
ðặt vấn ñề:
- Làm thế nào ñể có ñược các yêu cầu hệ thống và yêu cầu của người sử dụng?
- Tại sao phỏng vấn người dùng là một phương pháp phổ biến?
- Khi phỏng vấn chúng ta thường sẽ gặp những vấn ñề gì?
- Tại sao kết quả phỏng vấn lại khác nhau?

Môn học Công nghệ phần mềm







Trang 37
Phỏng vấn hình thức hoặc phi hình thức là một trong những phần quan trọng nhất
của quy trình xác ñịnh yêu cầu. Trong quá trình phỏng vấn, những người xác ñịnh yêu
cầu sẽ ñặt ra các câu hỏi cho stakeholder về hệ thống hiện tại họ ñang sử dụng và hệ
thống sẽ ñược xây dựng. Và các yêu cầu sẽ ñược lấy ra từ những câu trả lời của
stakeholder.
Phỏng vấn ñược chia thành hai loại:
- Phỏng vấn ñóng: tập các câu hỏi ñã ñược ñịnh nghĩa trước và có nhiều ñáp án
ñể stakeholder lựa chọn trả lời.
- Phỏng vấn mở: tất cả các vấn ñề không ñược xác ñịnh trước và stakeholder
phải tự giải thích và phát biểu theo quan ñiểm của mình.
Trong thực tế, chúng ta thường trộn lẫn phỏng vấn ñóng và mở.
Một phỏng vấn tốt có nghĩa là sẽ thu thập ñược tất cả các hiểu biết về công việc
phải làm của stakehoder và cách họ tương tác với hệ thống như thế nào. Tuy nhiên, khi
phỏng vấn những vấn ñề có liên quan tới miền ứng dụng hoặc nghiệp vụ của người sử
dụng, chúng ta thường gặp khó khăn vì không thể hiểu ñược các thuật ngữ của miền ứng
dụng hoặc các hiểu biết về miền ứng dụng quá quen thuộc.
ðể phỏng vấn thành công, người phỏng vấn nên:
- Cởi mở, sẵn sàng lắng nghe stakeholder và không nên có những ý tưởng ñã
ñược ñịnh hình sẵn về các yêu cầu.
- ðưa ra những câu hỏi gợi mở, không nên hỏi những câu như “Anh muốn gì?”
4.2.3 Kịch bản
ðặt vấn ñề:
- Ví dụ minh hoạ thường dễ hiểu hơn mô tả trừu tượng
- Có thể sử dụng kết hợp kịch bản và phỏng vấn như thế nào?
- Khi nào thì cần phải sử dụng kịch bản?
Chúng ta thường hiểu một vấn ñề thông qua các ví dụ thực tế dễ dàng hơn là
thông qua những mô tả trừu tượng về nó. Do ñó, chúng ta có thể sử dụng kịch bản ñể
phát hiện ra các yêu cầu hệ thống. Kịch bản là những ví dụ thực tế về cách sử dụng hệ
thống. Chúng bao gồm:
- Mô tả trạng thái khởi ñộng
- Mô tả luồng sự kiện thông thường
- Mô tả những gì có thể ñi tới lỗi
- Thông tin về các hành ñộng ñồng thời khác
- Mô tả trạng thái khi kịch bản hoàn thành
4.2.4 Ca sử dụng
ðặt vấn ñề:
- UML cung cấp các biểu ñồ khác nhau ñể mô tả kịch bản của hệ thống.
Ca sử dụng là kịch bản ñược xây dựng dựa trên kỹ thuật của UML ñể xác ñịnh
các tác nhân trong một tương tác và mô tả chính tương tác ñó. Một tập hợp các ca sử
dụng sẽ mô tả tất cả các tương tác có thể trong hệ thống.
Môn học Công nghệ phần mềm







Trang 38
Ngoài ra, chúng ta có thể sử dụng biểu ñồ trình tự ñể bổ sung các thông tin chi tiết
cho ca sử dụng bằng cách biểu diễn trình tự các sự kiện ñược xử lý trong hệ thống.
Các ca sử dụng trong LIBSYS

4.3 Ðánh giá yêu câu
Mục tiêu:
- Hiểu rõ tầm quan trọng của việc ñánh giá các yêu cầu
- Nắm ñược phải kiểm tra các yêu cầu ở những khía cạnh nào
- Hiểu ñược một số kỹ thuật ñược sử dụng ñể ñánh giá yêu cầu
ðánh giá yêu cầu có liên quan ñến việc giải thích các yêu cầu ñã ñược ñịnh nghĩa
trong hệ thống. Vì chi phí cho việc giải quyết các lỗi có liên quan tới yêu cầu sẽ rất cao
cho nên việc ñánh giá yêu cầu là vô cùng quan trọng.
Trong quá trình ñánh giá yêu cầu, chúng ta phải kiểm tra các yêu cầu ở những
khía cạnh sau:
- Hợp lệ: Hệ thống có cung cấp các chức năng mà hỗ trợ tốt nhất cho các yêu
cầu của người sử dụng hay không?
- Nhất quán: có yêu cầu nào xung ñột nhau hay không?
- Hoàn thiện: tất cả các yêu cầu của khách hàng ñã ñược xác ñịnh ñầy ñủ chưa?
- Hiện thực: các yêu cầu có thể ñược cài ñặt với một ngân sách và công nghệ
cho trước?
- Xác thực: các yêu cầu có thể ñược kiểm tra hay không?
Các kỹ thuật ñánh giá yêu cầu sau ñây có thể ñược sử dụng ñơn lẻ hoặc hỗn hợp:
- Xem xét lại các yêu cầu: phân tích các yêu cầu một cách hệ thống.
Môn học Công nghệ phần mềm







Trang 39
- Mẫu thử: Sử dụng các mô hình hệ thống ñể kiểm tra các yêu cầu
- Tạo ra các trường hợp kiểm thử
4.4 Lâp kê hoach quán lý yêu câu
Mục tiêu:
- Nắm rõ quy trình quản lý yêu cầu
- Khi yêu cầu thay ñổi, cần phải biết thực hiện những thao tác gì.
Quản lý yêu cầu là quy trình quản lý sự thay ñổi của các yêu cầu trong quá trình
phát hiện yêu cầu và phát triển hệ thống.
Các yêu cầu thường không ñầy ñủ và không ñồng nhất. ðó là do một số nguyên
nhân sau:
- Những yêu cầu mới xuất hiện trong quy trình khi các yêu cầu nghiệp vụ thay
ñổi và khi chúng ta có hiểu biết sâu hơn về hệ thống sẽ xây dựng.
- Ở các khung nhìn khác nhau sẽ có các yêu cầu khác nhau và do ñó thường
xuất hiện các mâu thuẫn.
- Thứ tự ưu tiên từ các khung nhìn khác nhau cung thay ñổi trong suốt quá trình
phát triển hệ thống.
- Môi trường nghiệp vụ và môi trương kỹ thuật của hệ thống cũng thay ñổi
trong có trình xây dựng.
Các yêu cầu lâu dài là những yêu cầu ổn ñịnh kế thừa từ những hành ñộng chính
của khách hàng. Và nó có thể kế thừa từ nhiều mô hình miền ứng dụng khác.
Các yêu cầu thay ñổi là những yêu cầu dễ bị thay ñổi trong quá trình xây dựng
hoặc khi hệ thống ñược ñưa vào sử dụng.
Quy trình lập kế hoạch quản lý yêu cầu:
- Xác ñịnh yêu cầu: cách xác ñịnh từng yêu cầu
- Quản lý thay ñổi: xác ñịnh các hoạt ñộng tiếp theo khi yêu cầu thay ñổi.
- Các chính sách tìm vết: lượng thông tin về mối quan hệ giữa các yêu cầu cần
phải ñược lưu giữ. Thông thường, nó ñề cập tới quan hệ giữa tài nguyên và
bản thiết kế hệ thống.
o Tìm vết nguồn: là những liên kết từ các yêu cầu tới stakeholder ñưa ra
những yêu cầu ñó.
o Tìm vết yêu cầu: là mối liên hệ giữa các yêu cầu ñộc lập nhau.
o Tìm vết thiết kế: là những liên kết từ yêu cầu cho tới thiết kế.
- Hỗ trợ CASE tool: sử dụng các công cụ ñể hỗ trợ quản lý yêu cầu thay ñổi.
CASE tool thường hỗ trợ những chức năng như:
o Lưu trữ yêu cầu: các yêu cầu ñược quản lý một cách bảo mật và ñược
lưu trong kho dữ liệu.
o Quản lý thay ñổi: quy trình quản lý thay ñổi là quy trình luồng công
việc mà các trạng thái có thể ñược ñịnh nghĩa và luồng thông tin giữa
các trạng thái là tự ñộng.
o Quản lý vết tự ñộng tìm kiếm mối liên kết giữa các yêu cầu.
Chúng ta nên áp dụng tất cả các khả năng thay ñổi có thể cho tất cả các yêu cầu.
Các pha chính của hoạt ñộng này bao gồm:
Môn học Công nghệ phần mềm







Trang 40
- Phân tích vấn ñề và ñặc tả thay ñổi: thảo luận về các vấn ñề yêu cầu và những
thay ñổi có thể xảy ra.
- Phân tích thay ñổi và chi phí: ðánh giá ảnh hưởng của sự thay ñổi trên các
yêu cầu khác.
- Cài ñặt thay ñổi: ðiều chỉnh tài liệu của các yêu cầu và những tài liệu khác ñể
phản ánh sự thay ñổi ñó.
4.5 Bài tâp
Câu 1:
Xác ñịnh những stakeholder có thể có của hệ thống Quản lý sinh viên
Câu 2:
Dựa trên hiểu biết của mình về hệ thống ATM, hãy xây dựng khung nhìn phân
cấp của hệ thống ñó.
Câu 3:
Việc phân tích khả thi cho thấy xây dựng hệ thống sẽ gặp khó khăn và có thể
không thực hiện ñược. Hãy ñề xuất giải pháp khi gặp phải trình trạng này.
Câu 4:
Hãy xây dựng một quy trình ñể quản lý yêu cầu một cách dễ dàng và hợp lý.
Môn học Công nghệ phần mềm







Trang 41
Chương 5 Các mô hình hệ thống
Giới thiệu:
Các yêu cầu của người sử dụng thường ñược viết bằng ngôn ngữ tự nhiên ñể
những người không có kiến thức về mặt kỹ thuật có thể hiểu ñược nó. Tuy nhiên, những
yêu cầu hệ thống chi tiết phải ñược mô hình hoá. Mô hình hoá hệ thống giúp cho người
phân tích hiểu rõ các chức năng của hệ thống.
Ta có thể sử dụng các mô hình khác nhau ñể biểu diễn hệ thống từ nhiều khía
cạnh khác nhau.
Trong chương này, chúng ta sẽ tìm hiểu về một số mô hình hoá hệ thống.
Mục tiêu:
- Hiểu ñược mô hình hoá hệ thống là gì? Và tại sao phải mô hình hoá hệ thống.
- Phân biệt ñược các mô hình hệ thống.
- Có khả năng lựa chọn và ứng dụng các mô hình hệ thống vào từng trường hợp
cụ thể
5.1 Mô hình ngû cánh
ðặt vấn ñề:
- Khi xem xét một vấn ñề, bao giờ chúng ta cũng muốn có cái nhìn tổng thể về
vấn ñề ñó.
- Mô hình ngữ cảnh cho thấy những thành phần cốt lõi của hệ thống.
Trong quá trình phát hiện và phân tích yêu cầu, chúng ta nên xác ñịnh phạm vi hệ
thống, tức là phân biệt cái gì là hệ thống và cái gì là môi trường của hệ thống. ðiều này
sẽ giúp giảm chi phí và thời gian phân tích.
Khi ñã xác ñịnh phạm vi của hệ thống, hoạt ñộng tiếp theo của quy trình phân tích
là ñịnh nghĩa ngữ cảnh của hệ thống và sự phụ thuộc giữa hệ thống với môi trường của
nó.
Thông thường, mô hình kiến trúc ñơn giản của hệ thống sẽ ñược tạo ra trong bước
này.
Ví dụ: mô hình ngữ cảnh của hệ thống ATM

Môn học Công nghệ phần mềm







Trang 42

Mô hình kiến trúc mô tả môi trường của hệ thống, nhưng không chỉ ra quan hệ
giữa các hệ thống khác nhau trong một môi trường. Vì vậy, người ta thường sử dụng
thêm mô hình tiến trình hoặc mô hình luồng dữ liêuh ñể bổ trợ cho nó.
Mô hình tiến trình biểu diễn tất cả các tiến trình ñược hệ thống hỗ trợ. Mô hình
luồng dữ liệu có thể ñược sử dụng ñể biểu diễn các tiến trình và luồng thông tin ñi từ tiến
trình này tới tiến trình khác.
5.2 Mô hình úng xú
Giới thiệu:
Mô hình ứng xử ñược sử dụng ñể mô tả toàn bộ ứng xử của hệ thống. Có hai kiểu
mô hình ứng xử là:
- Mô hình luồng dữ liệu: biểu diễn cách xử lý dữ liệu trong hệ thống và
- Mô hình máy trạng thái: biểu diễn cách ñáp ứng của hệ thống với các sự kiện
xảy ra.
Hai mô hình này biểu diễn những góc nhìn khác nhau, nhưng cả hai ñều cần thiết
ñể mô tả ứng xử của hệ thống.
5.2.1 Mô hình luồng dữ liệu
Mô hình luồng dữ liệu ñược sử dụng ñể mô hình hoá quy trình xử lý dữ liệu của
hệ thống. Mô hình này sẽ biểu diễn các bước mà luồng dữ liệu phải trải qua trong hệ
thống từ ñiểm ñầu tới ñiểm cuối.
Mô hình luồng dữ liệu mô hình hoá hệ thống từ góc ñộ một chức năng. Việc tìm
vết và tư liệu hoá quan hệ giữa dữ liệu với một quy trình rất có ích ñối với việc tìm hiểu
toàn bộ hệ thống.
Mô hình luồng dữ liệu là phần cốt lõi của rất nhiều phương pháp phân tích. Nó
chứa các ký pháp rất dễ hiểu ñối với khách hàng.
Ví dụ: Mô hình luồng dữ liệu của chức năng xử lý ñơn hàng

Môn học Công nghệ phần mềm







Trang 43

5.2.2 Mô hình máy trạng thái
Mô hình máy trạng thái mô tả ñáp ứng của hệ thống với các sự kiện bên trong và
bên ngoài của nó. Mô hình máy trạng thái biểu diễn các trạng thái của hệ thống và các sự
kiện gây ra sự dịch chuyển trạng thái.
Mô hình máy trạng thái biểu diễn các trạng thái của hệ thống là các nút và sự kiện
là các cung nối giữa các nút ñó. Khi có một sự kiện xảy ra, hệ thống sẽ dịch chuyển từ
trạng thái này sang trạng thái khác.
Biểu ñồ trạng thái là một biểu ñồ trong UML và ñược sử dụng ñể biểu diễn mô
hình máy trạng thái. Biểu ñồ trạng thái cho phép phân tích một mô hình thành nhiều mô
hình con và mô tả ngắn gọn về các hành ñộng cần thực hiện tại mỗi trạng thái. Ta có thể
vẽ các bảng ñể mô tả mối quan hệ giữa trạng thái và tác nhân kích hoạt.
5.3 Mô hình dû liêu
Giới thiệu:
Mô hình dữ liệu ñược sử dụng ñể mô tả cấu trúc logic của dữ liệu ñược xử lý bởi
hệ thống. Thông thường, chúng ta hay sử dụng mô hình thực thể quan hệ thuộc tính
(ERA) thiết lập các thực thể của hệ thống, quan hệ giữa các thực thể và thuộc tính của các
thực thể. Mô hình này ñược sử dụng trong thiết kế CSDL và thường ñược cài ñặt trong
các CSDL quan hệ.
Ví dụ mô hình dữ liệu của LIBSYS

Môn học Công nghệ phần mềm







Trang 44

Tuy nhiên, mô hình dữ liệu thường không chi tiết. Cho nên, chúng ta có thể sử
dụng từ ñiển dữ liệu làm công cụ bổ trợ. Từ ñiển dữ liệu là danh sách tất cả các tên gọi
ñược sử dụng trong các mô hình hệ thống. ðó có thể là các thực thể, quan hệ và các thuộc
tính …
Ưu ñiểm của từ ñiển dữ liệu là: hỗ trợ quản lý tên và tránh trùng lặp tên, lưu trữ
kiến thức một cách có tổ chức kết nối pha phân tích, thiết kế và cài ñặt.
Ví dụ: từ ñiển dữ liệu của LIBSYS

5.4 Mô hình dôi tuong
Giới thiệu:
Sử dụng mô hình ứng xử hay mô hình dữ liệu thường rất khó mô tả các vấn ñề có
liên quan ñến thế giới thực. Mô hình ñối tượng ñã giải quyết ñược vấn ñề này bằng cách
kết hợp ứng xử và dữ liệu thành ñối tượng.

Môn học Công nghệ phần mềm







Trang 45
Mô hình ñối tượng ñược sử dụng ñể biểu diễn cả dữ liệu và quy trình xử lý của hệ
thống. Nó mô tả hệ thống dựa theo thuật ngữ các lớp ñối tượng và các quan hệ của nó.
Một lớp ñối tượng là sự trừu tượng hoá trên một tập các ñối tượng có thuộc tính và
phương thức chung.
Mô hình ñối tượng phản ánh các thực thể trong thế giới thực ñược vận dụng trong
hệ thống. Nếu ta càng có nhiều thực thể trừu tượng thì việc mô hình hoá càng khó khăn.
Phát hiện các lớp ñối tượng là một quy trình rất khó khăn khi tìm hiểu sâu về lĩnh
vực của ứng dụng. Các lớp ñối tượng thường phản ảnh các thực thể liên quan tới miền
ứng dụng của hệ thống.
Các mô hình ñối tượng bao gồm: mô hình thừa kế, mô hình kết hợp và mô hình
ứng xử. Trong phần tiếp theo, chúng ta sẽ tìm hiểu từng loại mô hình này.
5.4.1 Mô hình thừa kế
Mô hình thừa kế tổ chức các lớp ñối tượng theo một cấu trúc phân cấp. Các lớp ở
ñỉnh của cấu trúc phân cấp phản ánh những ñặc trưng chung của tất cả các lớp. Các lớp
ñối tượng thừa kế những thuộc tính và phương thức của các lớp cha của nó nó có thể bổ
sung những ñặc ñiểm của riêng nó.
Thiết kế lớp phân cấp là một quy trình khá phức tạp, ta nên loại bỏ sự trùng lặp
giữa các nhánh khác nhau.
Ví dụ: cấu trúc phân cấp của lớp Library trong LIBSYS


Ví dụ: cấu trúc phân cấp của lớp User trong LIBSYS
Môn học Công nghệ phần mềm







Trang 46


Cấu trúc ña thừa kế: lớp ñối tượng có thể thừa kế từ một hoặc nhiều lớp cha. Tuy
nhiên, ñiều này có thể dẫn tới sự xung ñột về ngữ nghĩa khi các thuộc tính/phương thức
trùng tên ở các lớp cha khác nhau có ngữ nghĩa khác nhau.
Ví dụ: lớp Talking book thừa kế từ hai lớp Book và Voice recording.


5.4.2 Mô hình kết hợp
Mô hình kết hợp biểu diễn cách cấu tạo của một lớp từ các lớp khác. Mô hình kết
hợp tương tự như quan hệ hợp thành (part-of).
Ví dụ: Mô hình kết hợp
ðối tượng ô tô ñược tạo thành từ nhiều ñối tượng khác như: cửa, bánh xe ...
Môn học Công nghệ phần mềm







Trang 47


5.4.3 Mô hình ứng xử
Mô hình ứng xử mô tả tương tác giữa các ñối tượng nhằm tạo ra một số ứng xử cụ
thể của hệ thống mà ñã ñược xác ñịnh như là một ca sử dụng.
Biểu ñồ trình tự hoặc biểu ñồ cộng tác trong UML ñược sử dụng ñể mô hình hoá
tương tác giữa các ñối tượng.
Ví dụ
Mô tả ca sử dụng Rút tiền của hệ thống ATM.

Môn học Công nghệ phần mềm







Trang 48

5.5 Phuơng pháp huóng câu trúc
Giới thiệu:
Ngày nay, phương pháp hướng cấu trúc rất ít khi ñược sử dụng do không còn phù
hợp với các hệ thống lớn. Tuy nhiên, trong giáo trình này, chúng tôi vẫn trình bày phần
này ñể học viên có cái nhìn mang tính tổng quan về vấn ñề này.
Các phương pháp hướng cấu trúc ñều cung cấp framework ñể mô hình hoá hệ
thống một cách chi tiết. Chúng thường có một tập hợp các mô hình ñã ñược ñịnh nghĩa
trước, quy trình ñể ñưa ra các mô hình ñó và các quy tắc, hướng dẫn có thể áp dụng cho
các mô hình.
Môn học Công nghệ phần mềm







Trang 49
Tuy nhiên, các phương pháp hướng cấu trúc thường có một số nhược ñiểm sau:
- Không mô hình hoá ñược các yêu cầu hệ thống phi chức năng
- Không chứa những thông tin ñể xác ñịnh liệu một phương thức có thích hợp
với một vấn ñề ñưa ra hay không.
- Tạo ra quá nhiều tài liệu
- Mô hình hoá hệ thống quá chi tiết và khó hiểu ñối với người sử dụng.
CASE workbenches là tập hợp các công cụ ñược thiết kế ñể hỗ trợ các quy trình
xây dựng hệ thống phần mềm như phân tích, thiết kế và kiểm thử.
CASE tools hỗ trợ mô hình hoá hệ thống là một công cụ quan trọng của phương
pháp hướng cấu trúc. Sau ñây là một số CASE tool thường ñược sử dụng:
- Soạn thảo biểu ñồ
- Công cụ phân tích mô hình và kiểm tra
- Ngôn ngữ truy vấn
- Từ ñiển dữ liệu
- Công cụ tạo và ñịnh nghĩa báo cáo
- Công cụ ñịnh nghĩa form
- Bộ dịch
- Công cụ tạo mã lệnh tự ñộng
5.6 Bài tâp
Câu 1:
Chọn ñịnh nghĩa ñúng về biểu ñồ ngữ cảnh.

ðược tạo ra ñể thiết lập phạm vi của hệ thống với môi trường
bên ngoài
Mô tả cách tương tác giữa tác nhân ngoài và hệ thống
ðược sử dụng ñể mô tả cấu trúc tĩnh của toàn bộ hệ thống
Mô tả quan hệ giữa các ñối tượng
(Correct, Wrong, Wrong, Wrong)
Câu 2:
Những biểu ñồ UML nào sau ñây ñược sử dụng ñể mô hình hoá hệ thống?
Biểu ñồ ca sử dụng
Biểu ñồ trình tự
Biểu ñồ trạng thái
Tất cả các biểu ñồ trên
(Wrong, Wrong, Wrong, Wrong)
Câu 3:
Vẽ biểu ñồ ngữ cảnh của hệ thống quản lý sinh viên.
Câu 4:
Vẽ biểu ñồ luồng dữ liệu của chức năng rút tiền của hệ thống ATM.
Câu 5:
Vẽ máy trạng thái của máy giặt có nhiều chế ñộ giặt
Môn học Công nghệ phần mềm







Trang 50
Câu 6:
Vẽ biểu ñồ trình tự mô tả tương tác khi giáo viên nhập ñiểm theo môn cho từng
lớp.
Câu 7:
Hệ thống ngân hàng trực tuyến cho phép khách hàng quản lý tài khoản của mình.
Mỗi tài khoản có một số dư. Khách hàng có thể gửi tiền hoặc rút tiền từ tài khoản của
mình. Mỗi lần rút hoặc gửi tiền ñược gọi là một phiên giao dịch. Phiên giao dịch luôn có
giá trị và ngày tháng. Tại bất kỳ thời ñiểm nào khách hàng cũng có thể yêu cầu kiểm tra
các giao dịch ñã thực hiện.
Hãy hoàn thành biểu ñồ lớp sau.
Hình của Câu 7:

Biểu ñồ lớp

Chi tiết
Câu 8:
Hệ thống quản lý trường ñại học như sau: Mỗi trường ñều có một hoặc nhiều
trường ñại học con. Mỗi trường này lại có nhiều khoa. Mỗi khoa có cán bộ giảng dạy (bắt
Môn học Công nghệ phần mềm







Trang 51
buộc phải thuộc về khoa), cán bộ phụ tá hoặc cán bộ hành chính. Các môn học phải ñược
trường ñại học chấp nhận. Một môn học có thể ñược một hoặc nhiều khoa giảng dạy.
Sinh viên phải ñăng ký từng môn học.
Hãy vẽ biểu ñồ lớp ñể mô tả các lớp và quan hệ giữa chúng. (Không cần phải liệt
kê thuộc tính và phương thức).
Câu 9:
Giả sử bạn ñang phải xác ñịnh yêu cầu cho hệ thống bán hàng trực tuyến. ðể ñặt
hàng, người sử dụng phải kết nối với hệ thống, tìm kiếm các mặt hàng cần mua và lựa
chọn ra một hoặc nhiều mặt hàng cần mua. Sau ñó, cung cấp các thông tin liên quan ñến
thẻ tín dụng ñể thanh toán.
Hãy xây dựng kịch bản cho trường hợp trên.
Môn học Công nghệ phần mềm







Trang 52
Chương 6 Thiết kế kiến trúc
Giới thiệu:
Sau khi xác ñịnh và phân tích yêu cầu hệ thống, chúng ta chuyển sang pha thiết kế
và cài ñặt hệ thống. Thiết kế kiến trúc hệ thống là giai ñoạn sớm nhất trong quy trình thiết
kế hệ thống. Thiết kế kiến trúc cung cấp cho chúng ta bản ñặc tả về kiến trúc hệ thống,
bao gồm những hệ thống con nào, tương tác với nhau ra sao, framework hỗ trợ ñiều khiển
tương tác giữa các hệ thống con như thế nào …
Mục tiêu:
- Thiết kế kiến trúc là gì và ñặc ñiểm của chúng. ðồng thời, xem xét một số mô
hình kiến trúc hệ thống thường ñược sử dụng.
- Các phương pháp tổ chức hệ thống
- Các phương pháp phân rã hệ thống con thành các mô-ñun.
- Thấy ñược mối quan hệ giữa các phương pháp tổ chức hệ thống và các
phương pháp phân rã hệ thống.
- Các chiến lược ñiều khiển hệ thống
- Giới thiệu một số mô hình kiến trúc tham chiếu
6.1 Thiêt kê kiên trúc là gì?
ðặt vấn ñề:
- Công việc ñầu tiên của giai ñoạn thiết kế hệ thống là gì? Tại sao?
Quy trình thiết kế nhằm xác ñịnh các hệ thống con cấu tạo lên hệ thống ñề xuất và
framework giúp ñiều khiển các hệ thống con và giao tiếp giữa chúng ñược gọi là quy
trình thiết kế kiến trúc. Kết quả của quy trình thiết kế này là bản ñặc tả về kiến trúc phần
mềm.
Thiết kế kiến trúc là pha sớm nhất trong quy trình thiết kế hệ thống. Thiết kế kiến
trúc thường ñược thực hiện song song với một số hành ñộng ñặc tả. Nó bao gồm có việc
phát hiện các thành phần chính của hệ thống và giao tiếp giữa chúng.
Nếu chúng ta có ñược bản thiết kế kiến trúc rõ ràng thì ta sẽ thấy ñược các ưu
ñiểm của nó trong những hoạt ñộng sau:
- Giao tiếp giữa các stakeholder: kiến trúc hệ thống thường ñược sử dụng làm
tâm ñiểm của các buổi thảo luận giữa các stakeholder.
- Phân tích hệ thống: tức là phân tích ñể xác ñịnh liệu hệ thống có thoả mãn các
yêu cầu phi chức năng của nó hay không.
- Tái sử dụng với quy mô lớn: kiến trúc có thể ñược tái sử dụng trong nhiều hệ
thống.
Các ñặc ñiểm của kiến trúc hệ thống:
- Hiệu năng: hạn chế các thao tác phức tạp và tối thiểu hoá giao tiếp.
- Bảo mật: sử dụng kiến trúc phân lớp với nhiều kiểm soát chặt chẽ ở các lớp
sâu hơn.
- An toàn.
- Sẵn dùng.
- Có khả năng bảo trì.
Môn học Công nghệ phần mềm







Trang 53
Tuy nhiên, trong quá trình thiết kế kiến trúc có thể xảy ra các xung ñột về mặt
kiến trúc như sau:
- Sử dụng nhiều thành phần lớn sẽ tăng hiệu năng nhưng giảm khả năng bảo trì.
- Nếu dữ liệu bị dư thừa thì sẽ cải thiện tính sẵn dùng nhưng làm cho việc bảo
mật khó khăn hơn.
- Hạn chế các thuộc tính có liên quan ñến tính an toàn có nghĩa là nếu có nhiều
giao tiếp thì sẽ làm giảm hiệu năng.
Thiết kế kiến trúc là một quy trình sáng tạo cho nên sự phác biệt của quy trình này
phụ thuộc vào từng loại hệ thống ñược xây dựng. Tuy nhiên, các quy trình thiết kế ñều
dựa trên những quyết ñịnh sau:
- Kiến trúc ứng dụng chung có ñược sử dụng lại hay không?
- Hệ thống sẽ ñược phân tán như thế nào?
- Những phong cách kiến trúc nào là thích hợp?
- Hệ thống sẽ ñược phân rã thành những mô-ñun nào?
- Chiến lược ñiều khiển nào sẽ ñược sử dụng?
- Cách ñánh giá thiết kế kiến trúc
- Kiến trúc sẽ ñược tư liệu hoá như thế nào?
Hơn nữa, cũng cần phải chú ý rằng các hệ thống có cùng miền ứng dụng có thể có
các kiến trúc chung ñể phản ánh những khái niệm liên quan ñến miền ứng dụng ñó. ðồng
thời, các dây chuyền sản xuất phần mềm ñược xây dựng quanh kiến trúc nền tảng cùng
với các biến ñổi tuỳ thuộc vào yêu cầu của khách hàng. Do ñó, khả năng tái sử dụng lại
kiến trúc hệ thống là rất cao.
Sau ñây là các mô hình kiến trúc cơ bản:
- Mô hình cấu trúc tĩnh: mô tả các thành phần hệ thống chính.
- Mô hình quy trình ñộng: biểu diễn quy trình cấu trúc của hệ thống.
- Mô hình giao diện: ñịnh nghĩa tập hợp các giao diện của hệ thống con
- Mô hình quan hệ: biểu diễn quan hệ giữa các hệ thống con.
- Mô hình phân tán: biểu diễn cách cài ñặt các hệ thống con trên máy tính.
6.2 Tô chúc hê thông
Giới thiệu:
Tổ chức hệ thống phản ánh chiến lược cơ bản ñược sử dụng ñể cấu trúc hệ thống.
Trong quá trình thiết kế kiến trúc hệ thống, hoạt ñộng ñầu tiên phải thực hiện là xây dựng
mô hình tổ chức hệ thống. Có 3 phương pháp tổ chức hệ thống thường ñược sử dụng:
- Kho dữ liệu dùng chung
- Server và các dịch vụ dùng chung (client-server)
- Phân lớp hoặc máy trừu tượng
Ở các phần tiếp theo, chúng ta sẽ tìm hiểu chi tiết ba phương pháp tổ chức hệ
thống này.
Mục tiêu:
- Nắm ñược ba phương pháp xây dựng mô hình tổ chức hệ thống
- Tìm hiểu chi tiết từng phương pháp và ñánh giá ưu/nhược ñiểm của chúng
- Có khả năng vận dụng trên hệ thống cụ thể
Môn học Công nghệ phần mềm







Trang 54

6.2.1 Kho dữ liệu dùng chung
Các hệ thống con phải trao ñổi dữ liệu và làm việc với nhau một cách hiệu quả.
Việc trao ñổi dữ liệu ñược thực hiện theo hai cách:
- Dữ liệu chia sẻ ñược lưu ở CSDL trung tâm hoặc kho dữ liệu và ñược tất cả
các hệ thống con truy nhập.
- Mỗi hệ thống con bảo trì CSDL của chính nó và truyền dữ liệu một cách
tường minh cho các hệ thống con khác.
Nếu số lượng dữ liệu dùng chung rất lớn thì mô hình kho dữ liệu dùng chung
thường ñược sử dụng phổ biến nhất. Ưu ñiểm của mô hình này là:
- ðây là phương pháp hiệu quả ñể chia sẻ số lượng lớn dữ liệu.
- Các hệ thống con không cần quan tâm tới những hoạt ñộng liên quan ñến dữ
liệu như: sao lưu, bảo mật,… vì ñã có bộ quản lý trung tâm thực hiện nhiệm
vụ này.
Tuy nhiên, việc sử dụng kho dữ liệu dùng chung cũng có một số nhược ñiểm sau:
- Tất cả các hệ thống con phải chấp nhận mô hình kho dữ liệu.
- Việc cải tiến dữ liệu rất phức tạp và tốn kém
- Khó phân tán một cách hiệu quả
- Không có giới hạn cho các chính sách quản lý cụ thể.
6.2.2 Mô hình client – server
Mô hình kiến trúc client-server là một mô hình hệ thống trong ñó hệ thống bao
gồm một tập hợp các server cung cấp dịch vụ và các client truy nhập và sử dụng các dịch
vụ ñó. Các thành phần chính của mô hình này bao gồm:
- Tập hợp các server sẽ cung cấp những dịch vụ cụ thể như: in ấn, quản lý dữ
liệu…
- Tập hợp các client truy nhập ñến server ñể yêu cầu cung cấp dịch vụ.
- Hệ thống mạng cho phép client truy cập tới dịch vụ mà server cung cấp.
Client phải biết tên của server và các dịch vụ mà server cung cấp. Nhưng server
thì không cần xác ñịnh rõ client và hiện tại có bao nhiêu client. Client tạo ra một yêu cầu
tới server và chờ server trả lời.
Ưu ñiểm của mô hình client server là:
- Phân tán dữ liệu rõ ràng
- Sử dụng các hệ thống ñược kết nối mạng một cách hiệu quả và chi phí dành
cho phần cứng có thể rẻ hơn.
- Dễ dàng bổ sung hoặc nâng cấp server
Nhược ñiểm của mô hình client server là:
- Không phải là mô hình dữ liệu dùng chung nên các hệ thống con có thể sử
dụng các tổ chức dữ liệu khác nhau. Do ñó, việc trao ñổi dữ liệu có thể không
hiệu quả.
- Quản lý mỗi server không thống nhất, dư thừa.
Môn học Công nghệ phần mềm







Trang 55
- Không ñăng ký tên và dịch vụ tập trung. ðiều này làm cho việc tìm kiếm
server hoặc các dịch vụ rất khó khăn.

6.2.3 Mô hình phân lớp
Mô hình phân lớp tổ chức hệ thống thành nhiều lớp và mỗi lớp cung cấp một tập
các dịch vụ. Mỗi lớp có thể ñược coi như một máy trừu tượng (abstract machine) mà
ngôn ngữ của máy ñược ñịnh nghĩa bởi các dịch vụ mà lớp ñó cung cấp. Do ñó, mô hình
này thường ñược sử dụng ñể mô hình hoá giao diện (interface) của hệ thống con.
Mô hình phân lớp hỗ trợ phát triển các hệ thống con theo kiểu tăng vòng ở nhiều
lớp khác nhau. Khi giao diện của một lớp thay ñổi thì chỉ những lớp liền kề nó mới bị ảnh
hưởng.

6.3 Phân rã hê thông
Giới thiệu:
Môn học Công nghệ phần mềm







Trang 56
Sau khi cấu trúc hệ thống ñã ñược lựa chọn, ta cần phải xác ñịnh phương pháp
phân rã các hệ thống con thành các mô-ñun.
Hệ thống con là một hệ thống có thể vận hành một cách ñộc lập, có thể sử dụng
một số dịch vụ ñược cung cấp bởi các hệ thống con khác hoặc cung cấp dịch vụ cho các
hệ thống con khác sử dụng.
Mô-ñun là một thành phần hệ thống cung cấp các dịch vụ cho các thành phần
khác, nhưng nó thường không ñược coi như là một hệ thống riêng rẽ, ñộc lập.
Có hai cách ñể phân rã các hệ thống con thành các mô-ñun:
- Phân rã hướng ñối tượng: hệ thống ñược phân rã thành các ñối tượng tương
tác với nhau.
- Pipeline hướng chức năng hoặc luồng dữ liệu: hệ thống ñược phân rã thành
các mô-ñun chức năng chịu trách nhiệm chuyển ñổi thông tin ñầu vào thành
kết quả ñầu ra.
Mục tiêu:
- Phân biệt ñược hai khái niệm: hệ thống con và mô-ñun
- Nắm ñược hai phương pháp phân rã hệ thống và ñánh giá ưu/nhược ñiểm của
từng phương pháp.
6.3.1 Phân rã hướng ñối tượng
Mô hình kiến trúc hướng ñối tượng cấu trúc hệ thống thành một tập hợp các ñối
tượng gắn kết lỏng dựa trên các giao diện ñã ñược ñịnh nghĩa.
Phân rã hướng ñối tượng liên quan tới việc xác ñịnh lớp ñối tượng, các thuộc tính
và phương thức của nó. Khi cài ñặt lớp, các ñối tượng sẽ ñược tạo ra từ các lớp này và có
một số mô hình ñiều khiển ñược sử dụng ñể kết hợp các phương thức của ñối tượng.
Ưu ñiểm của mô hình hướng ñối tượng:
- ðối tượng ñược gắn kết lỏng nên khi thay ñổi cách cài ñặt chúng có thể không
ảnh hưởng tới các ñối tượng khác.
- ðối tượng phản ánh thực thể trong thế giới thực.
- Các ngôn ngữ lập trình hướng ñối tượng ñược sử dụng rộng rãi.
Tuy nhiên, khi giao diện của ñối tượng thay ñổi có thể gây ra những vấn ñề hết
sức khó khăn và rất khó biểu diễn các thực thể phức tạp trong thế giới thực như là các ñối
tượng.
Ví dụ: các ñối tượng trong hệ thống xử lý hoá ñơn

Môn học Công nghệ phần mềm







Trang 57

6.3.2 Pipeline hướng chức năng
Mô hình pipeline hướng chức năng hoặc mô hình luồng dữ liệu là quy trình
chuyển ñổi thông tin ñầu vào thành kết quả ñầu ra. Việc chuyển ñổi thông tin ñầu vào
thành kết quả ñầu ra có thể ñược thực hiện tuần tự hoặc song song. Dữ liệu ñược xử lý
trong quy trình có thể là riêng lẻ hoặc theo lô.
Ưu ñiểm của mô hình:
- Hỗ trợ tái sử dụng quy trình chuyển ñổi
- Cung cấp tài liệu ñể giao tiếp với stakeholder
- Dễ dàng bổ sung thêm quy trình chuyển ñổi mới.
- Dễ dàng thực hiện, kể cả với hệ thống tuần tự hoặc song song.
Tuy nhiên, mô hình này yêu cầu phải có ñịnh dạng dữ liệu chung ñể truyền qua
các pipeline và rất khó hỗ trợ cho các tương tác hướng sự kiện.
Ví dụ: Mô hình luồng dữ liệu của hệ thống xử lý hoá ñơn

6.4 Các chiên luoc diêu khiên
Giới thiệu:
Các mô hình cấu trúc hệ thống có liên quan tới cách phân rã hệ thống thành nhiều
hệ thống con. ðể hệ thống làm việc tốt, ta phải ñiều khiển ñược các hệ thống con; cho
nên, các dịch vụ của chúng phải ñược thực hiện ñúng chỗ và ñúng thời ñiểm.
Có 2 loại chiến lược ñiều khiển:
- ðiều khiển tập trung: một hệ thống con chịu trách nhiệm kiểm soát, khởi tạo
hoặc dừng các hệ thống con khác.
Môn học Công nghệ phần mềm







Trang 58
- ðiều khiển hướng sự kiện: mỗi hệ thống ñáp ứng với các sự kiện xảy ra từ các
hệ thống con khác hoặc từ môi trường của hệ thống.
Mục tiêu:
- Giải thích ñược tại sao phải thiết lập chiến lược ñiều khiển hệ thống?
- Nắm ñược các chiến lược ñiều khiển hệ thống và ñánh giá chúng.
6.4.1 ðiều khiển tập trung
Hệ thống con ñiều khiển chịu trách nhiệm quản lý việc thực hiện của các hệ thống
con khác.
Chiến lược ñiều khiển tập trung gồm 2 loại mô hình:
6.4.1.1 Mô hình gọi trả lời (call-return)
Gồm các thủ tục con ñược sắp xếp phân cấp, thủ tục ñiều khiển nằm ở ñỉnh của
cấu trúc phân cấp và di chuyển dần xuống dưới. Mô hình này thường ñược áp dụng cho
các hệ thống tuần tự.

6.4.1.2 Mô hình quản lý
Thường áp dụng cho các hệ thống song song. Một thành phần hệ thống ñiều khiển
việc khởi tạo, ngừng, hoặc cộng tác với các quy trình hệ thống khác.
Môn học Công nghệ phần mềm







Trang 59

6.4.2 ðiều khiển hướng sự kiện
6.4.2.1 Mô hình lan truyền (Broadcast)
Trong mô hình lan truyền, sự kiện ñược lan truyền tới tất cả các hệ thống con. Bất
kỳ hệ thống nào nếu có thể bắt ñược sự kiện này thì sẽ xử lý nó.
Mô hình này có hiệu quả ñối với việc tích hợp các hệ thống con trên nhiều máy
tính khác nhau trong cùng một mạng.
Các hệ thống con phải ñăng ký những sự kiện mà nó có thể bắt. Khi những sự
kiện này xảy ra, ñiều khiển sẽ ñược truyền cho hệ thống con có thể bắt ñược sự kiện ñó.
Những quy tăc ñiều khiển không ñược gắn với sự kiện và bộ bắt sự kiện. Các hệ thống
phải quyết ñịnh sự kiện nào là sự kiện mà nó ñã ñăng ký. Nhưng nó không cần phải biết
khi nào sự kiện sẽ ñược bắt.

6.4.2.2 Mô hình hướng ngắt (Interrupt-driven)
Mô hình hướng ngắt ñược sử dụng trong các hệ thống thời gian thực trong ñó các
ngắt ñược phát hiện bởi bộ bắt ngắt (interrupt handler) và ñược truyền cho một số các
thành phần khác ñể xử lý.
Môn học Công nghệ phần mềm







Trang 60
Các kiểu ngắt và bộ bắt tương ứng ñược ñịnh nghĩa trước. Mỗi kiểu ngắt ñược
gắn với một vị trí nhớ và một bộ chuyển mạch ñể ñưa ngắt tới bộ bắt tương ứng của nó.
Mô hình này cho phép ñáp ứng rất nhanh, nhưng lập trình khá phức tạp và khó
ñánh giá.

6.5 Các kiên trúc tham chiêu
Giới thiệu:
Mặc dù các hệ thống có cùng một miền ứng dụng có khác nhau về chi tiết nhưng
kiến trúc chung của nó khá giống nhau. Do ñó, khi xây dựng một hệ thống mới, ta có thể
sử dụng lại kiến trúc của hệ thống tương tự ñã tồn tại.
Có 2 loại mô hình kiến trúc cho một miền ứng dụng cụ thể:
- Mô hình chung: là sự trừu tượng hoá từ một số các hệ thống thực và bao hàm
các thuộc tính quan trọng của các hệ thống này. Mô hình chung là mô hình
bottom-up.
- Mô hình tham chiếu: là mô hình trừu tượng hoá và lý tưởng. Các mô hình
tham chiếu thường kế thừa từ những nghiên cứu về miền ứng dụng hơn là từ
các hệ thống ñang tồn tại. Mô hình tham chiếu là mô hình top-down. Mô hình
tham chiếu ñược sử dụng như một phần cơ bản ñể cài ñặt hệ thống hoặc ñể so
sánh với các hệ thống khác. Nó ñóng vai trò là một mô hình chuẩn ñể ñánh giá
các hệ thống khác.
6.6 Bài tâp
Câu 1:
Vấn ñề nào sau ñây liên quan ñến pha thiết kế?
Kiến trúc
Môn học Công nghệ phần mềm







Trang 61
Dữ liệu
Phạm vi dự án
Giao diên
a, b, d
(Wrong, Wrong, Wrong, Wrong, Correct)
Câu 2:
ðặc ñiểm nào sau ñây ñược sử dụng ñể ñánh giá một bản thiết kế tốt?
Mô tả ñược sự gắn kết giữa các mô-ñun
Thể hiện tất cả các yêu cầu trong pha phân tích
Chứa cả các trường hợp kiểm thử của tất cả các thành phần
Cung cấp một mô tả hoàn thiện về phần mềm
b và d
(Wrong, Wrong, Wrong, Wrong, Correct)
Câu 3:
Giải thích tại sao cần phải thiết kế kiến trúc trước khi viết ñặc tả?
Câu 4:
Giải thích tại sao xung ñột lại xảy ra khi thiết kế kiến trúc yêu cầu phải ñảm bảo
tính sẵn dùng và tính bảo mật?
Câu 5:
Hãy ñề xuất một mô hình cấu trúc thích hợp và thiết kế kiến trúc cho các hệ thống
dưới ñây
1. Hệ thống bán vé tàu hoả tự ñộng
2. Hệ thống hội nghị trực tuyến, cho phép các dạng dữ liệu như âm thanh, hình
ảnh, văn bản ... có thể ñược truyền tới người sử dụng một cách ñồng thời.
Câu 6:
Hãy ñề xuất một mô hình ñiều khiển thích hợp cho các hệ thống sau:
1. Bộ ñiều khiển của tivi có thể nhận tín hiệu từ một ñơn vị ñiều khiển từ xa
2. Hệ thống thanh toán lương, xử lý theo lô. Lấy thông tin về thời gian làm việc,
hệ số lương; in ra bảng lương và chuyển thông tin vào tài khoản ngân hàng.
Môn học Công nghệ phần mềm







Trang 62
Chương 7 Thiết kế giao diện người dùng
Giới thiệu:
Chúng ta phải luôn nhớ một nguyên tắc quan trọng khi xây dựng một hệ thống
phần mềm, ñó là: người sử dụng không quan tâm ñến cấu trúc bên trong của hệ thống,
ñơn giản hay phức tạp; cái mà họ có thể ñánh giá ñược và cảm nhận ñược chính là giao
diện tương tác giữa hệ thống và người sử dụng. Nếu người sử dụng cảm thấy giao diện
không thích hợp, khó sử dụng thì rất có thể họ sẽ không sử dụng cả hệ thống; cho dù hệ
thống ñó có ñáp ứng tất cả các chức năng nghiệp vụ mà họ muốn. Và như vậy, dự án của
chúng ta sẽ thất bại.
Vì tầm quan trọng của giao diện người dùng, nên chúng ta có cả một chương ñể
nói về chúng. Trong chương này, chúng ta sẽ nghiên cứu những vấn ñề sau:
- Các yếu tố liên quan ñến giao diện người dùng
- Quy trình xây dựng giao diện người dùng
7.1 Giao diên nguòi dùng
Giới thiệu:
Giao diện người dùng cần phải ñược thiết kế sao cho phù hợp với kỹ năng, kinh
nghiệm và sự trông ñợi của người sử dụng nó.
Người sử dụng hệ thống thường ñánh giá hệ thống thông qua giao diện hơn là
chức năng của nó. Giao diện của hệ thống nghèo nàn có thể khiến người sử dụng tạo ra
các lỗi hết sức nghiêm trọng. ðó là lý do tại sao nhiều hệ thống phần mềm không bao giờ
ñược sử dụng.
Mục tiêu:
- Nắm ñược sự ảnh hưởng của người sử dụng tới giao diện
- Một số nguyên tắc khi thiết kế giao diện người dùng
- Phân loại các khả năng tương tác giữa người và máy ñể thiết kế giao diện cho
phù hợp
- Biết cách biểu diễn thông tin cho phù hợp với người sử dụng
7.1.1 Tác nhân con người trong thiết kế giao diện
Một nhân tố quan trọng ảnh hưởng tới quá trình thiết kế giao diện ñó chính là
người sử dụng hệ thống. Do ñó, chúng ta phải tìm hiểu một số ñặc ñiểm của người sử
dụng có liên quan ñến giao diện hệ thống:
- Khả năng nhớ tức thời của con người bị hạn chế: con người chỉ có thể nhớ
ngay khoảng 7 loại thông tin. Nếu ta biểu diễn nhiều hơn 7 loại, thì có thể
khiến người sử dụng không nhớ hết và gây ra các lỗi.
- Người sử dụng có thể gây ra lỗi: khi người sử dụng gây ra lỗi khiến hệ thống
sẽ hoạt ñộng sai, những thông báo không thích hợp có thể làm tăng áp lực lên
người sử dụng và do ñó, càng xảy ra nhiều lỗi hơn.
- Người sử dụng là khác nhau: con người có những khả năng khác nhau. Những
người thiết kế không nên chỉ thiết kế giao diện phù hợp với những khả năng
của chính họ.
Môn học Công nghệ phần mềm







Trang 63
- Người sử dụng thích các loại tương tác khác nhau: một số người thích hình
ảnh, văn bản, âm thanh …
7.1.2 Các nguyên tắc thiết kế giao diên
Thiết kế giao diện phải phụ thuộc vào yêu cầu, kinh nghiệm và khả năng của
người sử dụng hệ thống.
Người thiết kế cũng nên quan tâm ñến những giới hạn vật lý và tinh thần của con
người và nên nhận ra rằng con người luôn có thể gây ra lỗi.
Không phải tất cả các nguyên tắc thiết kế giao diện ñều có thể ñược áp dụng cho
tất cả các giao diện. Sau ñây là các nguyên tắc thiết kế giao diện:
- Sự quen thuộc của người sử dụng: giao diện phải ñược xây dựng dựa trên các
thuật ngữ và các khái niệm mà người sử dụng có thể hiểu ñược hơn là những
khái niệm liên quan ñến máy tính. Ví dụ: hệ thống văn phòng nên sử dụng các
khái niệm như thư, tài liệu, cặp giấy … mà không nên sử dụng những khái
niệm như thư mục, danh mục …
- Thống nhất: hệ thống nên hiển thị ở mức thống nhất thích hợp. Ví dụ: các câu
lệnh và menu nên có cùng ñịnh dạng …
- Tối thiểu hoá sự bất ngờ: nếu một yêu cầu ñược xử lý theo cách ñã biết trước
thì người sử dụng có thể dự ñoán các thao tác của những yêu cầu tương tư.
- Khả năng phục hồi: hệ thống nên cung cấp một số khả năng phục hồi từ lỗi
của người sử dụng và cho phép người sử dụng khôi phục lại từ chỗ bị lỗi. Khả
năng này bao gồm cho phép làm lại, hỏi lại những hành ñộng như xoá, huỷ …
- Hướng dẫn người sử dụng: như hệ thống trợ giúp, hướng dẫn trực tuyến …
- Tính ña dạng: hỗ trợ nhiều loại tương tác cho nhiều loại người sử dung khác
nhau. Ví dụ: nên hiển thị phông chữ lớn với những người cận thị.
Tương tác giữa người sử dụng và hệ thống ñược chia thành 5 loại sau:
- Vận hành trực tiếp
- Lựa chọn menu
- ðiền vào biểu mẫu (Form)
- Ngôn ngữ ra lệnh
- Ngôn ngữ tự nhiên
7.1.3 Biểu diễn thông tin
Biểu diễn thông tin có liên quan tới việc hiển thị các thông tin trong hệ thống tới
người sử dụng. Thông tin có thể ñược biểu diễn một cách trực tiếp hoặc có thể ñược
chuyển thành nhiều dạng hiển thị khác như: dạng ñồ hoạ, âm thanh …
Thông tin cần biểu diễn ñược chia thành hai loại:
- Thông tin tĩnh: ñược khởi tạo ở ñầu của mỗi phiên. Nó không thay ñổi trong
suốt phiên ñó và có thể là ở dạng số hoặc dạng văn bản.
- Thông tin ñộng: thay ñổi trong cả phiên sử dụng và sự thay ñổi này phải ñược
người sử dụng quan sát.
Các nhân tố ảnh hưởng tới việc hiển thị thông tin:
- Người sử dụng thích hiển thị một phần thông tin hay quan hệ dữ liệu?
Môn học Công nghệ phần mềm







Trang 64
- Giá trị của thông tin thay ñổi nhanh như thế nào? Sự thay ñổi ñó có cần phải
thể hiện ngay lập tức hay không?
- Người sử dụng có phải thực hiện các hành ñộng ñể ñáp ứng với sự thay ñổi
không?
- Có phải là giao diện vận hành trực tiếp không?
- Thông tin ở dạng văn bản hay dạng số? Các giá trị quan hệ có quan trọng
không?
- Biểu diễn digital hay analogue?
Nếu chúng ta cần hiển thị số lượng lớn thông tin thì nên trực quan hoá dữ liệu.
Trực quan hoá có thể phát hiện ra mối quan hệ giữa các thực thể và các xu hướng trong
dữ liệu. Ví dụ: thông tin về thời tiết ñược hiển thị dưới dạng biểu ñồ, trạng thái của mạng
ñiện thoại nên ñược hiển thị bởi các nút có liên kết với nhau.
Chúng ta thường sử dụng màu trong khi thiết kế giao diện. Màu bổ sung thêm một
chiều nữa cho giao diện và giúp cho người sử dụng hiểu ñược những cấu trúc thông tin
phức tạp. Màu có thể ñược sử dụng ñể ñánh dấu những sự kiện ngoại lệ.
Tuy nhiên, khi sử dụng màu ñể thiết kế giao diện có thể gây phản tác dụng. Do
ñó, chúng ta nên quan tâm tới một số hướng dẫn sau:
- Giới hạn số lượng màu ñược sử dụng và không nên lạm dụng việc sử dụng
màu.
- Thay ñổi màu khi thay ñổi trạng thái của hệ thống
- Sử dụng màu ñể hỗ trợ cho những nhiệm vụ mà người sử dụng ñang cố gắng
thực hiện.
- Sử dụng màu một cách thống nhất và cẩn thận.
- Cẩn thận khi sử dụng các cặp màu.
Khi người sử dụng tương tác với hệ thống, rất có thể xảy ra lỗi và hệ thống phải
thông báo cho người sử dụng biết lỗi gì ñã xảy ra hoặc ñã có chuyện gì xảy ra với hệ
thống. Do ñó, thiết kế thông báo lỗi vô cùng quan trọng. Nếu thông báo lỗi nghèo nàn có
thể làm cho người sử dụng từ chối hơn là chấp nhận hệ thống.
Vì vậy, thông báo lỗi nên ngắn gọn, xúc tích, thống nhất và có cấu trúc. Việc thiết
kế thông báo lỗi nên dựa vào kỹ năng và kinh nghiệm của người sử dụng.
Ví dụ: Giao diện thông báo lỗi
Trong hệ thống quản lý bệnh viện, y tá phải nhập hồ sơ bệnh nhân. Trong khi
nhập, y tá quên tên bệnh nhân.
1. Thiết kế giao diện thống báo lỗi.
2. Cho biết các tiêu chuẩn ñánh giá một giao diện tốt?
7.2 Quy trình thiêt kê giao diên nguòi dùng
Giới thiệu:
Thiết kế giao diện người dùng là một quy trình lặp lại bao gồm sự cộng tác giữa
người sử dụng và người thiết kế. Trong quy trình này gồm 3 hoạt ñộng cơ bản:
- Phân tích người sử dụng: tìm hiểu những gì người sử dụng sẽ làm với hệ
thống.
- Lập mẫu thử hệ thống: xây dựng một tập các mẫu thử ñể thử nghiệm
Môn học Công nghệ phần mềm







Trang 65
- ðánh giá giao diện: thử nghiệm các mẫu thử cùng với người sử dụng.


Mục tiêu:
- Hiểu ñược quy trình thiết kế giao diện người dùng
- Nắm ñược chi tiết từng hoạt ñộng trong quy trình thiết kế giao diện người
dùng
- Với mỗi hoạt ñộng, chúng ta có rất nhiều cách ñể thực hiện. Do ñó, phải có
khả năng lựa chọn phương pháp nào là thích hợp nhất cho từng hoàn cảnh cụ
thể.
7.2.1 Phân tích người sử dụng
Nếu ta không hiểu rõ những gì người sử dụng muốn làm với hệ thống, thì ta sẽ
không thể thiết kế ñược một giao diện hiệu quả.
Phân tích người sử dụng phải ñược mô tả theo những thuật ngữ ñể người sử dụng
và những người thiết kế khác có thể hiểu ñược.
Các ngữ cảnh mà ta mô tả thao tác ở trong ñó là một trong những cách mô tả phân
tích người dùng. Ta có thể lấy ñược rất nhiều yêu cầu của người sử dụng từ ñó.
Các kỹ thuật phân tích:
- Phân tích nhiệm vụ: mô hình hoá các bước cần thực hiện ñể hoàn thành một
nhiệm vụ.
- Phân tích nhiệm vụ phân cấp.
- Phỏng vấn và trắc nghiệm: hỏi người sử dụng về những gì mà họ làm. Khi
phỏng vấn, chúng ta nên dựa trên những câu hỏi có kết thúc mở. Sau ñó,
người sử dụng cung cấp những thông tin mà họ nghĩ rằng nó là cần thiết;
nhưng không phải tất cả các thông tin ñó là có thể ñược sử dụng. Ngoài ra,
chúng ta có thể thực hiện phỏng vấn với cả nhóm người sử dụng, ñiều ñó cho
phép người sử dụng thảo luận với nhau về những gì họ làm.
- Mô tả: quan sát người sử dụng làm việc và hỏi họ về những cách mà không
ñược biết tới. Nên nhớ rằng có nhiều nhiệm vụ của người sử dụng thuộc về
Môn học Công nghệ phần mềm







Trang 66
trực giác và rất khó ñể mô tả và giải thích chúng. Dựa trên kỹ thuật này ta có
thể hiểu thêm về các ảnh hưởng xã hội và tổ chức tác ñộng tới công việc ñó.
7.2.2 Lập mẫu thử giao diện người dùng
Mẫu thử cho phép người sử dụng có ñược những kinh nghiệm trực tiếp với giao
diện. Nếu không có những kinh nghiệm trực tiếp như vậy thì không thể ñánh giá ñược
khả năng có thể sử dụng ñược của giao diện.
Lập mẫu thử là một quy trình gồm 2 trạng thái:
- Lập các mẫu thử trên giấy.
- Tinh chỉnh mẫu thử và xây dựng chúng
Các kỹ thuật lập mẫu thử:
- Mẫu thử hướng nguyên mẫu: sử dụng công cụ như Macromedia Director ñể
xây dựng một tập hợp các nguyên mẫu và màn hình. Khi người sử dụng tương
tác với chúng thì màn hình sẽ thay ñổi ñể hiển thị trạng thái kế tiếp.
- Lập trình trực quan: sử dụng các ngôn ngữ ñược thiết kế cho việc phát triển
nhanh như Visual Basic.
- Mẫu thử dựa Internet: sử dụng web browser và script.
7.2.3 ðánh giá giao diện người dùng
Ta nên ñánh giá bản thiết kế giao diện người dùng ñể xác ñịnh khả năng phù hợp
của nó. Tuy nhiên, việc ñánh giá trên phạm vi rộng tốn nhiều chi phí và không thể thực
hiện ñược ñối với hầu hết các hệ thống.
Các kỹ thuật ñánh giá ñơn giản:
- Trắc nghiệm lại các phản hồi của người sử dụng
- Ghi lại quá trình sử dụng mẫu thử của hệ thống và ñánh giá nó.
- Lựa chọn những thông tin về việc sử dụng dễ dàng và các lỗi của người sử
dụng.
- Cung cấp mã lệnh trong phần mềm ñể thu thập những phản hồi của người sử
dụng một cách trực tuyến.
7.3 Bài tâp
Câu 1:
Nêu một số trường hợp không thể cung cấp giao diện người dùng một cách nhất
quán
Câu 2:
Hãy ñề xuất một vài giao diện người dùng thích hợp cho hệ thống bán sách trực
tuyến, dành cho những khách hàng là người khuyết tật.
Câu 3:
Cho biết những ưu ñiểm của việc hiển thị thông tin một cách trực quan. Lấy ví dụ
ñể minh hoạ cho tính vượt trội của việc hiển thị thông tin trực quan so với các thông tin
thống kế như văn bản, số liệu.
Câu 4:
Nêu những chú ý khi sử dụng màu ñể thiết kế giao diện
Môn học Công nghệ phần mềm







Trang 67
Câu 5:
Viết kịch bản tương tác của hệ thống dịch vụ ñặt mua vé trước và thực hiện thanh
toán bằng thẻ tín dụng.
Môn học Công nghệ phần mềm







Trang 68
Chương 8 Cải tiến phần mềm
Giới thiệu:
Thay ñổi phần mềm là một ñiều không thể tránh khỏi vì những lí do sau:
- Những yêu cầu mới sẽ xuất hiện khi sử dụng phần mềm
- Môi trường nghiệp vụ thay ñổi
- Các lỗi phần mềm cần phải sửa chữa
- Máy tính và các thiết bị mới ñược bổ sung vào hệ thống
- Hiệu năng hoặc ñộ tin cậy của hệ thống phải ñược cải thiện.
Tuy nhiên, vấn ñề quan trọng là chúng ta phải thực hiện và quản lý các thay ñổi
ñối với hệ thống phần mềm ñã tồn tại. Và chúng ta phải thấy ñược tầm quan trọng của
việc cải tiến phần mềm:
- Các tổ chức thường ñầu tư một lượng vốn khá lớn vào các hệ thống phần mềm
của họ. Cho nên họ có quyền ñòi hỏi phải sở hữu một hệ thống hoàn hảo.
- ðể bảo trì giá trị sở hữu của tổ chức, họ phải thay ñổi và cải tiến hệ thống.
- Ngân sách phần mềm chính trong các công ty lớn thường dùng cho việc cải
tiến các hệ thống ñã tồn tại hơn là phát triển một hệ thống mới.
Người ta thường sử dụng mô hình xoắn ốc ñể cải tiến hệ thống phần mềm.


Mục tiêu:
- Hiểu ñược vai trò của việc bảo trì phần mềm
- Nắm ñược các vấn ñề liên quan ñến bảo trì: phân loại, phương pháp, chi phí
bảo trì …
- Hiểu ñược một số quy trình và các chiến lược cải tiến phần mềm
- Tìm hiểu về tái kỹ nghệ và phân biệt forward-engineering và
8.1 Báo trì phân mêm
Mục tiêu:
- Bảo trì phần mềm là làm gì?
Môn học Công nghệ phần mềm







Trang 69
- Tại sao phải bảo trì?
- Phân biệt rõ các kiểu bảo trì phần mềm
- Nắm ñược các yếu tố ảnh hưởng tới chi phí bảo trì, nhằm giảm chi phí khi áp
dụng trong thực tế.
Bảo trì phần mềm chính là hoạt ñộng chỉnh sửa chương trình sau khi nó ñã ñược
ñưa vào sử dụng.
Bảo trì thường không bao gồm những thay ñổi chính liên quan tới kiến trúc của hệ
thống. Những thay ñổi trong hệ thống thường ñược cài ñặt bằng cách ñiều chỉnh những
thành phần ñang tồn tại và bổ sung những thành phần mới cho hệ thống.
Bảo trì là không thể tránh khỏi vì:
- Các yêu cầu hệ thống thường thay ñổi khi hệ thống ñang ñược xây dựng vì
môi trường thay ñổi. Vì vậy, hệ thống ñược chuyển giao có thể không thoả
mãn các yêu cầu của nó.
- Các hệ thống có gắn kết chặt chẽ với môi trường của nó. Khi hệ thống ñược
cài ñặt trong một môi trường nhất ñịnh nó sẽ làm thay ñổi môi trường ñó và vì
vậy sẽ thay ñổi các yêu cầu của hệ thống.
- Các hệ thống phải ñược bảo trì nếu chúng muốn là những phần hữu ích trong
môi trường nghiệp vụ.
Phân loại các kiểu bảo trì:
- Bảo trì sửa lỗi: thay ñổi hệ thống ñể sửa lại những khiếm khuyết nhằm thoả
mãn yêu cầu hệ thống.
- Bảo trì tích hợp hệ thống vào một môi trường vận hành khác
- Bảo trì ñể bổ sung hoặc chỉnh sửa các yêu cầu chức năng của hệ thống: chỉnh
sửa hệ thống sao cho thoả mãn các yêu cầu mới.
Chi phí bảo trì thường lớn hơn chi phí xây dựng gấp từ 2 ñến 100 lần phụ thuộc
vào từng ứng dụng. Chi phí bảo trì bị ảnh hưởng bởi cả tác nhân kỹ thuật và phi kỹ thuật.
Nếu bảo trì càng nhiều, sẽ càng làm thay ñổi cấu trúc phần mềm và do ñó sẽ làm
cho việc bảo trì càng trở lên khó khăn hơn. Phần mềm có tuổi thọ càng cao thì càng phải
cần chi phí cao hơn (vì sử dụng các ngôn và chương trình dịch cũ …)

Các nhân tố ảnh hưởng ñến chi phí bảo trì:
Môn học Công nghệ phần mềm







Trang 70
- Sự ổn ñịnh của ñội dự án: chi phí bảo trì sẽ giảm nếu nhân viên trong ñội dự
án không thay ñổi.
- Những trách nhiệm ñã cam kết: người xây dựng hệ thống có thể không cam
kết trách nhiệm bảo trì cho nên không có gì ñể bắt buộc họ phải thiết kế lại
cho các thay ñổi trong tương lai.
- Kỹ năng của nhân viên: nhân viên bảo trì thường không có kinh nghiệm và
hiểu biết về miền ứng dụng của họ bị hạn chế.
- Tuổi thọ và cấu trúc chương trình: khi tuổi thọ và cấu trúc chương trình bị
xuống cấp thì chúng càng trở lên khó hiểu và thay ñổi nhiều.
8.1.1 Dự ñoán bảo trì
Dự ñoán bảo trì có liên quan tới việc ñánh giá những phần nào của hệ thống có
thể gây ra lỗi và cần nhiều chi phí ñể bảo trì.
Khả năng chịu ñược sự thay ñổi phụ thuộc vào khả năng bảo trì của các thành
phần bị ảnh hưởng bởi sự thay ñổi ñó. Thực hiện các thay ñổi có thể làm hỏng hệ thống
và giảm khả năng bảo trì của nó.
Chi phí bảo trì phụ thuộc vào số lượng các thay ñổi và chi phí thay ñổi phụ thuộc
vào khả năng bảo trì.
8.1.2 Dự ñoán thay ñổi
Dự ñoán số lượng các thay ñổi có thể xảy ra và tìm hiểu mối quan hệ giữa hệ
thống và môi trường của nó.
Sự thay ñổi yêu cầu hệ thống có liên quan chặt chẽ tới sự thay ñổi của môi trường.
Trong ñó, các nhân tố ảnh hưởng tới mối quan hệ này bao gồm:
- Số lượng và ñộ phức tạp của các giao diện hệ thống
- Số lượng các yêu cầu bất ổn ñịnh có tính phân cấp
- Các quy trình nghiệp vụ của hệ thống.
Ta có thể dự ñoán bảo trì thông qua việc ñánh giá ñộ phức tạp của các thành phần
hệ thống. ðộ phức tạp phụ thuộc vào:
- ðộ phức tạp của cấu trúc ñiều khiển
- ðộ phức tạp của cấu trúc dữ liệu
- Kích thước của ñối tượng, phương thức và mô-ñun.
Ngoài ra, ta có thể sử dụng các phép ño quy trình ñể ñánh giá khả năng bảo trì.
- Số lượng các yêu cầu cần bảo trì sửa lỗi.
- Thời gian trung bình cần thiết ñể phân tích ảnh hưởng
- Thời gian trung bình ñể cài ñặt một yêu cầu thay ñổi.
- Số lượng các yêu cầu cần giải quyết.
8.2 Các quy trình cái tiên phân mêm
Mục tiêu:
- Nắm ñược một số quy trình cải tiến phần mềm cơ bản
- Biết ñược các chiến lược cải tiến hệ thống
- Có khả năng áp dụng các quy trình cải tiến này trên những hệ thống thực.
Môn học Công nghệ phần mềm







Trang 71
Các quy trình cải tiến phần mềm phụ thuộc vào:
- Kiểu phần mềm cần bảo trì
- Quy trình phát triển phần mềm ñã ñược sử dụng
- Kỹ năng và kinh nghiệm của các stakeholder.
Các ñề xuất thay ñổi là ñịnh hướng ñể cải tiến hệ thống. Phát hiện thay ñổi và cải
tiến ñược thực hiện trong vòng ñời hệ thống. Các hình vẽ sau ñây thể hiện một cách khái
quát các quy trình cải tiến hệ thống.



Trên ñây là những quy trình cơ bản. Tuy nhiên, với các yêu cầu thay ñổi khẩn
cấp, ta có thể cài ñặt chúng nay mà không cần phải trải qua tất cả các pha của quy trình
công nghệ phần mềm. Những yêu cầu thay ñổi khẩn cấp thường xảy ra khi:
- Nếu có một lỗi hệ thống nghiêm trọng xảy ra và cần phải sửa chữa.
Môn học Công nghệ phần mềm







Trang 72
- Nếu những thay ñổi về môi trường của hệ thống gây ra những hiệu ứng không
mong ñợi.
- Nếu sự thay ñổi về mặt nghiệp vụ yêu cầu phải có ñáp ứng nhanh.

ðể cải tiến hệ thống hiện có, người ta ñã ñề xuất bốn chiến lược cơ bản:
- Tách hệ thống và chỉnh sửa các quy trình nghiệp vụ
- Tiếp tục bảo trì hệ thống
- Biến ñổi hệ thống bằng cách tái kỹ nghệ ñể nâng cấp khả năng bảo trì của nó.
- Thay thế hệ thống bằng một hệ thống mới
Việc lựa chọn chiến lược cải tiến hệ thống phụ thuộc vào chất lượng hệ thống và
giá trị nghiệp vụ của nó.
Các loại hệ thống hiện có ñược phân loại dựa trên tiêu chí chất lượng và giá trị
nghiệp vụ mà nó mang lại như sau:
- Chất lượng thấp và giá trị nghiệp vụ thấp: những hệ thống này nền ñược tách
ra.
- Chất lượng thấp và giá trị nghiệp vụ cao: những hệ thống này có giá trị nghiệp
vụ cao nhưng chi phí bảo trì khá lớn. Ta nên tái kỹ nghệ hoặc thay thế bởi một
hệ thống thích hợp
- Chất lượng cao và giá trị nghiệp vụ thấp: thay thế bằng các thành phần COTS
- Chất lượng cao và giá trị nghiệp vụ cao: tiếp tục sử dụng và bảo trì hệ thống
theo cách thông thường.
Việc ñánh giá giá trị nghiệp vụ ñược thực hiện từ nhiều khung nhìn khác nhau.
Phỏng vấn các stakeholder khác nhau và ñối sánh kết quả thu ñược. Các stakeholder
thường là:
- Người sử dụng cuối
- Khách hàng của doanh nghiệp
- Người quản lý dây chuyền sản xuất
- Người quản lý công nghệ thông tin
- Người quản lý cao cấp
ðánh giá chất lượng hệ thống thông qua:
- Quy trình nghiệp vụ: quy trình nghiệp vụ ñã hỗ trợ cho các mục tiêu nghiệp
vụ như thế nào?
- Môi trường hệ thống: môi trường hệ thống có hiệu quả như thế nào và chi phí
ñể bảo trì nó.
- Khả năng ứng dụng: chất lượng của ứng dụng?
ðể ño hệ thống, chúng ta có thể thu thập dữ liệu ñịnh lượng ñể tạo ra bản ñánh giá
về chất lượng của hệ thống.
- Số lượng các yêu cầu thay ñổi của hệ thống
- Số lượng các giao diện người dùng khác nhau
Môn học Công nghệ phần mềm







Trang 73
- Số lượng dữ liệu ñược sử dụng trong hệ thống.
8.3 Tái kÿ nghê hê thông (System re-engineering)
Mục tiêu:
- Nắm rõ tái kỹ nghệ hệ thống là gì? Ưu và nhược ñiểm của nó.
- Quy trình tái kỹ nghệ hệ thống
- Phân biệt forward-engineering và re-engineering
Tái kỹ nghệ hệ thống là kỹ thuật cấu trúc lại hoặc viết lại một phần hoặc toàn bộ
hệ thống ñược thừa kế mà không thay ñổi các chức năng của nó.
Tái ký nghệ giúp giảm rủi ro vì trong quá trình xây dựng phần mềm mới rủi ro có
thể xảy ra là khá cao và giúp giảm chi phí.
Mô hình sau ñây giúp phân biệt forward và re-engineering:

Quy trình tái kỹ nghệ bao gồm các hoạt ñộng sau:
- Dịch mã nguồn: chuyển mã lệnh thành ngôn ngữ mới.
- Kỹ nghệ ngược: phân tích chương trình ñể tìm hiểu nó.
- Cải thiện cấu trúc chương trình
- Mô-ñun hoá chương trình: tổ chức lại cấu trúc chương trình
- Tái kỹ nghệ dữ liệu: thu dọn và cấu trúc lại dữ liệu hệ thống

Các nhân tố ảnh hưởng tới chi phí tái kỹ nghệ:
- Chất lượng của hệ thống ñược tái kỹ nghệ
Môn học Công nghệ phần mềm







Trang 74
- Các công cụ hỗ trợ tái kỹ nghệ
- Mức mở rộng cần thiết của việc chuyển ñổi dữ liệu
- Những nhân viên có kỹ năng về tái kỹ nghệ hệ thống
8.4 Bài tâp
Câu 1:
Giải thích tại sao hệ thống phần mềm thường nhanh chóng trở lên lỗi thời và
nhanh hết tác dụng khi ñưa vào sử dụng trong thực tế.
Câu 2:
Trình bày ba kiểu bảo trì phần mềm. Tại sao chúng ta thường khó phân biệt các
kiểu bảo trì này?
Câu 3:
Cho biết những yếu tố chính ảnh hưởng tới chi phí của việc tái kỹ nghệ phần
mềm?
Câu 4:
ðể tái kỹ nghệ phần mềm thành công, cần phải có những yếu tố nào?
Môn học Công nghệ phần mềm







Trang 75
Chương 9 Kiểm thử phần mềm
Giới thiệu:
Kiểm thử là một pha không thể thiếu ñược trong quá trình phát triển hệ thống.
Kiểm thử giúp cho người xây dựng hệ thống và khách hàng ñều thấy ñược rằng hệ thống
mới ñã thoả mãn yêu cầu ñề ra hay chưa.
Mục tiêu:
- Nắm ñược quy trình kiểm thử phần mềm
- Tìm hiểu chi tiết về kiểm thử thành phần và kiểm thử hệ thống; các phương
pháp ñược sử dụng.
- Có khả năng thiết kế các trường hợp kiểm thử và sử dụng các công cụ giúp tự
ñộng kiểm thử
9.1 Quy trình kiêm thú
ðặt vấn ñề:
- Sau khi xây dựng xong phần mềm, có thể chuyển giao ngay cho khách hàng
không?
- Tại sao phải kiểm thử?
- Hãy thảo luận về quy trình kiểm thử.
Sau khi cài ñặt hệ thống, chúng ta phải kiểm thử ñể chắc chắn rằng hệ thống ñã
thoả mãn tất cả các yêu cầu ñề ra. Quy trình kiểm thử gồm hai pha:
- Kiểm thử thành phần: kiểm thử từng thành phần riêng biệt. Do người xây
dựng thành phần tự thực hiện. Việc kiểm thử ñược kế thừa từ kinh nghiệm của
người xây dựng nó.
- Kiểm thử hệ thống: kiểm thử một tập các thành phần ñược tích hợp với nhau
ñể tạo ra hệ thống hoặc hệ thống con. Thông thường do một ñội kiểm thử ñộc
lập thực hiện. Việc kiểm thử dựa trên tài liệu ñặc tả hệ thống.

Mục ñích của quy trình kiểm thử:
- Kiểm thử hợp lệ: ñể chứng minh cho người xây dựng và khách hàng thấy
ñược phần mềm ñã thoả mãn yêu cầu hay chưa. Kiểm thử thành công cho thấy
hệ thống ñã vận hành như mong ñợi.
- Kiểm thử khiếm khuyết: phát hiện lỗi hoặc những khiếm khuyết của phần
mềm ñể thấy ñược ứng xử của nó có chính xác hoặc phù hợp với tài liệu ñặc
tả của nó hay không.
Môn học Công nghệ phần mềm







Trang 76

Về mặt lý thuyết, chúng ta phải kiểm thử hệ thống một cách cặn kẽ thì mới khẳng
ñịnh ñược chương trình không còn khiếm khuyết. Tuy nhiên, trong thực tế không thể
kiểm thử một cách cặn kẽ ñược.
Các chính sách kiểm thử ñịnh nghĩa một phương pháp thường ñược sử dụng ñể
lựa chọn cách kiểm thử hệ thống:
- Tất cả những chức năng ñược truy nhập qua menu cần phải kiểm thử
- Các chức năng kết hợp ñược truy nhập thông qua cùng một menu cũng phải
ñược kiểm thử.
- Những nơi người sử dụng phải nhập thông tin ñầu vào thì tất cả các chức năng
phải ñược kiểm thử với những ñầu vào chính xác hoặc không chính xác.
9.2 Kiêm thú hê thông
Mục tiêu:
- Nắm ñược quy trình kiểm thử hệ thống
- Thế nào là kiểm thử tích hợp? Các phương pháp thực hiện.
- Thế nào là kiểm thử ñộc lập? Các phương pháp thực hiện.
Kiểm thử hệ thống bao gồm tích hợp các thành phần tạo ra hệ thống hoặc hệ
thống con; sau ñó, kiểm thử hệ thống ñã ñược tích hợp. Kiểm thử hệ thống gồm 2 pha:
- Kiểm thử tích hợp: ñội kiểm thử truy nhập vào mã lệnh của hệ thống. Hệ
thống cần kiểm thử ñược coi như các thành phần tích hợp với nhau.
- Kiểm thử ñộc lập: ñội kiểm thử sẽ kiểm thử hệ thống ñầy ñủ ñể chuyển giao,
coi hệ thống như một hộp ñen.
9.2.1 Kiểm thử tích hợp
Kiểm thử tích hợp bao gồm việc xây dựng hệ thống từ những thành phần của nó
và kiểm tra xem có vấn ñề gì xảy ra từ các tương tác giữa các thành phần. Có hai cách
tích hợp hệ thống:
- Tích hợp từ trên xuống: xây dựng khung của hệ thống và ñưa các thành phần
vào trong nó.
- Tích hợp từ dưới lên: tích hợp các thành phần cơ sở, sau ñó bổ sung thêm các
thành phần chức năng.
ðể ñơn giản hoa việc xác ñịnh lỗi, hệ thống nên ñược tích hợp tăng vòng.
Môn học Công nghệ phần mềm







Trang 77

Các phương pháp kiểm thử tích hợp:
- ðánh giá kiến trúc: kiểm thử tích hợp từ trên xuống thích hợp ñể phát hiện ra
các lỗi trong kiến trúc hệ thống.
- Minh hoạ hệ thống: kiểm thử tích hợp từ trên xuống cho phép biểu hiện hệ
thống một cách giới hạn ở những pha ban ñầu của quá trình xây dựng hệ
thống.
- Kiểm thử cài ñặt: dễ dàng hơn với kiểm thử tích hợp từ dưới lên.
- Kiểm thử quan sát: các vấn ñề của tất cả các phương pháp. Có thể bổ sung
thêm các mã lệnh ñể quan sát các mẫu thử.
9.2.2 Kiểm thử ñộc lập
Giới thiệu:
Mục ñích chính của kiểm thử ñộc lập nhằm tăng ñộ tin cậy của nhà cung cấp, ñảm
bảo hệ thống thoả mãn các yêu cầu của nó.
Kiểm thử ñộc lập có thể là kiểm thử hộp ñen hoặc kiểm thử chức năng; tức là chỉ
dựa trên tài liệu ñặc tả hệ thống, người kiểm thử không có những hiểu biết về việc cài ñặt
hệ thống.
Ví dụ: Kiểm thử hộp ñen

Môn học Công nghệ phần mềm







Trang 78

Chúng ta có thể ñưa ra các hướng dẫn kiểm thử cho ñội kiểm thử. Hướng dẫn
kiểm thử là những gợi ý cho ñội kiểm thử giúp họ lựa chọn mẫu thử nhằm phát hiện ra
khiếm khuyết của hệ thống.
- Lựa chọn các ñầu vào sao cho hệ thống có thể ñưa ra tất cả các thông báo lỗi.
- Thiết kế ñầu vào sao cho vùng nhớ ñệm bị tràn.
- Lặp lại nhiều lần cùng một ñầu vào hoặc một chuỗi các ñầu vào.
- Ép hệ thống tạo ra những kết quả không hợp lệ.
- Buộc cho các kết quả tính phải quá lớn hoặc quá nhỏ.
Ngoài ra, chúng ta có thể sử dụng ca sử dụng hoặc biểu ñồ tuần tự ñể hỗ trợ cho
quá trình kiểm thử. Ca sử dụng có thể là phần cơ bản ñể ñưa ra những mẫu thử hệ thống.
Nó giúp xác ñịnh các thao tác ñể kiểm thử và giúp thiết kế các ca sử dụng ñược yêu cầu.
Kèm theo biểu ñồ tuần tự tương ứng, chúng ta sẽ sử dụng các ñầu ra và ñầu vào của nó ñể
tạo ra các mẫu thử.
Kiểm thử ñộc lập có thể bao gồm kiểm thử các thuộc tính rõ nét của hệ thống như
hiệu năng và ñộ tin cậy.
Kiểm thử hiệu năng bao gồm việc lập kế hoạch cho một tập hợp các mẫu thử và
tải trọng của nó có thể tăng lên nhanh chóng cho ñến khi hiệu năng của hệ thống là không
thể chấp nhận ñược.
Kiểm thử áp lực thử nghiệm hệ thống trên tải trọng thiết kế tối ña của nó. Áp lực
hệ thống thường gây ra những khiếm khuyết của hệ thống.
Kiểm thử áp lực hệ thống xác ñịnh những ứng xử lỗi, giúp kiểm tra những lỗi
không thể chấp nhận ñược của các dịch vụ hoặc dữ liệu. Kiểm thử áp lực thích hợp với
những hệ thống phân tán.
9.2.3 Kiểm thử thành phần
Giới thiệu:
Môn học Công nghệ phần mềm







Trang 79
Kiểm thử thành phần (hay còn gọi là kiểm thử ñơn vị) là quy trình kiểm thử các
thành phần riêng lẻ trong hệ thống. ðây là một quy trình phát hiện ra các khiếm khuyết.
Thành phần ñược kiểm thử có thể là:
- Chức năng hoặc phương thức của ñối tượng.
- Lớp ñối tượng với những thuộc tính và phương thức.
- Thành phần kết hợp với các giao diện ñược ñịnh nghĩa trước ñể truy nhập tới
các chức năng của nó.
Mục tiêu:
- Nắm ñược các vấn ñề liên quan ñến kiểm thử thành phần
- Hai phương pháp kiểm thử thành phần là: kiểm thử lớp ñối tượng và kiểm thử
giao diện.
- Ghi nhớ các gợi ý khi kiểm thử thành phần
9.2.3.1 Kiểm thử lớp ñối tượng
Kiểm thử lớp ñối tượng nhằm kiểm tra mức ñộ hoàn thiện của lớp, bao gồm:
- Kiểm thử tất cả các thao tác ñược gắn với ñối tượng.
- Thiết lập và kiểm tra tất cả các thuộc tính của ñối tượng.
- Thực nghiệm tất cả các trạng thái có thể của ñối tượng
Kỹ thuật thừa kế gây khó khăn cho việc thiết kế kiểm thử lớp ñối tượng vì thông
tin ñược kiểm thử không ñược hạn chế.
Trong quá trình kiểm thử lớp ñối tượng, chúng ta cần phải xác ñịnh các trường
hợp kiểm thử ñối với tất cả các phương thức của ñối tượng. ðồng thời, sử dụng mô hình
trạng thái ñể xác ñịnh chuỗi dịch chuyển trạng thái và chuỗi các sự kiện gây ra sự dịch
chuyển ñó.
9.2.3.2 Kiểm thử giao diện
ðặt vấn ñề:
Mục ñích của kiểm thử giao diện là ñể phát hiện các lỗi của giao diện hoặc những
giả thiết không hợp lý về giao diện. Kiểm thử giao diện ñặc biệt quan trọng trong phát
triển hướng ñối tượng khi các ñối tượng ñược ñịnh nghĩa bởi các giao diện của nó.

Môn học Công nghệ phần mềm







Trang 80

Giao diện gồm các loại sau:
- Giao diện tham số: dữ liệu ñược truyền từ thủ tục này tới thủ tục khác.
- Giao diện bộ nhớ dùng chung: các thủ tục hoặc hàm sử dụng chung khối bộ
nhớ.
- Giao diện thủ tục: hệ thống con chứa một tập các thủ tục ñể các hệ thống con
khác gọi tới.
- Giao diện truyền thông ñiệp: các hệ thống con yêu cầu các dịch vụ từ những
hệ thống con khác.
Các loại lỗi thường xảy ra ñối với giao diện bao gồm:
- Lạm dụng giao diện: một thành phần gọi tới các thành phần khác và gây ra lỗi
trong khi sử dụng giao diện của nó.
- Không hiểu rõ giao diện: thành phần ñược gắn với các giả thiết về ứng xử của
nó với thành phần ñược gọi, nhưng thành phần này lại sai.
- Lỗi về thời gian: các thành phần gọi và thành phần ñược gọi thao tác với tốc
ñộ khác nhau và những dữ liệu cũ lại ñược truy nhập.
Hướng dẫn kiểm thử thành phần:
- Thiết kế các mẫu thử với những tham số gửi tới thủ tục ñược gọi có giá trị cận
biên.
- Luôn luôn kiểm thử các tham số con trỏ với con trỏ null.
- Thiết kế những mẫu thử sao cho có thể gây ra lỗi trên thành phần.
- Thiết kế kiểm thử áp lực trên các hệ thống truyền thông ñiệp
- Trong những hệ thống có bộ nhớ làm chung, nên biến ñổi thứ tự mà trong ñó
các thành phần tương tác với nhau.
9.2.4 Thiết kế các trường hợp kiểm thử
Mục tiêu:
- Tại sao phải thiết kế các trường hợp kiểm thử?
- Có khả năng hiểu và áp dụng các phương pháp thiết kế trường hợp kiểm thử.
Môn học Công nghệ phần mềm







Trang 81
Thiết kế các trường hợp kiểm thử (ñầu vào và ñầu ra) ñược sử dụng ñể kiểm thử
hệ thống. Mục ñích của thiết kế trường hợp kiểm thử là tạo ra một tập hợp các mẫu kiểm
thử có khả năng ñánh giá hiệu quả và phát hiện khiếm khuyết.
Các phương pháp thiết kế các trường hợp kiểm thử:
- Kiểm thử dựa trên các yêu cầu: Một nguyên tắc của kỹ thuật xác ñịnh yêu cầu
là những yêu cầu của hệ thống phải có khả năng kiểm thử. Kiểm thử dựa trên
yêu cầu là kỹ thuật kiểm thử hợp lệ, trong ñó ta phải xem xét từng yêu cầu và
ñưa ra một tập các mẫu thử cho những yêu cầu ñó.
- Kiểm thử phân hoạch: Dữ liệu ñầu vào và kết quả ñầu ra thường rơi vào các
lớp khác nhau, trong ñó tất cả các thành viên của lớp ñều có quan hệ với nhau.
Mỗi lớp này thường là một phân hoạch hoặc một miền ứng dụng mà chương
trình chạy theo một cách thích ứng với từng thành viên của lớp. Các trường
hợp kiểm thử ñược lựa chọn từ những phân hoạch này.
- Kiểm thử hướng cấu trúc (hoặc kiểm thử hộp trắng): Kiểm thử hướng cấu trúc
ñưa ra các trường hợp kiểm thử dựa theo cấu trúc chương trình. Những hiểu
biết về chương trình ñược sử dụng ñể xác ñịnh các trường hợp kiểm thử bổ
sung.
- Kiểm thử ñường ñi: mục tiêu của kiểm thử ñường ñi nhằm ñảm bảo rằng tập
hợp các mẫu thử trên từng ñường ñi qua hệ thống sẽ ñược thực hiện ít nhất
một lần. ðiểm bắt ñầu của kiểm thử ñường ñi là biểu ñồ luồng chương trình,
gồm các nút biểu diễn các nhánh của chương trình và các cung biểu diễn
luồng ñiều khiển.
9.2.5 Tự ñộng kiểm thử
Giới thiệu:
Kiểm thử là một pha có chi phí khá cao. Chúng ta có khá nhiều các công cụ hỗ trợ
kiểm thử giúp giảm thời gian và chi phí. Phần này sẽ giới thiệu một số loại công cụ hỗ trợ
tự ñộng kiểm thử.
- Quản lý kiểm thử: giúp quản lý các chương trình kiểm thử như lưu vết dữ liệu
kiểm thử, các kết quả mong muốn …
- Bộ tạo dữ liệu kiểm thử
- Oracle: tạo ra các dự ñoán về kết quả kiểm thử
- Bộ so sánh file: so sánh kết quả của các chương trình kiểm thử
- Bộ tạo báo cáo
- Bộ phân tích ñộng: bổ sung mã lệnh cho chương trình ñể ñếm số lần thực hiện
của mỗi câu lệnh.
- Bộ giả ñịnh
9.3 Bài tâp
Câu 1:
Giải thích tại sao kiểm thử chỉ phát hiện ra các biểu hiện của lỗi, chứ không phải
nguồn gốc của lỗi.
Câu 2:
Môn học Công nghệ phần mềm







Trang 82
So sánh hai phương pháp kiểm thử top-down và bottom-up.
Câu 3:
Kiểm thử ñường là gì? Hãy ñưa ra hai lý do ñể thấy rằng kiểm thử ñường gần như
không bao giờ ñạt ñược.
Câu 4:
ðưa ra một số ví dụ cho thấy kiểm thử tất cả các ñường ñộc lập không thể phát
hiện ra lỗi.
Môn học Công nghệ phần mềm







Trang 83
Chương 10 Quản lý dự án
Giới thiệu:
ðể ñảm bảo một dự án xây dựng hệ thống phần mềm thành công, chúng ta cần
phải thực hiện một hoạt ñộng không thể thiếu ñược; ñó là quản lý dự án. Trong chương
này, chúng ta sẽ tìm hiểu thế nào là quản lý dự án và các hoạt ñộng diễn ra trong quá
trình quán lý dự án.
Mục tiêu:
- Hiểu thế nào là quản lý dự án phần mềm, sự khác biệt so với việc quản lý các
loại dự án khác.
- Nhiệm vụ của người quản lý dự án phần mềm là gì?
- Phải biết cách lập kế hoạch và xây dựng lịch biểu cho dự án
- Phải biết ñược những loại rủi ro nào có thể xảy ra trong quá trình thực hiện dự
án và cách khắc phục chúng.
10.1 Ðjnh nghĩa vê quán lý du án
ðặt vấn ñề:
- ðể xây dựng ñược một hệ thống phần mềm thành công, cần thiết phải quản lý
dự án
- Dựa trên hiểu biết của mình, hãy cho biết quản lý dự án là gì?
- Quản lý dự án phần mềm có giống quản lý các dự án khác không?
Quản lý dự án phần mềm là một phần quan trọng của công nghệ phần mềm. Nếu
quản lý tốt thì chưa chắc dự án ñã thành công, nhưng nếu quản lý tồi thì chắc chắn dự án
sẽ thất bại. Dự án thất bại khi phần mềm chuyển giao chậm hơn so với kế hoạch, chi phí
lớn hơn dự tính, và không thoả mãn các yêu cầu ñề ra.
Quản lý dự án phần mềm có liên quan tới những hoạt ñộng nhằm ñảm bảo chuyển
giao phần mềm ñúng thời hạn, ñúng kế hoạch và phù hợp với các yêu cầu của tổ chức
phát triển phần mềm.
Quản lý dự án phần mềm có một số ñặc trưng khác biệt so với các loại dự án
khác:
- Sản phẩm là vô hình. Sản phẩm có khả năng thay ñổi linh ñộng.
- Công nghệ phần mềm không ñược thừa nhận như một quy tắc công nghệ có
trạng thái chuẩn mực như các ngành công nghệ khác.
- Quy trình phát triển phần mềm không ñược chuẩn hoá.
- Nhiều dự án phần mềm là những dự án chỉ làm một lần.
Quản lý dự án là một yêu cầu cần thiết vì phát triển phần mềm luôn phải thoả mãn
các ràng buộc về kế hoạch và chi phí ñã ñược xác ñịnh bởi tổ chức phát triển phần mềm.
Người quản lý dự án phải chịu trách nhiệm lập kế hoạch và theo dõi quá trình thực hiện
dự án.
10.2 Các hoat dông quán lý
ðặt vấn ñề:
- Những công việc phải làm trong Quản lý dự án là gì?
Môn học Công nghệ phần mềm







Trang 84
- Hãy thảo luận về những công việc ñó. Cho biết công việc nào là quan trọng
nhất.
Các hoạt ñộng quản lý dự án bao gồm:
- Viết kế hoạch dự kiến: ðây là một công việc khá phức tạp. Nó mô tả Mục
tiêu: của dự án, phương pháp thực hiện, ước lượng thời gian và chi phí …
- Lập kế hoạch dự án: liên quan ñến việc xác ñịnh các hành ñộng, các mốc thời
gian và các sản phẩm ñược tạo ra.
- Tính chi phí dự án
- ðiều hành và xem xét lại dự án: người quản lý phải giám sát quy trình thực
hiện dự án, so sánh quy trình và chi phí thực tế với kế hoạch ñã ñịnh. Nếu ñiều
hành tốt, người quản lý dự án có thể phát hiện và khắc phục ñược những rủi ro
tiềm tàng.
- Lựa chọn và ñánh giá cá nhân. Việc lựa chọn nhân viên thích hợp cho một dự
án là rất khó khăn. Khi lựa chọn ñội dự án, người quản lý dự án có thể gặp
phải một số vấn ñề sau: ngân sách của dự án không ñủ ñể trả cho những nhân
viên có mức lương cao, không có ñược những nhân viên có kinh nghiệm và
trình ñộ thích hợp, tổ chức muốn chỉ ñịnh một số nhân viên mới tham gia vào
dự án ...
- Viết báo cáo và trình bày.
Tuy nhiên, ngày nay chúng ta có rất nhiều kỹ thuật và công cụ ñược sử dụng ñể
hỗ trợ cho việc quản lý dự án phần mềm.
10.3 Lâp kê hoach du án
Mục tiêu:
- Hiểu rõ tầm quan trọng của việc lập kế hoạch dự án
- Phải biết rằng ứng với mỗi hoạt ñộng trong quá trình phát triển phần mềm,
chúng ta sẽ phải có một bản kế hoạch riêng.
- Nắm ñược cấu trúc của một bản kế hoạch dự án phát triển hệ thống phần
mềm.
Lập kế hoạch dự án có thể là hoạt ñộng tốn nhiều thời gian nhất trong quá trình
quản lý dự án. Nó liệt kê các hành ñộng từ pha khởi tạo cho ñến khi ñưa ra ñược hệ
thống. Kế hoạch phải ñược theo dõi thường xuyên, nhất là khi có những thông tin hoặc
những yêu cầu mới xuất hiện.
Trong quá trình thực hiện dự án, chúng ta có nhiều loại kế hoạch ñược xây dựng
ñể hỗ trợ cho kế hoạch chính của dự án phần mềm như: kế hoạch chất lượng, kế hoạch
thẩm tra, kế hoạch quản lý cấu hình, kế hoạch bảo trì, kế hoạch phát triển nhân sự …
Cấu trúc của bản kế hoạch dự án gồm:
- Phần giới thiệu: mô tả các mục tiêu của dự án và các ràng buộc gây ảnh hưởng
tới việc quản lý dự án.
- Tổ chức dự án: mô tả cách tổ chức của ñội dự án, bao gồm những ai và những
nhiệm vụ gì.
- Phân tích rủi ro: mô tả những rủi ro có thể xảy ra, dự báo khi nào chúng xảy ra
và ñề xuất chiến lược giảm rủi ro.
Môn học Công nghệ phần mềm







Trang 85
- Các yêu cầu về tài nguyên phần cứng và phần mềm: xác ñịnh những phần
cứng và phần mềm nào cần thiết cho quá trình thực hiện dự án.
- Bảng thống kế công việc: xác ñịnh các công việc, từng mốc thời gian và kết
quả của từng công việc.
- Lịch biểu của dự án: lịch biểu cho thấy sự phụ thuộc giữa các hành ñộng, thời
gian ước tính ñể ñạt tới mốc và phân công công việc cho từng người. Mốc là
ñiểm cuối của một hành ñộng trong quy trình. Ví dụ, trong mô hình thác nước
cho phép ta ñịnh nghĩa các mốc của tiến trình một cách rõ ràng.
- Các kỹ thuật ñiều hành và báo cáo

10.4 Ljch biêu cúa du án
Mục tiêu:
- Phải hiểu rõ lập lịch biểu dự án là làm gì?
- Nắm ñược một số quy tắc và các gợi ý khi lập lịch biểu
- Có khả năng áp dụng biểu ñồ cột, sơ ñồ mạng ñể xây dựng lịch biểu
- Có thể sử dụng một số công cụ hỗ trợ lập lịch biểu như: M.Excel, M.Project

Lập lịch biểu dự án là một trong những công việc khó khăn nhất ñối với người
quản lý dự án. Người quản lý phải chia dự án thành nhiều nhiệm vụ, ước lượng thời gian
và tài nguyên cần thiết ñể hoàn thành từng nhiệm vụ.
Khi lập lịch biểu, người quản lý nên tổ chức các công việc song song ñể sử dụng
tối ưu lực lượng lao ñộng và tối thiểu hoá sự phụ thuộc lẫn nhau giữa các nhiệm vụ ñể
tránh sự chậm trễ khi một nhiệm vụ phải ñợi nhiệm vụ khác hoàn thành.
Môn học Công nghệ phần mềm







Trang 86

Chất lượng của lịch biểu phụ thuộc vào hiểu biết và kinh nghiệm của người quản
lý. Tuy nhiên, khi lập lịch biểu chúng ta phải chú ý tới các vấn ñề sau:
- Việc ước lượng mức ñộ khó của một vấn ñề nào ñó và xác ñịnh chi phí ñể giải
quyết nó là rất khó khăn.
- Khả năng sản xuất không tương ứng với số lượng người làm việc trong một
nhiệm vụ.
- Bổ sung thêm người vào dự án sẽ làm cho nó chậm hơn vì giao tiếp trong dự
án trở lên quá tải.
- Những sự việc xảy ra ngoài mong ñợi.
Chúng ta sử dụng các ký pháp ñồ hoạ ñể minh hoạ cho lịch biểu của dự án. Sử
dụng biểu ñồ giúp ta thấy rõ cách chia dự án thành nhiều nhiệm vụ. Các nhiệm vụ không
nên quá nhỏ, chúng nên ñược thực hiện trong vòng một hoặc hai tuần.
Ví dụ
Giả sử có một loạt các hoạt ñộng Ti, thời gian thực hiện từng hoạt ñộng và sự phụ
thuộc lẫn nhau giữa các hoạt ñộng ñược liệt kê như bảng dưới ñây. Hãy thực hiện các yêu
cầu sau:
1.Xây dựng mạng các hoạt ñộng
2. Xây dựng biểu ñồ nhằm biểu diễn các hoạt ñộng theo dòng thời gian
3. Biểu ñồ phân công công việc

Kết quả thực hiện ví dụ
Môn học Công nghệ phần mềm







Trang 87

Mạng hoạt ñộng

Theo thời gian
Môn học Công nghệ phần mềm







Trang 88

Theo công việc
10.5 Quán lý rúi ro
Mục tiêu:
- Phải hiểu ñược rủi ro luôn luôn có thể xảy ra trong dự án và không thể lường
trước ñược
- Nắm ñược một số loại rủi ro thường gặp
- Biết ñược các hoạt ñộng cần thực hiện trong quản lý rủi ro.
Quản lý rủi ro liên quan tới việc xác ñịnh rủi ro và lập ra các kế hoạch ñể tối thiểu
hoá ảnh hưởng của chúng tới dự án.
Sau ñây là một số loại rủi ro thường gặp trong quá trình phát triển hệ thống phần
mềm:
- Rủi ro của dự án có ảnh hưởng tới lịch biểu và tài nguyên của dự án
- Rủi ro của sản phẩm ảnh hưởng tới chất lượng hoặc hiệu năng của phần mềm
sẽ ñược xây dựng.
- Rủi ro thương mại sẽ ảnh hưởng tới tổ chức xây dựng phần mềm.
ðể quản lý rủi ro, chúng ta cần phải thực hiện các hoạt ñộng sau:
- Phát hiện rủi ro: Phát hiện các loại rủi ro có liên quan ñến: công nghệ, con
người, tổ chức, các yêu cầu, ước lượng.
- Phân tích rủi ro: ðánh giá các khả năng xảy ra rủi ro và tính nghiêm trọng của
nó nếu nó xảy ra.
- Lập kế hoạch rủi ro: Xem xét từng rủi ro và phát triển chiến lược ñể quản lý
nó. Bao gồm các chiến lược như: phòng tránh giảm khả năng xảy ra rủi ro, tối
thiểu hoá giảm ảnh hưởng của rủi ro, kế hoạch bất ngờ kế hoạch này ñể dành
cho khi rủi ro xảy ra.
- Kiểm soát rủi ro: ðánh giá từng rủi ro ñã ñược xác ñịnh một cách thường
xuyên ñể xác ñịnh khả năng nó có thể xảy ra hay không và cũng ñồng thời
Môn học Công nghệ phần mềm







Trang 89
ñánh giá mức ñộ ảnh hưởng của nó. Những rủi ro chính nên ñược thảo luận tại
các cuộc họp quản lý tiến trình.

10.6 Bài tâp
Câu 1:
Tại sao một lập trình viên tốt chưa chắc ñã là một người quản lý tốt?
Câu 2:
Giải thích mục ñích của từng công việc trong quá trình lập kế hoạch dự án.
Câu 3:
Phân biệt mốc thời gian và kết quả
Câu 4:
ðội dự án gồm 4 người (A, B, C và D) có nhiệm vụ hoàn thành phần mềm chơi
cờ ca-rô trong 10 tuần. Giả sử mỗi người phải làm nhiều hơn 10 tiếng/tuần. Sản phẩm có
hai lần chuyển giao. (Lần thứ nhất là sau 4 tuần).
1. Hãy liệt kê những vấn ñề của bản kế hoạch dưới ñây.
2. Tạo ra một bản kế hoạch mới cho dự án trên
Hình vẽ của câu 4:

Kế hoạch ban ñầu
Môn học Công nghệ phần mềm







Trang 90

Kế hoạch pha 1

Kế hoạch pha 2
Câu 5:
ðội dự án có 4 người, phải hoàn thành sản phẩm trong 20 tuần. Dự án ñược
chuyển giao, tăng vòng 2 lần (lần thứ nhất sau 8 tuần). Giả sử, hệ thống có 3 thành phần
chính X, Y, Z; trong ñó X là thành phần quan trọng nhất. Các yêu cầu hệ thống vẫn còn
chỗ chưa rõ ràng.
Hãy lập bảng kế hoạch chi tiết cho dự án trên.
Câu 6:
Cho tập hợp các nhiệm vụ, ràng buộc và thời gian thực hiện như hình vẽ sau. Hãy
vẽ mô hình mạng của các nhiệm vụ ñó.
Hình vẽ của câu 6:
Môn học Công nghệ phần mềm







Trang 91

Các nhiệm vụ

ðáp án

Biểu ñồ mạng

Môn học Công nghệ phần mềm







Trang 92
Chương 11 Chuẩn và các quy trình hoạt ñộng trong
công nghiệp phần mềm
Giới thiệu:
Trong ngành công nghiệp phần mềm, cũng giống như các ngành công nghiệp
khác, việc hệ thống hoá các công việc của từng loại vai trò là ñiều cần thiết. Việc xây
dựng các quy trình giúp hoạt ñộng của một tổ chức, ñơn vị sản xuất phần mềm thực hiện
hiệu quả hơn, giảm thiểu các rủi ro và tăng hiệu suất cao hơn. Ngoài ra, hệ thống chuẩn
hoạch ñịnh yêu cầu cho các quy trình trong việc áp dụng trong thực tế.
Trong chương này, chúng ta sẽ tìm hiểu về một số loại quy trình hoạt ñộng trong
công nghiệp phần mềm. ðể từ ñó, chúng ta có những hiểu biết cơ bản về vai trò của mỗi
quy trình, ñây là yêu cầu căn bản ñối với một kỹ sư phần mềm.
Mục tiêu:
- Cung cấp kiến thức về các quy trình làm việc trong dự án sản xuất phần mềm
trong thực tế.
- Cung cấp kiến thức về hệ thống chuẩn trong công nghiệp phần mềm.
- Giúp sinh viên hiểu rõ vai trò của từng loại thành viên và các công việc tương
ứng của từng loại trong dự án phần mềm ñể sinh viên nhận biết và phát huy
triệt ñể vai trò trong môi trường làm việc chuyên nghiệp sau khi tốt nghiệp.
11.1 Các quy trình hoat dông
11.1.1 Khái niệm Quy trình
Quy trình xác ñịnh các công ñoạn và tác vụ cho từng loại vai trò (người thực hiện)
làm việc trong các giai ñoạn trong dự án nhằm thực hiện mục tiêu.
Môn học Công nghệ phần mềm







Trang 93

11.1.2 Các quy trình công nghệ liên quan

Môn học Công nghệ phần mềm







Trang 94
11.1.3 Tóm lược một số quy trình

11.1.3.1 Quy trình Phân tích Thiết kế (Analysis and Design)
Mục tiêu:
- Biến ñổi yêu cầu từ dạng mô tả sang dạng thiết kế của hệ thống cần xây dựng.
- ðịnh nghĩa kiến trúc của hệ thống.
- Hiệu chỉnh thiết kế trùng khớp với môi trường phát triển dự án.
11.1.3.2 Quy trình Quản lý Cấu hình phần mềm (Software Configuration Management)
Mục tiêu:
- ðề xuất các tác vụ liên quan ñến quản lý cấu hình liên quan ñến dự án phần
mềm.
11.1.3.3 Quy trình Triển khai Ứng dụng (Deployment)
Mục tiêu:
- ðảm bảo các sản phẩm phần mềm là khả dụng ñối với khách hàng.
11.1.3.4 Quy trình Môi trường thực hiện (Environment)
Mục tiêu:
Requirement
workflow
Analysis & Design
workflow
Project
Management
workflow
SCM
workflow
Implementation
workflow
Test
workflow
Deployment
workflow
Environment
workflow
Requirement
workflow
Analysis & Design
workflow
Project
Management
workflow
SCM
workflow
Implementation
workflow
Test
workflow
Deployment
workflow
Environment
workflow

Môn học Công nghệ phần mềm







Trang 95
- Cung cấp các quy trình ñể thiết lập môi trường phát triển phần mềm (bao gồm
các quy trình và môi trường công nghệ như công cụ/tài nguyên cần thiết) ñảm
bảo dự án có thể hoạt ñộng ñược theo chu trình phát triển phần mềm.
11.1.3.5 Quy trình Hiện thực Xây dựng chương trình (Implementation)
Mục tiêu:
- ðịnh nghĩa cấu trúc chương trình
- Hiện thực, xem xét các lớp và các ñối tượng hiện thực của các thành phần
(source files, binaries, executables, …)
- Kiểm tra ở mức ñộ ñơn vị các thành phần xây dựng ñược
- Tương tác với các kết quả tạo bởi các hiện thực riêng lẻ (hay nhóm) khác
trong một hệ thống khả thực thi.
11.1.3.6 Quy trình Quản lý Dự án (Project Management)
Mục tiêu:
- Cung cấp các tác vụ quản lý dự án
- Lập kế hoạch dự án
- Tạo và cập nhật kế hoạch dự án
- Theo dõi tiến trình dự án
- ðiều khiển dự án
- -Xác ñịnh những tác ñộng cần thiết tương xứng
- Xác ñịnh Lượng mục tiêu chất lượng
- Xác ñịnh Các quá trình của phần mềm ñể ñạt ñược các mục tiêu:
- Xác ñịnh ðịnh lượng dự án phần mềm
11.1.3.7 Quy trình Xác ñịnh Yêu cầu (Requirements)
Mục tiêu:
- Thiết lập và xác nhận các thoã thuận với khách hàng và các nguồn thông tin
liên quan ñến hệ thống cần làm.
- Giúp thành viên dự án hiểu rõ hơn về các yêu cầu.
- Xác ñịnh phạm vi của dự án.
- Xác ñịnh cơ sở cho các kế hoạch của dự án.
- Xác ñịnh cơ sở cho việc lập dự toán cho dự án (chi phí, thời gian, nhân lực).
- ðịnh nghĩa các giao diện người sử dụng cho hệ thống.
- Quan tâm ñến sự cần thiết và mục tiêu của người sử dụng.
11.1.3.8 Quy trình Kiểm tra chất lượng (Test)
Mục tiêu:
- Kiểm tra sự tương tác giữa các ñối tượng.
- Kiểm tra sự tương tác thích ứng giữa tất cả thành phần của phần mềm.
- Kiểm tra tất cả yêu cầu của khách hàng ñược hiện thực tương xứng.
- Kiểm tra sản phẩm cung cấp với sự ñáp ứng về việc sử dụng như mong ñợi
khi ñặt vào môi trường như yêu cầu.
Môn học Công nghệ phần mềm







Trang 96
- Kiểm tra và ñảm bảo các lỗi ñược xác ñịnh trước khi triển khai cho khách
hàng
11.2 Các vai trò trong hoat dông sán xuât phân mêm
11.2.1 Khái niệm vai trò
Vai trò thực hiện trong hoạt ñộng của một dự án sản xuất phần mềm ñại diện cho
một nhóm người thực hiện công việc chuyên biệt khác nhau.
11.2.2 Các vai trò
- Phân tích yêu cầu nghiệp vụ (Business Analyst)
- Kiến trúc sư phần mềm (Technical Architect)
- Thiết kế phần mềm (Designer)
- Xây dựng phần mềm (Developer)
- Quản lý cấu hình phần mềm (Configuration Management Manager)
- Kiểm tra chất lượng sản phẩm (Quality Assurance)
- Quản lý nhóm kiểm tra chất lượng sản phẩm (Quality Assurance Manager/
Leader)
- Quản lý dự án (Project Manager/Project Leader)
- Quản lý nhóm dự án (Program Manager)
- Bộ phận hỗ trợ (Thiết kế ðồ hoạ, Ước lượng, Nhân sự)
11.3 Hê thông chuân trong công nghiêp phân mêm
Hiện nay, một số hệ thống chuẩn ñược ñặt ra trong ngành công nghiệp phần mềm
nhằm giúp các nhà sản xuất phần mềm triển khai áp dụng các quy trình một cách hiệu
quả hơn với các ñiều kiện ràng buộc nhằm ñảm bảo chất lượng của phần mềm ñược sản
xuất ra cũng như tính hiệu quả của việc áp dụng các quy trình.
Hệ thống chuẩn bao gồm: CMM (Capability Maturity Model), CMMI (Capability
Maturity Model Integration)… ñược thể hiện theo 5 mức từ thấp ñến cao cho từng loại
quy trình.
Môn học Công nghệ phần mềm







Trang 97
Level 5
Initial
Level 1
Processes are unpredictable, poorly controlled, reactive.
Managed
Level 2
Processes are planned, documented, performed,
monitored, and controlled at the project level. Often
reactive.
Defined
Level 3
Processes are well characterized and
understood. Processes, standards,
procedures, tools, etc. are defined at the
organizational (Organization X ) level.
Proactive.
Quantitatively
Managed
Level 4
Processes are controlled using
statistical and other quantitative
techniques.
Optimizing
P
r
o
c
e
s
s

M
a
t
u
r
i
t
y
Process performance
continually improved through
incremental and innovative
technological improvements.
Level 5
Initial
Level 1
Processes are unpredictable, poorly controlled, reactive.
Managed
Level 2
Processes are planned, documented, performed,
monitored, and controlled at the project level. Often
reactive.
Defined
Level 3
Processes are well characterized and
understood. Processes, standards,
procedures, tools, etc. are defined at the
organizational (Organization X ) level.
Proactive.
Quantitatively
Managed
Level 4
Processes are controlled using
statistical and other quantitative
techniques.
Optimizing
P
r
o
c
e
s
s

M
a
t
u
r
i
t
y
Process performance
continually improved through
incremental and innovative
technological improvements.


Các tương quan trong mô hình CMM/CMMI:
Maturity Levels (1- 5)
Generic
Practices
Generic
Goals
Process Area 2
Common Features
Process Area 1 Process Area n
Verifying
Implementation
Specific
Goals
Specific
Practices
Ability
to Perform
Directing
Implementation
Required Required
Sub practices, typical work products,
discipline amplifications, generic
practice elaborations, goal and
practice titles, goal and practice notes,
and references
Commitment
to Perform
Sub practices, typical work products,
discipline amplifications, generic
practice elaborations, goal and
practice titles, goal and practice notes,
and references
I
n
f
o
r
m
a
t
i
v
e
I
n
f
o
r
m
a
t
i
v
e
Required. Specific for
each process area.
Required. Common
across all process areas.
Maturity Levels (1- 5)
Generic
Practices
Generic
Goals
Process Area 2
Common Features
Process Area 1 Process Area n
Verifying
Implementation
Specific
Goals
Specific
Practices
Ability
to Perform
Directing
Implementation
Required Required
Sub practices, typical work products,
discipline amplifications, generic
practice elaborations, goal and
practice titles, goal and practice notes,
and references
Commitment
to Perform
Sub practices, typical work products,
discipline amplifications, generic
practice elaborations, goal and
practice titles, goal and practice notes,
and references
I
n
f
o
r
m
a
t
i
v
e
I
n
f
o
r
m
a
t
i
v
e
Required. Specific for
each process area.
Required. Specific for
each process area.
Required. Common
across all process areas.


Ngoài ra, các chuẩn này không phụ thuộc vào lĩnh vực sử dụng và kích thước/quy
mô của doanh nghiệp sử dụng.

Môn học Công nghệ phần mềm







Trang 98



Môn h c Công ngh ph n m m

M cl c
Chương 1 T ng quan v công ngh ph n m m ................................................... 6 1.1 Gi i thi u v m t s khái ni m cơ b n ................................................... 6 1.1.1 Ph n m m là gì?.................................................................................. 6 1.1.2 Công ngh ph n m m là gì?................................................................ 7 1.1.3 S khác bi t gi a công ngh ph n m m và khoa h c máy tính? ........ 7 1.1.4 S khác bi t gi a công ngh ph n m m và công ngh h th ng? ...... 7 1.1.5 Quy trình ph n m m là gì?.................................................................. 8 1.1.6 Mô hình quy trình phát tri n ph n m m là gì?.................................... 8 1.1.7 Các chi phí trong công ngh ph n m m.............................................. 9 1.1.8 Các phương pháp công ngh ph n m m là gì? ................................. 10 1.1.9 CASE (Computer-Aided Software Engineering).............................. 10 1.2 Th nào là m t ph n m m t t?.............................................................. 11 1.2.1 Thách th c ñ i v i công ngh ph n m m? ....................................... 11 1.3 V n ñ v tính chuyên nghi p và ñúng quy t c .................................... 11 1.4 Bài t p ................................................................................................... 12 Chương 2 Quy trình xây d ng ph n m m ......................................................... 14 2.1 M t s mô hình phát tri n ph n m m ................................................... 14 2.1.1 Mô hình thác nư c ............................................................................ 14 2.1.2 Mô hình xây d ng ti n tri n.............................................................. 15 2.1.3 Công ngh ph n m m d a thành ph n.............................................. 16 2.1.4 Mô hình phát tri n l p l i, tăng thêm ................................................ 17 2.1.5 Mô hình xo n c ............................................................................... 17 2.2 Các ho t ñ ng trong quy trình ph n m m............................................. 18 2.2.1 ð c t ph n m m .............................................................................. 19 2.2.2 Thi t k ph n m m và cài ñ t ........................................................... 20 2.2.3 ðánh giá ph n m m .......................................................................... 21 2.2.4 C i ti n ph n m m ............................................................................ 22 2.3 Bài t p ................................................................................................... 22 Chương 3 Yêu c u h th ng .............................................................................. 25 3.1 Yêu c u h th ng .................................................................................. 25 3.1.1 Yêu c u ch c năng............................................................................ 25 3.1.2 Yêu c u phi ch c năng...................................................................... 26 3.1.3 Yêu c u mi n ng d ng .................................................................... 28 3.1.4 M t s k thu t ñ c t yêu c u h th ng........................................... 28 3.1.4.1 ð c t b ng ngôn ng hư ng c u trúc ....................................... 29 3.1.4.2 ð c t d a bi u m u (Form-based)............................................ 29 3.1.4.3 Bi u ñ trình t .......................................................................... 29 3.2 Yêu c u c a ngư i s d ng................................................................... 29 3.3 Tài li u ñ c t yêu c u .......................................................................... 29 Trang 2

Môn h c Công ngh ph n m m

3.4 Bài t p ................................................................................................... 30 Chương 4 Quy trình xác ñ nh yêu c u ............................................................... 32 4.1 Phân tích kh thi.................................................................................... 33 4.2 Phát hi n và phân tích yêu c u.............................................................. 34 4.2.1 Khung nhìn (Viewpoint) ................................................................... 35 4.2.2 Ph ng v n.......................................................................................... 36 4.2.3 K ch b n ............................................................................................ 37 4.2.4 Ca s d ng ........................................................................................ 37 4.3 ðánh giá yêu c u................................................................................... 38 4.4 L p k ho ch qu n lý yêu c u............................................................... 39 4.5 Bài t p ................................................................................................... 40 Chương 5 Các mô hình h th ng ....................................................................... 41 5.1 Mô hình ng c nh ................................................................................. 41 5.2 Mô hình ng x ..................................................................................... 42 5.2.1 Mô hình lu ng d li u....................................................................... 42 5.2.2 Mô hình máy tr ng thái..................................................................... 43 5.3 Mô hình d li u..................................................................................... 43 5.4 Mô hình ñ i tư ng ................................................................................ 44 5.4.1 Mô hình th a k ................................................................................ 45 5.4.2 Mô hình k t h p................................................................................ 46 5.4.3 Mô hình ng x ................................................................................. 47 5.5 Phương pháp hư ng c u trúc ................................................................ 48 5.6 Bài t p ................................................................................................... 49 Chương 6 Thi t k ki n trúc .............................................................................. 52 6.1 Thi t k ki n trúc là gì? ........................................................................ 52 6.2 T ch c h th ng .................................................................................. 53 6.2.1 Kho d li u dùng chung.................................................................... 54 6.2.2 Mô hình client – server ..................................................................... 54 6.2.3 Mô hình phân l p.............................................................................. 55 6.3 Phân rã h th ng.................................................................................... 55 6.3.1 Phân rã hư ng ñ i tư ng................................................................... 56 6.3.2 Pipeline hư ng ch c năng................................................................. 57 6.4 Các chi n lư c ñi u khi n..................................................................... 57 6.4.1 ði u khi n t p trung.......................................................................... 58 6.4.1.1 Mô hình g i tr l i (call-return)................................................. 58 6.4.1.2 Mô hình qu n lý ......................................................................... 58 6.4.2 ði u khi n hư ng s ki n ................................................................. 59 6.4.2.1 Mô hình lan truy n (Broadcast) ................................................. 59 6.4.2.2 Mô hình hư ng ng t (Interrupt-driven) ..................................... 59 6.5 Các ki n trúc tham chi u....................................................................... 60 6.6 Bài t p ................................................................................................... 60 Chương 7 Thi t k giao di n ngư i dùng .......................................................... 62 7.1 Giao di n ngư i dùng ........................................................................... 62 7.1.1 Tác nhân con ngư i trong thi t k giao di n .................................... 62 Trang 3

.........3 Ki m th thành ph n.......................... 92 11...................... 73 8....................................3.... 63 7..............................2....... 92 11... 88 10........................................................ 83 10....2..........3...........................1. 92 11.................................................. 84 10.......1..................................... 66 7........ 94 11............1 ð nh nghĩa v qu n lý d án ............... 94 11.....................6 Bài t p .2 Ki m th h th ng ...............2 L p m u th giao di n ngư i dùng ...............2 Ki m th ñ c l p.....3......................1 Các quy trình ho t ñ ng...........2 Các quy trình c i ti n ph n m m .. 81 Chương 10 Qu n lý d án.2 Ki m th giao di n...................... 70 8............2 Quy trình thi t k giao di n ngư i dùng ....2 Quy trình Qu n lý C u hình ph n m m (Software Configuration Management) 94 11....Môn h c Công ngh ph n m m 7.......................2 Các nguyên t c thi t k giao diên .............................................................1 Khái ni m Quy trình ....4 Quy trình Môi trư ng th c hi n (Environment) ....3 L p k ho ch d án ........................................................................3 ðánh giá giao di n ngư i dùng...........................3 Tóm lư c m t s quy trình ....... 63 7........................................3.............. 75 9...........2 D ñoán thay ñ i........3 Bài t p ..................................1......................3 Tái k ngh h th ng (System re-engineering)..................2..................................1.................. 76 9...........1................................3 Bi u di n thông tin............................1...........................................2...........................5 T ñ ng ki m th ....... 64 7.............................. 81 9........................ 83 10.................................................1 Phân tích ngư i s d ng ............................. 94 11...........1....................................................................................................................................................4 Thi t k các trư ng h p ki m th ...................................... 85 10......................1 Quy trình ki m th ......5 Quy trình Hi n th c Xây d ng chương trình (Implementation) 95 Trang 4 ................................................1............................. 68 8.......................... 83 10.............................3......................2 Các ho t ñ ng qu n lý.................5 Qu n lý r i ro ..................1 D ñoán b o trì .......1 Quy trình Phân tích Thi t k (Analysis and Design) .......... 66 Chương 8 C i ti n ph n m m .........................2....................................... 74 Chương 9 Ki m th ph n m m......................................................................1 Ki m th l p ñ i tư ng........................................2............................................................................................... 94 11.........4 Bài t p ...................................................................1....................................... 77 9..............................................................................................3. 76 9...... 93 11.............. 66 7. 79 9....................................................... 70 8.............................. 89 Chương 11 Chu n và các quy trình ho t ñ ng trong công nghi p ph n m m.............................................................2...................................................2.... 70 8..................1 B o trì ph n m m..............3 Bài t p .........................2.2........1....................................3...................................... 75 9............................. 79 9............... 80 9..........................................................................1...................................1....... 78 9......2 Các quy trình công ngh liên quan .......... 68 8....... 65 7.............................................4 L ch bi u c a d án..................................1 Ki m th tích h p ............3 Quy trình Tri n khai ng d ng (Deployment) ................

..3 H th ng chu n trong công nghi p ph n m m ...1.............................8 Quy trình Ki m tra ch t lư ng (Test) .....2 Các vai trò .....2 Các vai trò trong ho t ñ ng s n xu t ph n m m....................2...6 Quy trình Qu n lý D án (Project Management)................................................Môn h c Công ngh ph n m m 11....1....2.................1 Khái ni m vai trò ..........1........... 95 11........... 96 11......... 95 11.................................3. 96 Trang 5 ....... 95 11..............................3...... 96 11.............3................................7 Quy trình Xác ñ nh Yêu c u (Requirements) . 96 11................................

vi c xây d ng và b o trì h th ng ph n m m m t cách hi u qu là yêu c u c n thi t ñ i v i n n kinh t toàn c u và c a t ng qu c gia.1 Gi i thi u v m t s khái ni m cơ b n M c tiêu: Khi tìm hi u v công ngh ph n m m.Nh ng thách th c chính ñ i v i công ngh ph n m m? Câu tr l i s ñư c trình bày trong các ph n ti p theo.Cho bi t m t s ph n m m ñã dùng Trang 6 .Mô hình quy trình phát tri n ph n m m là gì? . . 1.Ph n m m là gì? . t t c các nư c phát tri n ñ u ph thu c ch y u vào các h th ng ph n m m.S khác bi t gi a công ngh ph n m m và công ngh h th ng? .Công ngh ph n m m là gì? . Do ñó. H c viên c n n m rõ các ki n th c cơ b n này. Trong chương ñ u tiên.Chi phí c a công ngh ph n m m bao g m nh ng gì? .Các phương pháp công ngh ph n m m là gì? . 1.Th nào là m t ph n m m t t? .1.Hi u rõ các khái ni m liên quan ñ n ph n m m và công ngh ph n m m ñư c trình bày trong ph n 1. . ð t ñó. mang l i l i nhu n cao. phương th c và công c ñ xây d ng ph n m m chuyên nghi p. Do ñó.Quy trình ph n m m là gì? .S khác bi t gi a công ngh ph n m m và khoa h c máy tính? . Khái ni m v công ngh ph n m m ñư c ñưa ra l n ñ u tiên vào năm 1968 t i h i ngh th o lu n v kh ng ho ng ph n m m.1 Ph n m m là gì? ð tv nñ : .Môn h c Công ngh ph n m m Chương 1 T ng quan v công ngh ph n m m Gi i thi u: Ngày nay.Bi t ñư c m t s nguyên t c cơ b n v tính chuyên nghi p và ñúng nguyên t c ñ i v i k sư ph n m m. chúng ta s tìm hi u v nh ng yêu c u căn b n ñ i v i m t k sư ph n m m. chúng ta có nh ng hi u bi t cơ b n ñ ti p t c nghiên c u các chương ti p theo. Ngoài ra. chúng ta thư ng ñ t ra m t s câu h i sau: . quy trình xây d ng ph n m m ñòi h i ph i tuân th các nguyên t c vô cùng ch t ch . trong ph n cu i chương này. Công ngh ph n m m ñ c p t i các lý thuy t. Và càng ngày càng có nhi u h th ng ñư c ki m soát b i ph n m m. M c tiêu: . chúng ta s tìm hi u v m t s khái ni m cơ b n có liên quan t i ph n m m và công ngh ph n m m.Có th tham kh o thêm v m t s nguyên t c c a “Code of Ethics” ñ hi u rõ hơn v các nguyên t c ñ i v i m t k sư ph n m m.CASE (Computer-Aided Software Engineering) là gì? .

hãy nêu m t khái ni m v ph n m m Ph n m m là các chương trình máy tính và nh ng tài li u liên quan ñ n nó như: các yêu c u.T i sao ngày nay ngư i ta l i s d ng r t nhi u t i khái ni m "Công ngh ph n m m"? Công ngh ph n m m là nh ng quy t c công ngh (engineering discipline) có liên quan ñ n t t c các khía c nh c a quá trình s n xu t ph n m m. mô hình thi t k . ñ i tư ng ngư i s d ng là tương ñ i ña d ng và phong phú. h nên s d ng các công c và k thu t thích h p v i v n ñ c n gi i quy t. Các k sư ph n m m nên tuân theo m t phương pháp lu n có h th ng và có t ch c trong công vi c c a h .3 S khác bi t gi a công ngh tính? ph n m m và khoa h c máy ð tv nñ : . Các s n ph m ph n m m ñư c chia thành 2 lo i: . tài li u hư ng d n s d ng… Do ñó.S n ph m theo ñơn ñ t hàng (Bespoke Product ho c Customised Product): ñư c phát tri n cho m t khách hàng riêng l theo yêu c u.Khoa h c máy tính ñ c p t i nh ng v n ñ gì? . chúng ta th y r ng ñ c ñi m c a ph n m m là tr u tư ng và vô hình. ð ng th i. Ví d : Nh ng h th ng ph n m m chuyên d ng.D a trên ki n th c c a mình.1. 1.S n ph m ñ i trà (Generic Product): ñư c phát tri n ñ bán ra ngoài th trư ng.4 S khác bi t gi a công ngh th ng? ph n m m và công ngh h ð tv nñ : . 1. Nh ng s n ph m ph n m m thu c lo i này thư ng là nh ng ph n m m dành cho máy PC. Khi s phát tri n c a ph n m m tr lên m nh m thì các lý thuy t c a khoa h c máy tính v n không ñ ñ ñóng vai trò là n n t ng hoàn thi n cho công ngh ph n m m.Nh c ñ n công ngh ph n m m là nh c ñ n nh ng v n ñ gì? . các ràng bu c và tài nguyên s n có. 1.1. h tr nghi p v cho m t doanh nghi p riêng l … M t ph n m m m i có th ñư c t o ra b ng cách phát tri n các chương trình m i.1. còn công ngh ph n m m ñ c p t i các ho t ñ ng xây d ng và ñưa ra m t ph n m m h u ích.H c viên ñã bao gi nghe nh c t i Công ngh h th ng hay chưa? Trang 7 . thay ñ i và ñi u ch nh các h th ng ph n m m ñ i trà ho c tái s d ng l i các ph n m m ñã t n t i.Môn h c Công ngh ph n m m .Hãy ñưa ra m t s ví d thu c lĩnh v c khoa h c máy tính và công ngh ph n m m Khoa h c máy tính ñ c p t i lý thuy t và nh ng v n ñ cơ b n.2 Công ngh ph n m m là gì? ð tv nñ : . .

Mô hình thác nư c (waterfall) .Mô hình Vai trò/Hành ñ ng (Role/action): ch ra vai trò c a nh ng ngư i liên quan trong quy trình ph n m m và nhi m v c a t ng ngư i.Hãy cho bi t ñ s n xu t m t ph n m m. K sư h th ng ph i th c hi n vi c ñ c t h th ng. .Môn h c Công ngh ph n m m . và công ngh x lý. h th ng th i gian th c yêu c u ph i hoàn thành ñ c t h th ng trư c khi chuy n sang giai ño n xây d ng nó. Nh ng hành ñ ng thư ng ñư c th c hi n trong các quy trình ph n m m bao g m . thi t k ki n trúc h th ng. nó có liên quan t i vi c phát tri n h t ng ph n m m (software infrastructure). .Hãy trình bày m t s v n ñ có liên quan ñ n Công ngh h th ng. chúng ta có th v a ñ c t v a xây d ng chương trình m t cách ñ ng th i.Công ngh ph n m m có ph i là Công ngh h th ng không? Công ngh h th ng (hay còn g i là k ngh h th ng) liên quan t i t t c các khía c nh c a quá trình phát tri n h th ng d a máy tính bao g m: ph n c ng. tích h p và tri n khai.Mô hình lu ng d li u (data-flow): mô t lu ng thông tin. Ngoài ra.Phát tri n: xây d ng h th ng ph n m m. .1. còn có m t s mô hình quy trình chung cũng ñư c ñ xu t như: . các ng d ng và cơ s d li u trong h th ng.M r ng: ñi u ch nh và thay ñ i ph n m m tương ng v i s thay ñ i yêu c u. n u chúng ta không s d ng m t quy trình phát tri n h th ng thích h p thì có th làm gi m ch t lư ng c a h th ng và tăng chi phí xây d ng. . ph n m m. Sau ñây là m t s ví d v mô hình quy trình phát tri n ph n m m: . và nó ñư c bi u di n t m t góc ñ c th . Công ngh ph n m m ch là m t ph n c a quy trình này. ngư i ta ph i th c hi n nh ng công vi c nào? Quy trình ph n m m là m t t p h p các hành ñ ng mà m c ñích c a nó là xây d ng và phát tri n ph n m m. 1. Nhưng v i h th ng thương m i ñi n t .5 Quy trình ph n m m là gì? ð tv nñ : . Tuy nhiên. Nh ng lo i h th ng khác nhau s c n nh ng quy trình phát tri n khác nhau.1.Mô hình phát tri n l p l i (Iterative development) Trang 8 . Ví d . . ñi u khi n.Ki m th : ki m tra xem li u ph n m m ñã tho mãn yêu c u c a khách hàng.ð c t : ñ c t nh ng gì h th ng ph i làm và các ràng bu c trong quá trình xây d ng h th ng.Mô hình lu ng công vi c (workflow): mô t m t chu i các hành ñ ng c n ph i th c hi n. .6 Mô hình quy trình phát tri n ph n m m là gì? Mô hình quy trình phát tri n ph n m m là m t th hi n ñơn gi n c a m t quy trình ph n m m. 1.

Vi c phân b chi phí cũng ph thu c vào mô hình phát tri n h th ng ñư c s d ng.Môn h c Công ngh ph n m m - Mô hình công ngh ph n m m d a thành ph n (Component-based software engineering).T t c các h th ng ph n m m có cùng các h ng m c chi phí hay không? T i sao? ð xây d ng m t h th ng ph n m m.7 Các chi phí trong công ngh ph n m m ð tv nñ : . thì chi phí b o trì thư ng l n g p nhi u l n so v i chi phí xây d ng. chúng ta thư ng ph i ñ u tư m t kho n ngân sách khá l n. X p x 60% chi phí là chi phí xây d ng và 40% là chi phí ki m th . Theo th ng kê cho th y. chi phí m r ng thư ng vư t quá chi phí xây d ng. Mô hình phát tri n l p l i : Trang 9 . 1. cài ñ t. ð i v i nh ng h th ng ho t ñ ng trong th i gian dài. Chi phí ph n m m dành cho vi c b o trì ph n m m thư ng l n hơn chi phí xây d ng ph n m m. tích h p và ki m th ñư c xác ñ nh m t cách riêng r . Chi phí bi n ñ i tuỳ thu c vào t ng lo i h th ng ñư c xây d ng và các yêu c u v ñ c ñi m c a h th ng như: hi u năng và ñ tin c y c a h th ng.ð xây d ng m t h th ng ph n m m chúng ta ph i ñ u tư cho nh ng h ng m c nào? . thư ng ñư c s d ng: Mô hình thác nư c: Chi phí c a các pha ñ c t . thi t k . Chi phí ph n m m trên máy PC thư ng l n hơn chi phí ph n c ng. ð i v i nh ng ph n m m làm theo yêu c u c a khách hàng. chi phí cho vi c xây d ng ph n m m chi m m t ph n ñáng k c a GNP t t c các nư c phát tri n.1. Sau ñây là b ng so sánh chi phí c a 3 mô hình ph bi n nh t. Chi phí ph n m m thư ng chi m ph n l n chi phí c a c h th ng máy tính.

các ký pháp. hư ng d n thi t k và quy trình ñ xây d ng ph n m m m t cách d dàng.1.Upper-CASE: công c ñ h tr các ho t ñ ng ñ u tiên như ñ c t yêu c u và thi t k . M t s phương pháp công ngh ph n m m ñã ñư c ñ xu t như: Phân tích hư ng c u trúc t p trung vào vi c xác ñ nh các ch c năng cơ b n c a h th ng. Có hai lo i CASE: . phương pháp hư ng ñ i tư ng t p trung vào vi c ñ nh nghĩa các ñ i tư ng và s c ng tác gi a chúng.1. 1. T i m i bư c l p.. Trang 10 . 1.8 Các phương pháp công ngh ph n m m là gì? Phương pháp công ngh ph n m m bao g m các mô hình h th ng. quy t c. Mô hình công ngh ph n m m hư ng thành ph n Chi phí ph thu c nhi u vào vi c tích h p và ki m th h th ng. ph i có chi phí ki m th toàn b h th ng. chúng ta còn ph i ñ m t ph n l n chi phí ph c v cho vi c thay ñ i ph n m m sau khi nó ñã ñư c ñưa vào s d ng. Sau khi ñã th c hi n h t các bư c l p. Chi phí ñ c t gi m vì ñây là ñ c t b c cao.. ñ m b o ch t lư ng cao và chi phí hi u qu . Chi phí c i ti n ph n m m thay ñ i ph thu c vào t ng lo i ph n m m. Ngoài chi phí xây d ng. các pha trong quy trình xây d ng h th ng ñư c th c hi n l i nh m th c hi n các yêu c u h th ng khác nhau t ng bư c l p.Môn h c Công ngh ph n m m Không th phân bi t rõ chi phí cho t ng pha trong quy trình.9 CASE (Computer-Aided Software Engineering) Các h th ng CASE thư ng ñư c s d ng ñ h tr các ho t ñ ng trong quy trình xây d ng ph n m m.

th nào là m t ph n m m t t? Ph n m m ph i ñáp ng các ch c năng theo yêu c u.Không ñ ng nh t: phát tri n các k thu t xây d ng ph n m m ñ gi i quy t s không ñ ng nh t v môi trư ng th c hi n và n n t ng h t ng. . K sư ph n m m ph i ng x trung th c và cách làm c a h ph i r t chuyên nghi p và ñúng quy t c. có hi u năng t t. Trong ph n này.1 Thách th c ñ i v i công ngh ph n m m? ð tv nñ : . ch không ñơn thu n ch là vi c ng d ng k thu t. b o m t và chính xác. g l i và ki m th . b n hãy cho bi t nh ng thách th c mà công ngh ph n m m ph i ñ i m t. Công ngh ph n m m trong th k 21 ph i ñ i m t v i r t nhi u thách th c to l n.Chuy n giao: phát tri n các k thu t nh m d n t i vi c chuy n giao ph n m m t i ngư i s d ng nhanh hơn.N u quan tâm ñ n s phát tri n c a công ngh ph n m m. . Do ñó. . nh ng k sư ph n m m ph i coi công vi c c a h là trách nhi m to l n. . .Môn h c Công ngh ph n m m - Lower-CASE: công c ñ h tr các ho t ñ ng sau như l p trình.M c ñ tin c y: ph n m m ph i ñư c tin c y. V i m i thách th c này. ði u ñó có nghĩa là nó ph i d hi u. s d ng ñư c và tương thích v i các h th ng khác. chúng ta s trình bày m t s nguyên t c c n thi t mà m t k sư ph n m m ph i th c hi n.Kh năng ñư c ch p nh n: ngư i s d ng ph i ch p nh n ph n m m.3 V n ñ v tính chuyên nghi p và ñúng quy t c ð tv nñ : . ñáng tin c y.2 Th nào là m t ph n m m t t? ð tv nñ : .Theo b n. và ñư c ngư i s d ng ch p nh n.ð tin c y: phát tri n các k thu t ñ ch ng minh r ng ph n m m ñư c ngư i s d ng nó tin tư ng.B n có thư ng xuyên s d ng ph n m m không? .2. 1.Theo b n. 1. ñ ñáp ng ñư c các yêu c u công vi c m t k sư ph n m m ph i tho mãn ñư c nh ng yêu c u gì? Quy trình xây d ng ph n m m ñư c th c hi n trong m t môi trư ng chuyên nghi p và ñòi h i tuân th các nguyên t c m t cách chính xác.Kh năng b o trì: ph n m m ph i ñư c ñi u ch nh và m r ng ñ tho mãn nh ng yêu c u thay ñ i. Trang 11 . có kh năng b o trì. chúng ta ph i có nh ng gi i pháp c th . 1. .Hi u qu : ph n m m không nên s d ng lãng phí tài nguyên c a h th ng. .

Môn h c Công ngh ph n m m S tin c n: k sư ph n m m ph i t o ñư c s tin c n t phía nhân viên và khách hàng. Correct) 3. Bi t cách phân tích và ñ nh nghĩa h th ng thông qua ph ng v n khách hàng. Có ki n th c v các mô hình quy trình công ngh ph n m m và có kh năng l a ch n m t mô hình thích h p vào d án True False (Incorrect. . Câu 2: Hãy li t kê 4 ñ c ñi m quan tr ng nh t c a m t ph n m m.. Câu 3: Hãy nêu s khác bi t gi a mô hình quy trình ph n m m và quy trình ph n m m. - 1. Correct) 4. N u là L p trình viên ch n False. Thành th o v ngôn ng l p trình và vi t ñư c các chương trình ng d ng True False (Incorrect.L m d ng máy tính: k sư ph n m m không nên s d ng các k năng c a mình ñ gây nh hư ng t i ngư i khác. Correct) 2. Câu 5: K sư ph n m m hay L p trình viên ph i có nh ng k năng hay nhi m v nào sau ñây? N u là K sư ph n m m ch n True. L m d ng máy tính có th ñư c hi u là nh ng vi c t m thư ng (Ví d : chơi ñi n t trên máy tính c a ngư i khác) ñ n nh ng v n ñ nghiêm tr ng (Ví d : phát tán virus). . . quy n tác gi … ñ ñ m b o r ng t t c tài s n trí tu c a nhân viên và khách hàng ñ u ñư c b o h . thu th p tài li u.4 Bài t p Câu 1: Cho bi t s khác bi t gi a s n ph m ph n m m ñ i trà và s n ph m ph n m m theo yêu c u. V n ñ v tính chuyên nghi p và ñúng quy t c ñ i v i k sư ph n m m quan tr ng t i m c m t s t ch c M ñã h p tác ñ phát tri n b n Code of Ethics g m 8 quy t c liên quan ñ n ng x và cách ra quy t ñ nh c a các k sư ph n m m chuyên nghi p. True False Trang 12 . 1. Câu 4: T i sao ph i s d ng CASE tool? Hãy ñưa ra 2 CASE tool mà b n bi t. không nên nh n nh ng công vi c vư t quá kh năng c a mình. False True (Incorrect.Năng l c: k sư ph n m m không nên trình bày sai kh năng c a mình. ..Các quy n v tài s n trí tu : k sư ph n m m nên quan tâm v các tài s n trí tu ñư c b o h như: b ng sáng ch . Bi t cách cài ñ t chương trình d a trên nh ng gi i pháp ho c thu t toán cho s n.

Môn h c Công ngh ph n m m (Incorrect. Ki n trúc ph n m m. thì nh ng k t qu c th nào s ñư c t o ra ñ ñ i di n cho m t ph n m m? (Chương trình. True False (Incorrect. nh m giúp xây d ng m t s n ph m ñúng ti n ñ và có ch t lư ng cao. Correct) 5. Bi t cách ki m th ph n m m và có th ki m th h th ng m t cách hi u qu . True False (Incorrect. Correct) Câu 6: Trong quá trình xây d ng m t ph n m m. m t chu i các hành ñ ng ñư c d ñoán trư c (b n ñ ch d n). Correct) 6. Bi t ñư c s khác nhau gi a các quy trình công ngh ph n m m và th y ñư c ưu/như c ñi m c a t ng quy trình. Mã l nh và các tài li u có liên quan) Trang 13 . ñi u quan tr ng là chúng ta c n ph i tuân th . B n ñ ch d n ñó g i là gì? (Quy trình ph n m m) Câu 7: N u coi ph n m m là m t s n ph m.

Sau ñó. .V n hành và b o trì. chúng ta s tìm hi u m t s mô hình phát tri n ph n m m thư ng ñư c ng d ng và ñánh giá ưu và như c ñi m c a chúng. M c tiêu: . Nó bi u di n các ñ c t v quy trình t nh ng khía c nh c th .Xác ñ nh chi ti t nh ng công vi c ph i làm trong quy trình ph n m m và cách th c hi n chúng.Có th ng d ng nh ng mô hình phát tri n ph n m m ñã nghiên c u trên nh ng h th ng ph n m m c th .Mô hình thác nư c . do ñó.Mô hình xây d ng ti n tri n . Trong chương này.Cài ñ t và ki m th ñơn v .N m ñư c m t s mô hình phát tri n ph n m m .Phân bi t ñư c s khác nhau gi a các mô hình.1 M t s mô hình phát tri n ph n m m Gi i thi u: Mô hình phát tri n ph n m m là m t th hi n tr u tư ng c a quy trình ph n m m. Trang 14 . chúng ta s nghiên c u chi ti t nh ng công vi c ph i làm trong quá trình xây d ng m t ph n m m và cách th c hi n chúng. Ph n sau ñây s trình bày năm mô hình phát tri n ph n m m ph bi n thư ng ñư c s d ng: .Tích h p và ki m th h th ng . nó ch cung c p m t ph n thông tin v quy trình ph n m m. . ưu và như c ñi m c a t ng mô hình.Ph i hi u rõ năm mô hình phát tri n ph n m m cơ b n.Bi t rõ ñ i v i lo i h th ng nào thì nên áp d ng mô hình phát tri n nào cho phù h p.Hi u rõ quy trình ph n m m .Mô hình phát tri n l p l i.1. .Công ngh ph n m m d a thành ph n . 2.Thi t k h th ng và ph n m m .1 Mô hình thác nư c Các pha c a mô hình thác nư c bao g m: .Môn h c Công ngh ph n m m Chương 2 Quy trình xây d ng ph n m m Gi i thi u: Quy trình xây d ng ph n m m (còn g i t t là quy trình ph n m m) là m t t p h p các hành ñ ng ph i ñư c th c hi n trong quá trình xây d ng m t h th ng ph n m m. 2.Phân tích và xác ñ nh các yêu c u . tăng thêm .Mô hình xo n c M c tiêu: .

b sung nh ng ñ c ñi m m i ñư c ñ xu t b i khách hàng. Phương pháp này thư ng b t ñ u th c hi n v i nh ng yêu c u ñư c tìm hi u rõ ràng và sau ñó. Các m u th s ñư c xây d ng và chuy n giao t i cho ngư i s d ng. 2.Lo i b m u th : m c ñích là ñ tìm hi u các yêu c u c a h th ng. r i m i ñư c th c hi n pha ti p theo.Môn h c Công ngh ph n m m Trong mô hình thác nư c. . như c ñi m chính c a mô hình thác nư c là r t khó khăn trong vi c thay ñ i các pha ñã ñư c th c hi n. trong th c t có r t ít nh ng h th ng nghi p v có các yêu c u n ñ nh. năm pha trên ph i ñư c th c hi n m t cách tu n t . tinh ch nh m u th qua nhi u phiên b n cho ñ n khi tho mãn yêu c u c a ngư i s d ng thì d ng l i. khi các yêu c u c a ngư i s d ng ñư c tho mãn thì cũng là lúc chúng ta ñã xây d ng xong h th ng. nhưng lúc này l i có s thay ñ i yêu c u c a ngư i s d ng. T ñó. Như v y. Do ñó. Cho nên. k t thúc pha trư c. Phương pháp này thư ng b t ñ u v i nh ng yêu c u không rõ ràng và ít thông tin. Có hai phương pháp ñ th c hi n mô hình này: . sau ñó.2 Mô hình xây d ng ti n tri n Mô hình xây d ng ti n tri n d a trên ý tư ng xây d ng m t m u th ban ñ u và ñưa cho ngư i s d ng xem xét. Cu i cùng. Trang 15 . m u th ch có tác d ng ñ làm sáng t yêu c u c a ngư i s d ng.1. mô hình này ch thích h p khi các yêu c u ñã ñư c tìm hi u rõ ràng và nh ng thay ñ i s ñư c gi i h n m t cách rõ ràng trong su t quá trình thi t k . ta có th phân lo i nh ng yêu c u nào là th c s c n thi t và lúc này m u th không còn c n thi t n a. pha phân tích và xác ñ nh yêu c u ñã hoàn t t và chuy n sang pha k ti p. Gi s . thì ch còn cách là ph i th c hi n l i t ñ u.Phát tri n thăm dò: m c ñích c a nó là ñ làm vi c v i khách hàng và ñ ñưa ra h th ng cu i cùng t nh ng ñ c t sơ b ban ñ u. Tuy nhiên.

1.Phân tích thành ph n s n có .Môn h c Công ngh ph n m m Tuy nhiên. các h th ng thư ng hư ng c u trúc nghèo nàn. trong ñó h th ng ñư c tích h p t nhi u thành ph n ñang t n t i ho c các thành ph n thương m i COTS (Commercial-off-the-shelf).Thi t k h th ng v i k thu t tái s d ng .Xây d ng và tích h p h th ng Trang 16 . yêu c u các k năng ñ c bi t (Ví d : các ngôn ng ñ t o ra m u th nhanh chóng). Các tr ng thái chính c a quy trình bao g m: . trên m t ph n c a nh ng h th ng l n.3 Công ngh ph n m m d a thành ph n Mô hình này d a trên k thu t tái s d ng m t cách có h th ng.ði u ch nh yêu c u . 2. Mô hình xây d ng ti n tri n ch nên áp d ng v i nh ng h th ng có tương tác m c ñ nh ho c v a. ho c nh ng h th ng có th i gian chu kỳ t n t i ng n. như c ñi m c a mô hình xây d ng ti n tri n là: thi u t m nhìn c a c quy trình.

Các yêu c u c a ngư i s d ng ñư c ñánh th t ưu tiên. . T ñó. . M i vòng là m t ph n k t qu c a m t ch c năng ñư c yêu c u. Trang 17 .Thi t l p m c tiêu: xác ñ nh m c tiêu cho t ng pha c a d án.4 Mô hình phát tri n l p l i.1. Yêu c u nào có th t ưu tiên càng cao thì càng trong nh ng vòng phát tri n s m hơn. L p k ho ch: ñánh giá d án và pha ti p theo c a mô hình xo n c s ñư c l p k ho ch. chúng ta có th th y rõ m t s ưu ñi m c a mô hình phát tri n tăng vòng: .Các vòng trư c ñóng vai trò là m u th ñ giúp tìm hi u thêm các yêu c u nh ng vòng ti p theo.Nh ng ch c năng c a h th ng có th t ưu tiên càng cao thì s ñư c ki m th càng k .ðánh giá và gi m thi u r i ro: r i ro ñư c ñánh giá và th c hi n các hành ñ ng ñ gi m thi u r i ro.5 Mô hình xo n c Trong mô hình xo n c. Phát tri n và ñánh giá: sau khi ñánh giá r i ro.Sau m i l n tăng vòng thì có th chuy n giao k t qu th c hi n ñư c cho khách hành nên các ch c năng c a h th ng có th nhìn th y s m hơn.Môn h c Công ngh ph n m m 2. tăng thêm Mô hình này ñư c ñ xu t d a trên ý tư ng thay vì ph i xây d ng và chuy n giao h th ng m t l n thì s ñư c chia thành nhi u vòng. quy trình phát tri n ph n m m ñư c bi u di n như m t vòng xo n c. m t mô hình xây d ng h th ng s ñư c l a ch n t nh ng mô hình chung.1. 2. Các pha trong quy trình phát tri n xo n c bao g m: . tăng d n. .

M c tiêu: . chúng ñư c t ch c m t cách tu n t . các ho t ñ ng này có th g i lên nhau. . Nh ng ho t ñ ng này bao g m: ð c t : các ch c năng c a h th ng và nh ng ràng bu c khi v n hành h th ng c n ph i ñư c xác ñ nh m t cách ñ y ñ và chi ti t. .Môn h c Công ngh ph n m m 2. trong mô hình thác nư c. chúng ta s nghiên c u c th t ng ho t ñ ng. Ví d .2 Các ho t ñ ng trong quy trình ph n m m Gi i thi u: Trong quy trình ph n m m g m 4 ho t ñ ng cơ b n. .Thi t k và cài ñ t: ph n m m ñư c xây d ng ph i tho mãn ñ c t c a nó. . Trong mô hình ti n tri n.T ng công vi c ñó ñư c th c hi n c th ra sao Trang 18 .Xác ñ nh rõ nh ng công vi c nào c n ph i làm trong quy trình phát tri n ph n m m. V i m i mô hình khác nhau thì các ho t ñ ng này cũng ñư c t ch c theo các cách khác nhau.ðánh giá: ph n m m ph i ñư c ñánh giá và th m ñ nh ñ ñ m b o r ng nó ñã tho mãn t t c các yêu c u. Trong các ph n ti p sau ñây.C i ti n: ph n m m c n ph i c i ti n và ñi u ch nh ñ phù h p v i nh ng thay ñ i v yêu c u h th ng.

2. ð c t ph n m m (hay còn g i là k thu t xác ñ nh yêu c u) là quy trình tìm hi u và ñ nh nghĩa nh ng d ch v nào ñư c yêu c u và các ràng bu c trong quá trình v n hành và xây d ng h th ng.Công vi c ñ u tiên c n ph i làm trong quá trình xây d ng ph n m m là gì? . Trang 19 . chúng ta ñ u ph i th c hi n b n công vi c trên. phân tích nhi m v . nghiên c u kh thi nh m xác ñ nh h th ng ñưa ra có mang l i l i nhu n không.1 ð c t ph n m m ð tv nñ : . có th ng nh t không. o Yêu c u h th ng: là nh ng tài li u có c u trúc mô t chi ti t v các ch c năng. .T m quan tr ng c a vi c ñ c t ph n m m.Phân tích và rút ra các yêu c u: ñây là quy trình ñưa ra các yêu c u h th ng thông qua m t s phương pháp như: quan sát h th ng hi n t i. v i vi c s d ng các mô hình phát tri n ph n m m khác nhau thì trình t th c hi n các công vi c trên cũng khác nhau.Môn h c Công ngh ph n m m - Ph i nh m t ñi u r ng: khi xây d ng b t kỳ ph n m m nào. . chúng ta có th ph i xây d ng m t ho c nhi u mô hình h th ng và các m u th . ph ng v n và th o lu n v i ngư i s d ng. cho nên nó có th tr thành b n h p ñ ng gi a khách hàng và nhà th u. Ki u yêu c u này ñư c vi t b i ngư i s d ng. . phân tích tài li u ho c h th ng cũ … Trong pha này.ð c t yêu c u: Pha này s tư li u hoá nh ng thông tin thu th p ñư c. d ch v và các ràng bu c v n hành c a h th ng. N u phát hi n ra l i thì ta ph i ch nh s a các l i này. V góc ñ kinh doanh.2. Vi c nghiên c u kh thi nên ñư c th c hi n m t cách nhanh chóng và không quá t n kém. Yêu c u h th ng s ñ nh nghĩa nh ng gì c n ph i xây d ng. có ñ y ñ không.ðánh giá yêu c u: pha này s ki m tra l i các yêu c u xem chúng có ñúng th c t hay không. K t qu c a vi c nghiên c u kh thi s xác ñ nh có nên ti p t c xây d ng h th ng n a hay không. Có hai lo i yêu c u c n ñư c xác ñ nh: o Yêu c u c a ngư i s d ng: là nh ng yêu c u b ng ngôn ng t nhiên b sung thêm cho các bi u ñ c a 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ó. Quy trình xác ñ nh yêu c u bao g m b n pha chính: . Tuy nhiên.Nghiên c u kh thi: Nghiên c u kh thi giúp xác ñ nh nh ng yêu c u c a ngư i s d ng có tho mãn nh ng công ngh hi n t i hay không.

ph i có m t b n ñ c t v các d ch v c a nó và nh ng ràng bu c khi nó v n hành.Vai trò c a b n thi t k ñ i v i giai ño n cài ñ t là gì? Thi t k ph n m m là quá trình thi t k c u trúc ph n m m d a trên nh ng tài li u ñ c t . .ð c t tr u tư ng: v i m i h th ng con. .Thi t k ki n trúc: Các h th ng con c u thành lên h th ng c n xây d ng và m i quan h gi a chúng ñư c xác ñ nh và tư li u hoá. . có th th c hi n cài ñ t h th ng ngay ñư c không? .2.Thi t k giao di n: v i m i h th ng con.Môn h c Công ngh ph n m m 2. Ho t ñ ng thi t k bao g m nh ng công vi c chính sau: . các giao di n c a nó v i nh ng h th ng con khác ph i ñư c thi t k và tư li u hoá.B qua giai ño n thi t k . Trang 20 .Thi t k c u trúc d li u: c u trúc d li u ñư c s d ng ñ cài ñ t h th ng ph i ñư c thi t k m t cách chi ti t và c th .Thi t k thu t toán: Các thu t toán ñư c s d ng ñ cung c p các d ch v ph i ñư c thi t k chi ti t và chính xác.Thi t k thành ph n: các d ch v cung c p cho các thành ph n khác và các giao di n tương tác v i chúng ph i ñư c thi t k . .2 Thi t k ph n m m và cài ñ t ð tv nñ : . . sau khi ñ c t và phân tích yêu c u.

chúng ta có th chuy n giao ngay cho ngư i s d ng ñư c không? . ðánh giá ph n m m bao g m các công ño n: ki m tra. xem xét l i. . và ki m th h th ng. Ki m th h th ng t c là cho h th ng th c hi n trên nh ng trư ng h p có d li u th t ñư c l y t tài li u ñ c t h th ng.3 ðánh giá ph n m m ð tv nñ : . thành ph n có th là m t ch c năng ho c m t ñ i tư ng ho c m t nhóm các th c th g n k t v i nhau.Ki m th h th ng: ki m th toàn b h th ng. Quy trình ki m th g m các pha sau: Ki m th thành ph n (ñơn v ): các thành ph n ñư c ki m th m t cách ñ c l p.Sau khi cài ñ t ph n m m. 2. L p trình là m t hành ñ ng cá nhân. . không có quy trình l p trình chung. có th v n hành ñư c và ph i lo i b các l i c a chương trình.2. Trang 21 .Ki m th ch p thu n: ki m th trên d li u c a khách hàng ñ ki m tra h th ng có ñáp ng t t c các yêu c u c a khách hàng hay không.Môn h c Công ngh ph n m m Cài ñ t là quy trình chuy n ñ i t tài li u ñ c t h th ng thành m t h th ng th c. Ngư i l p trình ph i th c hi n m t s ki m th ñ phát hi n ra l i trong chương trình và lo i b nó trong quy trình g l i.Vai trò c a vi c ñánh giá ph n m m là gì? ðánh giá ph n m m hay còn g i là th m tra và ñánh giá (V&V Verification and validation) ñư c s d ng ñ ch ra r ng h th ng ñã th c hi n theo ñúng các ñ c t và tho mãn m i yêu c u c a khách hàng.

3 Bài t p Câu 1: Gi i thích t i sao các h th ng ñư c xây d ng d a trên mô hình phát tri n ti n tri n thư ng khó b o trì? Câu 2: Cho bi t cách ph i h p mô hình thác nư c. Khách hàng s thông báo các l i cho ñ i d án. mô hình m u th và mô hình xo n c.C i ti n ph n m m ñ làm gì? .T i sao không xây d ng h th ng m i mà l i c i ti n h th ng cũ? Khi các yêu c u h th ng thay ñ i theo s thay ñ i c a các yêu c u nghi p v thì ph n m m ph i c i ti n và thay ñ i ñ h tr khách hàng. Thông thư ng chi phí ñ b o trì và c i ti n thư ng ñ t hơn nhi u so v i chi phí xây d ng ph n m m.2. Câu 4: Trang 22 . Câu 3: Phân bi t s khác nhau gi a yêu c u h th ng và yêu c u c a ngư i s d ng. 2.Môn h c Công ngh ph n m m Khi chuy n giao h th ng cho khách hàng thì quy trình ki m th beta s ñư c th c hi n.4 C i ti n ph n m m ð tv nñ : . thì m i công vi c ñã k t thúc chưa? . 2.Sau khi chuy n giao ph n m m cho khách hàng. Nh ng l i này s ñư c ch nh s a và ti p t c ki m th beta ho c chuy n giao th c s cho khách hàng.

S n xu t. Wrong) Câu 7: Mô hình phát tri n ph n m m d a trên m u th là M t phương pháp thích h p ñư c s d ng khi các yêu c u ñã ñư c xác ñ nh rõ ràng Phương pháp t t nh t ñư c s d ng trong các d án có nhi u thành viên M t mô hình r t r i ro. 7) Câu 6: Ch n 5 ho t ñ ng chính. Wrong) Câu 5: S p x p th t c a nh ng nhi m v sau: 1. Thi t k . G l i. Correct. L p k ho ch. Wrong.Môn h c Công ngh ph n m m Tài li u nào sau ñây s ñư c t o ra trong pha thi t k h th ng? Mã l nh Thi t k chi ti t L p k ho ch K ho ch ki m th (Wrong. Xây d ng. B o trì Giao ti p. Ki m th (Wrong. Phân tích. Thi t k m c th p 4. Qu n lý r i ro. 5. Thi t k m c cao 3. Ki m th ch p thu n 8. 6. Cài ñ t 5. Tri n khai Phân tích. Wrong. Thi t k . Ki m th h th ng 7. L p k ho ch. Ki m th ñơn v 6. r t khó có th ñưa ra m t s n ph m t t M t phương pháp h u ích khi khách hàng không th ñ nh nghĩa các yêu c u m t cách rõ ràng (Wrong. 8. Correct. Ư c lư ng. tăng thêm Trang 23 . t ng quát trong quá trình xây d ng ph n m m. 2. Correct) Câu 8: Mô hình xo n c trong quá trình phát tri n ph n m m. Mô hình hoá.. 2. L p k ho ch. 4. 3. K t thúc v i m t s n ph m ñư c chuy n giao Ph c t p và l n x n hơn mô hình l p l i. ư c lư ng chi phí. Wrong. Wrong. ðánh giá yêu c u (1. L p trình. L p trình. Ki m tra l i Giao ti p. xác ñ nh yêu c u.

Wrong. nhưng không ñư c s d ng v i các s n ph m thương m i Là m t phương pháp tôt ñ t o ra ph n c t lõi c a s n ph m m t cách nhanh chóng (Wrong. Wrong. Wrong) Câu 9: Mô hình tăng vòng trong quá trình phát tri n ph n m m Là m t phương pháp thích h p khi các yêu c u ñã ñư c xác ñ nh rõ ràng Là phương pháp t t nh t ñư c s d ng khi d án có quá nhi u thành viên tham d Là m t mô hình mang tính cách m ng. Wrong. Correct) Trang 24 .Môn h c Công ngh ph n m m Ph i ñánh giá r i ro c a d án trong t ng bư c l p xo n c T t c các kh ng ñ nh trên (Wrong. Correct.

N u ta không xác ñ nh ñ y ñ . và ki m tra các d ch v và các ràng bu c c a h th ng ñư c g i là k thu t xác ñ nh yêu c u (Requirements Engineering RE). Ví d : Trong chương này.Yêu c u ch c năng có ph i là quan tr ng nh t không? .Có k năng ñ c t các lo i yêu c u khác nhau .1. Ngư i s d ng có th tìm ki m.N m ñư c c u trúc c a m t tài li u ñ c t yêu c u 3. Nó mô t các ch c năng ho c các d ch v c a h th ng m t cách chi ti t. H th ng thư vi n (LIBSYS) cung c p m t giao di n ñơn gi n ñ lưu CSDL v các bài báo trên các thư vi n khác nhau. rõ ràng các yêu c u ch c năng thì s x y ra chuy n gì? Yêu c u ch c năng mô t h th ng s làm gì. Chúng ta c n ph i vi t các yêu c u các m c chi ti t khác nhau vì có nhi u ngư i s d ng khác nhau s d ng chúng theo nh ng cách khác nhau.N m rõ các k thu t ñ c t yêu c u h th ng và bi t cách áp d ng nh ng k thu t này m t cách thích h p. ð c ñi m c a yêu c u ch c năng: Trang 25 . phân tích. download và in nh ng tài li u này.Phân lo i ñư c các yêu c u khác nhau và ñ c ñi m c a t ng lo i . trư c h t nó ph i ñ t ñư c yêu c u gì? . M c tiêu: .1 Yêu c u ch c năng ð tv nñ : . M c tiêu: . tư li u hoá.Tìm hi u v các yêu c u h th ng và ñ c ñi m c a chúng . 3. Tuy nhiên. chúng ta s s d ng m t ví d v h th ng thư vi n ñ xác ñ nh các lo i yêu c u.ð xây d ng m t h th ng có th dùng ñư c th c s .Phương pháp xác ñ nh các yêu c u h th ng .Môn h c Công ngh ph n m m Chương 3 Yêu c u h th ng Gi i thi u: Yêu c u h th ng là b n ñ c t các d ch v mà h th ng cung c p và các ràng bu c ñ xây d ng và v n hành h th ng.1 Yêu c u h th ng Gi i thi u: Các yêu c u c a h th ng ph n m m thư ng ñư c chia thành ba lo i: yêu c u ch c năng. trong th c t chúng ta r t khó phân bi t ba lo i yêu c u này m t cách rõ ràng. yêu c u phi ch c năng và yêu c u mi n ng d ng. Quá trình tìm ki m.

kh năng s d ng.2 Yêu c u phi ch c năng ð tv nñ : N u h th ng ch tho mãn nh ng yêu c u ch c năng thì ñã ñ chưa? Ví d h th ng không ti n d ng ñ i v i ngư i s d ng thì sao? Yêu c u phi ch c năng bao g m nh ng v n ñ gì? Yêu c u phi ch c năng không ñ c p tr c ti p t i các ch c năng c th c a h th ng. các công c CASE.H th ng s cung c p nh ng giao di n thích h p ñ ngư i s d ng ñ c tài li u. không rõ ràng c a các yêu c u: V n ñ này x y ra khi các yêu c u không ñư c xác ñ nh m t cách c n th n. yêu c u ph i ch a t t c các mô t chi ti t và không có s xung ñ t ho c ñ i ngư c gi a các yêu c u. Trang 26 .Các yêu c u ngoài: ñư c xác ñ nh t các tác nhân ngoài c a h th ng. . . trong th c t r t khó có th ñ t ñư c ñi u này. Nhưng n u nó không ñư c tho mãn thì h th ng s không s d ng ñư c. ngôn ng l p trình … Các yêu c u phi ch c năng có th là h n ch hơn nh ng yêu c u ch c năng. th i gian ñáp ng.Tính hoàn thi n và nh t quán: V nguyên t c.Các yêu c u v s n ph m xác ñ nh ng x c a s n ph m như: hi u năng. . Tuy nhiên. ràng bu c v ngân sách. Do ñó. Yêu c u phi ch c năng thư ng ñ nh nghĩa các thu c tính như: ñ tin c y. Các yêu c u phi ch c năng xu t hi n là do yêu c u c a ngư i s d ng.Các yêu c u v t ch c: các yêu c u này ñư c l y t nh ng chính sách và quy t c c a khách hàng ho c t ch c s d ng h th ng.1. các yêu c u v lưu tr …và các ràng bu c c a h th ng như: kh năng c a thi t b vào/ra. Xác ñ nh các yêu c u ch c năng c a LYBSYS . ñ tin c y … c a s n ph m . - 3. Ví d : các chu n ñư c s d ng. Các yêu c u m p m có th ñư c ngư i xây d ng và ngư i s d ng hi u theo nhi u cách khác nhau. giao di n … M t s yêu c u phi ch c năng còn có liên quan ñ n quy trình xây d ng h th ng. chúng ta có th phân lo i các yêu c u phi ch c năng như sau: . các chính sách c a t ch c s d ng h th ng.Môn h c Công ngh ph n m m Tính m p m .Ngư i s d ng có th tìm ki m t t c CSDL ho c m t t p con c a CSDL. yêu c u tương thích gi a ph n c ng và ph n m m và các tác nhân ngoài khác. .T t c nh ng hoá ñơn mà ngư i s d ng ñăng ký ñ in sao tài li u có m t mã duy nh t.

Trang 27 .Yêu c u v s n ph m: LIBSYS ph i ñư c cài ñ t b ng HTML mà không có frame ho c Java applets. Còn v i nh ng yêu c u phi ch c năng có th th m ñ nh ñư c là nh ng yêu c u có th ki m th m t cách khách quan.Yêu c u ngoài: H th ng không ñư c ñ l các thông tin cá nhân c a khách hàng. Sau khoá hu n luy n này. .Yêu c u v m t t ch c: Quy trình xây d ng h th ng và các tài li u chuy n giao ph i tho mãn các quy t c ñã ñư c ñ nh nghĩa trong XYZCo-SP-STAN95. M c tiêu r t h u ích ñ i v i ngư i phát tri n h th ng khi nó truy n t i ñư c nh ng mong mu n c a ngư i s d ng h th ng.Các yêu c u phi ch c năng có th th m ñ nh ñư c: Nh ng ngư i s d ng có kinh nghi m có th s d ng ñư c t t c các ch c năng c a h th ng ch sau hai ti ng t p hu n. . trong tài li u ñ c t yêu c u. .M c tiêu c a h th ng là d s d ng ñ i v i nh ng ngư i s d ng có kinh nghi m và ñư c t ch c ñ sao cho t i thi u hoá ñư c l i. trong nhi u trư ng h p thư ng x y ra xung ñ t gi a các yêu c u phi ch c năng ñ i v i nh ng h th ng ph c t p. chúng ta r t khó xác ñ nh chính xác và r t khó th m tra nh ng yêu c u phi ch c năng m p m . Tuy nhiên.Môn h c Công ngh ph n m m Xác ñ nh các yêu c u phi ch c năng c a LIBSYS . s l i chương trình gây ra b i ngư i s d ng là không quá hai l i m t ngày. Các m c tiêu và yêu c u phi ch c năng có th th m ñ nh ñư c c a LIBSYS . Do ñó. ngư i ta thư ng b sung các m c tiêu. Nói chung.

Vì v n ñ b n quy n nên m t s tài li u ph i xoá ngay khi v a chuy n ñ n.1.Quá m m d o: v i cùng m t v n ñ nhưng có nhi u cách khác nhau ñ ñ c t . n ý: Các chuyên gia có hi u bi t v lĩnh v c c a h nhưng h không bi t cách xây d ng nh ng yêu c u mi n ng d ng m t cách rõ ràng. .Ph thu c vào yêu c u c a ngư i s d ng. mang tính k thu t.3 Yêu c u mi n ng d ng ð tv nñ : . nh ng tài li u ñó có th ñư c in ngay trên server và chuy n ñ n cho ngư i s d ng ho c g i ñ n cho máy in m ng. N u yêu c u mi n ng d ng không ñư c tho mãn thì có th h th ng s không làm vi c ñư c. . chúng ta có th s d ng m t s phương pháp ñư c trình bày trong các ph n sau ñ ñ c t yêu c u. Nó có th là yêu c u ch c năng ho c phi ch c năng. yêu c u h th ng thư ng chi ti t hơn yêu c u c a ngư i s d ng nên ñ c t b ng ngôn ng t nhiên thư ng g p m t s v n ñ sau: .Kh năng có th hi u ñư c: các yêu c u ñư c bi u di n dư i ngôn ng c a lĩnh v c ng d ng. Tuy nhiên.50.Môn h c Công ngh ph n m m 3. 3. Do ñó. .Thi u kh năng mô-ñun hoá: c u trúc c a ngôn ng t nhiên không tương x ng v i c u trúc c a các yêu c u h th ng. ngôn ng t nhiên thư ng ñư c s d ng ñ vi t ñ c t yêu c u h th ng cũng như yêu c u c a ngư i s d ng. Trang 28 .Các yêu c u v lĩnh v c ng d ng c a h th ng thì thu c vào lo i nào trong hai lo i trên ñã trình bày? Yêu c u mi n ng d ng ñư c xác ñ nh t mi n ng d ng c a h th ng và ph n ánh các thu c tính và ràng bu c c a mi n ng d ng.Yêu c u ñ i v i ñ i phát tri n h th ng? . . Ngôn ng t nhiên có b n ch t là m p m nên ñ ñ t ñư c yêu c u trên là r t khó khăn. Sau ñây là m t s v n ñ liên quan ñ n yêu c u mi n ng d ng: . Vì nh ng lý do này mà ñ c t b ng ngôn ng t nhiên thư ng gây khó hi u.Không rõ ràng: Ngư i ñ c và ngư i vi t yêu c u ph i gi i thích các t theo cùng m t nghĩa.Giao di n ngư i dùng chu n cho t t c các CSDL ñ u d a trên chu n Z39. Yêu c u v mi n ng d ng c a LIBSYS .4 M t s k thu t ñ c t yêu c u h th ng Gi i thi u: Nói chung.1.

N u ta ñ c bi u ñ này t ñ u ñ n cu i thì ta s th y ñư c th t c a các hành ñ ng ñư c th c hi n. các ñi u ki n trư c và sau (n u thích h p).Yêu c u l n x n: các yêu c u ch c năng và phi ch c năng không rõ ràng.Không rõ ràng: Tính chính xác r t khó ñ t ñư c n u tài li u khó ñ c. . chúng ta s g p ph i m t s khó khăn khi s d ng ngôn ng t nhiên: . .Sau khi ñã xác ñ nh các yêu c u h th ng và yêu c u c a ngư i s d ng h th ng thì ti p t c làm gì? Trang 29 .2 Yêu c u c a ng i s d ng ð tv nñ : .1.ðánh d u nh ng ph n quan tr ng trong các yêu c u. mô t ñ u ra và nơi nó s ñ n. .1.B t bu c s d ng ngôn ng m t cách th ng nh t .4. 3.Yêu c u c a ngư i s d ng là ch c năng hay phi ch c năng hay c hai? Yêu c u c a ngư i s d ng nên mô t nh ng yêu c u ch c năng và phi ch c năng ñ ngư i s d ng có th hi u ñư c chúng mà không c n ph i có nh ng ki n th c v công ngh m t cách chi ti t. k thu t.1 ð c t d a bi u m u (Form-based) ð c t d a bi u m u ñ nh nghĩa các ch c năng ho c th c th .Tránh s d ng nh ng t ng mang tính chuyên môn. 3. ð c t d a bi u m u ch rõ nh ng th c th c n thi t. Do ñó. T t c các yêu c u ñ u ñư c vi t theo chu n và các thu t ng ñư c s d ng có th b h n ch .1. ñ vi t yêu c u c a ngư i s d ng ta nên áp d ng m t s quy t c sau: . các nh hư ng c a ch c năng. .ðưa ra m t ñ nh d ng chu n và áp d ng nó cho t t c các yêu c u. b ng ho c bi u ñ ñơn gi n.4. Tuy nhiên. Yêu c u c a ngư i s d ng ñư c ñ nh nghĩa b ng cách s d ng ngôn ng t nhiên.Môn h c Công ngh ph n m m ð c t b ng ngôn ng hư ng c u trúc S d ng ngôn ng hư ng c u trúc s yêu c u ngư i vi t ñ c t tuân theo nh ng m u ñư c ñ nh nghĩa trư c.Yêu c u c a ngư i s d ng có ñư c coi gi ng như yêu c u h th ng hay không? .3 Tài li u ñ c t yêu c u ð tv nñ : . 3.3 3. 3.2 Bi u ñ trình t Bi u ñ trình t bi u di n trình t các s ki n x y ra khi ngư i s d ng tương tác v i h th ng. Ưu ñi m c a phương pháp này là ñ t ñư c m c ñ di n t cao nh t c a ngôn ng t nhiên nhưng m c ñ ñ ng nh t l i b l m d ng trong các ñ c t . mô t ñ u vào và nơi xu t phát c a nó.L n l n gi a các yêu c u: các yêu c u khác nhau có th ñư c di n t cùng v i nhau.4.

1. Gi i thi u chung v s n ph m 2. Ch m c - 3. phi ch c năng. ch không ph i mô t rõ làm như th nào.5. h th ng yêu c u ngư i s d ng ñưa th thanh toán vào máy. Câu 3: Mô t h th ng bán vé tàu t ñ ng như sau: Ngư i s d ng ch n ñích ñ n và ñưa th thanh toán vào máy. ð c t yêu c u: bao g m các yêu c u ch c năng. Gi thi t và các ph thu c 3. Các tham chi u 1.3. t vi t t t 1. Tài li u ñ c t yêu c u d a theo chu n IEEE 1.2. Th s ñư c ki m tra và ngư i s d ng ph i nh p s PIN. Tài li u ñ c t yêu c u không ph i là tài li u thi t k h th ng. Khi ñích ñ n ñã ñư c l a ch n.Môn h c Công ngh ph n m m C u trúc c a m t tài li u ñ c t yêu c u h th ng ph i bao g m nh ng n i dung gì? Tài li u ñ c t yêu c u là nh ng yêu c u chính th c v nh ng gì c n ph i th c hi n b i ñ i phát tri n h th ng.1. Các ràng bu c 2. mi n ng d ng và giao di n. 1.3. Gi i thi u 1. Khi giao d ch liên quan ñ n th thanh toán k t thúc h p l thì vé s ñư c in ra.4. Phát hi n nh ng nh p nh ng trong ño n tài li u ñ c t yêu c u trên và s a chúng. ð c ñi m c a ngư i s d ng 2. B sung thêm các yêu c u phi ch c năng c a h th ng trên Trang 30 . Vé ñư c in ra và tài kho n c a ngư i s d ng b thay ñ i.4. M c ñích c a tài li u yêu c u 1. Tài li u ñ c t yêu c u nên bao g m c các ñ nh nghĩa v yêu c u c a ngư i s d ng và ñ c t yêu c u h th ng. Mô t chung 2. và ngư i s d ng ch n m t ñích ñ n trong s ñó.5. Ph m vi c a s n ph m 1. Các ch c năng c a s n ph m 2. 4.4 Bài t p Câu 1: Xác ñ nh yêu c u h th ng giúp tr l i nh ng câu h i nào? Câu 2: ðánh giá vi c s d ng ngôn ng t nhiên ñ ñ nh nghĩa các yêu c u h th ng và yêu c u c a ngư i s d ng.2. 2. Ph l c 5. menu s hi n th nh ng ñích ñ n có th . T ng quan v tài li u yêu c u 2. r i nh p s PIN.Khi ngư i s d ng nh n nút Start. Các ñ nh nghĩa. Nó ch thi t l p nh ng gì h th ng ph i làm.

..) Thông báo l i thích h p và có ch d n sai sót 3. V bi u ñ trình t mô t các hành ñ ng c a h th ng trên Trang 31 . d s d ng T c ñ x lý nhanh (ñ c bi t các ti n trình ki m tra th . in vé .Môn h c Công ngh ph n m m Giao di n thân thi n.

Môn h c Công ngh ph n m m Chương 4 Quy trình xác ñ nh yêu c u Gi i thi u: M c tiêu c a quy trình xác ñ nh yêu c u là ñưa ra các tài li u yêu c u c a h th ng. con ngư i và t ch c xây d ng yêu c u. ngư i ta thư ng s d ng mô hình xo n c ñ xác ñ nh các yêu c u. ñánh giá yêu c u và qu n lý yêu c u. nh ng quy trình này v n có chung m t s ho t ñ ng sau: phát hi n yêu c u. phân tích yêu c u. Quy trình xác ñ nh yêu c u bi n ñ i ph thu c vào mi n ng d ng. Trang 32 . th m chí ngay c khi ñang xây d ng h th ng. các yêu c u luôn luôn thay ñ i. Vì v y. Tuy nhiên. trong th c t . Tuy nhiên. Mô hình này cho phép vi c xác ñ nh yêu c u và cài ñ t h th ng ñư c th c hi n cùng lúc.

1 Phân tích kh thi M c tiêu: . Trang 33 . Phân tích kh thi thư ng t p trung vào: .Ki m tra xem li u h th ng có ñư c tích h p v i các h th ng khác ñang s d ng hay không.Xác ñ nh rõ vai trò c a phân tích kh thi .ð phân tích kh thi. K t qu c a vi c phân tích kh thi là m t báo cáo ñ quy t ñ nh có nên xây d ng h th ng ñ xu t hay không. quy trình xác ñ nh yêu c u thư ng b t ñ u b ng vi c phân tích kh thi. cách th c h th ng h tr các yêu c u nghi p v . . chúng ta ph i th c hi n nh ng công vi c gì .N m ñư c m t s g i ý khi phân tích kh thi ð i v i t t c các h th ng m i.Hi u rõ các pha trong quy trình xác ñ nh yêu c u 4.N m ñư c quy trình xác ñ nh yêu c u .Xác ñ nh h th ng có ñóng góp vào m c tiêu c a t ch c hay không . Thông tin ñ u vào ñ phân tích kh thi là các yêu c u nghi p v . mô t sơ b v h th ng.Ki m tra xem h th ng có th ñư c xây d ng b ng cách s d ng công ngh hi n t i và ngân sách cho phép.Môn h c Công ngh ph n m m M c tiêu: .

N u h th ng không ñư c cài ñ t thì sao? .Nh ng y u t t ch c và quy n l c có th nh hư ng t i các yêu c u h th ng.H th ng ñ xu t giúp ñ ñư c gì? .2 Phát hi n và phân tích yêu c u M c tiêu: .Nh ng stakeholder khác nhau có th có các yêu c u xung ñ t nhau . k sư b o trì ph n c ng và ph n m m. Nh ng stakeholder m i có th xu t hi n và môi trư ng nghi p v có th thay ñ i. .Stakeholder mô t các yêu c u theo thu t ng c a h . Trang 34 .Các yêu c u có th thay ñ i trong su t quá trình phân tích. trong h th ng ATM g m các Stakeholder sau: khách hàng c a ngân hàng. nhân viên ngân hàng.V n ñ x lý hi n t i như th nào? .Stakeholder không bi t nh ng gì mà h th t s mong mu n. chúng ta có m t khái ni m m i là stakeholder. các ràng bu c v n hành c a h th ng… ñây. . l a ch n thông tin và vi t báo cáo. qu n tr CSDL. ngư i qu n lý ngân h ng.V n ñ v tích h p là gì? .Các k thu t ñư c s d ng ñ phát hi n và phân tích yêu c u Trong pha phát hi n và phân tích yêu c u.Môn h c Công ngh ph n m m Th c hi n phân tích kh thi d a trên vi c ñánh giá thông tin. Do ñó. Nh ng câu h i thư ng ñư c ñ t ra ñ phân tích kh thi: . ngư i ñi u hành ngân hàng. k sư. các d ch v mà h th ng cung c p. chúng ta thư ng g p khó khăn vì nh ng nguyên nhân sau: . Stakeholder là nh ng ngư i tham d vào d án xây d ng h th ng: ngư i s d ng cu i.Nhi m v c a vi c phát hi n và phân tích yêu c u là gì? .Công ngh m i c n dùng là gì? C n có nh ng k năng gì? . . ngư i qu n lý. ñ i di n c a các ngân hàng khác. qu n lý b o m t.Hi u rõ mô hình xo n c trong quy trình phát hi n và phân tích yêu c u . nhân viên k thu t và khách hàng cùng h p tác ñ xác ñ nh mi n ng d ng. hi u năng c a h th ng. chuyên gia lĩnh v c. vi c phát hi n và tìm hi u yêu c u c a stakeholder. ngư i ta thư ng s d ng mô hình xo n c trong quy trình phát hi n và phân tích yêu c u. … Ví d . Tuy nhiên.Nh ng l i ích mà h th ng mang l i? 4. phòng marketing.

Ho t ñ ng này nh m ñánh th t ưu tiên c a các yêu c u.Khi trình bày các v n ñ v h th ng nên ph thu c vào ñ i tư ng trình bày. stakeholder.S p th t ưu tiên và ñi u ch nh các yêu c u xung ñ t: khi có nhi u stakeholder thì các yêu c u c a h càng có nhi u xung ñ t.1 Khung nhìn (Viewpoint) ð tv nñ : . Chúng ta giao ti p v i stakeholder thông qua ph ng v n ho c quan sát và có th s d ng k ch b n và m u th ñ giúp phát hi n yêu c u. Các yêu c u mi n ng d ng cũng ñư c phát hi n bư c này. Khung nhìn là cách xây d ng yêu c u ñ trình bày v i t ng stakeholder khác nhau.Tư li u hóa yêu c u: yêu c u ñư c tư li u hoá và là ñ u vào c a vòng k ti p trong mô hình xo n c. Ta có th phân lo i Stakeholder theo nhi u khung nhìn khác nhau.M i stakeholder liên quan ñ n d án có hi u bi t và nhu c u hi u bi t nh t ñ nh v d án.Phát hi n yêu c u: ti p xúc v i các stakeholder ñ phát hi n ra các yêu c u c a h .2. Phát hi n yêu c u là quy trình thu th p nh ng thông tin v h th ng ñư c ñ xu t và h th ng ñang t n t i ñ xác ñ nh các yêu c u h th ng và yêu c u c a ngư i s d ng. Ta có th l y thông tin này t các tư li u.Môn h c Công ngh ph n m m Trong quy trình này bao g m các ho t ñ ng sau: . Trang 35 .Phân lo i và s p x p yêu c u: nhóm các yêu c u có liên quan l n nhau và t ch c chúng thành nh ng nhóm g n k t v i nhau. 4. . . . và b n ñ c t c a nh ng h th ng tương t . phát hi n và gi i quy t xung ñ t gi a các yêu c u. Phân tích d a trên khung nhìn cho phép phát hi n nhi u khía c nh khác nhau c a m t v n ñ và giúp phát hi n ra s xung ñ t gi a các yêu c u. .

Ngư i cung c p và ngư i nh n các d ch v c a h th ng . khách hàng và CSDL tài kho n là nh ng khung nhìn tương tác .Môn h c Công ngh ph n m m Khung nhìn ñư c chia thành 3 lo i chính và m i lo i s cung c p các yêu c u khác nhau. Ta có th phát hi n khung nhìn d a trên: .Tài nguyên và các yêu c u phi ch c năng . . Trong h th ng ATM.Các h th ng tương tác tr c ti p v i h th ng c n xây d ng. Khung nhìn phân c p c a LIBSYS 4.2 Ph ng v n ð tv nñ : Làm th nào ñ có ñư c các yêu c u h th ng và yêu c u c a ngư i s d ng? T i sao ph ng v n ngư i dùng là m t phương pháp ph bi n? Khi ph ng v n chúng ta thư ng s g p nh ng v n ñ gì? T i sao k t qu ph ng v n l i khác nhau? Trang 36 . các chu n ñ giao ti p gi a nhi u ngân hàng là m t ví d .Các chu n và các quy t c .2.Marketing và các khung nhìn nghi p v khác. Trong h th ng ATM.Khung nhìn tương tác: là nh ng ngư i ho c h th ng khác tương tác v i h th ng. nhân viên qu n lý và b o m t là nh ng khung nhìn gián ti p. Trong h th ng ATM. . .Khung nhìn gián ti p: là nh ng stakeholder không s d ng h th ng tr c ti p nhưng có nh hư ng t i h th ng.Khung nhìn mi n ng d ng: là nh ng ñ c ñi m và ràng bu c c a mi n ng d ng. có nh hư ng t i các yêu c u.

Ph ng v n ñư c chia thành hai lo i: .UML cung c p các bi u ñ khác nhau ñ mô t k ch b n c a h th ng. M t t p h p các ca s d ng s mô t t t c các tương tác có th trong h th ng. s n sàng l ng nghe stakeholder và không nên có nh ng ý tư ng ñã ñư c ñ nh hình s n v các yêu c u.C i m .Mô t tr ng thái khi k ch b n hoàn thành 4. Trong quá trình ph ng v n. nh ng ngư i xác ñ nh yêu c u s ñ t ra các câu h i cho stakeholder v h th ng hi n t i h ñang s d ng và h th ng s ñư c xây d ng.4 Ca s d ng ð tv nñ : .Mô t lu ng s ki n thông thư ng . K ch b n là nh ng ví d th c t v cách s d ng h th ng. ngư i ph ng v n nên: .Khi nào thì c n ph i s d ng k ch b n? Chúng ta thư ng hi u m t v n ñ thông qua các ví d th c t d dàng hơn là thông qua nh ng mô t tr u tư ng v nó. chúng ta thư ng g p khó khăn vì không th hi u ñư c các thu t ng c a mi n ng d ng ho c các hi u bi t v mi n ng d ng quá quen thu c. chúng ta thư ng tr n l n ph ng v n ñóng và m .2. Trang 37 .Ví d minh ho thư ng d hi u hơn mô t tr u tư ng . ð ph ng v n thành công. Và các yêu c u s ñư c l y ra t nh ng câu tr l i c a stakeholder. không nên h i nh ng câu như “Anh mu n gì?” 4. Do ñó.3 K ch b n ð tv nñ : . M t ph ng v n t t có nghĩa là s thu th p ñư c t t c các hi u bi t v công vi c ph i làm c a stakehoder và cách h tương tác v i h th ng như th nào. .Thông tin v các hành ñ ng ñ ng th i khác .Môn h c Công ngh ph n m m Ph ng v n hình th c ho c phi hình th c là m t trong nh ng ph n quan tr ng nh t c a quy trình xác ñ nh yêu c u. chúng ta có th s d ng k ch b n ñ phát hi n ra các yêu c u h th ng.Mô t tr ng thái kh i ñ ng . khi ph ng v n nh ng v n ñ có liên quan t i mi n ng d ng ho c nghi p v c a ngư i s d ng.ðưa ra nh ng câu h i g i m . Chúng bao g m: .2.Mô t nh ng gì có th ñi t i l i . Ca s d ng là k ch b n ñư c xây d ng d a trên k thu t c a UML ñ xác ñ nh các tác nhân trong m t tương tác và mô t chính tương tác ñó. . Trong th c t . Tuy nhiên.Có th s d ng k t h p k ch b n và ph ng v n như th nào? .Ph ng v n ñóng: t p các câu h i ñã ñư c ñ nh nghĩa trư c và có nhi u ñáp án ñ stakeholder l a ch n tr l i.Ph ng v n m : t t c các v n ñ không ñư c xác ñ nh trư c và stakeholder ph i t gi i thích và phát bi u theo quan ñi m c a mình.

Hi n th c: các yêu c u có th ñư c cài ñ t v i m t ngân sách và công ngh cho trư c? .3 ðánh giá yêu c u M c tiêu: . chúng ta ph i ki m tra các yêu c u nh ng khía c nh sau: .Xem xét l i các yêu c u: phân tích các yêu c u m t cách h th ng.Nh t quán: có yêu c u nào xung ñ t nhau hay không? . Vì chi phí cho vi c gi i quy t các l i có liên quan t i yêu c u s r t cao cho nên vi c ñánh giá yêu c u là vô cùng quan tr ng.H p l : H th ng có cung c p các ch c năng mà h tr t t nh t cho các yêu c u c a ngư i s d ng hay không? .N m ñư c ph i ki m tra các yêu c u nh ng khía c nh nào .Môn h c Công ngh ph n m m Ngoài ra. chúng ta có th s d ng bi u ñ trình t ñ b sung các thông tin chi ti t cho ca s d ng b ng cách bi u di n trình t các s ki n ñư c x lý trong h th ng. Trang 38 .Xác th c: các yêu c u có th ñư c ki m tra hay không? Các k thu t ñánh giá yêu c u sau ñây có th ñư c s d ng ñơn l ho c h n h p: . Các ca s d ng trong LIBSYS 4.Hoàn thi n: t t c các yêu c u c a khách hàng ñã ñư c xác ñ nh ñ y ñ chưa? .Hi u rõ t m quan tr ng c a vi c ñánh giá các yêu c u .Hi u ñư c m t s k thu t ñư c s d ng ñ ñánh giá yêu c u ðánh giá yêu c u có liên quan ñ n vi c gi i thích các yêu c u ñã ñư c ñ nh nghĩa trong h th ng. Trong quá trình ñánh giá yêu c u.

Các yêu c u lâu dài là nh ng yêu c u n ñ nh k th a t nh ng hành ñ ng chính c a khách hàng.4 L p k ho ch qu n lý yêu c u M c tiêu: . o Tìm v t thi t k : là nh ng liên k t t yêu c u cho t i thi t k . nó ñ c p t i quan h gi a tài nguyên và b n thi t k h th ng. Quy trình l p k ho ch qu n lý yêu c u: .Môi trư ng nghi p v và môi trương k thu t c a h th ng cũng thay ñ i trong có trình xây d ng. CASE tool thư ng h tr nh ng ch c năng như: o Lưu tr yêu c u: các yêu c u ñư c qu n lý m t cách b o m t và ñư c lưu trong kho d li u. các khung nhìn khác nhau s có các yêu c u khác nhau và do ñó thư ng xu t hi n các mâu thu n.Các chính sách tìm v t: lư ng thông tin v m i quan h gi a các yêu c u c n ph i ñư c lưu gi . . c n ph i bi t th c hi n nh ng thao tác gì. Qu n lý yêu c u là quy trình qu n lý s thay ñ i c a các yêu c u trong quá trình phát hi n yêu c u và phát tri n h th ng. o Tìm v t ngu n: là nh ng liên k t t các yêu c u t i stakeholder ñưa ra nh ng yêu c u ñó. . o Qu n lý thay ñ i: quy trình qu n lý thay ñ i là quy trình lu ng công vi c mà các tr ng thái có th ñư c ñ nh nghĩa và lu ng thông tin gi a các tr ng thái là t ñ ng. Các pha chính c a ho t ñ ng này bao g m: Trang 39 .Qu n lý thay ñ i: xác ñ nh các ho t ñ ng ti p theo khi yêu c u thay ñ i.N m rõ quy trình qu n lý yêu c u .Môn h c Công ngh ph n m m - M u th : S d ng các mô hình h th ng ñ ki m tra các yêu c u T o ra các trư ng h p ki m th 4. Các yêu c u thay ñ i là nh ng yêu c u d b thay ñ i trong quá trình xây d ng ho c khi h th ng ñư c ñưa vào s d ng.Th t ưu tiên t các khung nhìn khác nhau cung thay ñ i trong su t quá trình phát tri n h th ng.Khi yêu c u thay ñ i. Và nó có th k th a t nhi u mô hình mi n ng d ng khác. o Tìm v t yêu c u: là m i liên h gi a các yêu c u ñ c l p nhau. Thông thư ng.Nh ng yêu c u m i xu t hi n trong quy trình khi các yêu c u nghi p v thay ñ i và khi chúng ta có hi u bi t sâu hơn v h th ng s xây d ng. Chúng ta nên áp d ng t t c các kh năng thay ñ i có th cho t t c các yêu c u.H tr CASE tool: s d ng các công c ñ h tr qu n lý yêu c u thay ñ i. Các yêu c u thư ng không ñ y ñ và không ñ ng nh t.Xác ñ nh yêu c u: cách xác ñ nh t ng yêu c u . . ðó là do m t s nguyên nhân sau: . o Qu n lý v t t ñ ng tìm ki m m i liên k t gi a các yêu c u. .

Câu 3: Vi c phân tích kh thi cho th y xây d ng h th ng s g p khó khăn và có th không th c hi n ñư c. Câu 4: Hãy xây d ng m t quy trình ñ qu n lý yêu c u m t cách d dàng và h p lý. Cài ñ t thay ñ i: ði u ch nh tài li u c a các yêu c u và nh ng tài li u khác ñ ph n ánh s thay ñ i ñó. 4. Hãy ñ xu t gi i pháp khi g p ph i trình tr ng này. Trang 40 .5 Bài t p Câu 1: Xác ñ nh nh ng stakeholder có th có c a h th ng Qu n lý sinh viên Câu 2: D a trên hi u bi t c a mình v h th ng ATM. Phân tích thay ñ i và chi phí: ðánh giá nh hư ng c a s thay ñ i trên các yêu c u khác. hãy xây d ng khung nhìn phân c p c a h th ng ñó.Môn h c Công ngh ph n m m - Phân tích v n ñ và ñ c t thay ñ i: th o lu n v các v n ñ yêu c u và nh ng thay ñ i có th x y ra.

Mô hình hoá h th ng giúp cho ngư i phân tích hi u rõ các ch c năng c a h th ng. ði u này s giúp gi m chi phí và th i gian phân tích. chúng ta s tìm hi u v m t s mô hình hoá h th ng.Khi xem xét m t v n ñ .Có kh năng l a ch n và ng d ng các mô hình h th ng vào t ng trư ng h p c th 5.1 Mô hình ng c nh ð tv nñ : . chúng ta nên xác ñ nh ph m vi h th ng.Môn h c Công ngh ph n m m Chương 5 Các mô hình h th ng Gi i thi u: Các yêu c u c a ngư i s d ng thư ng ñư c vi t b ng ngôn ng t nhiên ñ nh ng ngư i không có ki n th c v m t k thu t có th hi u ñư c nó. Trong quá trình phát hi n và phân tích yêu c u. Tuy nhiên.Hi u ñư c mô hình hoá h th ng là gì? Và t i sao ph i mô hình hoá h th ng. Thông thư ng.Phân bi t ñư c các mô hình h th ng. Trong chương này. t c là phân bi t cái gì là h th ng và cái gì là môi trư ng c a h th ng. ho t ñ ng ti p theo c a quy trình phân tích là ñ nh nghĩa ng c nh c a h th ng và s ph thu c gi a h th ng v i môi trư ng c a nó.Mô hình ng c nh cho th y nh ng thành ph n c t lõi c a h th ng. Khi ñã xác ñ nh ph m vi c a h th ng. nh ng yêu c u h th ng chi ti t ph i ñư c mô hình hoá. . Ví d : mô hình ng c nh c a h th ng ATM Trang 41 . . . mô hình ki n trúc ñơn gi n c a h th ng s ñư c t o ra trong bư c này. bao gi chúng ta cũng mu n có cái nhìn t ng th v v n ñ ñó. M c tiêu: . Ta có th s d ng các mô hình khác nhau ñ bi u di n h th ng t nhi u khía c nh khác nhau.

5. Mô hình lu ng d li u có th ñư c s d ng ñ bi u di n các ti n trình và lu ng thông tin ñi t ti n trình này t i ti n trình khác. Có hai ki u mô hình ng x là: .1 Mô hình lu ng d li u Mô hình lu ng d li u ñư c s d ng ñ mô hình hoá quy trình x lý d li u c a h th ng. 5. Vi c tìm v t và tư li u hoá quan h gi a d li u v i m t quy trình r t có ích ñ i v i vi c tìm hi u toàn b h th ng.2 Mô hình ng x Gi i thi u: Mô hình ng x ñư c s d ng ñ mô t toàn b ng x c a h th ng.Mô hình lu ng d li u: bi u di n cách x lý d li u trong h th ng và . ngư i ta thư ng s d ng thêm mô hình ti n trình ho c mô hình lu ng d liêuh ñ b tr cho nó. Mô hình ti n trình bi u di n t t c các ti n trình ñư c h th ng h tr . Mô hình lu ng d li u mô hình hoá h th ng t góc ñ m t ch c năng. Mô hình này s bi u di n các bư c mà lu ng d li u ph i tr i qua trong h th ng t ñi m ñ u t i ñi m cu i. nhưng c hai ñ u c n thi t ñ mô t ng x c a h th ng. Vì v y.Mô hình máy tr ng thái: bi u di n cách ñáp ng c a h th ng v i các s ki n x y ra. nhưng không ch ra quan h gi a các h th ng khác nhau trong m t môi trư ng. Mô hình lu ng d li u là ph n c t lõi c a r t nhi u phương pháp phân tích.Môn h c Công ngh ph n m m Mô hình ki n trúc mô t môi trư ng c a h th ng. Hai mô hình này bi u di n nh ng góc nhìn khác nhau. Nó ch a các ký pháp r t d hi u ñ i v i khách hàng. Ví d : Mô hình lu ng d li u c a ch c năng x lý ñơn hàng Trang 42 .2.

Ví d mô hình d li u c a LIBSYS Trang 43 .2 Mô hình máy tr ng thái Mô hình máy tr ng thái mô t ñáp ng c a h th ng v i các s ki n bên trong và bên ngoài c a nó. Khi có m t s ki n x y ra. quan h gi a các th c th và thu c tính c a các th c th .2.3 Mô hình d li u Gi i thi u: Mô hình d li u ñư c s d ng ñ mô t c u trúc logic c a d li u ñư c x lý b i h th ng.Môn h c Công ngh ph n m m 5. Bi u ñ tr ng thái là m t bi u ñ trong UML và ñư c s d ng ñ bi u di n mô hình máy tr ng thái. Bi u ñ tr ng thái cho phép phân tích m t mô hình thành nhi u mô hình con và mô t ng n g n v các hành ñ ng c n th c hi n t i m i tr ng thái. Mô hình máy tr ng thái bi u di n các tr ng thái c a h th ng là các nút và s ki n là các cung n i gi a các nút ñó. h th ng s d ch chuy n t tr ng thái này sang tr ng thái khác. Mô hình này ñư c s d ng trong thi t k CSDL và thư ng ñư c cài ñ t trong các CSDL quan h . Thông thư ng. Ta có th v các b ng ñ mô t m i quan h gi a tr ng thái và tác nhân kích ho t. chúng ta hay s d ng mô hình th c th quan h thu c tính (ERA) thi t l p các th c th c a h th ng. Mô hình máy tr ng thái bi u di n các tr ng thái c a h th ng và các s ki n gây ra s d ch chuy n tr ng thái. 5.

Môn h c Công ngh ph n m m Tuy nhiên. chúng ta có th s d ng t ñi n d li u làm công c b tr . Cho nên. Mô hình ñ i tư ng ñã gi i quy t ñư c v n ñ này b ng cách k t h p ng x và d li u thành ñ i tư ng. Ví d : t ñi n d li u c a LIBSYS 5. ðó có th là các th c th . mô hình d li u thư ng không chi ti t. lưu tr ki n th c m t cách có t ch c k t n i pha phân tích. quan h và các thu c tính … Ưu ñi m c a t ñi n d li u là: h tr qu n lý tên và tránh trùng l p tên. thi t k và cài ñ t. Trang 44 . T ñi n d li u là danh sách t t c các tên g i ñư c s d ng trong các mô hình h th ng.4 Mô hình ñ i t ng Gi i thi u: S d ng mô hình ng x hay mô hình d li u thư ng r t khó mô t các v n ñ có liên quan ñ n th gi i th c.

Nó mô t h th ng d a theo thu t ng các l p ñ i tư ng và các quan h c a nó. ta nên lo i b gi a các nhánh khác nhau. chúng ta s tìm hi u t ng lo i mô hình này. N u ta càng có nhi u th c th tr u tư ng thì vi c mô hình hoá càng khó khăn. Các l p nó có th b s trùng l p Mô hình th a k t ch c các l p ñ i tư ng theo m t c u trúc phân c ñ nh c a c u trúc phân c p ph n ánh nh ng ñ c trưng chung c a t t c các ñ i tư ng th a k nh ng thu c tính và phương th c c a các l p cha c a nó sung nh ng ñ c ñi m c a riêng nó. Các mô hình ñ i tư ng bao g m: mô hình th a k . Các l p ñ i tư ng thư ng ph n nh các th c th liên quan t i mi n ng d ng c a h th ng.4. Mô hình ñ i tư ng ph n ánh các th c th trong th gi i th c ñư c v n d ng trong h th ng.1 Mô hình th a k p. Phát hi n các l p ñ i tư ng là m t quy trình r t khó khăn khi tìm hi u sâu v lĩnh v c c a ng d ng. mô hình k t h p và mô hình ng x . Thi t k l p phân c p là m t quy trình khá ph c t p. Trong ph n ti p theo. M t l p ñ i tư ng là s tr u tư ng hoá trên m t t p các ñ i tư ng có thu c tính và phương th c chung. Các l p l p.Môn h c Công ngh ph n m m Mô hình ñ i tư ng ñư c s d ng ñ bi u di n c d li u và quy trình x lý c a h th ng. Ví d : c u trúc phân c p c a l p Library trong LIBSYS Ví d : c u trúc phân c p c a l p User trong LIBSYS Trang 45 . 5.

Môn h c Công ngh ph n m m

C u trúc ña th a k : l p ñ i tư ng có th th a k t m t ho c nhi u l p cha. Tuy nhiên, ñi u này có th d n t i s xung ñ t v ng nghĩa khi các thu c tính/phương th c trùng tên các l p cha khác nhau có ng nghĩa khác nhau. Ví d : l p Talking book th a k t hai l p Book và Voice recording.

5.4.2

Mô hình k t h p

Mô hình k t h p bi u di n cách c u t o c a m t l p t các l p khác. Mô hình k t h p tương t như quan h h p thành (part-of). Ví d : Mô hình k t h p ð i tư ng ô tô ñư c t o thành t nhi u ñ i tư ng khác như: c a, bánh xe ... Trang 46

Môn h c Công ngh ph n m m

5.4.3

Mô hình

ng x

Mô hình ng x mô t tương tác gi a các ñ i tư ng nh m t o ra m t s ng x c th c a h th ng mà ñã ñư c xác ñ nh như là m t ca s d ng. Bi u ñ trình t ho c bi u ñ c ng tác trong UML ñư c s d ng ñ mô hình hoá tương tác gi a các ñ i tư ng. Ví d Mô t ca s d ng Rút ti n c a h th ng ATM.

Trang 47

Môn h c Công ngh ph n m m

5.5 Phơng pháp h ng c u trúc
Gi i thi u: Ngày nay, phương pháp hư ng c u trúc r t ít khi ñư c s d ng do không còn phù h p v i các h th ng l n. Tuy nhiên, trong giáo trình này, chúng tôi v n trình bày ph n này ñ h c viên có cái nhìn mang tính t ng quan v v n ñ này. Các phương pháp hư ng c u trúc ñ u cung c p framework ñ mô hình hoá h th ng m t cách chi ti t. Chúng thư ng có m t t p h p các mô hình ñã ñư c ñ nh nghĩa trư c, quy trình ñ ñưa ra các mô hình ñó và các quy t c, hư ng d n có th áp d ng cho các mô hình. Trang 48

Wrong.T o ra quá nhi u tài li u .6 Bài t p Câu 1: Ch n ñ nh nghĩa ñúng v bi u ñ ng c nh. Sau ñây là m t s CASE tool thư ng ñư c s d ng: .B d ch . Wrong) Câu 2: Nh ng bi u ñ UML nào sau ñây ñư c s d ng ñ mô hình hoá h th ng? Bi u ñ ca s d ng Bi u ñ trình t Bi u ñ tr ng thái T t c các bi u ñ trên (Wrong.Công c ñ nh nghĩa form . các phương pháp hư ng c u trúc thư ng có m t s như c ñi m sau: .Môn h c Công ngh ph n m m Tuy nhiên. CASE workbenches là t p h p các công c ñư c thi t k ñ h tr các quy trình xây d ng h th ng ph n m m như phân tích. Wrong. CASE tools h tr mô hình hoá h th ng là m t công c quan tr ng c a phương pháp hư ng c u trúc.T ñi n d li u . Wrong.Không mô hình hoá ñư c các yêu c u h th ng phi ch c năng . Câu 5: V máy tr ng thái c a máy gi t có nhi u ch ñ gi t Trang 49 .Công c t o mã l nh t ñ ng 5.Mô hình hoá h th ng quá chi ti t và khó hi u ñ i v i ngư i s d ng.Công c t o và ñ nh nghĩa báo cáo .Không ch a nh ng thông tin ñ xác ñ nh li u m t phương th c có thích h p v i m t v n ñ ñưa ra hay không. Wrong) Câu 3: V bi u ñ ng c nh c a h th ng qu n lý sinh viên. Wrong. thi t k và ki m th .Ngôn ng truy v n .Công c phân tích mô hình và ki m tra .So n th o bi u ñ . Câu 4: V bi u ñ lu ng d li u c a ch c năng rút ti n c a h th ng ATM. . ðư c t o ra ñ thi t l p ph m vi c a h th ng v i môi trư ng bên ngoài Mô t cách tương tác gi a tác nhân ngoài và h th ng ðư c s d ng ñ mô t c u trúc tĩnh c a toàn b h th ng Mô t quan h gi a các ñ i tư ng (Correct.

Khách hàng có th g i ti n ho c rút ti n t tài kho n c a mình. M i l n rút ho c g i ti n ñư c g i là m t phiên giao d ch. T i b t kỳ th i ñi m nào khách hàng cũng có th yêu c u ki m tra các giao d ch ñã th c hi n. Hình c a Câu 7: Bi u ñ l p Chi ti t Câu 8: H th ng qu n lý trư ng ñ i h c như sau: M i trư ng ñ u có m t ho c nhi u trư ng ñ i h c con. Hãy hoàn thành bi u ñ l p sau. Phiên giao d ch luôn có giá tr và ngày tháng. M i khoa có cán b gi ng d y (b t Trang 50 . M i trư ng này l i có nhi u khoa.Môn h c Công ngh ph n m m Câu 6: V bi u ñ trình t mô t tương tác khi giáo viên nh p ñi m theo môn cho t ng l p. M i tài kho n có m t s dư. Câu 7: H th ng ngân hàng tr c tuy n cho phép khách hàng qu n lý tài kho n c a mình.

ngư i s d ng ph i k t n i v i h th ng. cán b ph tá ho c cán b hành chính. Sau ñó. Câu 9: Gi s b n ñang ph i xác ñ nh yêu c u cho h th ng bán hàng tr c tuy n. cung c p các thông tin liên quan ñ n th tín d ng ñ thanh toán. Trang 51 . Hãy xây d ng k ch b n cho trư ng h p trên. ð ñ t hàng. Hãy v bi u ñ l p ñ mô t các l p và quan h gi a chúng. M t môn h c có th ñư c m t ho c nhi u khoa gi ng d y. Sinh viên ph i ñăng ký t ng môn h c. Các môn h c ph i ñư c trư ng ñ i h c ch p nh n. tìm ki m các m t hàng c n mua và l a ch n ra m t ho c nhi u m t hàng c n mua. (Không c n ph i li t kê thu c tính và phương th c).Môn h c Công ngh ph n m m bu c ph i thu c v khoa).

.Gi i thi u m t s mô hình ki n trúc tham chi u 6. tương tác v i nhau ra sao.Th y ñư c m i quan h gi a các phương pháp t ch c h th ng và các phương pháp phân rã h th ng. Nó bao g m có vi c phát hi n các thành ph n chính c a h th ng và giao ti p gi a chúng.Các phương pháp t ch c h th ng .Các phương pháp phân rã h th ng con thành các mô-ñun. . .B o m t: s d ng ki n trúc phân l p v i nhi u ki m soát ch t ch các l p sâu hơn. K t qu c a quy trình thi t k này là b n ñ c t v ki n trúc ph n m m. framework h tr ñi u khi n tương tác gi a các h th ng con như th nào … M c tiêu: .Các chi n lư c ñi u khi n h th ng . . Trang 52 .Công vi c ñ u tiên c a giai ño n thi t k h th ng là gì? T i sao? Quy trình thi t k nh m xác ñ nh các h th ng con c u t o lên h th ng ñ xu t và framework giúp ñi u khi n các h th ng con và giao ti p gi a chúng ñư c g i là quy trình thi t k ki n trúc.Giao ti p gi a các stakeholder: ki n trúc h th ng thư ng ñư c s d ng làm tâm ñi m c a các bu i th o lu n gi a các stakeholder. xem xét m t s mô hình ki n trúc h th ng thư ng ñư c s d ng.1 Thi t k ki n trúc là gì? ð tv nñ : .Phân tích h th ng: t c là phân tích ñ xác ñ nh li u h th ng có tho mãn các yêu c u phi ch c năng c a nó hay không. . chúng ta chuy n sang pha thi t k và cài ñ t h th ng.Hi u năng: h n ch các thao tác ph c t p và t i thi u hoá giao ti p. . Thi t k ki n trúc là pha s m nh t trong quy trình thi t k h th ng. Thi t k ki n trúc thư ng ñư c th c hi n song song v i m t s hành ñ ng ñ c t . . ð ng th i.Tái s d ng v i quy mô l n: ki n trúc có th ñư c tái s d ng trong nhi u h th ng. Các ñ c ñi m c a ki n trúc h th ng: . Thi t k ki n trúc h th ng là giai ño n s m nh t trong quy trình thi t k h th ng.Có kh năng b o trì.Môn h c Công ngh ph n m m Chương 6 Thi t k ki n trúc Gi i thi u: Sau khi xác ñ nh và phân tích yêu c u h th ng.S n dùng.An toàn.Thi t k ki n trúc là gì và ñ c ñi m c a chúng. . bao g m nh ng h th ng con nào. . N u chúng ta có ñư c b n thi t k ki n trúc rõ ràng thì ta s th y ñư c các ưu ñi m c a nó trong nh ng ho t ñ ng sau: . Thi t k ki n trúc cung c p cho chúng ta b n ñ c t v ki n trúc h th ng.

Mô hình c u trúc tĩnh: mô t các thành ph n h th ng chính. Tuy nhiên.N m ñư c ba phương pháp xây d ng mô hình t ch c h th ng . Có 3 phương pháp t ch c h th ng thư ng ñư c s d ng: .Môn h c Công ngh ph n m m Tuy nhiên.Mô hình quan h : bi u di n quan h gi a các h th ng con. các dây chuy n s n xu t ph n m m ñư c xây d ng quanh ki n trúc n n t ng cùng v i các bi n ñ i tuỳ thu c vào yêu c u c a khách hàng.H th ng s ñư c phân rã thành nh ng mô-ñun nào? . cũng c n ph i chú ý r ng các h th ng có cùng mi n ng d ng có th có các ki n trúc chung ñ ph n ánh nh ng khái ni m liên quan ñ n mi n ng d ng ñó.Ki n trúc s ñư c tư li u hoá như th nào? Hơn n a.H n ch các thu c tính có liên quan ñ n tính an toàn có nghĩa là n u có nhi u giao ti p thì s làm gi m hi u năng.Ki n trúc ng d ng chung có ñư c s d ng l i hay không? . chúng ta s tìm hi u chi ti t ba phương pháp t ch c h th ng này.Mô hình quy trình ñ ng: bi u di n quy trình c u trúc c a h th ng. Trong quá trình thi t k ki n trúc h th ng.Cách ñánh giá thi t k ki n trúc . các quy trình thi t k ñ u d a trên nh ng quy t ñ nh sau: . Sau ñây là các mô hình ki n trúc cơ b n: .Nh ng phong cách ki n trúc nào là thích h p? . .Kho d li u dùng chung . 6.S d ng nhi u thành ph n l n s tăng hi u năng nhưng gi m kh năng b o trì. . .Tìm hi u chi ti t t ng phương pháp và ñánh giá ưu/như c ñi m c a chúng . Do ñó.N u d li u b dư th a thì s c i thi n tính s n dùng nhưng làm cho vi c b o m t khó khăn hơn.H th ng s ñư c phân tán như th nào? .Chi n lư c ñi u khi n nào s ñư c s d ng? .Phân l p ho c máy tr u tư ng các ph n ti p theo. kh năng tái s d ng l i ki n trúc h th ng là r t cao. trong quá trình thi t k ki n trúc có th x y ra các xung ñ t v m t ki n trúc như sau: . ho t ñ ng ñ u tiên ph i th c hi n là xây d ng mô hình t ch c h th ng. Thi t k ki n trúc là m t quy trình sáng t o cho nên s phác bi t c a quy trình này ph thu c vào t ng lo i h th ng ñư c xây d ng.Mô hình phân tán: bi u di n cách cài ñ t các h th ng con trên máy tính. M c tiêu: . . ð ng th i.Có kh năng v n d ng trên h th ng c th Trang 53 .Server và các d ch v dùng chung (client-server) .2 T ch c h th ng Gi i thi u: T ch c h th ng ph n ánh chi n lư c cơ b n ñư c s d ng ñ c u trúc h th ng.Mô hình giao di n: ñ nh nghĩa t p h p các giao di n c a h th ng con . .

Ưu ñi m c a mô hình này là: .… vì ñã có b qu n lý trung tâm th c hi n nhi m v này. . Client ph i bi t tên c a server và các d ch v mà server cung c p. Trang 54 .2.T t c các h th ng con ph i ch p nh n mô hình kho d li u. N u s lư ng d li u dùng chung r t l n thì mô hình kho d li u dùng chung thư ng ñư c s d ng ph bi n nh t.D dàng b sung ho c nâng c p server Như c ñi m c a mô hình client server là: . Vi c trao ñ i d li u ñư c th c hi n theo hai cách: . Nhưng server thì không c n xác ñ nh rõ client và hi n t i có bao nhiêu client.Khó phân tán m t cách hi u qu . Tuy nhiên.Môn h c Công ngh ph n m m 6.T p h p các client truy nh p ñ n server ñ yêu c u cung c p d ch v .Qu n lý m i server không th ng nh t. 6.2. qu n lý d li u… .H th ng m ng cho phép client truy c p t i d ch v mà server cung c p. Ưu ñi m c a mô hình client server là: .M i h th ng con b o trì CSDL c a chính nó và truy n d li u m t cách tư ng minh cho các h th ng con khác.Vi c c i ti n d li u r t ph c t p và t n kém .Phân tán d li u rõ ràng . Các thành ph n chính c a mô hình này bao g m: .1 Kho d li u dùng chung Các h th ng con ph i trao ñ i d li u và làm vi c v i nhau m t cách hi u qu . . . b o m t.D li u chia s ñư c lưu CSDL trung tâm ho c kho d li u và ñư c t t c các h th ng con truy nh p. vi c trao ñ i d li u có th không hi u qu .Không ph i là mô hình d li u dùng chung nên các h th ng con có th s d ng các t ch c d li u khác nhau.S d ng các h th ng ñư c k t n i m ng m t cách hi u qu và chi phí dành cho ph n c ng có th r hơn.T p h p các server s cung c p nh ng d ch v c th như: in n. dư th a. Do ñó. Client t o ra m t yêu c u t i server và ch server tr l i. vi c s d ng kho d li u dùng chung cũng có m t s như c ñi m sau: .Các h th ng con không c n quan tâm t i nh ng ho t ñ ng liên quan ñ n d li u như: sao lưu. . .2 Mô hình client – server Mô hình ki n trúc client-server là m t mô hình h th ng trong ñó h th ng bao g m m t t p h p các server cung c p d ch v và các client truy nh p và s d ng các d ch v ñó.ðây là phương pháp hi u qu ñ chia s s lư ng l n d li u. .Không có gi i h n cho các chính sách qu n lý c th .

2.3 Mô hình phân l p Mô hình phân l p t ch c h th ng thành nhi u l p và m i l p cung c p m t t p các d ch v . ði u này làm cho vi c tìm ki m server ho c các d ch v r t khó khăn. M i l p có th ñư c coi như m t máy tr u tư ng (abstract machine) mà ngôn ng c a máy ñư c ñ nh nghĩa b i các d ch v mà l p ñó cung c p. Do ñó. mô hình này thư ng ñư c s d ng ñ mô hình hoá giao di n (interface) c a h th ng con. 6.Môn h c Công ngh ph n m m - Không ñăng ký tên và d ch v t p trung. 6. Mô hình phân l p h tr phát tri n các h th ng con theo ki u tăng vòng nhi u l p khác nhau. Khi giao di n c a m t l p thay ñ i thì ch nh ng l p li n k nó m i b nh hư ng.3 Phân rã h th ng Gi i thi u: Trang 55 .

Pipeline hư ng ch c năng ho c lu ng d li u: h th ng ñư c phân rã thành các mô-ñun ch c năng ch u trách nhi m chuy n ñ i thông tin ñ u vào thành k t qu ñ u ra.Phân bi t ñư c hai khái ni m: h th ng con và mô-ñun . 6. Ưu ñi m c a mô hình hư ng ñ i tư ng: . ta c n ph i xác ñ nh phương pháp phân rã các h th ng con thành các mô-ñun. Phân rã hư ng ñ i tư ng liên quan t i vi c xác ñ nh l p ñ i tư ng. nhưng nó thư ng không ñư c coi như là m t h th ng riêng r .3.ð i tư ng ñư c g n k t l ng nên khi thay ñ i cách cài ñ t chúng có th không nh hư ng t i các ñ i tư ng khác. ñ c l p. . Ví d : các ñ i tư ng trong h th ng x lý hoá ñơn Trang 56 . có th s d ng m t s d ch v ñư c cung c p b i các h th ng con khác ho c cung c p d ch v cho các h th ng con khác s d ng.Môn h c Công ngh ph n m m Sau khi c u trúc h th ng ñã ñư c l a ch n. khi giao di n c a ñ i tư ng thay ñ i có th gây ra nh ng v n ñ h t s c khó khăn và r t khó bi u di n các th c th ph c t p trong th gi i th c như là các ñ i tư ng. Khi cài ñ t l p.Phân rã hư ng ñ i tư ng: h th ng ñư c phân rã thành các ñ i tư ng tương tác v i nhau. . các thu c tính và phương th c c a nó. . Tuy nhiên. Mô-ñun là m t thành ph n h th ng cung c p các d ch v cho các thành ph n khác.N m ñư c hai phương pháp phân rã h th ng và ñánh giá ưu/như c ñi m c a t ng phương pháp.Các ngôn ng l p trình hư ng ñ i tư ng ñư c s d ng r ng rãi. M c tiêu: .1 Phân rã hư ng ñ i tư ng Mô hình ki n trúc hư ng ñ i tư ng c u trúc h th ng thành m t t p h p các ñ i tư ng g n k t l ng d a trên các giao di n ñã ñư c ñ nh nghĩa.ð i tư ng ph n ánh th c th trong th gi i th c. các ñ i tư ng s ñư c t o ra t các l p này và có m t s mô hình ñi u khi n ñư c s d ng ñ k t h p các phương th c c a ñ i tư ng. H th ng con là m t h th ng có th v n hành m t cách ñ c l p. Có hai cách ñ phân rã các h th ng con thành các mô-ñun: .

các d ch v c a chúng ph i ñư c th c hi n ñúng ch và ñúng th i ñi m.H tr tái s d ng quy trình chuy n ñ i . Tuy nhiên. D li u ñư c x lý trong quy trình có th là riêng l ho c theo lô.3. Ưu ñi m c a mô hình: . Có 2 lo i chi n lư c ñi u khi n: .2 Pipeline hư ng ch c năng Mô hình pipeline hư ng ch c năng ho c mô hình lu ng d li u là quy trình chuy n ñ i thông tin ñ u vào thành k t qu ñ u ra. cho nên.ði u khi n t p trung: m t h th ng con ch u trách nhi m ki m soát. . Vi c chuy n ñ i thông tin ñ u vào thành k t qu ñ u ra có th ñư c th c hi n tu n t ho c song song.D dàng th c hi n.Môn h c Công ngh ph n m m 6.4 Các chi n l c ñi u khi n Gi i thi u: Các mô hình c u trúc h th ng có liên quan t i cách phân rã h th ng thành nhi u h th ng con. kh i t o ho c d ng các h th ng con khác. ð h th ng làm vi c t t. k c v i h th ng tu n t ho c song song. Ví d : Mô hình lu ng d li u c a h th ng x lý hoá ñơn 6.Cung c p tài li u ñ giao ti p v i stakeholder . Trang 57 . ta ph i ñi u khi n ñư c các h th ng con. mô hình này yêu c u ph i có ñ nh d ng d li u chung ñ truy n qua các pipeline và r t khó h tr cho các tương tác hư ng s ki n.D dàng b sung thêm quy trình chuy n ñ i m i.

ho c c ng tác v i các quy trình h th ng khác. p chi n lư c ñi u khi n h th ng? n h th ng và ñánh giá chúng.2 Mô hình qu n lý Thư ng áp d ng cho các h th ng song song.4. 6.1 ði u khi n t p trung H th ng con ñi u khi n ch u trách nhi m qu n lý vi c th c hi n c a các h th ng con khác.1. ng ng. th t c ñi u khi n n m ñ nh c a c u trúc phân c p và di chuy n d n xu ng dư i.4. Trang 58 .1 6. M t thành ph n h th ng ñi u khi n vi c kh i t o. Chi n lư c ñi u khi n t p trung g m 2 lo i mô hình: Mô hình g i tr l i (call-return) G m các th t c con ñư c s p x p phân c p.4. Mô hình này thư ng ñư c áp d ng cho các h th ng tu n t .1.Gi i thích ñư c t i sao ph i thi t l . 6.Môn h c Công ngh ph n m m ði u khi n hư ng s ki n: m i h h th ng con khác ho c t môi trư M c tiêu: .N m ñư c các chi n lư c ñi u khi - th ng ñáp ng v i các s ki n x y ra t các ng c a h th ng.

Nh ng quy tăc ñi u khi n không ñư c g n v i s ki n và b b t s ki n. Các h th ng con ph i ñăng ký nh ng s ki n mà nó có th b t. Mô hình này có hi u qu ñ i v i vi c tích h p các h th ng con trên nhi u máy tính khác nhau trong cùng m t m ng.4. Trang 59 6. Mô hình hư ng ng t (Interrupt-driven) Mô hình hư ng ng t ñư c s d ng trong các h th ng th i gian th c trong ñó các ng t ñư c phát hi n b i b b t ng t (interrupt handler) và ñư c truy n cho m t s các thành ph n khác ñ x lý. Khi nh ng s ki n này x y ra.Môn h c Công ngh ph n m m 6.2. Nhưng nó không c n ph i bi t khi nào s ki n s ñư c b t. ñi u khi n s ñư c truy n cho h th ng con có th b t ñư c s ki n ñó. B t kỳ h th ng nào n u có th b t ñư c s ki n này thì s x lý nó.2 6. s ki n ñư c lan truy n t i t t c các h th ng con.2. Các h th ng ph i quy t ñ nh s ki n nào là s ki n mà nó ñã ñăng ký.4.2 .1 ði u khi n hư ng s ki n Mô hình lan truy n (Broadcast) Trong mô hình lan truy n.4.

Nó ñóng vai trò là m t mô hình chu n ñ ñánh giá các h th ng khác. Có 2 lo i mô hình ki n trúc cho m t mi n ng d ng c th : . Do ñó.Mô hình chung: là s tr u tư ng hoá t m t s các h th ng th c và bao hàm các thu c tính quan tr ng c a các h th ng này. khi xây d ng m t h th ng m i.Mô hình tham chi u: là mô hình tr u tư ng hoá và lý tư ng.6 Bài t p Câu 1: V n ñ nào sau ñây liên quan ñ n pha thi t k ? Ki n trúc Trang 60 . M i ki u ng t ñư c g n v i m t v trí nh và m t b chuy n m ch ñ ñưa ng t t i b b t tương ng c a nó. 6. ta có th s d ng l i ki n trúc c a h th ng tương t ñã t n t i. nhưng l p trình khá ph c t p và khó ñánh giá. Mô hình này cho phép ñáp ng r t nhanh. 6. Các mô hình tham chi u thư ng k th a t nh ng nghiên c u v mi n ng d ng hơn là t các h th ng ñang t n t i. . Mô hình tham chi u là mô hình top-down. Mô hình tham chi u ñư c s d ng như m t ph n cơ b n ñ cài ñ t h th ng ho c ñ so sánh v i các h th ng khác.Môn h c Công ngh ph n m m Các ki u ng t và b b t tương ng ñư c ñ nh nghĩa trư c.5 Các ki n trúc tham chi u Gi i thi u: M c dù các h th ng có cùng m t mi n ng d ng có khác nhau v chi ti t nhưng ki n trúc chung c a nó khá gi ng nhau. Mô hình chung là mô hình bottom-up.

Wrong. Wrong. Wrong. in ra b ng lương và chuy n thông tin vào tài kho n ngân hàng. x lý theo lô. H th ng thanh toán lương. B ñi u khi n c a tivi có th nh n tín hi u t m t ñơn v ñi u khi n t xa 2. có th ñư c truy n t i ngư i s d ng m t cách ñ ng th i. Wrong. Correct) Câu 2: ð c ñi m nào sau ñây ñư c s d ng ñ ñánh giá m t b n thi t k t t? Mô t ñư c s g n k t gi a các mô-ñun Th hi n t t c các yêu c u trong pha phân tích Ch a c các trư ng h p ki m th c a t t c các thành ph n Cung c p m t mô t hoàn thi n v ph n m m b và d (Wrong. Wrong. văn b n . H th ng bán vé tàu ho t ñ ng 2. H th ng h i ngh tr c tuy n. Câu 6: Hãy ñ xu t m t mô hình ñi u khi n thích h p cho các h th ng sau: 1. d (Wrong.. L y thông tin v th i gian làm vi c. cho phép các d ng d li u như âm thanh. hình nh.Môn h c Công ngh ph n m m D li u Ph m vi d án Giao diên a. Wrong. h s lương. Correct) Câu 3: Gi i thích t i sao c n ph i thi t k ki n trúc trư c khi vi t ñ c t ? Câu 4: Gi i thích t i sao xung ñ t l i x y ra khi thi t k ki n trúc yêu c u ph i ñ m b o tính s n dùng và tính b o m t? Câu 5: Hãy ñ xu t m t mô hình c u trúc thích h p và thi t k ki n trúc cho các h th ng dư i ñây 1.. Trang 61 . b.

Ngư i s d ng h th ng thư ng ñánh giá h th ng thông qua giao di n hơn là ch c năng c a nó. nh ng thông báo không thích h p có th làm tăng áp l c lên ngư i s d ng và do ñó. d án c a chúng ta s th t b i. Trong chương này. Giao di n c a h th ng nghèo nàn có th khi n ngư i s d ng t o ra các l i h t s c nghiêm tr ng. . khó s d ng thì r t có th h s không s d ng c h th ng.1. cái mà h có th ñánh giá ñư c và c m nh n ñư c chính là giao di n tương tác gi a h th ng và ngư i s d ng. Nh ng ngư i thi t k không nên ch thi t k giao di n phù h p v i nh ng kh năng c a chính h . ñó là: ngư i s d ng không quan tâm ñ n c u trúc bên trong c a h th ng.Phân lo i các kh năng tương tác gi a ngư i và máy ñ thi t k giao di n cho phù h p .Bi t cách bi u di n thông tin cho phù h p v i ngư i s d ng 7. . Và như v y. N u ta bi u di n nhi u hơn 7 lo i.M t s nguyên t c khi thi t k giao di n ngư i dùng . kinh nghi m và s trông ñ i c a ngư i s d ng nó. cho dù h th ng ñó có ñáp ng t t c các ch c năng nghi p v mà h mu n.Quy trình xây d ng giao di n ngư i dùng 7.Môn h c Công ngh ph n m m Chương 7 Thi t k giao di n ngư i dùng Gi i thi u: Chúng ta ph i luôn nh m t nguyên t c quan tr ng khi xây d ng m t h th ng ph n m m. M c tiêu: .Kh năng nh t c th i c a con ngư i b h n ch : con ngư i ch có th nh ngay kho ng 7 lo i thông tin. chúng ta s nghiên c u nh ng v n ñ sau: .Ngư i s d ng là khác nhau: con ngư i có nh ng kh năng khác nhau. càng x y ra nhi u l i hơn. nên chúng ta có c m t chương ñ nói v chúng. ñơn gi n hay ph c t p.1 Giao di n ng i dùng Gi i thi u: Giao di n ngư i dùng c n ph i ñư c thi t k sao cho phù h p v i k năng. Do ñó. thì có th khi n ngư i s d ng không nh h t và gây ra các l i. N u ngư i s d ng c m th y giao di n không thích h p.Ngư i s d ng có th gây ra l i: khi ngư i s d ng gây ra l i khi n h th ng s ho t ñ ng sai.N m ñư c s nh hư ng c a ngư i s d ng t i giao di n .Các y u t liên quan ñ n giao di n ngư i dùng . Trang 62 . chúng ta ph i tìm hi u m t s ñ c ñi m c a ngư i s d ng có liên quan ñ n giao di n h th ng: .1 Tác nhân con ngư i trong thi t k giao di n M t nhân t quan tr ng nh hư ng t i quá trình thi t k giao di n ñó chính là ngư i s d ng h th ng. Vì t m quan tr ng c a giao di n ngư i dùng. ðó là lý do t i sao nhi u h th ng ph n m m không bao gi ñư c s d ng.

Hư ng d n ngư i s d ng: như h th ng tr giúp. kinh nghi m và kh năng c a ngư i s d ng h th ng. c p gi y … mà không nên s d ng nh ng khái ni m như thư m c. h i l i nh ng hành ñ ng như xoá.Thông tin ñ ng: thay ñ i trong c phiên s d ng và s thay ñ i này ph i ñư c ngư i s d ng quan sát. Thông tin có th ñư c bi u di n m t cách tr c ti p ho c có th ñư c chuy n thành nhi u d ng hi n th khác như: d ng ñ ho .ði n vào bi u m u (Form) .2 Các nguyên t c thi t k giao diên Thi t k giao di n ph i ph thu c vào yêu c u. Không ph i t t c các nguyên t c thi t k giao di n ñ u có th ñư c áp d ng cho t t c các giao di n.Ngôn ng t nhiên 7. Các nhân t nh hư ng t i vi c hi n th thông tin: .Kh năng ph c h i: h th ng nên cung c p m t s kh năng ph c h i t l i c a ngư i s d ng và cho phép ngư i s d ng khôi ph c l i t ch b l i. âm thanh … 7. . Ví d : h th ng văn phòng nên s d ng các khái ni m như thư.V n hành tr c ti p .Th ng nh t: h th ng nên hi n th m c th ng nh t thích h p.Ngôn ng ra l nh . Ngư i thi t k cũng nên quan tâm ñ n nh ng gi i h n v t lý và tinh th n c a con ngư i và nên nh n ra r ng con ngư i luôn có th gây ra l i.Môn h c Công ngh ph n m m - Ngư i s d ng thích các lo i tương tác khác nhau: m t s ngư i thích hình nh. tài li u.3 Bi u di n thông tin Bi u di n thông tin có liên quan t i vi c hi n th các thông tin trong h th ng t i ngư i s d ng. Tương tác gi a ngư i s d ng và h th ng ñư c chia thành 5 lo i sau: . văn b n. hu … .S quen thu c c a ngư i s d ng: giao di n ph i ñư c xây d ng d a trên các thu t ng và các khái ni m mà ngư i s d ng có th hi u ñư c hơn là nh ng khái ni m liên quan ñ n máy tính.T i thi u hoá s b t ng : n u m t yêu c u ñư c x lý theo cách ñã bi t trư c thì ngư i s d ng có th d ñoán các thao tác c a nh ng yêu c u tương tư. âm thanh … Thông tin c n bi u di n ñư c chia thành hai lo i: .1. Sau ñây là các nguyên t c thi t k giao di n: . danh m c … . Nó không thay ñ i trong su t phiên ñó và có th là d ng s ho c d ng văn b n. . Ví d : nên hi n th phông ch l n v i nh ng ngư i c n th .L a ch n menu . Ví d : các câu l nh và menu nên có cùng ñ nh d ng … .Ngư i s d ng thích hi n th m t ph n thông tin hay quan h d li u? Trang 63 .Thông tin tĩnh: ñư c kh i t o ñ u c a m i phiên.Tính ña d ng: h tr nhi u lo i tương tác cho nhi u lo i ngư i s dung khác nhau. hư ng d n tr c tuy n … . Kh năng này bao g m cho phép làm l i.1.

r t có th x y ra l i và h th ng ph i thông báo cho ngư i s d ng bi t l i gì ñã x y ra ho c ñã có chuy n gì x y ra v i h th ng. Tuy nhiên.2 Quy trình thi t k giao di n ng i dùng Gi i thi u: Thi t k giao di n ngư i dùng là m t quy trình l p l i bao g m s c ng tác gi a ngư i s d ng và ngư i thi t k . Do ñó.C n th n khi s d ng các c p màu.Gi i h n s lư ng màu ñư c s d ng và không nên l m d ng vi c s d ng màu.Môn h c Công ngh ph n m m Giá tr c a thông tin thay ñ i nhanh như th nào? S thay ñ i ñó có c n ph i th hi n ngay l p t c hay không? . khi s d ng màu ñ thi t k giao di n có th gây ph n tác d ng. thông báo l i nên ng n g n. Cho bi t các tiêu chu n ñánh giá m t giao di n t t? - 7. 2. Màu có th ñư c s d ng ñ ñánh d u nh ng s ki n ngo i l . Ví d : thông tin v th i ti t ñư c hi n th dư i d ng bi u ñ .Phân tích ngư i s d ng: tìm hi u nh ng gì ngư i s d ng s làm v i h th ng. N u thông báo l i nghèo nàn có th làm cho ngư i s d ng t ch i hơn là ch p nh n h th ng. thi t k thông báo l i vô cùng quan tr ng. . . Vì v y.Thông tin d ng văn b n hay d ng s ? Các giá tr quan h có quan tr ng không? . Khi ngư i s d ng tương tác v i h th ng. Vi c thi t k thông báo l i nên d a vào k năng và kinh nghi m c a ngư i s d ng. y tá quên tên b nh nhân. Màu b sung thêm m t chi u n a cho giao di n và giúp cho ngư i s d ng hi u ñư c nh ng c u trúc thông tin ph c t p. Thi t k giao di n th ng báo l i. Chúng ta thư ng s d ng màu trong khi thi t k giao di n. Tr c quan hoá có th phát hi n ra m i quan h gi a các th c th và các xu hư ng trong d li u. tr ng thái c a m ng ñi n tho i nên ñư c hi n th b i các nút có liên k t v i nhau. Trong khi nh p. chúng ta nên quan tâm t i m t s hư ng d n sau: . 1. . y tá ph i nh p h sơ b nh nhân.Bi u di n digital hay analogue? N u chúng ta c n hi n th s lư ng l n thông tin thì nên tr c quan hoá d li u.Thay ñ i màu khi thay ñ i tr ng thái c a h th ng .Có ph i là giao di n v n hành tr c ti p không? . Ví d : Giao di n thông báo l i Trong h th ng qu n lý b nh vi n.S d ng màu ñ h tr cho nh ng nhi m v mà ngư i s d ng ñang c g ng th c hi n. . th ng nh t và có c u trúc.S d ng màu m t cách th ng nh t và c n th n.Ngư i s d ng có ph i th c hi n các hành ñ ng ñ ñáp ng v i s thay ñ i không? .L p m u th h th ng: xây d ng m t t p các m u th ñ th nghi m Trang 64 . Do ñó. Trong quy trình này g m 3 ho t ñ ng cơ b n: . xúc tích.

Phân tích ngư i s d ng ph i ñư c mô t theo nh ng thu t ng ñ ngư i s d ng và nh ng ngư i thi t k khác có th hi u ñư c.Phân tích nhi m v phân c p.Môn h c Công ngh ph n m m - ðánh giá giao di n: th nghi m các m u th cùng v i ngư i s d ng.1 Phân tích ngư i s d ng N u ta không hi u rõ nh ng gì ngư i s d ng mu n làm v i h th ng. Các ng c nh mà ta mô t thao tác trong ñó là m t trong nh ng cách mô t phân tích ngư i dùng. nhưng không ph i t t c các thông tin ñó là có th ñư c s d ng. Khi ph ng v n.Hi u ñư c quy trình thi t k giao di n ngư i dùng . Các k thu t phân tích: .Phân tích nhi m v : mô hình hoá các bư c c n th c hi n ñ hoàn thành m t nhi m v . Sau ñó. Nên nh r ng có nhi u nhi m v c a ngư i s d ng thu c v Trang 65 . chúng ta có th th c hi n ph ng v n v i c nhóm ngư i s d ng. Do ñó. . chúng ta có r t nhi u cách ñ th c hi n.N m ñư c chi ti t t ng ho t ñ ng trong quy trình thi t k giao di n ngư i dùng . M c tiêu: . thì ta s không th thi t k ñư c m t giao di n hi u qu . ph i có kh năng l a ch n phương pháp nào là thích h p nh t cho t ng hoàn c nh c th .Mô t : quan sát ngư i s d ng làm vi c và h i h v nh ng cách mà không ñư c bi t t i.V i m i ho t ñ ng.2. ñi u ñó cho phép ngư i s d ng th o lu n v i nhau v nh ng gì h làm. . . chúng ta nên d a trên nh ng câu h i có k t thúc m . ngư i s d ng cung c p nh ng thông tin mà h nghĩ r ng nó là c n thi t.Ph ng v n và tr c nghi m: h i ngư i s d ng v nh ng gì mà h làm. Ngoài ra. Ta có th l y ñư c r t nhi u yêu c u c a ngư i s d ng t ñó. 7.

7.M u th d a Internet: s d ng web browser và script. 7. dành cho nh ng khách hàng là ngư i khuy t t t. 7.2. . Câu 3: Cho bi t nh ng ưu ñi m c a vi c hi n th thông tin m t cách tr c quan. D a trên k thu t này ta có th hi u thêm v các nh hư ng xã h i và t ch c tác ñ ng t i công vi c ñó. Câu 4: Nêu nh ng chú ý khi s d ng màu ñ thi t k giao di n Trang 66 . s li u.Tr c nghi m l i các ph n h i c a ngư i s d ng .2.L p các m u th trên gi y. . . L y ví d ñ minh ho cho tính vư t tr i c a vi c hi n th thông tin tr c quan so v i các thông tin th ng k như văn b n.3 Bài t p Câu 1: Nêu m t s trư ng h p không th cung c p giao di n ngư i dùng m t cách nh t quán Câu 2: Hãy ñ xu t m t vài giao di n ngư i dùng thích h p cho h th ng bán sách tr c tuy n.M u th hư ng nguyên m u: s d ng công c như Macromedia Director ñ xây d ng m t t p h p các nguyên m u và màn hình. L p m u th là m t quy trình g m 2 tr ng thái: . Khi ngư i s d ng tương tác v i chúng thì màn hình s thay ñ i ñ hi n th tr ng thái k ti p. .Ghi l i quá trình s d ng m u th c a h th ng và ñánh giá nó. .L a ch n nh ng thông tin v vi c s d ng d dàng và các l i c a ngư i s d ng.L p trình tr c quan: s d ng các ngôn ng ñư c thi t k cho vi c phát tri n nhanh như Visual Basic.Tinh ch nh m u th và xây d ng chúng Các k thu t l p m u th : . N u không có nh ng kinh nghi m tr c ti p như v y thì không th ñánh giá ñư c kh năng có th s d ng ñư c c a giao di n. Các k thu t ñánh giá ñơn gi n: .Môn h c Công ngh ph n m m tr c giác và r t khó ñ mô t và gi i thích chúng. vi c ñánh giá trên ph m vi r ng t n nhi u chi phí và không th th c hi n ñư c ñ i v i h u h t các h th ng. Tuy nhiên.2 L p m u th giao di n ngư i dùng M u th cho phép ngư i s d ng có ñư c nh ng kinh nghi m tr c ti p v i giao di n.3 ðánh giá giao di n ngư i dùng Ta nên ñánh giá b n thi t k giao di n ngư i dùng ñ xác ñ nh kh năng phù h p c a nó.Cung c p mã l nh trong ph n m m ñ thu th p nh ng ph n h i c a ngư i s d ng m t cách tr c tuy n.

Trang 67 .Môn h c Công ngh ph n m m Câu 5: Vi t k ch b n tương tác c a h th ng d ch v ñ t mua vé trư c và th c hi n thanh toán b ng th tín d ng.

Cho nên h có quy n ñòi h i ph i s h u m t h th ng hoàn h o.Các l i ph n m m c n ph i s a ch a . .Hi u năng ho c ñ tin c y c a h th ng ph i ñư c c i thi n. v n ñ quan tr ng là chúng ta ph i th c hi n và qu n lý các thay ñ i ñ i v i h th ng ph n m m ñã t n t i.Máy tính và các thi t b m i ñư c b sung vào h th ng .Các t ch c thư ng ñ u tư m t lư ng v n khá l n vào các h th ng ph n m m c a h .N m ñư c các v n ñ liên quan ñ n b o trì: phân lo i.1 B o trì ph n m m M c tiêu: .Tìm hi u v tái k ngh và phân bi t forward-engineering và 8. Ngư i ta thư ng s d ng mô hình xo n c ñ c i ti n h th ng ph n m m.Môi trư ng nghi p v thay ñ i .Hi u ñư c vai trò c a vi c b o trì ph n m m .Nh ng yêu c u m i s xu t hi n khi s d ng ph n m m . phương pháp. .ð b o trì giá tr s h u c a t ch c.Hi u ñư c m t s quy trình và các chi n lư c c i ti n ph n m m . chi phí b o trì … .Ngân sách ph n m m chính trong các công ty l n thư ng dùng cho vi c c i ti n các h th ng ñã t n t i hơn là phát tri n m t h th ng m i.Môn h c Công ngh ph n m m Chương 8 C i ti n ph n m m Gi i thi u: Thay ñ i ph n m m là m t ñi u không th tránh kh i vì nh ng lí do sau: . Tuy nhiên.B o trì ph n m m là làm gì? Trang 68 . Và chúng ta ph i th y ñư c t m quan tr ng c a vi c c i ti n ph n m m: . M c tiêu: . h ph i thay ñ i và c i ti n h th ng.

Chi phí b o trì b nh hư ng b i c tác nhân k thu t và phi k thu t. Khi h th ng ñư c cài ñ t trong m t môi trư ng nh t ñ nh nó s làm thay ñ i môi trư ng ñó và vì v y s thay ñ i các yêu c u c a h th ng. Chi phí b o trì thư ng l n hơn chi phí xây d ng g p t 2 ñ n 100 l n ph thu c vào t ng ng d ng. B o trì là không th tránh kh i vì: . B o trì thư ng không bao g m nh ng thay ñ i chính liên quan t i ki n trúc c a h th ng. nh m gi m chi phí khi áp d ng trong th c t . Nh ng thay ñ i trong h th ng thư ng ñư c cài ñ t b ng cách ñi u ch nh nh ng thành ph n ñang t n t i và b sung nh ng thành ph n m i cho h th ng. s càng làm thay ñ i c u trúc ph n m m và do ñó s làm cho vi c b o trì càng tr lên khó khăn hơn.B o trì ñ b sung ho c ch nh s a các yêu c u ch c năng c a h th ng: ch nh s a h th ng sao cho tho mãn các yêu c u m i. B o trì ph n m m chính là ho t ñ ng ch nh s a chương trình sau khi nó ñã ñư c ñưa vào s d ng. . N u b o trì càng nhi u. Ph n m m có tu i th càng cao thì càng ph i c n chi phí cao hơn (vì s d ng các ngôn và chương trình d ch cũ …) - Các nhân t nh hư ng ñ n chi phí b o trì: Trang 69 .B o trì s a l i: thay ñ i h th ng ñ s a l i nh ng khi m khuy t nh m tho mãn yêu c u h th ng. Phân lo i các ki u b o trì: . h th ng ñư c chuy n giao có th không tho mãn các yêu c u c a nó.B o trì tích h p h th ng vào m t môi trư ng v n hành khác .Các h th ng ph i ñư c b o trì n u chúng mu n là nh ng ph n h u ích trong môi trư ng nghi p v .Các yêu c u h th ng thư ng thay ñ i khi h th ng ñang ñư c xây d ng vì môi trư ng thay ñ i. Vì v y.Các h th ng có g n k t ch t ch v i môi trư ng c a nó. . .Môn h c Công ngh ph n m m T i sao ph i b o trì? Phân bi t rõ các ki u b o trì ph n m m N m ñư c các y u t nh hư ng t i chi phí b o trì.

S thay ñ i yêu c u h th ng có liên quan ch t ch t i s thay ñ i c a môi trư ng.1 D ñoán b o trì ng có thành th ng thu c D ñoán b o trì có liên quan t i vi c ñánh giá nh ng ph n nào c a h th th gây ra l i và c n nhi u chi phí ñ b o trì.Các quy trình nghi p v c a h th ng. . Ngoài ra.Môn h c Công ngh ph n m m - - S n ñ nh c a ñ i d án: chi phí b o trì s gi m n u nhân viên trong ñ i d án không thay ñ i. Chi phí b o trì ph thu c vào s lư ng các thay ñ i và chi phí thay ñ i ph vào kh năng b o trì.2 Các quy trình c i ti n ph n m m M c tiêu: N m ñư c m t s quy trình c i ti n ph n m m cơ b n Bi t ñư c các chi n lư c c i ti n h th ng Có kh năng áp d ng các quy trình c i ti n này trên nh ng h th ng th c.S lư ng và ñ ph c t p c a các giao di n h th ng . 8. các nhân t nh hư ng t i m i quan h này bao g m: .S lư ng các yêu c u b t n ñ nh có tính phân c p . Trong ñó. Trang 70 . . Nh ng trách nhi m ñã cam k t: ngư i xây d ng h th ng có th không cam k t trách nhi m b o trì cho nên không có gì ñ b t bu c h ph i thi t k l i cho các thay ñ i trong tương lai.ð ph c t p c a c u trúc ñi u khi n . phương th c và mô-ñun.Th i gian trung bình ñ cài ñ t m t yêu c u thay ñ i.1. Kh năng ch u ñư c s thay ñ i ph thu c vào kh năng b o trì c a các ph n b nh hư ng b i s thay ñ i ñó.2 D ñoán thay ñ i D ñoán s lư ng các thay ñ i có th x y ra và tìm hi u m i quan h gi a h th ng và môi trư ng c a nó.S lư ng các yêu c u c n b o trì s a l i. Tu i th và c u trúc chương trình: khi tu i th và c u trúc chương trình b xu ng c p thì chúng càng tr lên khó hi u và thay ñ i nhi u. Ta có th d ñoán b o trì thông qua vi c ñánh giá ñ ph c t p c a các thành ph n h th ng. 8.ð ph c t p c a c u trúc d li u .S lư ng các yêu c u c n gi i quy t. K năng c a nhân viên: nhân viên b o trì thư ng không có kinh nghi m và hi u bi t v mi n ng d ng c a h b h n ch . 8. ta có th s d ng các phép ño quy trình ñ ñánh giá kh năng b o trì.1.Th i gian trung bình c n thi t ñ phân tích nh hư ng .Kích thư c c a ñ i tư ng. . Th c hi n các thay ñ i có th làm h ng h và gi m kh năng b o trì c a nó. ð ph c t p ph thu c vào: .

Các ñ xu t thay ñ i là ñ nh hư ng ñ c i ti n h th ng.N u có m t l i h th ng nghiêm tr ng x y ra và c n ph i s a ch a. Tuy nhiên.Ki u ph n m m c n b o trì . ta có th cài ñ t chúng nay mà không c n ph i tr i qua t t c các pha c a quy trình công ngh ph n m m. v i các yêu c u thay ñ i kh n c p.Môn h c Công ngh ph n m m Các quy trình c i ti n ph n m m ph thu c vào: . Phát hi n thay ñ i và c i ti n ñư c th c hi n trong vòng ñ i h th ng. Trên ñây là nh ng quy trình cơ b n. Nh ng yêu c u thay ñ i kh n c p thư ng x y ra khi: .Quy trình phát tri n ph n m m ñã ñư c s d ng .K năng và kinh nghi m c a các stakeholder. Trang 71 . Các hình v sau ñây th hi n m t cách khái quát các quy trình c i ti n h th ng.

Quy trình nghi p v : quy trình nghi p v ñã h tr cho các m c tiêu nghi p v như th nào? .Tách h th ng và ch nh s a các quy trình nghi p v . .Kh năng ng d ng: ch t lư ng c a ng d ng? ð ño h th ng.S lư ng các yêu c u thay ñ i c a h th ng .Ngư i s d ng cu i . Ph ng v n các stakeholder khác nhau và ñ i sánh k t qu thu ñư c.Môi trư ng h th ng: môi trư ng h th ng có hi u qu như th nào và chi phí ñ b o trì nó. N u s thay ñ i v m t nghi p v yêu c u ph i có ñáp ng nhanh. ð c i ti n h th ng hi n có.Ngư i qu n lý cao c p ðánh giá ch t lư ng h th ng thông qua: . Vi c ñánh giá giá tr nghi p v ñư c th c hi n t nhi u khung nhìn khác nhau.Thay th h th ng b ng m t h th ng m i Vi c l a ch n chi n lư c c i ti n h th ng ph thu c vào ch t lư ng h th ng và giá tr nghi p v c a nó. ngư i ta ñã ñ xu t b n chi n lư c cơ b n: .Ngư i qu n lý dây chuy n s n xu t .Bi n ñ i h th ng b ng cách tái k ngh ñ nâng c p kh năng b o trì c a nó.Khách hàng c a doanh nghi p .Ch t lư ng th p và giá tr nghi p v cao: nh ng h th ng này có giá tr nghi p v cao nhưng chi phí b o trì khá l n.Môn h c Công ngh ph n m m - N u nh ng thay ñ i v môi trư ng c a h th ng gây ra nh ng hi u ng không mong ñ i.Ch t lư ng th p và giá tr nghi p v th p: nh ng h th ng này n n ñư c tách ra.Ch t lư ng cao và giá tr nghi p v cao: ti p t c s d ng và b o trì h th ng theo cách thông thư ng. Các lo i h th ng hi n có ñư c phân lo i d a trên tiêu chí ch t lư ng và giá tr nghi p v mà nó mang l i như sau: .Ti p t c b o trì h th ng . Các stakeholder thư ng là: .Ch t lư ng cao và giá tr nghi p v th p: thay th b ng các thành ph n COTS . . chúng ta có th thu th p d li u ñ nh lư ng ñ t o ra b n ñánh giá v ch t lư ng c a h th ng.S lư ng các giao di n ngư i dùng khác nhau Trang 72 . .Ngư i qu n lý công ngh thông tin . . Ta nên tái k ngh ho c thay th b i m t h th ng thích h p .

.Mô-ñun hoá chương trình: t ch c l i c u trúc chương trình . Mô hình sau ñây giúp phân bi t forward và re-engineering: Quy trình tái k ngh bao g m các ho t ñ ng sau: . . 8.Tái k ngh d li u: thu d n và c u trúc l i d li u h th ng Các nhân t nh hư ng t i chi phí tái k ngh : .Quy trình tái k ngh h th ng .Môn h c Công ngh ph n m m - S lư ng d li u ñư c s d ng trong h th ng.C i thi n c u trúc chương trình . Tái ký ngh giúp gi m r i ro vì trong quá trình xây d ng ph n m m m i r i ro có th x y ra là khá cao và giúp gi m chi phí.K ngh ngư c: phân tích chương trình ñ tìm hi u nó.D ch mã ngu n: chuy n mã l nh thành ngôn ng m i.Ch t lư ng c a h th ng ñư c tái k ngh Trang 73 .Phân bi t forward-engineering và re-engineering Tái k ngh h th ng là k thu t c u trúc l i ho c vi t l i m t ph n ho c toàn b h th ng ñư c th a k mà không thay ñ i các ch c năng c a nó.N m rõ tái k ngh h th ng là gì? Ưu và như c ñi m c a nó.3 Tái k ngh h th ng (System re-engineering) M c tiêu: . .

T i sao chúng ta thư ng khó phân bi t các ki u b o trì này? Câu 3: Cho bi t nh ng y u t chính nh hư ng t i chi phí c a vi c tái k ngh ph n m m? Câu 4: ð tái k ngh ph n m m thành công. c n ph i có nh ng y u t nào? Trang 74 . Câu 2: Trình bày ba ki u b o trì ph n m m.Môn h c Công ngh ph n m m - Các công c h tr tái k ngh M c m r ng c n thi t c a vi c chuy n ñ i d li u Nh ng nhân viên có k năng v tái k ngh h th ng 8.4 Bài t p Câu 1: Gi i thích t i sao h th ng ph n m m thư ng nhanh chóng tr lên l i th i và nhanh h t tác d ng khi ñưa vào s d ng trong th c t .

Ki m th h p l : ñ ch ng minh cho ngư i xây d ng và khách hàng th ñư c ph n m m ñã tho mãn yêu c u hay chưa. Trang 75 y y n c . các phương pháp ñư c s d ng.Tìm hi u chi ti t v ki m th thành ph n và ki m th h th ng. . Vi c ki m th d a trên tài li u ñ c t h th ng.Ki m th h th ng: ki m th m t t p các thành ph n ñư c tích h p v i nhau ñ t o ra h th ng ho c h th ng con.T i sao ph i ki m th ? . Ki m th giúp cho ngư i xây d ng h th ng và khách hàng ñ u th y ñư c r ng h th ng m i ñã tho mãn yêu c u ñ ra hay chưa.Có kh năng thi t k các trư ng h p ki m th và s d ng các công c giúp t ñ ng ki m th 9. Vi c ki m th ñư c k th a t kinh nghi m c a ngư i xây d ng nó.Môn h c Công ngh ph n m m Chương 9 Ki m th ph n m m Gi i thi u: Ki m th là m t pha không th thi u ñư c trong quá trình phát tri n h th ng. .Sau khi xây d ng xong ph n m m.1 Quy trình ki m th ð tv nñ : . chúng ta ph i ki m th ñ ch c ch n r ng h th ng ñã tho mãn t t c các yêu c u ñ ra.Ki m th thành ph n: ki m th t ng thành ph n riêng bi t. M c tiêu: .Hãy th o lu n v quy trình ki m th . Sau khi cài ñ t h th ng.N m ñư c quy trình ki m th ph n m m .Ki m th khi m khuy t: phát hi n l i ho c nh ng khi m khuy t c a ph m m ñ th y ñư c ng x c a nó có chính xác ho c phù h p v i tài li u ñ t c a nó hay không. Do ngư i xây d ng thành ph n t th c hi n. Ki m th thành công cho th h th ng ñã v n hành như mong ñ i. M c ñích c a quy trình ki m th : . Quy trình ki m th g m hai pha: . có th chuy n giao ngay cho khách hàng không? . Thông thư ng do m t ñ i ki m th ñ c l p th c hi n. .

Ki m th tích h p: ñ i ki m th truy nh p vào mã l nh c a h th ng.Nh ng nơi ngư i s d ng ph i nh p thông tin ñ u vào thì t t c các ch c năng ph i ñư c ki m th v i nh ng ñ u vào chính xác ho c không chính xác.T t c nh ng ch c năng ñư c truy nh p qua menu c n ph i ki m th . ð ñơn gi n hoa vi c xác ñ nh l i.1 Ki m th tích h p Ki m th tích h p bao g m vi c xây d ng h th ng t nh ng thành ph n c a nó và ki m tra xem có v n ñ gì x y ra t các tương tác gi a các thành ph n. Ki m th h th ng g m 2 pha: .Th nào là ki m th ñ c l p? Các phương pháp th c hi n.Tích h p t trên xu ng: xây d ng khung c a h th ng và ñưa các thành ph n vào trong nó.Th nào là ki m th tích h p? Các phương pháp th c hi n.N m ñư c quy trình ki m th h th ng .Môn h c Công ngh ph n m m V m t lý thuy t. sau ñó. Các chính sách ki m th ñ nh nghĩa m t phương pháp thư ng ñư c s d ng ñ l a ch n cách ki m th h th ng: .Tích h p t dư i lên: tích h p các thành ph n cơ s . chúng ta ph i ki m th h th ng m t cách c n k thì m i kh ng ñ nh ñư c chương trình không còn khi m khuy t.2. H th ng c n ki m th ñư c coi như các thành ph n tích h p v i nhau. h th ng nên ñư c tích h p tăng vòng. Tuy nhiên. Có hai cách tích h p h th ng: . ki m th h th ng ñã ñư c tích h p. trong th c t không th ki m th m t cách c n k ñư c. . 9.2 Ki m th h th ng M c tiêu: . . .Ki m th ñ c l p: ñ i ki m th s ki m th h th ng ñ y ñ ñ chuy n giao. coi h th ng như m t h p ñen. . sau ñó b sung thêm các thành ph n ch c năng.Các ch c năng k t h p ñư c truy nh p thông qua cùng m t menu cũng ph i ñư c ki m th . Ki m th h th ng bao g m tích h p các thành ph n t o ra h th ng ho c h th ng con. Trang 76 . 9.

Ki m th quan sát: các v n ñ c a t t c các phương pháp. ñ m b o h th ng tho mãn các yêu c u c a nó. . Ví d : Ki m th h p ñen Trang 77 .Môn h c Công ngh ph n m m Các phương pháp ki m th tích h p: .ðánh giá ki n trúc: ki m th tích h p t trên xu ng thích h p ñ phát hi n ra các l i trong ki n trúc h th ng. Có th b sung thêm các mã l nh ñ quan sát các m u th .2. ngư i ki m th không có nh ng hi u bi t v vi c cài ñ t h th ng.Minh ho h th ng: ki m th tích h p t trên xu ng cho phép bi u hi n h th ng m t cách gi i h n nh ng pha ban ñ u c a quá trình xây d ng h th ng. t c là ch d a trên tài li u ñ c t h th ng.2 Ki m th ñ cl p Gi i thi u: M c ñích chính c a ki m th ñ c l p nh m tăng ñ tin c y c a nhà cung c p. . Ki m th ñ c l p có th là ki m th h p ñen ho c ki m th ch c năng. 9.Ki m th cài ñ t: d dàng hơn v i ki m th tích h p t dư i lên. .

Hư ng d n ki m th là nh ng g i ý cho ñ i ki m th giúp h l a ch n m u th nh m phát hi n ra khi m khuy t c a h th ng. .L p l i nhi u l n cùng m t ñ u vào ho c m t chu i các ñ u vào.Bu c cho các k t qu tính ph i quá l n ho c quá nh . Ki m th áp l c thích h p v i nh ng h th ng phân tán.Thi t k ñ u vào sao cho vùng nh ñ m b tràn. .3 Ki m th Gi i thi u: thành ph n Trang 78 . chúng ta có th s d ng ca s d ng ho c bi u ñ tu n t ñ h tr cho quá trình ki m th . . Ki m th áp l c th nghi m h th ng trên t i tr ng thi t k t i ña c a nó.2. Ca s d ng có th là ph n cơ b n ñ ñưa ra nh ng m u th h th ng. Kèm theo bi u ñ tu n t tương ng. . Ki m th hi u năng bao g m vi c l p k ho ch cho m t t p h p các m u th và t i tr ng c a nó có th tăng lên nhanh chóng cho ñ n khi hi u năng c a h th ng là không th ch p nh n ñư c. Ki m th áp l c h th ng xác ñ nh nh ng ng x l i. 9.L a ch n các ñ u vào sao cho h th ng có th ñưa ra t t c các thông báo l i. Nó giúp xác ñ nh các thao tác ñ ki m th và giúp thi t k các ca s d ng ñư c yêu c u.Ép h th ng t o ra nh ng k t qu không h p l . Ki m th ñ c l p có th bao g m ki m th các thu c tính rõ nét c a h th ng như hi u năng và ñ tin c y. Ngoài ra. . giúp ki m tra nh ng l i không th ch p nh n ñư c c a các d ch v ho c d li u. chúng ta s s d ng các ñ u ra và ñ u vào c a nó ñ t o ra các m u th .Môn h c Công ngh ph n m m Chúng ta có th ñưa ra các hư ng d n ki m th cho ñ i ki m th . Áp l c h th ng thư ng gây ra nh ng khi m khuy t c a h th ng.

9. Thành ph n ñư c ki m th có th là: . Trong quá trình ki m th l p ñ i tư ng. 9.2.N m ñư c các v n ñ liên quan ñ n ki m th thành ph n . .Hai phương pháp ki m th thành ph n là: ki m th l p ñ i tư ng và ki m th giao di n. ðây là m t quy trình phát hi n ra các khi m khuy t.L p ñ i tư ng v i nh ng thu c tính và phương th c.Thi t l p và ki m tra t t c các thu c tính c a ñ i tư ng.Môn h c Công ngh ph n m m Ki m th thành ph n (hay còn g i là ki m th ñơn v ) là quy trình ki m th các thành ph n riêng l trong h th ng.2.Ghi nh các g i ý khi ki m th thành ph n Ki m th l p ñ i tư ng Ki m th l p ñ i tư ng nh m ki m tra m c ñ hoàn thi n c a l p. M c tiêu: . . bao g m: .Th c nghi m t t c các tr ng thái có th c a ñ i tư ng K thu t th a k gây khó khăn cho vi c thi t k ki m th l p ñ i tư ng vì thông tin ñư c ki m th không ñư c h n ch . s d ng mô hình tr ng thái ñ xác ñ nh chu i d ch chuy n tr ng thái và chu i các s ki n gây ra s d ch chuy n ñó. .3.Thành ph n k t h p v i các giao di n ñư c ñ nh nghĩa trư c ñ truy nh p t i các ch c năng c a nó. chúng ta c n ph i xác ñ nh các trư ng h p ki m th ñ i v i t t c các phương th c c a ñ i tư ng.Ch c năng ho c phương th c c a ñ i tư ng.3. ð ng th i. . .2 Trang 79 . Ki m th giao di n ñ c bi t quan tr ng trong phát tri n hư ng ñ i tư ng khi các ñ i tư ng ñư c ñ nh nghĩa b i các giao di n c a nó.1 Ki m th giao di n ð tv nñ : M c ñích c a ki m th giao di n là ñ phát hi n các l i c a giao di n ho c nh ng gi thi t không h p lý v giao di n.Ki m th t t c các thao tác ñư c g n v i ñ i tư ng.

Giao di n th t c: h th ng con ch a m t t p các th t c ñ các h th ng con khác g i t i.L m d ng giao di n: m t thành ph n g i t i các thành ph n khác và gây ra l i trong khi s d ng giao di n c a nó.Giao di n truy n thông ñi p: các h th ng con yêu c u các d ch v t nh ng h th ng con khác.L i v th i gian: các thành ph n g i và thành ph n ñư c g i thao tác v i t c ñ khác nhau và nh ng d li u cũ l i ñư c truy nh p. nhưng thành ph n này l i sai.2. nên bi n ñ i th t mà trong ñó các thành ph n tương tác v i nhau. .T i sao ph i thi t k các trư ng h p ki m th ? . .Thi t k nh ng m u th sao cho có th gây ra l i trên thành ph n.Trong nh ng h th ng có b nh làm chung.Thi t k các m u th v i nh ng tham s g i t i th t c ñư c g i có giá tr c n biên.Thi t k ki m th áp l c trên các h th ng truy n thông ñi p .Môn h c Công ngh ph n m m Giao di n g m các lo i sau: .4 Thi t k các trư ng h p ki m th M c tiêu: . .Có kh năng hi u và áp d ng các phương pháp thi t k trư ng h p ki m th .Giao di n b nh dùng chung: các th t c ho c hàm s d ng chung kh i b nh . Hư ng d n ki m th thành ph n: . . Các lo i l i thư ng x y ra ñ i v i giao di n bao g m: . .Luôn luôn ki m th các tham s con tr v i con tr null. .Giao di n tham s : d li u ñư c truy n t th t c này t i th t c khác. .Không hi u rõ giao di n: thành ph n ñư c g n v i các gi thi t v ng x c a nó v i thành ph n ñư c g i. 9. Trang 80 . .

Các trư ng h p ki m th ñư c l a ch n t nh ng phân ho ch này.B t o d li u ki m th . g m các nút bi u di n các nhánh c a chương trình và các cung bi u di n lu ng ñi u khi n. Các phương pháp thi t k các trư ng h p ki m th : . Ph n này s gi i thi u m t s lo i công c h tr t ñ ng ki m th .Môn h c Công ngh ph n m m Thi t k các trư ng h p ki m th (ñ u vào và ñ u ra) ñư c s d ng ñ ki m th h th ng.B t o báo cáo .Qu n lý ki m th : giúp qu n lý các chương trình ki m th như lưu v t d li u ki m th . Câu 2: Trang 81 . ði m b t ñ u c a ki m th ñư ng ñi là bi u ñ lu ng chương trình. Nh ng hi u bi t v chương trình ñư c s d ng ñ xác ñ nh các trư ng h p ki m th b sung.5 T ñ ng ki m th Gi i thi u: Ki m th là m t pha có chi phí khá cao.B phân tích ñ ng: b sung mã l nh cho chương trình ñ ñ m s l n th c hi n c a m i câu l nh.B gi ñ nh 9.Oracle: t o ra các d ñoán v k t qu ki m th . . các k t qu mong mu n … . M i l p này thư ng là m t phân ho ch ho c m t mi n ng d ng mà chương trình ch y theo m t cách thích ng v i t ng thành viên c a l p. trong ñó t t c các thành viên c a l p ñ u có quan h v i nhau.Ki m th d a trên các yêu c u: M t nguyên t c c a k thu t xác ñ nh yêu c u là nh ng yêu c u c a h th ng ph i có kh năng ki m th . trong ñó ta ph i xem xét t ng yêu c u và ñưa ra m t t p các m u th cho nh ng yêu c u ñó.Ki m th hư ng c u trúc (ho c ki m th h p tr ng): Ki m th hư ng c u trúc ñưa ra các trư ng h p ki m th d a theo c u trúc chương trình. .3 Bài t p Câu 1: Gi i thích t i sao ki m th ch phát hi n ra các bi u hi n c a l i. . Ki m th d a trên yêu c u là k thu t ki m th h p l . Chúng ta có khá nhi u các công c h tr ki m th giúp gi m th i gian và chi phí. M c ñích c a thi t k trư ng h p ki m th là t o ra m t t p h p các m u ki m th có kh năng ñánh giá hi u qu và phát hi n khi m khuy t. . .B so sánh file: so sánh k t qu c a các chương trình ki m th .2. 9.Ki m th phân ho ch: D li u ñ u vào và k t qu ñ u ra thư ng rơi vào các l p khác nhau. ch không ph i ngu n g c c a l i.Ki m th ñư ng ñi: m c tiêu c a ki m th ñư ng ñi nh m ñ m b o r ng t p h p các m u th trên t ng ñư ng ñi qua h th ng s ñư c th c hi n ít nh t m t l n.

Câu 3: Ki m th ñư ng là gì? Hãy ñưa ra hai lý do ñ th y r ng ki m th ñư ng g n như không bao gi ñ t ñư c. Trang 82 . Câu 4: ðưa ra m t s ví d cho th y ki m th t t c các ñư ng ñ c l p không th phát hi n ra l i.Môn h c Công ngh ph n m m So sánh hai phương pháp ki m th top-down và bottom-up.

ñúng k ho ch và phù h p v i các yêu c u c a t ch c phát tri n ph n m m. Qu n lý d án ph n m m có liên quan t i nh ng ho t ñ ng nh m ñ m b o chuy n giao ph n m m ñúng th i h n. Qu n lý d án là m t yêu c u c n thi t vì phát tri n ph n m m luôn ph i tho mãn các ràng bu c v k ho ch và chi phí ñã ñư c xác ñ nh b i t ch c phát tri n ph n m m.D a trên hi u bi t c a mình. chi phí l n hơn d tính.Ph i bi t cách l p k ho ch và xây d ng l ch bi u cho d án . s khác bi t so v i vi c qu n lý các lo i d án khác.ð xây d ng ñư c m t h th ng ph n m m thành công. Qu n lý d án ph n m m có m t s ñ c trưng khác bi t so v i các lo i d án khác: . Ngư i qu n lý d án ph i ch u trách nhi m l p k ho ch và theo dõi quá trình th c hi n d án.Nhi u d án ph n m m là nh ng d án ch làm m t l n.1 ð nh nghĩa v qu n lý d án ð tv nñ : .Nhi m v c a ngư i qu n lý d án ph n m m là gì? . .Môn h c Công ngh ph n m m Chương 10 Qu n lý d án Gi i thi u: ð ñ m b o m t d án xây d ng h th ng ph n m m thành công. S n ph m có kh năng thay ñ i linh ñ ng. 10. Trong chương này.2 Các ho t ñ ng qu n lý ð tv nñ : .Qu n lý d án ph n m m có gi ng qu n lý các d án khác không? Qu n lý d án ph n m m là m t ph n quan tr ng c a công ngh ph n m m. hãy cho bi t qu n lý d án là gì? . . và không tho mãn các yêu c u ñ ra. N u qu n lý t t thì chưa ch c d án ñã thành công. nhưng n u qu n lý t i thì ch c ch n d án s th t b i. . 10. chúng ta s tìm hi u th nào là qu n lý d án và các ho t ñ ng di n ra trong quá trình quán lý d án.Công ngh ph n m m không ñư c th a nh n như m t quy t c công ngh có tr ng thái chu n m c như các ngành công ngh khác.Quy trình phát tri n ph n m m không ñư c chu n hoá.Hi u th nào là qu n lý d án ph n m m. ñó là qu n lý d án. .S n ph m là vô hình. M c tiêu: . D án th t b i khi ph n m m chuy n giao ch m hơn so v i k ho ch. chúng ta c n ph i th c hi n m t ho t ñ ng không th thi u ñư c.Ph i bi t ñư c nh ng lo i r i ro nào có th x y ra trong quá trình th c hi n d án và cách kh c ph c chúng.Nh ng công vi c ph i làm trong Qu n lý d án là gì? Trang 83 . c n thi t ph i qu n lý d án .

. Các ho t ñ ng qu n lý d án bao g m: .ði u hành và xem xét l i d án: ngư i qu n lý ph i giám sát quy trình th c hi n d án. bao g m nh ng ai và nh ng nhi m v gì. k ho ch phát tri n nhân s … C u trúc c a b n k ho ch d án g m: .Vi t k ho ch d ki n: ðây là m t công vi c khá ph c t p.T ch c d án: mô t cách t ch c c a ñ i d án. t ch c mu n ch ñ nh m t s nhân viên m i tham gia vào d án . ngư i qu n lý d án có th phát hi n và kh c ph c ñư c nh ng r i ro ti m tàng. . ư c lư ng th i gian và chi phí … . so sánh quy trình và chi phí th c t v i k ho ch ñã ñ nh.Ph n gi i thi u: mô t các m c tiêu c a d án và các ràng bu c gây nh hư ng t i vi c qu n lý d án. nh t là khi có nh ng thông tin ho c nh ng yêu c u m i xu t hi n. k ho ch th m tra.Ph i bi t r ng ng v i m i ho t ñ ng trong quá trình phát tri n ph n m m.Hi u rõ t m quan tr ng c a vi c l p k ho ch d án . ngư i qu n lý d án có th g p ph i m t s v n ñ sau: ngân sách c a d án không ñ ñ tr cho nh ng nhân viên có m c lương cao. chúng ta có nhi u lo i k ho ch ñư c xây d ng ñ h tr cho k ho ch chính c a d án ph n m m như: k ho ch ch t lư ng. .N m ñư c c u trúc c a m t b n k ho ch d án phát tri n h th ng ph n m m. - 10. k ho ch qu n lý c u hình. . phương pháp th c hi n... các m c th i gian và các s n ph m ñư c t o ra. N u ñi u hành t t. Vi c l a ch n nhân viên thích h p cho m t d án là r t khó khăn. không có ñư c nh ng nhân viên có kinh nghi m và trình ñ thích h p. k ho ch b o trì. Trong quá trình th c hi n d án. L p k ho ch d án có th là ho t ñ ng t n nhi u th i gian nh t trong quá trình qu n lý d án. d báo khi nào chúng x y ra và ñ xu t chi n lư c gi m r i ro. K ho ch ph i ñư c theo dõi thư ng xuyên. Nó li t kê các hành ñ ng t pha kh i t o cho ñ n khi ñưa ra ñư c h th ng. chúng ta s ph i có m t b n k ho ch riêng. Tuy nhiên.Môn h c Công ngh ph n m m Hãy th o lu n v nh ng công vi c ñó.Tính chi phí d án . Cho bi t công vi c nào là quan tr ng nh t.L p k ho ch d án: liên quan ñ n vi c xác ñ nh các hành ñ ng. Nó mô t M c tiêu: c a d án.Phân tích r i ro: mô t nh ng r i ro có th x y ra. Khi l a ch n ñ i d án. Trang 84 . . .3 L p k ho ch d án M c tiêu: . ngày nay chúng ta có r t nhi u k thu t và công c ñư c s d ng ñ h tr cho vi c qu n lý d án ph n m m.Vi t báo cáo và trình bày.L a ch n và ñánh giá cá nhân.

M - Trang 85 .Excel. trong mô hình thác nư c cho phép ta ñ nh nghĩa các m c c a ti n trình m t cách rõ ràng. Ngư i qu n lý ph i chia d án thành nhi u nhi m v . Ví d . Khi l p l ch bi u. M.Project … L p l ch bi u d án là m t trong nh ng công vi c khó khăn nh t ñ i v i ngư i qu n lý d án. ngư i qu n lý nên t ch c các công vi c song song ñ s d ng t i ưu l c lư ng lao ñ ng và t i thi u hoá s ph thu c l n nhau gi a các nhi m v ñ tránh s ch m tr khi m t nhi m v ph i ñ i nhi m v khác hoàn thành. L ch bi u c a d án: l ch bi u cho th y s ph thu c gi a các hành ñ ng. t ng m c th i gian và k t qu c a t ng công vi c. th i gian ư c tính ñ ñ t t i m c và phân công công vi c cho t ng ngư i. M c là ñi m cu i c a m t hành ñ ng trong quy trình. Các k thu t ñi u hành và báo cáo 10.Môn h c Công ngh ph n m m - - Các yêu c u v tài nguyên ph n c ng và ph n m m: xác ñ nh nh ng ph n c ng và ph n m m nào c n thi t cho quá trình th c hi n d án. B ng th ng k công vi c: xác ñ nh các công vi c. ư c lư ng th i gian và tài nguyên c n thi t ñ hoàn thành t ng nhi m v . sơ ñ m ng ñ xây d ng l ch bi u Có th s d ng m t s công c h tr l p l ch bi u như: M.4 L ch bi u c a d án c tiêu: Ph i hi u rõ l p l ch bi u d án là làm gì? N m ñư c m t s quy t c và các g i ý khi l p l ch bi u Có kh năng áp d ng bi u ñ c t.

Ví d Gi s có m t lo t các ho t ñ ng Ti. S d ng bi u ñ giúp ta th y rõ cách chia d án thành nhi u nhi m v . Tuy nhiên. khi l p l ch bi u chúng ta ph i chú ý t i các v n ñ sau: . Xây d ng bi u ñ nh m bi u di n các ho t ñ ng theo dòng th i gian 3. chúng nên ñư c th c hi n trong vòng m t ho c hai tu n.Kh năng s n xu t không tương ng v i s lư ng ngư i làm vi c trong m t nhi m v .Vi c ư c lư ng m c ñ khó c a m t v n ñ nào ñó và xác ñ nh chi phí ñ gi i quy t nó là r t khó khăn.Môn h c Công ngh ph n m m Ch t lư ng c a l ch bi u ph thu c vào hi u bi t và kinh nghi m c a ngư i qu n lý.B sung thêm ngư i vào d án s làm cho nó ch m hơn vì giao ti p trong d án tr lên quá t i.Nh ng s vi c x y ra ngoài mong ñ i. th i gian th c hi n t ng ho t ñ ng và s ph thu c l n nhau gi a các ho t ñ ng ñư c li t kê như b ng dư i ñây. . Bi u ñ phân công công vi c K t qu th c hi n ví d Trang 86 . Chúng ta s d ng các ký pháp ñ ho ñ minh ho cho l ch bi u c a d án. Hãy th c hi n các yêu c u sau: 1.Xây d ng m ng các ho t ñ ng 2. . Các nhi m v không nên quá nh . .

Môn h c Công ngh ph n m m M ng ho t ñ ng Theo th i gian Trang 87 .

t i thi u hoá gi m nh hư ng c a r i ro. con ngư i.L p k ho ch r i ro: Xem xét t ng r i ro và phát tri n chi n lư c ñ qu n lý nó.Ph i hi u ñư c r i ro luôn luôn có th x y ra trong d án và không th lư ng trư c ñư c .N m ñư c m t s lo i r i ro thư ng g p .R i ro thương m i s nh hư ng t i t ch c xây d ng ph n m m. Sau ñây là m t s lo i r i ro thư ng g p trong quá trình phát tri n h th ng ph n m m: . .R i ro c a s n ph m nh hư ng t i ch t lư ng ho c hi u năng c a ph n m m s ñư c xây d ng. Qu n lý r i ro liên quan t i vi c xác ñ nh r i ro và l p ra các k ho ch ñ t i thi u hoá nh hư ng c a chúng t i d án. .Bi t ñư c các ho t ñ ng c n th c hi n trong qu n lý r i ro. Bao g m các chi n lư c như: phòng tránh gi m kh năng x y ra r i ro.5 Qu n lý r i ro M c tiêu: . chúng ta c n ph i th c hi n các ho t ñ ng sau: .Ki m soát r i ro: ðánh giá t ng r i ro ñã ñư c xác ñ nh m t cách thư ng xuyên ñ xác ñ nh kh năng nó có th x y ra hay không và cũng ñ ng th i Trang 88 . ð qu n lý r i ro.Phát hi n r i ro: Phát hi n các lo i r i ro có liên quan ñ n: công ngh . k ho ch b t ng k ho ch này ñ dành cho khi r i ro x y ra.Môn h c Công ngh ph n m m Theo công vi c 10.R i ro c a d án có nh hư ng t i l ch bi u và tài nguyên c a d án . t ch c. . . các yêu c u.Phân tích r i ro: ðánh giá các kh năng x y ra r i ro và tính nghiêm tr ng c a nó n u nó x y ra. ư c lư ng.

1.6 Bài t p Câu 1: T i sao m t l p trình viên t t chưa ch c ñã là m t ngư i qu n lý t t? Câu 2: Gi i thích m c ñích c a t ng công vi c trong quá trình l p k ho ch d án. Câu 3: Phân bi t m c th i gian và k t qu Câu 4: ð i d án g m 4 ngư i (A. Nh ng r i ro chính nên ñư c th o lu n t i các cu c h p qu n lý ti n trình. Gi s m i ngư i ph i làm nhi u hơn 10 ti ng/tu n. Hãy li t kê nh ng v n ñ c a b n k ho ch dư i ñây. 10. S n ph m có hai l n chuy n giao. (L n th nh t là sau 4 tu n). T o ra m t b n k ho ch m i cho d án trên Hình v c a câu 4: K ho ch ban ñ u Trang 89 . 2. B.Môn h c Công ngh ph n m m ñánh giá m c ñ nh hư ng c a nó. C và D) có nhi m v hoàn thành ph n m m chơi c ca-rô trong 10 tu n.

Môn h c Công ngh ph n m m K ho ch pha 1 K ho ch pha 2 Câu 5: ð i d án có 4 ngư i. tăng vòng 2 l n (l n th nh t sau 8 tu n). Y. Z. Hãy v mô hình m ng c a các nhi m v ñó. h th ng có 3 thành ph n chính X. trong ñó X là thành ph n quan tr ng nh t. Hình v c a câu 6: Trang 90 . Gi s . Câu 6: Cho t p h p các nhi m v . D án ñư c chuy n giao. ràng bu c và th i gian th c hi n như hình v sau. Hãy l p b ng k ho ch chi ti t cho d án trên. ph i hoàn thành s n ph m trong 20 tu n. Các yêu c u h th ng v n còn ch chưa rõ ràng.

Môn h c Công ngh ph n m m Các nhi m v ðáp án Bi u ñ m ng Trang 91 .

h th ng chu n ho ch ñ nh yêu c u cho các quy trình trong vi c áp d ng trong th c t . gi m thi u các r i ro và tăng hi u su t cao hơn. vi c h th ng hoá các công vi c c a t ng lo i vai trò là ñi u c n thi t.Môn h c Công ngh ph n m m Chương 11 Chu n và các quy trình ho t ñ ng trong công nghi p ph n m m Gi i thi u: Trong ngành công nghi p ph n m m. Trong chương này. M c tiêu: . ñơn v s n xu t ph n m m th c hi n hi u qu hơn. Vi c xây d ng các quy trình giúp ho t ñ ng c a m t t ch c. 11.1. chúng ta s tìm hi u v m t s lo i quy trình ho t ñ ng trong công nghi p ph n m m. chúng ta có nh ng hi u bi t cơ b n v vai trò c a m i quy trình. cũng gi ng như các ngành công nghi p khác. ñây là yêu c u căn b n ñ i v i m t k sư ph n m m. Trang 92 . .Giúp sinh viên hi u rõ vai trò c a t ng lo i thành viên và các công vi c tương ng c a t ng lo i trong d án ph n m m ñ sinh viên nh n bi t và phát huy tri t ñ vai trò trong môi trư ng làm vi c chuyên nghi p sau khi t t nghi p. .Cung c p ki n th c v các quy trình làm vi c trong d án s n xu t ph n m m trong th c t .Cung c p ki n th c v h th ng chu n trong công nghi p ph n m m.1 Các quy trình ho t ñ ng 11. ð t ñó. Ngoài ra.1 Khái ni m Quy trình Quy trình xác ñ nh các công ño n và tác v cho t ng lo i vai trò (ngư i th c hi n) làm vi c trong các giai ño n trong d án nh m th c hi n m c tiêu.

1.2 Các quy trình công ngh liên quan Trang 93 .Môn h c Công ngh ph n m m 11.

Môn h c Công ngh ph n m m

11.1.3 Tóm lư c m t s quy trình

Implementation workflow Analysis & Design workflow Test workflow

Requirement workflow

Environment workflow Project Management workflow SCM workflow

Deployment workflow

11.1.3.1 M -

Quy trình Phân tích Thi t k (Analysis and Design) c tiêu: Bi n ñ i yêu c u t d ng mô t sang d ng thi t k c a h th ng c n xây d ng. ð nh nghĩa ki n trúc c a h th ng. Hi u ch nh thi t k trùng kh p v i môi trư ng phát tri n d án.

11.1.3.2 Quy trình Qu n lý C u hình ph n m m (Software Configuration Management) M c tiêu: - ð xu t các tác v liên quan ñ n qu n lý c u hình liên quan ñ n d án ph n m m. 11.1.3.3 Quy trình Tri n khai ng d ng (Deployment) M c tiêu: - ð m b o các s n ph m ph n m m là kh d ng ñ i v i khách hàng. 11.1.3.4 Quy trình Môi trư ng th c hi n (Environment) M c tiêu: Trang 94

Môn h c Công ngh ph n m m

-

Cung c p các quy trình ñ thi t l p môi trư ng phát tri n ph n m m (bao g m các quy trình và môi trư ng công ngh như công c /tài nguyên c n thi t) ñ m b o d án có th ho t ñ ng ñư c theo chu trình phát tri n ph n m m. Quy trình Hi n th c Xây d ng chương trình (Implementation) c tiêu: ð nh nghĩa c u trúc chương trình Hi n th c, xem xét các l p và các ñ i tư ng hi n th c c a các thành ph n (source files, binaries, executables, …) Ki m tra m c ñ ñơn v các thành ph n xây d ng ñư c Tương tác v i các k t qu t o b i các hi n th c riêng l (hay nhóm) khác trong m t h th ng kh th c thi. Quy trình Qu n lý D án (Project Management) c tiêu: Cung c p các tác v qu n lý d án L p k ho ch d án T o và c p nh t k ho ch d án Theo dõi ti n trình d án ði u khi n d án -Xác ñ nh nh ng tác ñ ng c n thi t tương x ng Xác ñ nh Lư ng m c tiêu ch t lư ng Xác ñ nh Các quá trình c a ph n m m ñ ñ t ñư c các m c tiêu: Xác ñ nh ð nh lư ng d án ph n m m

11.1.3.5 M 11.1.3.6 M -

11.1.3.7 Quy trình Xác ñ nh Yêu c u (Requirements) M c tiêu: - Thi t l p và xác nh n các thoã thu n v i khách hàng và các ngu n thông tin liên quan ñ n h th ng c n làm. - Giúp thành viên d án hi u rõ hơn v các yêu c u. - Xác ñ nh ph m vi c a d án. - Xác ñ nh cơ s cho các k ho ch c a d án. - Xác ñ nh cơ s cho vi c l p d toán cho d án (chi phí, th i gian, nhân l c). - ð nh nghĩa các giao di n ngư i s d ng cho h th ng. - Quan tâm ñ n s c n thi t và m c tiêu c a ngư i s d ng. 11.1.3.8 M Quy trình Ki m tra ch t lư ng (Test) c tiêu: Ki m tra s tương tác gi a các ñ i tư ng. Ki m tra s tương tác thích ng gi a t t c thành ph n c a ph n m m. Ki m tra t t c yêu c u c a khách hàng ñư c hi n th c tương x ng. Ki m tra s n ph m cung c p v i s ñáp ng v vi c s d ng như mong ñ i khi ñ t vào môi trư ng như yêu c u. Trang 95

Môn h c Công ngh ph n m m

-

Ki m tra và ñ m b o các l i ñư c xác ñ nh trư c khi tri n khai cho khách hàng

11.2 Các vai trò trong ho t ñ ng s n xu t ph n m m
11.2.1 Khái ni m vai trò
Vai trò th c hi n trong ho t ñ ng c a m t d án s n xu t ph n m m ñ i di n cho m t nhóm ngư i th c hi n công vi c chuyên bi t khác nhau.

11.2.2 Các vai trò
Phân tích yêu c u nghi p v (Business Analyst) Ki n trúc sư ph n m m (Technical Architect) Thi t k ph n m m (Designer) Xây d ng ph n m m (Developer) Qu n lý c u hình ph n m m (Configuration Management Manager) Ki m tra ch t lư ng s n ph m (Quality Assurance) Qu n lý nhóm ki m tra ch t lư ng s n ph m (Quality Assurance Manager/ Leader) Qu n lý d án (Project Manager/Project Leader) Qu n lý nhóm d án (Program Manager) B ph n h tr (Thi t k ð ho , Ư c lư ng, Nhân s )

11.3 H th ng chu n trong công nghi p ph n m m
Hi n nay, m t s h th ng chu n ñư c ñ t ra trong ngành công nghi p ph n m m nh m giúp các nhà s n xu t ph n m m tri n khai áp d ng các quy trình m t cách hi u qu hơn v i các ñi u ki n ràng bu c nh m ñ m b o ch t lư ng c a ph n m m ñư c s n xu t ra cũng như tính hi u qu c a vi c áp d ng các quy trình. H th ng chu n bao g m: CMM (Capability Maturity Model), CMMI (Capability Maturity Model Integration)… ñư c th hi n theo 5 m c t th p ñ n cao cho t ng lo i quy trình.

Trang 96

procedures. poorly controlled.Môn h c Công ngh ph n m m Level 5 Optimizing Process performance continually improved through incremental and innovative technological improvements. . tools. and controlled at the project level. generic practice elaborations. Trang 97 . Specific Goals Generic Goals Common Features Required. documented. performed. discipline amplifications. monitored. goal and practice notes. and references Sub practices typical work products. Processes are controlled using statistical and other quantitative techniques. Các tương quan trong mô hình CMM/CMMI: Maturity Levels (1 . generic practice elaborations. goal and practice titles. Often reactive. and references Ngoài ra. goal and practice notes. goal and practice titles. Proactive. Specific for each process area. M at ur ity oc es s Pr Level 4 Quantitatively Managed Level 3 Defined Level 2 Managed Level 1 Initial Processes are well characterized and understood. các chu n này không ph thu c vào lĩnh v c s d ng và kích thư c/quy mô c a doanh nghi p s d ng. Verifying Implementation Commitment to Perform Ability to Perform Directing Implementation Inf orm ati ve Specific Practices Required Required Generic Practices ve ati orm Inf Sub practices typical work products. discipline amplifications.5) Process Area 1 Process Area 2 Process Area n Required. reactive. standards. etc. . Processes. Common across all process areas. Processes are unpredictable. Processes are planned. are defined at the organizational (Organization X ) level.

Môn h c Công ngh ph n m m Trang 98 .

Sign up to vote on this title
UsefulNot useful