Đáp án đúng: B. V-Model là Waterfall được "gập đôi": mỗi pha bên nhánh trái (yêu cầu, thiết kế hệ thống, thiết kế chi tiết, lập trình) được gắn sẵn một mức kiểm thử tương ứng bên nhánh phải (acceptance test, system test, integration test, unit test). Kế hoạch kiểm thử của mỗi mức được soạn NGAY khi làm pha thiết kế tương ứng, nên việc phát triển và chuẩn bị kiểm thử chạy song song thay vì dồn toàn bộ kiểm thử về cuối như Waterfall. A sai: V-Model không bỏ pha yêu cầu — pha đó chính là đỉnh nhánh trái và gắn với acceptance test. C sai: V-Model vẫn theo tuần tự, thay đổi phạm vi giữa chừng vẫn rất tốn kém. D sai: các giai đoạn không bị gộp, chúng được nhân đôi thành cặp phát triển - kiểm thử.
Quiz: SWE201c_FE_SU26 - Có đáp án và giải thích chi tiết
Phiên có lưu tiến độ dùng toàn bộ 49 câu của bộ đề để tiến độ khớp với máy chủ.
Bạn cần đăng nhập để bắt đầu làm bài và lưu tiến độ.
49
Không giới hạn
0
49
49
Xem trước câu hỏi
Đáp án đúng: A. Một lỗi (fault) nằm trong mã nguồn chỉ trở thành sai sót thực sự khi đoạn mã chứa nó được thực thi. Nếu component chứa lỗi không bao giờ được gọi tới trong quá trình chạy, lỗi đó vẫn nằm im và không ai phát hiện ra — đây chính là lý do độ phủ mã (code coverage) quan trọng: phần mã chưa từng chạy là phần chưa từng được kiểm chứng. B, C sai: test data và test case là thứ ta chủ động tạo ra để kích hoạt lỗi, chúng là công cụ phát hiện chứ không phải nơi lỗi ẩn náu. D sai: output là kết quả quan sát được sau khi mã đã chạy — nếu đã có output sai thì lỗi đã lộ diện rồi.
Đáp án đúng: B. Innovation accounting (kế toán đổi mới) là khung đo lường Eric Ries đề xuất trong Lean Startup dành cho môi trường cực kỳ bất định, nơi doanh thu và lợi nhuận còn bằng không nên báo cáo tài chính truyền thống không nói lên điều gì. Thay vào đó, startup chọn các chỉ số hành vi người dùng (actionable metrics), đặt mốc học tập (learning milestones) và chứng minh tiến độ bằng validated learning từ từng vòng Build - Measure - Learn. A sai: kế toán truyền thống chính là thứ Lean Startup thay thế trong giai đoạn này. C và D không phải thuật ngữ của Lean Startup.
Đáp án đúng: A. Hai kỹ thuật dùng nguyên mẫu nhưng xuất phát từ hai tình huống trái ngược. Throw-away prototyping dùng khi yêu cầu còn mù mờ: làm nhanh một bản mẫu để hỏi người dùng cho rõ nghĩa, hiểu xong thì VỨT bản mẫu đi rồi xây lại tử tế. Exploratory (evolutionary) development đi từ những yêu cầu đã hiểu rõ, xây dần và bồi đắp chính bản đó thành sản phẩm cuối. B sai vì đảo ngược đúng hai vế. C sai: điểm phân biệt là mức độ hiểu yêu cầu, không phải nguồn gốc ý tưởng. D sai vì A đã đúng.
Đáp án đúng: B. Ba chiến lược cutover phân biệt nhau ở mức độ sẵn sàng của hệ thống thay thế. Cold backup: máy thay thế chưa chạy, phải cài đặt và khởi động từ đầu. Warm standby: máy thay thế ĐANG CHẠY và sẵn sàng cho việc cài đặt — đúng mô tả trong đề. Hot failover: dịch vụ thay thế đã chạy sẵn và chỉ cần chuyển hướng dữ liệu sang, không phải cài gì thêm. A sai vì hot failover không còn bước cài đặt nào. C sai vì cold backup thì máy chưa chạy. D "Warm failover" không phải một chiến lược chuẩn trong danh mục này. ⚠ Bản đề in đáp án A. Chốt B vì trong chính bộ đề khác của môn, câu "replacement services are ready for the redirection of data with no installation" mới là Hot failover — hai câu ghép lại thành một cặp nhất quán, và cặp đó buộc câu này phải là Warm standby.
Đáp án đúng: B. Chi phí sửa một khiếm khuyết tăng theo cấp số nhân theo độ trễ phát hiện: lỗi tìm thấy lúc review thiết kế chỉ mất vài giờ, cũng lỗi ấy lọt tới pha kiểm thử cuối thì kéo theo sửa mã, sửa tài liệu, kiểm thử hồi quy và cả những đoạn mã đã xây chồng lên phần sai. Hoãn kiểm soát chất lượng vì thế làm khối lượng làm lại (rework) phình lên và nợ kỹ thuật tích tụ. A sai: hệ quả về lịch giao hàng chỉ là hậu quả gián tiếp, không phải nguy cơ cốt lõi. C và D nói ngược: hoãn kiểm soát chất lượng làm tăng tổng chi phí và kéo dài dự án chứ không tiết kiệm hay tăng tốc.
Đáp án đúng: C. Câu này hỏi về mức độ gắn kết (cohesion) — càng yếu càng không mong muốn. Nhóm các chức năng chỉ vì chúng "xảy ra cùng khoảng thời gian" chính là temporal cohesion, một trong bốn loại cohesion yếu, vì module hình thành do trùng thời điểm chứ không do liên quan về nghiệp vụ. A là functional cohesion — mức mạnh nhất, đáng mong muốn nhất. B là object cohesion (thao tác trên thuộc tính của chính đối tượng), cũng thuộc nhóm mạnh. D là communicational cohesion (cùng dùng chung dữ liệu đầu vào), vẫn khá hơn temporal. Vì vậy C là lựa chọn kém mong muốn nhất.
Đáp án đúng: A. Validation trả lời câu hỏi "Are we building the right product?" — sản phẩm có thực sự đáp ứng nhu cầu và kỳ vọng của người dùng hay không. Việc phần mềm được người dùng đón nhận tốt chính là bằng chứng trực tiếp cho điều đó. B, C, D đều là verification ("Are we building the product right?"): B đối chiếu kết quả với tài liệu đặc tả, C và D kiểm tra hệ thống có hành xử đúng như quy định kỹ thuật đã viết ra hay không. Cả ba đều so sánh sản phẩm với đặc tả, chứ không hỏi bản thân đặc tả có đúng ý người dùng.
Đáp án đúng: C. Lean Startup là phương pháp gắn liền với khái niệm MVP: xây bản khả dụng tối thiểu thật nhanh, tung ra cho người dùng thật, đo phản hồi rồi quyết định pivot hay persevere qua vòng lặp Build - Measure - Learn. A sai: Waterfall giao sản phẩm hoàn chỉnh ở cuối, không có chỗ cho MVP. B sai: Kanban là công cụ quản trị dòng công việc, không quy định cách xây và học từ sản phẩm. D sai: Scrum là khung làm việc tổ chức nhóm theo sprint; nó có thể chứa MVP nhưng bản thân MVP và validated learning là đóng góp của Lean Startup.
Đáp án đúng: C. Waterfall, V-Model và Sashimi đều là các mô hình dự đoán (predictive): chúng giả định yêu cầu đã biết rõ ngay từ đầu và giải pháp cũng đã nắm chắc. Một startup triển khai ý tưởng hoàn toàn mới với thị trường thì ở tình huống ngược lại — yêu cầu bất định, phải học từ phản hồi — nên đây là ngữ cảnh tệ nhất cho ba mô hình này, thứ hợp hơn là Agile hoặc Lean Startup. A, B, D đều đúng với ba mô hình: giả định biết rõ yêu cầu, biết rõ giải pháp, và chi phí thay đổi tăng theo độ trễ phát hiện.
Đáp án đúng: D. Theo định luật Little, thời gian chu kỳ = số việc đang làm dở chia cho thông lượng. Muốn rút ngắn cycle time mà không hạ chất lượng thì đòn bẩy đúng đắn là giảm số hạng mục đang nằm trong tiến trình — đây chính là nguyên tắc Limit WIP của Kanban: ít việc song song thì ít chuyển ngữ cảnh, ít hàng chờ, lỗi lộ ra sớm hơn. A hy sinh thẳng chất lượng. B làm tăng WIP, khiến mọi thứ chậm lại. C ép tăng ca chỉ tạo mệt mỏi và thêm lỗi, đây đúng là loại lãng phí Lean muốn loại bỏ.
Đáp án đúng: A. Design Thinking có năm giai đoạn: Empathize, Define, Ideate, Prototype, Test. Giai đoạn Define là lúc tổng hợp những gì thu được ở Empathize thành một phát biểu vấn đề rõ ràng (problem statement) — chốt lại chính xác ta đang giải quyết vấn đề gì cho ai. C là Empathize (khám phá nhu cầu và trải nghiệm người dùng). B là Ideate (chọn ra ý tưởng khả thi). D là Test (kiểm chứng hiệu quả của giải pháp). Nhầm Define với Empathize là nhầm phổ biến nhất: một bên đi thu thập, một bên đi phát biểu vấn đề.
Đáp án đúng: A. Điểm mạnh đặc trưng của Waterfall so với các mô hình khác là tính kỷ luật tài liệu: mỗi pha kết thúc bằng một sản phẩm tài liệu được duyệt (đặc tả yêu cầu, tài liệu thiết kế, kế hoạch kiểm thử), làm cho tiến độ dễ theo dõi, dễ bàn giao và dễ audit. B sai: đáp ứng nhu cầu tức thời của khách hàng là ưu thế của Agile, còn Waterfall chỉ giao sản phẩm ở cuối. C sai: Waterfall nổi tiếng chậm, không phải nhanh. D sai vì B và C đều không đúng.
Đáp án đúng: A, C, D. Phân tích tĩnh đọc mã nguồn mà không chạy chương trình, nên nó bắt được những gì suy ra được từ cấu trúc mã: biến khai báo mà không dùng, đoạn mã trùng lặp, và các mẫu cấp phát - giải phóng bộ nhớ dẫn tới rò rỉ. B sai: tính khả thi của yêu cầu (requirements feasibility) là chuyện nghiệp vụ và ràng buộc dự án, nằm ngoài mã nguồn — không công cụ phân tích tĩnh nào đọc mã mà kết luận được yêu cầu có làm nổi hay không. Đây là ranh giới cần nhớ: phân tích tĩnh soi mã, không soi yêu cầu.
Đáp án đúng: A. Trong Observer Pattern, Subject truyền chính nó (thường là tham chiếu this) sang Observer khi gọi update, để Observer biết ai vừa đổi và tự lấy dữ liệu mới về — đây gọi là mô hình pull và là cách cài đặt tiêu chuẩn, hoàn toàn không bị chặn bởi phụ thuộc vòng. Vì vậy A là phát biểu SAI. B đúng: Subject chỉ phụ thuộc vào interface Observer chứ không phụ thuộc lớp cụ thể — đúng tinh thần Dependency Inversion. C đúng: Strategy cho phép thêm thuật toán mới bằng cách thêm lớp mới, không phải sửa lớp cũ, tức mở để mở rộng và đóng để sửa đổi.
Đáp án đúng: A. Chất lượng trong Agile được bảo đảm bằng vòng phản hồi ngắn và tự động hoá: code review bắt lỗi thiết kế và lỗi logic ngay khi mã còn mới, continuous integration hợp nhất liên tục để lỗi tích hợp lộ ra trong ngày thay vì cuối dự án, kiểm thử tự động tạo lưới an toàn cho phép refactor mà không sợ vỡ. B, C, D đều đi ngược: kiểm thử thủ công đơn thuần không theo kịp nhịp sprint; bỏ tài liệu và triển khai Big Bang làm rủi ro dồn về cuối; giao tăng dần mà không có đường lùi (rollback) thì mỗi lần phát hành đều là canh bạc.
Đáp án đúng: D. Một design pattern được mô tả đầy đủ luôn gồm ba phần: bối cảnh và vấn đề nó giải quyết (problem description), cấu trúc giải pháp gồm các lớp và quan hệ (solution description), và hệ quả khi áp dụng — được gì, đánh đổi gì (consequences). Thiếu phần hệ quả thì người đọc không biết khi nào KHÔNG nên dùng mẫu đó. A, B, C mỗi phương án chỉ nêu một phần trong ba, nên đều thiếu; chỉ D bao trọn.
Đáp án đúng: B. Trong bốn phương án, chỉ độ tin cậy (reliability) là một thuộc tính chất lượng của phần mềm — khả năng hệ thống thực hiện đúng chức năng trong điều kiện xác định suốt một khoảng thời gian. Nó nằm cùng nhóm với tính bảo trì, hiệu năng, bảo mật, khả dụng. A, C, D đều chỉ là các loại giao diện: giao diện người dùng, giao diện phần mềm và giao diện phần cứng. Giao diện là thành phần của hệ thống, không phải thước đo chất lượng của hệ thống.
Đáp án đúng: A. Yêu cầu chức năng mô tả hệ thống PHẢI LÀM GÌ — một hành vi cụ thể có thể kiểm chứng bằng cách thực hiện nó. "Người dùng phải đăng nhập được bằng tên đăng nhập và mật khẩu" chính là một chức năng như vậy. B, C, D là yêu cầu phi chức năng, mô tả hệ thống làm việc đó TỐT ĐẾN MỨC NÀO: B nói về hiệu năng (thời gian phản hồi 2 giây), C nói về bảo mật (mã hoá dữ liệu), D nói về tính khả dụng (dễ dùng với người mới). Mẹo phân biệt: cắt bỏ ràng buộc chất lượng đi mà chức năng vẫn còn nghĩa thì đó là yêu cầu phi chức năng.
Đáp án đúng: B. Unified Process có bốn pha: Inception, Elaboration, Construction, Transition. Elaboration là pha làm rõ phần lớn yêu cầu và chốt kiến trúc nền — kết thúc pha này là cột mốc Lifecycle Architecture, tức đã thu thập và phân tích xong đại bộ phận use case, đủ để đóng khung rủi ro và ước lượng phần còn lại. A thuộc Inception (mô hình hoá nghiệp vụ, xác định phạm vi). C tuy có chạy trong Elaboration nhưng đạt cường độ cao nhất ở Construction. D thuộc Transition. Lưu ý: các discipline chạy xuyên suốt mọi pha, câu hỏi hỏi trọng tâm chính của pha.
Đáp án đúng: C. Hệ thống ngân hàng trực tuyến có nhiều client (trình duyệt, ứng dụng di động) gửi yêu cầu tới một tập máy chủ tập trung nắm dữ liệu tài khoản và xử lý giao dịch — đúng khuôn mẫu Client-Server: phân tách rõ bên yêu cầu dịch vụ và bên cung cấp dịch vụ, giao tiếp qua mạng. A Pipe-and-Filter hợp với xử lý dữ liệu theo chuỗi biến đổi. B Blackboard hợp bài toán AI nhiều nguồn tri thức cùng ghi lên một vùng dữ liệu chung. D Event-based hợp hệ thống phản ứng theo sự kiện rời rạc. Không mô hình nào trong ba nắm được đặc trưng tập trung dữ liệu và nhiều người dùng đồng thời của ngân hàng.
Đáp án đúng: A, B, C. Mỗi vòng xoáy của Spiral Model đi qua bốn góc phần tư theo đúng thứ tự: xác định mục tiêu và các phương án thay thế, đánh giá phương án và nhận diện rủi ro, phát triển cùng kiểm thử bản mẫu của vòng đó, rồi lập kế hoạch cho vòng kế tiếp. D, E, F đều mâu thuẫn với bản chất mô hình: Spiral sinh ra chính là để quản trị rủi ro, nên bỏ phân tích rủi ro cho nhanh (E) là phá bỏ lý do tồn tại của nó; làm sản phẩm cuối mà không kiểm thử (D) hay triển khai ngay sau thiết kế (F) đều bỏ mất bước kiểm chứng bắt buộc của mỗi vòng.
Đáp án đúng: D. Waterfall thực tế lại thường được chọn cho các dự án LỚN, yêu cầu ổn định và cần kỷ luật tài liệu chặt (hệ thống chính phủ, quốc phòng, hàng không), nên "không phù hợp với dự án lớn" KHÔNG phải hạn chế của nó. A, B, C đều là hạn chế thật: mô hình tuần tự nên rất khó tiếp nhận thay đổi yêu cầu giữa chừng; tích hợp chỉ diễn ra ở pha cuối nên lỗi tích hợp ẩn rất lâu; hiểu sai yêu cầu hoặc thiết kế có thể trôi qua nhiều pha mới bị phát hiện, lúc đó chi phí sửa đã rất cao.
Đáp án đúng: C. Lập kế hoạch triển khai (deployment planning) là bài toán kỹ thuật vận hành: trình tự các bước cài đặt, thứ tự khởi động dịch vụ, di trú dữ liệu, cấu hình môi trường, kiểm tra sau cài và phương án quay lui khi hỏng. Không có trình tự này thì buổi go-live biến thành ứng biến. A thuộc pha thiết kế giao diện. B thuộc phòng marketing. D là đầu vào cho bài toán năng lực hệ thống (capacity planning) chứ không phải nội dung của kế hoạch triển khai. Chỉ C trực tiếp quyết định buổi triển khai thành hay bại.
Đáp án đúng: C. Mỗi vòng Spiral khởi động ở góc phần tư thứ nhất: xác định mục tiêu của vòng, các ràng buộc và những phương án khả dĩ. Có mục tiêu rồi mới đánh giá được phương án nào rủi ro tới đâu. A là góc phần tư thứ hai (phân tích và xử lý rủi ro), diễn ra SAU khi đã có mục tiêu để so. B là góc phần tư thứ ba (phát triển và kiểm chứng). D là góc phần tư thứ tư (lập kế hoạch vòng kế tiếp), tức bước cuối chứ không phải bước đầu.
Đáp án đúng: B. Yêu cầu phi chức năng ràng buộc CHẤT LƯỢNG của hành vi chứ không thêm hành vi mới. "Hệ thống phản hồi trong vòng 2 giây" không mô tả hệ thống làm gì, nó đặt ngưỡng hiệu năng cho mọi việc hệ thống làm. A, C, D đều là yêu cầu chức năng: cho phép đăng nhập, hiển thị sản phẩm, đặt lại mật khẩu — mỗi câu mô tả một việc cụ thể hệ thống phải thực hiện được. Mẹo nhận diện: yêu cầu phi chức năng thường đi kèm con số hoặc tính từ chất lượng (nhanh, an toàn, dễ dùng, sẵn sàng).
Đáp án đúng: D. Chữ V có hai nhánh: nhánh trái đi xuống là phân rã (khái niệm, yêu cầu, thiết kế hệ thống, thiết kế chi tiết), đáy chữ V là lập trình, nhánh phải đi lên là tích hợp và kiểm chứng — unit test, integration test, system test, acceptance test. Vậy trọng tâm nhánh phải là kiểm thử và thẩm định dự án. A, B, C đều nằm bên nhánh TRÁI. Giá trị cốt lõi của V-Model là mỗi mức bên phải soi chiếu đúng mức tương ứng bên trái, nên nhớ nhầm chiều là mất hẳn ý nghĩa mô hình.
Đáp án đúng: C. Product Backlog là danh sách sống của toàn bộ hạng mục mong muốn cho sản phẩm, do Product Owner sở hữu và sắp theo độ ưu tiên. Ở mỗi buổi Sprint Planning, nhóm phát triển kéo phần trên cùng của Product Backlog vào và phân rã thành Sprint Backlog cho sprint đó. Quan hệ vì thế là một chiều: Sprint Backlog dựa trên Product Backlog. A sai vì hai danh sách khác hẳn phạm vi. B sai vì đảo ngược chiều phụ thuộc. D sai: Sprint Backlog thuộc sở hữu của nhóm phát triển, chỉ Product Backlog mới do Product Owner sở hữu.
Đáp án đúng: A. Con người ước lượng tuyệt đối (bao nhiêu giờ) rất kém nhưng so sánh tương đối lại khá tốt: nói "việc này to gấp đôi việc kia" dễ và ổn định hơn nhiều so với nói "việc này mất 13 giờ". Relative sizing bằng story point khai thác đúng điểm mạnh đó, cho ước lượng nhất quán hơn và tránh tranh cãi về năng suất từng cá nhân. B nói ngược: story point cố tình KHÔNG mang giá trị số tuyệt đối. C sai: ước lượng không làm giảm độ biến thiên của thời gian thực hiện. D sai: nhanh hơn chỉ là hệ quả phụ, không phải lợi ích chính.
Đáp án đúng: A. Pair Programming là một trong 12 thực hành cốt lõi của Extreme Programming: hai lập trình viên ngồi cùng một máy, một người cầm bàn phím (driver) viết mã, người kia (navigator) rà soát từng dòng và nghĩ trước một bước. Đây là hình thức review liên tục theo thời gian thực. B, C, D không phải tên thực hành nào của XP, chỉ là các biến thể chữ nghĩa dựng lên để gây nhiễu.
Đáp án đúng: A. Mô hình WRSPM (World, Requirements, Specification, Program, Machine) chia bài toán thành hai phía: phía thế giới thực nơi phát sinh yêu cầu, và phía máy nơi chương trình chạy; đặc tả (Specification) nằm ở chỗ giao nhau, viết bằng ngôn ngữ chung của cả hai. Mục đích của mô hình là bảo đảm đặc tả ta viết thực sự thoả mãn yêu cầu của thế giới thực — tức specification đáp ứng requirements. B đảo ngược chiều: yêu cầu là thứ có trước và độc lập, không phải thứ phải chạy theo đặc tả. C sai vì A đã đúng.
Đáp án đúng: A. Cohesion đo mức độ gắn bó BÊN TRONG một module — mọi thành phần của module có cùng phục vụ một mục đích rõ ràng hay không. Cohesion cao nghĩa là module làm đúng một việc và làm trọn. B decomposability là lợi ích của tính module nói chung. C và D đều nói về coupling chứ không phải cohesion: giữ thay đổi không lan qua ranh giới module và giao tiếp lỏng lẻo giữa các module đều là chuyện quan hệ GIỮA các module. Nhớ cặp đối: cohesion nhìn vào trong, coupling nhìn ra ngoài.
Đáp án đúng: B. Burndown chart vẽ khối lượng công việc CÒN LẠI theo thời gian, đường lý tưởng đi thẳng xuống 0 vào ngày cuối sprint. Nhóm nhìn khoảng lệch giữa đường thực tế và đường lý tưởng để biết mình đang bám kịp hay tụt lại, và điều chỉnh ngay trong sprint. A gần đúng nhưng lệch trọng tâm: biểu đồ đo khối lượng còn lại chứ không đếm số story đã xong. C sai: ước lượng tổng công sức diễn ra ở sprint planning, không phải việc của biểu đồ. D sai: sắp xếp ưu tiên backlog là việc của Product Owner.
Đáp án đúng: A. Sprint Planning trả lời hai câu: sprint này làm được bao nhiêu, và làm thế nào. Câu thứ nhất buộc nhóm phải xác định năng lực (capacity) của sprint — bao nhiêu người, bao nhiêu ngày làm việc thực, trừ nghỉ phép và họp — rồi mới cam kết được phạm vi. B backlog grooming là hoạt động refinement diễn ra TRƯỚC và ngoài buổi planning. C cập nhật task board là việc hằng ngày trong sprint. D sinh user story mới là việc của Product Owner khi nuôi backlog, không phải nội dung buổi planning.
Đáp án đúng: B. Giá trị "Working software over comprehensive documentation" là một phép so sánh ưu tiên, không phải phép phủ định — Agile Manifesto viết rõ vế bên phải vẫn có giá trị, chỉ là vế bên trái được coi trọng hơn. Vì vậy cách hiểu đúng là: vẫn làm tài liệu, nhưng làm khi nó mang lại giá trị thật. A hiểu thành phủ định hoàn toàn, đây là ngộ nhận phổ biến nhất về Agile. C thì làm tài liệu vì thủ tục nội bộ chứ không vì giá trị — đúng loại lãng phí Agile muốn cắt.
Đáp án đúng: B. Scrum không cấm tài liệu; nó yêu cầu tài liệu vừa đủ để hỗ trợ việc phát triển và việc sử dụng sản phẩm. Tiêu chí là công dụng, không phải độ dày. A là cách hiểu cực đoan sai lệch về Agile. C viết tài liệu để chứng minh thành tích — làm vì hình thức, không phục vụ ai. D làm nhiều tài liệu hơn bình thường vì cho rằng Agile rủi ro, đi ngược hẳn tinh thần Scrum vốn giảm rủi ro bằng vòng lặp ngắn và sản phẩm chạy được, không bằng giấy tờ.
Đáp án đúng: C. Thang cohesion từ mạnh xuống yếu gồm: functional (module làm đúng một nhiệm vụ trọn vẹn) và object (mọi thao tác cùng tác động lên trạng thái của một đối tượng) ở nhóm mạnh; communicational và sequential ở nhóm trung bình; coincidental, temporal, procedural, logical association ở nhóm yếu. A liệt kê hai loại yếu nhất. B có "strong" không phải tên một loại cohesion. D liệt kê hai loại trung bình. Chỉ C ghép đúng cặp mạnh.
Đáp án đúng: B. WRSPM là mô hình tham chiếu về yêu cầu, viết tắt của World, Requirements, Specification, Program, Machine. Nó xếp năm khái niệm này theo trục từ thế giới thực sang máy tính, giúp phân biệt rạch ròi đâu là hiện tượng của thế giới, đâu là của máy, và đâu là phần giao nhau mà cả hai cùng nhìn thấy. A là chuỗi từ bịa cho có vần. C sai vì B đã đúng. Mẹo nhớ: chữ W đầu tiên là World (thế giới), không phải Wide.
Đáp án đúng: D. Trong XP, một story không ước lượng nổi nghĩa là nhóm còn thiếu hiểu biết chứ không phải thiếu can đảm. Cách xử lý chuẩn là tạo spike — một story riêng, đóng hộp thời gian, mục tiêu duy nhất là nghiên cứu hoặc dựng thử nghiệm để gỡ chỗ mù mờ, sau đó story gốc mới được ước lượng. A đoán bừa sẽ đưa con số sai vào kế hoạch. B bỏ story ra khỏi release là né vấn đề, nhu cầu vẫn còn đó. C giữ story không ước lượng khiến cả sprint mất khả năng dự báo.
Đáp án đúng: C. Lợi ích được ghi nhận nhiều nhất của Agile là khả năng thích ứng với ưu tiên thay đổi: backlog được sắp lại mỗi sprint nên hạng mục giá trị nhất tại thời điểm hiện tại luôn được làm trước, thay đổi không còn là sự cố cần kiểm soát mà là đầu vào bình thường. A, B, D đều là điều Agile khắc phục chứ không phải mang lại: sprint review và biểu đồ tiến độ làm TĂNG mức hiển thị dự án; nhóm tự tổ chức làm tăng năng suất; Product Owner ngồi cùng nhóm chính là để business và IT khớp nhau.
Đáp án đúng: B. Nguyên tắc này nói về nhịp GIAO PHẦN MỀM CHẠY ĐƯỢC để lấy phản hồi, không bắt buộc mỗi lần đều đẩy lên production cho người dùng cuối. Giao vào một môi trường mà khách hàng hoặc người dùng có thể xem và góp ý (staging, demo, beta) đã thoả mãn tinh thần nguyên tắc. A đọc thành mệnh lệnh cứng "PHẢI phát hành cho người dùng thật mỗi vài tuần" — Manifesto không ép như vậy. C thì ngược lại, cấm phát hành lên production theo nhịp ngắn, cũng sai vì nhiều nhóm Agile trưởng thành làm continuous delivery hằng ngày.
Đáp án đúng: C. Thang coupling chia ba nhóm. Nhóm lỏng gồm no coupling (không phụ thuộc), message coupling (giao tiếp qua thông điệp) và data coupling (chỉ truyền dữ liệu đơn giản qua tham số). Nhóm trung bình gồm control coupling và data-structure coupling. Nhóm chặt gồm content, common và external coupling. A xếp nhầm data structure (trung bình) vào nhóm lỏng. B chính là danh sách nhóm CHẶT. D trộn control (trung bình) với một mục "Loose" không phải tên loại nào. Chỉ C liệt kê đúng ba loại lỏng.
Đáp án đúng: B. Cohesion đúng nghĩa là mức độ các phần tử bên trong một module thuộc về nhau — cùng phục vụ một mục đích chung. A coupling đo mức phụ thuộc GIỮA các module, tức nhìn ra ngoài chứ không nhìn vào trong. C modularity là khái niệm bao trùm, nói về việc chia hệ thống thành module, trong đó coupling và cohesion là hai thước đo cụ thể. D inheritance là cơ chế kế thừa của lập trình hướng đối tượng, không phải thước đo thiết kế module.
Đáp án đúng: A. Nguyên tắc "Working software is the primary measure of progress" chỉ tính tiến độ bằng phần mềm CHẠY ĐƯỢC và giao được. Năm tính năng đã hoàn thiện trên mười là tiến độ thật, đo được, dùng được. B chỉ mới xong yêu cầu và thiết kế cho năm story — chưa có dòng phần mềm nào chạy, theo nguyên tắc này thì tiến độ vẫn là 0%. C lấy thời gian trôi qua làm thước đo (5 tháng trên 10 tháng nên xong 50%) — đây đúng là kiểu đo mà Agile bác bỏ, vì thời gian tiêu tốn không nói lên giá trị đã giao.
Đáp án đúng: B. "Whole Team" trong XP nói về THÀNH PHẦN của nhóm: mọi kỹ năng cần để giao được sản phẩm — phân tích, lập trình, kiểm thử, thiết kế, cùng đại diện khách hàng — đều phải có mặt trong nhóm, để nhóm tự chủ và không phải chờ bộ phận khác. A nói về cam kết chung, C nói về tinh thần và nhiệt huyết — đều là những điều tốt nhưng không phải nội dung thực hành này. D là "sit together", một thực hành RIÊNG và tách bạch của XP; ngoài ra "luôn luôn phải ngồi chung một phòng" cũng quá cứng so với thực tế nhóm phân tán.
Đáp án đúng: C. Agile chuyển gánh nặng từ tài liệu sang giao tiếp: cần Product Owner sẵn sàng, khách hàng tham gia đều đặn qua sprint review, các bên liên quan phản hồi liên tục. Chính đòi hỏi mức cộng tác cao và liên tục này là thách thức lớn nhất khi một tổ chức quen mô hình dự đoán chuyển sang Agile. A, B, D đều là đặc điểm của mô hình PREDICTIVE chứ không phải thách thức của Agile: yêu cầu cứng nhắc ở pha đầu, tài liệu nặng ở đầu dự án, và phản hồi khách hàng đến muộn — Agile sinh ra để loại bỏ đúng ba thứ này.
Đáp án đúng: B. Vòng lặp Lean Startup là Build - Measure - Learn: bắt đầu bằng xây một MVP để biến giả thuyết thành thứ chạm được, rồi đo phản hồi thực tế, rồi rút ra bài học để quyết định pivot hay persevere. A Measure và C Learn là bước hai và ba, không đo được gì khi chưa có gì để đo. D Validate không phải một bước có tên trong vòng lặp — validated learning là KẾT QUẢ của cả vòng chứ không phải một mắt xích.
Đáp án đúng: B. Side effect là khi một hàm âm thầm thay đổi trạng thái bên ngoài phạm vi của nó (biến toàn cục, tham số truyền vào, tệp, cơ sở dữ liệu). Hàm càng ít side effect thì càng đọc là hiểu, không phải lần ngược cả chương trình để đoán nó còn đụng vào cái gì — giảm tải nhận thức cho người đọc và giảm hẳn nhóm lỗi khó tái hiện. A sai: giảm side effect không nhằm mục đích tăng tốc độ chạy. C và D nói ngược hẳn: mục tiêu là mã ngắn gọn và đơn giản hơn, không phải dài và phức tạp hơn.
Đáp án đúng: A. Planning Poker đúng quy trình như mô tả: mỗi thành viên chọn thẻ ước lượng một cách độc lập và bí mật, tất cả lật thẻ cùng lúc; nếu con số chênh nhau nhiều thì người cao nhất và thấp nhất giải thích góc nhìn của mình, rồi cả nhóm ước lượng lại cho tới khi hội tụ. Việc chọn độc lập trước khi thảo luận là để tránh hiệu ứng mỏ neo theo người nói đầu tiên. B Card Sorting và D Story Board là kỹ thuật nhóm và sắp xếp hạng mục, không phải ước lượng. C Free Form là thảo luận mở, thiếu đúng bước ước lượng độc lập vốn là đặc trưng của Planning Poker.