Câu hỏi ôn tập môn CNPM - Công nghệ thông tin | Trường Đại học Kiến trúc Hà Nội

1. Phần mềm là gì? Nhiệm vụ của kỹ sư phần mềm. 2. Người kỹ sư phần mềm phải có những kỹ năng cơ bản nào? 3. Tại sao lại phải nghiên cứu cách thức xây dựng phần mềm 1 cách khoa học. 4. Phần mềm được phân loại thành các nhóm chính như thế nào. Nêu ví dụ. 5. Miền ứng dụng của phần mềm?. Tài liệu được sưu tầm giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kì thi sắp tới. Mời bạn đọc đón xem !




 !"#$%"&'()*$
+
,
-.'%$/0%1!#0
)
2
3451673$(1#%88%39
:
;<(/=->
?
9@!#3930)'A
;#B-1
$CD
4E)
FE)
G %H
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
CÂU HỎI ÔN TẬP
Các khái niệm cơ bản:
2. Người kỹ sư phần mềm phải có những kỹ năng cơ bản nào?
5. Miền ứng dụng của phần mềm?
8. Nêu và phân tích các giai đoạn trong tiến trình phần mềm?
10. Thế nào là một phần mềm tốt (tiêu chuẩn đánh giá một phần mềm tốt)
Chương 1. Tổng quan về công nghệ phần mềm
Câu 1. Quy trình làm phần mềm gì? Nêu các pha của quy trình làm phần mềm.
sao các pha cần được kiểm thử kỹ và báo cáo thành tài liệu chi tiết trước khi tiến hành
các pha tiếp theo.
Câu 2. hình xây dựng-và-hiệu chỉnh (build-and-fix model) thể biểu diễn trong
sơ đồ sau:
1
Xây dựng phiên
bản đầu tiên
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
Hãy dựa vào đồ giải thích hơn cách thức làm phần mềm theo hình này,
đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
Câu 3. Pha đặc tả đóng vai trò quan trọng như thế nào trong công nghiệp phần mềm.
Hãy nêu và mô tả các bước tiến hành và những điều cần chú ý trong pha đặc tả.
Câu 4. Hãy nêu vai trò tả nội dung công việc trong pha xác định yêu cầu
trong công nghiệp phần mềm trình bày hơn các kỹ thuật được sử dụng trong
pha này
Câu 5: Mô hình thác đổ (waterfall model) có thể biểu diễn trong sơ đồ sau:
Hãy dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này,
đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
Câu 6. Hãy nêu mục tiêu và công việc kiểm thử trong pha cài đặt và pha tích hợp
Câu 7. Pha đặc tả đóng vai trò quan trọng như thế nào trong công nghiệp phần mềm.
Hãy nêu và mô tả các bước tiến hành và những điều cần chú ý trong pha đặc tả.
Câu 8. Mô hình bản mẫu (rapid prototyping model) có thể biểu diễn trong sơ đồ sau:
2
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
Dựa vào đồ này hãy giải thích hơn cách thức làm phần mềm theo hình này,
đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
Bên cạnh đồ này còn đồ biểu diễn thức làm bản mẫu. Hãy vẽ đồ đó,
rồi giải thích hơn cách thức làm phần mềm theo hình này, đồng thời so sánh
với mô hình thác đổ. Vì sao người ta khuyên rằng không nên sửa chữa bản mẫu thành
phần mềm chuyển giao?
Câu 9. Nêu rõ một số khái niệm: dự án, quản lý dự án, quản lý dự án phần mềm. Hãy
tả để trở thành người quản dự án tốt cần phải những kiến thức kỹ năng
gì? Giải thích tại sao quản dự án phần mềm thường khó khăn hơn các loại dự án
khác ?
Câu 10. Hãy nêu nhiệm vụ của pha thiết kế tả các công việc cần tiến hành
trong pha thiết kế. Tại sao lại nói: Bản thiết kế là sự nối tiếp của bản báo cáo đặc tả.
Câu 11. Mô hình tăng dần (incremental model) có thể biểu diễn trong sơ đồ sau:
Dựa vào sơ đồ này hãy giải thích rõ hơn cách thức làm phần mềm theo hình này,
3
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
...
đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
Câu 12. Một dự án phần mềm được coi thành công khi đạt được những mục tiêu
nào? Hãy nêu một số sai lầm chủ yếu được rút ra từ những dự án thất bại. Nêu một số
nguyên nhân làm cho đặc tả nghèo nàn.
Câu 13. Hãy nêu mục tiêu và công việc kiểm thử trong pha cài đặt và pha tích hợp.
Câu 14. Mô hình tăng dần đồng thời (concurrent incremental model) có thể biểu diễn
trong sơ đồ sau:
Phần 1
Phân tích
Thiết kế
Cài đặt&
Tích hợp
Phần 2
Phân tích
Thiết kế
Cài đặt&
Tích hợp
Phần k
Thiết kế
Cài đặt&
Tích hợp
Hãy dựa vào sơ đồ trên và giải thích rõ hơn cách thức làm phần mềm theo mô hình
này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
Câu 15. Hãy nêu nhiệm vụ của pha thiết kế tả các công việc cần tiến hành
trong pha thiết kế. Tại sao lại nói: Bản thiết kế là sự nối tiếp của bản báo cáo đặc tả.
Câu 16. Vòng đời phần mềm và quy trình làm phần mềm là gì? Một quy trình phần
mềm thường trải qua các pha nào? Nêu ý nghĩa của các pha.
Vì sao các pha của vòng đời cần được kiểm thử kỹ và báo cáo thành tài liệu chi tiết
bởi nhóm thực hiện trước khi tiến hành các pha tiếp theo?
Câu 17. Bạn hãy tả cách thức làm phần mềm theo hình xoắn ốc (spiral
model), đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
4
Chuyển giao cho
khách hàng
Chuyển giao cho
khách hàng
Phân tích
Chuyển giao cho
khách hàng
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
Câu 18. Pha đặc tả đóng vai trò quan trọng như thế nào trong công nghiệp phần
mềm. Hãy nêu và mô tả các bước tiến hành và những điều cần chú ý trong pha đặc tả.
Chương 2: Những vấn đề trong phát triển phần mềm
1. Những thách thức mà phần mềm lỗi thời gây ra?
2. Thử nghiệm dựa trên rủi ro là gì?
3. Hãy phân tích rủi ro trong kiểm thử phần mềm là gì?
4. Hãy nêu các rủi ro sản phẩm trong kiểm thử phần mềm
5. Rủi ro của dự án gây nguy hiểm cho dự án là gì?
6. Hãy nêu các kỹ thuật phân tích rủi ro?
7. Bạn hiểu thế nào về quản lý rủi ro?
8. Hãy nêu những thách thức và cơ hội trong Công nghệ phần mềm trong thời đại
Công nghệ 4.0.
Chương 3. Quy trình phát triển phần mềm
1. Thế nào là quy trình làm phần mềm (tiếng Anh).Giải thích và cho ví dụ.
2. Nêu và mô tả các pha trong quy trình phần mềm.
3. Tại sao các pha của vòng đời phần mềm cần được kiểm thử kỹ và báo cáo lại
thành tài liệu chi tiết bởi nhóm thực hiện trước khi tiến hành các pha tiếp theo
5
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
4. Hãy nêu và phân tích pha xác định yêu cầu là gì? Kiểm thử pha này ra sao. Tài
liệu báo cáo phải như thế nào.
5. Hãy nêu và phân tích pha đặc tả (hay pha phân tích) là gì? Kiểm thử pha này ra
sao. Tài liệu báo cáo phải như thế nào.
6. Hãy nêu và phân tích pha thiết kế là gì? Kiểm thử pha này ra sao. Tài liệu báo
cáo phải như thế nào.
7. Hãy nêu và phân tích pha cài đặt là gì? Kiểm thử pha này ra sao. Tài liệu báo
cáo phải như thế nào.
8. Hãy nêu và phân tích pha bảo trì là gì? Kiểm thử pha này ra sao. Tài liệu báo
cáo phải như thế nào.
9. Nêu các lý do tại sao sau nhiều năm sử dụng, phần mềm có thể trở nên không
cần thiết và không còn cần sự bảo trì nữa ?
10. Nêu những điểm khác nhau giữa Pha đặc tả (pha phân tích) và Pha xác định
yêu cầu?
Chương 4. Các mô hình phát triển phẩn mềm
1. Hãy kể ra một số hình xây dựng phần mềm và nêu 1 mô nh trong số đó.
Nêu ưu, nhược điểm của mô hình nay.
2. Hãy trình bày lược (có thể biểu diễn, vẽ)hình xây dựng và hiệu chỉnh .
Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này
đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
3. Hãy trình bày sơ lược (có thể biểu diễn,vẽ) mô hình tuyến tich (mô hình thác
đổ) . Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình
này đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
4. Hãy trình bày sơ lược (có thể biểu diễn, vẽ) mô hình chế thử (bản mẫu). Dựa
vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này ,đồng
thời so sánh với mô hình thác đổ. Vì sao người ta khuyên rằng không nên sửa
chữa bản mẫu thành phần mềm chuyển giao?
6
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
5. Hãy trình bày sơ lược (có thể biểu diễn, vẽ) mô hình phát triển ứng dụng nhanh.
Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này
6. Hãy biểu diễn (vẽ) sơ đồ mô hình tăng dần .Dựa vào sơ đồ này và giải thích rõ
hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu
điểm, nhược điểm của nó.
7. Hãy biểu diễn (vẽ) sơ đồ mô hình tăng dần đồng thời. Dựa vào sơ đồ này và
giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu
những mặt ưu điểm, nhược điểm của nó.
8. Hãy biểu diễn (vẽ) sơ đồ mô hình xoắn ốc. Dựa vào sơ đồ này và giải thích
hơn cách thức làm phần mềm theohình này, đồng thời nêu những mặt ưu
điểm, nhược điểm của nó.
9. Hãy biểu diễn (vẽ) sơ đồ mô hình xoắn WinWin. Da vào sơ đồ này và giải
thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu
những mặt ưu điểm, nhược điểm của nó.
10. Hãy biểu diễn (vẽ) sơ đồ mô hình XP. Dựa vào sơ đồ này và giải thích rõ hơn
cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu
điểm, nhược điểm của nó.
Chương 5. Quản lý dự án phần mềm
1. Hãy trình bày các khái niệm: dự án, quản dự án, quản lý dự án công nghệ thông
tin và cho ví dụ.
2. Để trở thành người quản dự án tốt thì kiến thức kỹ năng về phát triển phần
mềm chưa đủ. Cần những kỹ năng về quản như: giám sát kiểm tra, quy
hoạch, quan hệ với khách hàng vai trò lãnh đạo kỹ thuật. Bạn hãy giải thích
hơn về các kỹ năng này và cho ví dụ minh họa nếu thấy cần thiết.
3. Người ta cho rằng quản dự án phần mềm thường khó khăn hơn việc quản
các dự án khác. Bạn hãy nêu một số lý do và ví dụ cho nhận định này.
4. Ba mục tiêu cần đạt tới của một dự án phần mềm là: lịch trình, trong phạm vi
ngân sách và đúng yêu cầu khách hàng. Nếu một vài mục tiêu trên đây không đạt
7
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
được thì nghĩa dự án thất bại không, sao? Yếu tố quan trọng nhất quyết
định sự thành công của một dự án phần mềm là gì?
5. Từ những dự án phần mềm thất bại, người ta đã rút ra một số sai lầm chủ yếu
thường gặp trong quản dự án phần mềm. Bạn hãy nêu ra một số sai lầm như
vậy.
6. Một trong những trở ngại người quản dự án thường gặp thiếu sự ủng hộ
của quản cấp trên về việc áp dụng công nghệ mới. sao thường điều này
và người quản lý dự án nên khắc phục như thế nào?
7. Trong quá trình phát triển dự án phần mềm thể nhiều vấn đề phát sinh cần
giải quyết, trong đó những vấn đề xảy ra khá bất ngờ nhưng cũng những
vấn đề thể dự đoán trước và có thể phòng ngừa. Bạn hãy nêu một số biện pháp
phòng ngừa chủ yếu.
8. Hãy nêu một số tình huống (nguyên nhân) thường làm nảy sinh các vấn đề đối
với dự án phần mềm.
9. Từ thực tế thể thấy rằng phần lớn lỗi phần mềm nguồn gốc từ lỗi pha đặc
tả. Vai trò của pha đặc tả tả sản phẩm phần mềm cần xây dựng. Nếu đặc tả
không đầy đủ thì phần mềm rất khó đáp ứng được yêu cầu khách hàng. Một số
nguyên nhân làm cho đặc tả nghèo nàn là: quên các đặc điểm, những đặc điểm
không cần thiết được đưa vào, đặc điểm hoạt động không đúng như khách hàng
mong đợi, những đặc điểm cần thiết nhưng không ai nghĩ đến. Bạn hãy tả
hơn và cho ví dụ minh họa về các nguyên nhân này.
10. Hãy giải thích về hội chứng "mục tiêu di động" trong quản lý dự án phần mềm.
11. Hãy nêu một số vấn đề liên quan đến dự toán của một dự án phần mềm như các
loại dự toán: ngân sách, lịch trình, tài nguyên, kỹ thuật, những sai lầm thường
gặp...
12. Vì sao nên cập nhật dự toán theo một định kỳ đều đặn?
13. Thường thì mọi yếu tố liên quan đến dự án còn phụ thuộc vào các nguồn lực bên
ngoài. Hãy nêu ra một số nguồn như thế các vấn đề thường nảy sinh bởi sự
phụ thuộc này.
14. Trong việc dự án phần mềm thì vấn đề tuyển dụng được các thành viên phát triển
8
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
chất lượng giữ được đội ngũ ổn định yếu tố quan trọng nhất để bảo đảm
sự thắng lợi. Nếu không giữ được đội ngũ ổn định, để cho sự thuyên chuyển
xáo trộn xẩy ra thường xuyên thì sẽ nẩy sinh những vấn đề gì?
15. sao việc theo dõi giám sát tiến độ thực hiện dự án được xem một trong
những hoạt động quản quan trọng nhất? Làm thế nào để nhà quản thể lấy
được những thông tin chính xác về dự án?
16. Những vấn đề thường nảy sinh khi kết thúc dự án là gì? Người quản lý dự án phải
làm gì để bảo đảm cho việc kết thúc dự án có trật tự và thắng lợi?
17. Trong quản dự án thì phân tích rủi ro một phương tiện hiệu quả để chống lại
các vấn đề tiềm ẩn. Hãy nói phân tích rủi ro trong dự án phần mềm gì?
Những ưu điểm và nhược điểm của kỹ thuật này.
18. Hợp đồng phí cộng thêm là gì? Những ưu điểm nhược điểm của loại hợp đồng
này đối với nhà phát triển cũng như đối với khách hàng.
19. Hợp đồng giá cố định gì? Những ưu điểm nhược điểm của loại hợp đồng
này đối với nhà phát triển cũng như đối với khách hàng.
20. Ngoài hai loại hợp đồng chính phí cộng thêm giá cố định, còn dạng quan
hệ khác giữa khách hàng và nhà phát triển như: phối hợp phí cộng thêm giá cố
định, liên doanh, thỏa thuận bản quyền, cam kết quan hệ lâu dài. Bạn hãy giải
thích rõ hơn các dạng quan hệ này.
21. Trước khi đưa ra một dự án phần mềm cần trả lời được một số câu hỏi. Bạn hãy
nêu một số câu hỏi mà bạn cho là quan trọng nhất.
22. Phát triển phần mềm theo hợp đồng thường bắt đầu từ việc khách hàng lựa chọn
người phát triển. Trước hết tổ chức cần phần mềm phải chuẩn bị một hồ
giới thiệu dự án gửi cho các công ty, tổ chức hay nhân thể tham gia phát
triển phần mềm. Hồ sơ này được gọi là hồ sơ mời thầu (requirement for proposal
- RFP, hoặc requirement for tender - RFT). Một RFP bao gồm 8 phần: (1) tả
vấn đề và mục tiêu của dự án, (2) Các yêu cầu kỹ thuật, (3) Thông tin về quản trị,
(4) Yêu cầu về chi phí, (5) Tài liệu tham khảo, (6) Những sản phẩm cần chuyển
giao khi kết thúc dự án, (7) Định dạng cho hồ dự thầu, (8) Lịch trình lịch
quyết định. Bạn hãy giải thích rõ hơn ý nghĩa của từng phần.
9
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
23. Có ba cách để phân phát RFP, đó là những cách nào?
24. Một công ty phần mềm thể kiến nghị với khách hàng về việc phát triển phần
mềm. Có ba lý do để kiến nghị: do yêu cầu, không do yêu cầu hoặc tổ hợp của hai
loại. Bạn hãy giải thích rõ hơn từng trường hợp.
25. Khi nào thì một công ty phần mềm tự đề xuất với khách hàng về vấn đề xây dựng
phần mềm một kiến nghị như vậy những phần bản nào? Nói chung một
bản kiến nghị xây dựng phần mềm phải nhằm trả lời cầu hỏi gì của khách hàng?
26. Một bản kiến nghị đáp lại RFP được gọi hồ dự thầu. Một kiến nghị tốt phải
trả lời được sáu câu hỏi: ai, cái gì, tại sao, thế nào, khi nào, bao nhiêu. Bạn hãy
nêu các câu hỏi một cách rõ ràng, chi tiết hơn.
27. Hãy trình bày một số đặc trưng của quá trình xét duyệt lựa chọn hồ sơ dự thầu.
28. Các kỹ sư phần mềm có đặc trưng gì khác so với các kỹ sư ở các lĩnh vực công
nghệ khác, ví dụ như năng suất làm việc chẳng hạn.
29. Hãy vẽ và giải thích sơ đồ vắn tắt biểu diễn cơ cấu nhân sự của một dự án lớn.
30. Hãy nêu các vai trò của một lãnh đạo nhóm làm việc trong một dự án phần mềm.
31. Hãy nêu một số đặc trưng của kiểu nhóm dân chủ.
32. Hãy nêu một số đặc trưng của kiểu nhóm kỹ sư trưởng.
33. Khi nào thì một nhóm chuyên gia được thành lập chức năng của gì?
sao cách tổ chức tốt nhất của nhóm chuyên gia là theo hình thức dân chủ?
34. Với người quản dự án thì điều chủ yếu thường xuyên nhận được báo cáo về
tình hình thực hiện dự án. Điều này được thực hiện nếu luôn luôn đảm bảo được
luồng thông tin chính xác đều đặn từ các nhóm phát triển. Hãy trình bày một số
cách thu thập thông tin thông qua báo cáo.
35. Một s nguyên tắc được sử dụng trong quản lý kỹ sư phần mềm là:
Quản thỏa thuận tốt hơn quản chỉ thị, trách nhiệm phải đi đôi với thẩm
quyền, quy tắc chung chỉ với sai lầm ràng mới phải bắt buộc hiệu chỉnh,
thẩm quyền không những liên quan đến nhiệm vụ mà còn liên quan đến lịch trình,
động yếu tố quan trọng nhất. Bạn hãy giải thích hơn các nguyên tắc
y.
36. Hãy trình bày kỹ thuật phân giải dự án phần mềm: kỹ thuật tinh chỉnh từng bước,
10
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
kỹ thuật phân giải chức năng, phân giải thiết kế và mối quan hệ giữa chúng.
Chương 7. Thiết kế và lập trình
1. Thiết kế một phần mềm gồm ba công việc: thiết kế tổng thể, thiết kế chi tiết
kiểm thử thiết kế. Hãy nêu các tên gọi khác nhau của các công việc này giải
thích cụ thể hơn trong từng công việc phải làm gì?
2. Nếu trong pha đặc tả phương pháp cấu trúc được sử dụng thì trong pha thiết kế
người ta thường sử dụng hai kỹ thuật hướng hành động để phân phần mềm
thành các module, phân tích dòng dữ liệu (data flow analysis, DFA) phân
tích giao dịch (transaction analysis). Về mặt lý thuyết thì DFA thể sử dụng
nếu các đặc tả được biểu diễn bởi các DFD. bởi phần lớn các phần mềm
đều thể biểu diễn bởi các DFD, do đó DFA được sử dụng khá rộng rãi. Bạn
hãy tả hơn cách phân phần mềm sử dụng kỹ thuật DFA thông qua dụ
cụ thể.
3. Bạn hãy nêu một dụ về thiết kế chi tiết module cho thiết kế theo phương pháp
cấu trúc.
4. Thiết kế chi tiết thường độc lập với ngôn ngữ lập trình. Tuy nhiên nếu người quản
quyết định ngôn ngữ lập trình trước khi thực hiện thiết kế chi tiết thì người ta
thường dùng ngôn ngữ tả chương trình (a program description language,
PDL), hay còn gọigiả (pseudocode) để biểu diễn thiết kế chi tiết. PDL thực
chất các lời chú dẫn được nối với các từ khóa của ngôn ngữ đã lựa chọn. Bạn
hãy nêu một ví dụ sử dụng PDL.
5. Thiết kế hướng đối tượng bao gồm 4 bước sau đây: xây dựng các biểu đồ tương
tác cho từng scenario, xây dựng biểu đồ lớp chi tiết, xây dựng sơ đồ biểu diễn các
quan hệ đối tượng-khách, tiến hành thiết kế chi tiết. Bạn hãy giải thích những
công việc gì được làm trong từng bước.
6. Trong pha thiết kế, nhóm phát triển thường đi theo hai khuynh hướng sai lệch:
hoặc làm quá nhiều hoặc làm quá ít. Hãy phân tích nhược điểm của hai khuynh
hướng này chỉ ra rằng thiết kế chi tiết chỉ nên dừng mức biểu diễn bằng
PDL.
11
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
7. Hãy nêu một ví dụ về thiết kế chi tiết lớp.
8. Trong thực tế với những phần mềm mà dữ liệu được xây dựng bởi một phần mềm
tiện ích khác như Microsoft Access chẳng hạn, thì nên thêm bước thiết kế
sở dữ liệu. Nếu sẵn các công cụ thiết kế giao diện thì bước xây dựng đồ
biểu diễn quan hệ đối tượng-khách thể thay bằng bước thiết kế giao diện. Như
vậy trong trường hợp này các bước cần thực hiện trong pha thiết kế là: xây dựng
các biểu đồ tương tác, xây dựng biểu đồ lớp chi tiết, thiết kếsở dữ liệu thiết
kế giao diện. Bạn hãy giải thích rõ hơn hai bước sau cùng.
9. Hãy áp dụng kiến thức đã học để thực hiện pha thiết kế hướng đối tượng cho
phần mềm quản lý thư viện (hoặc một bài toán khác do bạn lựa chọn).
10. Hãy nêu khái niệm Thiết kế hệ thống là gì?
11.
12. Nêu quy trình thiết kế HT (phương pháp thiết kế hệ thống, thiết kế kiến trúc, thiết
kế giao diện phần mềm)
13. Phương pháp thiết kế hướng đối tượng
14. Hãy nêu 1 số khái niệm thiết kế cơ sở.
15. Hãy nêu các mô hình kiến trúc và phân tích 1 trong các mô hình đó.
16. So sánh thiết kế hướng đối tượng với hướng thủ tục, ưu, nhược điểm
Chương 7 (bổ sung thêm tổng quan về UML và phương pháp đối tượng)
1. UML là gì? UML có phải là một ngôn ngữ lập trình không? Nếu không phải
thì có điểm gì giống ngôn ngữ lập trình?
2. Hãy giải thích khái niệm mô hình trong UML.
3. Khái niệm hướng nhìn trong UML có phải là một thành phần biểu diễn có
thể nhìn thấy được như biểu đồ không? Bạn hiểu như thế nào về thuật ngữ
"các hướng nhìn của một phần mềm?"
4. Hãy giải thích các khái niệm "hướng nhìn theo trường hợp sử dụng" (use-case
view) và "hướng nhìn logic" (logical view) và sự khác biệt giữa chúng.
5. Hãy giải thích các khái niệm biểu đồ, phần tử mô hình và hệ thống con trong
UML.
12
Vai trò, nguyên lý và chất lượng thiết kế hệ thống?
?;<( %01%.5@7generalizaon I$%HJ$K#
0)+
LE@1%
LEK2%$
LE4M
LNE

