12/08/2018, 13:22

Công việc phân tích yêu cầu trong một dự án phần mềm

1. Tầm quan trọng của phân tích yêu cầu Phân tích và định rõ yêu cầu là bước trong quy trình phát triển 1 dự án phần mềm. Công việc ở bước này là tìm hiểu xem chúng ta phải phát triển cái gì, chứ không phải là phát triển như thế nào. Đích cuối cùng của khâu phân tích là tạo ra đặc tả yêu cầu, là ...

1. Tầm quan trọng của phân tích yêu cầu

Phân tích và định rõ yêu cầu là bước trong quy trình phát triển 1 dự án phần mềm. Công việc ở bước này là tìm hiểu xem chúng ta phải phát triển cái gì, chứ không phải là phát triển như thế nào. Đích cuối cùng của khâu phân tích là tạo ra đặc tả yêu cầu, là tài liệu ràng buộc giữa khách hàng và người phát triển và là cơ sở của hợp đồng.

Hoạt động phân tích là hoạt động phối hợp giữa khách hàng và người phân tích (bên phát triển). Khách hàng phát biểu yêu cầu và người phân tích hiểu, cụ thể hóa và biểu diễn lại yêu cầu. Hoạt động phân tích giữ một vai trò đặc biệt quan trọng trong phát triển phần mềm, giúp cho đảm bảo chất lượng của phần mềm. Phần mềm thực hiện được chính xác, đầy đủ yêu cầu của người sử dụng. Nếu phân tích không tốt dẫn đến hiểu lầm yêu cầu thì việc sửa chữa sẽ trở nên rất tốn kém. Chi phí để sửa chữa sai sót về yêu cầu sẽ tăng lên gấp bội nếu như sai sót đó được phát hiện muộn.

2. Các hoạt động phân tích yêu cầu

  • Làm rõ yêu cầu (Eliciting requirements): giao tiếp với khách hàng và người sử dụng để xác định các yêu cầu của họ.
  • Xem xét yêu cầu (Analyzing requirements): xác định xem các yêu cầu được đặt ra có ở tình trạng không rõ ràng, không hoàn chỉnh, đa nghĩa, hoặc mâu thuẫn hay không, và giải quyết các vấn đề đó.
  • Làm tài liệu yêu cầu (Recording requirements): các yêu cầu có thể được ghi lại theo nhiều hình thức, chẳng hạn các tài liệu ngôn ngữ tự nhiên, các tình huống sử dụng (use case), câu chuyện sử dụng (user story), hoặc các đặc tả tiến trình.

Bước phân tích yêu cầu có thể là một quá trình dài và khó khăn, cần đến nhiều kĩ năng. Các hệ thống mới làm thay đổi môi trường và các mối quan hệ giữa con người, do đó điều quan trọng là phải xác định được tất cả những người có vai trò quan trọng, xem xét tất cả các nhu cầu của họ và đảm bảo rằng họ hiểu được các hàm ý của hệ thống mới.

3. Mục tiêu của phân tích yêu cầu

Có thể nói mỗi mục tiêu của việc phân tích và quản lý yêu cầu phần mềm đều tương ứng với tầm quan trọng của nó.

  • Lấy được các yêu cầu đáp ứng được nhu cầu của người sử dụng và phù hợp với hệ thống.
  • Phân tích các yêu cầu có sẵn với những ứng dụng mang tính sẵn có
  • Phân tích được khả năng mở rộng của các yêu cầu theo thời gian từ đó biết được cách tốt nhất để đạt được khả năng mở rộng này.
  • Phân tích các yêu cầu tích hợp với hệ thống
  • Kiểm soát được sự thay đổi của các yêu cầu và bổ xung thay đổi kịp thời phù hợp với hệ thống
  • Xác định được yêu cầu chức năng, phi chức năng
  • Làm rõ được các yêu cầu và làm tài liệu yêu cầu

4. Những khó khăn trong qúa trình phân tích yêu cầu

1. Vấn đề về người dùng và khách hàng

  • Người dùng không hiểu họ muốn gì
  • Người dùng không tuân theo một bộ yêu cầu đã được tài liệu hóa
  • Người dùng nhất định đòi hỏi các yêu cầu mới sau khi chi phí và kế hoạch phát triển đã được hoạch định xong.
  • Mức độ giao tiếp với người dùng là thấp
  • Người dùng thường không tham gia các đợt thẩm định hoặc không thể tham gia.
  • Người dùng không hiểu kỹ thuật
  • Người dùng không hiểu quy trình phát triển.

Những điều này có thể dẫn tới tình huống khi yêu cầu người dùng liên tục thay đổi ngay cả khi việc phát triển hệ thống hay sản phẩm đã được bắt đầu.

2. Vấn đề về kỹ sư/nhà phát triển

Trong quá trình phân tích yêu cầu, các vấn đề sau có thể nảy sinh từ phía các kỹ sư và nhà phát triển:

  • Nhân viên kỹ thuật và người dùng cuối có thể có ngôn từ khác nhau. Kết quả là họ có thể tin rằng họ hoàn toàn đồng thuận cho đến khi sản phẩm hoàn thiện được đưa ra.
  • Các kỹ sư và nhà phát triển có thể cố lái cho các yêu cầu khớp với một hệ thống hay mô hình sẵn có, thay vì phát triển một hệ thống theo sát nhu cầu của khách hàng
  • Việc phân tích có thể do các kỹ sư hoặc lập trình viên thực hiện, thay vì các nhân viên có kỹ năng và kiến thức miền ứng dụng để có thể hiểu các nhu cầu của khách hàng một cách đúng đắn

5. Giải pháp

Các nhà phân tích có thể sử dụng một số kĩ thuật để làm rõ các yêu cầu của khách hàng như: thành lập các nhóm trọng tâm (focus group) với các cuộc họp bàn về yêu cầu (requirements workshops), và tạo ra các danh sách yêu cầu, tạo nguyên mẫu (prototyping) kèm với tình huống sử dụng, phát triển phần mềm linh hoạt (Agile software development). Khi cần thiết, nhà phân tích sẽ kết hợp các phương pháp này để thiết lập các yêu cầu chính xác của những người có vai trò quan trọng, nhằm mục đích xây dựng một hệ thống thỏa mãn các yêu cầu của khách hàng.

0