NEW
Font size
WorksheetsChương 1: Tổng quan về phát triển phần mềm
Total questions: 54
Worksheet time: 27mins
Khái niệm phần mềm gồm những gì?
Chỉ mã nguồn chương trình
Chỉ dữ liệu (CSDL)
Chương trình + dữ liệu/cấu trúc dữ liệu + tài liệu liên quan
Chỉ giao diện người dùng
Đường cong tỉ lệ hỏng hóc của phần cứng và phần mềm có dạng gì?
Phần cứng: đường thẳng; Phần mềm: hình chữ U
Phần cứng: hình “bồn tắm” (bathtub); Phần mềm: giảm dần rồi ổn định (không hao mòn vật lý)
Phần cứng: tăng dần; Phần mềm: tăng dần
Phần cứng: giảm dần; Phần mềm: hình “bồn tắm”
Ba tiêu chí định tính đánh giá chất lượng phần mềm là gì?
Giá rẻ – nhanh – nhiều tính năng
Hiệu quả (effectiveness) – Dễ bảo trì (maintainability) – Dễ hiểu (understandability)
Đẹp – dễ dùng – marketing tốt
Ít dòng code – chạy nhanh – dễ viết
Đặc trưng ngày càng quan trọng theo thời gian là:
Hiệu quả (effectiveness)
Dễ hiểu (understandability)
Đẹp giao diện
Chạy nhanh
Các pha chính trong quy trình phát triển phần mềm gồm:
Ý tưởng – bán hàng – bảo hành
Phân tích yêu cầu – thiết kế – lập trình – kiểm thử – bảo trì
Thiết kế – chạy thử – đóng gói
Phỏng vấn – viết báo cáo – trình bày
Pha nào quyết định chính đến chất lượng phần mềm?
Lập trình và thiết kế
Phân tích yêu cầu và thiết kế
Triển khai và marketing
Bán hàng và bảo hành
Pha nào chiếm tỉ lệ ngân sách cao nhất hiện nay?
Phân tích yêu cầu
Thiết kế
Bảo trì
Lập trình
Theo CHAOS (phương pháp thống kê truyền thống), dự án “thành công” dựa trên tiêu chí nào?
Đúng yêu cầu + đúng ngân sách + đúng thời gian
Đúng yêu cầu + bảo mật tốt
Có tài liệu đầy đủ
Dùng công nghệ mới
Theo CHAOS (phương pháp thống kê hiện đại), dự án “thành công” xét theo:
Chỉ đúng tiến độ
Chỉ đúng ngân sách
Đạt giá trị/lợi ích mong muốn (value/outcome) cho tổ chức/khách hàng, không chỉ time-cost-scope
Chỉ đủ chức năng
Trong mô hình vòng đời cổ điển (Waterfall), khách hàng tham gia vào pha nào nhiều nhất?
Chỉ lập trình
Chủ yếu ở phân tích yêu cầu và nghiệm thu/bàn giao
Chỉ kiểm thử nội bộ
Không tham gia
Mô hình xử lý tăng dần (Incremental) có thể gồm:
Mô hình gia tăng, RAD, phát triển theo phiên bản
Waterfall, Big Bang, V-Model
Spiral, Prototyping, Agile
Chỉ Waterfall
Mô hình quy trình tiến hóa (Evolutionary) gồm:
Waterfall, V-Model
Prototyping, Spiral (xoắn ốc)
Big Bang, Code-and-fix
RAD, Waterfall
Trong mô hình bản mẫu (Prototyping), khách hàng tham gia mạnh ở pha nào?
Lập trình chi tiết
Đánh giá bản mẫu/ phản hồi yêu cầu (lặp nhiều lần)
Cài đặt phần cứng
Quản trị mạng
Tái sử dụng nguyên mẫu là yếu tố quyết định thành công trong mô hình nào?
Waterfall
Prototyping kiểu “làm mẫu rồi phát triển tiếp” và RAD (dựa trên tái sử dụng thành phần)
V-Model
Agile
Khác nhau cơ bản giữa Spiral và Spiral Win-Win là:
Win-Win bỏ phân tích rủi ro
Win-Win bổ sung cơ chế “đàm phán win-win” giữa các bên liên quan trước cam kết
Win-Win không có khách hàng
Win-Win chỉ áp dụng cho dự án nhỏ
Lợi ích của chuyển giao nhiều giai đoạn trong mô hình gia tăng là:
Giảm chi phí lần đầu chuyển giao; chức năng cốt lõi được đưa ra sớm; rút ngắn thời gian hoàn thành nhờ làm song song
Tăng chi phí lần đầu; chức năng cốt lõi đưa ra muộn; kéo dài thời gian
Không ảnh hưởng chi phí và tiến độ
Chỉ giúp tăng tài liệu
Mô hình gia tăng là kết hợp giữa:
Prototype và Spiral
Waterfall và ý tưởng lặp lại (iterative)
Big Bang và RAD
V-Model và Agile
Ưu điểm của mô hình gia tăng là:
Không cần người dùng phản hồi
Giao hàng sớm từng phần, giảm rủi ro, dễ thay đổi theo phản hồi, dễ kiểm soát tiến độ
Không cần kiểm thử
Làm một lần xong luôn
Mô hình tạo mẫu + lặp, chu kỳ ngắn 60–90 ngày là:
Waterfall
RAD
V-Model
Big Bang
So với mô hình truyền thống, RAD:
Kém đáp ứng thay đổi nhưng ít áp lực ký hợp đồng
Tốt đáp ứng thay đổi, ít áp lực ký hợp đồng sớm; nhưng đòi hỏi nhân lực giỏi và hiểu rõ nghiệp vụ
Không cần người dùng tham gia, không cần nhân lực mạnh
Luôn rẻ hơn mọi mô hình
Cần tạo hệ sơ khai để thu thập yêu cầu qua thiết kế nhanh thì nên dùng:
Waterfall
Prototyping
V-Model
Big Bang
Thiết kế hệ thống và thiết kế phần mềm khác nhau ở:
Hệ thống: thiết kế cấu trúc tổng thể/kiến trúc; Phần mềm: thiết kế chi tiết/cấu trúc thành phần
Hệ thống: chi viết code; Phần mềm: chi viết tài liệu
Hệ thống: chi giao diện; Phần mềm: chi CSDL
Không có khác nhau
Thiết kế tập trung vào 4 thuộc tính phân biệt của chương trình gồm:
Dữ liệu – kiến trúc – giao diện – thành phần (module/thuật toán)
Màu sắc – font chữ – icon – hiệu ứng
CPU – RAM – ổ cứng – mạng
Marketing – bán hàng – bảo hành – báo cáo
Phát biểu đúng về quy trình phát triển phần mềm là:
Gồm tập bước có nguyên lý nhưng không cần thực hành
Vòng đời phần mềm chia pha: phân tích – thiết kế – lập trình – kiểm thử – bảo trì
Pha lập trình quyết định nhất đến chất lượng phần mềm
Không cần xét duyệt chất lượng giữa các pha
Đặc điểm đúng của các pha trong vòng đời phần mềm là:
Pha thiết kế, chế tạo theo hướng top-down; pha kiểm thử theo hướng bottom-up; chuyển pha khi đã kiểm thử xong
Mỗi pha độc lập, không liên quan nhau
Không cần kiểm tra giữa các pha
Chỉ pha bảo trì có xét duyệt chất lượng
Đặc điểm đúng nhất về vai trò các pha trong vòng đời phần mềm:
Pha yêu cầu và thiết kế quyết định chất lượng, chiếm phần lớn công sức dự án
Pha lập trình quyết định chất lượng
Pha kiểm thử là quan trọng nhất
Pha khảo sát thực hiện sau khi thiết kế
Bước đầu tiên trong hầu hết mô hình phát triển phần mềm là:
Xây dựng mô hình đối tượng
Định nghĩa phối hợp các module
Xác định yêu cầu phần mềm
Chọn ngôn ngữ lập trình
Mục tiêu của kỹ nghệ phần mềm là:
Phần mềm đẹp và nhanh
Phần mềm giá rẻ
Phần mềm rẻ và tin cậy
Phần mềm nhiều chức năng
Đặc trưng nào sau đây là sai về phần mềm:
Lỗi phần mềm tuân theo đường cong “bồn tắm” như phần cứng
Phần mềm không hao mòn nhưng dễ lạc hậu
Phần mềm luôn có lỗi tiềm ẩn
Lỗi phần mềm thường do người ngoài phát hiện
Tiêu chí nào không thuộc phần mềm tốt:
Phản ánh đúng yêu cầu người dùng
Chứa ít lỗi tiềm tàng
Không cần chi phí bảo trì, chỉ cần chi phí phát triển
Tính dễ hiểu ngày càng quan trọng
Loại phần mềm nào không cần bảo trì sau khi bàn giao:
Phần mềm AI
Phần mềm thời gian thực
Phần mềm nhúng
Không có phần mềm nào hoàn toàn không cần bảo trì
Khó khăn trong phát triển phần mềm là:
Tài liệu nhanh lỗi thời
Không thể đo chất lượng định lượng
Mất nhiều thời gian và chi phí
Cả 3 đáp án trên đúng
Khi yêu cầu rõ ràng, cần nguyên mẫu để quảng bá → mô hình phù hợp là:
Mô hình thác nước (Waterfall)
Mô hình xoắn ốc
Mô hình gia tăng
Mô hình Agile
Mô hình phát triển dựa trên định hướng rủi ro là:
Mô hình xoắn ốc (Spiral)
Waterfall
Bản mẫu
Gia tăng
Khi chưa rõ input/output và xử lý → chọn mô hình:
Waterfall
Bản mẫu (Prototyping)
Gia tăng
Xoắn ốc
Khi yêu cầu đầy đủ, muốn phần mềm rẻ và tin cậy → chọn:
Mô hình thác nước
Bản mẫu
Xoắn ốc
Win-Win
Mô hình xoắn ốc phù hợp để phát triển loại phần mềm nào?
Phần mềm quy mô lớn, rủi ro cao
Module nhỏ
Thời gian thực
Trí tuệ nhân tạo
Mô hình xoắn ốc phù hợp khi:
Có rủi ro kỹ thuật cao
Không cần kiểm thử
Yêu cầu đã xác định đầy đủ
Không áp dụng được lặp
Đặc điểm đúng của mô hình xoắn ốc là:
Tiến hóa qua nhiều vòng lặp, mỗi vòng gồm bước thác nước + bản mẫu để phát hiện lỗi sớm
Chỉ là chuỗi thác nước
Không có kiểm thử
Mỗi hoạt động thực hiện 1 lần duy nhất
Mô hình thác nước phù hợp nhất với dự án:
Nhỏ, yêu cầu rõ ràng, ít thay đổi
Phức tạp, nhiều rủi ro
Liên tục thay đổi
Không thể chia module
Mô hình dùng để tạo hệ sơ khai thu thập yêu cầu là:
Mô hình bản mẫu (Prototyping)
Waterfall
RAD
V-Model
Mô hình chia nhiều giai đoạn chuyển giao tăng dần là mô hình nào?
Xoắn ốc
Win-Win
Gia tăng (Incremental)
Bản mẫu
Cách tiếp cận áp dụng các bước tuần tự của phát triển phần mềm là mô hình nào?
Mô hình thác nước (Waterfall)
Bản mẫu
Gia tăng
Xoắn ốc
Mô hình gia tăng áp dụng tư tưởng của mô hình nào?
Thác nước và bản mẫu
RAD
Chỉ bản mẫu
Spiral
Mô hình xoắn ốc áp dụng tư tưởng của mô hình nào?
Thác nước và bản mẫu
RAD
Gia tăng
Không mô hình nào
Phân tích rủi ro trong mô hình xoắn ốc gồm những gì?
Rủi ro kỹ thuật
Rủi ro quản lý
Cả rủi ro kỹ thuật và quản lý
Không có rủi ro
Mô hình phù hợp cho dự án dưới 3 tháng là mô hình nào?
Waterfall
Spiral
Gia tăng
RAD (Rapid Application Development)
Khác biệt giữa RAD và RAD kết hợp 4GT là gì?
RAD+4GT tự sinh mã code theo nhu cầu lập trình viên
RAD+4GT chỉ có pha kiểm thử
RAD+4GT sinh bản thiết kế tự động
Tất cả đều đúng
Spiral bổ sung yếu tố nào so với Waterfall và Prototype?
Phân tích rủi ro (Risk Analysis)
Kiểm thử tích hợp
Sinh mã tự động
Đánh giá hiệu năng
Mô hình Win-Win (Barry Boehm) có đặc điểm nào là đúng?
Chỉ khách hàng được lợi
Có đàm phán “hai bên cùng thắng” tại các điểm LCO–LCA–IOC
Không có kiểm thử
Không có rủi ro
Khi xác định rủi ro trong Spiral Model, cần thực hiện điều gì trước?
Theo mẫu Boehm template
Đặt độ ưu tiên và xử lý rủi ro cao trước
Dừng dự án nếu có rủi ro
Tất cả đúng
Đặc điểm đúng của Spiral Model là gì?
Mô hình tiến hóa, làm mịn dần yêu cầu qua các vòng
Không có vòng lặp
Không có kiểm thử
Chỉ dùng cho AI
Đặc điểm không đúng của mô hình gia tăng là gì?
Có phiên bản tăng dần
Là sự tiến hóa chi tiết hơn
Không phải chuỗi tuần tự thác nước
Không hợp với dự án yêu cầu thay đổi thường xuyên
Mô hình xoắn ốc Win-Win được mô tả như thế nào?
Có đàm phán cùng khách hàng tại giai đoạn đặc tả yêu cầu; cả hai cùng thắng; nhấn mạnh các điểm neo LCO, LCA, IOC
Giống thác nước
Không có kiểm thử
Không có khách hàng
