WorksheetsKiến thức về phần mềm
Total questions: 80
Worksheet time: 43mins
Phần mềm là gì?
Một tập hợp các hướng dẫn để máy tính thực hiện
Một tập hợp các thành phần phần cứng
Một thiết bị lưu trữ dữ liệu
Một bộ xử lý
Điểm khác biệt chính giữa phần mềm và phần cứng là gì?
Phần mềm là vô hình, phần cứng là hữu hình
Phần mềm là hữu hình, phần cứng là vô hình
Cả hai đều có thể được chạm vào và cài đặt
Cả hai đều có thể bị hỏng do lỗi hệ thống
Thành phần nào không thuộc về phần mềm?
Ổ cứng SSD
Hệ điều hành
Trình duyệt web
Chương trình diệt virus
Các thành phần chính của phần mềm bao gồm:
Hướng dẫn, cấu trúc dữ liệu, thông tin mô tả
Phần cứng, hệ điều hành, ứng dụng
Dữ liệu, thiết bị đầu vào, thiết bị đầu ra
Mã nguồn, bộ nhớ, bộ xử lý
Phần mềm có đặc điểm gì?
Luôn có thể được cải thiện và gỡ lỗi
Không bao giờ chứa lỗi
Không bị hao mòn theo thời gian như phần cứng
Không thay đổi sau khi phát triển hoàn tất
Tại sao phần mềm thường chứa lỗi?
Bởi vì phần mềm là một sản phẩm vô hình và phức tạp
Do lỗi phần cứng
Bởi vì lập trình viên không thể kiểm tra lỗi
Bởi vì phần mềm không cần bảo trì
Chất lượng phần mềm có đặc điểm gì?
Cải thiện sau mỗi lần sửa lỗi
Gradually wears out over time
Không thể thay đổi sau khi phát hành
Hoàn toàn phụ thuộc vào phần cứng
Ví dụ nào cho thấy một lỗi phần mềm gây ra hậu quả nghiêm trọng?
Lỗi số học của Intel Pentium vào năm 1993
Gangnam Style vượt qua 2 tỷ lượt xem trên YouTube
Máy tính bị nhiễm virus
Các bản cập nhật hệ điều hành Windows lên phiên bản mới
Tại sao phần mềm thường xuyên được cập nhật?
Để sửa lỗi và cải thiện chức năng
Để giảm dung lượng lưu trữ
Để tăng kích thước tệp
Để làm chậm hiệu suất phần cứng
Tính năng nào cho phép phần mềm thích ứng với những thay đổi?
Cập nhật và bảo trì liên tục
Sửa mã nguồn sau khi phát hành
Phát triển theo phương pháp truyền thống
Giảm thiểu
Tính năng nào cho phép phần mềm thích ứng với những thay đổi?
Cập nhật và bảo trì liên tục
Sửa mã nguồn sau khi phát hành
Phát triển bằng các phương pháp truyền thống
Giảm số lượng dòng mã
Phần mềm nào thuộc nhóm phần mềm hệ thống?
Windows 10
Microsoft Word
Photoshop
Google Chrome
Phần mềm thời gian thực thường được sử dụng trong lĩnh vực nào?
Điều khiển xe tự lái
Xử lý văn bản
Thiết kế đồ họa
Xử lý video hậu kỳ
Mục đích chính của phần mềm doanh nghiệp là gì?
Quản lý tài nguyên và hoạt động của một tổ chức
Chơi game
Chỉnh sửa ảnh
Sáng tác nhạc
Các đặc điểm của phần mềm nhúng là gì?
Tích hợp vào phần cứng và thực hiện các chức năng cụ thể
Chạy độc lập mà không cần phần cứng
Luôn có giao diện người dùng
Có thể được cài đặt trên bất kỳ hệ điều hành nào
Các phần mềm trí tuệ nhân tạo có thể làm gì?
Phân tích dữ liệu và đưa ra dự đoán
Chạy các chương trình diệt virus
Chỉ có thể xử lý hình ảnh
Không thể học từ dữ liệu
Kỹ thuật phần mềm là gì?
Lĩnh vực kỹ thuật liên quan đến toàn bộ quy trình sản xuất phần mềm
Quy trình lập trình
Một phần của phần cứng máy tính
Chỉ liên quan đến lập trình viên
Hoạt động nào KHÔNG thuộc về kỹ thuật phần mềm?
Lắp ráp phần cứng
Lập trình
Thiết kế phần mềm
Kiểm thử phần mềm
Các giai đoạn nào được bao gồm trong quy trình yêu cầu phần mềm?
Thu thập, phân tích, chỉ định yêu cầu
Lập trình, kiểm tra, triển khai
Thiết kế, bảo trì, nâng cấp
Xây dựng giao diện, tối ưu hóa hiệu suất
Mục tiêu chính của thiết kế phần mềm là gì?
Xây dựng một cấu trúc phần mềm đảm bảo hiệu suất và khả năng bảo trì
Tạo ra phần mềm nhanh nhất có thể
Viết mã nguồn ngay lập tức
Tập trung vào giao diện hấp dẫn
Trong giai đoạn lập trình, yếu tố nào là quan trọng nhất?
Viết mã nguồn theo thiết kế đã định nghĩa
Tạo mã nguồn dài nhất có thể
Trong giai đoạn lập trình, yếu tố nào là quan trọng nhất?
Viết mã theo thiết kế đã định nghĩa
Tạo mã càng dài càng tốt
Viết mã mà không kiểm tra
Chỉ tập trung vào hiệu suất trong khi bỏ qua bảo trì
Unit testing tập trung vào điều gì?
Kiểm tra từng mô-đun hoặc hàm riêng lẻ
Kiểm tra toàn bộ hệ thống
Kiểm tra phần cứng
Kiểm tra an ninh dữ liệu
Tại sao kiểm thử tích hợp lại quan trọng?
Đảm bảo các mô-đun hoạt động tốt khi kết hợp
Kiểm thử đơn vị là đủ
Kiểm thử tích hợp không quan trọng
Tập trung vào giao diện hơn là chức năng
Mục tiêu chính của kiểm thử hệ thống là gì?
Đánh giá toàn bộ phần mềm trước khi phát hành
Kiểm tra giao diện người dùng
Tập trung vào kiểm thử hiệu suất
Chỉ kiểm tra lỗi cú pháp
Các bước triển khai phần mềm bao gồm những gì?
Cài đặt, cấu hình, đào tạo người dùng
Viết tài liệu, bảo trì
Lập trình, kiểm tra
Phân tích, thiết kế
Tại sao việc bảo trì phần mềm lại quan trọng?
Giúp phần mềm tiếp tục hoạt động hiệu quả và an toàn
Bảo trì là không cần thiết sau khi phát hành
Chỉ cần cập nhật phần cứng
Không liên quan đến công nghệ phần mềm
Quản lý dự án phần mềm bao gồm những gì?
Lập kế hoạch, quản lý tài nguyên, giám sát
Viết mã
Chạy thử nghiệm phần mềm
Tập trung vào thiết kế giao diện người dùng
Quản lý cấu hình phần mềm giúp gì?
Đảm bảo theo dõi và kiểm soát các thay đổi trong suốt vòng đời phần mềm
Tối ưu hóa hiệu suất
Chỉ tập trung vào bảo mật
Không liên quan đến chất lượng phần mềm
Các giai đoạn nào trong quy trình phát triển phần mềm?
Xác định yêu cầu, thiết kế, lập trình, kiểm tra, triển khai, bảo trì
Chỉ lập trình
Chỉ tập trung vào kiểm tra
Chỉ liên quan đến thiết kế
Các giai đoạn của phát triển phần mềm là gì?
Xác định yêu cầu, thiết kế, lập trình, kiểm tra, triển khai, bảo trì
Chỉ lập trình
Chỉ tập trung vào kiểm tra
Chỉ liên quan đến thiết kế
Mô hình phát triển phần mềm nào phù hợp cho các dự án có yêu cầu rõ ràng?
Mô hình Waterfall
Mô hình Agile
Mô hình Scrum
Mô hình Spiral
Tại sao mô hình Agile lại phổ biến trong phát triển phần mềm?
Linh hoạt, phản hồi nhanh, cải tiến liên tục
Chỉ dành cho các dự án nhỏ
Không cần lập kế hoạch
Không liên quan đến người dùng
Mô hình Scrum tập trung vào điều gì?
Phát triển theo giai đoạn và phản hồi liên tục
Chỉ sử dụng cho các dự án lớn
Không cần kiểm tra
Không có quy trình rõ ràng
Mô hình Spiral phù hợp cho loại dự án nào?
Dự án lớn, phức tạp với rủi ro cao
Dự án có yêu cầu rõ ràng
Dự án nhỏ, nhanh chóng
Dự án không có kế hoạch dài hạn
Mô hình phát triển nào sử dụng các vòng lặp và ưu tiên phản hồi từ khách hàng?
Agile
Waterfall
Spiral
Scrum
Tại sao việc đảm bảo chất lượng phần mềm lại quan trọng?
Giúp phần mềm đáp ứng tiêu chuẩn, giảm lỗi và nâng cao trải nghiệm người dùng
Không quan trọng sau khi triển khai
Chỉ áp dụng cho phần mềm doanh nghiệp
Chỉ liên quan đến giao diện
Quy trình phát triển phần mềm là gì?
Một tập hợp các hoạt động liên quan đến sản xuất phần mềm
Chỉ bao gồm lập trình
Chỉ tập trung vào kiểm thử
Không có giai đoạn cụ thể nào
Mục tiêu chính của quy trình phát triển phần mềm là gì?
Tạo ra phần mềm chất lượng cao đáp ứng yêu cầu của người dùng
Tăng tốc độ lập trình
Giảm số lượng bài kiểm tra
Bỏ qua giai đoạn bảo trì
Giai đoạn đầu tiên của quy trình phát triển phần mềm là gì?
Xác định yêu cầu
Lập trình
Kiểm tra
Triển khai
Giai đoạn đầu tiên của quy trình phát triển phần mềm là gì?
Xác định yêu cầu
Lập trình
Kiểm tra
Triển khai
Điểm khác biệt chính giữa quy trình phát triển phần mềm và các hoạt động kỹ thuật phần mềm là gì?
Quy trình tập trung vào tổ chức, các hoạt động tập trung vào nhiệm vụ
Các hoạt động quan trọng hơn quy trình
Quy trình chỉ dành cho các công ty lớn
Các hoạt động không liên quan đến quy trình
Mô hình phát triển phần mềm nào sử dụng phương pháp tuần tự?
Waterfall
Agile
Scrum
Spiral
Các đặc điểm của mô hình Spiral là gì?
Nhấn mạnh phân tích rủi ro
Chỉ phù hợp cho các dự án nhỏ
Không liên quan đến khách hàng
Không có vòng phát triển
Lợi ích chính của mô hình Agile là gì?
Phản hồi nhanh, thích ứng linh hoạt
Chỉ dành cho phần mềm nhỏ
Không cần kiểm tra
Không có kế hoạch dài hạn
Phương pháp nào mà Mô hình Scrum sử dụng để quản lý dự án?
Thực hiện trong các Sprint
Công việc liên tục mà không cần lập kế hoạch
Chỉ cần một lần kiểm tra
Không cần phản hồi từ khách hàng
Tại sao Mô hình Waterfall không phù hợp cho các dự án liên tục thay đổi?
Không linh hoạt trong việc thích ứng với các thay đổi
Quá phức tạp
Không có quy trình rõ ràng
Chỉ dành cho lập trình viên
Giai đoạn kiểm thử phần mềm bao gồm những gì?
Kiểm thử đơn vị, tích hợp, hệ thống, chấp nhận
Chỉ kiểm thử giao diện
Không cần kiểm thử nếu lập trình tốt
Bỏ qua các lỗi nhỏ
Tại sao giai đoạn bảo trì phần mềm lại quan trọng?
Cập nhật, sửa lỗi, cải tiến tính năng
Không cần thiết sau khi phát hành
Chỉ áp dụng cho phần mềm lớn
Chỉ dành cho phần mềm miễn phí
Tại sao các công ty phần mềm sử dụng các mô hình phát triển khác nhau?
Tùy thuộc vào loại dự án và yêu cầu của khách hàng
Không có mô hình nào tốt hơn
Chỉ sử dụng mô hình Agile
Việc chọn lựa không quan trọng
Why do software companies use different development models?
Depending on the type of project and customer requirements
No model is better
Only use Agile model
It doesn't matter which model is chosen
Which model is suitable for projects with unclear requirements?
Agile
Waterfall
Scrum
V-model
What is the role of a Scrum Master?
Support the development team, remove barriers
Lead programmer
Only document
No important role
What does the Product Owner do in Scrum?
Directs the product, works with customers
Writes source code
Tests software
No role in development
How long does a Sprint in Scrum last?
Usually from 1 to 4 weeks
6 months
No fixed time
Only 1 day
What is DevOps?
A method of integrating software development and operations
Programming tool
A new programming language
Not related to software
Why is Continuous Integration important?
Helps detect errors early in the development process
Slows down progress
Only for large projects
Not necessary if testing is good
What is Continuous Deployment?
Automatically deploy software after each update
Continuous programming
Not related to software development
Only applies to mobile applications
Why does the DevOps model help improve software development?
Automation, improving speed and quality
Only suitable for startups
No need for maintenance
Only applies to hardware projects
What are common tools in DevOps?
Jenkins, Docker, Kubernetes
Microsoft Word, Excel
Photoshop, Illustrator
Only need a web browser
What does IaC (Infrastructure as Code) help with in DevOps?
Automates infrastructure management
Web programming
Not related to software
Only for game projects
What methods ensure software quality?
What does Infrastructure as Code help in DevOps?
Automate infrastructure management
Web programming
Not related to software
Only used for game projects
What are the methods to ensure software quality?
Testing, configuration management, code review
Only unit testing
No need for testing if programming is good
Not related to maintenance
What is CI/CD?
Continuous Integration & Continuous Deployment
Just a testing tool
Not important in software development
For small projects
Why is software configuration management needed?
Track changes, control versions
Not important
Only for enterprise software
Does not affect maintenance
What are modern programming methods?
TDD, BDD, Pair Programming
Only Waterfall
Only traditional programming
No special methods
What is TDD (Test Driven Development)?
Write tests before writing code
Only test after completing programming
Not related to software development
Only for mobile software
What are the benefits of BDD (Behavior Driven Development)?
Creates software understandable for all stakeholders
Only for programmers
No special benefits
No need for testing
What components does software include?
Instructions (program), data structures, descriptive information
Hardware, source code, interface
Data, operating system, applications
Programmers, hardware, documentation
Why can software contain bugs even after testing?
Because software is complex and bugs can appear unexpectedly
Due to programmers not being skilled enough
Due to hardware causing errors
Only free software has bugs
How to minimize software bugs?
Thorough testing, regular maintenance
Just program carefully
No need for testing if the source code is good
Avoid using
How to minimize software errors?
Thorough testing, regular maintenance
Just code carefully
No need for testing if the source code is good
Avoid using open source code
What does project management help in software development?
Optimize resources, schedule, ensure quality
Only focus on programming
No impact on the final product
Only important in large companies
Which development model helps optimize customer response time?
Agile
Waterfall
V-model
DevOps
What does software maintenance include?
Updates, bug fixes, feature improvements
No need for maintenance if the software is complete
Only applies to operating systems
Only related to testing
Why is DevOps important in software development?
Integrates development and operations, helps automate
Just a management method
No impact on performance
Only used in large tech companies
What does Continuous Integration help in software development?
Early bug detection, continuous code integration
Only helps with faster testing
Not necessary if the programmer is good
Only suitable for web applications
Why is software testing an indispensable step?
Ensures the software works as required
Testing is only necessary in large projects
Not needed if the software is small
Only important for commercial software
How does web software differ from traditional desktop software?
Runs in a browser, no installation needed
Cannot be updated
Must run on a specific operating system
Only used for entertainment