9-1
%D

L
O$
PP#)QRRPP#)QRR
S/-T U#C%
O$
PPQ&%Q)RRPPQ&%Q)RR
D%V
#C
;1%
PPQ&%Q)RR
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
6. Use-case là gì và cách ký hiệu trong UML?
7. Tác nhân (actor) và cách ký hiệu trong UML?
8. Hãy giải thích biểu đồ use-case là gì và nêu một vài mục đích của nó.
10. Hãy giải thích kết hợp generalization giữa các use-case, cách ký hiệu và cho ví
dụ minh họa.
11. Hãy giải thích ý nghĩa của hình sau và nói rõ loại kết hợp nào được sử dụng:
12. Hãy giải thích ý nghĩa của hình sau và nói rõ loại kết hợp nào được sử dụng:
Sinh viên Sinh viên khoa CNTT
13. Hãy so sánh sự khác biệt giữa generalization, extend include thông qua
hình sau đây:
Chương 8. Kiểm thử và bảo trì
1. Có mấy loại sản phẩm phần mềm chính. Kiểm thử toàn bộ sản phẩm là gì?
2. Thế nào là kiểm thử chấp nhận
3. Hãy nêu các bước thực hiện kiểm thử trước khi chuyển cho khách hàng kiểm tra.
4. Kiểm thử chấp nhận là gì. Tập trung vào các yếu tố chính nào.
5. Cho các pha trước đó đã được thực hiện rất kỹ lưỡng, thì pha bảo trì đối với
một phần mềm không thể thiếu. hai dạng bảo trì: bảo trì sửa lỗi (software
repair) bảo trì cập nhật (software update). Bảo trì cập nhật còn được phân ra
13
Môn Công nghệ phần mềm
Nguyễn Đăng Khoa
làm hai loại: bảo trì thích nghi bảo trì hoàn thiện. Bảo trì hoàn thiện thường
chiếm kinh phí lớn nhất, khoảng 60% tổng kinh phí bảo trì, trong khi đó bảo trì
thích nghi bảo trì sửa lỗi mỗi loại chiếm khoảng 20%. Bạn hãy giải thích rõ
hơn những công việc gì cần làm trong mỗi loại bảo trì.
6. Người ta nói rằng phần mềm hướng đối tượng (tức là phân tích, thiết kế và cài đặt
được thực hiện theo phương pháp HĐT) thường dễ bảo trì hơn. Bạn hãy nêu lập
luận cho điều này.
Chương 9. Một số chủ đề nâng cao
1. Căn cứa vào đâu để ước lượng chi phí phần mềm.?
2. Quy trình ước lượng chi phí phát triển phần mềm.
3. Hãy nêu một số phương pháp ước lượng chi phí phát triển phần mềm.
4. Hãy nêu những đặc tính chức năng của chuẩn ISO 9126 về chất lượng phần
mềm.
14
| 1/14

