Phát hiện và phân tích yêu cầu
Mục tiêu
- Nhiệm vụ của việc phát hiện và phân tích yêu cầu là gì?
- Hiểu rõ mô hình xoắn ốc trong quy trình phát hiện và phân tích yêu cầu
- Các kỹ thuật được sử dụng để phát hiện và phân tích yêu cầu
Trong pha phát hiện và phân tích yêu cầu, nhân viên kỹ thuật và khách hàng cùng hợp tác để xác định miền ứng dụng, các dịch vụ mà hệ thống cung cấp, hiệu năng của hệ thống, các ràng buộc vận hành của hệ thống…
Ở đây, chúng ta có một khái niệm mới là stakeholder. Stakeholder là những người tham dự vào dự án xây dựng hệ thống: người sử dụng cuối, người quản lý, kỹ sư, chuyên gia lĩnh vực, … Ví dụ, trong hệ thống ATM gồm các Stakeholder sau: khách hàng của ngân hàng, đại diện của các ngân hàng khác, người quản lý ngân hầng, nhân viên ngân hàng, quản trị CSDL, quản lý bảo mật, phòng marketing, kỹ sư bảo trì phần cứng và phần mềm, người điều hành ngân hàng.
Tuy nhiên, việc phát hiện và tìm hiểu yêu cầu của stakeholder, chúng ta thường gặp khó khăn vì những nguyên nhân sau:
- Stakeholder không biết những gì mà họ thật sự mong muốn.
- Stakeholder mô tả các yêu cầu theo thuật ngữ của họ.
- Những stakeholder khác nhau có thể có các yêu cầu xung đột nhau
- Những yếu tố tổ chức và quyền lực có thể ảnh hưởng tới các yêu cầu hệ thống.
- Các yêu cầu có thể thay đổi trong suốt quá trình phân tích. Những stakeholder mới có thể xuất hiện và môi trường nghiệp vụ có thể thay đổi.
Do đó, người ta thường sử dụng mô hình xoắn ốc trong quy trình phát hiện và phân tích yêu cầu.
          
        Trong quy trình này bao gồm các hoạt động sau:
- Phát hiện yêu cầu: tiếp xúc với các stakeholder để phát hiện ra các yêu cầu của họ. Các yêu cầu miền ứng dụng cũng được phát hiện ở bước này.
- Phân loại và sắp xếp yêu cầu: nhóm các yêu cầu có liên quan lẫn nhau và tổ chức chúng thành những nhóm gắn kết với nhau.
- Sắp thứ tự ưu tiên và điều chỉnh các yêu cầu xung đột: khi có nhiều stakeholder thì các yêu cầu của họ càng có nhiều xung đột. Hoạt động này nhằm đánh thứ tự ưu tiên của các yêu cầu, phát hiện và giải quyết xung đột giữa các yêu cầu.
- Tư liệu hóa yêu cầu: yêu cầu được tư liệu hoá và là đầu vào của vòng kế tiếp trong mô hình xoắn ốc.
Phát hiện yêu cầu là quy trình thu thập những thông tin về hệ thống được đề xuất và hệ thống đang tồn tại để xác định các yêu cầu hệ thống và yêu cầu của người sử dụng. Ta có thể lấy thông tin này từ các tư liệu, stakeholder, và bản đặc tả của những hệ thống tương tự. Chúng ta giao tiếp với stakeholder thông qua phỏng vấn hoặc quan sát và có thể sử dụng kịch bản và mẫu thử để giúp phát hiện yêu cầu.
Khung nhìn (Viewpoint)
Đặt vấn đề
- Mỗi stakeholder liên quan đến dự án có hiểu biết và nhu cầu hiểu biết nhất định về dự án.
- Khi trình bày các vấn đề về hệ thống nên phụ thuộc vào đối tượng trình bày.
Khung nhìn là cách xây dựng yêu cầu để trình bày với từng stakeholder khác nhau. Ta có thể phân loại Stakeholder theo nhiều khung nhìn khác nhau.
Phân tích dựa trên khung nhìn cho phép phát hiện nhiều khía cạnh khác nhau của một vấn đề và giúp phát hiện ra sự xung đột giữa các yêu cầu.
Khung nhìn được chia thành 3 loại chính và mỗi loại sẽ cung cấp các yêu cầu khác nhau.
- Khung nhìn tương tác: là những người hoặc hệ thống khác tương tác với hệ thống. Trong hệ thống ATM, khách hàng và CSDL tài khoản là những khung nhìn tương tác
- Khung nhìn gián tiếp: là những stakeholder không sử dụng hệ thống trực tiếp nhưng có ảnh hưởng tới hệ thống. Trong hệ thống ATM, nhân viên quản lý và bảo mật là những khung nhìn gián tiếp.
- Khung nhìn miền ứng dụng: là những đặc điểm và ràng buộc của miền ứng dụng, có ảnh hưởng tới các yêu cầu. Trong hệ thống ATM, các chuẩn để giao tiếp giữa nhiều ngân hàng là một ví dụ.
Ta có thể phát hiện khung nhìn dựa trên:
- Người cung cấp và người nhận các dịch vụ của hệ thống
- Các hệ thống tương tác trực tiếp với hệ thống cần xây dựng.
- Các chuẩn và các quy tắc
- Tài nguyên và các yêu cầu phi chức năng
- Marketing và các khung nhìn nghiệp vụ khác.
Khung nhìn phân cấp của LIBSYS
          
            
          
