# Ôn tập OOAD
## 1. Các bài học thực tiễn:
### 1.1. Mệnh đề nào đúng về quá trình phát triển lặp?
- [x] A. Việc kiểm thử và tích hợp diễn ra trong mọi vòng lặp.
- [ ] B. Một vòng lặp tập trung vào việc hoàn thành một phần của hiện thực hóa ca sử dụng đã chọn.
- [ ] C. Khuyến khích phản hồi của người dùng trong các vòng lặp tiếp theo.
- [ ] D. Nó dựa trên phân rã chức năng của một hệ thống.
### 1.2. Những quy trình nào là phù hợp nhất với UML (Chọn 3 cái)
- [x] A. Dựa trên ca sử dụng (use-case driven)
- [ ] B. Phát triển thác nước (waterfall development-based)
- [x] C. Lặp lại và tăng dần (iterative and incremental)
- [x] D. Kiến trúc tập trung (architecture-centric)
- [ ] E. Yêu cầu tập trung (requirements-centric)
### 1.3. Phát biểu nào sau đây là đúng?
- [ ] A. UML là một quy trình phát triển cho các hệ thống sử dụng chuyên sâu về phần mềm.
- [ ] B. UML là một ngôn ngữ phụ thuộc vào quy trình được sử dụng để minh họa các tạo tác của phần mềm.
- [x] C. UML là một ngôn ngữ mô hình hóa cho các bản thiết kế phần mềm.
- [ ] D. UML là một ngôn ngữ lập trình trực quan (visual).
## 2. Khái niệm về hướng đối tượng và UML:
### 2.1. Tại sao đóng gói (encapsulation) quan trọng? (chọn 2)
- [ ] A. Mô tả mối quan hệ giữa 2 subclass
- [x] B. Đặt các operation và thuộc tính trong cùng một đối tượng
- [ ] C. Cho phép đối tượng khác thay đổi các operation và thuộc tính private của một đối tượng
- [x] D. Ngăn các đối tượng khác trực tiếp thay đổi các thuộc tính của một đối tượng
### 2.2. Hai chức năng của mô hình trực quan?
- [ ] A. Tạo ra một mô hình đại diện cho tất cả các view của hệ thống.
- [x] B. Cải thiện sự giao tiếp và sự hiểu biết giữa các thành viên trong nhóm
- [ ] C. Tài liệu quan trọng quyết định thiết kế trong code.
- [x] D. Tài liệu hóa hành vi hệ thống và cấu trúc trước khi lập trình hệ thống
### 2.3. Đâu là 3 điểm khác biệt giữa lớp có cấu trúc và lớp truyền thống? (chọn 3 đáp án)
- [x] A. Xác định rõ ràng ranh giới lớp thông qua một quá trình bao đóng
- [x] B. Đưa các public interface vào lớp thông qua các cổng
- [x] C. Thể hiện vai trò của lớp đó
- [ ] D. Định nghĩa message giữa nó và các lớp khác
### 2.4. Đâu là đặc điểm của một lớp có cấu trúc (structured class)?
- [ ] A. Phải có một interface cho mỗi vai trò của nó
- [ ] B. Có thể chỉ đóng một vai trò duy nhất, bất kể có bao nhiêu đối tượng tương tác với nó
- [x] C. Có thể đóng nhiều vai trò khác nhau dựa trên đối tượng mà nó tương tác
- [ ] D. Tối đa 1 vai trò, nhưng có thể có nhiều interface
### 2.5. Hai câu nào sau đây đúng về interface?
- [x] A. Giao diện phải có một mục đích rõ ràng
- [ ] B. Mỗi một interface nên bao gồm nhiều method nhất có thể
- [ ] C. Một giao diện nên được sử dụng để hạn chế các method bị lộ với người dùng
- [x] D. Các lớp có thể có nhiều giao diện phụ thuộc vào mục đích của từng interface mà nó triển
### 2.6. Một đối tượng được đặt tên trong UML là gì?
- [x] A. Matt:Employee
- [ ] B. :Employee
- [ ] C. Matt::Employee
- [ ] D. ::employee
### 2.7. Kiến trúc sư xem xét hai lớp. Lớp đầu tiên có những điều sau đây Các hoạt động: ***getName(), getSize(), getTotal() và findAverage()***. Lớp thứ 2 có các hoạt động sau: ***getName(), getSize(), findAverage(), findMinimum(), và findMaximum()***. Hai lớp cùng kế thừa lớp cha. Những hoạt động nào có thể chứa trong lớp cha?
- [x] A. getName(), getSize() và findAverage()
- [ ] B. findMaximum(), findMinimum(), getSize() và getTotal()
- [ ] C. getName(), findAverage(), và findMaximum()
- [ ] D. getName(), getSize(), getTotal(), và findAverage()
### 2.8. Giao diện cần thiết (required interface) phải làm gì?
- [ ] A. Đưa ra dịch vụ cho các yêu cầu vô danh
- [ ] B. Sử dụng các dịch vụ mà lớp phân loại yêu cầu từ các nhà cung cấp vô danh
- [ ] C. Tuyên bố các dịch vụ mà một lớp phân loại để cung cấp cho các yêu cầu vô danh
- [x] D. Đưa các method mà các yêu cầu phải sử dụng
### 2.9. Hai cân nhắc quan trọng khi lập sơ đồ trạng thái là gì? (Chọn hai.)
- [x] A. Bất cứ khi nào nhận được tin nhắn; Có thể có một sự thay đổi trạng thái.
- [ ] B. Bất cứ khi nào nhận được tin nhắn; Phải có sự thay đổi trạng thái.
- [x] C. Bất cứ khi nào có sự thay đổi trạng thái, có một sự chuyển đổi.
- [ ] D. Thay đổi trạng thái có thể không thay đổi quá trình chuyển đổi.
### 2.10. Câu nào là đúng về phụ thuộc vòng tròn?
- [ ] A. Chúng không quan trọng.
- [ ] B. Chúng bị cấm.
- [x] C. Chúng phải bị tránh.
- [ ] D. Khi có nhiều hơn hai gói, chúng không liên quan.
### 2.11. Câu nào là đúng về các thuộc tính?
- [ ] A. Chúng không thể thay đổi khi đối tượng được khởi tạo.
- [x] B. Thay đổi giá trị từ đối tượng sang đối tượng của cùng một lớp.
- [ ] C. Nó chỉ có thể là nguyên thủy.
- [ ] D. Chúng được yêu cầu cho mỗi lớp.
### 2.12. Các đối tượng đa hình _____.
- [ ] A. Phải có các thuộc tính giống nhau
- [ ] B. Chia sẻ tất cả các hành động (operation) tương tự, và các hành động thực hiện cùng nhau.
- [ ] C. Chỉ có thể được thực hiện thông qua các giao diện
- [x] D. Có thể có cùng tên hành động nhưng các hành động thực hiện khác nhau
### 2.13. Hai đặc điểm nào tất cả các đối tượng có?
- [ ] A. nguyên thủy
- [x] B. trạng thái và hành vi
- [ ] C. giao diện
- [x] D. một định danh độc nhất
### 2.14. Điều gì sẽ xảy ra khi một lớp cha được thay đổi?
- [ ] A. Tất cả các lớp con kế thừa sự thay đổi.
- [x] B. Các hành động của lớp con phải được thay đổi.
- [ ] C. Các phép toán bổ sung trong lớp con không liên quan đến lớp bậc cao phải thay đổi.
- [ ] D. Chỉ có các hành động của lớp bậc cao mới được kế thừa
### 2.15. Trạng thái nào KHÔNG chứa một trạng thái khác?
- [ ] A. Trạng thái trên (top state)
- [ ] B. Trạng thái tổng hợp (composite state)
- [x] C. Trạng thái đơn giản (simple state)
- [ ] D. Trạng thái dưới (bottom state)
### 2.16. Câu nào đúng về nhóm các phần tử thành một Gói?
- [x] A. Các phần tử trong một gói nên ở trong một nhóm hợp lý, thông thường (a logical, common grouping).
- [ ] B. Gói nên chứa một số lượng nhỏ các phần tử để tránh nhầm lẫn.
- [ ] C. Các gói chỉ nên sử dụng cho các dự án lớn đòi hỏi một số lượng lớn các phần tử.
- [ ] D. Gói không được chứa các gói khác
### 2.17. Trong biểu đồ tuần tự, những gì có thể được xác định bởi các tương tác giữa những người tham gia trong các tương tác?
- [ ] A. chỉ có các chuyển vụ được cung cấp bởi một giao diện
- [ ] B. chỉ các chuyển vụ theo yêu cầu của một giao diện
- [x] C. cả dịch vụ được cung cấp và yêu cầu cho các giao diện
- [ ] D. tên của giao diện
### 2.18. Tuyên bố nào đúng về một đối tượng đang hoạt động?
- [x] A. Nó là một đối tượng độc lập có thể giao tiếp với các đối tượng hoạt động khác không đồng bộ.
- [ ] B. Nó không chứa trạng thái.
- [ ] C. Nó phụ thuộc vào việc thực thi hệ thống tổng thể.
- [ ] D. Nó không có cấu trúc để cho phép lớp được thao tác dễ dàng
### 2.19. Hai tuyên bố nào đúng về giao diện?
- [x] A. Giao diện nên có một mục đích rõ ràng.
- [ ] B. Một giao diện duy nhất nên bao gồm càng nhiều phương thức có thể, nếu không phải tất cả các phương thức, có thể được chia sẻ bởi các đối tượng triển khai giao diện.
- [ ] C. Một giao diện nên được sử dụng để hạn chế phương thức nào được tiếp xúc với máy khách.
- [x] D. Các lớp có thể có nhiều giao diện tùy thuộc vào mục đích của mỗi giao diện mà nó thực hiện.
### 2.20. Trong một biểu đồ tuần tự, mỗi sự tương tác tương ứng với _____.
- [ ] A một điểm lựa chọn trên sơ đồ trạng thái
- [x] B quá trình chuyển đổi trên sơ đồ trạng thái
- [ ] C một trạng thái trên sơ đồ
- [ ] D Trạng thái ban đầu
### 2.21. Trong một biểu đồ trạng thái, một trạng thái có hai quá trình chuyển đổi. Một trong những chuyển đổi là một quá trình chuyển đổi nội bộ và một quá trình chuyển đổi bên ngoài. (Các) trạng thái nào có thể thực hiện hành động thoát?
- [ ] A. chỉ chuyển đổi nội bộ
- [x] B. chỉ chuyển đổi bên ngoài
- [ ] C. không chuyển đổi bên trong và bên ngoài
- [ ] D. Cả quá trình chuyển đổi nội bộ và bên ngoài
### 2.22. Đâu là cơ chế chung của UML cho việc tổ chức các Yếu tố thành các nhóm?
- [ ] A. một sơ đồ lớp
- [ ] B. một hoạt động
- [x] C. một gói
- [ ] D. một sơ đồ tổng hợp
### 2.23. Một cổng là gì?
- [x] A. một tham số đại diện cho một thông điệp vượt qua ranh giới của một tương tác hoặc đoạn tương tác
- [ ] B. một giao thức được xác định để truy cập vào các phần bên trong của một hệ thống con
- [ ] C. một điểm quyết định trong một máy trạng thái có nhiều hơn hai lựa chọn
- [ ] D. một tập hợp các trạm kiểm soát mỗi thiết kế hệ thống con phải đáp ứng trước khi nó có thể được được giao thực hiện
### 2.24. Trong biểu đồ, E là gì?
- 
- [ ] A. fork
- [ ] B. initial state
- [ ] C. decision
- [ ] D. transition
- [ ] E. final state
- [ ] F. event
- [ ] G. state
- [x] H. guard condition
### 2.25. Trong biểu đồ trên, H là gì?
- 
- [x] A. fork
- [ ] B. initial state
- [ ] C. decision
- [ ] D. transition
- [ ] E. final state
- [ ] F. event
- [ ] G. state
- [ ] H. guard condition
### 2.26. Thực thể nào có ranh giới và nhận dạng rõ ràng đóng gói trạng thái và hành vi?
- [ ] A. Một lớp
- [x] B. đối tượng
- [ ] C. Thành phần
- [ ] D. Gói
### 2.27. Trong một sự phụ thuộc, thông qua lớp tham chiếu nào tăng khả năng hiển thị tới bên cung cấp? (Chọn ba)
- [x] A. tham chiếu cục bộ (local)
- [x] B. tham chiếu đối số (param)
- [x] C. tham chiếu global
- [ ] D. tham chiếu lĩnh vực (field)
### 2.28. Một đồ thị có hướng của các nút kết nối bằng chuyển tiếp là một biểu đồ _____
- [ ] A. giao tiếp (communication)
- [ ] B. tuần tự (sequence)
- [ ] C. thành phần (component)
- [x] D. máy trạng thái (state machine)
### 2.29. Trong biểu đồ trên, F là gì?
- 
- [ ] A. fork
- [ ] B. initial state
- [ ] C. decision
- [ ] D. transition
- [ ] E. final state
- [x] F. event
- [ ] G. state
- [ ] H. guard condition
### 2.30. Trong biểu đồ trên, C1 và C2 là gì?
- 
- [ ] A. fork
- [ ] B. initial state
- [ ] C. decision
- [ ] D. transition
- [ ] E. final state
- [ ] F. event
- [x] G. state
- [ ] H. guard condition
### 2.31. Trong biểu đồ trên, B là gì?
- 
- [ ] A. fork
- [x] B. initial state
- [ ] C. decision
- [ ] D. transition
- [ ] E. final state
- [ ] F. event
- [ ] G. state
- [ ] H. guard condition
### 2.32. Trong biểu đồ trên, A là gì?
- 
- [ ] A. fork
- [ ] B. initial state
- [ ] C. decision
- [ ] D. transition
- [x] E. final state
- [ ] F. event
- [ ] G. state
- [ ] H. guard condition
### 2.33. Trong biểu đồ trên, G là gì?
- 
- [ ] A. fork
- [ ] B. initial state
- [x] C. decision
- [ ] D. transition
- [ ] E. final state
- [ ] F. event
- [ ] G. state
- [ ] H. guard condition
### 2.34. Trong biểu đồ trên, D là gì?
- 
- [ ] A. fork
- [ ] B. initial state
- [ ] C. decision
- [x] D. transition
- [ ] E. final state
- [ ] F. event
- [ ] G. state
- [ ] H. guard condition
## 3. Tổng quan về yêu cầu phần mềm:
### 3.1. Hai tuyên bố nào đúng về các quy trình theo ca sử dụng (use-case driven)?
- [x] A. Các ca sử dụng ngắn gọn, đơn giản và có thể được hiểu bởi nhiều bên liên quan.
- [x] B. Các ca sử dụng giúp đồng bộ hóa nội dung của các mô hình khác nhau.
- [ ] C. Các ca sử dụng là một danh sách đầy đủ các yêu cầu chức năng.
- [ ] D. Các ca sử dụng chỉ định cách triển khai hành vi hệ thống
### 3.2. Một ________ mô hình hóa sự tương tác của hệ thống thông tin với người dùng cuối và các hệ thống bên ngoài khác.
- [ ] A. Kế hoạch triển khai
- [x] B. Biểu đồ ca sử dụng.
- [ ] C. Biểu đồ lớp.
- [ ] D. Biểu đồ gói.
- [ ] E. Biểu đồ cơ sở dữ liệu.
### 3.3. Biểu đồ ca sử dụng là tất cả NGOẠI TRỪ:
- [ ] A. Một cách chính thức để thể hiện cách một hệ thống nghiệp vụ tương tác với môi trường của nó.
- [x] B. Định nghĩa về luồng làm việc của quy trình thống nhất.
- [ ] C. Minh họa các hoạt động được thực hiện bởi người dùng hệ thống.
- [ ] D. Một kỹ thuật dựa trên kịch bản trong UML.
- [ ] E. Một chuỗi các hành động mà một hệ thống thực hiện mang lại kết quả có giá trị cho một tác nhân cụ thể.
### 3.4. Mục đích chính của biểu đồ ca sử dụng là _____.
- [ ] A. để xây dựng một từ vựng được hiểu bởi cả người dùng và nhà phân tích
- [ ] B. để hiển thị sự tương tác của người dùng với hệ thống
- [ ] C. để khám phá các chi tiết bổ sung như các thuộc tính và phương thức của một lớp
- [x] D. mô hình hóa sự tương tác giữa hệ thống và môi trường của nó
## 4. Tổng quan về Phân tích và Thiết kế:
### 4.1. Mục đích của phân tích là gì?
- [ ] A. Dịch các yêu cầu chức năng sang mã nguồn
- [ ] B. Chuyển các yêu cầu thành thiết kế hệ thống
- [ ] C. Chuyển các khái niệm trong thế giới thực thành các đối tượng hướng giải pháp (solution-oriented object)
- [x] D. Chuyển các yêu cầu chức năng thành các khái niệm (software concept)
### 4.2. Ba mục đích của Phân tích và thiết kế?
- [ ] A. cung cấp một bối cảnh tổ chức cho hệ thống
- [x] B. Chuyển các yêu cầu thành thiết kế của hệ thống
- [x] C. Phát triển kiến trúc vững chắc cho hệ thống
- [ ] D. Giới hạn phạm vi hệ thống và mô tả những gì nó phải làm
- [x] E. Thích ứng với thiết kế phù hợp với môi trường thực hiện
## 5. Phân tích kiến trúc:
### 5.1. 3 nguồn xác định Key Abstraction
- [x] A. Miền kiến thức (Domain Knowledge)
- [x] B. Yêu cầu (Requirements)
- [ ] C. Các lớp thiết kế
- [x] D. Bảng thuât ngữ (glossary)
### 5.2. Mục đích của phân tích kiến trúc?
- [ ] A. Chi tiết hóa thiết kế hệ thống
- [ ] B. Xem xét kiến trúc của hệ thống
- [x] C. Xác định các kiến trúc là ứng cử viên cho hệ thống
- [ ] D. Xác định các lớp (layer) của kiến trúc
### 5.3. Trong quá trình phân tích kiến trúc, một kiến trúc sư phần mềm muốn giảm thiểu sự phức tạp của hệ thống và tăng cường tính nhất quán. Kiến trúc sư đó nên xác định cái gì để đạt được điều đó?
- [ ] A. Quy tắc lập trình
- [ ] B. Hiện thực hóa use-case
- [x] C. Cơ chế phân tích (Analysis mechanisms)
- [ ] D. Cơ chế thiết kế (Design mechanisms)
### 5.4. Ba loại cơ chế kiến trúc (chọn 3)
- [x] A. Cơ chế phân tích
- [ ] B. Cơ chế yêu cầu
- [x] C. Cơ chế cài đặt
- [x] D. Cơ chế thiết kế
### 5.5. Khung nhìn nào tập trung vào việc hiện thực hóa vật lý của hệ thống
- [ ] A Khung nhìn logic
- [x] B Khung nhìn triển khai
- [ ] C Khung nhìn tiến trình
- [ ] D Khung nhìn ca sử dụng
### 5.6. Đâu không phải là một phần của mô hình 4+1 View
- [ ] A. Khung nhìn logic
- [ ] B. Khung nhìn ca sử dụng
- [x] C. Khung nhìn phân tán
- [ ] D. Khung nhìn tiến trình
### 5.7. Câu nào đúng về các mẫu (pattern)
- [ ] A. Patterns chỉ tồn tại ở mức thiết kế.
- [x] B. Patterns cung cấp một giải pháp chung cho một vấn đề chung.
- [ ] C. Patterns chỉ tồn tại ở mức Kiến trúc.
- [ ] D. Patterns chỉ sử dụng trong giai đoạn lập trình
### 5.8. Các tầng kiến trúc thường được mô phỏng trong UML bằng cách sử dụng một____.
- [x] A. Gói với khuôn mẫu `<<Layer>>`
- [ ] B. hệ thống con với khuôn mẫu `<<Layer>>`
- [ ] C. Lớp phức hợp với khuôn mẫu `<<Layer>>`
- [ ] D. Biểu đồ lớp có tiêu đề Layer
## 6. Phân tích ca sử dụng:
### 6.1. Lớp phân tích (analysis classes) là gì?
- [x] A. Những phỏng đoán sớm về thành phần của hệ thống thường thay đổi qua thời gian, hiếm khi tồn tại còn nguyên vẹn trong quá trình thực hiện
- [ ] B. Các lớp không đầy đủ đòi hỏi một lập trình viên phải chính thức hóa các viết cá hàm và loại thuộc tính trước khi thực hiện
- [ ] C. Các lớp bên trong một hệ thống các đối tương kinh doanh hoặc mô hình miền, dạng UML.
- [ ] D. Một nguyên mẫu của một giao diện người dùng hệ thống, được phát triển trong giai đoạn phân tích, cho phép người dùng xác định hệ thống nhìn và cảm nhận
### 6.2. Một kiến trúc sư có trách nhiệm tạo ra một mô hình phân tích cho một hệ thống. Khu vực tập trung nào là cần thiết cho việc tạo ra mô hình này?
- [ ] A Phần cứng nơi mà hệ thống được triển khai.
- [x] B Hành vi của các đối tượng bao gồm hệ thống.
- [ ] C Sự phát triển của hệ thống phân tích vào hệ thống thiết kế.
- [ ] D Yêu cầu về hiệu năng của hệ thống.
### 6.3. Hai câu hỏi nào mà việc sử dụng bội số (0..n, 1..n, m..n) trong các quan hệ cho phép bạn trả lời? (Chọn hai)
- [x] A. Mối quan hệ có bắt buộc hay không?
- [x] B. Có bao nhiêu liên kết một đối tượng của một loại duy trì với các đối tượng loại khác?
- [ ] C. Có phải một đối tượng thuộc một kiểu nhất định tương tác với đối tượng loại khác?
- [ ] D. Mối liên hệ giữa đối tượng vĩnh cửu hay tạm thời?
### 6.4. Hai câu nào sau đây đúng về hiện thực hóa use-case:
- [ ] A. Nó liệt kê các bước thực hiện bởi một use-case.
- [x] B. Nó cung cấp truy nguyên nguồn gốc từ phân tích và thiết kế trở về yêu cầu.
- [ ] C. Nó được tạo bởi nhà phân tích hệ thống.
- [x] D. Nó mô tả use-case trong các mối quan hệ hợp tác giữa các đối tượng.
### 6.5. Trong phân tích ca sử dụng, những gì thường được phân bổ cho các lớp điều khiển?
- [x] A. hành vi cụ thể cho một ca sử dụng hoặc một phần của một luồng sự kiện rất quan trọng
- [ ] B. hành vi liên quan đến dữ liệu được đóng gói trong sự trừu tượng
- [ ] C. hành vi liên quan đến giao tiếp với một actor
- [ ] D. hành vi cụ thể để thực thi quy tắc nghiệp vụ hoặc luồng sự kiện
### 6.6. Trong Phân tích Ca sử dụng, một thuộc tính nên được sử dụng thay vì một lớp khi thông tin _____.
- [x] A được truy cập bởi các hành động get, set, hoặc thực hiện
- [ ] B các phép biến đổi đơn giản liên quan đến các thực thể trong mô hình nghiệp vụ hoặc miền
- [ ] C cần phải được giấu ở các phần khác của Mô hình Phân tích và không được chia sẻ
- [ ] D được gọi đến và sử dụng nhiều lần trong suốt quá trình hiện thực hóa use case
### 6.7. Trong Phân tích ca sử dụng, tại sao các cơ chế phân tích được sử dụng?
- [x] A. Để giảm độ phức tạp và tăng tính nhất quán bằng cách cung cấp ký hiệu cho những hành vi phức tạp.
- [ ] B. Để đơn giản hóa nhiệm vụ tạo ra các use-case, cung cấp ký hiệu viết tắt cho các nhiệm vụ lặp đi lặp lại.
- [ ] C. Để thu thập các nhiệm vụ chung vào một nơi, dễ dàng cho nhà phát triển thực hiện.
- [ ] D. Để xác minh rằng các nhà thiết kế đã thực hiện chính xác như thiết kế của các kiến trúc sư.
### 6.8. Trong Phân tích ca Sử dụng, tại sao đôi khi cần thiết phải bổ sung cho mô tả ca sử dụng?
- [x] A. Mô tả của từng ca sử dụng không phải lúc nào cũng đủ để tìm ra các lớp phân tích và các đối tượng của chúng
- [ ] B. Dòng các sự kiện trong trường hợp sử dụng đôi khi quá phức tạp để được Thực hiện.
- [ ] C. Các nhà thiết kế cần phải biết được dòng chảy trường hợp sử dụng đang được phát triển trong Lặp lại hiện tại.
- [ ] D. Kiến trúc sư có thể cần điều chỉnh các yêu cầu không chính xác trước khi đưa ra Các nhà thiết kế.
### 6.9. Trong phân tích ca sử dụng, mục đích của việc Hợp nhất các lớp phân tích là gì?
- [x] A. để đảm bảo rằng mỗi phân tích lớp đại diện cho một khái niệm duy nhất được xác định rõ ràng, với không có trách nhiệm chồng chéo
- [ ] B. để thu thập các lớp phân tích từ mỗi ca sử dụng thực hiện và đưa chúng vào Mô hình thiết kế
- [ ] C. để đảm bảo trách nhiệm của mỗi lớp đều nhất quán và lớp Có một mục đích duy nhất được xác định rõ ràng
- [ ] D. để tạo ra các class family ban đầu bằng cách sử dụng thừa kế để nhóm các lớp liên quan vào Cấu trúc cây
### 6.10. Hai câu nào sau đây nói đúng về quá trình theo hướng use-case?
- [x] A. Usecase ngắn gọn, xúc tích, đơn giản và có thể hiểu được bởi các bên liên quan.
- [x] B. Use-case giúp đồng bộ hóa nội dung của các mô hình khác nhau.
- [ ] C. Use-case là một danh sách đầy đủ các yêu cầu chức năng.
- [ ] D. Use-case chỉ rõ các hành vi hệ thống được thực hiện như thế nào.
### 6.11. Trong phân tích ca sử dụng, có bao nhiêu biểu đồ tương tác (tuần tự hoặc giao tiếp) nên được vẽ cho mỗi ca sử dụng?
- [x] A. Đủ các loại để đảm bảo trách nhiệm của các lớp được xác định và cá luồng sự kiện được kiểm tra.
- [ ] B. Một cho luồng sự kiện chính và một cho luồng thay thế (alternative) trong use-case.
- [ ] C. Một cho mỗi loại luồng sự kiện chính và một cho mỗi loại luồng thay thế trong use-case.
- [ ] D. Một cho mỗi loại cho từng use case, với mỗi luồng thay thế của các sự kiện được hiển thị như là một sự xuất hiện tương tác
### 6.12. Trong phân tích ca sử dụng, chức năng của các lớp biên là gì?
- [x] A. Để tách biệt các lực lượng bên ngoài với các cơ chế bên trong và ngược lại.
- [ ] B. Đại diện cho các màn hình trong giao diện người dùng.
- [ ] C. Để xác định các giao dịch dịch vụ được hiển thị bởi tầng Business.
- [ ] D. Để xác định các điểm và root vào mô hình đối tượng chính
## 7. Xác định các phần tử thiết kế & Xác định cơ chế thiết kế:
### 7.1. Các lớp phân tích phát triển thành _____. (chọn 2)
- [x] A. Các lớp thiết kế
- [x] B. Các hệ thống con
- [ ] C. Hiện thực hóa ca sử dụng
- [ ] D. Gói thiết kế
- [ ] E. Kiến trúc
### 7.2. Tài liệu nào mô tả cơ chế thiết kế, bất kì sự ánh xạ nào giữa các cơ chế thiết kế và chi tiết đối với sự sử dụng của chúng?
- [ ] A. Tài liệu Kiến trúc Phần mềm
- [x] B. Hướng dẫn thiết kế
- [ ] C. Tài liệu tầm nhìn
- [ ] D. Kế hoạch phát triển phần mềm
### 7.3. Trong trạng thái của một máy trạng thái, một hành vi có thể được định nghĩa _____.
- [ ] A. before reaching a state (Trước khi đạt được trạng thái)
- [x] B. upon reaching a state (Khi đạt được trạng thái)
- [x] C. upon leaving a state (Khi rời khỏi trạng thái)
- [x] D. inside a state (Trong một trạng thái)
### 7.4. Khi xác định các phần tử thiết kế, một lớp phân tích đơn giản sẽ ánh xạ tới một _____.
- [ ] A. Lớp chủ động
- [ ] B. Giao diện
- [x] C. Lớp thiết kế
- [ ] D. Hệ thống con
### 7.5. Hoạt động nào của OOAD xác định cơ chế phân tán?
- [ ] A. Xác định các yếu tố thiết kế
- [x] B. Xác định cơ chế thiết kế
- [ ] C. Thiết kế lớp
- [ ] D. Phân tích kiến trúc
### 7.6. Xác định phần tử thiết kế là phần nào của luồng công việc dưới đây?
- [ ] A. Xác định kiến trúc ứng cử viên
- [ ] B. Các thành phần thiết kế
- [ ] C. Thực hiện Kiến trúc
- [x] D. Làm mịn kiến trúc
### 7.7. Đâu là đầu vào của hoạt động xác định phần tử thiết kế?
- [ ] A. Mô hình triển khai
- [ ] B. Mô hình cài đặt
- [ ] C. Kiến trúc tham khảo
- [x] D. Tài liệu kiến trúc phần mềm
### 7.8. Cơ chế nào là một kết nối trên biểu đồ triển khai
- [ ] A. sao lưu (backup)
- [x] B. giao tiếp (communication)
- [ ] C. giao dịch (transaction)
- [ ] D. tính toán (computation)
### 7.9. Cơ chế thiết kế _____
- [ ] A. Nắm bắt các khía cạnh chính của một giải pháp thực hiện độc lập
- [ ] B. Chỉ rõ việc thực hiện cơ chế và ràng buộc với công nghệ nhất định, ngôn ngữ thực hiện hoặc nhà cung cấp.
- [ ] C. Giống như mẫu thiết kế.
- [x] D. Giả định một số chi tiết của môi trường thực hiện, nhưng không gắn liền với việc thực hiện cụ thể.
### 7.10. Khi xác định các giao diện trong hoạt động xác định phần tử thiết kế, câu nào sau đây là đúng?
- [ ] A. Class không nên hiện thực hóa một interface
- [ ] B. Mỗi hệ thống con chỉ nên hiện thực hóa một giao diện
- [ ] C. Interfacce chỉ nên được tạo sao khi hệ thống con được tạo
- [x] D. Interface nên được đóng gói riêng biệt với các yếu tố hiện thực hóa chúng
### 7.11. Đâu là một cơ chế thiết kế
- [ ] A. Độ bền (Persistency)
- [ ] B. Cơ sở dữ liệu hướng đối tượng (ObjectStore Object-oriented Database)
- [ ] C. Phân phối (Distribution)
- [x] D. Remote method invocation
### 7.12. Để bắt đầu cơ chế thiết kế, cần phải phân loại cơ chế phân tích. Ba bước của quá trình phân loại cơ chế phân tích là? (Chọn 3)
- [x] A. Xác định hồ sơ đặc tính của mỗi cơ chế phân tích
- [x] B. Xác định các clients của cơ chế phân tích.
- [ ] C. Chỉ định một nhà cung cấp triển khai tới mỗi cơ chế phân tích.
- [x] D. Nhóm các clients theo đặc tính sử dụng của chúng.
### 7.13. Mục đích của hoạt động xác định cơ chế thiết kế là gì?
- [ ] A. Lọc, tinh chỉnh các cơ chế thiết kế và xác định việc thực hiện chính xác các cơ chế.
- [ ] B. Cung cấp một bộ khái niệm các dịch vụ được sử dụng bởi các đối tượng phân tích
- [x] C. Để tinh chỉnh các cơ chế phân tích thành các cơ chế thiết kế dựa trên các ràng buộc của môi trường thực hiện.
- [ ] D. Để xác định vị trí thiết kế trong kiến trúc vì vậy nỗ lực của kiến trúc sư vẫn tập trung và ít có khả năng trở nên chệch hướng.
### 7.14. Hoạt động phân tích và thiết kế nào ánh xạ hệ thống con tới một lớp phân tích?
- [ ] A. Phân tích kiến trúc
- [x] B. Xác định các phần tử thiết kế
- [ ] C. Xác định các hệ thống con
- [ ] D. Hợp nhất các yếu tố thiết kế hiện có
### 7.15. Phần tử thiết kế nào được sử dụng để biểu diễn một đối tượng đồng thời (concurrent)?
- [x] A. Active class
- [ ] B. Capsule (viên nang)
- [ ] C. Lớp thiết kế
- [ ] D. Sự kiện
### 7.16. Khi nào thì một lớp phân tích được ánh xạ trực tiếp tới một lớp thiết kế?
- [ ] A. Khi lớp phân tích sử dụng `<entity>` sterotype
- [x] B. Khi lớp phân tích đại diện một lớp trừu tượng logic đơn duy nhất.
- [ ] C. Khi một mô hình công cụ hỗ trợ chuyển từ mô hình phân tích sang mô hình thiết kế.
- [ ] D. Khi một nhà phân tích có kỹ năng tốt.
## 8. Mô tả kiến trúc thực thi và phân tán:
### 8.1. Một sự cân nhắc quan trọng khi phân bổ quy trình cho các nút là gì ?
- [x] A. minimizing network traffic ( Giảm thiểu lưu lượng mạng)
- [ ] B. minimizing power consumption (Giảm thiểu điện năng tiêu thụ)
- [ ] C. utilizing all available nodes (Sử dụng tất cả các nút có sẵn)
- [ ] D. physical distance between nodes ( Khoảng các vật lý giữa các nút).
### 8.2. Phần tử UML nào dùng để diễn tả kiến trúc vật lý của hệ thống?
- [ ] A. classes and relationships
- [ ] B. objects and messages
- [ ] C. subsystems and dependencies
- [x] D. nodes and connectors
### 8.3. Trong hoạt động mô tả phân tán, hoạt động mô tả kiến trúc run-time phân bổ các tiến trình cho _____.
- [x] A. Các nút vật lý
- [ ] B. Các thành phần
- [ ] C. Các lớp
- [ ] D. Hoạt động
### 8.4. Định nghĩa cấu hình mạng là bước _____ của hoạt động mô tả phân phối.
- [ ] A. Cuối cùng
- [x] B. Đầu tiên
- [ ] C. Thứ 2
- [ ] D. Thứ 5
### 8.5. Có bao nhiêu nút vật lý cần được xác định để thực hiện diễn tả hoạt động phân tán?
- [ ] A. Không nút
- [ ] B. Chỉ một nút
- [ ] C. Không hoặc một nút
- [x] D. Nhiều hơn một nút
### 8.6. Thứ được sử dụng để diễn tả việc áp dụng một cơ chế phân tán trong quá trình cài đặt?
- [ ] A. Biểu đồ hoạt động
- [ ] B. Biểu đồ luồng (flow chart)
- [x] C. Mô hình UML và các bước bằng văn bản
- [ ] D. Biểu đồ ca sử dụng
### 8.7. Đâu là ví dụ về một kết nối?
- [ ] A. Đĩa cứng SCSI
- [ ] B. Nguồn điện liên tục
- [x] C. Giao thức HTTP*
- [ ] D. Lớp JDBC
### 8.8. Đâu là một thiết bị?
- [ ] A. Máy chủ cơ sở dữ liệu
- [ ] B. Máy chủ web
- [ ] C. Mạng riêng ảo
- [x] D. Máy tính cầm tay
### 8.9. Khung nhìn nào trong 4+1 tập trung vào hoạt động mô tả phân phối?
- [ ] A. Logic
- [x] B. Triển khai
- [ ] C. Ca sử dụng
- [ ] D. Cài đặt
### 8.10. Artifacts (Hiện vật) là các thực thể ______
- [ ] A. Máy chủ chạy phần mềm
- [x] B. Được triển khai vào những nút vật lý
- [ ] C. Là kết quả của sự biến đổi mô hình
- [ ] D. Được lưu trong cache của browser
## 9. Thiết kế ca sử dụng
### 9.1. Nhiệm vụ nào được thực hiện trong quá trình làm mịn hiện thực hóa ca sử dụng?
- [ ] A. Xác định các lớp tham gia
- [ ] B. Phân chia trách nhiệm giữa các lớp.
- [ ] C. Mô hình các thông điệp giữa các lớp.
- [x] D. Mô hình quan hệ giữa các lớp.
### 9.2. Cho cấu hình sau: Package A chứa lớp aClass ở tầng presentation. Package B chứa lớp bClass, bInterface ở tầng business. Pagkage C chứa cClass ở tầng data. Cái nào là poor practice?
- [ ] A. aClass gọi một phương thức trong bClass
- [x] B. aClass chứ một thuộc tính của cClass
- [ ] C. aClass hiện thực bInterface
- [ ] D. bClass hiện thực bInterface
### 9.3. Mối quan hệ giữa operation và method là gì?
- [ ] A. Đồng nghĩa
- [ ] B. Một operation mô tả các một method được thực hiện
- [x] C. Một method mô tả cách operation được thực hiện
- [ ] D. Không có mối quan hệ.
### 9.4. Tại sao lại sử dụng các subsystem Interface nhiều hơn sử dụng các đối tượng subsystem ở trong sequence diagram?
- [ ] A. Để nó dễ hơn khi mô hình hóa subsystem trong thiết kế subsystem.
- [x] B. Để hiện thực hóa use-case có thể dễ dàng thay đổi.
- [ ] C. Để dễ dàng bảo trì sequence diagram khi thông điệp thông báo thay đổi
- [ ] D. Để giảm số lượng class cần cài đặt vào subsystem.
### 9.5. Các hệ thống subsystem bổ sung có thể phát hiện trong quá trình thiết kế use-case bằng cách ghi chú thích ______
- [x] A. Các luồng phụ thông thường giữa các đối tượng trong sơ đồ tuần tự.
- [ ] B. Các đối tượng tương tự trên sơ đồ tuần tự.
- [ ] C. Một chuỗi các trạng thái chuyển đổi cho nhiều lớp liên quan đến các hiện thực hóa use-case.
- [ ] D. Các lớp thiết kế tương tự liên quan đến nhiều hơn một hiện thực hóa use-case
### 9.6. Hoạt động nào thực hiện trong suốt giai đoạn thiết kế use-case?
- [ ] A. chuyển đổi các lớp phân tích thành các lớp thiết kế và các hệ thống con
- [x] B. mô tả hành vi liên quan đến bền vững
- [ ] C. mô tả các tương tác thực hiện các thao tác giao diện
- [ ] D. đơn giản hoá sơ đồ tuần tự sử dụng các lớp thiết kế
### 9.7. Cái nào dưới đây dùng để hiện thực hóa use-case?
- [ ] A. textual use-case descriptions
- [x] B. communication diagrams
- [ ] C. state charts
- [ ] D. activity diagrams
### 9.8. Điều gì định nghĩa trách nhiệm của hệ thống con?
- [ ] A. Hành vi bên trong class
- [x] B. Các phương thức interface nó cài đặt.
- [ ] C. Hiện thực hóa use-case mà trong đó subsystem xuất hiện.
- [ ] D. Các phương thức chứa trên một lớp trong một hệ thống con.
### 9.9. Thiết kế use-case là luồng công việc của
- [ ] A. Thiết kế ca sử dụng
- [ ] B. Phân tích hành vi
- [x] C. Thiết kế các thành phần
- [ ] D. Thiết kế lớp và hệ thống con
### 9.10. Tài liệu biểu đồ tuần tự bổ sung, dưới dạng ghi chú và các kịch bản, thường được sử dụng cho _____. (Chọn ba)
- [x] A. Mô tả thời gian yêu cầu giữa các tin nhắn.
- [x] B. Cung cấp về hành vi có điều kiện.
- [ ] C. Xác định các thuộc tính cho các đối tượng xuất hiện trong sơ đồ.
- [x] D. Tương ứng với các điểm mở rộng trong trường hợp sử dụng với các vị trí cụ thể trong sơ đồ tuần tự.
### 9.11. Với cơ chế persistence, hai chức năng của giao chuyển là
- [x] A. Đảm bảo rằng các phương thức được thực hiện hoặc tất cả hoặc không cái nào.
- [ ] B. Cho phép nhà thiết kế lựa chọn các phương thức được thực thi khi mà thiếu tài nguyên hệ thống.
- [x] C. Đảm bảo rằng tập các đối tượng chuyển từ trạng thái nhất quán sang trạng thái khác.
- [ ] D. Đơn giản hóa thiết kế, do đó persistence không cần phải rõ ràng cân nhắc trong giai đoạn thiết kế
### 9.12. Ba mục đích của thiết kế ca sử dụng?
- [x] A. Làm mịn hiện thực hóa ca sử dụng trong các tương tác
- [ ] B. Để đảm bảo tính đầy đủ của View of Participating Classes diagrams cho mỗi hiện thực hóa use-case.
- [x] C. Để tinh chỉnh các yêu cầu cho thiết kế lớp
- [x] D. Để tinh chỉnh các phương thức cho thiết kế subsystem hoặc/và interface.
### 9.13. Đầu ra của thiết kế ca sử dụng là
- [ ] A. Các lớp phân tích
- [ ] B. Các lớp thiết kế
- [ ] C. Interface
- [x] D. Mô hình thiết kế
### 9.14. Đâu là ví dụ về môi trường thực thi?
- [ ] A. Chuyển mạch Gigabit
- [ ] B. Mạng riêng ảo
- [x] C. Máy chủ ứng dụng J2EE
- [ ] D. Máy tính cầm tay
### 9.15. Mục đích của thống nhất lớp và hệ thống con là?
- [ ] A. Mỗi hệ thống con có một thành phần hệ thống con tương ứng
- [ ] B. Tất cả các lớp được gán nhiều nhất cho một hệ thống con.
- [x] C. Trách nhiệm của các phần tử thiết kế không được trùng nhau.
- [ ] D. Mỗi giao diện xác định có một API gắn kết và mạch lạc
### 9.16. Đâu là hướng dẫn cho việc đóng gói các tương tác hệ thống con trong sơ đồ trình tự?
- [x] A. Thông điệp đến các hệ thống con phải tương ứng với các phương thức trong interface cúa subsystem.
- [ ] B. Thông điệp từ subsystem phải tương ứng với các phương thức của thành phần subsystem.
- [ ] C. Trong quá trình sử dụng thiết kế use-case, cần tạo sơ đồ tuần tự thứ cấp cùng với mô hình tuần tự cùng với hệ thống con.
- [ ] D. Một hệ thống con phải được trình bày trên sơ đồ tuần tự sử dụng thành phần của hệ thống con.
## 10. Thiết kế hệ thống con
### 10.1. Câu nào đúng về các phần tử trong subsystem và khả năng hiện thị công khai của chúng?
- [ ] A. Chỉ có các phần tử là API của subsystem thì được công khai nhìn thấy.
- [ ] B. Chỉ có các subsystem proxy class có thể nhìn thấy công khai.
- [x] C. Không có phần tử nào bên trong subsystem có thể nhìn thấy công khai.
- [ ] D. Chỉ các lớp có tham chiếu đến các lớp mở rộng thi có thể nhìn thấy công khai.
### 10.2. Hai loại phụ thuộc được sử dụng trong một subsystem?
- [x] A `<<use>>` phụ thuộc đến một giao diện của hệ thống con
- [x] B một `<<import>>` phụ thuộc vào một gói có chứa các lớp đã sử dụng
- [ ] C một mối quan hệ `<<manifest>>` với một nút trong mô hình Deployment
- [ ] D mối quan hệ `<<realize>>` với một hoặc nhiều sự kiện cộng tác
### 10.3. Câu nào đúng về thiết kế subsystem?
- [ ] A. Đóng gói một phần hành vi
- [x] B. Chúng đại diện cho một khả năng độc lập với các interface rõ ràng.
- [ ] C. Chúng mô hình cho một biến thể duy nhất.
- [ ] D. Chúng chỉ chứa các class thiết kế.
### 10.4. Ở sequence diagram, cái nào trình bày đặc điểm của subsystem.
- [ ] A. một giao diện mà hệ thống con nhận ra
- [ ] B. một proxy hệ thống con
- [x] C. một thành phần hệ thống con
- [ ] D. một lớp hệ thống con
### 10.5. Trong Thiết kế Subsystem, những gì xảy ra ở bước này, phân phối Trách nhiệm hệ thống con?
- [x] A Trách nhiệm của subsystem được phân bổ cho các thành phần bên trong của nó.
- [ ] B Mỗi hệ thống con được kiểm tra để đảm bảo nó có một bộ trách nhiệm nhất quán.Và trách nhiệm không nhất quán được gán lại cho các hệ thống con khác.
- [ ] C Thư viện và các API bên ngoài được xác định để nhận ra hành vi của hệ thống con.
- [ ] D Các cơ chế phân phối được trình bày chi tiết cho việc hiển thị các giao diện hệ thống con.
### 10.6. Trong quá trình thiết kế hệ thống con, có bao nhiêu biểu đồ tương tác (Trình tự hoặc truyền thông) nên được tạo ra?
- [x] A. ít nhất một sơ đồ tương tác cho mỗi hoạt động giao diện
- [ ] B. một biểu đồ tương tác cho mỗi thực hiện giao diện
- [ ] C. ít nhất một sơ đồ tương tác cho mỗi lần sử dụng một giao diện bên ngoài
- [ ] D. một sơ đồ tương tác cho mỗi lớp thực hiện
### 10.7. Mục đích chính của thiết kế subsytem là gì?
- [ ] A. Cung cấp quản lý mô hình và tổ chức mô hình
- [x] B. Đóng gói hành vi
- [ ] C. Gói các lớp thiết kế tương tự nhau
- [ ] D. Đại diện cho các hệ thống bên ngoài.
### 10.8. Mục đích chính thiết kế hệ thống con là gì?
- [ ] A. Hoàn tất các chi tiết các interface được thực hiện bởi các subsystem trong một ứng dụng.
- [ ] B. Phân chia thành các hệ thống con, sau đó giao hệ thống con cho các đội phát triển.
- [x] C. Xác định các hành vi được đặc tả trong các interface của subsystem dưới dạng hợp tác có chứa các phần tử thiết kế.
- [ ] D. Xác định mỗi cấp từng hệ thống được thực hiện và cơ chế truyền thông giữa chúng.\
### 10.9. Câu nào đúng về pagkage và subsystem?
- [ ] A. Một gói không thể chứa một hệ thống con
- [ ] B. Một gói cung cấp hành vi.
- [x] C. Một hệ thống con cung cấp hành vi
- [ ] D. Bạn sử dụng một gói khi bạn cần đóng gói hành vi.
## 11. Thiết kế lớp
### 11.1. Cho thông tin được cung cấp trong biểu đồ, câu nào sau đây là đúng?