Preview text:

CÂU HỎI ÔN TẬP

Các khái niệm cơ bản:

1.

Phần mềm là gì? Nhiệm vụ của kỹ sư phần mềm.

2. Người kỹ sư phần mềm phải có những kỹ năng cơ bản nào?

3.

Tại sao lại phải nghiên cứu cách thức xây dựng phần mềm 1 cách khoa học.

4.

Phần mềm được phân loại thành các nhóm chính như thế nào. Nêu ví dụ.

5. Miền ứng dụng của phần mềm?

6.

Công nghệ phần mềm là gì (Tiếng Anh). Các yếu tố chủ chốt của CNPM

7.

Hãy nói vòng đời của phần mềm

8. Nêu và phân tích các giai đoạn trong tiến trình phần mềm?

9.

Mục tiêu của CNPM.? Cho ví dụ và phân tích.

10. Thế nào là một phần mềm tốt (tiêu chuẩn đánh giá một phần mềm tốt)

Chương 1. Tổng quan về công nghệ phần mềm

Câu 1. Quy trình làm phần mềm là gì? Nêu các pha của quy trình làm phần mềm. Vì sao các pha cần được kiểm thử kỹ và báo cáo thành tài liệu chi tiết trước khi tiến hành các pha tiếp theo.

Câu 2. Mô hình xây dựng-và-hiệu chỉnh (build-and-fix model) có thể biểu diễn trong sơ đồ sau:

