12/08/2018, 14:45

Yêu cầu phần mềm (Requirement) quan trọng như thế nào đối với lập trình viên

Đầu tiên mình xin lấy ví dụ về một qui trình làm ra sản phẩm phần mềm, quỳ trình thác nước (water fall) theo các bạn thấy thì để làm ra được một sản phẩm phầm mềm thì hầu hết các bạn phải có ý tưởng và yêu cầu về sản phẩm bạn muốn làm ra, ví dụ như sản phẩm của bạn sẽ có những chức năng như thế ...

Đầu tiên mình xin lấy ví dụ về một qui trình làm ra sản phẩm phần mềm, quỳ trình thác nước (water fall)

theo các bạn thấy thì để làm ra được một sản phẩm phầm mềm thì hầu hết các bạn phải có ý tưởng và yêu cầu về sản phẩm bạn muốn làm ra, ví dụ như sản phẩm của bạn sẽ có những chức năng như thế nào, chức năng đó sẽ làm gì .... Chính vì khâu lấy yêu cầu luôn là một vấn đề khó khăn đối với người phát triển phần mềm cũng như lập trình viên. để hiểu rỏ hơn về yêu cầu phần mềm (Requirement) mình xin tóm tắt một tí về nó.

  1. Yêu cầu (Requirement): Một yêu cầu là một đặc trưng của hệ thống, hay là sự mô tả những việc, mà hệ thống có khả năng thực hiện để hoàn thành mục tiêu của hệ thống *Đặc trưng của yêu cầu: Khả thi - Feasible ™ Có giá trị - Valid ™ Không nhập nhằng - Unambiguous ™ Dễ kiểm chứng - Verifiable ™ Dễ biến đổi - Modifiable ™ Toàn vẹn - Consistent ™ Đầy đủ - Complete ™ Lần vết được - Traceable
  2. Phân loại yêu cầu: Yêu cầu chức năng: chức năng dịch vụ hệ thống cung cấp ™ Yêu cầu phi chức năng: những ràng buộc về tiêu chuẩn, thời gian, qui trình phát triển…, chủ yếu là những yêu cầu về chất lượng ™ Ràng buộc: phản ảnh những đặc trưng của miền ứng dụng. Chúng có thể là những yêu cầu chức năng hay yêu cầu phi chức năng. *Yêu cầu chức năng chỉ ra những gì hệ thống làm, chúng thường quan hệ các use-case hay những qui tắc nghiệp vụ (business rule) ™ Một số yêu cầu chức năng ƒ Chức năng tính toán ƒ Chức năng lưu trữ ƒ Chức năng tìm kiếm ƒ Chức năng kết xuất ƒ Chức năng backup, restore ƒ Chức năng đa người dùng ƒ Chức năng đa phương tiện… *Một số yêu cầu phi chức năng ƒ Độ tin cậy, thời gian đáp ứng, các yêu cầu về lưu trữ… ƒ Các chuẩn được sử dụng, các công cụ CASE, ngôn ngữ lập trình… ƒ Yêu cầu của người sử dụng: dễ sử dụng, thân thiện ƒ Ràng buộc về ngân sách ƒ Phù hợp với các chính sách của tổ chức sử dụng hệ thống ƒ Yêu cầu tương thích giữa phần cứng và phần mềm ƒ Các yêu cầu từ các tác nhân ngoài khác…
  3. Lợi ích của việc lấy yêu cầu rõ ràng: Khi người dùng cùng tham gia trong giai đoạn thu thập yêu cầu sẽ xây dựng được niềm tin và lòng trung thành của khách hàng ™ Đội phát triển có thể tránh viết những đoạn mã thừa khi nắm vững nhiệm vụ của người dùng ™ Sự quan tâm của khách hàng giảm được khoảng cách giữa cái người dùng cần và cái người phát triển tạo ra.
  4. Tầm quan trọng của xác định yêu cầu: Nói về tầm quan trọng của yêu cầu giống như việc nếu bạn muốn chạy thì trước tiên bạn phải biết đi vậy, có nghĩa là sao: Việc bạn hiểu rỏ yêu cầu của khách hàng muốn nó sẽ làm giảm phần trăm thất bại của dự án đó, nếu bạn là một người developer nhưng bạn không hiểu rỏ yêu cầu của khách hàng hay của dự án đó đặt ra thì mình tin chắc bạn sẽ không bao giờ hoàn thành được dự án đó...

TÓM LẠI : Theo ý kiến cá nhân của mình, việc lấy và hiểu rỏ yêu cầu luôn là bước quan trọng nhất trọng mọi dự án hay mọi sản phẩm phần mềm, bởi nó là yếu tố quyết định nên sản phẩm cuối cùng mà bạn muốn đạt được...

0