Tóm tắt nhanh
- 非機能要件 là yêu cầu về chất lượng hệ thống như performance, security, availability, backup và vận hành.
- Dù không phải chức năng trực tiếp, non-functional requirements ảnh hưởng mạnh đến cách thiết kế, code, test và vận hành.
- Bài này phù hợp với developer muốn hiểu vì sao dự án Nhật hỏi kỹ về tốc độ, quyền truy cập, log, backup và recovery.
- Nhóm yêu cầu
- Performance
- Ví dụ cần kiểm tra
- Response dưới bao nhiêu giây
- Nhóm yêu cầu
- Security
- Ví dụ cần kiểm tra
- Ai được xem/sửa dữ liệu
- Nhóm yêu cầu
- Availability
- Ví dụ cần kiểm tra
- Hệ thống cần chạy lúc nào
- Nhóm yêu cầu
- Operation
- Ví dụ cần kiểm tra
- Log, alert, backup, manual procedure
Bối cảnh
Khi học làm dự án Nhật, nhiều developer chú ý đến chức năng: login, search, export, update, delete. Nhưng công ty Nhật thường hỏi thêm: màn hình phải trả kết quả trong bao lâu, ai được truy cập, dữ liệu backup thế nào, hệ thống có chịu được nhiều user không, nếu lỗi thì khôi phục ra sao. Những điều này thuộc 非機能要件.
非機能要件 nghĩa là non-functional requirements. Đây là yêu cầu không trực tiếp nói "user bấm nút A thì hiện B", nhưng quyết định hệ thống có dùng được trong thực tế hay không. Các nhóm thường gặp là performance, security, availability, reliability, maintainability, operation, backup.
Bài này giải thích 非機能要件 theo cách dễ hiểu cho developer Việt Nam, đặc biệt khi làm với công ty Nhật hoặc chuẩn bị BrSE.
Khái niệm chính
機能要件 là functional requirement: hệ thống cần có chức năng gì. 非機能要件 là yêu cầu về chất lượng và điều kiện vận hành của hệ thống. Ví dụ chức năng search là 機能要件. Nhưng search phải trả kết quả dưới 3 giây với 100,000 records là 非機能要件.
Trong dự án Nhật, 非機能要件 quan trọng vì nhiều hệ thống là core business: quản lý đơn hàng, kế toán, nhân sự, logistics, booking, ngân hàng, bảo hiểm. Nếu chậm, mất dữ liệu hoặc bị truy cập sai quyền, thiệt hại không chỉ là một bug nhỏ.
Performance là hiệu năng. Security là bảo mật. Availability là khả dụng, tức hệ thống có thể phục vụ user khi cần. Backup và recovery liên quan đến khôi phục dữ liệu. Operation liên quan monitoring, log, alert, batch, manual procedure. Maintainability liên quan dễ sửa và vận hành lâu dài.
Developer cần đọc 非機能要件 vì nó ảnh hưởng đến cách implement. Ví dụ nếu có yêu cầu response dưới 2 giây, bạn không thể viết query tùy tiện. Nếu có yêu cầu security, bạn phải kiểm tra quyền, validate input, tránh log thông tin nhạy cảm. Nếu có yêu cầu availability, bạn phải nghĩ đến timeout và retry.
Hiểu nhầm thường gặp
1. "非機能要件 là việc của infra"
Infra rất quan trọng, nhưng developer cũng ảnh hưởng lớn. Query chậm, log thiếu, validate yếu hoặc xử lý lỗi kém đều làm hỏng non-functional quality.
2. "Chỉ cần chức năng chạy đúng là đủ"
Chạy đúng với 10 records chưa chắc chạy được với 1 triệu records. Chạy được ở local chưa chắc an toàn ở production.
3. "Security chỉ là login"
Security còn gồm quyền truy cập, input validation, data masking, audit log, secret management, CSRF, XSS, SQL injection.
4. "Nếu spec không ghi performance thì không cần quan tâm"
Dù spec không ghi rõ, developer vẫn nên chú ý những phần dễ chậm hoặc dễ ảnh hưởng production, và hỏi lại nếu rủi ro lớn.
Ví dụ trong dự án
Team làm màn hình tìm kiếm order. Function chạy đúng ở môi trường test với 500 records. Nhưng production có 2 triệu records. Sau release, user search mất 20 giây.
PM: "検索に時間がかかっています。性能要件は確認済みですか。"
Developer: "性能要件は明記されていませんでしたが、大量データでの確認が不足していました。"
Tech lead: "検索条件とインデックスを見直しましょう。次回から非機能要件も確認してください。"
Developer: "承知しました。レスポンスタイムとデータ件数の前提を確認します。"
Ở đây, chức năng không sai, nhưng 非機能要件 chưa được xem đủ. Đây là lỗi rất thực tế.
Câu tiếng Nhật hữu ích
- 日本語
- 非機能要件を確認したいです。
- かな
- ひきのうようけんをかくにんしたいです
- Nghĩa tiếng Việt
- Tôi muốn xác nhận non-functional requirements.
- Dùng khi nào
- Khi bắt đầu thiết kế
- 丁寧度
- Lịch sự
- 日本語
- 性能要件はありますか。
- かな
- せいのうようけんはありますか
- Nghĩa tiếng Việt
- Có yêu cầu performance không ạ?
- Dùng khi nào
- Khi làm search/batch/API
- 丁寧度
- Rất lịch sự
- 日本語
- レスポンスタイムの目標を確認します。
- かな
- れすぽんすたいむのもくひょうをかくにんします
- Nghĩa tiếng Việt
- Tôi sẽ xác nhận mục tiêu response time.
- Dùng khi nào
- Khi performance chưa rõ
- 丁寧度
- Lịch sự
- 日本語
- セキュリティ要件を確認します。
- かな
- せきゅりてぃようけんをかくにんします
- Nghĩa tiếng Việt
- Tôi sẽ xác nhận security requirements.
- Dùng khi nào
- Khi liên quan data/user
- 丁寧度
- Lịch sự
- 日本語
- 権限チェックを追加します。
- かな
- けんげんちぇっくをついかします
- Nghĩa tiếng Việt
- Tôi sẽ thêm kiểm tra quyền.
- Dùng khi nào
- Khi thiếu permission check
- 丁寧度
- Lịch sự
- 日本語
- ログ出力を見直します。
- かな
- ろぐしゅつりょくをみなおします
- Nghĩa tiếng Việt
- Tôi sẽ xem lại logging.
- Dùng khi nào
- Khi debug/operation khó
- 丁寧度
- Lịch sự
- 日本語
- 大量データで確認します。
- かな
- たいりょうでーたでかくにんします
- Nghĩa tiếng Việt
- Tôi sẽ kiểm tra với dữ liệu lớn.
- Dùng khi nào
- Khi test performance
- 丁寧度
- Lịch sự
- 日本語
- タイムアウトを考慮します。
- かな
- たいむあうとをこうりょします
- Nghĩa tiếng Việt
- Tôi sẽ cân nhắc timeout.
- Dùng khi nào
- Khi gọi API/batch
- 丁寧度
- Lịch sự
- 日本語
- 監視項目を確認します。
- かな
- かんしこうもくをかくにんします
- Nghĩa tiếng Việt
- Tôi sẽ xác nhận monitoring items.
- Dùng khi nào
- Khi vận hành
- 丁寧度
- Lịch sự
- 日本語
- バックアップ方針を確認します。
- かな
- ばっくあっぷほうしんをかくにんします
- Nghĩa tiếng Việt
- Tôi sẽ xác nhận chính sách backup.
- Dùng khi nào
- Khi liên quan dữ liệu
- 丁寧度
- Lịch sự
Từ vựng cần nhớ
- 日本語
- 非機能要件
- かな
- ひきのうようけん
- Nghĩa
- non-functional requirements
- 使用例
- 非機能要件を確認します。
- 日本語
- 性能
- かな
- せいのう
- Nghĩa
- performance
- 使用例
- 性能を改善します。
- 日本語
- 応答時間
- かな
- おうとうじかん
- Nghĩa
- response time
- 使用例
- 応答時間を測定します。
- 日本語
- 可用性
- かな
- かようせい
- Nghĩa
- availability
- 使用例
- 可用性を高めます。
- 日本語
- 信頼性
- かな
- しんらいせい
- Nghĩa
- reliability
- 使用例
- 信頼性が重要です。
- 日本語
- 保守性
- かな
- ほしゅせい
- Nghĩa
- maintainability
- 使用例
- 保守性を考慮します。
- 日本語
- セキュリティ
- かな
- せきゅりてぃ
- Nghĩa
- security
- 使用例
- セキュリティを確認します。
- 日本語
- 権限
- かな
- けんげん
- Nghĩa
- permission
- 使用例
- 権限チェックをします。
- 日本語
- 監視
- かな
- かんし
- Nghĩa
- monitoring
- 使用例
- 監視を追加します。
- 日本語
- ログ
- かな
- ろぐ
- Nghĩa
- log
- 使用例
- ログを確認します。
- 日本語
- バックアップ
- かな
- ばっくあっぷ
- Nghĩa
- backup
- 使用例
- バックアップを取得します。
- 日本語
- 復旧
- かな
- ふっきゅう
- Nghĩa
- recovery
- 使用例
- 復旧手順を確認します。
Danh sách kiểm tra thực hành
Khi nhận một task có vẻ chỉ là chức năng bình thường, hãy tự hỏi vài câu về 非機能要件. Với search hoặc list, hãy hỏi dữ liệu tối đa khoảng bao nhiêu, có cần phân trang không, response time mục tiêu là bao nhiêu, có index DB chưa. Với export CSV, hãy hỏi số record tối đa, encoding, timezone, quyền download và thời gian xử lý.
Với chức năng có thông tin cá nhân, hãy kiểm tra security. Ai được xem dữ liệu, ai được sửa, có cần mask thông tin không, log có chứa email, phone hoặc token không. Trong dự án Nhật, 個人情報 thường được xử lý rất cẩn thận. Developer không nên log dữ liệu nhạy cảm chỉ để debug nhanh.
Với API gọi hệ thống khác, hãy nghĩ đến timeout, retry và error message. Nếu API bên ngoài chậm, màn hình có treo không. Nếu retry nhiều lần, có tạo duplicate order không. Nếu lỗi, user thấy message gì và log có đủ để điều tra không.
Với batch hoặc job chạy đêm, hãy hỏi cách monitor. Nếu batch fail, ai nhận alert. Có chạy lại được không. Chạy lại có tạo dữ liệu trùng không. Có cần rollback không. Đây là những câu hỏi rất thực tế trong hệ thống vận hành lâu dài.
Một câu hỏi tốt cho PM hoặc tech lead là:
この機能について、性能要件やセキュリティ要件はありますか。
大量データの場合の動作も確認したいです。
Câu này không làm bạn có vẻ "khó tính". Ngược lại, nó cho thấy bạn đang nghĩ đến production, không chỉ nghĩ đến việc code chạy ở local.
Câu hỏi ôn nhanh
Câu 1
非機能要件 là gì?
- A. Yêu cầu về chất lượng và vận hành như performance, security
- B. Chỉ màu button
- C. Chỉ tên project
- D. Chỉ task cá nhân
Đáp án: A. 非機能要件 không phải chức năng trực tiếp, nhưng quyết định hệ thống dùng tốt hay không.
Câu 2
性能要件 liên quan đến gì?
- A. Hiệu năng
- B. Nghỉ phép
- C. Tên nhân viên
- D. Màu áo
Đáp án: A. 性能 là performance, ví dụ response time hoặc throughput.
Câu 3
Security có chỉ là login không?
- A. Có
- B. Không, còn quyền, validation, log, secret và nhiều yếu tố khác
- C. Không liên quan developer
- D. Chỉ liên quan UI
Đáp án: B. Security là một nhóm rộng trong 非機能要件.
Bước tiếp theo
Nếu bạn muốn đọc requirement tốt hơn, hãy học 要件定義 và 仕様書. Để luyện câu hỏi, vào tiếng Nhật IT, đặc biệt spec. Nếu chưa rõ trình độ, làm chẩn đoán, học theo 15 phút, ôn từ vựng, ngữ pháp N4, làm bài luyện IT và dùng checklist.
Học tiếp và ôn lại
- Nếu bài này có cụm tiếng Nhật mới, lưu lại vào trang ôn tập để quay lại sau vài ngày.
- Muốn học theo tình huống công việc, mở tiếng Nhật IT và chọn nhóm ticket, spec, bug, review hoặc release.
- Muốn kiểm tra phản xạ nhanh, làm bài luyện IT Japanese mini.
- Nếu chưa chắc nền N4/N3, làm kiểm tra trình độ miễn phí trước khi học nhiều thuật ngữ dự án.
Câu hỏi thường gặp
非機能要件 có cần trong dự án nhỏ không?
Có, nhưng mức độ có thể nhẹ hơn. Ít nhất nên nghĩ đến security, backup, performance cơ bản và log.
Developer backend cần quan tâm phần nào nhất?
Query performance, API response, transaction, permission, logging, timeout và data integrity.
Frontend có liên quan 非機能要件 không?
Có. Frontend ảnh hưởng performance, accessibility, security như XSS, error handling và user experience.
Nếu khách hàng không nói non-functional requirement thì sao?
Hãy hỏi những điểm có rủi ro cao. Ví dụ data lớn, thông tin cá nhân, quyền user, batch hoặc chức năng quan trọng.