Xây dựng phiên

bản đầu tiên

Hiệu chỉnh cho đến khi khách hàng chấp nhận

Thôi sử dụng

Sử dụng và bảo trì

1

Hãy dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

Câu 3. Pha đặc tả đóng vai trò quan trọng như thế nào trong công nghiệp phần mềm. Hãy nêu và mô tả các bước tiến hành và những điều cần chú ý trong pha đặc tả.

Câu 4. Hãy nêu vai trò và mô tả nội dung công việc trong pha xác định yêu cầu trong công nghiệp phần mềm và trình bày rõ hơn các kỹ thuật được sử dụng trong pha này

Câu 5: Mô hình thác đổ (waterfall model) có thể biểu diễn trong sơ đồ sau:

Hãy dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

Câu 6. Hãy nêu mục tiêu và công việc kiểm thử trong pha cài đặt và pha tích hợp

Câu 7. Pha đặc tả đóng vai trò quan trọng như thế nào trong công nghiệp phần mềm. Hãy nêu và mô tả các bước tiến hành và những điều cần chú ý trong pha đặc tả.

Câu 8. Mô hình bản mẫu (rapid prototyping model) có thể biểu diễn trong sơ đồ sau:

2

Dựa vào sơ đồ này hãy giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

Bên cạnh sơ đồ này còn có sơ đồ biểu diễn mô thức làm bản mẫu. Hãy vẽ sơ đồ đó, rồi giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời so sánh với mô hình thác đổ. Vì sao người ta khuyên rằng không nên sửa chữa bản mẫu thành phần mềm chuyển giao?

