Yêu cầu phần mềm là gì? 5 bước phân tích yêu cầu phần mềm chuẩn IEEE

Trước khi bắt tay vào phát triển sản phẩm thì việc phân tích yêu cầu phần mềm là bước vô cùng quan trọng. Xác định rõ ràng, chính xác các yêu cầu đặt ra sẽ giúp quá trình phát triển phần mềm suôn sẻ và sản phẩm cuối cùng được hoàn thiện ở mức cao nhất.

phân tích yêu cầu phần mềm là khâu quan trọng trước khi tiến hành phát triển sản phẩm
Nguồn: Unsplash

Yêu cầu phần mềm là gì?

Định nghĩa yêu cầu phần mềm là tất cả những nhu cầu tính năng sản phẩm mà người dùng muốn, bao gồm chức năng, hiệu năng, giao diện,… Các yêu cầu thường xoay quanh 4 nhóm sau: yêu cầu về phần cứng; yêu cầu về phần mềm, yêu cầu về data (dữ liệu) và cuối cùng là những yêu cầu về con người. Khi nhận các brief từ khách hàng, đội phát triển phần mềm phải tiến hành tìm hiểu, phân tích yêu cầu phần mềm để cuối cùng lập ra một bản đặc tả chuẩn chỉnh nhất. 

5 giai đoạn trong quá trình phân tích yêu cầu phần mềm

Xuất phát từ những yêu cầu của khách hàng, quá trình phân tích gồm có 5 giai đoạn như sau:

Giai đoạn 1. Trước khi phân tích

Khó khăn lớn nhất trong việc xác định yêu cầu đó chính là khách hàng thường không thể cụ thể hóa được những tính năng của sản phẩm mà mình muốn có. Do vậy, các kỹ sư phát triển phần mềm phải tiến hành phỏng vấn, rà soát và thậm chí phân tích, định hướng chuyên môn để xác định chính xác nhu cầu khách hàng là gì. Từ đó, họ mới có thể bắt tay vào giai đoạn tiếp theo: phân tích yêu cầu phần mềm đúng với mong muốn thực sự của khách hàng.

Giai đoạn 2. Phân tích yêu cầu phần mềm và thảo luận với khách hàng

Sau khi tìm hiểu sơ bộ những ý tưởng về sản phẩm, nhóm phát triển phần mềm cần phân loại và sắp xếp các yêu cầu thành các nhóm chức năng. Tiếp theo cần thẩm định các yêu cầu xem tính khả thi, rủi ro và mức chi phí cũng như thời gian hoàn thành cho từng yêu cầu.

Cuối cùng cần thảo luận với khách hàng để xác định chính xác những yêu cầu sản phẩm. Giai đoạn phân tích yêu cầu phần mềm này đòi hỏi cả khách hàng và đội ngũ phát triển sản phẩm phải trao đổi tích cực trên cơ sở thương lượng nhằm xác định được bộ yêu cầu chính xác nhất

cần thảo luận với khách hàng kỹ càng khi phân tích yêu cầu phần mềm
Nguồn: Unsplash

Giai đoạn 3. Mô hình hóa các yêu cầu phần mềm

Sau khi thống nhất với khách hàng, đội dev cần mô hình hóa các yêu cầu phần mềm. Những phương pháp phổ biến để mô hình hóa có thể kể đến như Data flow diagram (Biểu đồ luồng dữ liệu) và Entity Relationship model (Mô hình thực thể quan hệ). Data flow diagram biểu diễn luồng thông tin đầu vào và đầu ra (input – output) của một chức năng. Còn việc sử dụng Entity Relationship model là để thiết kế database ở cấp độ khái niệm.

Giai đoạn 4. Đặc tả yêu cầu phần mềm

Trước khi đặc tả, các yêu cầu phần mềm, chúng cần được phân loại thành các nhóm: nhóm chức năng, nhóm phi chức năng, nhóm yêu cầu về tiến trình phát triển,…Tài liệu đặc tả yêu cầu phần mềm cần phải được xây dựng theo hướng của developers. Do đó, tính rõ ràng, chính xác là yếu tố được đặt lên cao nhất nằm tránh sự không rõ ràng giữa yêu cầu khách hàng và định hướng của người phát triển. 

