Đề ôn · SWE201C
SWE201c Nhập môn Kỹ thuật phần mềm – Bộ ôn tập số 1: Agile Software Development (48 câu)
48 câu
48câu trong đề
SWE201Cmôn
Câu hỏi của đề
15/48 câuCòn 33
ADefer Commitment
BAmplify Learning
CEliminate Waste
DBuild Quality In
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Bảy nguyên tắc Lean gồm Eliminate Waste, Amplify Learning, Decide as Late as Possible, Deliver as Fast as Possible, Empower the Team, Build Quality In, See the Whole. Trong đó Amplify Learning là nguyên tắc nói thẳng về việc tăng cường các vòng phản hồi: phát triển phần mềm là hoạt động học liên tục, nên rút ngắn và nhân nhiều vòng feedback để học nhanh hơn.
A Defer Commitment nói về việc trì hoãn quyết định tới thời điểm cuối cùng còn đảo ngược được. C Eliminate Waste nói về loại bỏ lãng phí. D Build Quality In nói về việc cài chất lượng vào quy trình thay vì kiểm tra ở cuối.
2Which is not a core property of Kanban?5 lựa chọn
ADaily stand-up
BLimit work-in-progress
CMeasure & Manage Flow
DMake Process Policies Explicit
EUse Models to Recognize Improvement Opportunities
Lời giải
Mở trang câu hỏi này →Đá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.
AAllow the testing team to work without (or with quick-to-develop) drivers and stubs, and utilize the intern resources to aid testing once all critical-path development is complete
BUtilize the intern resources to design and develop drivers and stubs, while work continues on critical-path module development
CAllow the testing team to work without (or with quick-to-develop) drivers and stubs, while using intern resources to aid critical-path development
DMake no changes to the current project testing or development allocations, utilizing intern resources to create documentation
Lời giải
Mở trang câu hỏi này →Đá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.
AAgreement among stakeholders about the objectives of the project and to proceed with the project
BAgreement among the stakeholders about the technical approach
CAgreement among the stakeholders about the deployment of the system to actual users.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Bốn pha của Unified Process kết thúc bằng bốn cột mốc: Inception - Lifecycle Objectives (đồng thuận về mục tiêu và việc có làm tiếp dự án hay không), Elaboration - Lifecycle Architecture (đồng thuận về hướng tiếp cận kỹ thuật, kiến trúc nền đã được chứng minh bằng bản chạy được), Construction - Initial Operational Capability, Transition - Product Release.
A chính là mốc Lifecycle Objectives của pha Inception. C là mốc Product Release ở cuối pha Transition. Nhớ theo cặp: Objectives hỏi "có nên làm không", Architecture hỏi "làm bằng cách nào".
A
ModularityB
PolymorphismC
CouplingD
CohesionLời giải
Mở trang câu hỏi này →Đáp án đúng: B. Bốn khía cạnh của tính module trong thiết kế phần mềm là modularity, coupling, cohesion và information hiding (kèm data encapsulation). Polymorphism là một cơ chế của lập trình hướng đối tượng — cách một lời gọi cùng tên cho ra hành vi khác nhau tuỳ kiểu thực tế — chứ không phải một khía cạnh của thiết kế module.
A, C, D đều là khía cạnh thiết kế thật: chia hệ thống thành module, đo mức phụ thuộc giữa các module, và đo mức gắn kết bên trong mỗi module.
6Which aspect of Stage-Gate ensures quality?4 lựa chọn
ASkip reviews
BGo/no-go at transitions
CIgnore risks
DNo testing
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Stage-Gate chia dự án thành các stage (giai đoạn làm việc) ngăn cách bởi các gate (cổng). Tại mỗi cổng, ban quản trị rà soát sản phẩm của giai đoạn vừa xong theo bộ tiêu chí định trước và ra quyết định go / kill / hold / recycle. Chính cơ chế phán quyết bắt buộc tại điểm chuyển giai đoạn này là thứ giữ chất lượng: không đạt thì không được đi tiếp.
A, C, D đều là việc phá bỏ đúng cơ chế đó — bỏ review, phớt lờ rủi ro, không kiểm thử — nên không thể là câu trả lời cho việc bảo đảm chất lượng.
7Trade-off of Incremental vs Waterfall?4 lựa chọn
ASlower feedback but easier mgmt
BFaster feedback but higher integration complexity
CLess flexible but adaptive
DRisk mgmt but costly
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Incremental giao sản phẩm theo từng phần chạy được, nên người dùng thấy và góp ý sớm hơn hẳn Waterfall vốn chỉ giao ở cuối. Cái giá phải trả là mỗi lần giao lại phải tích hợp phần mới vào phần cũ, nhiều lần tích hợp thì độ phức tạp và rủi ro tích hợp tăng lên.
A đảo ngược vế đầu: Incremental cho phản hồi NHANH hơn chứ không chậm hơn. C tự mâu thuẫn — "kém linh hoạt nhưng thích ứng". D nói về quản trị rủi ro, đó là đặc trưng của Spiral chứ không phải Incremental.
AEliminate Waste.
BAmplify Learning.
CMaximize Documentation
DBuild Quality In.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: C. Bảy nguyên tắc Lean là Eliminate Waste, Amplify Learning, Decide as Late as Possible, Deliver as Fast as Possible, Empower the Team, Build Quality In, See the Whole. "Maximize Documentation" không có trong danh sách và còn đi ngược tinh thần Lean: tài liệu vượt mức cần thiết chính là một dạng lãng phí (extra features / partially done work) mà Eliminate Waste nhắm tới.
A, B, D đều là nguyên tắc thật trong bảy nguyên tắc trên.
9Which of the following is most preferred?4 lựa chọn
AAllowing one module to affect the program flow of another via the use of a flag (control coupling)
BHaving more than one module rely on the same version of the RSS standard (external coupling)
CAllowing one module to affect the program flow of another via the use of a state message (message coupling)
DHaving two modules rely on the same global information structure (common coupling)
Lời giải
Mở trang câu hỏi này →Đá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.
Ainputs which cause issues
Binputs, expected output, and an oracle
Cinputs, expected output, an oracle, and the actual output
Dinputs and expected output
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Để chạy được một phép kiểm thử đúng nghĩa, ta cần ba thứ có TRƯỚC khi chạy: bộ dữ liệu đầu vào, kết quả kỳ vọng, và một oracle — cơ chế phán xét kết quả thực có khớp kỳ vọng hay không.
C thừa "actual output": kết quả thực chỉ xuất hiện SAU khi chạy, nó là đầu ra của phép kiểm thử chứ không phải điều kiện chuẩn bị. A quá hẹp, chỉ có đầu vào thì không biết lấy gì mà so. D thiếu oracle, tức có kỳ vọng nhưng không có cơ chế phán xét — trong nhiều bài toán, việc xác định kết quả đúng lại chính là phần khó nhất.
AFault
BEffective error
CLatent error
DFailure
Lời giải
Mở trang câu hỏi này →Đáp án đúng: A. Chuỗi khái niệm chuẩn: fault là khiếm khuyết nằm trong mã (lỗi lập trình viên viết ra), error là trạng thái sai của hệ thống khi fault đó bị kích hoạt lúc chạy, failure là biểu hiện ra ngoài khi kết quả sai lệch tới người dùng. Câu hỏi mô tả "sai sót trong mã CHƯA được kích hoạt" — đúng định nghĩa fault.
C latent error nghe hợp lý nhưng error theo định nghĩa là trạng thái đã phát sinh khi chạy, tức đã được kích hoạt. B "effective error" và D failure đều nằm sau trên chuỗi. Mấu chốt: chưa chạy tới thì mới chỉ là fault.
12It is possible for errors to remain undiscovered as long as the erroneous ________ is never used4 lựa chọn
Acomponent
Btest data
Ctest case
Doutput
Lời giải
Mở trang câu hỏi này →Đá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.
ASupports quality and reuse by emphasizing on architecture
BSupports / encourages risk identification and mitigation
CEasy to understand and implement
DFlexible for handling change.
ESupports to incorporate other models in the process for e.g you can use Agile in construction phase.
Lời giải
Mở trang câu hỏi này →Đá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.
AIterative and Incremental
BIncremental
CIterative
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Hai từ khoá quyết định là "chia thành 4 phần, xây từng phần một" và "hoàn thiện mỗi phần với độ đầy đủ tính năng cao". Xây trọn từng mảnh chức năng rồi bàn giao chính là Incremental. Iterative thì ngược lại: làm cả sản phẩm ở mức thô rồi lặp lại để tinh chỉnh dần cùng một phạm vi.
A "Iterative and Incremental" chỉ đúng nếu nhóm vừa chia phần vừa quay lại nâng cấp phần đã làm, nhưng đề nói rõ mỗi phần làm một lần cho xong với độ hoàn thiện cao — không có vòng quay lại. C Iterative sai vì đề không mô tả việc tinh chỉnh lặp lại.
15What is the primary purpose of an attack tree?4 lựa chọn
ATo list all possible software bugs.
BTo organize attacks on a resource across various threats.
CTo create a marketing strategy for security software.
DTo document user feedback on security measures.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: B. Attack tree là công cụ mô hình hoá mối đe doạ: nút gốc là mục tiêu của kẻ tấn công đối với một tài nguyên, các nhánh con là những con đường khác nhau để đạt mục tiêu đó, tiếp tục phân rã tới các bước tấn công cụ thể. Nó tổ chức có hệ thống mọi hướng tấn công vào một tài nguyên để đội phát triển biết cần phòng thủ ở đâu.
A nhầm với danh sách lỗi phần mềm thông thường — attack tree quan tâm ý đồ tấn công, không phải bug. C và D hoàn toàn lệch lĩnh vực.