Câu 9. Nêu rõ một số khái niệm: dự án, quản lý dự án, quản lý dự án phần mềm. Hãy mô tả để trở thành người quản lý dự án tốt cần phải có những kiến thức và kỹ năng gì? Giải thích tại sao quản lý dự án phần mềm thường khó khăn hơn các loại dự án khác ?

Câu 10. Hãy nêu nhiệm vụ của pha thiết kế và mô tả các công việc cần tiến hành trong pha thiết kế. Tại sao lại nói: Bản thiết kế là sự nối tiếp của bản báo cáo đặc tả.

Câu 11. Mô hình tăng dần (incremental model) có thể biểu diễn trong sơ đồ sau:

Dựa vào sơ đồ này hãy giải thích rõ hơn cách thức làm phần mềm theo mô hình này,

3

đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

Câu 12. Một dự án phần mềm được coi là thành công khi đạt được những mục tiêu nào? Hãy nêu một số sai lầm chủ yếu được rút ra từ những dự án thất bại. Nêu một số nguyên nhân làm cho đặc tả nghèo nàn.

Câu 13. Hãy nêu mục tiêu và công việc kiểm thử trong pha cài đặt và pha tích hợp.

Câu 14. Mô hình tăng dần đồng thời (concurrent incremental model) có thể biểu diễn trong sơ đồ sau:

Phần 1 Phân tích Thiết kế Cài đặt&

Chuyển giao cho

khách hàng

Tích hợp

Phần 2 Phân tích Thiết kế Cài đặt&

Chuyển giao cho

khách hàng

Tích hợp

Phần k

...

Thiết kế Cài đặt&

Tích hợp

Phân tích

Chuyển giao cho

khách hàng

Hãy dựa vào sơ đồ trên và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

Câu 15. Hãy nêu nhiệm vụ của pha thiết kế và mô tả các công việc cần tiến hành trong pha thiết kế. Tại sao lại nói: Bản thiết kế là sự nối tiếp của bản báo cáo đặc tả.

Câu 16. Vòng đời phần mềm và quy trình làm phần mềm là gì? Một quy trình phần mềm thường trải qua các pha nào? Nêu ý nghĩa của các pha.

Vì sao các pha của vòng đời cần được kiểm thử kỹ và báo cáo thành tài liệu chi tiết bởi nhóm thực hiện trước khi tiến hành các pha tiếp theo?

Câu 17. Bạn hãy mô tả cách thức làm phần mềm theo mô hình xoắn ốc (spiral model), đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

4

Câu 18. Pha đặc tả đóng vai trò quan trọng như thế nào trong công nghiệp phần mềm. Hãy nêu và mô tả các bước tiến hành và những điều cần chú ý trong pha đặc tả.

Chương 2: Những vấn đề trong phát triển phần mềm

  1. Những thách thức mà phần mềm lỗi thời gây ra?
  2. Thử nghiệm dựa trên rủi ro là gì?
  3. Hãy phân tích rủi ro trong kiểm thử phần mềm là gì?
  4. Hãy nêu các rủi ro sản phẩm trong kiểm thử phần mềm
  5. Rủi ro của dự án gây nguy hiểm cho dự án là gì?
  6. Hãy nêu các kỹ thuật phân tích rủi ro?
  7. Bạn hiểu thế nào về quản lý rủi ro?
  8. Hãy nêu những thách thức và cơ hội trong Công nghệ phần mềm trong thời đại

Công nghệ 4.0.

Chương 3. Quy trình phát triển phần mềm

  1. Thế nào là quy trình làm phần mềm (tiếng Anh).Giải thích và cho ví dụ.
  2. Nêu và mô tả các pha trong quy trình phần mềm.
  3. Tại sao các pha của vòng đời phần mềm cần được kiểm thử kỹ và báo cáo lại thành tài liệu chi tiết bởi nhóm thực hiện trước khi tiến hành các pha tiếp theo

