NEW
Font size
Worksheetslong2
Total questions: 50
Worksheet time: 25mins
Quy trình phần mềm là gì?
Tập hợp các công cụ lập trình
Tập hợp có cấu trúc gồm các hoạt động để phát triển hệ thống phần mềm
Một loại phần mềm ứng dụng
Bộ phận quản lý dự án
Bốn hoạt động chính của quy trình phần mềm gồm:
Lập kế hoạch, lập trình, kiểm thử, bảo trì
Đặc tả, thiết kế và hiện thực, thẩm định, tiến hóa
Thiết kế, lập trình, triển khai, vận hành
Phân tích, thiết kế, phát triển, bán hàng
Mô hình thác nước (Waterfall) thuộc loại quy trình nào?
Quy trình linh hoạt (Agile)
Quy trình định hướng kế hoạch (Plan-driven)
Quy trình phối hợp (Collaborative)
Quy trình tự động
Nhược điểm chính của mô hình thác nước là:
Dễ dàng đáp ứng thay đổi
Khó khăn trong việc thay đổi sau khi quá trình bắt đầu
Không có giai đoạn kiểm thử
Phù hợp với mọi dự án
Phát triển tăng dần (Incremental development) có ưu điểm nào sau đây?
Giảm chi phí đáp ứng yêu cầu thay đổi của khách hàng
Phải hoàn thành toàn bộ đặc tả trước khi phát triển
Không có sự phản hồi từ khách hàng
Chỉ phù hợp với phần mềm nhỏ
Vấn đề thường gặp khi phát triển tăng dần là:
Quá trình phát triển quá minh bạch
Cấu trúc hệ thống dễ bị suy giảm khi thêm các increment mới
Không cần tài liệu
Không cần tái cấu trúc phần mềm
Phương pháp tích hợp và cấu hình dựa trên:
Viết phần mềm mới hoàn toàn
Tái sử dụng phần mềm hiện có (COTS)
Phát triển phần mềm bằng tay
Chỉ dùng phần mềm nguồn mở
Giai đoạn nào sau đây KHÔNG thuộc mô hình thác nước?
Phân tích yêu cầu
Thiết kế hệ thống
Kiểm thử tích hợp
Giao hàng liên tục
Yếu tố nào KHÔNG phải là một trong các hoạt động của quy trình phần mềm?
Đặc tả phần mềm
Phát triển phần mềm
Thẩm định phần mềm
Tiếp thị sản phẩm
Quy trình linh hoạt (Agile) có đặc điểm gì?
Lập kế hoạch chi tiết từ đầu đến cuối
Lập kế hoạch từng bước và dễ thay đổi để phản ánh yêu cầu mới
Không có kế hoạch nào cả
Không cho phép phản hồi từ khách hàng
Trong quy trình phần mềm, yêu cầu kỹ thuật thường được xử lý trong giai đoạn nào?
Đặc tả phần mềm
Phát triển phần mềm
Thẩm định phần mềm
Tiến hóa phần mềm
Các hoạt động thiết kế phần mềm bao gồm:
Thiết kế kiến trúc, thiết kế cơ sở dữ liệu, thiết kế giao diện, lựa chọn và thiết kế thành phần
Viết code và kiểm thử
Phân tích yêu cầu và bảo trì
Quản lý dự án và bán hàng
Mục tiêu chính của thẩm định phần mềm là:
Kiểm tra xem phần mềm có chạy nhanh không
Đảm bảo phần mềm đáp ứng đúng yêu cầu khách hàng
Thiết kế giao diện đẹp
Viết tài liệu sử dụng
Giai đoạn kiểm thử nào được thực hiện đầu tiên trong mô hình thác nước?
Kiểm thử hệ thống
Kiểm thử tích hợp
Kiểm thử thành phần (unit testing)
Kiểm thử khách hàng
Một đặc điểm quan trọng của phần mềm là:
Không thể thay đổi sau khi phát triển
Có thể tiến hóa để đáp ứng các yêu cầu mới
Chỉ sử dụng một lần duy nhất
Luôn có lỗi
Nguyên nhân chính của chi phí phát triển phần mềm tăng cao khi thay đổi là:
Yêu cầu thay đổi dẫn đến làm lại nhiều công việc
Lập trình viên làm việc không hiệu quả
Thiết kế giao diện phức tạp
Không sử dụng ngôn ngữ lập trình hiện đại
Phương pháp "thay đổi dự đoán trước" (Change anticipation) giúp gì cho quy trình phần mềm?
Giảm thiểu việc làm lại công việc lớn bằng cách chuẩn bị trước cho các thay đổi có thể xảy ra
Làm lại toàn bộ hệ thống khi có thay đổi
Bỏ qua yêu cầu thay đổi
Tăng thời gian phát triển
Phương pháp "chịu đựng thay đổi" (Change tolerance) là:
Thiết kế hệ thống sao cho thay đổi có thể thực hiện với chi phí thấp
Không cho phép thay đổi trong quá trình phát triển
Bỏ qua phản hồi khách hàng
Tăng thời gian kiểm thử
Prototyping trong quy trình phần mềm nhằm mục đích:
Phát triển hệ thống cuối cùng hoàn chỉnh
Tạo ra phiên bản ban đầu để thử nghiệm và xác nhận yêu cầu
Bỏ qua việc thiết kế chi tiết
Làm tài liệu phần mềm
Ưu điểm của việc phát triển tăng dần (Incremental delivery) là:
Giao phần mềm sớm, khách hàng có thể dùng và phản hồi
Không có sự tham gia của khách hàng
Tăng chi phí phát triển
Giảm chất lượng phần mềm
Khi phát triển phần mềm theo mô hình tăng dần, yêu cầu về các increment sau:
Có thể thay đổi bất cứ lúc nào
Bị đóng băng khi bắt đầu phát triển increment đó
Luôn cố định từ đầu dự án
Không cần tài liệu
Mô hình tái sử dụng phần mềm (Reuse-oriented development) là:
Phát triển phần mềm mới hoàn toàn
Xây dựng hệ thống từ các thành phần phần mềm có sẵn
Không cần kiểm thử
Chỉ phát triển phần mềm nhúng
Nhược điểm của việc phát triển phần mềm theo hướng tái sử dụng là:
Không thể kiểm soát được sự tiến hóa của các thành phần tái sử dụng
Chi phí phát triển cao
Thời gian phát triển dài
Không phù hợp với phần mềm doanh nghiệp
Quy trình đo lường và cải tiến quy trình phần mềm nhằm mục đích:
Tăng chất lượng sản phẩm và giảm chi phí phát triển
Tăng số lượng lỗi phần mềm
Giảm tài liệu phát triển
Không quan tâm đến phản hồi khách hàng
Mô hình mức trưởng thành (Capability Maturity Model - CMM) dùng để:
Đánh giá mức độ trưởng thành của quy trình phần mềm trong tổ chức
Phân tích yêu cầu phần mềm
Kiểm thử phần mềm
Phát triển phần mềm theo mô hình thác nước
Mức độ "Initial" trong CMM có đặc điểm gì?
Quy trình được kiểm soát tốt
Quy trình không được kiểm soát, hay thay đổi và khó dự đoán
Quy trình tối ưu và cải tiến liên tục
Quy trình đã được chuẩn hóa và áp dụng trên toàn tổ chức
Mức độ "Optimizing" trong CMM là:
Mức độ đầu tiên trong mô hình
Mức độ tổ chức chưa có quy trình chuẩn
Mức độ mà quy trình được cải tiến liên tục dựa trên đo lường và phân tích
Mức độ mà quy trình chưa được định nghĩa
Hoạt động "Process measurement" trong cải tiến quy trình phần mềm là:
Thu thập dữ liệu định lượng về quy trình và sản phẩm phần mềm
Xây dựng phần mềm mới
Quản lý dự án
Viết tài liệu hướng dẫn sử dụng
Việc "Process change" trong cải tiến quy trình phần mềm gồm:
Đề xuất và thực hiện các thay đổi để giải quyết các điểm yếu trong quy trình hiện tại
Ngừng phát triển phần mềm
Tăng số lỗi phần mềm
Bỏ qua phản hồi khách hàng
Trong các mô hình quy trình phần mềm, mô hình nào cho phép các hoạt động được tổ chức xen kẽ nhau?
Waterfall
Incremental development
V-Model
Spiral
Việc kiểm thử phần mềm nhằm mục đích:
Tìm và sửa lỗi trong phần mềm
Giảm thời gian phát triển
Tăng chi phí phát triển
Không cần thiết nếu thiết kế tốt
Kiểm thử hệ thống (System testing) tập trung vào:
Kiểm thử từng thành phần riêng lẻ
Kiểm thử toàn bộ hệ thống và các tính năng nổi bật
Kiểm thử giao diện người dùng
Kiểm thử tài liệu
Kiểm thử với dữ liệu của khách hàng (Customer testing) nhằm đảm bảo:
Phần mềm chạy nhanh hơn
Hệ thống đáp ứng đúng nhu cầu thực tế của khách hàng
Tài liệu đầy đủ
Phần mềm có giao diện đẹp
Trong mô hình thác nước, các giai đoạn được thực hiện:
Đồng thời
Theo thứ tự tuần tự, không chuyển sang giai đoạn sau khi chưa hoàn thành giai đoạn trước
Linh hoạt tùy ý
Không cần kiểm thử giữa các giai đoạn
Mô hình phát triển phần mềm nào được sử dụng phổ biến trong các dự án có yêu cầu thay đổi liên tục?
Waterfall
Agile
V-Model
Big Bang
"Requirement elicitation" trong quy trình đặc tả phần mềm là gì?
Viết code theo yêu cầu
Thu thập và phân tích yêu cầu của các bên liên quan
Kiểm thử phần mềm
Thiết kế giao diện
Trong quá trình phát triển phần mềm, "refactoring" là hoạt động:
Thêm tính năng mới
Cải tiến cấu trúc phần mềm mà không làm thay đổi chức năng bên ngoài
Xóa bỏ module cũ
Tăng tốc độ lập trình
Khi nào thì mô hình phát triển Waterfall phù hợp nhất?
Khi yêu cầu không ổn định và thay đổi liên tục
Khi yêu cầu được hiểu rõ và ít thay đổi
Khi khách hàng không tham gia phát triển
Khi dự án nhỏ và ngắn hạn
Đặc điểm nào KHÔNG phải của quy trình Agile?
Lập kế hoạch từng bước
Đáp ứng nhanh với thay đổi yêu cầu
Giao hàng sớm các phần mềm có giá trị
Tách biệt các giai đoạn phát triển theo trình tự cứng nhắc
Mục tiêu chính của process improvement là:
Tăng chi phí phát triển
Tăng chất lượng sản phẩm và giảm thời gian phát triển
Giảm sự tham gia của khách hàng
Tăng số lỗi phần mềm
Quy trình phần mềm được hiểu là:
Các hoạt động liên quan đến việc xây dựng một hệ thống phần mềm
Một loại phần mềm ứng dụng
Bộ phận của phần cứng máy tính
Quản lý nhân sự trong dự án
Mô hình quy trình phần mềm là gì?
Các công cụ lập trình
Các biểu diễn trừu tượng của quy trình phần mềm
Phần mềm được phát triển theo mô hình Agile
Bộ phận kiểm thử phần mềm
Các mô hình quy trình phổ biến bao gồm:
Mô hình thác nước, phát triển tăng dần, phát triển theo hướng tái sử dụng
Mô hình Scrum, Kanban, Lean
Mô hình thác nước, Big Bang, waterfall
Mô hình Agile, Waterfall, Spiral
Kỹ thuật yêu cầu (Requirements engineering) nhằm mục đích gì?
Xác định rõ phần mềm cần làm gì
Viết code phần mềm
Kiểm thử phần mềm
Quản lý dự án phần mềm
Thiết kế và triển khai (Design and implementation) liên quan đến:
Viết tài liệu dự án
Chuyển đổi đặc tả yêu cầu thành hệ thống phần mềm thực thi được
Kiểm thử giao diện người dùng
Tạo kế hoạch dự án
Thẩm định phần mềm (Software validation) nhằm mục đích:
Kiểm tra hệ thống có đúng đặc tả không và đáp ứng nhu cầu thực tế của người dùng
Viết tài liệu hướng dẫn
Tối ưu hóa mã nguồn
Đánh giá chi phí dự án
Tiến hóa phần mềm (Software evolution) xảy ra khi nào?
Phần mềm được phát triển lần đầu
Hệ thống phần mềm hiện tại thay đổi để đáp ứng yêu cầu mới
Phần mềm bị lỗi nặng
Phần mềm được viết lại hoàn toàn
Trong quy trình phần mềm, hai hoạt động chính để đối phó với sự thay đổi là:
Lập kế hoạch và lập trình
Tạo nguyên mẫu (prototyping) và triển khai tăng dần (incremental delivery)
Thiết kế và kiểm thử
Quản lý dự án và bảo trì
Quy trình phần mềm có thể được cấu trúc để phát triển theo kiểu nào?
Một lần và hoàn chỉnh
Phân phối theo vòng lặp (lặp lại) giúp thay đổi không làm gián đoạn toàn bộ hệ thống
Chỉ theo mô hình thác nước
Không cần quy trình
Hai phương pháp chính để cải tiến quy trình phần mềm là:
Phương pháp thác nước và phương pháp Big Bang
Phương pháp linh hoạt (Agile) và phương pháp dựa trên mức độ trưởng thành (Maturity-based)
Phương pháp đo lường và phương pháp quản lý nhân sự
Phương pháp phát triển thủ công và tự động hóa