- [ ] A. Tiger và Lion communicate với nhau.
- [ ] B. Tiger và Lion communicate với Animal.
- [x] C. Animal có thể không có instance trực tiếp.
- [ ] D. Các cá thể Animal communicate khác với các cá thể Tiger hoặc Lion
### 11.2. Một thuộc tính được gạch chân cho biết là gì?
- [ ] A. Thuộc tính là read-only.
- [ ] B. Thuộc tính này có nguồn gốc từ các hệ thống khác
- [ ] C. Thuộc tính duy nhất xác định đối tượng.
- [x] D. Thuộc tính được định nghĩa ở cấp lớp thay vì cấp thực thể
### 11.3. Trong biểu đồ, thuộc tính CourseOffering.numberOfStudents là một ví dụ của ....?

- [ ] A. một thiết kế tồi
- [ ] B. một thuộc tính tĩnh
- [x] C. một thuộc tính dẫn xuất
- [ ] D. đặt tên không chuẩn
### 11.4. Ba hoạt động nào là yếu tố của thiết kế lớp?
- [x] A. xác định các lớp và các mối quan hệ hỗ trợ thực hiện một kiến trúc
- [x] B. Xác định và phân tích chuyển tiếp trạng thái trong các đối tượng của các lớp điều khiển trạng thái
- [ ] C. xác định các lớp mô hình miền vấn đề
- [x] D. làm mịn các mối quan hệ, các hoạt động và các thuộc tính