5

  1. Hãy nêu và phân tích pha xác định yêu cầu là gì? Kiểm thử pha này ra sao. Tài liệu báo cáo phải như thế nào.
  2. Hãy nêu và phân tích pha đặc tả (hay pha phân tích) là gì? Kiểm thử pha này ra sao. Tài liệu báo cáo phải như thế nào.
  3. Hãy nêu và phân tích pha thiết kế là gì? Kiểm thử pha này ra sao. Tài liệu báo cáo phải như thế nào.
  4. Hãy nêu và phân tích pha cài đặt là gì? Kiểm thử pha này ra sao. Tài liệu báo cáo phải như thế nào.
  5. Hãy nêu và phân tích pha bảo trì là gì? Kiểm thử pha này ra sao. Tài liệu báo cáo phải như thế nào.
  6. Nêu các lý do tại sao sau nhiều năm sử dụng, phần mềm có thể trở nên không cần thiết và không còn cần sự bảo trì nữa ?
  7. Nêu những điểm khác nhau giữa Pha đặc tả (pha phân tích) và Pha xác định

yêu cầu?

Chương 4. Các mô hình phát triển phẩn mềm

  1. Hãy kể ra một số mô hình xây dựng phần mềm và nêu 1 mô hình trong số đó. Nêu ưu, nhược điểm của mô hình nay.
  2. Hãy trình bày sơ lược (có thể biểu diễn, vẽ) mô hình xây dựng và hiệu chỉnh . Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
  3. Hãy trình bày sơ lược (có thể biểu diễn,vẽ) mô hình tuyến tich (mô hình thác đổ) . Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
  4. Hãy trình bày sơ lược (có thể biểu diễn, vẽ) mô hình chế thử (bản mẫu). Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này ,đồng thời so sánh với mô hình thác đổ. Vì sao người ta khuyên rằng không nên sửa chữa bản mẫu thành phần mềm chuyển giao?

6

  1. Hãy trình bày sơ lược (có thể biểu diễn, vẽ) mô hình phát triển ứng dụng nhanh. Dựa vào sơ đồ và giải thích rõ hơn cách thức làm phần mềm theo mô hình này
  2. Hãy biểu diễn (vẽ) sơ đồ mô hình tăng dần .Dựa vào sơ đồ này và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
  3. Hãy biểu diễn (vẽ) sơ đồ mô hình tăng dần đồng thời. Dựa vào sơ đồ này và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
  4. Hãy biểu diễn (vẽ) sơ đồ mô hình xoắn ốc. Dựa vào sơ đồ này và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
  5. Hãy biểu diễn (vẽ) sơ đồ mô hình xoắn WinWin. Dựa vào sơ đồ này và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.
  6. Hãy biểu diễn (vẽ) sơ đồ mô hình XP. Dựa vào sơ đồ này và giải thích rõ hơn cách thức làm phần mềm theo mô hình này, đồng thời nêu những mặt ưu điểm, nhược điểm của nó.

Chương 5. Quản lý dự án phần mềm

  1. Hãy trình bày các khái niệm: dự án, quản lý dự án, quản lý dự án công nghệ thông tin và cho ví dụ.
  2. Để trở thành người quản lý dự án tốt thì kiến thức và kỹ năng về phát triển phần mềm chưa đủ. Cần có những kỹ năng về quản lý như: giám sát và kiểm tra, quy hoạch, quan hệ với khách hàng và vai trò lãnh đạo kỹ thuật. Bạn hãy giải thích rõ hơn về các kỹ năng này và cho ví dụ minh họa nếu thấy cần thiết.
  3. Người ta cho rằng quản lý dự án phần mềm thường khó khăn hơn việc quản lý các dự án khác. Bạn hãy nêu một số lý do và ví dụ cho nhận định này.
  4. Ba mục tiêu cần đạt tới của một dự án phần mềm là: lịch trình, trong phạm vi ngân sách và đúng yêu cầu khách hàng. Nếu một vài mục tiêu trên đây không đạt

7

được thì có nghĩa là dự án thất bại không, vì sao? Yếu tố quan trọng nhất quyết định sự thành công của một dự án phần mềm là gì?

  1. Từ những dự án phần mềm thất bại, người ta đã rút ra một số sai lầm chủ yếu thường gặp trong quản lý dự án phần mềm. Bạn hãy nêu ra một số sai lầm như vậy.
  2. Một trong những trở ngại mà người quản lý dự án thường gặp là thiếu sự ủng hộ của quản lý cấp trên về việc áp dụng công nghệ mới. Vì sao thường có điều này và người quản lý dự án nên khắc phục như thế nào?
  3. Trong quá trình phát triển dự án phần mềm có thể có nhiều vấn đề phát sinh cần giải quyết, trong đó có những vấn đề xảy ra khá bất ngờ nhưng cũng có những vấn đề có thể dự đoán trước và có thể phòng ngừa. Bạn hãy nêu một số biện pháp phòng ngừa chủ yếu.
  4. Hãy nêu một số tình huống (nguyên nhân) thường làm nảy sinh các vấn đề đối với dự án phần mềm.
  5. Từ thực tế có thể thấy rằng phần lớn lỗi phần mềm có nguồn gốc từ lỗi ở pha đặc tả. Vai trò của pha đặc tả là mô tả sản phẩm phần mềm cần xây dựng. Nếu đặc tả không đầy đủ thì phần mềm rất khó đáp ứng được yêu cầu khách hàng. Một số nguyên nhân làm cho đặc tả nghèo nàn là: quên các đặc điểm, có những đặc điểm không cần thiết được đưa vào, đặc điểm hoạt động không đúng như khách hàng mong đợi, những đặc điểm cần thiết nhưng không ai nghĩ đến. Bạn hãy mô tả rõ hơn và cho ví dụ minh họa về các nguyên nhân này.
  6. Hãy giải thích về hội chứng "mục tiêu di động" trong quản lý dự án phần mềm.
  7. Hãy nêu một số vấn đề liên quan đến dự toán của một dự án phần mềm như các loại dự toán: ngân sách, lịch trình, tài nguyên, kỹ thuật, những sai lầm thường gặp...
  8. Vì sao nên cập nhật dự toán theo một định kỳ đều đặn?
  9. Thường thì mọi yếu tố liên quan đến dự án còn phụ thuộc vào các nguồn lực bên ngoài. Hãy nêu ra một số nguồn như thế và các vấn đề thường nảy sinh bởi sự phụ thuộc này.
  10. Trong việc dự án phần mềm thì vấn đề tuyển dụng được các thành viên phát triển

8