Phỏng vấn
Đặt vấn đề
- Làm thế nào để có được các yêu cầu hệ thống và yêu cầu của người sử dụng?
- Tại sao phỏng vấn người dùng là một phương pháp phổ biến?
- Khi phỏng vấn chúng ta thường sẽ gặp những vấn đề gì?
- Tại sao kết quả phỏng vấn lại khác nhau?
Phỏng vấn hình thức hoặc phi hình thức là một trong những phần quan trọng nhất của quy trình xác định yêu cầu. Trong quá trình phỏng vấn, những người xác định yêu cầu sẽ đặt ra các câu hỏi cho stakeholder về hệ thống hiện tại họ đang sử dụng và hệ thống sẽ được xây dựng. Và các yêu cầu sẽ được lấy ra từ những câu trả lời của stakeholder.
Phỏng vấn được chia thành hai loại:
- Phỏng vấn đóng: tập các câu hỏi đã được định nghĩa trước và có nhiều đáp án để stakeholder lựa chọn trả lời.
- Phỏng vấn mở: tất cả các vấn đề không được xác định trước và stakeholder phải tự giải thích và phát biểu theo quan điểm của mình.
Trong thực tế, chúng ta thường trộn lẫn phỏng vấn đóng và mở.
Một phỏng vấn tốt có nghĩa là sẽ thu thập được tất cả các hiểu biết về công việc phải làm của stakehoder và cách họ tương tác với hệ thống như thế nào. Tuy nhiên, khi phỏng vấn những vấn đề có liên quan tới miền ứng dụng hoặc nghiệp vụ của người sử dụng, chúng ta thường gặp khó khăn vì không thể hiểu được các thuật ngữ của miền ứng dụng hoặc các hiểu biết về miền ứng dụng quá quen thuộc.
Để phỏng vấn thành công, người phỏng vấn nên:
- Cởi mở, sẵn sàng lắng nghe stakeholder và không nên có những ý tưởng đã được định hình sẵn về các yêu cầu.
- Đưa ra những câu hỏi gợi mở, không nên hỏi những câu như “Anh muốn gì?”
Kịch bản
Đặt vấn đề
- Ví dụ minh hoạ thường dễ hiểu hơn mô tả trừu tượng
- Có thể sử dụng kết hợp kịch bản và phỏng vấn như thế nào?
- Khi nào thì cần phải sử dụng kịch bản?
Chúng ta thường hiểu một vấn đề thông qua các ví dụ thực tế dễ dàng hơn là thông qua những mô tả trừu tượng về nó. Do đó, chúng ta có thể sử dụng kịch bản để phát hiện ra các yêu cầu hệ thống. Kịch bản là những ví dụ thực tế về cách sử dụng hệ thống. Chúng bao gồm:
- Mô tả trạng thái khởi động
- Mô tả luồng sự kiện thông thường
- Mô tả những gì có thể đi tới lỗi
- Thông tin về các hành động đồng thời khác
- Mô tả trạng thái khi kịch bản hoàn thành
Ca sử dụng
Đặt vấn đề
- UML cung cấp các biểu đồ khác nhau để mô tả kịch bản của hệ thống.
Ca sử dụng là kịch bản được xây dựng dựa trên kỹ thuật của UML để xác định các tác nhân trong một tương tác và mô tả chính tương tác đó. Một tập hợp các ca sử dụng sẽ mô tả tất cả các tương tác có thể trong hệ thống.
Ngoài ra, chúng ta có thể sử dụng biểu đồ trình tự để bổ sung các thông tin chi tiết cho ca sử dụng bằng cách biểu diễn trình tự các sự kiện được xử lý trong hệ thống.
Các ca sử dụng trong LIBSYS