WorksheetsThiết kế Phần mềm
Total questions: 71
Worksheet time: 36mins
Khi phân tích dự án phần mềm, câu hỏi cốt lõi nào cần được trả lời?
Cần làm CÁI GÌ?
Ai sẽ thực hiện?
Khi nào hoàn thành?
Chi phí là bao nhiêu?
Giai đoạn thiết kế phần mềm chủ yếu nhằm mục đích gì?
Tạo ra giải pháp kỹ thuật đáp ứng yêu cầu đã phân tích
Tăng tốc độ phát triển phần mềm
Giảm chi phí sản xuất
Tăng cường bảo mật
Phân tích và thiết kế trong quy trình phát triển phần mềm có quan hệ như thế nào?
Tương tác và chuyển hóa lẫn nhau
Hoàn toàn độc lập
Không liên quan
Chỉ thực hiện một lần
Quá trình chuyển mô hình thiết kế thành phần mềm thực thi được gọi là gì?
Triển khai mô hình thiết kế
Phân tích yêu cầu
Kiểm thử phần mềm
Bảo trì hệ thống
Tác dụng của Factoring và Partitioning trong tổ chức mô hình là gì?
Tăng tính phụ thuộc giữa các lớp
Giảm tính gắn kết giữa các mô-đun
Tách các lớp thành phần lớn thành các mô-đun độc lập
Tăng sự phụ thuộc giữa các mô-đun
Lớp nào trong kiến trúc phần tầng đảm nhận công việc xử lý nghiệp vụ?
Presentation Layer
Data Access Layer
Business Logic Layer
Network Layer
Tại sao dùng kế thừa trong mô hình lớp của phần mềm?
Để giảm tính linh hoạt của hệ thống
Để tăng trùng lặp mã
Để thể hiện quan hệ phân cấp giữa các class
Để giảm khả năng mở rộng
Lợi thế nổi bật khi xây dựng phần mềm theo hướng tùy chỉnh là gì?
Khả năng kiểm soát giao diện hạn chế
Khả năng tùy biến hoàn toàn để đáp ứng chính xác các yêu cầu đặc thù
Khả năng tích hợp khó khăn với công nghệ hiện tại
Tính linh hoạt thấp trong giải quyết vấn đề
Nguy cơ lớn nhất khi phát triển phần mềm tùy chỉnh là gì?
Đòi hỏi ít nỗ lực chuyên dụng
Rủi ro cao và không đảm bảo dự án sẽ thành công
Dễ dàng dự đoán các trở ngại kỹ thuật
Khả năng hoàn thành dự án nhanh chóng
Lợi ích nổi bật khi dùng phần mềm đóng gói so với tùy chỉnh là gì?
Thời gian triển khai dài hơn
Tích hợp chuyên môn và kinh nghiệm của nhà cung cấp
Độ tin cậy thấp hơn
Chi phí cao hơn
Rủi ro phổ biến khi áp dụng phần mềm đóng gói vào doanh nghiệp là gì?
Tính năng hoàn toàn phù hợp
Không cần thay đổi quy trình nghiệp vụ
Thiếu sự phù hợp hoàn hảo
Không cần giải pháp thay thế
Tác động tích cực của outsourcing đến công nghệ và nguồn lực là gì?
Tăng chi phí và gánh nặng nguồn lực
Giảm khả năng tiếp cận công nghệ
Khả năng tiếp cận nhanh chóng chuyên môn và công nghệ cao cấp
Tăng yêu cầu nguồn lực nội bộ
Vấn đề quản lý phổ biến gặp phải khi thuê ngoài offshore là gì?
Kiểm soát chất lượng dễ dàng
Không có rào cản ngôn ngữ
Rủi ro quản lý lớn nhất là kiểm soát kém chất lượng và tiến độ
Không có vấn đề về múi giờ
Quá trình tích hợp hệ thống bao gồm những công việc chính nào?
Tạo mẫu thử, xác nhận và kiểm tra
Lớp bao bọc hệ thống hiện có, chuyển đổi dữ liệu, tích hợp thông qua API
Phân tích yêu cầu, thiết kế và triển khai
Kiểm thử, bảo trì và nâng cấp
Object Wrapper hỗ trợ như thế nào trong việc tích hợp hệ thống cũ và mới?
Tạo giao diện người dùng mới
Tăng tốc độ xử lý dữ liệu
Cho phép hệ thống hướng đối tượng gửi thông điệp và tương tác một cách trừu tượng và an toàn
Tích hợp các công cụ phát triển phần mềm
Verification đảm bảo điều gì trong quá trình kiểm tra thiết kế phần mềm?
Đảm bảo cấu hình hệ thống đáp ứng yêu cầu
Đảm bảo từng phần tử trong kiến trúc nhất quán với phần tử đã được thiết kế trước đó
Đảm bảo hệ thống hoạt động hiệu quả
Đảm bảo giao diện người dùng thân thiện
Validation xác nhận điều gì về hệ thống hay sản phẩm phần mềm?
Cấu hình cấu trúc đáp ứng yêu cầu cơ bản
Hệ thống có thể mở rộng
Phần mềm dễ sử dụng
Tích hợp dễ dàng với các hệ thống khác
Tại sao tạo mẫu (prototyping) lại quan trọng trong thiết kế phần mềm?
Giúp giảm chi phí phát triển
Giúp người dùng trải nghiệm giao diện trước khi lập trình, thu thập phản hồi sớm
Tăng tốc độ phát triển phần mềm
Đảm bảo phần mềm không có lỗi
Những yếu tố phi chức năng nào cần được xem xét khi thiết kế?
Hiệu năng, bảo mật, khả năng mở rộng
Tính khả dụng, độ tin cậy, khả năng phục hồi
Khả năng bảo trì, hiệu năng, bảo mật
Tất cả các yếu tố trên
Quá trình xác định các thành phần và cách chúng tương tác trong phần mềm được gọi là gì?
Thiết kế giao diện người dùng
Kiến trúc phần mềm
Phân tích yêu cầu
Kiểm thử phần mềm
Lý do quan trọng nhất để có một thiết kế phần mềm tốt là gì, đặc biệt liên quan đến chi phí bảo trì?
Giảm thời gian phát triển
Tăng tính thẩm mỹ
Giảm chi phí bảo trì
Tăng số lượng người dùng
UML giúp hỗ trợ công việc gì trong thiết kế phần mềm hướng đối tượng?
A. Tăng chi phí bảo trì
B. Trực quan hóa, giao tiếp và tài liệu hóa
C. Giảm tính linh hoạt
D. Tăng độ phức tạp
Loại biểu đồ nào trong UML thể hiện các lớp, thuộc tính và phương thức chủ yếu?
A. Biểu đồ lớp
B. Biểu đồ tuần tự
C. Biểu đồ trạng thái
D. Biểu đồ hoạt động
Biểu đồ nào mô tả trình tự tương tác giữa các đối tượng theo thời gian trong hệ thống?
Biểu đồ Lớp (Class Diagram)
Biểu đồ Tuần tự (Sequence Diagram)
Biểu đồ Trạng thái (State Machine Diagram)
Biểu đồ Thành phần (Component Diagram)
Mẫu thiết kế được định nghĩa là gì trong phát triển phần mềm?
Một giải pháp tổng quát, đã được kiểm chứng cho một vấn đề lặp lại trong thiết kế phần mềm.
Một phương pháp lập trình mới chưa được kiểm chứng.
Một công cụ phần mềm để tự động hóa thiết kế.
Một ngôn ngữ lập trình mới.
Bộ sưu tập mẫu thiết kế kinh điển phổ biến có bao nhiêu mẫu và là các mẫu nào?
20 mẫu thiết kế
23 mẫu thiết kế
25 mẫu thiết kế
30 mẫu thiết kế
Các mẫu thiết kế thuộc nhóm tạo lập (Creational) chủ yếu giải quyết vấn đề gì?
Tổ chức các đối tượng và lớp thành cấu trúc lớn hơn
Tương tác và hoạt động giữa các đối tượng
Quá trình khởi tạo đối tượng
Tối ưu hóa hiệu suất hệ thống
Mẫu thiết kế nào đảm bảo chỉ tồn tại một thể hiện duy nhất của một lớp trong toàn bộ ứng dụng?
Factory Method Pattern
Singleton Pattern
Observer Pattern
Strategy Pattern
Mẫu thiết kế nào giúp tạo đối tượng một cách linh hoạt mà không làm phức tạp lớp chứa nó?
Singleton Pattern
Factory Method Pattern
Decorator Pattern
Adapter Pattern
Sử dụng nhiều mẫu thiết kế không phù hợp có thể dẫn đến hậu quả gì cho hệ thống?
Tăng hiệu suất hệ thống
Giảm độ phức tạp của mã nguồn
Dẫn đến mã nguồn khó bảo trì
Tăng tính linh hoạt của hệ thống
SCM đảm nhận nhiệm vụ gì trong vòng đời phát triển phần mềm?
Quản lý tài chính của dự án
Quản lý cấu hình phần mềm
Quản lý nhân sự
Quản lý marketing
Hệ thống quản lý phiên bản nào đang được sử dụng rộng rãi nhất hiện nay?
SVN
Mercurial
Git
CVS
Tính năng nổi bật nào của công cụ kiểm soát phiên bản giúp quản lý quy trình phát triển?
Quản lý nhánh (Branching)
Tăng tốc độ xử lý
Giảm chi phí phát triển
Tăng cường bảo mật
Khó khăn chính khi xây dựng các thành phần phần mềm có thể tái sử dụng là gì?
Chi phí ban đầu cao
Dễ dàng bảo trì
Tăng hiệu suất
Giảm độ phức tạp
Kiến trúc phần mềm xác định những gì trong hệ thống phần mềm?
Cấu trúc và hành vi của hệ thống
Tốc độ xử lý của hệ thống
Chi phí phát triển hệ thống
Số lượng người dùng hệ thống
Thành phần nào trong kiến trúc 3 tầng đảm nhiệm các quy tắc xử lý nghiệp vụ?
Presentation Layer
Data Access Layer
Business Logic Layer
User Interface Layer
Đặc điểm nổi bật nào mô tả cách các dịch vụ trong kiến trúc Microservices hoạt động?
Mỗi dịch vụ chạy trong một quy trình riêng.
Tất cả dịch vụ chạy trong một quy trình chung.
Mỗi dịch vụ chia sẻ cơ sở dữ liệu.
Dịch vụ không thể giao tiếp với nhau.
Ba nguyên tắc cơ bản của mô hình bảo mật CIA là gì?
Confidentiality, Integrity, Availability
Confidentiality, Accessibility, Adaptability
Integrity, Accessibility, Adaptability
Availability, Security, Flexibility
Điểm mạnh lớn nhất của điện toán đám mây so với hệ thống tại chỗ (On-Premise) là gì?
Chi phí vận hành cao.
Rất linh hoạt, có thể tăng/giảm tài nguyên chỉ trong vài phút.
Nhà cung cấp đám mây không chịu trách nhiệm bảo trì phần cứng.
Không thể thuê tài nguyên tính toán từ nhà cung cấp.
Mục đích chính của việc thiết kế giao diện người dùng trong phần mềm là gì?
Nguyên tắc Phản hồi
Nguyên tắc Nhất quán
Nguyên tắc Linh hoạt và Hiệu quả
Nguyên tắc Người dùng làm trung tâm
Trong thiết kế giao diện, yếu tố nào được coi là trọng tâm, lấy người sử dụng làm trung tâm?
Thiết kế tập trung vào hệ thống
Thiết kế tập trung vào người dùng
Thiết kế tập trung vào chi phí
Thiết kế tập trung vào công nghệ
Thiết kế giao diện nhất quán giúp người dùng có lợi ích gì trong việc sử dụng phần mềm?
Giảm sự hài lòng của người dùng
Tăng sự phức tạp của giao diện
Giúp người dùng dự đoán kết quả hành động
Làm cho giao diện khó sử dụng
Tại sao phản hồi của hệ thống là quan trọng trong giao diện người dùng?
Giúp người dùng cảm thấy không chắc chắn
Giúp người dùng biết điều gì đang xảy ra
Làm cho người dùng bối rối
Tăng thời gian hoàn thành tác vụ
Thiết kế giao diện tối giản được thể hiện rõ nhất qua ví dụ nào?
Trang chủ của Google Search
Trang chủ của một trang web phức tạp
Giao diện với nhiều yếu tố gây xao lãng
Giao diện với nhiều màu sắc
Nguyên tắc nào quan trọng trong thiết kế giao diện nhằm phục vụ nhóm người dùng có kinh nghiệm?
Giao diện phức tạp
Cung cấp các phím tắt và khả năng tùy chỉnh
Giao diện không thể tùy chỉnh
Giao diện không có phím tắt
Cách nào giúp giảm thiểu lỗi người dùng khi tương tác với giao diện?
Sử dụng ngôn ngữ kỹ thuật phức tạp
Yêu cầu nhập liệu tự do mà không có gợi ý
Sử dụng các điều khiển lựa chọn hợp lệ
Không thông báo lỗi khi xảy ra
Quá trình thiết kế giao diện người dùng thường diễn ra như thế nào?
Thiết kế và Kiểm thử
Phân tích Người dùng và Yêu cầu
Xây dựng và Triển khai
Tất cả các giai đoạn trên
Trước khi thiết kế giao diện, bước đầu tiên cần làm là gì?
Thiết kế giao diện
Phân tích Người dùng và Yêu cầu
Xây dựng và Triển khai
Đánh giá và Kiểm thử
Wireframe chủ yếu biểu diễn khía cạnh nào của giao diện người dùng?
Màu sắc và đồ họa
Cấu trúc cơ bản và vị trí các thành phần chính
Trải nghiệm người dùng
Tính năng nâng cao
Điểm khác biệt nổi bật nhất giữa mockup và wireframe là gì?
Wireframe tập trung vào màu sắc
Mockup không có chi tiết đồ họa
Wireframe không quan tâm đến màu sắc hay đồ họa
Mockup chỉ là bản phác thảo
Prototype giúp người dùng trải nghiệm tính năng nào của giao diện?
Xây dựng các mẫu thử tương tác từ các wireframe.
Đánh giá hiệu suất của hệ thống.
Tối ưu hóa màu sắc và đồ họa.
Phân tích dữ liệu người dùng.
Đánh giá chuyên gia dựa trên cơ sở nào để nhận xét giao diện?
Dựa trên cảm nhận cá nhân.
Dựa trên các nguyên tắc đã được công nhận.
Dựa trên màu sắc và thẩm mỹ.
Dựa trên tốc độ tải trang.
Giao diện tương tác chú trọng đến yếu tố nào trong hành vi người dùng?
Tính hiệu suất và màu sắc.
Tính hiệu quả và khả năng học hỏi.
Tính thẩm mỹ và độ phức tạp.
Tính bảo mật và tốc độ.
Mục đích chính của 'tính an toàn' trong thiết kế tương tác là gì?
Ngăn ngừa người dùng thực hiện các hành động nguy hiểm hoặc không mong muốn và giúp họ phục hồi sau lỗi.
Đảm bảo hệ thống có giao diện thẩm mỹ cao và màu sắc hài hòa.
Tăng tốc độ xử lý dữ liệu.
Cải thiện khả năng ghi nhớ của người dùng.
Việc áp dụng 'ràng buộc' (Constraints) trong thiết kế tương tác có lợi ích chính là gì?
Làm cho giao diện có nhiều chức năng và tùy chọn hơn.
Giúp ngăn ngừa lỗi và đơn giản hóa quá trình ra quyết định cho người dùng.
Tăng tốc độ xử lý của hệ thống ở phía máy chủ (backend).
Cho phép người dùng có kinh nghiệm sử dụng phím tắt (shortcut).
Khi thiết kế chức năng nhập (import) dữ liệu, hệ thống cần hỗ trợ người dùng điều gì để đảm bảo tính rõ ràng và hướng dẫn?
Cung cấp một tệp mẫu (template) và chỉ rõ các định dạng tệp được chấp nhận.
Chỉ hiển thị thông báo 'Lỗi' chung chung khi việc nhập thất bại.
Yêu cầu người dùng nhập dữ liệu bằng tay thay vì tải tệp lên.
Tự động chấp nhận mọi định dạng tệp để tăng tính linh hoạt.
Khi người dùng nhập dữ liệu bị lỗi, một giao diện được thiết kế tốt nên ứng xử như thế nào?
Từ chối toàn bộ tệp và yêu cầu người dùng thử lại từ đầu.
Hiển thị thông báo 'Lỗi' chung chung và không chỉ rõ vấn đề.
Chỉ rõ lỗi ở đâu (ví dụ: dòng nào, cột nào), báo cáo tổng hợp và gợi ý cách sửa.
Tự động xóa các dòng bị lỗi và chỉ nhập các dòng hợp lệ mà không thông báo.
Việc tối ưu hóa lưu trữ ở backend ảnh hưởng trực tiếp đến trải nghiệm giao diện người dùng như thế nào?
Chỉ ảnh hưởng đến chi phí lưu trữ của máy chủ, không liên quan đến người dùng.
Quyết định màu sắc và bố cục của giao diện người dùng.
Quyết định hiệu năng và tốc độ phản hồi của giao diện.
Làm giảm số lượng nút bấm cần thiết trên màn hình.
Tại sao nguyên tắc 'Tách biệt Giao diện và Logic' (Separation of Concerns) lại quan trọng trong thiết kế phần mềm?
Để đảm bảo tất cả mã nguồn đều nằm trong một tệp duy nhất cho dễ quản lý.
Giúp mã nguồn dễ bảo trì, dễ kiểm thử và cho phép thay đổi giao diện mà không ảnh hưởng đến nghiệp vụ.
Để tăng tốc độ thực thi của giao diện người dùng trên trình duyệt.
Để loại bỏ hoàn toàn nhu cầu sử dụng cơ sở dữ liệu.
Trong đặc tả phương thức (Method Specification), những thông tin nào cần được định nghĩa rõ ràng?
Tên của lập trình viên và ngày viết phương thức.
Ngôn ngữ lập trình và phiên bản của trình biên dịch.
Đầu vào, điều kiện tiên quyết (preconditions), điều kiện hậu quả (postconditions) và hành vi mong đợi.
Màu sắc của giao diện và loại font chữ được sử dụng.
Thuật ngữ nào bao gồm Tiền điều kiện (Preconditions), Hậu điều kiện (Postconditions), và Bất biến (Invariants)?
Public (Công khai), Private (Riêng tư), và Protected (Được bảo vệ).
Tiền điều kiện (Preconditions), Hậu điều kiện (Postconditions), và Bất biến (Invariants).
Lớp (Class), Đối tượng (Object), và Phương thức (Method).
Ràng buộc thời gian, Ràng buộc chi phí, và Ràng buộc tài nguyên.
Tiền điều kiện (Precondition) là gì và nó cần được thỏa mãn khi nào?
Là điều kiện phải đúng sau khi phương thức thực thi xong.
Là điều kiện phải đúng trong suốt vòng đời của đối tượng.
Là điều kiện phải đúng trước khi phương thức được gọi.
Là điều kiện chỉ được kiểm tra khi hệ thống bị lỗi.
Hậu điều kiện (Postcondition) đảm bảo điều gì sau khi phương thức kết thúc?
Đảm bảo rằng các tham số đầu vào là hợp lệ.
Đảm bảo trạng thái của hệ thống không bao giờ thay đổi.
Đảm bảo điều kiện luôn đúng trong suốt vòng đời của đối tượng.
Đảm bảo trạng thái đúng của đối tượng và giá trị trả về sau khi phương thức thực hiện thành công.
Thuật ngữ 'Bất biến' (Invariant) chỉ đến điều kiện nào của đối tượng?
Điều kiện phải luôn được duy trì trong suốt vòng đời của đối tượng.
Điều kiện chỉ đúng tại thời điểm đối tượng được tạo ra.
Điều kiện chỉ đúng trước khi một phương thức được gọi.
Điều kiện chỉ đúng sau khi một phương thức thực thi xong.
Ngôn ngữ OCL (Object Constraint Language) có tác dụng hỗ trợ chính là gì?
Để viết mã thực thi cho toàn bộ hệ thống phần mềm.
Xác định các quy tắc nghiệp vụ (biến, tiền/hậu điều kiện) một cách chính xác và không mơ hồ.
Thiết kế giao diện người dùng (UI) cho ứng dụng.
Mô tả các bước tương tác giữa người dùng và hệ thống (Use Case).
Trong một biểu thức OCL, từ khóa 'self' đại diện cho cái gì?
Toàn bộ hệ thống phần mềm.
Người dùng cuối đang tương tác với hệ thống.
Đối tượng hiện tại trong ngữ cảnh của biểu thức OCL.
Một lớp cha (superclass) của đối tượng hiện tại.
Từ khóa 'inv' trong OCL thường được sử dụng để biểu đạt loại ràng buộc nào?
Ràng buộc tiền điều kiện (Precondition).
Ràng buộc hậu điều kiện (Postcondition).
Ràng buộc bất biến (Invariant).
Ràng buộc về kiểu dữ liệu (Data Type).
Khi sử dụng thao tác '->size()' trên một tập hợp (Collection) trong OCL, kết quả trả về là gì?
Kiểm tra xem tập hợp có rỗng hay không.
Số lượng phần tử trong tập hợp.
Kích thước bộ nhớ của tập hợp.
Giá trị lớn nhất trong tập hợp.
Đặc điểm nổi bật nhất của mô hình tập trung (Centralized Model) là gì?
Toàn bộ logic xử lý và dữ liệu được tập trung tại một máy chủ trung tâm.
Hệ thống được chia thành nhiều dịch vụ nhỏ, độc lập (microservices).
Máy khách (Client) thực hiện phần lớn việc xử lý logic nghiệp vụ.
Dữ liệu được phân tán trên nhiều máy chủ khác nhau.
Lợi ích quan trọng nhất của việc sử dụng mô hình tập trung trong quản lý dữ liệu là gì?
Khả năng mở rộng quy mô không giới hạn khi nhu cầu tăng.
Hiệu năng cao khi có số lượng lớn người dùng đồng thời.
Đảm bảo tính nhất quán của dữ liệu vì chỉ có một nguồn dữ liệu duy nhất.
Hệ thống không bị phụ thuộc vào kết nối mạng.
Đâu là điểm yếu lớn nhất khiến mô hình tập trung không phù hợp cho các hệ thống quy mô rất lớn?
Chi phí đầu tư ban đầu cho máy khách (client) quá cao.
Khó đảm bảo tính nhất quán của dữ liệu.
Điểm lỗi duy nhất (Single Point of Failure) và khả năng mở rộng hạn chế.
Quá phức tạp trong việc quản lý và bảo trì hệ thống.