có chất lượng và giữ được đội ngũ ổn định là yếu tố quan trọng nhất để bảo đảm sự thắng lợi. Nếu không giữ được đội ngũ ổn định, để cho sự thuyên chuyển và xáo trộn xẩy ra thường xuyên thì sẽ nẩy sinh những vấn đề gì?

  1. Vì sao việc theo dõi và giám sát tiến độ thực hiện dự án được xem là một trong những hoạt động quản lý quan trọng nhất? Làm thế nào để nhà quản lý có thể lấy được những thông tin chính xác về dự án?
  2. Những vấn đề thường nảy sinh khi kết thúc dự án là gì? Người quản lý dự án phải làm gì để bảo đảm cho việc kết thúc dự án có trật tự và thắng lợi?
  3. Trong quản lý dự án thì phân tích rủi ro là một phương tiện hiệu quả để chống lại các vấn đề tiềm ẩn. Hãy nói rõ phân tích rủi ro trong dự án phần mềm là gì? Những ưu điểm và nhược điểm của kỹ thuật này.
  4. Hợp đồng phí cộng thêm là gì? Những ưu điểm và nhược điểm của loại hợp đồng này đối với nhà phát triển cũng như đối với khách hàng.
  5. Hợp đồng giá cố định là gì? Những ưu điểm và nhược điểm của loại hợp đồng này đối với nhà phát triển cũng như đối với khách hàng.
  6. Ngoài hai loại hợp đồng chính là phí cộng thêm và giá cố định, còn có dạng quan hệ khác giữa khách hàng và nhà phát triển như: phối hợp phí cộng thêm và giá cố định, liên doanh, thỏa thuận bản quyền, cam kết quan hệ lâu dài. Bạn hãy giải thích rõ hơn các dạng quan hệ này.
  7. Trước khi đưa ra một dự án phần mềm cần trả lời được một số câu hỏi. Bạn hãy nêu một số câu hỏi mà bạn cho là quan trọng nhất.
  8. Phát triển phần mềm theo hợp đồng thường bắt đầu từ việc khách hàng lựa chọn người phát triển. Trước hết tổ chức cần có phần mềm phải chuẩn bị một hồ sơ giới thiệu dự án và gửi cho các công ty, tổ chức hay cá nhân có thể tham gia phát triển phần mềm. Hồ sơ này được gọi là hồ sơ mời thầu (requirement for proposal

- RFP, hoặc requirement for tender - RFT). Một RFP bao gồm 8 phần: (1) Mô tả vấn đề và mục tiêu của dự án, (2) Các yêu cầu kỹ thuật, (3) Thông tin về quản trị,

(4) Yêu cầu về chi phí, (5) Tài liệu tham khảo, (6) Những sản phẩm cần chuyển giao khi kết thúc dự án, (7) Định dạng cho hồ sơ dự thầu, (8) Lịch trình và lịch quyết định. Bạn hãy giải thích rõ hơn ý nghĩa của từng phần.

9

  1. Có ba cách để phân phát RFP, đó là những cách nào?
  2. Một công ty phần mềm có thể kiến nghị với khách hàng về việc phát triển phần mềm. Có ba lý do để kiến nghị: do yêu cầu, không do yêu cầu hoặc tổ hợp của hai loại. Bạn hãy giải thích rõ hơn từng trường hợp.
  3. Khi nào thì một công ty phần mềm tự đề xuất với khách hàng về vấn đề xây dựng phần mềm và một kiến nghị như vậy có những phần cơ bản nào? Nói chung một bản kiến nghị xây dựng phần mềm phải nhằm trả lời cầu hỏi gì của khách hàng?
  4. Một bản kiến nghị đáp lại RFP được gọi là hồ sơ dự thầu. Một kiến nghị tốt phải trả lời được sáu câu hỏi: ai, cái gì, tại sao, thế nào, khi nào, bao nhiêu. Bạn hãy nêu các câu hỏi một cách rõ ràng, chi tiết hơn.
  5. Hãy trình bày một số đặc trưng của quá trình xét duyệt lựa chọn hồ sơ dự thầu.
  6. Các kỹ sư phần mềm có đặc trưng gì khác so với các kỹ sư ở các lĩnh vực công nghệ khác, ví dụ như năng suất làm việc chẳng hạn.
  7. Hãy vẽ và giải thích sơ đồ vắn tắt biểu diễn cơ cấu nhân sự của một dự án lớn.
  8. Hãy nêu các vai trò của một lãnh đạo nhóm làm việc trong một dự án phần mềm.
  9. Hãy nêu một số đặc trưng của kiểu nhóm dân chủ.
  10. Hãy nêu một số đặc trưng của kiểu nhóm kỹ sư trưởng.
  11. Khi nào thì một nhóm chuyên gia được thành lập và chức năng của nó là gì? Vì sao cách tổ chức tốt nhất của nhóm chuyên gia là theo hình thức dân chủ?
  12. Với người quản lý dự án thì điều chủ yếu là thường xuyên nhận được báo cáo về tình hình thực hiện dự án. Điều này được thực hiện nếu luôn luôn đảm bảo được luồng thông tin chính xác đều đặn từ các nhóm phát triển. Hãy trình bày một số cách thu thập thông tin thông qua báo cáo.
  13. Một số nguyên tắc được sử dụng trong quản lý kỹ sư phần mềm là:

Quản lý thỏa thuận tốt hơn quản lý chỉ thị, trách nhiệm phải đi đôi với thẩm quyền, quy tắc chung là chỉ với sai lầm rõ ràng mới phải bắt buộc hiệu chỉnh, thẩm quyền không những liên quan đến nhiệm vụ mà còn liên quan đến lịch trình, và động cơ là yếu tố quan trọng nhất. Bạn hãy giải thích rõ hơn các nguyên tắc này.

  1. Hãy trình bày kỹ thuật phân giải dự án phần mềm: kỹ thuật tinh chỉnh từng bước,

10

kỹ thuật phân giải chức năng, phân giải thiết kế và mối quan hệ giữa chúng.