sau khi phân tích yêu cầu phần mềm đội dev cần lập bản đặc tả yêu cầu phần mềm
Nguồn: Unsplash

Giai đoạn 5. Định dạng đặc tả yêu cầu

Sau các bước phân tích yêu cầu phần mềm kể trên, cuối cùng, đội nhóm phát triển phải đưa ra được bản đặc tả yêu cầu phần mềm (SRS – viết tắt của Software Requirement Specification). Bản đặc tả phải thể hiện được phạm vi sản phẩm, hệ thống các chức năng, đối tượng sử dụng và cuối cùng là các ràng buộc trong khi vận hành. 

Quá trình phát triển một sản phẩm phần mềm đòi hỏi sự kết hợp chặt chẽ giữa đội ngũ developers và khách hàng, nhằm đảm bảo sản phẩm cuối cùng hoàn thiện ở mức cao nhất. Bởi vậy, khâu phân tích yêu cầu phần mềm càng được thực hiện chặt chẽ, kỹ càng bao nhiêu, việc phát triển sản phẩm sẽ càng suôn sẻ và hoàn chỉnh bấy nhiêu.

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 02, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Visual Studio Code là gì? Lợi thế từ việc sử dụng Visual Studio Code

Visual Studio Code là gì? Lợi thế từ việc sử dụng Visual Studio Code

Visual Studio Code là gì mà khiến cộng đồng IT Việt yêu thích đến vậy? Trình soạn thảo code này sẽ giúp bạn xây dựng ứng dụng web và cloud như thế nào? Hãy cùng Got It tìm hiểu Visual Studio Code ngay hôm nay nhé! Mục lục1. Visual Studio Code là gì?2. Phân biệt […]
Hướng dẫn cách sử dụng Visual Studio Code căn bản

Hướng dẫn cách sử dụng Visual Studio Code căn bản

Nhanh, gọn nhẹ, đa năng và hoạt động mạnh mẽ trên đa nền tảng là những ưu điểm nổi trội của trình soạn thảo VS Code. Cách sử dụng Visual Studio Code cơ bản sẽ được hướng dẫn cụ thể trong bài viết dưới đây. Mục lụcVisual Studio Code là gì và dành cho ai?Phiên […]
Hướng dẫn cách format code Visual Studio Code với Prettier

Hướng dẫn cách format code Visual Studio Code với Prettier

Việc định dạng mã sao cho thống nhất là một thử thách khó khăn đối với đa phần lập trình viên. Prettier chính là công cụ format code của Visual Studio Code giúp bạn duy trì sự nhất quán trong toàn bộ cơ sở mã của nhóm. Cùng tìm hiểu cách dùng Prettier để format […]
Cách sử dụng phím tắt sắp xếp code trong Visual Studio Code

Cách sử dụng phím tắt sắp xếp code trong Visual Studio Code

Chỉ với một vài thao tác đơn giản với phím tắt sắp xếp code trong Visual Studio Code, bạn đã có thể tạo ra một đoạn mã đẹp mắt, ngay ngắn và dễ đọc. Cùng tìm hiểu về cách sử dụng phím tắt này và khám phá thêm một vài phím tắt hữu ích khách […]
5 phương pháp Agile phổ biến trong phát triển phần mềm

5 phương pháp Agile phổ biến trong phát triển phần mềm

Phương pháp Agile đã dần trở thành một xu hướng mới trong việc phát triển phần mềm trên thế giới. Bài viết này sẽ giới thiệu cho các bạn 5 phương pháp Agile hiện phổ biến nhất hiện nay.   Mục lục1. Scrum2. Kaban3. Extreme Programming4. Lean Development5. Crystal 1. Scrum Trong số các framework […]
Thiết kế kiến trúc phần mềm và những vấn đề cơ bản

Thiết kế kiến trúc phần mềm và những vấn đề cơ bản

Thiết kế kiến trúc phần mềm là một trong những yêu cầu quan trọng đối với mỗi lập trình viên. Nếu bạn đang muốn tìm hiểu về lĩnh vực trên, thì hãy bắt đầu từ những vấn đề cơ bản sau đây. Mục lục1. Thiết kế kiến trúc phần mềm là gì?2. Một số quy […]