Đáp án đúng: C. "Build Quality In" là một trong bảy nguyên tắc Lean: chất lượng phải được cài vào từng bước của quy trình chứ không phải kiểm tra ở cuối rồi vá. Cụ thể là review liên tục, kiểm thử tự động, tích hợp liên tục, pair programming — mọi thứ giữ cho khiếm khuyết không kịp tích tụ. A đặt kiểm soát chất lượng ở cuối dự án, đúng thứ nguyên tắc này bác bỏ. B thuê ngoài kiểm thử là đẩy chất lượng ra khỏi nhóm, ngược với tinh thần cả nhóm chịu trách nhiệm. D né người dùng khỏi review là cắt mất vòng phản hồi quan trọng nhất.
Quiz: SWE201c_DE_399 - 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: B. Nút thắt là mô-đun đường găng bị chậm, khiến thời gian dành cho kiểm thử bị cắt ngắn. Driver và stub là thứ cho phép kiểm thử một mô-đun mà không cần các mô-đun xung quanh hoàn thiện — chúng lại là công việc độc lập, vừa sức thực tập sinh và làm được NGAY BÂY GIỜ song song với đội chính. Khi mô-đun đường găng xong, bộ khung kiểm thử đã sẵn sàng, bù được phần lịch bị mất. A và C đều để đội kiểm thử làm việc mà không có driver/stub, tức chấp nhận kiểm thử yếu đi đúng lúc thời gian đã ít. D không thay đổi gì và đẩy thực tập sinh sang viết tài liệu — bỏ phí nguồn lực đúng lúc cần nhất.
Đá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. Đ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: C. Unified Process nổi tiếng là NẶNG và khó áp dụng: bốn pha, chín discipline, hàng chục artifact, cần cắt gọt (tailoring) đáng kể cho từng dự án. Vì vậy "dễ hiểu và dễ triển khai" không phải lợi ích của nó. A, B, D, E đều là lợi ích thật: lấy kiến trúc làm trung tâm nên hỗ trợ chất lượng và tái sử dụng; bản chất lặp và tăng dần nên buộc nhận diện và giảm thiểu rủi ro sớm; linh hoạt với thay đổi nhờ nhiều vòng lặp; và đủ tổng quát để lồng thực hành của mô hình khác vào, ví dụ dùng Agile trong pha Construction.
Đá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: C. Thang coupling xếp từ lỏng tới chặt: no coupling, message coupling, data coupling, data-structure coupling, control coupling, external coupling, common coupling, content coupling. Coupling càng lỏng càng đáng mong muốn, và message coupling là loại lỏng nhất trong các lựa chọn có mặt. A control coupling nằm ở nhóm trung bình, một module điều khiển luồng của module kia bằng cờ. B external coupling và D common coupling đều thuộc nhóm CHẶT — phụ thuộc vào định dạng bên ngoài, hoặc cùng chia sẻ một cấu trúc dữ liệu toàn cục. Cả ba đều tệ hơn C.
Đáp án đúng: A. Kanban có sáu thực hành cốt lõi: trực quan hoá dòng công việc, giới hạn công việc đang làm dở (WIP), quản trị dòng chảy, làm rõ chính sách quy trình, triển khai vòng phản hồi, và cải tiến bằng mô hình. Daily stand-up KHÔNG nằm trong đó — đó là sự kiện đặc trưng của Scrum. Kanban không quy định cuộc họp bắt buộc nào. B, C, D, E đều là thuộc tính cốt lõi thật của Kanban. Đây là điểm phân biệt hay bị nhầm: nhiều nhóm dùng Kanban vẫn họp hằng ngày, nhưng đó là lựa chọn của nhóm chứ không phải yêu cầu của phương pháp.
Đá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: A. Tim Brown, CEO của IDEO, là người phổ biến Design Thinking ra giới kinh doanh qua bài viết trên Harvard Business Review năm 2008 và cuốn Change by Design (2009), định nghĩa nó là cách tiếp cận lấy con người làm trung tâm để đổi mới. B Clayton Christensen gắn với lý thuyết disruptive innovation và jobs-to-be-done. C Steve Jobs nổi tiếng về thiết kế sản phẩm nhưng không phải người hệ thống hoá và truyền bá phương pháp Design Thinking. D Michael Porter là tác giả của các mô hình chiến lược cạnh tranh.
Đáp án đúng: A. Waterfall chia dự án thành các pha tuần tự rạch ròi, mỗi pha kết thúc bằng một bộ tài liệu được duyệt. Chính ranh giới pha cứng và sản phẩm bàn giao cố định đó làm cho các mốc tiến độ dễ định nghĩa và dễ theo dõi nhất trong các mô hình. B Incremental có nhiều lần bàn giao chồng lấn nên mốc phức tạp hơn. C Spiral lặp theo vòng, số vòng không định trước nên mốc khó cố định. D sai vì A đã đúng. Lưu ý: dễ định mốc là điểm MẠNH gần như duy nhất còn nguyên giá trị của Waterfall.
Đáp án đúng: C. Theo trình tự môn học trình bày (Requirements - Specification - Design - Architecture - Implementation), thiết kế phần mềm nằm sau khi đã có đặc tả và trước khi chốt kiến trúc: từ đặc tả, ta thiết kế cách phân rã hệ thống thành module với coupling và cohesion hợp lý, rồi mới định hình kiến trúc tổng thể. A đặt thiết kế sau lập trình — sai thứ tự hoàn toàn. D đặt thiết kế trước cả yêu cầu, tức thiết kế khi chưa biết cần gì. B "giữa kiến trúc và lập trình" là bẫy khó nhất ở câu này vì nhiều tài liệu khác xếp architecture trước design; hãy bám thứ tự của môn: MOOC 04 dạy Quality in Design TRƯỚC Quality in Architecture.
Đáp án đúng: B. Kaizen tiếng Nhật nghĩa là "cải tiến liên tục": mọi người ở mọi cấp cùng đề xuất và thực hiện những cải tiến nhỏ, đều đặn, tích luỹ thành thay đổi lớn về quy trình và chất lượng. C giảm chi phí vận hành là HỆ QUẢ thường thấy của Kaizen chứ không phải mục tiêu đặt ra — đặt mục tiêu cắt chi phí trực tiếp thường dẫn tới cắt cả chất lượng, đi ngược tinh thần Kaizen. A tăng số nhân sự và D mở rộng mặt bằng đều là quyết định đầu tư, không liên quan tới cải tiến quy trình.
Đá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: A. Hot failover là mức sẵn sàng cao nhất: dịch vụ thay thế đã chạy sẵn, đã đồng bộ dữ liệu, chỉ cần chuyển hướng luồng dữ liệu sang là xong — không còn bước cài đặt nào, thời gian gián đoạn gần như bằng không. B Warm standby thì máy thay thế đang chạy nhưng vẫn cần cài đặt. C Cold backup thì máy chưa chạy, phải dựng từ đầu, chậm nhất. D "Warm failover" không phải một chiến lược chuẩn trong danh mục này. Nhớ theo thang nóng dần: cold chưa chạy, warm chạy nhưng cần cài, hot chạy và chỉ cần chuyển hướng.
Đáp án đúng: B. Application framework là MÃ NGUỒN có sẵn dạng khung: nó định sẵn luồng điều khiển và để lại các điểm mở rộng (lớp trừu tượng, interface, hook) mà lập trình viên phải cài đặt hoặc kế thừa thì ứng dụng mới chạy được — đây chính là nguyên lý inversion of control. Design pattern thì ở tầng khác hẳn: nó là mô tả trừu tượng về một giải pháp lặp lại, không phải mã. A đảo ngược vế đầu: không framework nào chạy ra ứng dụng hoàn chỉnh mà không cần viết gì. C sai vì A đã sai. Ghi nhớ: framework là mã cần mở rộng, pattern là tri thức cần hiện thực hoá.
Đáp án đúng: D. Hệ thống quản lý phiên bản sinh ra để KHÔNG BỎ SÓT thay đổi nào, nên "Change Ignorance" đi ngược hẳn lý do tồn tại của nó. A đúng: mọi phiên bản đều được lưu nên có thể khôi phục về bất kỳ điểm nào. B đúng: nhánh và hợp nhất là chức năng cốt lõi cho phép nhiều người làm song song. C đúng: mỗi commit gắn tác giả, thời điểm và thông điệp nên truy vết được ai đổi gì, khi nào, vì sao. Ba cái này đều là mục đích thật.
Đáp án đúng: B. Trong Observer Pattern, Subject là đối tượng nắm trạng thái được theo dõi: nó giữ danh sách các Observer đã đăng ký và khi trạng thái đổi thì gọi thông báo tới toàn bộ danh sách đó. A mô tả vai trò của Observer chứ không phải Subject — hai vai trò ngược nhau và đây là chỗ hay nhầm nhất. C là Strategy Pattern (chọn thuật toán lúc chạy). D là Adapter Pattern (làm cầu nối giữa hai giao diện không tương thích).
Đáp án đúng: D. Chính tác giả đoạn mã là người kém khách quan nhất để kiểm thử nó: hiểu lầm nào dẫn tới việc viết sai mã thì cũng sẽ dẫn tới việc viết sai test, nên lỗi vẫn lọt. Đây là lý do ngành tách vai trò kiểm thử độc lập. Vậy D là phát biểu SAI. A đúng: đầu vào chọn ngẫu nhiên chạm được những vùng dữ liệu người viết test khó nghĩ ra. B đúng: statement coverage là một mức của code coverage. C đúng và là câu nói kinh điển của Dijkstra — kiểm thử chứng minh được sự có mặt của lỗi, không chứng minh được sự vắng mặt của lỗi.
Đá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: C. Coupling thấp nghĩa là các module ít phụ thuộc vào nhau, nên sửa bên trong một module thì tác động dừng lại ở ranh giới module đó, không lan sang chỗ khác. Đây chính là giá trị thực tiễn lớn nhất của low coupling: chi phí thay đổi được khoanh vùng. A decomposability là lợi ích của modularity nói chung. B che giấu thông tin phức tạp là information hiding. D giảm tỉ lệ hỏng dữ liệu là hệ quả xa của encapsulation. Cả ba đều là khái niệm liên quan nhưng không phải điều low coupling trực tiếp mang lại.
Đáp án đúng: B. Cohesion đo mức độ một module phục vụ MỘT mục tiêu được định nghĩa rõ ràng. Cohesion cao nhất là functional cohesion: mọi thành phần trong module cùng góp phần thực hiện đúng một nhiệm vụ trọn vẹn. D coupling đo quan hệ giữa các module, không phải mục tiêu bên trong một module. A information hiding và C data encapsulation nói về việc che chi tiết cài đặt sau giao diện — liên quan nhưng trả lời câu hỏi khác ("module lộ ra cái gì" chứ không phải "module nhắm tới mấy mục tiêu").
Đáp án đúng: A, B. Story "As a product owner, I want a list of highly-rated restaurants on the brochure" hỏng ở hai chỗ theo khuôn mẫu "As a <who>, I want <what> so that <why>". Thứ nhất, thiếu hẳn vế "so that" nên không rõ giá trị mang lại là gì, không có cơ sở xếp ưu tiên. Thứ hai, "product owner" là vai trò trong nhóm chứ không phải người hưởng lợi từ tính năng — người thực sự dùng danh sách nhà hàng trên tờ rơi là khách hàng, nên vế "who" bị đặt sai. C sai: story này không hề to. D sai: nó vẫn thương lượng được về phạm vi và cách thể hiện.
Đáp án đúng: C. Rà soát mã và inspection để đối chiếu phần mềm với ĐẶC TẢ của nó là verification, trả lời "Are we building the product right?". Vì vậy phát biểu C không thuộc về validation. A, B, D đều là validation: bảo đảm phần mềm đáp ứng nhu cầu và kỳ vọng thực của người dùng; trả lời đúng câu hỏi kinh điển "Are we building the right product?"; và kiểm thử trong tình huống thực tế để xác nhận trải nghiệm người dùng. Mẹo phân biệt: verification so sánh với TÀI LIỆU, validation so sánh với NHU CẦU THẬT.
Đá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: B. Sashimi Model là Waterfall có các pha chồng lấn nhau, lấy hình ảnh những lát cá sống xếp đè lên nhau. Pha sau bắt đầu khi pha trước chưa kết thúc hẳn, nhờ đó tổng thời gian dự án ngắn lại và thông tin lan giữa các pha sớm hơn. A mô tả Waterfall thuần với ranh giới pha cứng — đúng thứ Sashimi phá bỏ. C sai: không mô hình nào loại bỏ kiểm thử. D sai: chồng lấn pha cần các chuyên môn KHÁC nhau làm việc đồng thời, không đòi hỏi mọi người cùng một bộ kỹ năng.
Mục tiêu chính của kiến trúc phần mềm trong quá trình phát triển phần mềm là xác định các mối quan tâm xuyên suốt và rộng lớn hơn cho hệ thống. Kiến trúc phần mềm tập trung vào việc giải quyết các vấn đề phức tạp và liên quan đến nhiều thành phần khác nhau của hệ thống, bao gồm cả các yêu cầu chức năng, hiệu suất, bảo mật và khả năng mở rộng. Điều này giúp đảm bảo rằng hệ thống được thiết kế và xây dựng một cách toàn diện và linh hoạt, đáp ứng được nhu cầu của người dùng và dễ dàng mở rộng trong tương lai.
Đáp án đúng: C. Xác định chính xác nhu cầu người dùng được coi là phần khó nhất của kỹ nghệ phần mềm: người dùng thường không nói rõ được điều mình cần, nhu cầu thay đổi theo thời gian, các bên liên quan mâu thuẫn nhau, và sai ở bước này thì mọi công sức phía sau đều đi lệch. Fred Brooks gọi đây là phần "essential" khó nhất, không có viên đạn bạc nào giải quyết được. A viết mã theo thiết kế đã có là phần cơ học nhất. B kiểm thử với người dùng tuy tốn công nhưng có quy trình rõ ràng. D định giá thị trường là bài toán kinh doanh, nằm ngoài quy trình phát triển phần mềm.
Đáp án đúng: C. Đường ống của UNIX, nơi đầu ra của chương trình này thành đầu vào của chương trình kia, là ví dụ giáo khoa của Pipe-and-Filter: mỗi chương trình là một filter biến đổi dòng dữ liệu, các pipe nối chúng lại; filter không biết gì về nhau nên rất dễ ghép lại theo tổ hợp mới. A Blackboard dùng cho hệ tri thức nhiều nguồn cùng ghi lên vùng dữ liệu chung. B Layered chia hệ thống theo tầng dịch vụ. D Event-based phản ứng theo sự kiện rời rạc. E Client-Server tách bên yêu cầu và bên phục vụ. Không mô hình nào trong bốn nắm được đặc trưng dòng chảy tuần tự của pipeline.
Đáp án đúng: D. Burndown chart trả lời được cả ba: nhìn tung độ tại ngày hiện tại biết còn bao nhiêu việc; so đường thực tế với đường lý tưởng biết có kịp mục tiêu sprint không; nhìn độ dốc qua nhiều ngày thấy xu hướng tiến triển (phẳng nhiều ngày là dấu hiệu tắc nghẽn). A, B, C mỗi phương án chỉ nêu một trong ba công dụng nên đều chưa đủ. Đây là dạng câu có phương án bao trùm: kiểm tra từng mục con, cả ba đều đúng thì chọn "All of the above".
Đáp án đúng: B. Agile cần vòng phản hồi ngắn và khả năng thay đổi mà không sợ vỡ. Continuous integration kèm bộ unit test tự động đáp ứng đúng điều đó: mỗi lần commit là chạy lại toàn bộ test, lỗi hồi quy lộ ra trong vài phút thay vì vài tuần, nhờ vậy nhóm dám refactor liên tục. A dồn kiểm thử về cuối là mô hình Waterfall. C hồi quy thủ công mỗi lần phát hành thì không theo kịp nhịp sprint và rất dễ bỏ sót. D né tài liệu chẳng liên quan gì tới cách kiểm thử, và Agile cũng không chủ trương bỏ tài liệu.
Đáp án đúng: D. Coincidental cohesion là mức gắn kết YẾU NHẤT: các phần tử nằm chung một module thuần tuý vì ngẫu nhiên, không có quan hệ nghĩa nào. "Các phần của module nằm chung một tệp" đúng là lý do ngẫu nhiên — chung chỗ lưu trữ chứ không chung mục đích. B logical association cohesion cần các phần tử ít nhất phải cùng MỘT LOẠI công việc (ví dụ gom tất cả hàm xử lý đầu vào). C temporal cohesion cần chúng cùng chạy trong một khoảng thời gian (ví dụ nhóm khởi tạo). A procedural cohesion cần chúng theo một trình tự thực thi. Ở đây không có cả ba mối liên hệ đó.
Đáp án đúng: B. Vấn đề lớn nhất của mô hình dự đoán là mọi khâu kiểm chứng đều dồn về cuối: tích hợp ở cuối, kiểm thử ở cuối, người dùng nhìn thấy sản phẩm ở cuối. Hậu quả là hiểu sai yêu cầu hay lỗi thiết kế có thể nằm im suốt nhiều tháng, tới lúc lộ ra thì đã xây chồng rất nhiều thứ lên phần sai. A, C, D đều là ưu điểm chứ không phải vấn đề, và cả ba đều KHÔNG đúng với Waterfall: nó không có vòng phản hồi liên tục, không lấy cộng tác làm trọng tâm, và chi phí thay đổi tăng chứ không giảm theo thời gian.
Đáp án đúng: A. Sprint Burndown Chart có trục hoành là thời gian của sprint, thường tính theo NGÀY từ ngày đầu tới ngày cuối; trục tung là khối lượng công việc còn lại, tính bằng giờ hoặc story point. C Hours là đơn vị của trục TUNG chứ không phải trục hoành — đây là nhầm lẫn hay gặp nhất ở câu này. B Tasks và D tên thành viên đều không phải trục nào của biểu đồ: burndown theo dõi tổng khối lượng còn lại của cả nhóm, không tách theo từng người.
Đáp án đúng: A, C, D. Daily standup 15 phút phục vụ ba việc: nhóm tự lập kế hoạch cho ngày làm việc, phối hợp với nhau về những phần công việc giao thoa, và cùng nắm tình hình tiến độ hướng tới Sprint Goal. B sai ở một chữ: "overlooking obstacles" nghĩa là BỎ QUA vật cản, trong khi mục đích thật của standup là NÊU RA vật cản (raising impediments) để Scrum Master gỡ. Đây là bẫy chữ nghĩa — nếu đọc lướt thành "overlook = xem xét" thì chọn nhầm ngay.
Đá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: C. Message coupling là mức lỏng nhất trong thang coupling có thực: các thành phần không chạm vào dữ liệu của nhau mà chỉ trao đổi qua tham số hoặc thông điệp qua một giao diện công khai — đúng nguyên văn mô tả trong đề. A "loose no coupling" nghĩa là hoàn toàn không có kết nối, nhưng đề nói rõ các thành phần CÓ giao tiếp với nhau, nên không phải trường hợp này. B loose data coupling chặt hơn một bậc: các module truyền dữ liệu thật cho nhau qua tham số, còn message coupling nhấn mạnh việc giao tiếp qua thông điệp mà không phụ thuộc dữ liệu nội bộ của nhau.
Đá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: 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: B. Bốn loại cohesion yếu, xếp từ yếu nhất lên: coincidental (gom ngẫu nhiên), temporal (cùng chạy trong một khoảng thời gian), procedural (theo một trình tự thực thi), logical association (cùng một loại công việc). A xếp nhầm sequential vào nhóm yếu — sequential thuộc nhóm trung bình, nơi đầu ra của phần này là đầu vào của phần kia. C liệt kê toàn nhóm trung bình và mạnh (communicational, sequential, object, functional). D phủ nhận sự tồn tại của cohesion yếu, hiển nhiên sai.
Đá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.
Đáp án đúng: A. Scrum chỉ có ba vai trò (accountability): Product Owner, Scrum Master và Developers (nhóm phát triển). Project Manager KHÔNG nằm trong đó — các trách nhiệm truyền thống của vai trò này được phân tán: quản trị phạm vi và giá trị về Product Owner, gỡ vướng và bảo vệ quy trình về Scrum Master, còn lập kế hoạch và phân công về chính nhóm tự tổ chức. B, C, D đều là ba vai trò thật của Scrum, nên không phải đáp án của câu hỏi phủ định này.
Đáp án đúng: B. Scrum giả định phần lớn dự án phần mềm là bài toán phức tạp (complex domain): không thể biết trước toàn bộ lời giải, mà giải pháp tốt hơn dần hiện ra qua từng vòng lặp khi nhóm và khách hàng cùng nhìn thấy sản phẩm thật. "Learn as we go" chính là cách khai thác đặc tính tiến hoá này. A cải thiện quan hệ với khách hàng là hệ quả phụ tốt đẹp, không phải lý do. C tránh mất thời gian phân tích đầu dự án là cách diễn giải tiêu cực và sai — Scrum không né phân tích, nó trải phân tích ra suốt dự án. D ngăn giao hàng trễ cũng là hệ quả chứ không phải nguyên nhân.
Đáp án đúng: B. Ba loại coupling chặt là content coupling (một module chạm thẳng vào nội dung bên trong module khác), common coupling (nhiều module cùng dùng dữ liệu toàn cục) và external coupling (các module cùng phụ thuộc vào một định dạng, giao thức hay thiết bị bên ngoài). A trộn control và data structure (nhóm trung bình) với message (nhóm lỏng). C phủ nhận sự tồn tại của coupling chặt, sai hiển nhiên. D liệt kê đúng nhóm LỎNG (data, message, none) — đây là bẫy đối xứng với câu hỏi về loose coupling, đọc nhanh rất dễ chọn nhầm.
Đáp án đúng: A. Acceptance test là hình thức validation trực tiếp nhất trong Agile: nó biến yêu cầu của người dùng thành các tiêu chí kiểm chứng được, để cả nhóm và khách hàng cùng thống nhất thế nào là "xong". Nhờ đó tránh được tình huống phần mềm chạy đúng đặc tả nhưng không đúng nhu cầu. B cải thiện tài liệu, C tăng cộng tác nhóm và D quản lý thời gian tốt hơn đều là lợi ích PHỤ có thật, nhưng câu hỏi hỏi lợi ích CHÍNH trong tương quan với yêu cầu người dùng — đó là việc thẩm định yêu cầu.
Đáp án đúng: A. INVEST là bộ sáu tiêu chí cho một user story tốt: Independent (độc lập), Negotiable (thương lượng được), Valuable (có giá trị), Estimable (ước lượng được), Small (đủ nhỏ), Testable (kiểm thử được). Trong bốn phương án chỉ "Valuable" nằm trong bộ này. B Imprecise (mơ hồ) đi ngược Testable và Estimable. C Rigid (cứng nhắc) đi ngược Negotiable. D Expansive (phình to) đi ngược Small. Ba phương án nhiễu được dựng bằng cách lấy phản nghĩa của chính các chữ cái trong INVEST.
Đá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: A, B. Theo bộ khung Rozanski & Woods mà môn học dùng, viewpoint mô tả một lát cắt cấu trúc của hệ thống: Functional, Information, Concurrency, Development, Deployment, Operational. Perspective là mối quan tâm cắt ngang mọi view: Security, Performance and Scalability, Availability and Resilience, Evolution. A và B là hai viewpoint chuẩn trong danh sách trên. C "Usability perspective" và D "Maintenance perspective" đều KHÔNG có trong bộ perspective mà môn dạy — mối quan tâm gần nhất với bảo trì được gọi là Evolution, không phải Maintenance.
Đáp án đúng: B. Communication là một trong năm giá trị cốt lõi của XP (cùng Simplicity, Feedback, Courage, Respect). XP cho rằng phần lớn vấn đề dự án bắt nguồn từ việc ai đó không nói với ai đó điều gì đó, nên giao tiếp hiệu quả và liên tục là cách gỡ vướng nhanh nhất — đây cũng là lý do XP đề cao pair programming, ngồi chung và khách hàng tại chỗ. A hạn chế giao tiếp và D chỉ trao đổi bằng văn bản đều đi ngược nguyên tắc ưu tiên đối thoại trực tiếp. C phủ nhận vai trò của giao tiếp, sai hoàn toàn với cả XP lẫn Agile nói chung.