Chương 7. Thiết kế và lập trình

  1. Thiết kế một phần mềm gồm ba công việc: thiết kế tổng thể, thiết kế chi tiết và kiểm thử thiết kế. Hãy nêu các tên gọi khác nhau của các công việc này và giải thích cụ thể hơn trong từng công việc phải làm gì?
  2. Nếu trong pha đặc tả phương pháp cấu trúc được sử dụng thì trong pha thiết kế người ta thường sử dụng hai kỹ thuật hướng hành động để phân rã phần mềm thành các module, là phân tích dòng dữ liệu (data flow analysis, DFA) và phân tích giao dịch (transaction analysis). Về mặt lý thuyết thì DFA có thể sử dụng nếu các đặc tả được biểu diễn bởi các DFD. Và bởi vì phần lớn các phần mềm đều có thể biểu diễn bởi các DFD, do đó DFA được sử dụng khá rộng rãi. Bạn hãy mô tả rõ hơn cách phân rã phần mềm sử dụng kỹ thuật DFA thông qua ví dụ cụ thể.
  3. Bạn hãy nêu một ví dụ về thiết kế chi tiết module cho thiết kế theo phương pháp cấu trúc.
  4. Thiết kế chi tiết thường độc lập với ngôn ngữ lập trình. Tuy nhiên nếu người quản lý quyết định ngôn ngữ lập trình trước khi thực hiện thiết kế chi tiết thì người ta thường dùng ngôn ngữ mô tả chương trình (a program description language, PDL), hay còn gọi là mã giả (pseudocode) để biểu diễn thiết kế chi tiết. PDL thực chất là các lời chú dẫn được nối với các từ khóa của ngôn ngữ đã lựa chọn. Bạn hãy nêu một ví dụ sử dụng PDL.
  5. Thiết kế hướng đối tượng bao gồm 4 bước sau đây: xây dựng các biểu đồ tương tác cho từng scenario, xây dựng biểu đồ lớp chi tiết, xây dựng sơ đồ biểu diễn các quan hệ đối tượng-khách, tiến hành thiết kế chi tiết. Bạn hãy giải thích những công việc gì được làm trong từng bước.
  6. Trong pha thiết kế, nhóm phát triển thường đi theo hai khuynh hướng sai lệch: hoặc làm quá nhiều hoặc làm quá ít. Hãy phân tích nhược điểm của hai khuynh hướng này và chỉ ra rằng thiết kế chi tiết chỉ nên dừng ở mức biểu diễn bằng PDL.

11

  1. Hãy nêu một ví dụ về thiết kế chi tiết lớp.
  2. Trong thực tế với những phần mềm mà dữ liệu được xây dựng bởi một phần mềm tiện ích khác như Microsoft Access chẳng hạn, thì nên có thêm bước thiết kế cơ sở dữ liệu. Nếu có sẵn các công cụ thiết kế giao diện thì bước xây dựng sơ đồ biểu diễn quan hệ đối tượng-khách có thể thay bằng bước thiết kế giao diện. Như vậy trong trường hợp này các bước cần thực hiện trong pha thiết kế là: xây dựng các biểu đồ tương tác, xây dựng biểu đồ lớp chi tiết, thiết kế cơ sở dữ liệu thiết kế giao diện. Bạn hãy giải thích rõ hơn hai bước sau cùng.
  3. Hãy áp dụng kiến thức đã học để thực hiện pha thiết kế hướng đối tượng cho phần mềm quản lý thư viện (hoặc một bài toán khác do bạn lựa chọn).
  4. Hãy nêu khái niệm Thiết kế hệ thống là gì? 11.

Vai trò, nguyên lý và chất lượng thiết kế hệ thống?

  1. Nêu quy trình thiết kế HT (phương pháp thiết kế hệ thống, thiết kế kiến trúc, thiết

kế giao diện phần mềm)

  1. Phương pháp thiết kế hướng đối tượng
  2. Hãy nêu 1 số khái niệm thiết kế cơ sở.
  3. Hãy nêu các mô hình kiến trúc và phân tích 1 trong các mô hình đó.
  4. So sánh thiết kế hướng đối tượng với hướng thủ tục, ưu, nhược điểm

Chương 7 (bổ sung thêm tổng quan về UML và phương pháp đối tượng)

    1. UML là gì? UML có phải là một ngôn ngữ lập trình không? Nếu không phải thì có điểm gì giống ngôn ngữ lập trình?
    2. Hãy giải thích khái niệm mô hình trong UML.
    3. Khái niệm hướng nhìn trong UML có phải là một thành phần biểu diễn có thể nhìn thấy được như biểu đồ không? Bạn hiểu như thế nào về thuật ngữ "các hướng nhìn của một phần mềm?"
    4. Hãy giải thích các khái niệm "hướng nhìn theo trường hợp sử dụng" (use-case view) và "hướng nhìn logic" (logical view) và sự khác biệt giữa chúng.
    5. Hãy giải thích các khái niệm biểu đồ, phần tử mô hình và hệ thống con trong

UML.

12

    1. Use-case là gì và cách ký hiệu trong UML?
    2. Tác nhân (actor) và cách ký hiệu trong UML?
    3. Hãy giải thích biểu đồ use-case là gì và nêu một vài mục đích của nó.

9. Hãy giải thích kết hợp (association) generalization giữa các actor, cách ký hiệu

và cho ví dụ minh họa.

  1. Hãy giải thích kết hợp generalization giữa các use-case, cách ký hiệu và cho ví dụ minh họa.
  2. Hãy giải thích ý nghĩa của hình sau và nói rõ loại kết hợp nào được sử dụng:

Gửi tiết kiệm

Gửi ký hạn 6 tháng

Gửi không kỳ hạn

  1. Hãy giải thích ý nghĩa của hình sau và nói rõ loại kết hợp nào được sử dụng:

Sinh viên Sinh viên khoa CNTT

  1. Hãy so sánh sự khác biệt giữa generalization, extend include thông qua hình sau đây:

Giao ở cửa

hàng

Mang đến

tận nhà

Giao hàng

Bán hàng

<<include>> <<include>>

In hóa đơn

Xuất hàng

Bán hàng

<<extend>> <<extend>>

Nhập hàng từ nhà cung cấp

Hết hàng

<<extend>>

Chương 8. Kiểm thử và bảo trì

  1. Có mấy loại sản phẩm phần mềm chính. Kiểm thử toàn bộ sản phẩm là gì?
  2. Thế nào là kiểm thử chấp nhận
  3. Hãy nêu các bước thực hiện kiểm thử trước khi chuyển cho khách hàng kiểm tra.
  4. Kiểm thử chấp nhận là gì. Tập trung vào các yếu tố chính nào.
  5. Cho dù các pha trước đó đã được thực hiện rất kỹ lưỡng, thì pha bảo trì đối với một phần mềm là không thể thiếu. Có hai dạng bảo trì: bảo trì sửa lỗi (software repair) và bảo trì cập nhật (software update). Bảo trì cập nhật còn được phân ra

13

làm hai loại: bảo trì thích nghi và bảo trì hoàn thiện. Bảo trì hoàn thiện thường chiếm kinh phí lớn nhất, khoảng 60% tổng kinh phí bảo trì, trong khi đó bảo trì thích nghi và bảo trì sửa lỗi mỗi loại chiếm khoảng 20%. Bạn hãy giải thích rõ hơn những công việc gì cần làm trong mỗi loại bảo trì.

  1. Người ta nói rằng phần mềm hướng đối tượng (tức là phân tích, thiết kế và cài đặt được thực hiện theo phương pháp HĐT) thường dễ bảo trì hơn. Bạn hãy nêu lập luận cho điều này.

Chương 9. Một số chủ đề nâng cao

    1. Căn cứa vào đâu để ước lượng chi phí phần mềm.?
    2. Quy trình ước lượng chi phí phát triển phần mềm.
    3. Hãy nêu một số phương pháp ước lượng chi phí phát triển phần mềm.
    4. Hãy nêu những đặc tính chức năng của chuẩn ISO 9126 về chất lượng phần

mềm.

14