NEW
Font size
WorksheetsBTPM Part 1
Total questions: 59
Worksheet time: 44mins
Thành phần nào KHÔNG thuộc định nghĩa đầy đủ của phần mềm theo McDermid?
Mã nguồn và mã đối tượng
Tài liệu (đặc tả, thiết kế, kiểm thử, hướng dẫn)
Thủ tục vận hành
Máy chủ vật lý và cơ sở hạ tầng mạng
Theo chuẩn IEEE 1219, bảo trì phần mềm là gì?
Phát triển hoàn toàn hệ thống mới từ đầu
Sửa đổi sản phẩm sau khi phát hành để hiệu chỉnh lỗi, cải thiện hiệu năng hoặc thích ứng với môi trường mới
Chỉ bao gồm việc sửa lỗi (bug fixing)
Toàn bộ hoạt động từ lúc bắt đầu dự án đến khi kết thúc
Yêu cầu thay đổi nào phát sinh từ nhu cầu làm cho phần mềm chạy trên hệ điều hành mới?
Thay đổi hiệu chỉnh
Thay đổi thích ứng
Thay đổi hoàn thiện
Thay đổi dự phòng
Hoạt động nào giúp "làm thuận tiện công việc bảo trì tương lai"?
Sửa lỗi khẩn cấp
Cấu trúc lại (refactor) code và cập nhật tài liệu
Chỉ nâng cấp phần cứng
Giảm thiếu tương tác với người dùng
Loại yêu cầu thay đổi nào bắt nguồn từ việc mở rộng chức năng hiện có của hệ thống?
Thay đổi hiệu chỉnh
Thay đổi thích ứng
Thay đổi hoàn thiện
Thay đổi dự phòng
Yếu tố nào sau đây là một trở ngại chính cho việc thay đổi phần mềm?
Chất lượng hệ thống hiện hành quá tốt
Có đầy đủ tài liệu cập nhật
Thiếu bảo trì viên được đào tạo và có kỹ năng
Người dùng luôn nhiệt tình đón nhận thay đổi
Yếu tố nhân sự nào ảnh hưởng lớn đến bảo trì do việc hầu hết hệ thống được bảo trì bởi người không phải tác giả gốc?
Thực tiễn làm việc
Sự thành thạo về lĩnh vực
Tốc độ thay thế nhân viên
Mức lương
Việc "hiểu chương trình" (program comprehension) chiếm khoảng bao nhiêu phần trăm công sức bảo trì?
10%
30%
50%
70%
Chi phí sửa lỗi (fixing bugs) cao nhất ở giai đoạn nào trong chu kỳ sống phần mềm?
Phân tích và đặc tả yêu cầu.
Thiết kế.
Lập trình.
Vận hành và bảo trì.
Tại sao việc phân loại các yêu cầu thay đổi (hiệu chỉnh, thích ứng, hoàn thiện, dự phòng) lại quan trọng, mặc dù chúng thường đan xen trong thực tế?
Để tăng số lượng công việc cho nhóm bảo trì
Để xác định và ưu tiên giải quyết các yêu cầu một cách hiệu quả hơn
Để có thể bỏ qua một số loại yêu cầu
Chỉ để phục vụ cho mục đích báo cáo, không ảnh hưởng đến thực thi
Mối quan hệ "Sản phẩm/Môi trường" trong khung làm việc bảo trì được hiểu là:
Môi trường được tạo ra bởi sản phẩm phần mềm.
Sản phẩm phần mềm tồn tại độc lập, không chịu tác động từ môi trường.
Sản phẩm phần mềm phải "kế thừa" những thay đổi trong môi trường điều hành và tổ chức.
Môi trường chỉ ảnh hưởng đến nhân sự, không ảnh hưởng đến sản phẩm.
Tại sao các hệ thống "già" (legacy) lại là trở ngại lớn cho việc thay đổi?
Vì chúng quá phức tạp, việc thay đổi là không thể
Vì chúng thường có chất lượng kém sau nhiều lần sửa chữa, cấu trúc phức tạp, tài liệu thiếu.
Vì không ai muốn sử dụng chúng nữa nên không cần thiết thay đổi
Vì chúng chạy quá chậm, khó kiểm soát.
Bảo trì dự phòng (Preventive) được coi là "chủ động" hay "bị động"?
Bị động, chờ lỗi xảy ra mới sửa.
Chủ động, tìm kiếm và sửa các vấn đề tiềm ẩn trước khi chúng gây ra lỗi.
Bị động, chỉ làm khi khách hàng yêu cầu.
Chủ động khi biết được các thay đổi của môi trường hoặc pháp luật.
Một lập trình viên khi đọc code của module "Xử lý đơn hàng" thấy rằng có nhiều đoạn code trùng lặp ở 5 nơi khác nhau. Anh ta quyết định tái cấu trúc (refactor), gom chúng vào một hàm duy nhất để dễ quản lý và giảm khả năng sai sót khi cần sửa đổi sau này. Anh ta đang thực hiện loại bảo trì nào?
Bảo trì hiệu chỉnh
Bảo trì hoàn thiện
Bảo trì dự phòng
Bảo trì thích ứng
Điểm yếu lớn nhất của mô hình Hiệu chỉnh nhanh là gì?
Tốc độ xử lý chậm
Thiếu phân tích tác động và quản lý rủi ro
Chi phí triển khai ban đầu cao
Không phù hợp với hệ thống nhỏ
Mô hình lặp và tăng trưởng dựa trên giả định cơ bản nào?
Yêu cầu luôn ổn định và đầy đủ ngay từ đầu.
Yêu cầu chỉ được làm rõ sau nhiều lần lặp và phản hồi.
Tài liệu quan trọng hơn mã nguồn.
Người dùng không cần tham gia vào quá trình.
Chuẩn IEEE 1219 (1998) tổ chức quy trình bảo trì thành mấy giai đoạn chính?
5 giai đoạn
6 giai đoạn
7 giai đoạn
8 giai đoạn
Điều khoản nào sau đây thường KHÔNG xuất hiện trong một hợp đồng bảo trì chuẩn?
Các định nghĩa thuật ngữ.
Phạm vi dịch vụ bảo trì.
Mã nguồn đầy đủ của phần mềm.
Điều khoản về chi phí và thanh toán.
Kiểm thử hồi quy (Regression Testing) nhằm mục đích chính nào?
Phát hiện các lỗi mới trong chức năng vừa thêm.
Đảm bảo thay đổi mới không làm hỏng chức năng hiện có.
Kiểm tra hiệu năng của hệ thống dưới tải cao.
Đánh giá trải nghiệm người dùng.
Kế hoạch bảo trì nên được lập tốt nhất vào thời điểm nào?
Chỉ sau khi phần mềm gặp sự cố đầu tiên.
Trong giai đoạn phát triển phần mềm.
Sau khi hợp đồng bảo trì đã ký kết.
Khi dự án sắp kết thúc.
Thách thức lớn nhất trong giai đoạn "Chuyển tiếp" (Transition) thường là gì?
Chỉ phí mua phần cứng mới
Việc chuyển giao tri thức và kinh nghiệm phi tài liệu (tacit knowledge) về hệ thống.
Đào tạo người dùng về các tính năng cơ bản.
Thay đổi về môi trường hoạt động
Việc lưu giữ dữ liệu và phần mềm cũ sau khi "Ngừng sử dụng" chủ yếu phục vụ mục đích gì?
Để bán lại cho các công ty khác
Để khôi phục trong trường hợp khẩn cấp.
Để giảm tải cho hệ thống lưu trữ hiện tại.
Để sử dụng lại cho các dự án hoàn toàn mới.
Nếu một yêu cầu thay đổi bị từ chối ở giai đoạn "Phân tích", lý do chính thường là gì?
Lập trình viên không muốn làm
Không đủ tài nguyên, vượt quá phạm vi hợp đồng
Người dùng không biết cách sử dụng hệ thống
Hệ thống quản lý cấu hình bị lỗi
Khi chuyển toàn bộ hệ thống website thương mại điện tử từ máy chủ vật lý lên nền tảng đám mây AWS, hoạt động bảo trì chính nào sẽ được áp dụng và cần chú ý đặc biệt đến bước nào?
Bảo trì hiệu chỉnh; Chú ý sửa lỗi nhanh
Bảo trì thích ứng; Chú ý lập kế hoạch di dời và vận hành song song
Bảo trì hoàn thiện; Chú ý thêm tính năng mới
Bảo trì dự phòng; Chú ý refactor code
Việc sửa đổi hệ thống COBOL để đọc/ghi đúng định dạng file mới khi chuyển sang hệ thống Java thông qua file text là dạng bảo trì nào?
Bảo trì hiệu chỉnh (sửa lỗi giao diện)
Bảo trì thích ứng (thích ứng với môi trường tích hợp mới)
Bảo trì hoàn thiện (nâng cấp chức năng)
Bảo trì dự phòng (tối ưu hóa code)
Bốn bước chính trong Mô hình Tái sử dụng (Reuse Model) bao gồm những gì?
Phân tích, Thiết kế hệ thống, Cài đặt mã nguồn, Kiểm thử
Nhận dạng, Hiểu thành phần, Hiệu chỉnh, Tích hợp
Lập kế hoạch, Dò tìm dữ liệu, Ngưng sử dụng, Lưu trữ
Tiếp nhận yêu cầu, Đánh giá rủi ro, Phê chuẩn, Thực hiện
Trong quản lý cấu hình (SCM), thuật ngữ "Đường cơ sở" (Baseline) ám chỉ điều gì?
Một phiên bản phần mềm đã được duyệt dùng làm mốc so sánh
Dòng mã lệnh đầu tiên được viết trong chương trình
Bản kế hoạch ngân sách dự kiến ban đầu của dự án
Danh sách toàn bộ nhân sự tham gia dự án từ đầu
Đội bảo trì gặp khó khăn do tài liệu không khớp với mã nguồn. Mô hình phù hợp nhất để tránh điều này là?
Quick-Fix
Lặp và Tăng trưởng
Boehm
Tái sử dụng
Đâu là yếu tố ảnh hưởng đến sự hiểu phần mềm?
Kinh nghiệm bảo trì viên, chất lượng tài liệu, công cụ hỗ trợ
Ngôn ngữ lập trình, hệ điều hành, phần cứng
Quy mô dự án, ngân sách, thời hạn
Số lượng người dùng, tần suất sử dụng, vị trí địa lý
Gia công bảo trì phần mềm thường áp dụng với loại phần mềm nào?
Phần mềm lớn kinh doanh
Phần mềm ít quan trọng
Phần mềm mã nguồn mở
Phần mềm thử nghiệm
Ba thực thể chính trong phép đo bảo trì là gì?
Quy trình, tài nguyên, sản phẩm
Mã nguồn, tài liệu, nhân sự
Thời gian, chi phí, chất lượng
Yêu cầu, thiết kế, kiểm thử
Công thức tính độ phức tạp McCabe là gì?
v(G) = e – n + 2
v(G) = n – e + 2
v(G) = e + n – 2
v(G) = n + e × 2
Tính dễ hiểu của phần mềm thường tỉ lệ nghịch với yếu tố nào?
Độ phức tạp
Kích thước mã nguồn
Tuổi phần mềm
Số người dùng
Yếu tố kỹ thuật nào làm giảm chi phí bảo trì?
Tài liệu chất lượng cao
Mã nguồn phức tạp
Ngôn ngữ cấp thấp
Module phụ thuộc nhiều
Các loại điểm chức năng chính gồm những gì?
EI, EO, EQ, ILF, EIF
LOC, FP, CPLX, QUAL
UI, UX, DB, API
Dev, Test, Ops, Maint
Phân tích tác động dựa vào mã lệnh có nhược điểm gì?
Tốn thời gian, cần chi tiết thực thi, phạm vi giới hạn
Không chính xác, khó áp dụng, không hỗ trợ UML
Chỉ dùng được cho ngôn ngữ C, không hỗ trợ OOP
Yêu cầu tài liệu đầy đủ, không cần mã nguồn
Phép đo LOC bị hạn chế vì lý do nào sau đây?
Không có chuẩn chung, phụ thuộc ngôn ngữ, không phản ánh chất lượng
Khó đếm chính xác, không áp dụng được cho mã nguồn đóng
Chỉ đo được mã nguồn, không đo được tài liệu
Tốn nhiều thời gian tính toán, khó tự động hóa
Độ phức tạp McCabe cao (>10) cho thấy điều gì?
Chương trình khó hiểu và khó bảo trì, cần xem xét tái cấu trúc
Chương trình có nhiều chức năng, cần thêm nhân sự
Chương trình chạy chậm, cần tối ưu hiệu năng
Chương trình dễ kiểm thử, ít lỗi tiềm ẩn
Một phần mềm có 3 EI đơn giản, 2 EO trung bình, 1 ILF phức tạp. Điểm chức năng thô (UFP) là bao nhiêu?
34
40
45
50
Khi ước lượng chi phí bảo trì bằng FP, nếu tổng hệ số kỹ thuật (ΣFi) = 45, điểm chức năng năng điều chỉnh (AFP) được tính bằng công thức nào?
AFP = UFP × (0.65 + 0.01 × 45)
AFP = UFP × (0.65 + 45)
AFP = UFP × 45
AFP = UFP / (0.65 + 0.01 × 45)
Ý nghĩa của "dòng mã lệnh delta" trong đo lường kích thước/thước bảo trì là gì?
Là tổng số dòng lệnh của chương trình sau khi bảo trì xong
Là số dòng lệnh được thêm vào hoặc được hiệu chỉnh trong quá trình bảo trì
Là số dòng lệnh bị xóa bỏ khỏi chương trình gốc ban đầu
Là số dòng lệnh chú thích được viết thêm để giải thích code
Dự án có 100 điểm chức năng (FP). Sử dụng ngôn ngữ Java (trung bình 55 LOC/FP). Hãy ước lượng kích thước phần mềm theo dòng lệnh (LOC)?
550 LOC
5500 LOC
55000 LOC
1000 LOC
Loại bảo trì nào tập trung vào việc sửa các lỗi (defects) trong phần mềm?
Bảo trì thích ứng
Bảo trì hoàn thiện
Bảo trì hiệu chỉnh
Bảo trì dự phòng
Theo nghiên cứu được trích dẫn, chi phí bảo trì phần mềm chiếm khoảng bao nhiêu phần trăm tổng chi phí vòng đời?
10%
20%
40%
60%
"Hiệu ứng gợn sóng" (Ripple Effect) trong bảo trì phần mềm là gì?
Chỉ phí bảo trì tăng theo cấp số nhân
Ảnh hưởng của một thay đổi ở nơi này lên các phần khác của hệ thống
Hiệu quả tăng dần theo thời gian khi hệ thống được tối ưu
Sự lan truyền lỗi từ người dùng này sang người dùng khác
Trong so sánh với phát triển mới, bảo trì phần mềm đòi hỏi tư duy nào?
Chỉ "nhìn lại" (look back)
Chỉ "nhìn tới" (look ahead)
Vừa "nhìn lại" vừa "nhìn tới"
Tập trung hoàn toàn vào công nghệ mới
Việc "vá lỗi" (patching) khẩn cấp thường dẫn đến hậu quả gì?
Làm giảm vĩnh viễn độ phức tạp của chương trình
Có thể làm tăng độ phức tạp và gây ra các hiệu ứng gợn sóng không lường trước
Giúp hệ thống chạy nhanh hơn gấp đôi
Loại bỏ hoàn toàn nhu cầu bảo trì trong tương lai
Theo McDermid, thành phần của phần mềm bao gồm những gì?
Chỉ mã nguồn (source code).
Mã nguồn và mã đối tượng.
Mã nguồn, mã đối tượng, tài liệu và các thủ tục vận hành.
Chương trình và cơ sở dữ liệu
Trong khung làm việc của bảo trì phần mềm, "Môi trường tổ chức" bao gồm yếu tố nào?
Hệ điều hành và trình biên dịch.
Phần cứng máy tính.
Các quy tắc nghiệp vụ và chính sách của chính phủ.
Các công cụ kiểm thử tự động.
Lý do sâu xa nào khiến "sức cỉa người sử dụng" trở thành một yếu tố cản trở thay đổi phần mềm?
Người dùng không biết sử dụng máy tính.
Người dùng sợ thay đổi vì đã quen với hệ thống cũ.
Người dùng luôn đòi hỏi thay đổi quá nhiều.
Người dùng là các lập trình viên.
Một lập trình viên nhận thấy đoạn mã xử lý chuỗi trong hệ thống quá rối rắm và khó hiểu, mặc dù nó vẫn chạy đúng. Anh ta quyết định viết lại đoạn mã đó cho sạch sẽ và dễ đọc hơn (Refactoring). Đây là loại bảo trì gì?
Bảo trì hiệu chỉnh
Bảo trì hoàn thiện
Bảo trì dự phòng
Bảo trì thích ứng
Trọng tâm chính của mô hình Boehm (1983) là gì?
Tự động hóa kiểm thử
Phân tích kinh tế và quyết định quản lý
Tái sử dụng thành phần phần mềm
Cập nhật tài liệu liên tục
Yếu tố cốt lõi của Mô hình Tái sử dụng (Reuse Model) là gì?
Hợp đồng bảo trì chi tiết
Kho chứa (repository) các thành phần và tài liệu
Quy trình kiểm thử tự động
Đội ngũ Help Desk chuyên nghiệp
Giai đoạn "Phân tích" trong mô hình IEEE 1219 KHÔNG bao gồm việc gì?
Nghiên cứu phạm vi và tính khả thi của thay đổi.
Lập kế hoạch sơ bộ cho thiết kế, cài đặt, kiểm thử.
Trực tiếp lập trình sửa lỗi.
Phân tích chi phí và lợi ích.
Thành phần nào thường KHÔNG có trong Ban Kiểm soát Cấu hình (CCB)?
Đại diện khách hàng.
Đại diện tổ chức bảo trì.
Lập trình viên thực thi chính.
Đại diện người dùng cuối.
Công việc "Thẩm tra" (Verification) trong hoạt động "Phân tích vấn đề và sự thay đổi" nhằm mục đích gì?
Lập kế hoạch dự án chi tiết.
Xác nhận rằng vấn đề được báo cáo là có thật và có thể tái hiện.
Phê duyệt ngân sách cho thay đổi.
Viết tài liệu hướng dẫn sử dụng mới.
Việc định nghĩa rõ ràng các thuật ngữ như "lỗi nghiêm trọng" hay "thời gian phản hồi" trong hợp đồng nhằm mục đích gì?
Làm cho hợp đồng trông chuyên nghiệp hơn
Tránh hiểu lầm và tranh chấp về nghĩa vụ và trách nhiệm giữa các bên.
Giới hạn quyền lợi của khách hàng.
Kéo dài thời gian thực hiện dịch vụ.
Theo ISO/IEC/IEEE 14764, việc "Lập các thủ tục cho yêu cầu thay đổi" thuộc về hoạt động nào?
Phân tích vấn đề và sự thay đổi.
Thực thi sự thay đổi.
Thực thi quy trình.
Di dời.
Sự khác biệt cốt lõi giữa "Thực thi sự thay đổi" trong bảo trì và "Phát triển mới" là gì?
Bảo trì không cần phân tích hoặc thiết kế.
Bảo trì phải làm việc trong các ràng buộc của hệ thống hiện có.
Phát triển mới không cần kiểm thử.
Bảo trì luôn sử dụng ngôn ngữ lập trình khác.
